本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc

上传人:wj 文档编号:353203 上传时间:2023-04-28 格式:DOC 页数:93 大小:2.30MB
下载 相关 举报
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第1页
第1页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第2页
第2页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第3页
第3页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第4页
第4页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第5页
第5页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第6页
第6页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第7页
第7页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第8页
第8页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第9页
第9页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第10页
第10页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第11页
第11页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第12页
第12页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第13页
第13页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第14页
第14页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第15页
第15页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第16页
第16页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第17页
第17页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第18页
第18页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第19页
第19页 / 共93页
本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc_第20页
第20页 / 共93页
亲,该文档总共93页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc

《本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc》由会员分享,可在线阅读,更多相关《本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc(93页珍藏版)》请在冰点文库上搜索。

本科基于matlab的FIR数字滤波器设计论文Word文档格式.doc

1数字滤波器 1

1.1数字滤波器简介 1

1.2IIR数字滤波器 1

1.3FIR数字滤波器 2

1.4IIR与FIR数字滤波器的比较 4

2Matlab及电子通信系统仿真简介 5

2.1Matlab简介 5

2.1.1基本功能 5

2.1.2Matlab的优势 5

2.2电子通信系统的仿真简介 5

2.2.1通信与电子系统仿真的概念 5

2.2.2计算机仿真的步骤 6

2.2.3电子通信系统计算机仿真的优点 6

2.2.4电子通信系统计算机仿真的局限性 7

3FIR数字滤波器的设计 8

3.1窗函数法设计FIR滤波器 8

3.2频率取样法设计线性相位FIR滤波器 11

3.3线性相位FIR滤波器的优化设计 13

4利用Matlab实现FIR滤波器设计 15

4.1窗函数法的Matlab实现 15

4.2频率取样法的Matlab实现 22

4.3优化设计的Matlab实现 26

4.4利用滤波器处理加有噪声的音频波形 32

参考文献 37

附录 38

附录一外文原文及翻译 38

外文原文 38

外文翻译 51

附录二利用Matlab实现FIR滤波器设计参考程序 61

1数字滤波器

1.1数字滤波器简介

数字滤波器是一个离散的系统。

它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。

数字滤波器的系统函数通常表示为

(1-1)

数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR数字滤波器。

从公式的角度来看,FIR数字滤波器的始终为零;

IIR数字滤波器至少有一个非零。

实现数字滤波器的方法一般有两种:

一种是利用计算机的程序编译,从而仿真实现;

另一种是利用硬件来实现。

实现一个数字滤波器一般需要三个基本的运算单元:

加法器、延时器和乘法器。

设计一个数字滤波器的一般步骤为:

(1)按所给要求确定滤波器的性能

(2)用一个因果稳定的离散线性时不变的系统函数逼近此性能的要求

(3)利用算法来实现这个系统函数

(4)利用计算机仿真或硬件来实现

1.2IIR数字滤波器

无限长单位冲激响应滤波器,即IIR数字滤波器具有下面几个特点:

(1)系统的单位冲激响应为无限长的

(2)系统函数在有限z平面上有极值点

(3)结构上是递归型的

IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数

{,}。

在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。

在设计IIR滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。

其原因为:

(1)模拟滤波器的设计技术相对成熟,可以广泛利用

(2)模拟滤波器有大量的参考程序和表格

(3)它的解可以为闭合形式的

1.3FIR数字滤波器

FIR滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。

M阶FIR滤波器的系统函数H(z)为

(1-2)

其中H(z)是的M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M个极点.

FIR滤波器的频率响应为

(1-3)

它的另外一种表示方法为

(1-4)

其中和分别为系统的幅度响应和相位响应。

若系统的相位响应满足下面的条件

(1-5)

即系统的群延迟是一个与没有关系的常数,称为系统H(z)具有严格线性相位

由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR滤波器设计中一般使用广义线性相位。

如果一个离散系统的频率响应可以表示为

(1-6)

其中和是与无关联的常数,是可正可负的实函数,则称系统是广义线性相位的。

