比较五种窗函数特性matlab程序
%在同一指标下用五种窗口设计FIR低通滤波器:N=50,wc=0.5π
N=50;
wc=0.5*pi;
n=0:N-1;
alpha=(N-1)/2; %滤波器的相位延迟
s=n-alpha;
hd=sin(wc*s)./(pi*s); %理想滤波器脉冲响应
win1=rectwin(N); %采用矩形窗
figure(1);
subplot(2,3,1);
stem(n,win1);
title('矩形窗');
win2=hamming(N); %采用海明窗
subplot(2,3,2);
stem(n,win2);
title('海明窗');
win3=triang(N); %采用三角窗
subplot(2,3,3);
stem(n,win3);
title('三角窗');
win4=hanning(N); %采用汉宁窗
subplot(2,3,4);
stem(n,win4);
title('汉宁窗');
win5=blackman(N); %采用布莱克曼窗
subplot(2,3,5);
stem(n,win5);
title('布莱克曼窗');
%各种窗函数的傅里叶变换
[H1,w1]=freqz(win1);
lj1=abs(H1);
db1=20*log10((lj1+eps)/max(lj1));
figure(2);
subplot(2,3,1);
plot(w1/pi,db1);
title('矩形窗(dB)');
grid on;
[H2,w2]=freqz(win2);
lj2=abs(H2);
db2=20*log10((lj2+eps)/max(lj2));
subplot(2,3,2);
plot(w2/pi,db2);
title('海明窗(dB)');
grid on;
[H3,w3]=freqz(win3);
lj3=abs(H3);
db3=20*log10((lj3+eps)/max(lj3));
subplot(2,3,3);
plot(w3/pi,db3);
title('三角窗(dB)');
grid on;
[H4,w4]=freqz(win4);
lj4=abs(H4);
db4=20*log10((lj4+eps)/max(lj4));
subplot(2,3,4);
plot(w4/pi,db4);
title('汉宁窗(dB)');
grid on;
[H5,w5]=freqz(win5);
lj5=abs(H5);
db5=20*log10((lj5+eps)/max(lj5));
subplot(2,3,5);
plot(w5/pi,db5);
title('布莱克曼窗(dB)');
grid on;
%理想低通滤波器加各种窗后的实际脉冲响应
h1=hd.*win1';
h2=hd.*win2';
h3=hd.*win3';
h4=hd.*win4';
h5=hd.*win5';
%理想低通滤波器加各种窗后的实际幅频响应
[Hc1,wc1]=freqz(h1);
ljc1=abs(Hc1);
dbc1=20*log10((ljc1+eps)/max(ljc1));
figure(3);
subplot(2,3,1);
plot(wc1/pi,dbc1);
title('加矩形窗后的实际幅频特性曲线(dB)');
grid on;
[Hc2,wc2]=freqz(h2);
ljc2=abs(Hc2);
dbc2=20*log10((ljc2+eps)/max(ljc2));
subplot(2,3,2);
plot(wc2/pi,dbc2);
title('加海明窗后的实际幅频特性曲线(dB)');
grid on;
[Hc3,wc3]=freqz(h3);
ljc3=abs(Hc3);
dbc3=20*log10((ljc3+eps)/max(ljc3));
subplot(2,3,3);
plot(wc3/pi,dbc3);
title('加三角窗后的实际幅频特性曲线(dB)');
grid on;
[Hc4,wc4]=freqz(h4);
ljc4=abs(Hc4);
dbc4=20*log10((ljc4+eps)/max(ljc4));
subplot(2,3,4);
plot(wc4/pi,dbc4);
title('加汉宁窗后的实际幅频特性曲线(dB)');
grid on;
[Hc5,wc5]=freqz(h5);
ljc5=abs(Hc5);
dbc5=20*log10((ljc5+eps)/max(ljc5));
subplot(2,3,5);
plot(wc5/pi,dbc5);
title('加布莱克曼窗后的实际幅频特性曲线(dB)');
grid on;
%矩形窗设计的过渡带最窄,但阻带最小衰减也最差
%布莱克曼窗设计的阻带最小衰减最好,但过渡带最宽,约为矩形窗设计的三倍。