???M?sin??n???0.25??2???? hd(n)?M????n??2??
验证程序:
%%%%%%%%%%%%%%%%%% %fir_2.m %lskyp
%%%%%%%%%%%%%%%%%% wp=0.2*pi; N=10;
b=fir1(N,wp/pi,boxcar(N+1)); t=0:10;
subplot(211) stem(t,b);
title('滤波器的单位脉冲响应'); h=fft(b,16); h=abs(h); subplot(212)
f=linspace(0,0.5,8) plot(f,h(1:8)) title('用fft验证')
运行结果:
滤波器的单位脉冲响应0.20.150.10.050012345用fft验证16789100.5000.050.10.150.20.250.30.350.40.450.5
3) 编程验证窗长和窗形状对实际滤波器性能的影响。如要求用窗函数法设计一
个线性相位FIR数字低通滤波器,用理想低通滤波器作为逼近滤波器,截止
?wc?rad4频率,用四种窗函数(矩形窗,汉宁窗(升余弦窗),哈明窗(改
进的升余弦窗),布莱克曼窗)设计该滤波器,选择窗函数的长度N?15,33两种情况。
程序如下:
%%%%%%%%%%%%%%%%%% %fir_3.m %lskyp
%%%%%%%%%%%%%%%%%% wc=pi/4; N=15;
window=boxcar(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(221) plot(w,h) grid on;
title('矩形窗,N=15')
N=33;
window=boxcar(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(223) plot(w,h) grid on;
title('矩形窗,N=33')
N=15;
window=hanning(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(222) plot(w,h) grid on;
title('汉宁窗,N=15')
N=33;
window=hanning(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h);
subplot(224) plot(w,h) grid on;
title('汉宁窗,N=33')
figure(2)
wc=pi/4; N=15;
window=hamming(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(221) plot(w,h) grid on;
title('汉明窗,N=15')
N=33;
window=hamming(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(223) plot(w,h) grid on;
title('汉明窗,N=33')
N=15;
window=blackman(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(222) plot(w,h) grid on;
title('blackman窗,N=15')
N=33;
window=blackman(N+1); b=fir1(N,wc/pi,window); [h,w]=freqz(b,1,256,1) h=abs(h); subplot(224) plot(w,h) grid on;
title('blackman窗,N=33') 运行结果:
矩形窗,N=151.510.5000.20.40.60.8矩形窗,N=331.510.5000.20.40.60.8汉明窗,N=1510.5000.20.40.60.8汉明窗,N=331.510.5000.20.40.60.8汉宁窗,N=1510.5000.20.40.60.8汉宁窗,N=331.510.5000.20.40.60.8blackman窗,N=1510.5000.20.40.60.8blackman窗,N=3310.5000.20.40.60.8