MATLAB讲义第七章作业及答案.doc
用窗函数法设计线性相位FIR低通滤波器,通带截止频率Wp=0.5π,Ws=0.6π,阻带衰减不小于40dB,通带衰减不大于3dB
解:因为衰减不小于40dB,可选择的窗口有哈明窗和汉宁窗。而汉宁窗有较小的过度带,因此具有较小的阶数,因此先用汉宁窗。
方法一:
clear
wp=0.5*pi;ws=0.6*pi;deltaw=ws-wp;
N0=ceil(6.2*pi/deltaw);%根据汉明窗设计计算所需的滤波器长度,课本211页查表
N=N0+mod(N0+1,2);%为实现第一类偶对称滤波器,应确保长度N为奇数
wdhm=hanning(N);%求窗函数
wc=(ws+wp)/2;%求截止频率
tao=(N-1)/2;n=0:N-1;m=n-tao+eps;%求理想脉冲响应
hd=sin(wc*m)./(pi*m);
hn=hd.*wdhm';%设计的脉冲响应
subplot(2,2,1),stem(n,hd);xlabel('n');ylabel('hd(n)');title('理想脉冲响应')
subplot(2,2,2),stem(n,wdhm);xlabel('n');ylabel('wdhm');title('汉宁窗')
subplot(2,2,3),stem(n,hn);xlabel('n');ylabel('h(n)');title('设计的滤波器频率特性')
b=hd.*wdhm';
[H,w]=freqz(b,1);
subplot(2,2,4),plot(w,20*log10(abs(H)));grid;title('幅度响应');
结果:
方法二:
>> wp=0.5*pi;
>> ws=0.6*pi;
>> wd=ws-wp;
>> N=ceil(8*pi/wd);
>> wc=(0.5+0.6)*pi/2;
>> window=hanning(N+1);
>> b=fir1(N,wc/pi,window);
>> freqz(b,1,512)