汉宁窗
clearclose allclcN=45;wn=[0.3,0.5];%截止频率window=hanning(N+1); %计算长度为N的汉宁窗b=fir1(N,wn,window); %N是阶数,wn是截止频率[H,w]=freqz(b); subplot(2,1,1);plot(w/pi,20*log10(abs(H)));grid; xlabel('归一化频率');ylabel('幅度');title('幅频响应'); subplot(2,1,2);plot(w/pi,angle(H));grid; xlabel('归一化频率');ylabel('相位');title('相位响应');
后面的矩形窗和布莱克曼窗的原理同理,matlab已经给我们准备好了函数直接去调用
clearclose allclc%矩形窗N=15% N=input('请输入 N 的值\n');wn=[0.3,0.5];% b=fir1(N,wn,boxcar(N+1)); % [H,w]=freqz(b,1,512); % subplot(2,1,1);plot(w/pi,20*log10(abs(H)));grid; xlabel('归一化频率');ylabel('幅度');title('幅频响应'); % subplot(2,1,2);plot(w/pi,angle(H));grid; xlabel('归一化频率');ylabel('相位');title('相频响应');%布莱克曼窗:(N=15 时)% N=input('请输入 N 的值\n');wn=[0.3,0.5]; window=blackman(N+1); b=fir1(N,wn,window); [H,w]=freqz(b); subplot(2,1,1);plot(w/pi,20*log10(abs(H)));grid; xlabel('归一化频率');ylabel('幅度');title('幅频响应'); subplot(2,1,2);plot(w/pi,angle(H));grid; xlabel('归一化频率');ylabel('相位');title('相频响应');