如果M阶FIR滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为

(1-7)

当h[k]满足h[k]=h[M-k],称h[k]偶对称。

当h[k]满足h[k]=-h[M-k],称h[k]奇对称。

按阶数h[k]又可分为M奇数和M偶数,所以线性相位的FIR滤波器可以有四种类型。

四种线性相位FIR滤波器的性质如表1-1所示

表1-1四种线性相位FIR滤波器的性质

类型

I

II

III

IV

阶数M

偶数

奇数

h[k]的对称性

偶对称

奇对称

关于的对称性

的周期

A(0)

任意

可适用的滤波器类型

LP,HP,BP,SP

LP,BP

微分器,变换器,Hilbert

微分器,变换器,Hilbert,HP

1.4IIR与FIR数字滤波器的比较

(1)在技术指标相同的条件下,IIR滤波器的输出对输入有反馈,所以可以用比FIR少的阶数来满足要求,存储单元少,运算次数也少,经济实惠。

(2)FIR滤波器的相位是严格线性的,而IIR滤波器做不到这一点,IIR滤波器的选择性越好,其相位的非线性越严重。

(3)FIR滤波器主要采用非递归结构,有限精度的运算误差很小。

而IIR滤波器在运算中会产生寄生振荡。

(4)FIR滤波器可以使用快速傅里叶变换算法,而IIR滤波器不能这样。

(5)IIR滤波器可以利用模拟滤波器的公式、数据和表格,计算量小。

FIR滤波器设计时往往要借助计算机。

2Matlab及电子通信系统仿真简介

Matlab是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。

2.1Matlab简介

2.1.1基本功能

  Matlab是由美国的mathworks公司发布,主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。

 

2.1.2Matlab的优势

(1)工作平台编程环境十分友好

(2)编程语言简单易用

(3)数据的计算处理能力十分强大

(4)图像处理能力强大

(5)模块集合工具箱应用广泛

(6)程序的接口和发布平台很实用

(7)可以开发用户界面

2.2电子通信系统的仿真简介

2.2.1通信与电子系统仿真的概念

系统仿真技术指自1970年以来发展起来的利用现代计算机和仿真软件来进行仿真的计算机仿真技术。

由于计算机仿真具有精度高,通用性强,重复性好,建模迅速以及成本低廉等许多优点,尤其是今年来发展了以Matlab为代表的多种科学计算和系统仿真语言,使用起来比利用传统的C/C++语言进行仿真方便快捷得多。

所谓电子通信系统的仿真,就是利用计算机对实际的电子通信系统物理模型或数学模型进行试验,通过这样的模型试验来对一个实际系统的性能和工作状态进行分析和研究。

当在实际电子通信系统中进行试验研究比较困难或者根本无法实现时,仿真技术就成为必然选择。

2.2.2计算机仿真的步骤

(1)提出仿真问题

(2)分析仿真系统

(3)构建系统的数学模型

(4)收集数据

(5)建立系统的计算机仿真模型

(6)验证仿真模型

(7)确认仿真模型

(8)设计仿真试验

(9)运行仿真模型

(10)分析仿真结果

2.2.3电子通信系统计算机仿真的优点

(1)应用计算机仿真具有经济、安全、可靠、编程简易以及试验周期短等特点,在工程领域得到了越来越广泛的应用。

(2)现代电子系统和通信系统通常是复杂的大规模系统,在噪声和各种随机因素的影响下,很难通过解析方法求的系统的数学描述,这时系统仿真也就成为了一个极为有效的工具。

(3)在现代通信系统协议的性能研究中,直接试验几乎是不可能的,在这种情况下只能通过仿真数据来检验所选用的对象,以验证有关的假设。

2.2.4电子通信系统计算机仿真的局限性

(1)模型的建立、验证和确认比较困难。

(2)实际系统建模的原理和方法不正确,使得与实际系统的差别较大。

(3)建模过程中忽略了部分次要因素,使得模型仿真结果偏离实际系统。

