毕业设计35FIR滤波器的MATLAB仿真.docx
- 文档编号:16855713
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:24
- 大小:360.55KB
毕业设计35FIR滤波器的MATLAB仿真.docx
《毕业设计35FIR滤波器的MATLAB仿真.docx》由会员分享,可在线阅读,更多相关《毕业设计35FIR滤波器的MATLAB仿真.docx(24页珍藏版)》请在冰点文库上搜索。
毕业设计35FIR滤波器的MATLAB仿真
08届
分类号:
0304
单位代码:
10452
FIR滤波器的MATLAB仿真
姓名
学号200407340310
年级2004
专业电气工程及其自动化
系 (院)物理系
指导教师
2008年02月25日
摘要
典型设计是先按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标,据此产生模拟滤波器原型,然后把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器,最后再把模拟滤波器转换成数字滤波器。
完全设计方法中我们利用函数直接设计出低通、高通、带通和带阻滤波器,并分别用巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器来实现,并比较了各自的频率响应曲线。
关键词:
FIR数字滤波器、MATLAB、窗
Abstract
Thetypicaldesigngetsthetechnicalparametersfromdigitalfiltersthatshouldbedesigned,andthentransformedintotheanalogparametersofalow-passanalogfilterprototype.Theprototypeisconvertedintotheanaloglow-pass,high-pass,band-pass,andtheband-stopfiltersrespectively,whicharetransformedintothedigitalones.
Thecompletedesignusesthegivenfunctionsandreleasesthelow-pass,high-pass,band-passandtheband-stopfiltersdirectly.Butterworth,ChebyshevandCauerfiltersareusedfortheimplementations.
Keyword:
FIRDigitalfiltersMATLABWindow
目录
摘要I
AbstractII
1.绪论1
2.数字滤波器3
2.1什么是数字滤波器3
2.2数字滤波器的分类3
2.3数字滤波器的设计要求和方法3
2.4数字滤波器设计方法概述4
3.FIR滤波器的设计6
3.1窗函数法6
3.2频率取样法8
3.3优化设计法10
3.4带过渡带的多带FIR滤波器设计11
3.5约束最小二乘FIR滤波器设计14
3.6任意响应滤波器设计15
3.7FIR滤波器设计实例16
总结18
参考文献19
谢辞20
1.绪论
数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用[1][2]。
目前,数字信号滤波器的设计图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。
近年来迅速发展起来的的小波理论,由于其局部分析性能的优异在图像处理中的应用研究,尤其是在图像压缩、图像去噪等方面的应用研究,受到了越来越多的关注[3]-[6]。
MATLAB是美国Mathworks公司推出的一套用于工程计算的可视化高性能语言与软件环境[7]。
MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。
MATLAB推出的工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应用,其中的信号处理(Signalproeessing)、图像处理(Imageproeessing)、小波(Wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具[8]-[11]。
在本文中,我们分别研究了在MATLAB环境下FIR数字滤波器的典型设计和完全设计方法。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
数字信号的滤波是通过数字滤波器来实现的,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的。
在信号处理系统中,数字滤波器的应用非常重要而且广泛,在心电图信号分析中,可以通过低通滤波器滤掉工业高频干扰,突出低频部分进行分析;在语音信号分析中,可以建立实时信号采集分析模型,通过加窗滤波后得出语音信号的频谱。
利用MATLAB信号处理工具箱(SignalProcessingToolBox)可以快速有效地实现数字滤波器的设计与仿真。
在FIR滤波器设计中,我们用切比雪夫窗和海明窗设计的带通滤波器的频率响应进行对照,结果表面用海明窗设计的滤波器的频率特性几乎在任何频带上都比切比雪夫窗设计的滤波器的频率特性好,只是海明窗设计的滤波器下降斜度较小。
设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特性,运算量也是很大的。
我们平时所要设计的数字滤波器,阶数和类型不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断调整,以达到设计的最优化,在这种情况下,滤波器的设计就要进行大量的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计,利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效的设计数字滤波器,大大减少了计算量,简单方便。
MATLAB信号处理工具箱(Signalprocessing)、图像处理(Imageprocessing)工具箱、小波(Wavelet)等工具箱可以很好的设计和实现数字滤波,为数字滤波。
信号处理。
图像处理等方面的研究提供了有力的工具。
2.数字滤波器
2.1什么是数字滤波器
滤波器是指用来对输入信号进行滤波的硬件和软件。
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。
一般用两种方法来实现数字滤波器:
一是采用通用计算机,把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;二是设计专用的数字处理硬件。
MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。
工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。
只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。
2.2数字滤波器的分类
数字滤波器从功能上分类:
可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。
从滤波器的网络结构或者从单位脉冲响应分类:
可分为IIR滤波器(即无限长单位冲激响应滤波器)和FIR滤波器(即有限长单位冲激响应滤波器)。
它们的函数分别为:
(2-1)
(2-2)
第一个公式中的H(z)称为N阶IIR滤波器函数,第二个公式中的H(z)称为(N-l)阶FIR滤波器函数。
2.3数字滤波器的设计要求和方法
滤波器的指标常常在频域给出。
数字滤波器的频响特性函数
一般为复函数,所以通常表示为
(2-3)
其中,
称为幅频特性函数;
称为相频特性函数。
幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。
一般对IIR数字滤波器,通常只用幅频响应函数
来描述设计指标,相频特性一般不作要求。
而对线性相位特性的滤波器,一般用FIR数字滤波器设计现。
IIR低通滤波器指标参数如图2.3.1所示。
图中
和
分别为通带边界频率;
和
分别为通带波纹和阻带波纹;允许的衰减一般用dB数表示,通带内所允许的最大衰减(dB)和阻带内允许的最小衰减(dB)分别为
和
表示:
图2.3.1:
低通滤波器的技术要求
一般要求:
当
时,
(2-4)
当
时,
(2-5)
2.4数字滤波器设计方法概述
IIR滤波器和FIR滤波器的设计方法很不相同,IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。
其设计思路是:
先设计模拟滤波器得到传输函数
,然后将
按某种方法转换成数字滤波器的系统函数H(z)。
这一类方法是基于模拟滤波器的设计方法相对比较成熟,它不仅有完整的设计公式,也有完整的图表供查阅。
更可以直接调用MATLAB中的对应的函数进行设计。
另一类是直接在频域或者时域中进行设计的,设计时必须用计算机作辅助设计,直接调用MATLAB中的一些程序或者函数可以很方便地设计出所需要的滤波器。
FIR滤波器不能采用由模拟滤波器的设计进行转换的方法,经常用的是窗函数法和频率采样法。
也可以借助计算机辅助设计软件采用切比雪夫等波纹逼近法进行设计。
本文只是简单的表述IIR数字滤波器的设计方法,只给读者一个设计的思路,着重研究FIR滤波器的设计方法,详细内容将在以下的章节中提及。
3.FIR滤波器的设计
相对于无限冲激响应数字滤波器(的特点是:
(l)具有精确的线性相位;
(2)总是稳定的;(3)设计方式是线性的;(4)硬件容易实现;(5)滤波器过渡过程具有有限区间;(6)相对HR滤波器而言,阶次较高,其延迟也要比同样性能的IIR滤波器大得多。
3.1窗函数法
一个截止频率为
(rad/s)的理想数字低通滤波器,其表达式如下:
(3-1)
故冲激响应序列h(n)为
(3-2)
这个滤波器是物理不可实现的,因为其冲激响应具有无限因果性。
为了产生有限区间长度的冲激响应,可以加窗函数将其通过截短保留冲激响应的中心部分,就可以获得线性相位的FIR滤波器。
函数fir1和fir2就是基于窗函数方法的。
fir1函数实现了加窗线性相位FIR数字滤波器设计的经典方要用于常用的标准通带滤波器设计,包括:
低通、带通、高通和带阻数字滤波器。
b=fir1(n,Wn)可得到n阶低通FIR滤波器,滤波器系数包括在b中,这可表示为
。
这是一个截止频率Wn的加海明窗的线性相位FIR滤波器,0≤Wn≤1,Wn=1对应于采样频率的二分之一。
如果Wn是一个包含两个元素的向量,Wn=[W1W2],fir1返回一个n阶的带通滤波器,其通带为Wl b=fir1(n,Wn,’high’)设计一个高通滤波器。 b=fir1(n,Wn,’stop’)设计一个带阻滤波器。 如果Wn是一个多元素的向量,W=[W1W2W3…Wn],函数将返回一个n阶的多通带的波器。 b=fir1(n,Wn,’DC-l’)使第一频带为通带;b=fir1(n,Wn,’DC-0’)使第一频带为阻带。 对于在Fs/2附近为通带的滤波器如高通或带阻滤波器,n必须是偶数。 缺省情况下,fir1()使用Hamming窗。 可以在参数中指定其他窗,包括矩形窗、Hanning窗、Bartlett窗、Blackman窗、Kaiser窗等 缺省情况下,滤波器被归一化,以使经加窗后的第一个中心幅值刚好是1。 使用参数’noscale’可以阻止这样做。 如图3.1.1是分别用切比雪夫窗和海明窗设计的带通滤波器频率响应,带通滤波器的通带频率(归一化后的频率)为0.25到0.60,阶数为38, 设定截止频率和阶数: Wn=[0.25,0.60]; n=38; 使有默认海明窗的带通滤波器: b1=fir1(n,Wn); 使用切比雪夫窗函数的带通滤波器,先输入切比雪夫窗函数 window=chebwin(n+1,40); b2=fir1(n,Wn,window); 图3.1.1用fir1函数设计的带通滤波器 函数fir2()也设计加窗的FIR滤波器,但它针对任意形状的分段线性频率响应,这一点在fir1()中是受到限制的。 B=fir2(n,F,M)设计一个n阶的FIR数字滤波器,其频率响应F和M指定,滤波器的系数返回在向量B中,向量F和M指定滤波器的采样点的频率及其幅值,F的频率必须在0到1之间,1对应采样频率的一半。 它们必须按递增的顺序从0至1结束。 缺省情况下,函数fir2()使用的是Hamming窗,可在后面参数中指定其它的窗函数 以下是用fir2()设计的一个多带FIR滤波器,它的频率响应要求如下: 归一化频率范围 幅值 f=0-0.1 m=0 f=0.1-0.3 m=1 f=0.3-0.6 m=0 f=0.6-0.8 m=1 f=0.8-1 m=0 表3.1.1 程序为: f=[00.10.10.30.30.60.60.80.81]; m=[0011001100]; b=fir2(40,f,m); 用fir2()设计的滤波器的特性和理想特性的比较如图3.1.2 图3.1.2用fir2设计的多带滤波器 3.2频率取样法 频率取样法设计的基本思想是把给出的理想频率响应进行取样,通过IDFT从频谱样点直接求得有限脉冲响应.其设计过程如下 (3-3) 频率取样法设计的关键是正确确定数字频域系统函数H(k)在 内的N个样点,其约束条件为 (3-4) 频域取样法一般分为 型和 型。 型取样 k=0,1,……N-1,即N个频率样点是 ; 型取样是将 型取样的N个样点偏移 ,即 ,N个频率采样点为 。 采用频率采样法设计上述线性相位低通滤波器,其模拟结果见图3.2.2,与图3.2.1相比,频率采样法的阻带衰耗比较小,可以通过增加过渡带样点的方法增大阻带衰耗。 图3.2.1低通幅频特性(上为海明窗,下为矩形窗) 图3.2.2低通衰耗特性 3.3优化设计法 FIR滤波器的优化设计采用“等波纹最佳一致逼近”理论,利用MATLAB提供的: remez函数实现ParksMcClellan算法,设计滤波器逼近理想频率响应。 所得到的最佳一致滤波器的频率响应具有等波纹特性。 使用Remez算法设计滤波器,首先需根据要求定滤波器阶数。 利用remezord函数可以确定滤波器阶数n,归一化的各频带边界频频 ,归一化的各频带幅度值 ,加权系数w,其格式如下: [n, w]=remezord(f,a,dev);remezord输入参数的含义为向量f指定各频带边界频率(单位Hz),在0-Fs/2(采样频率的一半)之间取值;向量a指定各频带的幅度响应;f的长度是length(f)=2*length(a)-2,必须为偶数。 第一频带总是从0开始,最后一个频带到Fs/2结束;向量dev指定设计出的滤波器和理想滤波器的幅度响应在每个频带的最大允许误差(波纹),因此与向量a的长度相等。 分别采用窗口法、频率取样法和优化设计法设计双带滤波器,其指标要求为: 1)第一带通滤波器fp1=4kHz,fp2=5kHz,fr1=3.6kHz,fr2=5.4kHz; 2)第二带通滤波器fp3=6kHz,fp4=7kHz,fr3=5.6kHz,fr4=7.4Hz; 3)通带衰耗: Ap<3rad,阻带衰耗: Ar>40dB,模拟取样频率fs=20kHz。 MATLAB模拟结果见图3.3.1,图3.3.2,图3.3.3。 图3.3.1利用窗口法设计的双通带滤波器的频率响应 图3.3.2利用频率取样法设计的双通带滤波器的频率响应 图3.3.3利用Remez算法设计的双通滤波器幅频特性 比较以上三种滤波器的设计方法,在同样的阶数下,优化设计可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。 频率取样法设计过程简单,但阻带衰减明显,若适当选取过渡带样点值,会取得较窗口法略好的衰耗特性。 窗口设计法在阶数较低时,阻带特性不满足设计要求,只有当滤波器阶数较高时,使用海明窗和凯塞窗基本可以达到阻带衰耗要求。 FIR滤波器以其稳定和容易实现严格的线性相位,使信号处理后不产生相位畸变,而在实际中获得广泛的应用。 3.4带过渡带的多带FIR滤波器设计 函数firls和remez提供了比函数fir1和fir2更为一般的滤波器设计方法。 这两个函数可以允许在滤波器特性中包含过渡带,在计算中这些过渡带的偏差是不被最小化的,此外,还可以在滤波器特每一段上设置不同的权重,用于计算加权的最小化。 函数firls是函数fir1和fir2的扩展,它的设计准则是使期望的频率响应和实际的频率响应之间的平方误差的积分达到最小。 函数remez使用了Parks-McClellan算法,它使用Remez交换算法和切比雪夫逼近理论来设计滤波器,在期望的和实际的滤波器频率响应之间实现最佳的匹配。 从使期望的和实际的频率响应的最大误差的最小化的意义来说,该滤波器是最优滤波器。 用这种方法设计的滤波器在它们频率响应中表现出等波动性。 Parks一McClellanFIR滤波器设计算法的原理如下: 线性相位FIR滤波器的4种类型的幅频特性可以统一地表示成一个ω的固定函数Q(ω)和一个余弦求和式P(ω)的乘积,即 H(ω)=Q(ω)P(ω)(3-5) 按4种FIR滤波器类型,可以将上式分别写成: (3-6) (3-7) (3-8) (3-9) 假设要求的滤波器频率响应为D(ω),再定义一个加权函数W(ω),则误差函数为: E(ω)=W(ω)[D(ω)-H(ω)](3-10) 还可以写成 (3-11) 引入以下的变换: (3-12) 可得到如下数学模型: E(ω)=w(ω)[d(ω)-P(ω)](3-13) 根据该公式,就可以把FIR滤波器的设计问题归结到如下的切比雪夫近似问题: “要求寻找P(ω)的一组系数an、bn、cn、dn,使在整个频带上,E(ω)的最大绝对值能压缩到一个最小值。 remez函数用Parks和McClellan算法。 函数firls和remez使用的语法是相同的,唯一的区别是它们的最小化方案不同。 firls设计的滤波器,其频率特性与理想特性间的加权方差是最小化。 b=firls(n,f,a)返回一个行向量b,包含n阶FIR滤波器的n+1个系数,而滤波器的频率特性是由f和a给出。 f是频率点向量,从0到1,升序排列。 a是一个包含向量f中指定频率的期望幅度的向量。 f和a长度必须相等,且为偶数。 b=firls(n,f,a,w)使用权向量w来对各个频带的匹配误差作加权处理。 向量w的长度是f的一半,故恰好一个频带对应一个权值。 b=firls(n,f,a,’ftype’)与b=firls(n,f,a,w,’ftype’)指定了滤波器的类型,ftype可以为: hilbert(希尔伯特变换滤波器)和differentiator线性相位的微分器)。 以下设计的是一个在0-0.4Hz之间近似幅值为1,在0.5-1Hz之间近似幅值为0的低通滤波器,分别用remez和firls设计并比较他们的特性。 n=22; f=[00.40.51]; m=[1100]; b=remez(n,f,m); bb=firls(n,f,m); 用remez和flrls设计的滤波器的特性比较如图3.4.1 图3.4.1函数remez和firls滤波器设计性能比较 从上图可以看出,用remez函数设计的滤波器具有波动性,用firls函数设计的滤波器在几乎所有频带上比remez函数的响应好,但在通带和阻带的边缘0.4-0.5Hz,这比由remez函数设计的滤波器离理想响应更远。 这表明remez函数设计的滤波器在通带和阻带上的最大误差更小。 3.5约束最小二乘FIR滤波器设计 约束最小二乘(CLS)FIR滤波器设函数的关键特征是能定义幅值响应中包含最大允许纹波的上下阕值,以这个约束条件为前提,该方法会在整个滤波器响应的频率范围内使用平方误差最小化的技术,以逼近理想的滤波器特性,误差最小化也包括任何理想滤波器响应中不连续的地方。 信号处理工具箱中有两个函数使用了这种方法: fircls用于任意响应的多带FIR滤波器设计;fircls1用于低通和高通线性相位滤波器的约束最小二乘滤波器设计。 格式说明: b=fircls(n,f,amp,up,lo,'design-flag')返回长度为n+1阶的线性相位FIR滤波器,b为滤波器的系数向量(按降幂排列),其幅频响应由向量f和amp指定。 f为转换频率向量,在0到1之间。 Amp为滤波器幅频响应中的频带增益向量,amp长度为length(f)-1。 up和lo与amp长度相同,分别表示对应频带的最大和最小波动。 参数’design-flag’来指定函数返回结果的形式。 当’design-flag’为’trace’时,函数以文本的形式返回滤波器的系数;当’design-flag’为’plots’时,函数画出滤波器及各个频带响应曲线、群延迟、零点和极点;当’design-flag’为’both'时,函数既以文本的形式返回滤波器系数,又画出滤波器及各个频带响应曲线、群延迟、零点和极点。 b=fircls1(n,wo,dp,ds)返回长度为n+1阶的线性相位FIR滤波器,b为滤波器的系数向量(按降幂排列)。 截止频率为wo,在0到1之间,dp和ds分别表示通带和阻带的最大波动。 b=fircls1(n,wo,dp,ds,'high')返回一个长度为n+1的线性相位FIR高通滤波器。 b=fircls1(n,wo,dp,ds,wp,ws,k)与fircls1(n,wo,dp,ds,wp,ws,k,’high’)中,参数k指定了通带偏差与阻带偏差的比率。 wp和ws分别表示通带和阻带的截止频率,对于低通滤波器,有wp 以下设计的一个FIR滤波器,设计指标如下: 阶数为30}截止频率为0.4。 通带最大允许的纹波为0.1,阻带允许的最大纹波为0.1。 此外,加权要求为: 权函数的通带边界为0.38;阻带边界为0.42。 阻带和通带的权重比率为10。 并与未加权的结果作比较。 阶数: n=30; 截止频率: wo=0.4; 通带最大允许的纹波: dp=0.1; 阻带允许的最大纹波: ds=0.1; 权函数的通带边界: wp=0.38; 阻带边界: ws=0.42; 阻带和通带的权重比率: k=10; 加权的滤波器: b=fircls1(n,wo,dp,ds,wp,ws,k); 未加权的滤波器: bb=fircls1(n,wo,dp,ds); 图3.5.1加权和未加权的CLS滤波器设计 3.6任意响应滤波器设计 滤波器设计函数cremez用于设计具有任意复杂响应的FIR滤波器。 在滤波器频率特性的设定方式上,它不同于其他的滤波器设计函数,它可以接受函数名参数,而该函数可以在频率网格上返回计算的滤波器响应特性。 该设计使用扩展的Remez交换算法对切比雪夫误差进行最优化。 cremez函数是一种灵活而有效的设计工具。 b=cremez(n,f,{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 35 FIR 滤波器 MATLAB 仿真