文档介绍:实验三 FIR滤波器的设计
37022403 牟雪曼
一、实验目的:
FIR滤波器的设计,通常有窗函数设计法、频率抽样设计法和最佳逼近设计法。我们在本实验中,研究前两种设计方法。
通过第一道上机题,掌握利用窗函数设计FIR滤波器的方法,了解阶数不同时,滤波器的指标有何变化,了解矩形窗和哈明窗在主瓣宽度、旁瓣峰值、旁瓣衰减速度方面的差异。通过第二道上机题的练习,掌握设计凯泽而窗时各参数的计算和凯泽而窗的设计,了解凯泽而窗的特点,及其与其它窗在主瓣宽度、旁瓣峰值、旁瓣衰减速度等方面的异同。通过第三道上机题的练习,掌握并了解在过渡带加过渡点对逼近滤波器的实际响应的影响,掌握频率抽样定理及其内插公式.
二、实验程序
1、当N=11,41,81,和121时,用矩形窗设计一个低通FIR滤波器,,用哈明窗重复上述设计,比较两个窗。
function[]=fir1(n);
i=1;
while i~=5
n=input('输入FIR滤波器阶数N=');
z1=fir1(n,,rectwin(n+1));
z2=fir1(n,,hamming(n+1));
[h1,w1]=freqz(z1);
[h2,w2]=freqz(z2);
subplot(2,2,i);plot(w1,abs(h1),'r');
hold on;
plot(w2,abs(h2),'-- b');
legend('采用矩形窗','采用汉明窗');
xlabel('角频率 w (rad)');
ylabel('幅度|H(jw)|');
title(strcat('N=',num2str(n),'阶FIR滤波器'))
grid on;
axis([0 0 ]);i=i+1;
end
2、用凯泽而窗、哈明窗、矩形窗设计一个具有以下指标的滤波器:
,再用三种窗设计一个具有下列指标的高通滤波器
。
function[]=fir2()
i=1;
while i~=3;
Rs=input('rs=');i=i+1;
a=[1 0];
dev=Rs*ones(1,length(a));
f=[ ];
[M,Wc,beta,ftype]=Kaiserord(f,a,dev);
M=mod(M,2)+M;
z0=fir1(M,Wc,kaiser(M+1,beta));
z1=fir1(M,Wc,hamming(M+1));
z2=fir1(M,Wc,rectwin(M+1));
[h0,w0]=freqz(z0);
[h1,w1]=freqz(z1);
[h2,w2]=freqz(z2);
subplot(1,2,i-1);
plot(w0,abs(h0),'r');
hold on;
plot(w1,abs(h1),'-- g');
plot(w2,abs(h2),'-. b');
legend('采用Kaiser窗','采用Hamming窗','采用rectwin窗');
xlabel('角频率 w (rad)');
ylabel('幅度|H(jw)|');
title(strcat('Rs=',num2str(Rs),