(4)仿真试验时间太短。

(5)随机变量的概率分布的类型或参数选取不当。

(6)仿真输出结果的统计误差大。

(7)计算机字长、编码和应用算法也会影响仿真结果。

3FIR数字滤波器的设计

3.1窗函数法设计FIR滤波器

窗函数设计法又称为傅里叶级数法。

这种方法首先给出,表示要逼近的理想滤波器的频率响应,则由IDTFT可得出滤波器的单位脉冲响应为

(3-1)

由于是理想滤波器,故是无限长序列。

但是我们所要设计的FIR滤波器,其h[k]是有限长的。

为了能用FIR滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应分别从左右进行截断。

当截断后的单位脉冲响应不是因果系统的时候,可将其右移从而获得因果的FIR滤波器。

另一种设计方案是将线性相位因子加入到理想滤波器的频率响应中,然后利用IDTFT计算出后,取在0≦k≦M范围的值为FIR滤波器单位脉冲响应。

理想滤波器的频率响应和设计出的滤波器的频率响应的积分平方误差定义为

(3-2)

也可以表示为

(3-3)

上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择

(3-4)

所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器。

Gibbs现象就是理想滤波器的单位脉冲响应截断获得的FIR滤波器的幅度函数在通带和阻带都呈现出振荡现象。

随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数M无关。

窗函数的主瓣宽度决定了过渡带的宽度,窗函数长度N增大,过渡带减小。

下面介绍一些常用的窗函数,用N=M+1表示窗函数的长度。

(1)矩形窗

(3-5)

矩形窗的主瓣宽度为。

用矩形窗设计的FIR滤波器过渡带宽度近似为。

(2)Hanning窗

(3-6)

Hanning窗的主瓣宽度为。

由Hanning窗的定义可知,Hanning窗在其两个端点的值为零,这就使得在实际的应用中不能利用两个端点的数据。

我们可将N+2点的Hanning窗除去两个端点来定义长度为N的Hanning窗。

修改后的长度为N的Hanning窗定义为

(3-7)

在Matlab信号处理工具箱中所采用的就是这种修改后的定义方式。

(3)Hamming窗

(3-8)

Hamming窗的主瓣宽度为。

(4)Blackman窗

(3-9)

Blackman窗的主瓣宽度为。

(5)Kaiser窗

此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。

长度为N的Kaiser窗定义为

(3-10)

其中是一个可调参数,可以通过改变的值来调整窗函数的形状,从而达到不同的阻带衰减要求。

上式中的是零阶第一类修正贝塞尔函数。

可用幂级数表示为

(3-11)

对于任意的一个实变量x,函数的值都是正的。

在实际计算中,上式的求和一般取20项就能达到所需精度。

随着参数的增加,Kaiser窗在两端的衰减是逐渐加大的。

3.2频率取样法设计线性相位FIR滤波器

频率取样法是从频域出发,在频域直接设计,把给定的理想频率响应加以等间隔取样,并以此作为实际FIR滤波器的频率响应。

设所需滤波器的频率响应为。

现要求设计一个M阶的FIR滤波器h[k],使得在M+1个取样点上,FIR滤波器的频率响应与所需的频率响应相等,即

(3-12)

由设计的要求给定,h[k]需要通过设计来确定。

如果M+1个方程是线性无关的,则可以通过求解M+1阶的线性方程来得出FIR滤波器的h[k]。

对的一些特殊取样方法,上述方程的解可以直接由IDFT得到。

由于要求设计出的滤波器是实系数的线性相位FIR滤波器,所以的取样值还需要满足线性相位滤波器的约束条件。

I型和II型线性相位滤波器的,III型和IV型线性相位滤波器的。

为了使设计出的滤波器具有线性相位,在M+1个取样点上的值应为

(3-13)

下面分别讨论四种线性相位滤波器在取样点上的值:

I型(M为偶数,h[k]偶对称)线性相位FIR滤波器在M+1个取样点值为

(3-14)

上式表明I型线性相位FIR滤波器在的值可由在的值确定。

