%% 题目:数字信号处理实验六 % 本实验涉及FIR滤波器设计及窗函数的使用 % 作者:XXX % 创建时间:XXXX.XX.XX

close all; % 关闭所有图形窗口 clear all; % 清空工作区变量

wn=0.25; % 设计通带截止频率 N1=15; % FIR滤波器阶数 N2=33; % FIR滤波器阶数

% 设计汉宁窗和三角窗 window1=hanning(N1+1); % 汉宁窗 window2=hanning(N2+1); % 汉宁窗 win1=triang(N2+1); % 三角窗 win2=hanning(N2+1); % 汉宁窗 win3=hamming(N2+1); % 海明窗 win4=blackman(N2+1); % 布莱克曼窗 win=[win1,win2,win3,win4]; % 窗函数矩阵

% 分别用汉宁窗和三角窗设计FIR滤波器,绘制其幅频响应和相频响应曲线 b1=fir1(N1,wn,window1); % 用汉宁窗设计FIR滤波器系数 b2=fir1(N2,wn,window2); % 用汉宁窗设计FIR滤波器系数 [H1,W1]=freqz(b1,1,512,2); % 计算FIR滤波器的频率响应 [H2,W2]=freqz(b2,1,512,2); % 计算FIR滤波器的频率响应 figure % 新建绘图窗口 subplot(2,1,1) % 将图像分割为2行1列,并在第1个子图中绘制 plot(W1,20log(abs(H1)),'r+'); % 绘制幅频响应曲线,频率按照W1归一化,红色加号表示N1=15 hold on % 保持当前图形,并在同一图形中添加其它图形 plot(W2,20log(abs(H2)),'b'); % 绘制幅频响应曲线,频率按照W2归一化,蓝色实线表示N2=33 hold off % 关闭当前图形的句柄,并将其从屏幕上删除 xlabel('归一化频率'); % 设置x轴标签 ylabel('幅度/dB'); % 设置y轴标签 legend('N1=15','N2=33') % 添加图例 subplot(2,1,2) % 将图像分割为2行1列,并在第2个子图中绘制 plot(W1,angle(H1),'r+'); % 绘制相频响应曲线,频率按照W1归一化,红色加号表示N1=15 hold on % 保持当前图形,并在同一图形中添加其它图形 plot(W2,angle(H2),'b'); % 绘制相频响应曲线,频率按照W2归一化,蓝色实线表示N2=33 hold off % 关闭当前图形的句柄,并将其从屏幕上删除 xlabel('归一化频率'); % 设置x轴标签 ylabel('相频/degree'); % 设置y轴标签 legend('N1=15','N2=33') % 添加图例

% 分别用三角窗、汉宁窗、海明窗、布莱克曼窗设计FIR滤波器,绘制其幅频响应曲线 figure % 新建绘图窗口 for i=1:4 % 分别用四种窗函数设计FIR滤波器 temp=fir1(N2,wn,win(:,i)); % 用窗函数设计FIR滤波器系数 [H,W]=freqz(temp,1,512,2); % 计算FIR滤波器的频率响应 subplot(2,2,i) % 将图像分割为2行2列,并在第i个子图中绘制 plot(W,20log(abs(H))); % 绘制幅频响应曲线,频率按照W归一化 hold on;plot(W,-3ones(size(W)),'r-.'); % 绘制-3dB截止频率的垂直参考线 hold on;plot(W,-20*ones(size(W)),'k-.'); % 绘制-20dB截止频率的垂直参考线 xlabel('归一化频率'); % 设置x轴标签 ylabel('幅度/dB'); % 设置y轴标签 grid on; % 显示网格线 legend('幅频响应','-3dB','-20dB') % 添加图例 end

数字信号处理实验六:FIR滤波器设计与窗函数应用

原文地址: https://www.cveoy.top/t/topic/ojS0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录