多语言展示
当前在线:537今日阅读:60今日分享:41

怎么制作notch filter

在信号处理中经常要把某些单频(窄带)干扰信号去除,例如求系统采集信号中的把工频信号滤除。实际上有一个很好的方法,便是使用陷波器。在附件中给出了陷波器的设计技术,并举了例子。 陷波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下常系数线性差分方程表示:      (1)式中: x(n)和y(n)分别为输人和输出信号序列;和为滤波器系数。对式(1)两边进行z变换,得到数字滤波器的传递函数为:        (2)式中:和分别为传递函数的零点和极点。    由传递函数的零点和极点可以大致绘出频率响应图。在零点处,频率响应出现极小值;在极点处,频率响应出现极大值。因此可以根据所需频率响应配置零点和极点,然后反向设计带陷数字滤波器。考虑一种特殊情况,若零点在第1象限单位圆上,极点在单位圆内靠近零点的径向上。为了防止滤波器系数出现复数,必须在z平面第4象限对称位置配置相应的共轭零点、共轭极点。这样零点、极点配置的滤波器称为单一频率陷波器,在频率ωo处出现凹陷。而把极点设置在零的的径向上距圆点的距离为l-μ处,陷波器的传递函数为:    (3)式(3)中μ越小,极点越靠近单位圆,则频率响应曲线凹陷越深,凹陷的宽度也越窄。当需要消除窄带干扰而不能对其他频率有衰减时,陷波器是一种去除窄带干扰的理想数字滤波器。    当要对几个频率同时进行带陷滤波时,可以按(2)式把几个单独频率的带陷滤波器(3)式串接在一起。
工具/原料

Matlab

方法/步骤
1

怎具干扰信号的频率计算出角速度w=2π*f

2

求出零点和极点

3

求出频率相应方程H(w)

4

在Matlab里可以看到结果。参考的代码

6

clear all;clc;close all;z1 = exp(j*0.2513);z2 = exp(-j*0.2513);z3 = exp(j*0.5027);z4 = exp(-j*0.5027);p1 = 0.999*exp(j*0.2513)p2 = 0.999*exp(-j*0.2513);p3 = 0.999*exp(j*0.5027)p4 = 0.999*exp(-j*0.5027);a = poly( [p1,p2,p3,p4] )b = poly( [z1,z2,z3,z4] );G = polyval(a,1) / polyval(b,1); b=b*Gfvtool(b,a)w = linspace(-pi,pi,1000);H=G.*((exp(-j*w)-z1).*(exp(-j*w)-z2).*(exp(-j*w)-z3).*(exp(-j*w)-z4))./...  ((exp(-j*w)-p1).*(exp(-j*w)-p2).*(exp(-j*w)-p3).*(exp(-j*w)-p4));figureplot(w,abs(H)); grid;title('Frequency Response')xlabel('\omega')ylabel('|H(\omega)|')[x,fs]=wavread('xiaomifeng.wav')y = filter(b,a,x)figurespecgram([x;y],1000,5000)sound(y,Fs)END

推荐信息