滤波器长度对滤波结果的影响研究
扫描二维码
随时随地手机看文章
引 言
经典数字滤波器即 FIR 滤波器和 IIR 滤波器在很多领域中都发挥着重要的作用,在不要求实时处理时,常常使用Matlab 软件设计滤波器并对信号进行滤波。重力数据和重力梯度数据的滤波就是采集后在PC 机上进行处理的。FIR 滤波器具有线性相位,且系统总是稳定的,但是滤波器阶数比较高; IIR 滤波器阶数比较低,但是不具有线性相位,且系统有可能不稳定。不过,在Matlab 软件中,可以通过零相位滤波解决IIR 滤波器非线性相位的问题。重力数据需要低通滤波,重力梯度数据需要带通滤波,对于FIR 滤波器和IIR 滤波器,选择哪一个进行滤波,滤波器长度对滤波结果的影响,滤波器稳定性的验证等问题都值得进行研究。
1 FIR滤波器
FIR 滤波器具有线性相位,且系统总是稳定的,但是滤波器的阶数比较高。而对于有限长度信号的滤波,滤波器的长度对滤波结果的影响是值得关注的问题。
2 FRR 和 RRF
在数字信号处理中,为了不产生相位失真,通常要求滤波器具有零相位。当滤波器是零相位时,输出与输入将不存在移位,即输入和输出数据在时间上能一一对应起来,只存在增益上的差别,我们称此时的滤波器为零相位数字滤波器 [1,2]。实现零相位数字滤波可以采用 FRR 或RRF 方法。FRR 滤波是先将输入序列按顺序滤波(forward filter),然后将所得结果翻转后通过滤波器( reverse filter),再将所得结果翻转后输出( reverse output),即得相位不变的输出序列。类似的, RRF 滤波是先将输入信号序列翻转后通过滤波器( reverse filter), 然后将所得结果翻转后再次通过滤波器( reverse filter),这样所得结果(forward output )即为精确零相位失真的输出序列。
3 低通滤波
用窗函数法设计低通滤波器,通带截止频率为 3 Hz,阻带截止频率为 5 Hz,采样频率为 100 Hz。用该滤波器分别对直流信号 x1=ones(1,512)和低频信号 x2=0.2*sin(2*pi*2*t)进行滤波,滤波分别采用以上提到的几种方法。对 x1 用几种方法进行滤波,滤波结果如图 1 所示,为了方便比较,几种方法的滤波结果在幅值上做了改动,从图中可以看出只有函数filtfilt 得到的滤波结果和原信号是一样的。其他几种方法在两端都或多或少有无效数据产生。
几种方法对直流信号滤波后的频谱如图 2所示,将其中零频率上面部分频谱放大得到图 3所示的放大波形,可以看出filter、FRR和 RRF方法得到的频谱相近,conv和filtfilt 方法得到的频谱与原信号频谱相近。从图 3中还可以看出filter、FRR和 RRF 方法得到的信号频谱在零频率处有明显的衰减,大约在 430左右,而原信号在零频率处幅值大约为512。图 2中幅值较低,且接近零频率处的频谱放大可得到图4,从中也可看出,filter、FRR 和RRF 方法得到的频谱相近,conv 和filtfilt 方法得到的频谱与原信号频谱相近。将图 2 中的频谱整体适当放大,可以清晰的看出几种方法相互接近的趋势,如图 5 所示。从时域和频域对比几种滤波方法,可以看出最好的滤波方法是使用filtfilt 函数。
对 x2 用几种方法进行滤波,滤波结果如图 6 所示,为了方便比较,几种方法的滤波结果在幅值上做了改动,从图中可以看出,也只有函数 filtfilt 得到的滤波结果和原信号是一样的。其他几种方法在两端也都或多或少有无效数据产生。
几种方法对 x2 滤波后的频谱如图 7 所示,将其中 2 Hz频率处上面部分频谱放大可得到图 8 的结果,可以看出filter、FRR 和 RRF 方法得到的频谱相近,conv 和filtfilt 方法得到的频谱与原信号频谱相近。从图 8 中还可以看出,filter、FRR 和RRF 方法得到的信号频谱在 2 Hz 处有明显的衰减,大约为 42,而原信号在零频率处幅值大约为 51。将图 7 中的频谱整体适当放大,可以清晰的看出几种方法相互接近的趋势, 如图 9 所示。从时域和频域对比几种滤波方法,可以看出,最好的滤波方法是使用filtfilt 函数。对直流信号和正弦信号进行低通滤波,得到的结论相同,即使用filtfilt 函数最好。
4 带通滤波
用窗函数法设计带通滤波器,该滤波器通带截止频率为 [10 20]Hz,阻带截止频率为 [5 25]Hz,采样频率为 100 Hz。 用该滤波器对信号 x=0.2*sin(2*pi*15*t)进行滤波,滤波分 别采用 filter、conv、filtfilt、FRR 和 RRF 方法,滤波结果如 图 10 所示,可以看出,filtfilt 滤波后的信号最接近原信号。 滤波后信号的频谱如图 11 所示,将其进行放大,如图 12 所示, 可以看出与低通滤波的情况相似,filter、FRR 和 RRF 方法 得到的频谱相近,conv 和 filtfilt 方法得到的频谱与原信号频 谱相近。经过时域和频域的比较,得出带通滤波同样是 filtfilt 函数最好。
5 结 语
非实时数字滤波在很多应用领域中都会用到,例如在电 网行波数据处理中的应用 [3]、在形貌恢复中的应用 [4]、在心电 信号处理中的应用 [5] 等。为了使滤波后信号不发生畸变,而 且方便对比输出信号和输入信号,零相位滤波受到大家的青 睐,大家都讲零相位滤波,大多是 FRR 的原理。有的是按照 FRR 的步骤来滤波,有的其实是用 filtfilt。通过本文的仿真 研究,可以看出,FRR 并不等同于 filtfilt,而且 filtfilt 的效果 比 FRR 或者 RRF 都要好。