1 背景
现实生活中的很多需求本质上就是对数据进行降噪处理,比如高精度地图的建立、信号识别特征提取。而一维数据降噪,又充斥着大量使用场景。降噪方法有滑窗均值、滑窗中值、Savitzky Golay滤波、归一化LMS滤波、卡尔曼滤波、Whittaker滤波、有限脉冲滤波(FIR)、无限脉冲滤波(IIR)…
在实际降噪处理过程中,一般会结合使用场景会设计特定的处理算法,而对于常见的数据,则可使用传统方法先进行降噪再进行处理。
2 FIR
FIR, 即有限脉冲滤波器,需要提前知道滤波系数 \(h_0,h_1,…,h_n\),其中\(n\)为滤波阶数, \(x_0,x_1,x_2,…\)为原始输入序列,\(y_0,y_1,y_2,…\)为滤波得到的序列。滤波公式为:
(1)
$$
y_k=\sum_{i=0}^nh_ix_{k-i}
$$
FIR中的滤波系数大都通过窗设计得到,比如:Hamming、Hanning、Kaiser、Blackmane等等窗函数。
3 IIR
IIR, 即无限脉冲滤波器, 需要提前知道滤波系数\(a_0,a_1,a_2,…,a_n,b_0,b_1,b_2,…,b_m\),其中\(m,n\)为滤波阶数。滤波公式为
(2)
$$
y_k=\sum_{i=0}^na_ix_{k-i}+\sum_{i=0}^mb_iy_{k-i}
$$
IIR滤波器系数一般基于Bessel、Butterworth、Chebyshev I类、Chebyshev II类进行设计。
4 教程
针对一维数据,MathSword软件内置了单独的数据降噪窗口进行处理,提供了FIR、IIR、卡尔曼滤波、LMS滤波、Whittaker滤波、Savitzky Golay滤波、中值滤波、径向基函数滤波等等多种滤波方法。并且对于FIR、IIR提供滤波系数提取、且FIR、IIR本身提供多种函数模式。