数字信号课程实验——FIR数字滤波器的设计

FIR数字滤波器的设计

一、实验目的 

(1) 掌握用窗函数法、频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉相应的MATLAB编程。

(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性。

(3) 了解各种不同窗函数对滤波器性能的影响。

二、主要仪器设备 

硬件:微型计算机

软件:Matlab 

三、实验内容

1、N=45,计算并画出矩形窗、汉明窗、布莱克曼窗的归一化的幅度谱,并比较各自特点。

程序代码:

N=45;

w1=boxcar(N);w2=hamming(N);w3=blackman(N);

[h,w]=freqz(w1,N); figure(1);

plot(w/pi,20*log10(abs(h)));

axis([0,1,-80,10]);

grid on; 

xlabel('归一化频率/π');ylabel('幅度/dB');

title('20610815李卫    矩形窗');

figure(2);

[h,w]=freqz(w2,N);

plot(w/pi,20*log10(abs(h))); 

axis([0,1,-80,10]);

grid on;

xlabel('归一化频率/π');ylabel('幅度/dB');

title('汉明窗');

figure(3);

[h,w]=freqz(w3,N); 

plot(w/pi,20*log10(abs(h)));

axis([0,1,-150,10]);

grid on;

xlabel('归一化频率/π');

ylabel('幅度/dB');

title('布莱克曼窗'); 

结果显示:

实验分析:

矩形窗函数具有最窄的主瓣宽度,但有最大的旁瓣峰值;汉明窗函数的主瓣稍宽,而旁瓣较小;布莱克曼窗函数则更甚之。 矩形窗设计的滤波器过渡带最窄,但是阻带最小衰减也最差; 布莱克曼窗设计的滤波器阻带衰减最好,过渡带最宽,约为矩形窗设计的的三倍。 汉明窗设计的滤波器处于矩形窗和布莱克曼窗之间。

2、N=15,带通滤波器的两个通带边界分别为\omega _{1}=0.3 \pi ,\omega _{2}=0.5 \pi。用汉宁窗设计此线性相位带通滤波器,观察它的实际3dB和20dB带宽。N=45,重复这一设计,观察幅频和相频特性的变化,注意长度N变换的影响。

程序代码:

N=15;w1=0.3;w2=0.5; 

w=hanning(N);

n=0:N-1;alfa=(N-1)/2;

h=fir1(N-1,[w1 w2],w);

[h1,w3]=freqz(h,1);

figure(1);

subplot(2,1,1);

plot(w3/pi,20*log10(abs(h1)));grid on;

axis([0,1,-80,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB');

subplot(2,1,2);

plot(w3/pi,angle(h1));grid on;axis([0,1,-4,4]);

xlabel('归一化频率/π');

ylabel('角度/rad'); 

N=45;w=hanning(N);

n=0:N-1;alfa=(N-1)/2;

h=fir1(N-1,[w1 w2],w);

[h1,w3]=freqz(h,1);

figure(2);

subplot(2,1,1);

plot(w3/pi,20*log10(abs(h1)));grid on;axis([0,1,-80,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB');

subplot(2,1,2);plot(w3/pi,angle(h1));grid on;

axis([0,1,-4,4]);

xlabel('归一化频率/π');

ylabel('角度/rad');

结果显示:

实验分析:

观察图像,当N增大,3db带宽和20db带宽减小,滤波器特性变好,过渡带变陡,幅频曲线显示其通带较平缓,波动小,阻带衰减大。相频特性曲线显示其相位随频率变化也变大。

3、分别改用矩形窗和布莱克曼窗,设计2中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较两种窗的特点。

程序代码:

N=15;

w1=0.3;

w2=0.5;

wn1=boxcar(N);

wn2=blackman(N); 

hn1=fir1(N-1,[w1 w2],wn1);

hn2=fir1(N-1,[w1 w2],wn2);

[h1,w3]=freqz(hn1,1);

figure(1);

plot(w3/pi,20*log10(abs(h1)));

grid on;

axis([0,1,-80,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB');

title('矩形窗,N=15');

[h1,w3]=freqz(hn2,1);

figure(2);

plot(w3/pi,20*log10(abs(h1)));

grid on; 

axis([0,1,-80,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB'); 

title('布莱克曼窗,N=15');

N=45; 

wn1=boxcar(N);

wn2=blackman(N);

hn1=fir1(N-1,[w1 w2],wn1);

hn2=fir1(N-1,[w1 w2],wn2);

[h1,w3]=freqz(hn1,1);

figure(3);

plot(w3/pi,20*log10(abs(h1)));

grid on;

axis([0,1,-80,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB');

title('矩形窗,N=45');

[h1,w3]=freqz(hn2,1);

figure(4);

plot(w3/pi,20*log10(abs(h1)));

grid on;

axis([0,1,-110,10]);

xlabel('归一化频率/π');

ylabel('幅度/dB');

title('布莱克曼窗,N=45');

结果显示:

  

实验分析:

观察图像发现,同一N值,分别用矩形窗,汉宁窗,汉明窗,布莱克曼窗设计滤波器时,主瓣宽度逐渐增大,过渡带变宽,但阻带衰减性能变好;N增加,主瓣变窄,旁瓣的分量增加,过渡带变陡,起伏震荡变密。

四、实验小结

通过实验,深入了解了窗函数法、频率采样法及优化设计法设计FIR滤波器的原理及方法,更可以使用MATLAB软件进行相应的编程,同时也了解到线性相位FIR滤波器的幅频特性和相频特性、及各种不同窗函数对滤波器性能的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值