IIR数字滤波器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数字信号处理课程设计报告题目:IIR数字滤波器的设计学院:化工过程自动化学院专业班级:学号:姓名:指导教师:起止日期:2015年6月22日~2015年6月28日目录1课程设计的意义与任务要求..........................................11.1课程设计的意义................................................11.2课程设计的任务要求............................................12课程设计的理论基础................................................12.1数字滤波器简介................................................22.2IIR数字滤波器的设计原理......................................22.3IR数字滤波器的特点...........................................33MATLAB软件介绍...................................................33.1MATLAB软件介绍...............................................33.2MATLAB应用领域...............................................43.3MATLAB相关语句...............................................44课程设计的具体内容................................................54.1数字滤波器设计步骤............................................54.2脉冲响应不变法和双线性变换法的变换原理和步骤..错误!未定义书签。4.2.1脉冲响应不变法的变换原理和步骤............错误!未定义书签。4.2.2双线性变换法的变换原理和步骤..............................64.3实验步骤及运行程序............................................65课程设计的总结与心得.............................................10参考文献...........................................................11数字信号处理课程设计11、课程设计的意义与任务要求1.1课程设计的意义数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量输出。数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高、稳定性好、、灵活性强等优点。1.2课程设计的任务要求(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。2、课程设计的理论基础利用MATLAB信号处理工具箱中的滤波器设计和分析工具(FDATool)可以很方便地设计出符合应用要求的未经量化的IIR数字滤波器。需要将MATLAB设计出的IIR数字滤波器进一步分解和量化,从而获得可用FPGA实现的滤波器系数。IIR数字滤波器的设计方法有两类:间接设计法和直接设计法。间接设计法是借助模拟滤波器设计方法进行设计的,先根据数字滤波器设计指标设计相应的过渡模拟滤波器,再将过渡模拟滤波器转换为数字滤波器。直接设计法师在时域或频域直接设计数字滤波器。由于模拟滤波器设计理论非常成熟,而且有很多性能优良的典型滤波器可供选择(如,巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等),设计公式和图表完善,而且许多实际应用需要模拟滤波器的数字仿真,所以间接设计法得到广泛的应用。而直接设计法要求解联立方程组,必须采用计算机辅助设计。在计算机普及的今天,各种设计方法都有现成的设计程序(或设计函数)可供调用,数字信号处理课程设计2例如利用MATLAB仿真平台,可以设计不同类型的IIR滤波器。2.1数字滤波器简介数字滤波器是一种用来过滤时间离散信号的数学系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号(对应数字频率)转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号(对应模拟频率)时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的数字频率(2π*f/fs,f为模拟信号的频率,fs为采样频率,注意区别于模拟频率),按照奈奎斯特抽样定理,要使抽样信号的频谱不产生重叠,应小于折叠频率(ws/2=π),其频率响应具有以2π为间隔的周期重复特性,且以折叠频率即ω=π点对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。2.2IIR数字滤波器的设计原理IIR数字滤波器的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行。对于IIR数字滤波器的设计具体步骤如下:(1)按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。(2)根据转换后的技术指标设计模拟低通滤波器G(s)(G(s)是低通滤波器的传递函数)。(3)再按照一定的规则将G(s)转换成H(z)(H(z)是数字滤波器的传递函数)。若设计的数字滤波器是低通的,上述的过程可以结束,若设计的是高通、带通或者是带阻滤波器,那么还需要下面的步骤:数字信号处理课程设计3将高通、带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标,然后设计出低通G(s),再将G(s)转换为H(z)。2.3IIR数字滤波器的特点(1)IIR数字滤波器的系统函数可以写成封闭函数的形式。(2)IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。(3)IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。(4)IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。3、关于MATLAB软件3.1MATLAB软件介绍MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。[1]MATLAB不仅在数值运算上继续保持着相对其他同类软件的绝对优势,而且还开发了自己的符号运算功能。用户只要学会了MATLAB就可以方便解决诸如矩阵变换及运算、多项式运算、微积分运算、线性与非线性方程求解、常微分方程求解、偏微分方程求解、插值与拟合、统计及优化等问题。而且MATLAB能发展到今天,其可扩充性和可开发性起着不可估量的作用。MATLAB本身就像一个解释系统,对其中的函数程序的执行以一种解释执行的方式进行,其最大好处是MATLAB完全成了一个开放的系统,用户可以方便的与数字信号处理课程设计4FORTRAN、C等语言进行连接,以充分利用各种资源。用户只需将已有的EXE文件转换成MEX文件,就可以方便地调用有关程序和子程序。3.2MATLAB应用领域MATLAB是一种应用于科学计算领域的高级语言,它的主要功能包括数值计算和符号计算功能、绘图功能、编程语言及应用工具箱。尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。[2]MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。[3]3.3MATLAB相关语句convert转换量化滤波器的结构copyobj*为量化器、量化滤波器或量化FFT创建一个独立的复制品disp*显示量化器、量化滤波器或量化FFTeps*返回量化器、量化滤波器或量化FFT的量化阶数filter*将一量化滤波器应用于数据,可访问状态和滤波信息freqz*计算量化滤波器的频响特性数字信号处理课程设计5get*返回量化器、量化滤波器或量化FFT的属性impz*计算量化滤波器的单位冲激响应isallpass测试量化滤波器是否为全通特性isfir测试是否为FIR滤波器islinphase测试是否为线性相位noperations*量化器、量化滤波器或量化FFT的量化操作次数noverflows*返回最后一次FFT或IFFT运算的溢出次数qfft量化FFTqreport*显示应用量化器、量化滤波器或量化FFT的结果quantizer*构建一个量化器range*返回量化器的数值范围reset*将一个或多个量化器、量化滤波器或量化FFT复位setbits*将量化器、量化滤波器或量化FFT的数据设置为Format形式4、设计的具体内容4.1数字滤波器设计步骤用MATLAB进行模拟原型的数字滤波器的设计,一般步骤如下:(1)按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标。(2)根据转换后的技术指标使用滤波器阶数选择函数,

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功