哈尔滨工业大学威海校区_《数字信号处理》实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理
实验报告
实验名称:实验三FIR滤波器设计实验日期:2011.11.20
姓名:尤伟
学号:090240328
哈尔滨工业大学(威海)
实验三FIR滤波器设计
一、实验目的
1、熟悉FIR 滤波器设计的基本方法;
2、掌握窗函数法设计FIR 滤波器的原理和方法;
3、熟悉线性相位FIR 滤波器的幅频特性和相位特性;
4、了解不同窗函数对滤波器性能的响应。
二、实验原理
1、窗函数法设计FIR 滤波器原理
采用理想滤波器的截断单位脉冲响应序列实现实际滤波器。
对理想低通滤波器的单位脉冲响应h(n)进行长度为N 的截取,得到长度为N 的序列h(n),截取时保证因果性和对滤波(d) 器线性相位的要求。
为减少吉布斯效应,对h(n)进行加窗,选择合适的窗函数以保证阻带衰减和过渡带要求。注意窗函数的副瓣影响滤波器的阻带衰减,主瓣宽度影响滤波器的过渡带宽。
理想低通频率响应
理想低通单位取样响应
关于α偶对称,实序列
全通系统的单位取样响应
2、窗函数法设计FIR 低通过程
1) 取理想低通单位取样响应的N 点,N 奇数(N-1 阶滤波器)
2) 根据阻带衰减和过渡带要求选取窗函数—在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的函数w(n)
3) 得到加窗后的序列h(n)=hd(n)w(n) 。w(n) 时关于(N-1)/2 偶对称,所以h(n)对称性取决于hd(n)
4) 验证h(n)的频率响应是否满足设计要求。若满足,则终止;否则重复2、3、4 步骤。
3、窗函数法设计高通
高通= 全通—低通.
与低通设计的不同只在第1)步骤,选取理想高通的单位取样响应序列N 点
4、设计带通
带通= 低通1 —低通2 带通截止频率为ωc1 >ωc2,选择低通1 截止频率ωc1,低通1 截止频率ωc2 5、设计带阻
带阻= 低通+ 高通
6、频率采样法设计FIR 滤波器原理
若要求设计的滤波器Hd(ejw)公式复杂或者根本不能用封闭公式给出,对Hd(ejw)进行频率域取样,得到N 点离散取样值H(k), 用N 点频率取样值得到滤波器。H(k) 要满足线性相位FIR 的频率响应要求。
三、实验内容
1、验证窗函数N 变化时,验证其频谱主瓣副瓣比、主瓣宽度的变化。
a)矩形窗函数的N 变化时,验证其其频谱主瓣副瓣幅度比基本不会发生变化,而主瓣宽度将会变窄。这说明,当用矩形窗函数设计滤波器时,增大N 不能使得阻带衰减减小,但能够减小过渡带。
b)再选取其他的窗如hamming/hanning 窗,验证当N 变化时,其频谱主瓣宽度变化、主瓣副瓣比值变化情况。
程序:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 数字信号处理实验 - FIR滤波器设计
% 1 验证窗函数N变化时,验证其频谱主瓣副瓣比、主瓣宽度的变化
% a)矩形窗函数的N变化时,验证其其频谱主瓣副瓣幅度比基本不会发生变
化,
% 而主瓣宽度将会变窄。这说明,当用矩形窗函数设计滤波器时,增大N 不
能使
% 得阻带衰减减小,但能够减小过渡带。
% b)再选取其他的窗如hamming/hanning 窗,验证当N 变化时,其频谱主瓣宽
% 度变化、主瓣副瓣比值变化情况。
% 姓名:尤伟
% 学号:090240328
% 时间:2011.11.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc,clear all,close all;
N_array =[ 21 81 ];
Point_array =[ 'b', 'r' ];
for I=1:length(N_array)
N = N_array(I);
rect_window = ones(1,N);
hanning_window = hanning(N);
hamming_window = hanning(N);
H_rect = freqz( rect_window, 1, 512 );
H_hann = freqz( hanning_window, 1, 512 );
H_hamm = freqz( hamming_window, 1, 512 );
freq_norm = [0:511]/512; %归一化的频率轴
subplot(3,1,1);
plot( freq_norm,20*log10(abs(H_rect)/max(abs(H_rect))) ,Point_array(I ) ); hold on;
title( '矩形窗频谱' );
xlabel( '归一化频率 w/pi' ); ylabel( '幅度(dB)' );
subplot(3,1,2);
plot( freq_norm,20*log10(abs(H_hann)/max(abs(H_hann))) ,Point_array(I ) ); hold on;
title( 'Hanning窗频谱' );
xlabel( '归一化频率 w/pi' ); ylabel( '幅度(dB)' );
subplot(3,1,3);
plot( freq_norm,20*log10(abs(H_hamm)/max(abs(H_hamm))) ,Point_array(I ) ); hold on;
title( 'Hamming窗频谱' );
xlabel( '归一化频率 w/pi' ); ylabel( '幅度(dB)' );
end
subplot( 3,1,1); legend( ['N=' num2str(N_array(1))], ['N='