%用窗函数法设计线性相位低通滤波器 clear all; wp=0.5*pi; ws=0.6*pi; wd=ws-wp;
%hanning窗
N_hann=ceil(8*pi/wd); wc=(wp+ws)/2;
if mod(N_hann,2)==0 N_hann=N_hann+1; end
hann_win=hanning(N_hann);
b_hann=fir1(N_hann-1,wc/pi,hann_win); freq_axis=[0:pi/512:pi-pi/512]; freqn=[0:511]/512;
H_hann=freqz(b_hann,1,512); figure(1); subplot(211);
plot(freqn,20*log10(abs(H_hann)));
xlabel('归一化频率 w/pi');ylabel('幅度谱(dB)'); title('采用hanning窗设计fir滤波器幅度谱'); subplot(212);
plot(freqn,angle(H_hann));
xlabel('归一化频率 w/pi');ylabel('相位谱'); title('采用hanning窗设计fir滤波器相位谱'); %hamming窗
N_hamm=ceil(8*pi/wd); wc=(wp+ws)/2;
if mod(N_hamm,2)==0
N_hamm=N_hamm+1; end
hamm_win=hamming(N_hamm);
b_hamm=fir1(N_hamm-1,wc/pi,hamm_win); H_hamm=freqz(b_hamm,1,512); figure(2) subplot(211);
plot(freqn,20*log10(abs(H_hamm)));
xlabel('归一化频率 w/pi');ylabel('幅度谱(dB)'); title('采用hamming窗设计fir滤波器幅度谱'); subplot(212);
plot(freqn,angle(H_hamm));
xlabel('归一化频率 w/pi');ylabel('相位谱'); title('采用hamming窗设计fir滤波器相位谱'); N2_hamm=2*N_hamm;
wc=(wp+ws)/2;
if mod(N2_hamm,2)==0
N2_hamm=N2_hamm+1; end
hamm_win=hamming(N2_hamm);
b_hamm=fir1(N2_hamm-1,wc/pi,hamm_win); H_hamm=freqz(b_hamm,1,512); figure(3) subplot(211);
plot(freqn, 20*log10(abs(H_hamm)) );
xlabel('归一化频率 w/pi');ylabel('幅度谱(dB)');
title('窗长增大一倍,采用hamming窗设计fir滤波器幅度谱'); subplot(212);
plot( freqn,angle(H_hamm));
xlabel('归一化频率 w/pi');ylabel('相位谱');
title('窗长增大一倍,采用hanning窗设计fir滤波器相位谱');