FIR滤波器设计与窗函数分析
% 清空工作区和关闭所有图形窗口 close all; clear all; % 设置滤波器截止频率和阶数 wn=0.25; N1=15; N2=33; % 生成汉宁窗和三角窗 window1=hanning(N1+1); window2=hanning(N2+1); % 生成FIR滤波器系数 b1=fir1(N1,wn,window1); b2=fir1(N2,wn,window2); % 计算幅频响应和相频响应 [H1,W1]=freqz(b1,1,512,2); [H2,W2]=freqz(b2,1,512,2); % 绘制幅频响应和相频响应图像 figure subplot(2,1,1) plot(W1,20log(abs(H1)),'r+'); hold on plot(W2,20log(abs(H2)),'b'); hold off; xlabel('归一化频率'); ylabel('幅度/dB'); legend('N1=15','N2=33') subplot(2,1,2) plot(W1,angle(H1),'r+'); hold on plot(W2,angle(H2),'b'); hold off; xlabel('归一化频率'); ylabel('相频/degree'); legend('N1=15','N2=33')
% 绘制不同窗函数对FIR滤波器幅频响应的影响 win1=triang(N2+1); win2=hanning(N2+1); win3=hamming(N2+1); win4=blackman(N2+1); win=[win1,win2,win3,win4]; figure for i=1:4 temp=fir1(N2,wn,win(:,i)); [H,W]=freqz(temp,1,512,2); subplot(2,2,i) plot(W,20log(abs(H))); hold on;plot(W,-3ones(size(W)),'r-.');%3db频率 hold on;plot(W,-20*ones(size(W)),'k-.');%20db频率 xlabel('归一化频率'); ylabel('幅度/dB'); grid on; legend('幅频响应','-3dB','-20dB') end
原文地址: https://www.cveoy.top/t/topic/ojTv 著作权归作者所有。请勿转载和采集!