FIR数字滤波器设计.docx
《FIR数字滤波器设计.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器设计.docx(12页珍藏版)》请在冰豆网上搜索。
![FIR数字滤波器设计.docx](https://file1.bdocx.com/fileroot1/2022-11/24/39989a64-8b63-48cc-bdec-7d4f3ebe7922/39989a64-8b63-48cc-bdec-7d4f3ebe79221.gif)
FIR数字滤波器设计
第四章FIR数字滤波器的设计
——04006701田华梅
一、实验目的
(1)掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉相应的MATLAB编程。
(2)熟悉线性相位FIR滤波器的幅频特性和相频特性。
(3)了解各种不同窗函数对滤波器性能的影响。
二、实验内容
(1)N=45,,计算并画出矩形窗、汉明窗、布莱克曼的归一化额副频谱,并比较各自的主要特点。
程序如下:
N=45;
b1=boxcar(N);
b2=hamming(N);
b3=blackman(N);
[h1,w1]=freqz(b1,1);
[h2,w2]=freqz(b2,1);
[h3,w3]=freqz(b3,1);
plot(w1/pi,20*log10(abs(h1)),'r',w2/pi,20*log10(abs(h2)),'b',w3/pi,20*log10(abs(h3)),'g');
axis([0,1,-100,50]);grid;
xlabel('归一化频率');ylabel('幅度/dB');
图形如下:
各自特点:
矩形窗:
过渡带较窄,主瓣也比较窄,约为汉明窗的一半,旁瓣也幅度较大。
汉明窗:
比起矩形窗和布莱克曼窗过渡带,主瓣,旁瓣幅度都居两者之间。
布莱克曼窗:
主瓣较宽,旁瓣幅度小,但过渡带宽。
(2)N=15,带通滤波器的两个通带边界分别是w1=0.3
w2=0.5
.用汗宁窗设计此线性相位带通滤波器,观察他的实际3dB和20dB带宽。
N=45,重复这一设计,观察幅频和相频特性的变化,注意长度N变化的影响。
程序如下:
N1=15;N2=45;
wc1=0.3;wc2=0.5;
Wc=[wc1,wc2];
b1=fir1(N1,Wc,hanning(N1+1));
b2=fir1(N2,Wc,hanning(N2+1));
[h1,w1]=freqz(b1,1);
[h2,w2]=freqz(b2,1);
figure
(1);title('hanning');
subplot(2,2,1);plot(w1/pi,20*log(abs(h1)));
grid;xlabel('N1=15:
归一化频率');ylabel('幅度/dB');
subplot(2,2,2);plot(w2/pi,20*log(abs(h2)));
grid;xlabel('N2=45:
归一化频率');ylabel('幅度/dB');
subplot(2,2,3);plot(w1/pi,angle(h1));
grid;xlabel('N1=15:
归一化频率');ylabel('相位');
subplot(2,2,4);plot(w2/pi,angle(h2));
grid;xlabel('N2=45:
归一化频率');ylabel('相位');
图形如下:
比较图形可知:
N增大时,主瓣变窄,因为主瓣宽为8
/N,与N成反比。
旁瓣幅度不变,过渡带宽变窄。
相位变化更频繁。
N=15时,3dB带宽0.2
,20dB带宽约为0.3
N=45时,3dB带宽0.2
,20dB带宽略大于0.2
(3)分别改用矩形窗和布莱克曼窗,设计
(2)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点。
程序如下:
N1=15;N2=45;wc1=0.3;wc2=0.5;
Wc=[wc1,wc2];
b1=fir1(N1,Wc,boxcar(N1+1));
b2=fir1(N2,Wc,boxcar(N2+1));
[h1,w1]=freqz(b1,1);[h2,w2]=freqz(b2,1);
figure
(2);
subplot(2,1,1);plot(w1/pi,20*log(abs(h1)));
grid;xabel('N1=15:
归一化频率');
ylabel('幅度/dB');title('Boxcar');
subplot(2,1,2);plot(w2/pi,20*log(abs(h2)));
grid;xlabel('N2=45:
归一化频率');
ylabel('幅度/dB');
b1=fir1(N1,Wc,blackman(N1+1));
b2=fir1(N2,Wc,blackman(N2+1));
[h1,w1]=freqz(b1,1);
[h2,w2]=freqz(b2,1);
figure(3);
subplot(2,1,1);pot(w1/pi,20*log(abs(h1)));
grid;xlabel('N1=15:
归一化频率');
ylabel('幅度/dB');title('Blackman');
subplot(2,1,2);plot(w2/pi,20*log(abs(h2)));
grid;xlabel('N2=45:
归一化频率');
ylabel('幅度/dB');
图形如下:
比较三种窗,各自特点如下:
汗宁窗:
主瓣较宽,过渡带宽带,旁瓣幅度居中
矩形窗:
主瓣最窄,过渡带最窄,旁瓣也幅度最大
布莱克曼窗:
主瓣宽,过渡带最宽,旁瓣也幅度最小
(4)用凯塞窗设计一专用线性相位滤波器,N=40,|Hd(
)|如实验四图,当β=4、6、10时,分别设计、比较他们的幅频特性的影响,比较三种窗的特点。
程序如下:
N=40;bt1=4;bt2=6;bt3=10;n=0:
1:
39;af=(N-1)/2;
wn1=kaiser(N,bt1);wn2=kaiser(N,bt2);wn3=kaiser(N,bt3);
hd=(sin(0.4*pi*(n-af))-sin(0.2*pi*(n-af))+sin(0.8*pi*(n-af))-sin(0.6*pi*(n-af)))./(pi*(n-af));
b1=wn1'.*hd;b2=wn2'.*hd;b3=wn3'.*hd;
[h1,w1]=freqz(b1);[h2,w2]=freqz(b2);[h3,w3]=freqz(b3);
figure
(1);
subplot(2,1,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-80,10]);grid;
xlabel('归一化频率');
ylabel('幅度/dB');title('β=4');
subplot(2,1,2);
plot(w1/pi,angle(h1));grid;
xlabel('归一化频率');
ylabel('相位');
figure
(2);
subplot(2,1,1);
plot(w2/pi,20*log10(abs(h2)));
axis([0,1,-80,10]);grid;
xlabel('归一化频率');
ylabel('幅度/dB');title('β=6');
subplot(2,1,2);
plot(w2/pi,angle(h2));grid;
xlabel('归一化频率');
ylabel('相位');
figure(3);
subplot(2,1,1);
plot(w3/pi,20*log10(abs(h3)));
axis([0,1,-80,10]);grid;
xlabel('归一化频率');
ylabel('幅度/dB');title('β=10');
subplot(2,1,2);
plot(w3/pi,angle(h3));grid;
xlabel('归一化频率');
ylabel('相位');
图形如下:
比较三幅图形得:
随着β的增大,主瓣宽度变小,过渡带也逐步变宽,但旁瓣幅度也逐渐变小。
(5)用频率采样法设计(4)中的滤波器,过渡带分别设一个过渡点,令H(k)=0.5.比较两种方法的结果。
程序如下:
N=40;
alfa=(40-1)/2;
k=0:
N-1;
w=(2*pi/N)*k;
hrs=[zeros(1,2),0.5,ones(1,5),0.5,0,0.5,ones(1,5),0.5,zeros(1,5),0.5,ones(1,5),0.5,0,0.5,ones(1,5),0.5,zeros(1,3)];
k1=0:
floor((N-1)/2);k2=floor((N-1)/2)+1:
N-1;
angH=[-alfa*(2*pi)/N*k1,alfa*(2*pi/N*(N-k2))];
H=hrs.*exp(j*angH);
b=real(ifft(H));
[h,w]=freqz(b,1);
figure
(2);
subplot(2,1,1);plot(w/pi,20*log10(abs(h)));
axis([0,1,-80,10]);grid;
xlabel('归一化频率');ylabel('幅度/dB');
subplot(2,1,2);plot(w/pi,angle(h));grid;
xlabel('归一化频率');ylabel('相位');
图形如下:
用这种方法设计,相对于(4)中主瓣变宽,过渡带也变宽,旁瓣幅度变大,
(6)用雷米兹交替算法,设计一个线性相位高通FIR数字滤波器,并比较(4)、(5)、(6)三种方法的结果。
程序如下:
N=40;
M=N-1;
f=[00.150.20.40.450.550.60.80.851];
a=[0011001100];
b=remez(M,f,a);
[h,w]=freqz(b,1);
figure(5);
subplot(2,1,1);plot(w/pi,20*log10(abs(h)));
axis([0,1,-80,10]);grid;
xlabel('频率/Hz');ylabel('幅度/dB');
subplot(2,1,2);plot(w/pi,angle(h));grid;
xlabel('频率/Hz');ylabel('相位');
图形如下:
比较三种方法:
(4)中旁瓣幅度最小,主瓣较窄
(5)中过渡带最宽,主瓣和(6)中差不多。
(6)中过渡带最窄,旁瓣幅度最大
(7)用雷米兹交替算法,设计一个线性相位高通FIR滤波器,其指标为:
通带边界频率为fc=800Hz,阻带边界fr=500Hz,通带波动δ=1dB阻带最小衰减At=40dB,采样频率fs=5000Hz。
程序如下:
δ1=1-10^(-δ/20)=0.109;δ2=10^(-At/20)=0.01;
fedge=[500,800];
maval=[0,1];
dev=[δ1,δ2];
fs=5000;
[N,fpts,mag,wt]=remezord(fedge,maval,dev,fs);
b=remez(N,fpts,mag,wt);
[h,w]=freqz(b,1,512);
plot(w*2500/pi,20*log10(abs(h)));
grid;
xlabel('频率/Hz');ylabel('幅度/dB');
图形如下:
三、思考题
(1)定性的说明本实验程序程序设计的FIR滤波器的3dB截止频率在什么位置?
它等于理想频率响应|Hd(
)|的截止频率吗?
答:
不等于。
(2)如果没有给定的h(n)的长度N,而是给定了通带边缘截止频率wc和阻带临界频率wp,以及相应的衰减,能根据这些条件用窗函数设计线性相位FIR低通滤波器吗?
答:
可以,用凯塞窗或雷米兹交替算法设计,可以估算出相应的N,画出幅频特性曲线,调整N可得到所需结果。