实验三 FIR滤波器的设计
时间:2025-04-20
时间:2025-04-20
实验三 FIR滤波器的设计
37022403 牟雪曼
一、实验目的:
FIR滤波器的设计,通常有窗函数设计法、频率抽样设计法和最佳逼近设计法。我们在本实验中,研究前两种设计方法。
通过第一道上机题,掌握利用窗函数设计FIR滤波器的方法,了解阶数不同时,滤波器的指标有何变化,了解矩形窗和哈明窗在主瓣宽度、旁瓣峰值、旁瓣衰减速度方面的差异。通过第二道上机题的练习,掌握设计凯泽而窗时各参数的计算和凯泽而窗的设计,了解凯泽而窗的特点,及其与其它窗在主瓣宽度、旁瓣峰值、旁瓣衰减速度等方面的异同。通过第三道上机题的练习,掌握并了解在过渡带加过渡点对逼近滤波器的实际响应的影响,掌握频率抽样定理及其内插公式.
二、实验程序
1、当N=11,41,81,和121时,用矩形窗设计一个低通FIR滤波器,其剪切频率
出其幅度响应H( ),用哈明窗重复上述设计,比较两个窗。
function[]=fir1(n);
i=1;
while i~=5
n=input('输入FIR滤波器阶数N=');
z1=fir1(n,0.3,rectwin(n+1));
z2=fir1(n,0.3,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 3.5 0 1.5]);i=i+1;
end
2、用凯泽而窗、哈明窗、矩形窗设计一个具有以下指标的滤波器:
fs 20kHz,fpass 4kHz,fstop 5kHz,Apass 0.1dB,Astop 80dB,画出它们的幅频响 c 0.3 .画
应.然后,再用三种窗设计一个具有下列指标的高通滤波器
fs 20kHz,fpass 5kHz,fstop 5kHz,Apass 0.1dB,Astop 80dB。
function[]=fir2()
i=1;
while i~=3;
Rs=input('rs=');i=i+1;
a=[1 0];
dev=Rs*ones(1,length(a));
f=[0.2 0.25];
[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),'dB','FIR滤波器'));
grid on;
axis([0 3.5 0 1.3]);
end
3、. 用频率抽样法设计一个理想低通滤波器,该低通滤波器的通带截止频率为3 /8,阻带截止频率为4 /8.
a.不加过渡点.b.加一个过渡点.c.加两个过渡点.
function[]=fir3()
a=[1 0];
dev=[0.01 0.01];
f=[0.375 0.5];
Wp=0.5*pi;
[M,Wc,beta,ftype]=Kaiserord(f,a,dev);
%无过渡点
z=fir1(M,Wc,kaiser(M+1,beta));
[h0,w0]=freqz(z);
%加一个过渡点
m1=0:M/2;
Wm1=2*pi*m1./(M+1);
mtr1=ceil(Wp*(M+1)/(2*pi));
Ad1=[Wm1<=Wp];Ad(mtr1)=0.28;
Hd1=Ad1.*exp(-j*0.5*M*Wm1);
Hd1=[Hd1 conj(fliplr(Hd1(2:M/2+1)))];
u1=real(ifft(Hd1));
[h1,w1]=freqz(u1);
%加2个过渡点
m2=0:(M+1)/2;
Wm2=2*pi*m2./(M+1);
mtr2=floor(Wp*(M+1)/(2*pi))+2;
Ad2=[Wm2<=Wp];
Ad2(mtr2)=0.38;
Hd2=Ad2.*exp(-j*0.5*M*Wm2);
Hd2=[Hd2 conj(fliplr(Hd2(2:(M+1)/2)))];
u2=real(ifft(Hd2));
[h2,w2]=freqz(u2);
plot(w0,abs(h0),'r');
hold on;
plot(w1,abs(h1),'-- g');
plot(w2,abs(h2),'-. b');
xlabel('归一化角频率 w (rad)');
ylabel('幅度 |H(jw)|');
title('频率抽样法设计FIR滤波器');
grid on;
axis([0 3.5 0 1.3]);
三、实验结果和结果分析
1、用矩形窗设计一个低通FIR滤波器
阶数越大,滤波器逼近效果越好,但下降沿的吉布斯效应越明显。
经对比,采用矩形窗比采用哈明窗逼近效果更好,但纹波比较大,不如哈明窗平坦。
2、用凯泽而窗、哈明窗、矩形窗设计低通、高通滤波器:
Kaiser窗设计的FIR滤波器在各带的波动是相等的,所以kaiserord是利用最小的波动值来估计滤波器的阶数。当取通带内纹波系数为0.1dB时,发现Kaiser窗和矩形窗效果相同。但当Rs=0.01dB时,采用Kaiser窗比采用矩形窗逼近效果更好。所以在纹波系数要求较高时,采用Kaiser窗设计Fir滤波器。
采用Kaiser窗和矩形窗都不如采用Hamming窗逼近的效果平坦,但是边沿更陡峭。
3、没有过渡点、有1个过渡点、有2个过渡点的幅频特性如下图所示
过渡带[ p, s]之间加入一个幅度在0和1之间的过渡点来设计滤波器,则过渡点的幅度值T1的大小将影响设计出的滤波器性能。能使滤波器阻带衰减达到最大的过渡点幅度值T1称为最优值,最优值可通过优化算法或实验得出。增加两个过渡点可以进一步增加阻带衰减可考虑。
…… 此处隐藏:846字,全部文档内容请下载后查看。喜欢就下载吧 ……下一篇:面试排序问题答题技巧