%所希望的频率响应在0~0.25*pi之间为1,在0.25*pi~pi之间为0,对h(n)加窗截断,
%选择矩形窗和任意一种其他窗口,每种窗口长度分别为M=10、20、40三种情况,
%对每种情况要进行性能好坏的分析。
%首先需要理解实际的滤波器是没有办法做到理想状态的。如果你要理想状态的话,
%就直接就是矩形窗序列乘序列就OK, 矩形窗只能达到20.9dB 的衰减
%但是实际的加窗构成的滤波器,必然会存在波纹,和过渡带 滤波器的衰减指标主要
%是由阻带衰减确定的 不妨设 阻带衰减为 50dB 那么要达到这个指标,通过查表,
%可以知道-必须是hamming window(54.5dB) 或 blackman window(75.3dB)
%下面是加窗的低通FIR滤波器
clear
clc;
wc=0.25*pi;
wdelta=wc-2*wc/3; %设定过渡带宽度
M=ceil(3.32*pi/wdelta) ; %窗口长度 这里计算合理的窗长
N1=2*M+1;
winlp=hamming(N1);
Flp=fir1(N1-1,wc/pi,winlp);
freqz(Flp,1,512);
title('Frequency & Phase Response ');
% 下面就是按你的要求啦,窗长M=10、20、40
M=[10,20,40];
N=2*M+1;
% M=10
figure(2);
Win0=hamming(N(1));
FLP0=fir1(N(1)-1,wc/pi,Win0);
freqz(FLP0,1,512);
title('Frequency & Phase Response M=10');
% M=20
figure(3);
Win1=hamming(N(2));
FLP1=fir1(N(2)-1,wc/pi,Win1);
freqz(FLP1,1,512);
title('Frequency & Phase Response M=20');
% M=30
figure(4);
Win2=hamming(N(3));
FLP2=fir1(N(3)-1,wc/pi,Win2);
freqz(FLP2,1,512);
title('Frequency & Phase Response M=30');
% 至于矩形窗 设 20dB衰减
figure(5)
M0=ceil(0.92*pi/wdelta) ; %窗口长度 这里计算合理的窗长
N0=2*M0+1;
ww=boxcar(N0);
fflp=fir1(N0-1,wc/pi,ww);
freqz(fflp,1,512);
title('Frequency & Phase Response Rectangular');
= =