今天整理工频干扰消除算法。
我们知道,设计数字滤波器,和模拟滤波器的实质,其实就是求一组系数,逼近要求的频率响应。
模拟滤波器已经很成熟,因此,数字滤波器的设计,将S平面映射到Z平面就型。采用双线性变化法映射,可以避免多值映射产生的混叠现象。但这有个问题就,模拟域和数字域两者的角频率是非线性的。
1.平滑滤波器是数字滤波中较早使用的方法,该算法简单,处理速度快,滤波效果较好,但存在明显不足,通带较窄,影响有用信号的分析,有严重削峰,设计方法略。
然后,我们根据IIR和FIR分两大类。FIR滤波器,可以得到严格的线性相位,但它的转移函数的极点固定在原点,只能通过改变零点位置来改变性能。为了达到高的选择性,必须使用高阶。相同设计指标下,FIR滤波器的阶数是IIR滤波器的5~10倍。而IIR滤波器可以根据模拟滤波器的设计公式,数据和表格,计算量小。
首先介绍IIR类,即两种形式的notch滤波器。
2.陷波器 notch 滤波器
陷波器,是IIR数字滤波器,有signal notch 滤波器,即单一频率陷波器,以及comb notch滤波器,即梳妆滤波器。
陷波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下常系数线性差分方程表示:
式中: x(n)和y(n)分别为输人和输出信号序列; ai和bi为滤波器系数。
对式(1)两边进行z变换,得到数字滤波器的传递函数为:
式中: zi和pi分别为传递函数的零点和极点。
由传递函数的零点和极点可以大致绘出频率响应图。在零点处,频率响应出现极小值;在极点处,频率响应出现极大值。因此可以根据所需频率响应配置零点和极点,然后反向设计带陷数字滤波器。
2.1 signal notch 滤波器
考虑一种特殊情况,若零点 在第1象限单位圆上,极点在单位圆内靠近零点的径向上。为了防止滤波器系数出现复数,必须在z平面第4象限对称位置配置相应的共轭零点 、共轭极点 。其极零图如下所示:
这样零点、极点配置的滤波器称为单一频率陷波器,在频率ωo处出现凹陷。而把极点设置在零的的径向上距圆点的距离为l-μ处,陷波器的传递函数为:
式(3)中μ越小,极点越靠近单位圆,则频率响应曲线凹陷越深,凹陷的宽度也越窄。当需要消除窄带干扰而不能对其他频率有衰减时,陷波器是一种去除窄带干扰的理想数字滤波器。
当要对几个频率同时进行带陷滤波时,可以按(2)式把几个单独频率的带陷滤波器(3)式串接在一起。
假设有一个输入,它由50Hz信号和100Hz信号组成。50Hz是一个干扰信号,要设计一个50 Hz的带陷滤波器,采样频率为500Hz。
转移函数:
根据极零关系,取μ = 0.001,则得到z = 0.809 + j * 0.588,z* = 0.809 - j * 0.588,p = 0.8082 + j * 0.5872,p* = 0.8082 - j * 0.5872
代入转移函数,得到分子系数[1, 1.618, 1],分母系数[1,1.6164,0.999]
相应的差分方程:
2.2 comb notch 滤波器
该滤波器实际就是梳妆滤波器,解决了50Hz的K此谐波,可以用matlab直接设计。
其次,介绍FIR滤波器,主要是带阻滤波器。也包括两种:巴特沃斯带阻,多带滤波器。
3 带阻滤波器
3.1多带滤波器
multiband,属于直接型 FIR滤波器,我们可以用Matlab设计出multiband 陷波器。
3.2巴特沃斯带阻滤波器,又称简单整系数带阻滤波器,其原理为一个全通网络,减去一个具有相同延迟和增益的窄带线性相位FIR滤波器,得到一个具有尖锐陷波特性的陷波滤波器。阻带下限截止频率fc1 = 49 Hz,阻带上限截止频率fc2 = 51 Hz,就可以消除50 Hz 的工频干扰。但这种方式,无法滤除50Hz的K此谐波。设计方法如下:
因此,首先设计一个中心频率为50Hz的窄带带通滤波器
为了保证2cosw2值为整系数,则w2只能取pi/3,pi/2,2pi/3,但我们采样率为500Hz,因此,再增加一对共轭极点。位置为w = 2pi * 50 / 500,z = e^j* 4 * pi/5处
简单起见,先取K = 1,为了使分子分母是整系数,则M应是5的奇数倍。
所以最终的频率响应函数为:
其中心频率pi/5处,取得最大值(2p + 1),因此全通滤波器系数为2p+1,为使得通带幅值为1,则除以2p+1,最后的滤波器频率特性为:
p的选取,决定阻带宽度,越大,则阻带越窄。取P= 50,则阻带1Hz,考虑到电网的活动,取p= 24,但这使得通带波纹增大,故而,增加K。
总之:平滑滤波器,严重学峰,但速度快,可实时。
单一频率陷波器,相位非线性,不能保证K次谐波滤除。
梳妆滤波器,相位非线性
简单整系数带阻滤波器,不能实现实时,且当干扰频率有漂移时,效果较差。
多带滤波器,线性相位,阶数高。
还有自适应滤波器,但其计算量大,需要学习时间。
因此,实时处理,可以考虑多带滤波器,梳妆滤波器,单一频率陷波器