毕业设计(论文)-基于matlab的FIR数字滤波器设计Word下载.docx
《毕业设计(论文)-基于matlab的FIR数字滤波器设计Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于matlab的FIR数字滤波器设计Word下载.docx(66页珍藏版)》请在冰点文库上搜索。
五、设计成果要求
1、完成毕业设计书文档
2、完成程序的编译和调试
3、对程序主要语句做出注释
摘要:
在数字控制系统中输入信号中所含的干扰对系统的性能会产生很大的影响,因此需要对输入信号进行处理,以提取有用信号。
有限长冲激响应(FIR)滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。
本文采用窗函数法,频率采样法和优
化设计方法,通过调用Matlab函数设计FIR数字滤波器。
绘制对应的幅频特性曲线。
最后用基于Matlab函数设计的FIR数字滤波器进行语音滤波处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析不同滤波器的滤波效果。
关键词:
FIR数字滤波器,仿真,窗函数法,频率取样法,优化设计方法
I
目录
摘要 I
Abstract 错误!
未定义书签。
1数字滤波器 1
1.1数字滤波器简介 1
1.2IIR数字滤波器 1
1.3FIR数字滤波器 2
1.4IIR与FIR数字滤波器的比较 4
2Matlab及电子通信系统仿真简介 4
2.1Matlab简介 4
2.1.1基本功能 4
2.1.2Matlab的优势 5
2.2电子通信系统的仿真简介 5
2.2.1通信与电子系统仿真的概念 5
2.2.2计算机仿真的步骤 6
2.2.3电子通信系统计算机仿真的优点 6
2.2.4电子通信系统计算机仿真的局限性 6
3FIR数字滤波器的设计 7
3.1窗函数法设计FIR滤波器 7
3.2频率取样法设计线性相位FIR滤波器 10
3.3线性相位FIR滤波器的优化设计 13
4利用Matlab实现FIR滤波器设计 14
4.1窗函数法的Matlab实现 14
4.2频率取样法的Matlab实现 22
4.3优化设计的Matlab实现 26
4.4利用滤波器处理加有噪声的音频波形 32
参考文献 37
附录 错误!
附录一 外文原文及翻译 错误!
外文原文 错误!
外文翻译 37
附录二 利用Matlab实现FIR滤波器设计参考程序 47
1 数字滤波器
1.1数字滤波器简介
数字滤波器是一个离散的系统。
它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。
数字滤波器的系统函数通常表示为
å
bz
M
-j
j
61
H(z)=
j=0
N
i
1+å
az-i
i=1
(1-1)
数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响
应,即IIR数字滤波器。
从公式的角度来看,FIR数字滤波器的ai
IIR数字滤波器ai至少有一个非零。
始终为零;
实现数字滤波器的方法一般有两种:
一种是利用计算机的程序编译,从而仿真实现;
另一种是利用硬件来实现。
实现一个数字滤波器一般需要三个基本的运算单元:
加法器、延时器和乘法器。
设计一个数字滤波器的一般步骤为:
(1)按所给要求确定滤波器的性能
(2)用一个因果稳定的离散线性时不变的系统函数逼近此性能的要求
(3)利用算法来实现这个系统函数
(4)利用计算机仿真或硬件来实现
1.2IIR数字滤波器
无限长单位冲激响应滤波器,即IIR数字滤波器具有下面几个特点:
(1)系统的单位冲激响应为无限长的
(2)系统函数在有限z平面上有极值点
(3)结构上是递归型的
IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数
{ai,bi}。
在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。
在设计IIR滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。
其原因为:
(1)模拟滤波器的设计技术相对成熟,可以广泛利用
(2)模拟滤波器有大量的参考程序和表格
(3)它的解可以为闭合形式的
1.3FIR数字滤波器
FIR滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。
M阶FIR滤波器的系统函数H(z)为
H(z)=å
h[k]z-kk=0
(1-2)
其中H(z)是z-k的M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M个极点.
FIR滤波器的频率响应H(ejW)为
H(ejW)=å
h[k]e-jkWk=0
(1-3)
它的另外一种表示方法为
H(ejW)=
H(ejW)ejf(W)
(1-4)
f(W)
H(ejW)
其中 和 分别为系统的幅度响应和相位响应。
若系统的相位响应f(W)满足下面的条件
f(W)=-aW
(1-5)
即系统的群延迟是一个与W没有关系的常数a,称为系统H(z)具有严格线性相
位。
由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR滤波器设计中一般使用广义线性相位。
如果一个离散系统的频率响应H(ejW)可以表示为
A(W)ej(-aW+b)
(1-6)
其中a和b是与W无关联的常数,A(W)是可正可负的实函数,则称系统是广义线性相位的。
如果M阶FIR滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性
相位的充要条件为
h[k]=±
h[M
-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滤波器的性质
类型
II
III
IV
阶数M
偶数
奇数
h[k]的对称性
偶对称
奇对称
A(W) 关 于
W=0的对称性
W=p的对称性
A(W)的周期
2p
4p
b
0.5p
A(0)
任意
A(p)
可适用的滤波器类型
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)IR滤波器可以利用模拟滤波器的公式、数据和表格,计算量小。
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滤波器
窗函数设计法又称为傅里叶级数法。
这种方法首先给出Hd
(ejW)
,Hd
(ejW)表
示要逼近的理想滤波器的频率响应,则由IDTFT可得出滤波器的单位脉冲响应为
1
hd[k]=2p
p
ò
Hd
-p
(ejW)ejkWdW
(3-1)
由于是理想滤波器,故hd[k]是无限长序列。
但是我们所要设计的FIR滤波器,其h[k]是有限长的。
为了能用FIR滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应hd[k]分别从左右进行截断。
当截断后的单位脉冲响应hd[k]不是因果系统的时候,可将其右移从而获得因果的FIR滤波器。
另一种设计方案是将线性相位因子ej(-0.5MW+b)加入到理想滤波器的频率响应
中,然后利用IDTFT计算出hd[k]后,取hd[k]在0≦k≦M范围的值为FIR滤波器单位脉冲响应。
H(e ) H(e )
jW jW
理想滤波器的频率响应 d 和设计出的滤波器的频率响应 d 的
积分平方误差定义为
p
e2=1
2p-p
H(ejW)- jW 2 W
d H(e )d
(3-2)
e2也可以表示为
¥
e2=å
h[k]- h[k2]
d
k=-¥
-1 M ¥
(3-3)
d d d
=å
h[k]2+å
h[k]-h[k]2+å
h[k]
k=-¥
k=0
k=M+1
上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中
的第二项达到最小,可选择
h[k]=hd[k],0£
k£
M
(3-4)
所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器。
Gibbs现象就是理想滤波器的单位脉冲响应hd[k]截断获得的FIR滤波器的幅度函数A(W)在通带和阻带都呈现出振荡现象。
随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数M无关。
窗函数的主瓣宽度决定了Hd(ejW)过渡带的宽度,窗函数长度N增大,过渡带减小。
下面介绍一些常用的窗函数,用N=M+1表示窗函数的长度。
(1)矩形窗
w[k]=ì
ï
1(0£
M)
î
(3-5)
í
0(otherwise)
1.8p
N。
矩形窗的主瓣宽度为 N。
用矩形窗设计的FIR滤波器过渡带宽度近似为
(2)Hanning窗
0.5-0.5cos(2pkM)(0£
(3-6)
8p
Hanning窗的主瓣宽度为 N。
由Hanning窗的定义可知,Hanning窗在
其两个端点的值为零,这就使得在实际的应用中不能利用两个端点的数据。
我们可将N+2点的Hanning窗除去两个端点来定义长度为N的Hanning窗。
修改后的长度为N的Hanning窗定义为
w ì
0.5-0.5cos(2p(k+1)M)(0£
[k]=í
(3-7)
在Matlab信号处理工具箱中所采用的就是这种修改后的定义方式。
(3)Hamming窗
0.54-0.46cos(2pk/M)(0£
k
Hamming窗的主瓣宽度为 N。
£
(3-8)
(4)Blackman窗
0.42-0.5cos(2pkM)+0.08cos(4pkM)(0£
12p
Blackman窗的主瓣宽度为 N。
(5)Kaiser窗
(3-9)
I(b 1-(1-2k
)2)
此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。
长度为N的Kaiser窗定义为
w[k]=
I0(b)
,0£
(3-10)
其中b是一个可调参数,可以通过改变b的值来调整窗函数的形状,从而达到不同的阻带衰减要求。
上式中的I0(x)是零阶第一类修正贝塞尔函数。
可用幂级数
表示为
I0(x)=1+å
[
n=1
(x/2)n
]2
n!
(3-11)
对于任意的一个实变量x,函数的值都是正的。
在实际计算中,上式的求和一般取20项就能达到所需精度。
随着参数b的增加,Kaiser窗在两端的衰减是逐渐加大的。
3.2频率取样法设计线性相位FIR滤波器
频率取样法是从频域出发,在频域直接设计,把给定的理想频率响应
H(e )
jW
d 加以等间隔取样,并以此作为实际FIR滤波器的频率响应。
设所需滤波
器的频率响应为 d 。
现要求设计一个M阶的FIR滤波器h[k],使得 d
H(e ) H
在M+1个取样点上,FIR滤波器的频率响应 d 与所需的频率响应
(ejW)相
等,即
Hd
(ejW)=He(jWm
=)å
hk[e-]jkWm
k=0
m,=
0,M1,
(3-12)
d 由设计的要求给定,h[k]需要通过设计来确定。
如果M+1个方程是线性
无关的,则可以通过求解M+1阶的线性方程来得出FIR滤波器的h[k]。
对Wm的一些特殊取样方法,上述方程的解可以直接由IDFT得到。
由于要求设计出的滤
波器是实系数的线性相位FIR滤波器,所以 d 的取样值还需要满足线性相
位滤波器的约束条件。
I型和II型线性相位滤波器的b=0,III型和IV型线性相位滤波器的
b=p
2。
为了使设计出的滤波器具有线性相位,Hd
(ejW)
在M+1个取样点上的值
Hd[m]应为
j2pm
-jMpm
H[m]=H
(eM+1)=ejbe
M+1
A(2pm(M+1))
(3-13)
=ejbe M+1A[m]
下面分别讨论四种线性相位滤波器在取样点Hd[m]上的值:
I型(M为偶数,h[k]偶对称)线性相位FIR滤波器在M+1个取样点值为
A[m]e
ì
Hd[m]=í
d
-jpMmM+1
(0£
m£
M2)
H*[M+1-m](M2+1£
d (3-14)
上式表明I型线性相位FIR滤波器Hd[m]在M
2+1£
M的值可由
Hd[m]在1£
2的值确定。
在Hd[m]的值确定后,对Hd[m]做M+1点的IDFT
即可得到I型线性相位滤波器的h[k]。
II型(M为奇数,h[k]偶对称)线性相位FIR滤波器在M+1个取样点值为
Ad[m]e
-jpMmM+1
(0£
(M-1)2)
H[m]=ï
0(m=(M+1)2)
H*[M+1-m]((M+3)2+1£
(3-15)
上式表明II型线性相位FIR滤波器Hd[m]在(M+3)2+1£
M的值可由Hd[m]在1£
(M-1)2的值确定。
III型(M为偶数,h[k]奇对称)线性相位FIR滤波器在M+1个取样点值为
0(m=0)
pM
jA[m]e-jM+1m(1£
d í
H*[M+1-m](M
(3-16)
上式表明III型滤波器线性相位FIR滤波器Hd[m]在M
IV型(M为奇数,h[k]奇对称)线性相位FIR滤波器在M+1个取样点值为
(M+1)2)
H*[M+1-m]((M+3)2£
(3-17)
上式表明IV型线性相位FIR滤波器Hd[m]