我在几个沙漠地区有一系列土壤含水量传感器。他们的信号包含很多噪音或偏见(取决于我与谁交谈)。我想在保留尽可能多的信号的同时删除垃圾。我不是一个信号处理人员,所以“使用XYZ滤波器”或特定算法或其他任何东西都会对我有所帮助。
我发布的一个图表显示了一个探测器中一年的数据。信号是“顶部”;所有垃圾都低于信号: http://www.unm.edu/~hilton/swc.png
我玩过很多次低音平滑;除了在信号下方存在大量偏差的地方(如下面的示例中大致为idx 1000到2000和15000到16000)之外,其效果相当不错。
我可以访问Matlab的信号处理工具箱,我对R和python非常熟悉;如果在其中一个中有一个预先打包的过滤器,那么我可以从中跳出来就很棒(但我愿意接受新的编码)。
非常感谢, 添
答案 0 :(得分:0)
我从中值滤波器开始。如果我正确地读取你的情节,你每小时采样两次,数据不是太动态。假设这是正确的,中值过滤器长度为47或49将等于一天的窗口。在这个数据集中,您可能会将其调整为一周或更长时间。在任何情况下,您都应该将未经过滤和过滤的数据绘制在彼此之上,以确保过滤后的数据通过眼球测试(当您看到它时,您将会知道它)。您可能需要手动进行最后的清理(希望您没有数千个传感器)。
(另外,我会派一名实习生或研究生到现场,找出传感器有什么问题并修理它们。)
答案 1 :(得分:0)
可能值得快速尝试对数据集实施一些标准偏差过滤。将数据拆分为N个段,对于每个段,计算Y值的标准偏差。一旦你得到它,过滤掉Y值超过3个标准差(或者你想要多少)的数据点。当然,还有一些手动工作可以确切地确定要使用的段数。