具有不对称噪声的非常尖锐的数据。平滑和过滤似乎提高了平均值[Matlab / Python]

时间:2017-05-10 12:34:00

标签: python matlab filter filtering noise

我有一些倾斜仪的数据。我使用ADC来记录数据,我想知道是否可以在数据记录后从软件端进行所有过滤。

背景:我的问题是,当倾斜仪由电池供电时,噪音似乎是对称的,并且在平均值附近变化,因此滤波会使测量值恢复到非常好的精度。然而,当我使用电源为其供电时,数据更嘈杂且更不规则,变化更大并产生不对称尖峰。因此,使用移动平均线和滤波器往往会给出远离实际测量值的值。

使用两种方法比较数据:

Comparison

+1,-1和0的模拟读数如下:

analog readings

在第一张图像中,仪表读取的常数约为-0.7。主电源似乎在其上方添加了不对称噪音。噪声根据信号的极性而变化。

这样的数据有没有好的过滤器?由于噪音的性质,移动平均线和传统滤波器似乎无法完成这项工作? (解释噪音的性质有点困难,但希望图像显示出来)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

只需尝试使用以下任何原型:

rng(113);
x=-0.7+randn(100,1);
a=0.8
xc(1)=0;
xhr(1)=0;
for i=2:100
    xc(i,1)=a*xc(i-1)+(1-a)*x(i-1);
    xr(i,1)=min([x(i) xc(i)]);
    xhr(i,1)=a*xhr(i-1)+(1-a)*xr(i-1);
end
plot([x xc xr xhr])

编辑:

对于新问题,只需应用上一个答案,在过滤器之前和之前正确应用符号功能(此处不会显示,留作练习)。

Envelope Plots