-----------------------------------------------------------------------
在信号处理中经常要把某些单频(窄带)干扰信号去除,例如求系统采集信号中的把工频信号滤除。实际上有一个很好的方法,便是使用陷波器。陷波器是一种特殊的带阻滤波器,陷波滤波器主要用于消除某个特定频率的干扰,数字陷波器一般为IIR滤波器。由于陷波器频率特性的特殊性,它除了可采用双线性变换进行设计外,还可以采用所谓零极点配置的方法进行设计。
陷波滤波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下线性差分方程表示:
陷波滤波器的理想频率特性曲线如下图所示:
图1 陷波滤波器的理想频率特性曲线
通过上面的理论介绍可知,本课题所设计的陷波滤波器的MATLAB代码的核心部分如下所示:
f0 = 135; Ts = 0.001; Fs = 1/Ts; Len = 512; L = 0:Len-1; C1 =-2*cos(2*pi*f0*Ts); C2 = 0.95; b =[1 C1 1]; a =[1 C1*C2 C2^2]; figure(1); freqz(b,a,Len,Fs); X = 1.2*cos(2*pi*135*L*Ts) + cos(2*pi*100*L*Ts); y = dlsim(b,a,x); y_fft = fft(x,Len); y_fft = y_fft.*conj(y_fft)/Len; y1 = fft(y,Len); y2 = y1.*conj(y1)/Len; |
通过仿真,其频谱响应曲线如下图所示:
图4 陷波滤波器的频谱响应曲线
下面通过一组测试信号进行陷波滤波器的测试:
图5 测试信号通过陷波滤波器之后的对比仿真图(滤除135hz频点)
图6 测试信号通过陷波滤波器之后的对比仿真图(滤除100hz频点)
通过图5的仿真结果可知,将同时包含100hz和135hz两种信号进行陷波滤波,通过陷波滤波器之后,信号仅剩下100hz,信号得到很好的还原了。图6也同样道理。
通过对上面的陷波滤波器的仿真可知,只要通过调整参数f0,即可实现对不同频点进行陷波滤波,从而实现了参数可调。下面将该滤波器应用到控制系统中,进行仿真分析。
根据图3的控制系统结构,可以知道加入陷波滤波器之后的控制系统,其仿真结果如下所示:
图7 不带陷波滤波器的控制系统反馈信号
图8 不带陷波滤波器的控制系统反馈频谱
下面对加入陷波滤波器的控制信号进行仿真,得到如下的仿真结果:
图9 带陷波滤波器的控制系统反馈信号
图10 带陷波滤波器的控制系统反馈频谱
通过上面的仿真结果可知,将陷波滤波器加入到控制系统中,其反馈信号的抖动明显得到改善,从而大大提高系统的稳定性。