滤波器长度对滤波结果的影响研究
2015-11-10远飞
远飞
摘 要:利用现有的经典数字滤波器,可通过在Matlab中的几种方法实现滤波。文章研究了滤波相关函数的用法,指出每个函数处理信号的特点,并给出了几种方法进行仿真比较,其时域和频域的结果显示,使用filtfilt函数可对信号进行很好地滤波。
关键词:数字滤波;Matlab;filter;filtfilt
中图分类号:TD651;TN713 文献标识码:A 文章编号:2095-1302(2015)10-00-03
0 引 言
经典数字滤波器即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得到的滤波结果和原信号是一样的。其他几种方法在两端都或多或少有无效数据产生。
图1 几种滤波方法对x1滤波结果
几种方法对直流信号滤波后的频谱如图2所示,将其中零频率上面部分频谱放大得到图3所示的放大波形,可以看出filter、FRR和RRF方法得到的频谱相近,conv和filtfilt方法得到的频谱与原信号频谱相近。从图3中还可以看出filter、FRR和RRF方法得到的信号频谱在零频率处有明显的衰减,大约在430左右,而原信号在零频率处幅值大约为512。图2中幅值较低,且接近零频率处的频谱放大可得到图4,从中也可看出,filter、FRR和RRF方法得到的频谱相近,conv和filtfilt方法得到的频谱与原信号频谱相近。将图2中的频谱整体适当放大,可以清晰的看出几种方法相互接近的趋势,如图5所示。从时域和频域对比几种滤波方法,可以看出最好的滤波方法是使用filtfilt函数。
图2 x1滤波后频谱
图3 零频率上部分频谱放大图
图4 接近零频率处频谱放大图
图5 x1滤波后频谱整体放大图
对x2用几种方法进行滤波,滤波结果如图6所示,为了方便比较,几种方法的滤波结果在幅值上做了改动,从图中可以看出,也只有函数filtfilt得到的滤波结果和原信号是一样的。其他几种方法在两端也都或多或少有无效数据产生。
图6 几种滤波方法对x2滤波结果
几种方法对x2滤波后的频谱如图7所示,将其中2 Hz频率处上面部分频谱放大可得到图8的结果,可以看出filter、FRR和RRF方法得到的频谱相近,conv和filtfilt方法得到的频谱与原信号频谱相近。从图8中还可以看出,filter、FRR和RRF方法得到的信号频谱在2 Hz处有明显的衰减,大约为42,而原信号在零频率处幅值大约为51。将图7中的频谱整体适当放大,可以清晰的看出几种方法相互接近的趋势,如图9所示。从时域和频域对比几种滤波方法,可以看出,最好的滤波方法是使用filtfilt函数。对直流信号和正弦信号进行低通滤波,得到的结论相同,即使用filtfilt函数最好。
图7 几种方法对x2滤波后的频谱图
图8 2 Hz频率上部分频谱放大图
图9 x2滤波后的频谱放大图
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函数最好。
图10 几种滤波方法对x滤波结果
5 结 语
非实时数字滤波在很多应用领域中都会用到,例如在电网行波数据处理中的应用[3]、在形貌恢复中的应用[4]、在心电信号处理中的应用[5]等。为了使滤波后信号不发生畸变,而且方便对比输出信号和输入信号,零相位滤波受到大家的青睐,大家都讲零相位滤波,大多是FRR的原理。有的是按照FRR的步骤来滤波,有的其实是用filtfilt。通过本文的仿真研究,可以看出,FRR并不等同于filtfilt,而且filtfilt的效果比FRR或者RRF都要好。
图11 滤波后信号频谱图
图12 滤波后信号频谱放大图
参考文献
[1]尚秀辉,郭爱煌,李广宇.基于零相位数字滤波器的边界问题的分析[J].电子测量技术, 2010,33(4):25-27.
[2]朱洪涛,李大勇,王志勇,等.轨检仪抑制轨缝干扰信息的数字滤波法[J].微计算机信息,2006,22(6-1):182-183.
[3]杨书凯,刘慧,韩桂海,等.零相位滤波在电网行波数据处理中的应用[J].信息技术与信息化,2009(5):22-23.
[4]胡涛,刘国栋,浦昭邦.基于零相位滤波的聚焦形貌恢复技术[J].光电工程,2011,38(12):145-150.
[5]朱洪俊.心电信号零相位数字滤波[J].北京生物医学工程,2003, 22(4):260-262.