MATLAB的建模和仿真.docx
- 文档编号:27803057
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:24
- 大小:249.80KB
MATLAB的建模和仿真.docx
《MATLAB的建模和仿真.docx》由会员分享,可在线阅读,更多相关《MATLAB的建模和仿真.docx(24页珍藏版)》请在冰豆网上搜索。
MATLAB的建模和仿真
课程设计说明书
题目:
基于Matlab的IIR滤波器设计与仿真
班级:
2012级电气五班
*****
学号:
************
*******
日期:
2015年1月12日
课程设计任务书
设计
题目
基于Matlab的高阶系统设计与仿真
设
计
要
求
一、高阶系统的设计要求:
1、建立高阶系统的数学模型。
2、选择PID控制方法对高阶系统进行控制。
3、计算PID参数的整定结果。
4、利用Simulink或M程序进行仿真。
二、设计步骤与要求
1、阐述系统的工作原理。
2、拟定高阶系统电路组成框图。
3、进行PID参数的整定。
4、画出高阶系统结构图。
5、写出设计性实验报告。
工
作
计
划
1、2015.1.4-1.5搜集资料;
2、2015.1.6-1.10电路设计;
3、2015.1.10-1.12完成设计报告并提交。
指导教师:
张小娟教研室主任:
基于MATLAB的IIR滤波器设计与仿真
前言
数字信号处理(digitalsignalprocessing,DSP)是从20世纪60年代以来,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。
数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用处理的目的。
数字信号处理系统有精度高、灵活性高、可靠性高、容易大规模集成、时分复用、可获得高性能指标、二维与多维处理等特点。
正是由于这些突出的特点,使得它在通信、语音、雷达、地震测报、声呐、遥感、生物医学、电视、仪器中得到愈来愈广泛的应用。
在数字信号处理中起着重要的作用并已获得广泛应用的是数字滤波器(DF,DigitalFilter),根据其单位冲激响应函数的时域特性可分为两类:
无限冲激响应IIR(InfiniteImpulseResponse)滤波器和有限冲激响应FIR(FiniteImpulseResponse)滤波器。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来结算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的有点,使MATLAB成为一个强大的数学软件,在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。
1数字滤波器概述
数字滤波器是对数字信号实现滤波的线性时不变系统。
数字滤波实质上是一种运算过程,实现对信号的运算处理。
输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为一台计算机。
描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。
时域离散系统的频域特性:
Y(e
)=X(e
)H(e
)
其中Y(e
)、X(e
)分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),H(e
)是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。
输入序列的频谱X(e
)经过滤波后X(e
)H(e
),因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择H(e
),使得滤波后的X(e
)H(e
)满足设计的要求,这就是数字滤波器的滤波原理。
数字滤波器根据其冲击响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。
IIR数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型:
y(n)=
+
来实现,其差分方程为:
H(z)=
系统函数为:
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。
数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。
由于电子计算机技术和大规模集成电路的发展,数字滤波器已经可用计算机软件实现,也可用大规模集成数字硬件实时实现。
数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号(对应数字频率)转换为所要求的输出离散时间信号的特定功能装置)。
应用数字滤波器处理模拟信号(对应模拟频率)时,首先须对输入模拟信号进行限带、抽样和模数转换。
为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。
数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。
数字滤波器有低通、高通、带通、带阻和全通等类型。
它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。
滤波器的种类很多,分类方法也不同。
从处理信号分:
经典滤波器、现代滤波器
从实现的网络结构方法上分:
FIR(有限脉冲响应)、IIR(无限脉冲响应)
从功能上分:
低通、高通、带通、带阻
从设计方法上来分:
Butterworth(巴特沃斯),Chebyshev(切比雪夫),椭圆函数(Ellipse),贝塞尔(Bessel)等等。
数字滤波器与模拟滤波器的区别
数字滤波器的传输函数
都是以2
为周期的,滤波器的低通频带处于2
的整数倍处,而高频频带处于
的奇数倍附近。
数字滤波器的技术要求:
H(e
)=
其中:
幅频特性
相频特性
2IIR数字滤波器设计方法
就广义而言,数字滤波器是一个用有限精度算法实现的线性移不变时间系统。
设计实现一个数字滤波器一般包括四个基本步骤:
1按照实际需要确定滤波器的性能要求。
比如确定所设计的滤波器是低通、高通、带通还是带阻,截止频率是多少,阻带的衰减有多大,通带的波动是多少等;
2用一个因果稳定的系统函数去逼近这个性能要求;(IIR,FIR)
3用一个有限精度的算法去实现这个系统函数;(运算结构)
4实际的技术实现。
(通用计算机软件或专用数字滤波器硬件)
IIR数字滤波器的设计方法
图1IIR数字滤波器设计方法
数字滤波器(DigitalFilter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器在数字信号处理中起着非常重要的作用,在信号的过滤、检测与参数的估计等方面,是使用最为广泛的一种线性系统。
实现数字滤波器的方法有两种,一是采用计算机软件进行,就是把所要完成的工作通过程序让计算机来实现;二十设计专用的数字处理硬件。
这个地方主要用到的就是第一种方法。
即是用Mafiab提供的信号处理工具箱来实现数字滤波器。
Matlab信号处理工具箱提供了丰富的设计方法,可以使得繁琐的程序设计简化成函数的调用,只要以正确的指标参数调用函数,就可以正确快捷的得到设计结果。
IIR数字滤波器的最通用的方法是借助于模拟滤波器的设计方法。
模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行。
对于IIR数字滤波器的设计具体步骤如下:
(1)按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。
(2)根据转换后的技术指标设计模拟低通滤波器G(s)(G(s)是低通滤波器的传递函数)。
(3)再按照一定的规则将G(s)转换成H(z)(H(z)是数字滤波器的传递函数)。
若设计的数字滤波器是低通的,上述的过程可以结束,若设计的是高通、带通或者是带阻滤波器,那么还需要下面的步骤:
将高通。
带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标,然后设计出低通G(s),再将G(s)转换为H(z)。
Matlab信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便的对滤波器进行设计。
这里选取巴特沃斯法、切比雪夫Ⅰ、切比雪夫Ⅱ、椭圆法四种方法进行比较。
给出用上述方法设计数字滤波器的函数如下:
Butterworth滤波器:
[N,Wn]=buttord(Wp,Ws,Rp,Rs)
[b,a]=butter(N,Wn)
[b,a]=butter(N,Wn,’ftype’)
[h,f]=freqz(b,a,n,Fs)
其中:
Wp表示通带截止频率;Ws表示阻带截止频率;Rp表示通带纹波系数;Rs表示阻带纹波系数;N表示滤波器最小阶数;Wn表示截止频率。
b,a分别表示阶次位N+1的数字滤波器系统传递函数的分子和分母多项式系数向量;Fs位采样频率;n为在区间[0Fs]频率范围内选取的频率点数,f记录频率点数。
N取2的幂次方,可以提高运算的速度,因为freqz函数采用基2的FFT算法。
Ftype=high时,位高通滤波器;ftype=bandpass时,位带通滤波器;ftype=stop时,位带阻滤波器。
ChebysheveⅠ型滤波器:
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)
[b,a]=cheby1(N,Rp,Wn)
[b,a]=cheby1(N,Rp,Wn,’ftype’)
[h,f]=freqz(b,a,n,Fs)
ChebysheveⅡ型滤波器:
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)
[b,a]=cheby2(N,Rs,Wn)
[b,a]=cheby2(N,Rs,Wn,’ftype’)
[h,f]=freqz(b,a,n,Fs)
椭圆滤波器:
[N,Wn]=ellipord(Wp,Ws,Rp,Rs)
[b,a]=ellip(N,Rp,Rs,Wn)
[b,a]=ellip(N,Rp,Rs,Wn,’ftype’)
[h,f]=freqz(b,a,n,Fs)
比较结果分析
通过对各种类型的滤波器通过不同方法进行设计,可以使一些结论得到验证。
利用Butterworth滤波器、ChebysheveⅠ型滤波器、ChebysheveⅡ型滤波器、椭圆滤波器都可以进行低通、高通、带通、带阻滤波器的设计,但是各有特点。
Butterworth滤波器通带内的幅频响应曲线能得到最大限度的平滑,但牺牲了截止频率的坡度。
ChebysheveⅠ型滤波器通带内等波纹,阻带内单调;ChebysheveⅡ型滤波器通带内单调,然而阻带内等波纹;椭圆滤波器阻带和通带内都是等波纹的,但下降的坡度更大,而且可以以更低的阶数实现和其他两类滤波器一样的性能指标。
3IIR数字滤波器的特点
IIR数字滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、并联型四种结构形式,都具有反馈回路。
由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。
IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。
在设计一个IIR数字滤波器时候,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。
在MATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。
下面主要介绍前连个函数的使用。
与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器的阶数,在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。
IIR单位响应为无限脉冲序列FIR单位响应为有限的。
IIR幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上。
FIR幅频特性精度较至于IIR低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。
另外有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小。
4MATLAB概述
MATLAB代表MatrixLaboratory,它的首创者是美国新墨西哥大学计算机系的系主任CleveMoler博士,他在教授线性代数课程发现其他语言很不方便,便构思开发了MATLAB。
最初采用FORTRAN语言编写,20世纪80年代后出现了MATLAB第二版,全部采用C语言编写。
MATLAB是一种高性能的技术计算语言。
强大的数值计算和工程运算功能
符号计算功能
强大的科学数据可视化能力
多种工具箱
MATLAB可以进行:
数学计算、算法开发、数据采集
建模、仿真、原型
数据分析、开发和可视化
科学和工程图形应用程序的开发,包括图形用户界面的创建。
MATLAB广泛应用于:
数值计算、图形处理。
符号运算、数学建模、系统辨识、小波分析、实时控制、动态仿真等领域。
MATLAB的构成:
MATLAB开发环境:
进行应用研究开发的交互式平台
MATLAB数学与运算函数库:
用于科学计算的函数
MATLAB语言:
进行应用开发的编程工具
图形化开发:
二维、多维图形开发的工具
应用程序接口(API)用于与其他语言混编
面向专门领域的工具箱:
小波工具箱、神经网络工具箱、信号处理工具箱、图形处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。
MATLAB语言特点:
MATLAB具有用法简单、灵活、程式结构性强、延展性好等优点,已经逐渐成为科技计算、视图交互系统和程序中的首选语言工具。
特别是它在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真等方面表现突出,已经成为科研工作人员和工程技术人员进行科学研究和生产实践的有利武器。
MATLAB的技术特点:
语言简洁紧凑,语法限制不严,程序设计自由度大,可移植性好。
MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入输出和面向对象编程特点。
MATLAB以矩阵为居处,不需要预先定义变量和矩阵(包括数组)的位数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。
而且MATLAB有特殊矩阵专门的库函数,可以高效地求解诸如信号处理、图像处理、控制等问题。
运算符、库函数丰富。
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序,每一个工具箱都是为某一类学科专业和应用而定制的。
MATLAB包括两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互的功能;而学科性工具箱是专业性比较强的,如:
control,toolbox,signlproceessingtoolbox,commumnicationtoolbox等。
这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序就可直接进行高、精、尖的研究。
强大的数值(矩阵)运算功能。
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵、特征向量、快速傅里叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程组的求解、符号运算、傅里叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
界面友好、编程效率高。
MATLAB程序书写形式自由,被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式。
编写MATLAB程序犹如在草稿纸上排列公式和求解问题,因此可以快速地验证工程技术人员的算法。
此外MATLAB还是一种解释性语言,不需要专门的编译器。
具体的说,MATLAB运行时,可直接在命令行输入MATLAB语句,系统立即进行处理,完成编译、连接和运行的全过程。
利用丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
图形功能强大。
MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且可以对图形进行标注和打印。
MATLAB的图形技术包括二维和三维的可视化、图像处理、动画等高层次的专业图形的高级绘图函数(例如图形的光照处理、色度处理以及四维数据的表现等),又包括一些可以让用户灵活控制图形特点的低级绘图命令,可以利用MATLAB的句柄图形技术创建图形用户界面。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善。
MATLAB功能特点:
MATLAB将一个优秀软件的易用性与可靠性、通用性与专业性、一般目的的应用与高深的科学技术应用有机的结合。
扩展性强。
MATLAB不仅有着丰富的库函数,在进行复杂的数学运算时可以直接调用。
而且用户还可以根据需要方便地编写和扩充新的函数库。
通过混合编程用户可以方便地在MATLAB环境中调用其他用FORTRAN或者C语言编写的代码,也可以再C语言或者FORTRAN语言程序中调用MATLAB计算引擎来执行MATLAB代码。
可靠的容错功能、应用灵活的兼容与接口功能。
MathWorks公司开发的MatlabNotebook成功地将MicrosoftWord和Matlab结合在一起,为文字处理、科学计算和工程设计营造了一个完美的工作环境。
Matlab的Notebook实现Word和Matlab无缝连接使Word不仅兼容原有编辑能力而且又增加了Matlab强大的计算和绘图能力,在科学研究、工程设计和教学方面都有很好的实用价值,已经远远的把MathCAD抛在后面。
MatlabNotebook可以在word中随时修改计算命令,随时计算并生成图像返回。
信息量丰富的联机检索功能。
新版本的Matlab可以利用Matlab编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页五福程序还容许在Web应用中使用自己的Matlab数学和图形程序。
综上,MATLAB是一种基于矩阵运算、具有强大的数值运算和数据处理功能的高级编程语言,广泛应用于信号分析、语言分析、优化设计等领域,在复杂的算法方面表现出其他语言难以比拟的优势。
MATLAB的开放性。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
5SIMULINK
所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考虑模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。
为了创建动态系统建模,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。
Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
特点
丰富的可扩充的预定义模块库
交互式的图形编辑器来组合和管理直观的模块图
以设计功能的层次性来分割模型,实现对复杂设计的管理
通过ModelExplorer导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码
提供API用于与其他仿真程序的连续或与手写代码集成
使用EmbeddedMATLAB
模块在Simulink和嵌入式系统执行中调用MATLAB算法
使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,RapidAccelerator)来决定以解释性的方式运行或以编辑C代码的形式来运行模型
图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为
可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据
模型分析和诊断工具来保证模型的一致性,确定模型中的错误
6IIR数字滤波器设计方法
IIR数字滤波器是一种离散时间系统,其系统函数为
H(z)=
假设M<=N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。
IIR数字滤波器的设计实际上是求解滤波器的系数和
和
,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;如果在Z平面上去逼近,就得到数字滤波器。
IIR数字滤波器的设计步骤
IIR数字滤波器的设计一般有两种方法:
一种是借助模拟滤波器的设计方法进行。
一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 建模 仿真