FIR数字滤波器设计 下载本文

信号源参数设置:三个信号源的频率分别是15Hz、28Hz、35Hz :

运行仿真,得波形如下图所示:

14

15HZ信号波形 28HZ信号波形 35HZ信号波形

滤波前的叠加波形 滤波后波形

由上图可知,15Hz、28Hz、35Hz叠加后通过截止频率为22.5HZ的FIR低通滤波器,输出与15Hz信号波形相似,其它的高频被阻隔。

3.2频率采样法设计FIR数字滤波器

1.对理想滤波器的系统函数Hd(z)进行频率采样以得到系统的理想频响Hd(ejw)的等间隔采样值H(k)。H(k)实际上是所要求的滤波器的单位采样响应(h(n))的离散傅里叶变换(DFT),如下试:

2?1?jwN2?1N?1H(e)??H(k)?(w?k)?eH(k)e?NNk?0k?0jwN?12??jNNw)2w?k (3-18) sin(?)2Nsin(1h(n)?N?H(k)ek?0N?1j2?knN (3-19)

15

为了减小H(k)的通带边缘由于抽样点的变化而引起的起伏振荡,可以增加过渡点,加宽过渡带以减小通带的起伏。

每一个抽样值产生一个与sin(

Nww)/sin()成正比,并位移(2?k)/N的频率22响应,而H(k)与内插函数的线性组合就是FIR滤波器的频率响应,增加一点过渡可以使阻带衰减提高到-44~54dB,二点过渡衰减-65~75,三点过渡衰减-85~95dB.

如果不能使过渡带太宽,同时要求增大阻带衰减,可以增加取样点数N,但这样会增加计算量、延时和误差。

频率取样型FIR滤波器设计步骤: (1)给定理想滤波器频率响应Hd(ejw)。

(2)根据过渡带宽和阻带衰减确定过渡点数和h(n)的长度N。

H(k)?Hd(z)|z?e2?jk/N (3-20)

(3)由IFFT计算IDFT得到:

1H(n)?N?H(k)ek?0N?1j2?knN (3-21)

设计实例:率采样法设计一个带通滤波器,满足:低阻带边缘:w1s=0.2*?;低通带边缘:w1p=0.35*?;高通带边缘:w2p=0.65*?;高阻带边缘:w2s=0.8*?。设计过渡带中的频率样本值为t1和t2,取t1=0.109021,t2=0.59417456。 设计程序如下: M=40; al=(M-1)/2; l=0:M-1; t1=0.109021; t2=0.59417456;

Hrs=[zeros(1,5),t1,t2,ones(1,7),t2,t1,zeros(1,9),t1,t2,ones(1,7),t2,t1,zeros(1,4)]; k1=0:floor((M-1)/2); k2=floor((M-1)/2)+1:M-1;

angh=[-al*(2*pi)/M*k1,al*(2*pi)/M*(M-k2)]; H=Hrs.*exp(j*angh); h=real(ifft(H,M)); freqz(h,1,512,1000)

16

实验得幅频相频特性如下图所示:

200Magnitude (dB)0-200-400050100150200250300Frequency (Hz)3504004505001000Phase (degrees)0-1000-2000050100150200250300Frequency (Hz)350400450500

3.3最优化方法设计FIR数字滤波器

MATLAB7.0信号处理工具箱提供了通用的工具函数firls和remez,采用不同的优化方法可以设计最优滤波器和多频带滤波器。

firls是fir1和fir2函数的扩展,其基本设计准则是利用最小二乘法使期望的频率响应和实际的频率响应之间的整体误差最小。Remez函数则利用Parks-McClellan算法设计线性相位FIR滤波器。该算法能使期望频率响应和实际频率响应之间的最大误差最小。Firls函数设计的滤波器在频率响应上出现等波纹,因此也叫等波纹滤波器。函数firls、remez调用的语法规则相同。

(1)firls。其调用格式为 Ⅰ. b=firls(n,f,a) Ⅱ. b=firls(n,f,a,w) Ⅲ. b=firls(n,f,a,’ftype’) Ⅳ. b=firls(n,f,a,w,’ftype’)

该函数用于设计n阶FIR滤波器,其幅频特性由f和a向量确定,f是频率点向量,其范围为0~1,是递增向量;a是指定频率点的幅度响应,与f必须同长度;

17