资源描述
学生实验报告
开课学院及实验室: 电子楼317 2013年 05 月 27 日
学院
机械与电气工程学院
年级、专业、班
姓名
学号
实验课程名称
数字信号处理实验
成绩
实验项目名称
实验七 FIR滤波器的设计
指导老师
一、实验目的
复习巩固窗函数法设计FIR滤波器的概念和方法,观察用几种常用窗函数设计的FIR数字滤波器技术指标。
二、实验原理
FIR滤波器的设计问题在于寻求一系统函数,使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应。
1.用窗函数设计FIR滤波器的基本方法
设计思想:从时域从发,设计逼近理想。设理想滤波器的单位脉冲响应为。以低通线性相位FIR数字滤波器为例。
一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即
用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。
2.典型的窗函数
(1)矩形窗(Rectangle Window)
其频率响应和幅度响应分别为:
,
(2)三角形窗(Bartlett Window)
其频率响应为:
(3)哈宁(Hanning)窗,又称升余弦窗
其频率响应和幅度响应分别为:
(4)汉明(Hamming)窗,又称改进的升余弦窗
其幅度响应为:
(5)布莱克曼(Blankman)窗,又称二阶升余弦窗
其幅度响应为:
(6)凯塞(Kaiser)窗
其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。I0(·)是第一类修正零阶贝塞尔函数。
若阻带最小衰减表示为,β的确定可采用下述经验公式:
若滤波器通带和阻带波纹相等即δp=δs时,滤波器阶数可通过下式确定:
式中:
三、使用仪器、材料
1、硬件:计算机
2、软件:Matlab
四、实验步骤
1.知识准备
在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数的有关内容,阅读本次实验指导,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。
2.编制窗函数设计FIR滤波器的程序。绘制滤波器的幅频和相位曲线,注意长度N对曲线的影响。至少选两种不同长度,每种长度选两种窗函数。
(1) 设计一线性相位FIR数字低通滤波器,截止频率,过渡带宽度,阻带衰减dB。
(2) 设计一线性相位FIR数字高通滤波器,要求通带截止频率,阻带截止频率,通带最大衰减,阻带最小衰减。
3.对一段白噪声信号分别用上述设计好的滤波器进行滤波,分析滤波以后信号的频谱。
4.对一段频率在滤波器通带范围内的正弦波进行滤波,对比滤波前后信号的时域特性。
五、实验过程原始记录(数据、图表、计算等)
2.(1)
%用汉宁窗函数设计线性相位FIR数字低通滤波器
clear all;clc;
DB=0.4*pi;
wc=0.2*pi;
N=ceil(6.2*pi/DB)+1;
hn=fir1(N,wc/pi,hanning(N+1));
freqz(hn,1);
%用哈明窗函数设计线性相位FIR数字低通滤波器
clear all;clc;
DB=0.4*pi;
wc=0.2*pi;
N=ceil(6.6*pi/DB)+1;
hn=fir1(N,wc/pi,hamming(N+1));
freqz(hn,1);
%用汉宁窗函数设计线性相位FIR数字低通滤波器
clear all;clc;
DB=0.4*pi;
wc=0.2*pi;
N=ceil(6.2*pi/DB)+1;
hn=fir1(N+30,wc/pi,hanning(N+31)); %窗函数长度增加30
freqz(hn,1);
%用哈明窗函数设计线性相位FIR数字低通滤波器
clear all;clc;
DB=0.4*pi;
wc=0.2*pi;
N=ceil(6.6*pi/DB)+1;
hn=fir1(N+30,wc/pi,hamming(N+31));%窗函数长度增加30
freqz(hn,1);
(2)%用汉宁窗函数设计线性相位FIR数字高通滤波器
clear all;clc;
wp=0.5*pi;
ws=0.25*pi;
DB=wp-ws;
N0=ceil(6.2*pi/DB);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
hn=fir1(N-1,wc,'high',hanning(N));
freqz(hn,1);
%用哈明窗函数设计线性相位FIR数字高通滤波器
clear all;clc;
wp=0.5*pi;
ws=0.25*pi;
DB=wp-ws;
N0=ceil(6.6*pi/DB);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
hn=fir1(N-1,wc,'high',hamming(N));
freqz(hn,1);
%用汉宁窗函数设计线性相位FIR数字高通滤波器
clear all;clc;
wp=0.5*pi;
ws=0.25*pi;
DB=wp-ws;
N0=ceil(6.2*pi/DB);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
hn=fir1(N+29,wc,'high',hanning(N+30));
freqz(hn,1);
%用哈明窗函数设计线性相位FIR数字高通滤波器
clear all;clc;
wp=0.5*pi;
ws=0.25*pi;
DB=wp-ws;
N0=ceil(6.6*pi/DB);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
hn=fir1(N+29,wc,'high',hamming(N+30));
freqz(hn,1);
3.
clear all;clc;
xn=randn(1,500);%产生均值为1,方差为1的高斯白噪声
figure(1)
freqz(xn)
DB=0.4*pi;
wc=0.2*pi;
N1=ceil(6.2*pi/DB)+1;
hn1=fir1(N1,wc/pi,hanning(N1+1));%使用hanning窗设计低通FIRDF
yn1=filter(hn1,1,xn);
freqz(yn1)
DB=0.4*pi;
wc=0.2*pi;
N1=ceil(6.6*pi/DB)+1;
hn2=fir1(N1,wc/pi,hamming(N1+1));%使用hamming窗设计低通FIRDF
yn2=filter(hn2,1,xn);
freqz(yn2)
clear all;clc;
xn=randn(1,500);
wp=0.5*pi;ws=0.25*pi;
DB=wp-ws;
N01=ceil(6.2*pi/DB);
N1=N01+mod(N01+1,2);
wc=(wp+ws)/2/pi;
hn1=fir1(N1-1,wc,'high',hanning(N1));%使用hanning窗设计高通FIRDF
yn1=filter(hn1,1,xn);
freqz(yn1)
N02=ceil(6.6*pi/DB);
N2=N02+mod(N02+1,2);
wc=(wp+ws)/2/pi;
hn2=fir1(N2-1,wc,'high',hamming(N2));%使用hamming窗设计高通FIRDF
yn2=filter(hn2,1,xn);
freqz(yn2)
4.
t=0:256;xn=sin(0.1*pi*t);
subplot(411);plot(xn);title('未处理的正弦波信号的时域特性');
DB=0.4*pi;wc=0.2*pi;
%汉宁窗低通滤波
N1=ceil(6.2*pi/DB)
hn1=fir1(N1-1,wc/pi,hanning(N1));
yn1=filter(hn1,1,xn);
subplot(412);plot(yn1);title('经汉宁窗处理后信号的时域特性');
%哈明窗低通滤波
N2=ceil(6.6*pi/DB)
hn2=fir1(N2-1,wc/pi,hamming(N2));
yn2=filter(hn2,1,xn);
subplot(413);plot(yn2);title('经哈明窗处理后信号的时域特性');
%布莱克曼窗低通滤波
N3=ceil(11*pi/DB)
hn3=fir1(N3-1,wc/pi,blackman(N3));
yn3=filter(hn3,1,xn);
subplot(414);plot(yn3);title('经布莱克曼窗处理后信号的时域特性')
六、实验结果及分析
①.用窗函数法设计FIRDF的步骤:
1. 选择窗函数类型和长度,写出窗函数w(n)的表达式;
2. 构建希望逼近的频率响应函数
3. 确定期望滤波器的单位脉冲响应
4. 加窗得到设计结果
②技术指标要求阻带最小衰减As≥40dB,实验中选取了汉宁窗、哈明窗和布莱克曼窗。三种窗函数中,汉宁窗的过渡带最窄,阻带最小衰减最小;其次是哈明窗;布莱克曼窗的过渡带最宽,但阻带最小衰减最大。
③同一种窗函数设计的FIRDF,所取长度N对设计的曲线存在影响,窗函数所取长度越长,衰减越大,过渡带宽度越小。如下图汉宁窗所取不同长度的曲线对比。
④对一段频率在滤波器通带范围内的正弦波进行滤波,滤波结果存在延时,延时与所选的窗函数长度有关,用布莱克曼窗的滤波结果明显比另外两种的滤波结果延时明显。大致可以看出,延时为(N-1)/2。
展开阅读全文