FIR滤波器的设计讲解学习Word格式.docx
《FIR滤波器的设计讲解学习Word格式.docx》由会员分享,可在线阅读,更多相关《FIR滤波器的设计讲解学习Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
wn1=kaiser(N,0);
wn2=hamming(N);
wn3=blackman(N);
[h1,w1]=freqz(wn1,N);
[h2,w2]=freqz(wn2,N);
[h3,w3]=freqz(wn3,N);
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,-120,10]);
grid;
xlabel('
归一化频率/\pi'
ylabel('
幅度/dB'
title('
三种窗口函数'
legend('
矩形窗'
'
汉明窗'
布莱克曼窗'
3);
分析:
阻带衰减和过渡带带宽是相互矛盾的,矩形窗过渡带带宽窄,但是阻带衰减比较少;
布莱克曼窗过渡带带宽宽,但是阻带衰减比较大
2.N=15,带通滤波器的两个通带边界分别是ω1=0.3π,ω2=0.5π。
用汉宁窗设计此线性相位带通滤波器,观察它的实际3dB和20dB带宽。
N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化的影响。
N=15;
h=fir1(N-1,[0.30.5],'
bandpass'
hanning(N));
figure
(1)
freqz(h,1);
axis([0,1,-60,10]);
N=15,汉宁窗'
figure
(2)
N=45,汉宁窗'
结论:
增加窗口函数的长度能够在幅度频谱和相位频谱上获得较好的特性。
但代价是增加了计算量和系统的阶数。
3.分别改用矩形窗和布莱克曼窗,设计
(2)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点。
%矩形窗
kaiser(N,0));
[h1,w1]=freqz(h,1);
subplot(2,1,1);
plot(w1/pi,20*log10(abs(h1)));
N=15,矩形窗'
subplot(2,1,2);
N=45,矩形窗'
%布莱克曼窗
blackman(N));
plot(w1/pi,20*log10(abs(h1)));
N=15,布莱克曼窗'
N=45,布莱克曼窗'
总结:
同实验内容1的结论,除此之外,利用各窗口函数构造的带通滤波器的特性也有些差别。
汉宁窗在这方面具有较好的特性。
4.用Kaiser窗设计一专用线性相位滤波器,N=40,当β=4、6、10时,分别设计、比较它们的幅频和相频特性,注意β取不同值时的影响。
N=40;
f=[00.20.20.40.40.60.60.80.81];
a=[0011001100];
beta=4;
h=fir2(N-1,f,a,kaiser(N,beta));
figure;
beta=4时凯塞窗专用线性相位滤波器'
beta=6;
beta=6时凯塞窗专用线性相位滤波器'
beta=10;
beta=10时凯塞窗专用线性相位滤波器'
Kaiser窗的beta值越大,过渡带的带宽越宽,阻带的衰减越是厉害;
beta值越小,过渡带的带宽越窄,阻带的衰减越是却有所降低。
所以在实际应用的时候,要权衡过渡带带宽和阻带衰减,以获得最优性能!
5.用频率采样法设计(4)中的滤波器,过渡带分别设一个过渡点,令H(k)=0.5。
比较两种不同方法的结果。
Hk=[zeros(1,3)0.5ones(1,5)0.5zeros(1,1)0.5ones(1,5)0.5zeros(1,5)-0.5-ones(1,5)-0.5zeros(1,1)-ones(1,5)-0.5zeros(1,3)];
k=0:
N-1;
hn=real(ifft(Hk.*exp(-j*pi*(N-1)*k/N)));
[Hw]=freqz(hn,1);
plot(w/pi,20*log10(abs(H)));
axis([01-8010]);
)
ylabel('
频率采样法设计专用线性相位滤波器'
利用频率采样,获得的滤波器通带内波动较好,但衰减有所降低,过渡带也比较宽!
6.用雷米兹(Remez)交替算法设计(4)中的滤波器,并比较(4)、(5)、(6)三种不同方法的结果。
f=[00.150.20.40.450.550.60.80.851];
a=[0011001100];
wt=[21212];
b=remez(N-1,f,a,wt);
[h,w]=freqz(b,1);
plot(w/pi,20*log10(abs(h)));
axis([01-7010]);
雷米兹交替算法设计专用线性相位滤波器'
利用雷米兹交替算法可以在通带波动和阻带的衰减上选择一个较好的平衡。
7.利用雷米兹交替算法,设计一个线性相位高通FIR数字滤波器,其指标为:
通带边界频率fc=800Hz,阻带边界频率fr=500Hz,通带波动δ=1dB,阻带最小衰减At=40dB,采样频率fs=5000Hz。
fedge=[500800];
mval=[01];
dev=[0.010.109];
fs=5000;
[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs);
b=remez(N,fpts,mag,wt);
plot(w*2500/pi,20*log10(abs(h)));
axis([02500-6010]);
频率/Hz'
雷米兹交替算法设计线性相位高通FIR数字滤波器'
雷米兹算法是建立在频域采样的基础上,利用最大值最小化原理,在带内波动和阻带衰减上进行最优化处理,所以得到的滤波器的效果很好。
二、思考题
1)定性地说明用本实验程序设计的FIR滤波器的3dB截止频率在什么位置?
它等于理想
频率响应Hd(ejω)的截止频率吗?
答:
如果在时域通过矩形窗截取的方法,3dB截止频率并不等于理想频率响应的截止频率,但如果通过在时域采样的方法,3dB截止频率和理想的截止频率有较好的吻合
2)如果没有给定h(n)的长度N,而是给定了通带边缘截止频率ωc和阻带临界频率ωp,以及相应的衰减,能根据这些条件用窗函数法设计线性相位FIR低通滤波器吗?
答:
可以的,利用matlabfir1函数,将M取得大一些,就可以获得比较好的线性相位低通滤波器。