基于MATLAB信号处理工具箱的IIR滤波器设计与仿真.docx
《基于MATLAB信号处理工具箱的IIR滤波器设计与仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB信号处理工具箱的IIR滤波器设计与仿真.docx(30页珍藏版)》请在冰豆网上搜索。
基于MATLAB信号处理工具箱的IIR滤波器设计与仿真
基于MATLAB信号处理工具箱的IIR滤波器设计与仿真
基于MATLAB信号处理工具箱的
IIR滤波器的设计与仿真
摘要
在现今通信中,信号中总是夹杂着噪声和许多无用的频率成分,因此需要采用一定的方法将这些成分滤除,数字滤波器便是其应用。
数字滤波器的工作原理是能够让特定频段的信号通过,其他频段则不能通过。
数字滤波器主要应用于通信,图像处理,语音编码,雷达等领域。
该设计的目的就是让我们的系统的掌握所学过的IIR滤波器设计的相关知识,熟悉MATLAB中相关的信号处理工具箱,熟练仿真软件simulink。
本文首先对数字滤波研究背景、发展前景及MATLAB进行介绍;接着又介绍了对数字滤波原理,对滤波器进行分类;然后对IIR数字滤波方法进行了研究,紧接着开始设计数字滤波系统,利用PDATool工具进行界面设计;最后利用设计成果,设计
Simulink仿真模块对所设计的滤波器进行仿真,对一特定信号进行处理,对比滤波前后信号的失真情况,以此判断所设计滤波器是否满足设计要求。
关键词:
IIR滤波器FDAToolsimulink
I
DesignandSimulationofIIRfilterbased
onMATLABsignalprocessingtoolbox
ABSTRACT
Inthepresentcommunication,thesignalalwaysmixedwiththenoiseandmanyuselessfrequencycomponents,thereforeneedtouseacertainmethodtofiltertheseingredients,digitalfilterisitsapplication.Theworkingprincipleofdigitalfilterisabletoletthesignalofaspecificfrequency,otherfrequencycannotthrough.Digitalfilterismainlyusedincommunication,imageprocessing,speechcoding,radarandotherfields..
ThepurposeofthedesignistoletusmastertheknowledgeoftheIIRfilterdesign,familiarwiththesignalprocessingtoolboxinMATLAB,andskilledsimulationsoftwareSIMULINK.Atfirst,thebackgroundanddevelopmentoftheIIRfilterisuntroducedth.ThenItalkabouteprincipleclassificationoftheIIRfilter;andstudiestheIIRdigitalfilteringmethod,immediatelybegantodesigndigitalfiltersystem,PDATooltoolisusedtodesigntheinterface;finally,usingthedesignresults,designSimulinkmoduleofthedesignedfiltersimulation,aspecialsignalprocessing,contrastbeforeandafterfilteringthesignaldistortion,inordertodeterminethedesignedfiltercanmeetthedesignrequirements.
KEYWORDS:
IIRfilterFDAToolSimulink
II
中文摘要.................................................I英文摘要................................................II1绪论.........................................................................................................................................1
1.1研究的背景及意义..................................1
1.2数字滤波器的发展前景..............................1
1.3MATLAB软件的简介.................................22数字滤波器概述...............................................................................................................4
2.1数字滤波器简介....................................4
2.2经典数字滤波器的分类..............................4
2.3数字滤波器的主要设计指标..........................53IIR数字低通滤波器设计方法的研究................................................................6
3.1IIR数字滤波器的设计步骤..........................6
3.2IIR数字低通滤波器的直接设计法....................8
3.2.1设计方法及原理.......................................8
3.2.2MATLAB设计...........................................9
3.2.3直接设计法的优缺点..................................11
3.3脉冲响应不变法设计IIR数字低通滤波器.....................................11
3.3.1设计方法及原理......................................11
3.3.2MATLAB设计.........................................13
3.3.3脉冲响应不变法优缺点................................15
3.4双线性变换法设计IIR数字低通滤波器........................................16
3.4.1设计方法及原理......................................16
3.4.2MATLAB设计..........................................18
3.4.3双线性变换法设计的优缺点............................194IIR数字滤波系统的设计......................................................................................21
4.1FDATool工具的界面介绍............................................................................21
4.2直接设计法的FDATool设计.........................22
4.3经典设计法的FDATool设计.........................24
4.3.1巴特沃斯低通滤波器FDATool设计......................24
4.3.2椭圆滤波器的FDATool设计............................255IIR数字滤波系统的simulink仿真设计......................................................26
5.1simulink简介....................................26
5.2直接设计法的simulink仿真........................27
5.3经典法的simulink仿真............................31
5.3.1脉冲响应不变法的simulink仿真.......................31
5.3.2双线性变换的simulink仿真...........................32
结束语..................................................34
致谢..................................................36
参考文献................................................37
1绪论
1.1研究的背景及意义
数字滤波器是一种能够对输入信号进行滤波的硬件或软件。
对于一输入输出皆为离散序列的信号来说,其冲击响应也应为离散的,我们便把此种滤波器称为数字滤波器。
数字滤波器在数字信号的处理及其应用中起着十分重要的作用,通过对数据和信号进行采样来进行运算和处理从而达到滤波的目的。
数字滤波器能有效提取有用信号,方式灵活,是现代数字信号处理中不可或缺的一部分。
数字滤波器可用于数字通信,模式识别,图像处理,谱分析,自动控制等领域,因而具有十分广泛的应用。
与模拟滤波器相比,数字滤波器无漂移,对低频信号进行处理效果非常好,运用一些方式使得频率响应特性可以非常接近理想特性,精度高,集成度高等优点将使得数字滤波器的应用越来越广泛。
数字滤波器更具有模拟滤波器所无可比拟的优点:
灵活性高:
数字滤波器性能与乘法器的各个系数息息相关,这些系数存放于系统存储器中,以此,对各个系数的改变将对滤波系统产生影响,便可以此数据来设计预期的滤波器。
相比之下通过改变系数来对滤波器系统进行改变要比使用模拟滤波器系统更加容易,方便。
可靠性好:
数字信号区别于模拟信号,数字信号时域和频域都是离散的,这就使得数字信号只有‘0’‘1’两种,所受到的噪声和环境的影响较小。
相比之下,由于模拟滤波器具有一定的温度系数,所以易受温度,振荡,电磁干扰等影响。
一般来说,对于常采用大规模集成电路的数字滤波器来说他的可靠性要高于模拟滤波器的,因为由个分立元件构成的模拟滤波器的故障率更高一些。
集成度更高:
高度集成的数字滤波器在体积,重量,性能等方面比模拟滤波器更具优势。
并行处理:
实现并行处理是数字滤波器另一个十分重大的优点。
正是由于数字滤波器所拥有的这些优点使得数字滤波有了更加广泛的应用,人们对数字滤波的研究也越来越深入,这些研究必将为人类世界的发展起到不可磨灭的贡献。
1.2数字滤波器的发展前景
近几年,Wiener滤波,Kalman滤波和自适应滤波等一些非线性滤波获得更进一步的发展。
此外,随着科技的不断发展,通过借助不同的方式使得非线性的滤波方法也得1
到了飞速的发展,人们对于小波滤波、同态滤波、中值滤波和形态滤波的研究也越来越深入。
Wiener滤波能在在最小均方误差条件下对混有白噪声信号进行最佳估计,但由于Wiener-H0ff方程求解复杂使得其应用困难。
Kalman滤波与Wiener滤波相似,同样可在最小均方误差条件下给出信号的最佳估计。
不同之处在于这种滤波方式在时域中采用递推的方式,速度更快,便于实时处理,因而应用广泛。
Kalman滤波可以用于图象的去噪。
当Wiener滤波器单位脉冲响应有限长时,可采用自适应滤波的方法得到滤波器的最佳响应。
不需要求解Wiener-Hoff方程,为一些问题的解决提供很大方便。
小波滤波利用了信号和噪声特性。
同态滤波适用于信号和噪声之间相乘关系的问题。
此外,当信号与噪声之间为卷积关系时,一定条件下可用同态滤波方法将信号分离但是,Wiener滤波、Kalman滤波和自适应滤波这些非线性滤波容易导致容易导致信号边缘的模糊。
中值滤波,一种非线性滤波,能给出最佳估计消除边缘模糊现象,也具有良好的清除脉冲噪声的能力。
形态滤波建立在集合运算上,是一种非线性滤波,用于清除噪声图像分析。
无论对于哪种滤波器而言,随着研究的深入,人们对滤波器也有了越来越多的认识,所设计的滤波器的性能也越来越优秀,滤波器的应用范围也会更加广泛,因此对于我们而言学习好滤波器和MATLAB这些课程是十分必要的,扩充了我们的知识面,又为以后的工作学习打下良好的基础。
1.3MATLAB软件的简介
MATLAB((MatrixLaboratory)是到目前为止已被国际公认为最优秀的数学运算软件之一,他集计算、图形可视化、和编辑功能于一体,作为Mathworks公司所开发的一种工具,他的运算功能十分强大而且操作比较简单。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
MATLAB的出现极大地方便了运算,具有无可替代的一系列优点它具有友好的工作平台和编程环境计算和数据处理功能十分强大,操作性也更高,MATLAB所使用的语言更加的简单易用,其图形处理能力亦非常出色,所使用的工具箱将各模块集合起来使得操作更加简洁,调用起来更加方便。
其中所包含的FDATool工具和simulink模块对本次的毕业设计至关重要;使用FDATool工具可直接进行多种滤波器的设计,使用方法也非常简单,而simulink模块则是对原始信号进行模拟仿真的工具,对于设计也是不可或缺的,可以用此工具对所2
设计的滤波器进行验证以检验所设计的滤波器是否满足设计的技术指标和设计目的。
3
2数字滤波器概述
2.1数字滤波器简介
数字滤波器是对数字信号进行滤波而得到期望的响应特性的离散时间系统。
工作在数字域的数字滤波器与工作在模拟信号域的模拟滤波器的工作方式完全不同,其主要不同在于:
两种滤波器的工作域不同,数字滤波器在数字信号域工作而模拟滤波器在模拟信号域工作。
对于信号的处理上也有不同之处,数字滤波是将经过采样器的模拟信号转换为数字信号。
数字滤波器与模拟滤波器的工作方式也完全不同;由电阻器、电容器、晶体管等一些元件所组成的物理网络具有滤波的功能,模拟滤波器就是靠这种方式实现的;然而数字滤波器则不同,由数字运算器件所组成的数字滤波系统能够实现对输入信号的运算处理,最终达到设计要求。
数字滤波器理论上可实现任何以数字算法表示的滤波。
可由一些基本的数字运算电路构成。
描述离散系统输出与输入关系的卷积和差分方程为数字信号滤波器提供运算规则,以此规则完成对输入数据的处理。
时域离散系统的频域特性:
Y(ej?
)?
X(ej?
)H(ej?
)
X(ejω),Y(ejω)分别表示数字滤波器的输入输出序列的频域特性。
H(ejω)是单位抽样响应频谱,X(ejω)信号经滤波后得Y(ejω)信号,根据输入信号特点,处理信号的要求和目的选择合适的H(ejω),最终使输出满足设计要求,此为数字滤波原理。
2.2经典数字滤波器的分类
经典数字滤波以单位抽样响应h(n)时域特性可分为无限长单位冲击响应(IIR)和有限长单位冲击响应(FIR)。
若单位抽样响应时宽无限,n0?
n?
?
为IIR系统;若时
宽有限n1?
n?
n2为FIR系统。
根据数字滤波器的实现方法和结构可分为递归和非递归型。
递归型数字滤波器当前输出y(n)是输入x(n)的当前值和以前的各输入值x(n),x(n-1),…,和以前各输出值y(n),y(n-1),…,的函数。
4
递归系统传统函数定义为:
H(z)?
?
bz
ii?
0Ni?
1
?
?
i
1?
?
aiz?
i
一N阶递归数字滤波器(IIR)差分方程为:
y(n)?
?
bix(n?
i)?
?
aiy(n?
i)
i?
0
i?
1
?
N
其中,式中系数ai至少有一项不为零。
ai≠0说明必须将延时输出序列y(n)进行反馈。
经典数字滤波器从滤波特性分类,可分为低通滤波器,带通滤波器,高通滤波器,带阻滤波器。
由于低通滤波可以通过一定的方式转换为带通,带阻,高通,故此本文只对低通滤波进行研究分析。
本文主要是设计IIR数字低通滤波。
图2.1各种理想滤波器的幅频特性
2.3
数字滤波器的主要设计指标
常常在频域给出数字滤波器指标,数字滤波器的频响特性函数式:
H(ejw)?
H(
z)|z?
ejw?
H(ejw)ej?
(w)
5
其中H(ejω)为幅频特性函数,?
(?
)为相频特性函数。
幅频特性表示信号通过该滤波器后输出的幅度随频率的变化情况,而相频特性反映各频率通过滤波器后相位差随输入频率的变化情况。
对于一般的IIR数字滤波器,只用幅频响应函数|H(ejω)|来描述设计指标即可,不需要在对相频部分进行处理,本文为使设计更加完整,也加入了部分相频响应的指标。
IIR滤波器指标参数如下图所示。
图中,?
p和?
s分别为通带边界频率和阻带边界频率;?
1和?
2分别为通带波纹和阻带波纹;使用分贝(dB)来表示衰减,通带内所允许的最大衰减和阻带内允许的最小衰减分别用?
p和?
s表示:
ap?
?
20lg
as?
?
20lg?
2
通常要求:
1?
?
11?
?
1?
20lg1?
?
11?
?
1
0?
?
?
?
p时,?
20lgH(ejw)?
ap
jw?
?
?
?
时,as?
?
20lgH(e)
图2.2数字低通滤波技术指标
3IIR数字低通滤波器设计方法的研究
3.1IIR数字滤波器的设计步骤
6
数字滤波器的设计方法是多样的,主要采用直接设计法和经典设计法这种设计方法来进行设计:
其一是利用了模拟滤波器的设计方法,其设计方式是首先设计一模拟滤波器然后通过某种方法转换为数字滤波器,此即为模数转换的思想,为经典设计法,这里我将采用脉冲响应不变法和双线性变换法两种设计方式来设计;其二是直接在频域或时域内进行设计,需要借组计算机求解复杂复杂方程以作辅助设计,其设计过程主要是先设计一过渡的模拟滤波器的系统函数,再将该系统函数借助某种方法转换为数字滤波器的系统函数。
两种设计方式相比,采用模数转换思想的设计方法即经典设计法更加容易些,主要是因为模拟滤波器的设计方法已比较成熟,设计公式也相当全面,不仅如此,还有了大量图表曲线等资料可供设计使用。
为此我们提出了两点要求,其目的是为保证转换后的数字滤波器稳定且满足最初的设计要求:
(1)对于一因果稳定的模拟滤波器而言,经模数转换后得到的数字滤波器也应为因果稳定的。
(2)模拟滤波器所在的S平面应映射到数字滤波器所在Z平面的单位圆上,两者是一一对应的关系,因而模拟滤波器和数字滤波器的频响特性应是相似的。
利用模拟滤波器来设计数字滤波器的主要有以下几个设计步骤:
1)首先应确定所要设计的数字滤波器及技术指标,包括通带边界频率?
p,阻带边界频
率?
s,通带所允许的最大衰减?
p,阻带所允许的最小衰减?
s。
2)其次将数字滤波器的技术指标通过某种方式转换为模拟滤波器的技术指标。
3)然后根据得出的模拟滤波器的设计指标来设计过渡的模拟滤波器。
4)最后应用自己所设计的转换方法将模拟滤波器系统函数Ha(s)转换为数字滤波器的
系统函数。
IIR滤波器的设计流程图如下:
7
图3.1设计流图
设计内容:
设计一采样频率Fs=1000Hz的IIR数字低通滤波器,要求通带边界频率fp=300Hz,通带最大衰减Rp=1dB,阻带边界频率fs=400Hz,阻带最小衰减Rs=30dB。
根据这些参数设计出合理的IIR数字滤波器。
3.2IIR数字低通滤波器的直接设计法
3.2.1设计方法及原理
MATLAB数字信号处理工具箱中包含了函数库,拥有大量的函数可供调用,滤波器的设计便可通过调用其中的一些函数来实现,调用这些函数为滤波器的设计提供了极大的便利。
其主要设计方法有:
1.零极点累试法
这种方法也称为零极点累试法。
在确定零极点位置时要注意:
(1)极点必须位于z平面单位圆内,保证数字滤波器因果稳定;
(2)复数零极点必须共轭成对出现,保证系统函数有理式的系数是实的。
2.IIR数字滤波器的时域直接设计法
先设计一数字滤波器H(z),采用逼近的方式来进行设计,其目的就是让所设计的滤波器的单位脉冲响应h(n)尽可能的达到所要设计的IIR滤波器的单位脉冲响应的标准。
3.在频域直接设计IIR数字滤波器
频域直接设计是利用幅度平方误差最小的特点来设计数字滤波器。
可以MATLAB函数库里有多种函数可供直接调用以此来设计滤波器。
可以通过调用butter()函数来设计Butterworth滤波器,使用这种方法来设计低
8
通,带通,高通,带阻模拟和数字滤波器具有无可比拟的优点,能够使通带内幅度响应达到最大限度的平滑;但也存在不足之处,因为他损失了截频处的下降斜度。
切贝雪夫滤波器有Ⅰ型和Ⅱ型两种,分别调用chebyl()和cheby2()两种函数,同样可以用来设计低通,带通,带阻,高通模拟和数字滤波器,但两者有一定的区别,Ⅰ型等波纹通带,阻带单调,而Ⅱ型正好与此相反,Ⅰ型比Ⅱ型下降斜度大,但Ⅰ型的代价是通带内波纹较大。
可以调用函数ellip()来设计椭圆滤波器,根据滤波的的特性依旧可设计低通、带通、带阻、高通模拟和数字滤波器。
与巴特沃斯和切贝雪夫滤波器相比,使用ellip函数所设计的滤波器得到的下降斜度更大一些,得到的通带阻带都应为等波纹。
通常,椭圆滤波器可以最低阶实现所需要设计滤波器的性能。
3.2.2MATLAB设计
ChebyshevI型设计的M程序:
Fs=1000;
Flp=300;
Fls=400;
Wp=2*Flp/Fs;
Ws=2*Fls/Fs;
Rp=1;
Rs=30;
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);
[b,a]=cheby1(N,Rp,Wn);
[hw,w]=freqz(b,a);
subplot(2,1,1);
plot(w/pi,20*log10(abs(hw)));gridon;
xlabel('ω/π');ylabel('幅度(dB)')
title('切比雪夫I型幅频响应');
subplot(2,1,2);plo