在的值确定后,对做M+1点的IDFT即可得到I型线性相位滤波器的h[k]。

II型(M为奇数,h[k]偶对称)线性相位FIR滤波器在M+1个取样点值为

(3-15)

上式表明II型线性相位FIR滤波器在的值可由在的值确定。

III型(M为偶数,h[k]奇对称)线性相位FIR滤波器在M+1个取样点值为

(3-16)

上式表明III型滤波器线性相位FIR滤波器在的值可由

在的值确定。

IV型(M为奇数,h[k]奇对称)线性相位FIR滤波器在M+1个取样点值为

(3-17)

上式表明IV型线性相位FIR滤波器在的值可由在的值确定。

为了提高滤波器的质量并减少误差,可以采用人为地扩展过渡带的方法,即在频率相应的过渡带内插入一个或多个比较连续的采样点,使得过渡带比较连续,从而使得通带和阻带之间变法比较缓慢,使得设计得到的滤波器对理想滤波器的逼近误差较小。

在理想低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为-21dB,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB,如果增加两个采样点,阻带的最小衰减可以提高到-75dB,如果增加3个采样点,阻带的最小衰减可以提高到-85dB至-95dB。

3.3线性相位FIR滤波器的优化设计

在使用窗函数法设计滤波器时,如果使用矩形窗,则设计出的FIR滤波器是积分平方误差最小意义下的最佳FIR滤波器。

但由于Gibbs现象的存在,使得设计出滤波器在阻带的衰减一般不能满足要求。

为解决这个问题可以采用其他的窗函数,但得到的滤波器不是最小误差意义下的最优FIR滤波器。

设表示要逼近的理想滤波器的幅度函数。

表示设计出的线性相位FIR滤波器的幅度函数。

优化设计的基本思想就是要确定线性相位FIR滤波器的系数,使得和的误差在范围内达到最小。

与的加权误差函数定义为

(3-18)

其中,是由设计者定义的加权函数。

一种常用的误差准则称为最大误差最小准则,又称切比雪夫准则,定义为

(3-19)

其中I表示滤波器在范围内各频率带区间构成的集合。

切比雪夫准则意义下的优化设计就是要确定FIR滤波器H(z)的系数,使得上式定义的误差达到最小。

在FIR滤波器的阶数M固定的条件下,利用切比雪夫误差准则设计出的FIR滤波器的幅度响应在通带和阻带都会呈现等波纹的波动。

所以这类滤波器称为等波纹FIR滤波器。

等波纹FIR滤波器的设计方法是由Parks-McClellan提出。

在解决问题过程中使用了数学优化中的Remez交换算法。

利用Remez交换算法,等波纹线性相位FIR滤波器的设计步骤可归结为:

(1)用Kaiser提出的经验公式估计滤波器的阶数

(3-20)

确定J的值。

(2)选定初始极值点。

(3)计算。

(4)为寻找新的极值点,计算函数在I中的抽样值。

为了减少计算误差,抽样间隔应足够小。

通常选择抽样点数为16M。

(5)寻找新的极值点。

(6)如果,执行(7)。

否则用交换回到(3)。

(7)获得g[k]。

(8)由g[k]求出h[k]。

4利用Matlab实现FIR滤波器设计

在利用Matlab设计FIR滤波器时,分别采用窗函数法、频率取样法和优化设计方法去设计所需的滤波器。

在设计的过程中,用设计的滤波器对加有噪声的语音信号或不同频率叠加的正弦输入信号进行滤波,对比输入前后的图像,以此验证滤波器的性能。

在程序绘制的图像中,有滤波器的特性图、输入信号的时域频域图和输出信号的时域频域图。

4.1窗函数法的Matlab实现

在窗函数法的Matlab实现中,程序中经常使用的函数有fir1和kaiserord。

程序中fir1函数的用法:

b=fir1(n,Wn,’ftype’,window)

①n为滤波器的阶数

②Wn为滤波器的截止频率,它是一个0到1的数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2