基于窗函数法的数字带通FIR滤波器设计.docx
《基于窗函数法的数字带通FIR滤波器设计.docx》由会员分享,可在线阅读,更多相关《基于窗函数法的数字带通FIR滤波器设计.docx(13页珍藏版)》请在冰豆网上搜索。
基于窗函数法的数字带通FIR滤波器设计
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
武汉理工大学
题目:
基于窗函数法的数字带通FIR滤波器设计
初始条件:
MATLAB软件,计算机
要完成的主要任务:
利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器
性能指标如下:
通带下限截止频率fc1=100HZ,通带上限截止频率fc2=200HZ,采样频率为1000HZ,阶数为81,最小阻带衰减As=-70dB。
时间安排:
课程设计时间为5天。
(1)方案设计,时间1天;
(2)软件设计,时间2天;
(3)系统调试,时间1天;
(4)答辩,时间1天。
指导教师签名:
2009年1月15日
系主任(或责任教师)签名:
2009年1月日
目录
目录I
摘要II
AbstractIII
1.FIR滤波器简介1
2.线性相位FIR带通滤波器的设计3
3.窗函数设计法5
4.窗函数法设计FIR滤波器6
4.1.设计步骤6
4.2.设计要求7
5.MATLAB环境下的设计实例8
6.心得体会12
7.课程设计参考资料13
摘要
随着信息时代的到来,数字信号处理已经成为当今一门及其重要的学科和技术,并且在通信、语音、图像、自动控制等众多领域得到了广泛的应用,在数字信号处理中,数字滤波器占有及其重要的地位,它具有精度高,可靠性好、灵活性大等特点,现代数字滤波器可以用软件和硬件两种方式来实现,软件方式实现的优点是可以通过滤波器参数的改变去调整滤波器的性能。
MATLAB是一种面向科学和工程计算的语言,它集数值分析,矩阵运算、信号处理和图形显示于一体,具有编程效率高、调试手段丰富、扩充能力强等特点,MATLAB的信号处理工具箱具有强大的函数功能,它不仅可以用来设计数字滤波器,还可以使设计达到最优化,是数字滤波器设计的强有力工具。
本文介绍了如何利用MATLAB仿真软件系统结合窗函数法设计一个数字窗函数法
关键字:
数字信号处理数字滤波器MATLAB重要的地位窗函数法窗函数法
Abstract
Withtheadventoftheinformationage,digitalsignalprocessinghasbecomeanimportantsubjectanditstechnology,andcommunications,voice,video,andmanyinthefieldofautomaticcontroliswidelyusedindigitalsignalprocessing,digitalfilteringPossessionofthedeviceanditsimportantstatus,whichhashighaccuracy,reliability,flexibility,andothermajorcharacteristicsofmoderndigitalfiltersoftwareandhardwarecanbeachievedintwoways,thewaysoftwarehastheadvantageofthroughthefilterparametersChangetoadjustthefilterperformance.
MATLABisascienceandengineering-orientedcomputinglanguage,whichsetnumericalanalysis,matrixcomputing,graphicsandsignalprocessinginone,theprogramhasahighlyefficientmeansofdebuggingarich,strong,andothercharacteristicsoftheexpansion,MATLABsignalprocessingtoolsBoxfeaturesapowerfulfunction,whichnotonlycanbeusedtodesigndigitalfilterscanalsooptimizethedesignsothat,thedigitalfilterdesignisapowerfultool.ThisarticledescribeshowtouseMATLABsimulationsoftwaresystemstodesignawindowfunctiondigitalwindowfunction
Keyword:
digitalsignalprocessingdigitalfilterMATLABanimportantroleinthewindowfunctionwindowfunction
基于窗函数法的数字带通FIR滤波器设计
1.FIR滤波器简介
根据冲激响应的时域特性,数字滤波器可分为无限长冲激响应(IIR)和有限长冲激响应滤波器(FIR),FIR的突出优点是:
系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器,但与IIR相比,在满足同样阻带衰减的情况下需要的阶数较高,滤波器的阶数越高,占用的运算时间越多,因此在满足指标要求的情况下应尽量减少滤波器的阶数。
FIR滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出,FIR滤波器的冲激响应h(n)是有限长的,数学上M阶FIR滤波器可以表示为:
y(n)=
(1)
其系统函数为:
H(z)=
(2)
普通的直接型FIR滤波器结构如图1所示。
在自适应处理、数据通信等领域中往往要求信号在传输过程中不能有明显的相位失真,FIR滤波器可以做到线性相位满足此要求。
FIR滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,得到滤波器的输出。
对于FIR滤波器的单位脉冲响应h(i)只要满足以下2个条件之一,则为线性相位滤波器。
线性相位的FIR滤波器具有中心对称的特性,其对称中心在N/2处。
(3)
FIR滤波器的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数的问题,设计方法主要有窗函数,频率采样法和等波纹最佳逼近法等。
2.线性相位FIR带通滤波器的设计
其理想线性相位带通滤波器的频率响应为
H
(e
)=
(4)
其中
。
求此滤波器的单位冲激响应
=
(5)
根据对通带、阻带衰减的要求以及对过渡带宽的要求,可选定窗函数
及窗的点数N。
由此可求得所需线性相位带通滤波器的单位冲激响应
(6)
由
求得实际
,即
(7)
检验否满足设计要求。
若不满足要求,则要重新选用窗形式和N,再进行计算。
由理想滤波器的低通公式
(8)
和带通公式(4)比较可以看出:
一个带通滤波器相当于一个截止频率为
的低通滤波器减去另一个截止频率为
的低通滤波器(
)。
3.窗函数设计法
窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲应响应序列的设计方法,通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标,在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。
在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗,这些窗函数在MATLAB中分别用boxcar、triang、hanning、hamming、kaiser实现,它们之间的性能比较如表1所示。
表15种窗函数性能比较
窗函数分别为:
(1)矩形窗:
w=boxcar(n),产生一个n点的矩形窗函数。
(2)三角窗:
w=triang(n),产生一个n点的三角窗函数。
(3)汉明窗:
w=hamming(n),产生一个n点的汉明窗函数。
(4)汉宁窗:
w=hanning(n),产生一个n点的汉宁窗函数。
(5)布莱克曼窗:
w=Blackman(n),产生n点的布莱克曼窗函数。
(6)凯泽窗:
w=Kaiser(n,beta),产生一个n点的凯泽窗数。
4.窗函数法设计FIR滤波器
4.1.设计步骤
FIR滤波器的窗函数法设计过程为:
(9)
式中:
Hd(ejΩ)为逼近的理想滤波器频率响应;hd(k)为理想滤波器的单位脉冲响应,是无限长序列。
(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。
(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd(ejw),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:
(10)
在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N点,采用离散傅里叶反变换(IDFT)即可求出。
(3)用窗函数wd(n)将hd(n)截断,并进行加权处理,得到
(11)
如果要求线性相位特性,则h(n)还必须满足:
(12)
根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。
要根据所设计的滤波特性正确选择其中一类。
例如,要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。
(4)验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。
4.2.设计要求
(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;
(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩和纹波,进行增加阻带的衰减。
根据工程经验,给定的滤波器指标参数一般为通带截止频率wp、阻带截止频率ws、实际通带波动Rp和最小阻带衰减As。
5.MATLAB环境下的设计实例
用窗函数设计FIR带通滤波器,性能指标如下:
通带下限截止频率fc1=100HZ,通带上限截止频率fc2=200HZ,采样频率为1000HZ,阶数为81,最小阻带衰减As=-70dB。
分析:
从表1可以看出凯泽窗能提供74dB的最小阻带衰减,所以选用凯泽窗进行设计,程序主要部分如下:
程序运行结果如图2所示
图2凯泽窗设计的FIR带通滤波器的响应
程序结果如图2所示,滤波器长度为81,最小阻带衰减为-80dB,满足设计要求。
如果不考虑最小阻带衰减,也可用另外五个窗函数设计,只需修改程序中的加窗函数即可。
矩形窗程序修改如下:
w_box=(boxcar(M))';
h=hd.*w_box;
图3矩形窗设计的FIR带通滤波器的响应
程序结果如图3所示,滤波器长度为81,最小阻带衰减为-21dB。
三角窗程序修改如下:
w_tri=(triang(M))';
h=hd.*w_tri;
图4三角窗设计的FIR带通滤波器的响应
程序结果如图4所示,滤波器长度为81,最小阻带衰减为-25dB。
汉宁窗程序修改如下:
w_han=(hanning(M))';
h=hd.*w_han;
图5汉宁窗设计的FIR带通滤波器的响应
程序结果如图5所示,滤波器长度为81,最小阻带衰减为-44dB。
海明窗程序修改如下:
w_ham=(hamming(M))';
h=hd.*w_ham;
图6海明窗设计的FIR带通滤波器的响应
程序结果如图6所示,滤波器长度为81,最小阻带衰减为-53dB。
6.心得体会
在这次课程设计中,我的最大体会是要学会强迫自己动手,整合思路,查找资料,为己所用。
平时所学的理论知识只是基础,真正应用软件做设计的时候才能知道自己的局限性。
一味停留在老师的教学中自己能做的实在是少之又少。
老师只是在较高的层次上为自己的学习指明道路,为数字信号处理的整体概念指出思路。
至于具体的某个程序要怎么编写,某个新后要怎么处理,不可能手把手的交给自己。
所以就应该学会利用资料,首先就是互联网,然后是图书馆。
由于本次课设的时间限制,最合理的资料应该是互联网,快速,方便。
搜集到资料以后不能照抄,应该仔细阅读,读懂,然后根据自己的要求改变参数。
总之,只有知道怎么自己学习,才能知道怎么自己动手。
另一方面,即具体的方面,我的收获是了解了MATLAB这个软件,熟悉了MATLAB在数字信号处理过程中的应用,并能正确地运用它对语音信号进行采样、设计滤波器、分析频谱特性等。
能将之前所学的理论知识和这次的设计及仿真结合起来,掌握了滤波器的设计和正确使用,加深了对数字信号处理的理解。
比如之前对时域,频域,FFT等概念只是有了抽象上的了解,并没有很深刻的掌握,通过这次的反复利用,加深了理解和印象。
对于FIR并不知道各种滤波器到底怎么用,到底有什么不同,这次设计把这些滤波器全都利用了一遍,实在收获颇丰。
7.课程设计参考资料
教材:
VinayK.Ingle主编:
《数字信号处理及其MATLAB实现》,电子工业出版社,1998年出版。
参考书:
SanjitK.Miltra编著:
《DigitalSignalProcessingLaboratoryUsingMatlab》,McGraw-Hill出版社,2000年出版。
本科生课程设计成绩评定表
姓名
性别
男
专业、班级
课程设计题目:
基于窗函数法的数字带通FIR滤波器设计
课程设计答辩或质疑记录:
1.选择各种窗函数的标准是什么?
(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;
(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩和纹波,进行增加阻带的衰减。
根据工程经验,给定的滤波器指标参数一般为通带截止频率wp、阻带截止频率ws、实际通带波动Rp和最小阻带衰减As。
2.窗函数对频谱有什么影响?
不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。
信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。
几种常用的窗函,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高。
3.此次课程设计有什么收获?
了解了MATLAB这个软件,熟悉了MATLAB在数字信号处理过程中的应用,并能正确地运用它对语音信号进行采样、设计滤波器、分析频谱特性等。
能将之前所学的理论知识和这次的设计及仿真结合起来,掌握了滤波器的设计和正确使用,加深了对数字信号处理的理解。
对于FIR并不知道各种滤波器到底怎么用,到底有什么不同,这次设计把这些滤波器全都利用了一遍,实在收获颇丰
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日