资源描述:
《数字信号处理--实验七 fir滤波器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学生实验报告开课学院及实验室:电子楼3172013年05月27日学院机械与电气工程学院年级、专业、班姓名学号实验课程名称数字信号处理实验成绩实验项目名称实验七 FIR滤波器的设计指导老师一、实验目的复习巩固窗函数法设计FIR滤波器的概念和方法,观察用几种常用窗函数设计的FIR数字滤波器技术指标。二、实验原理FIR滤波器的设计问题在于寻求一系统函数,使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应。1.用窗函数设计FIR滤波器的基本方法设计思想:从时域从发,设计逼近理想。设理想滤波器的单位脉冲响应为。以低通线性相位FIR数字滤波器
2、为例。一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。2.典型的窗函数(1)矩形窗(Rectangle
3、Window)其频率响应和幅度响应分别为:,(2)三角形窗(BartlettWindow)其频率响应为:(3)哈宁(Hanning)窗,又称升余弦窗其频率响应和幅度响应分别为:(4)汉明(Hamming)窗,又称改进的升余弦窗其幅度响应为:(5)布莱克曼(Blankman)窗,又称二阶升余弦窗其幅度响应为:(6)凯塞(Kaiser)窗其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。I0(·)是第一类修正零阶贝塞尔函数。若阻带最小衰减表示为,β的确定可采用下述经验公式:若滤波器
4、通带和阻带波纹相等即δp=δs时,滤波器阶数可通过下式确定:式中:三、使用仪器、材料1、硬件:计算机2、软件:Matlab四、实验步骤1.知识准备在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数的有关内容,阅读本次实验指导,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。2.编制窗函数设计FIR滤波器的程序。绘制滤波器的幅频和相位曲线,注意长度N对曲线的影响。至少选两种不同长度,每种长度选两种窗函数。(1)设计一线性相位FIR数字低通滤波器,截止频率,过渡带宽度,阻带衰减dB。(2)设计一线性相
5、位FIR数字高通滤波器,要求通带截止频率,阻带截止频率,通带最大衰减,阻带最小衰减。 3.对一段白噪声信号分别用上述设计好的滤波器进行滤波,分析滤波以后信号的频谱。4.对一段频率在滤波器通带范围内的正弦波进行滤波,对比滤波前后信号的时域特性。五、实验过程原始记录(数据、图表、计算等)2.(1)%用汉宁窗函数设计线性相位FIR数字低通滤波器clearall;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);%用哈明窗函数
6、设计线性相位FIR数字低通滤波器clearall;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数字低通滤波器clearall;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));%窗函数长度增加30freqz(hn,1);%用哈明窗函数设计线性相位FIR数字低通滤波器clearall
7、;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));%窗函数长度增加30freqz(hn,1);(2)%用汉宁窗函数设计线性相位FIR数字高通滤波器clearall;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);%用哈明窗函
8、数设计线性相位FIR数字高通滤波器clearall;clc;wp=0.5*pi;ws=0.25*pi;DB=wp-ws;N0=ceil(6.6*pi/DB);N=N