当前位置:网站首页 > 公文范文 > 主题教育 > matlab课设

matlab课设

时间:2022-02-27 13:53:00 浏览次数:

摘 要 数字滤波器是一一个离散系统。该系统能对输入的离散信号进行处理,从而获得所需的有用信息。现代数字滤波器的设计大体可以分为IIR 和FIR两大类,可以用软件和硬件两种方法来实现,而选用MATAB信号处理工具箱为设计通用滤波器带来了极大的方便。本文按设计指标要求设计了滤波器,其中IIR 采用巴特沃什,FIR采用布莱克曼窗进行设计,得出了与之对应的幅度响应曲线和相位响应曲线,最后对IIR 和FIR的实现形式和性能等方面进行比较。

关键词: MATLAB; IIR; FIR Abstract The digital filter is a discrete system. The systemcan be able to handle discrete signals. So it can achieve required important information.There are two major kinds of design principle of digital filter, which arefinite impulse response (FIR) and infinite impulse response (IIR). The modern digital filter can be received by two kinds of method of software and hardware.But using MATLAB signal disposing tool case to design the digital filter is moreconvenient and universally applied.The main body of thepaper is demanded to design adigital filter according to the designing index. IIR adopts Butterworth and FIR adopts the Blackman . Key Words:MATLAB。

IIR。

FIR 目录 1引言 1 2 关于MATLAB 1 3 数字滤波的基本概念 2 4 设计方案 3 4.1数字滤波器设计的基本步骤 3 4.1.1确定指标 3 4.1.2模型逼近 3 4.1.3实现性能分析和计算机仿真 3 4.2基于MATLAB的FIR数字滤波器的设计与仿真 3 4.3基于MATL AB的IIR数字滤波器的设计 5 4.3.1 |IR数字滤波器的设计原理 5 4.3.2 IIR数字滤波器的传统设计方法 5 4.3.3 IIR数字滤波器的设计 6 5 FIR数字滤波器与IIR数字滤波器的比较 6 6结论 7 附 录 8 附录1:
8 附录2:
11 参考文献 13 1引言 理想滤波器就是一个让输入信号中的某些有用频谱分量无任何变化的通过,同时又能完全抑制另外那些不需要的成分的具有某种选择性的器件、网络或计算机硬件支持的计算程序。根据对不同信号的处理可将滤波器分为模拟滤波器和数字滤波器两种。模拟滤波器和数字滤波器的概念相同,只是信号的形式和实现滤波的方法不同。数字滤波器是指输入输出都是数字信号的滤波器。滤波器的滤波原理就是根据信号与噪声占据不同的频带,将噪声的频率放在滤波器的阻带中而由于阻带的响应为零,这样就滤去了噪声。数字滤波器可以分为两大类:一类是经典滤波器,即一般的滤波器,特点是输入信号中有用的频率成分和希望滤去的频率成分各占不同的频率带,通过一个合适的选频滤波器达到滤波的目的,这种滤波器主要是无限冲激响应滤波器和有限冲激响应滤波器:另外一类滤波器是现代滤波器,当信号和干扰的频带相互重叠,经典滤波器不能完成对干扰的有效去除时,可以采用现代滤波器,这些滤波器可以按照随即信号内部的一些统计分布规律,从干扰中最佳的提取信号。这种滤波器主要有维纳滤波器、卡尔曼滤波器、 自适应滤波器等。

与模拟滤波器相同,数字滤波器从功能上可以分为四类,即低通(LP)、高通(HP)、带通(BP)、带阻(BS)滤波器等。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,任何数字系统都可看成一一个数字滤波器,因此数字滤波器的应用相当广泛。

设计任务:设计一数字带通滤波器,分别用IIR和FIR两种类型来实现。

2 关于MATLAB MATLA是Matrix Laboratory (矩阵实验室)的缩写。它是美国MathWorks公司推出的用于数值计算和图形处理的数学计算环境,现已发展成为一个具有高性能数值计算和可视化功能的科学计算环境,问题的提出和解答只需以数学方式表达和描述,不需要大量原始而传统的编程过程。该软件包括:数值分析、矩阵计算、数字信号处理、建模和系统控制等应用程序。MATLAB语言简洁、紧凑、使用方便,有丰富的运算符号和函数库,还具有结构化的控制语句和面向对象编程的特点。随着其版本的不断提高,各种工具箱的扩充和完善,MATLAB的功能越来越强大,从而被广泛应用于仿真技术、自动控制和数字信号处理等领域。

       MATLAB是个交 互式系统, 特别适用于研究、 解决工程和数学问题, 典型应用包括:般的数值计算、 算法原型以及 通过矩阵公式解决一些特殊问题,促进了统计、数字信号处理等科学的发展。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是MATLAB还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。

       MATLA的信号处理工具箱提供了丰富而简便的设计、实现IIR 和FIR的方法,使原米烦琐的程序设计简化成函数的调用,特别是滤波器的表达方式和滤波器形式之间的相互转换显得十分简便,为滤波器的设计和实现开辟了一片广阔的天地。数字滤波器采用传统的设计方法要进行大量复杂的运算,而利用MATIAB强大的计算功能进行计算机辅助设计,就可以快速要效的设计数字滤波器,大大的简化计算量,直观简便。

MATILAB的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究和辅助设升的工具。在设计数字滤波器时,通常采用信号处理工具箱提供的设计模拟和数字滤波器的MATLAB函数采用编程的方法和仿真实现,亦可以利用信号处理工具箱提供的滤波器设计和分析工具(Filter Design & Analysis Tool )实现。MATLA的一种重要的工作方式就是M文件的编程工作方式。M文件有两种形式,一种是脚本文件,另一种是函数文件。M文件的扩展名为“.m”。M文件可以通过任何纯文本编辑器进行编辑,MATLAB也自带有文本编辑器,使用“edit”命令即可开启。

3 数字滤波的基本概念 滤波器的种类很多,从功能上可以分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器两种形式。如果滤波器的输入和输出都是离散时间信号,则该滤波器的冲击响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。一个线性时不变数字滤波器可以用常系数线性差分方程表示为式中x(n),y(n)分辨是输入和输出信号序列: ai, bk 分别是滤波系数。当上式bk中系数全部为零时,就有这种形式的滤波器为有限冲激响应滤波器,简称FIR型。此事系统的输出仅与输入有关。它的实现一般采用非递归算法。

4 设计方案 4.1数字滤波器设计的基本步骤 4.1.1确定指标 在设计一个滤波器之前, 必须首先根据工程实际的需要来确定滤波器的技术指标。在很多实际应用中,数字 滤波器常被用来实现选频操作。因此指标的形式一般在频域中给出幅度和相位响应。

4.1.2模型逼近 一旦确定了技术指标,就可以利用已学习过的基本原理和关系式,提出一个滤波器模型来逼近给定的技术指标。这是滤波器设计所要研究的主要问题。

4.1.3实现性能分析和计算机仿真 以上两步的结果得到的滤波器,通常是以差分方程、系统函数或脉冲响应描述的。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;
或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。

4.2基于MATLAB的FIR数字滤波器的设计与仿真 利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大地减轻了工作量,有利于滤波器设计的优化。 FIR滤波器的设计方法有窗函数法、最优化设计法及约束最小二乘逼近法。MATLAB信号处理工具箱中提供了滤波器设计方法的工具函数,编程中可以根据设计要求直接调用相应函数,方便快捷。 本设计数字滤波器的性能指标为:要求用窗函数设计一个高通滤波器。

本例采用凯泽窗函数设计该高通滤波器,原程序节选如下:
As=50。

ws=0.2*Pi。

wp=0.3*Pi。

tr_width=wp-ws。

M=ceil((As-7.95)*2*pi/(14.36*tr_width)+l)+l。

disp([‘滤波器的长度为’,num2str(M)])。

beta=0.1102*(AS-8.7)。

n=【0:l:M-l]: disp([‘线性相位斜率为’,num2str(beta)])。

w_kai=(kaiser(M,beta))’。

wc=(ws+wp)/2: hd=ideal_lp(pi,M)-ideal_lp(wc,M)。

h==hd.*w_kai。

[db,mag,pha,grd,w]=freqz_m(h,[1])。

delta_w=2*pi/l000。

Rp=-(min(db(wp/delta_w+l:l:501)))。

disp([‘实际通带波动为’,num2str(Rp)])。

As=-round(max(db(l:l:ws/delta_w+l)))。

disp([‘最小阻带衰减为’,num2str(As)])。

subplot(l,l,l)。

subplot(2,2,l)。

stem(n,hd)。

title(‘理想脉冲响应’)。

axis([0,M-l -0,40.8])。

ylabel(‘hd(n)’)。

subplot(2,2,2): stem(n,w_kai): title(‘凯泽窗’): axis([0,M-101.1])。

ylabel(‘w(n)’)。

subplot(2,2,3)。

stem(n,h)。

title(‘实际脉冲响应’)。

axis(【0,M-l -0.40.8])。

xlabel(’n’)。

ylabel(’h(n)’)。

subplot(2,2,4)。

plot(w/pi,db)。

title(‘幅度响应/dB’)。

axis([01 -10010])。

grid。

xlabel(‘以π为单位的频率’): ylabel(‘分贝数/dB’)。

从滤波效果图看所设计的滤波器基本消除了噪声和干扰的影响,客观的得出真实信号。在设计中如果该滤波器的特性不满足要求,原有的参数必须作相应的调整,在程序中只需对参数进行重新设定,就可以得到所需要的滤波器。在实际应用中,如果需要对某一-信号源进行特定的滤波,并要检测滤波效果,应用传统方法比较繁琐。在MATL .AB环境下,可先用软件模拟产生信号源,再设计滤波器对其进行滤波。

在MATLAB环境下,数字滤波器的设计已经变得非常简单和高效率,而且FIR滤波器的冲激响应是有限长序列,其系统函数为一个多多项式,它所含的极点多为原点,所以FIR滤波器是稳定的。

4.3基于MATL AB的IIR数字滤波器的设计 4.3.1 |IR数字滤波器的设计原理 设计IIR数字滤波器就是要确定传输函数中的系数aj、bi,或者零极点增益ci、dj、A,使滤波器的频率特性满足给定的性能指标要求。设计原理主要包括两个方面:一是根据设计指标,先设计出相应的模拟滤波器,再通过脉冲响应不变法或者双线性变化法转换成对应的数字滤波器;二是先选择一-种最优准则,如最小均方误差准则,再在此准则下求出滤波传输函数的系数。

4.3.2 IIR数字滤波器的传统设计方法 IIR数字滤波器具有无线宽的冲击响应,与模拟滤波器相匹配。所以IIR滤波器的设计可以采取在模拟滤波器设计的基础,上进一步变换的方法。例如利用脉冲响应不变法设计IIR数字滤波器,其基本设计思路是直接设计一个数字滤波器并让它的时间特性逼近一-个模拟滤波器。为了达到时间特性的最佳逼近,把模拟滤波器的冲击响应均匀取值,作为数字滤波器的单位脉冲响应,然后将h(n)通过z变换即糗得H(z)。因此,脉冲响应不变法实际是时域取样法,整个过程先是根据给定的指标设计一个模拟滤波器,进而按下列变换的顺序,最后糗得数字.滤波器的系统函数H(z), 在对滤波器进行设计时,整个过程运算量是很大的。设计完成后要对已设计的滤波器的频率响应进行校核,得到幅频相频响应特性,运算量也是很大的。通常,待设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断进行调整,以达到设计的最优化。在这种情况下,滤波器的设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间使问题得到解决。

4.3.3 IIR数字滤波器的设计 FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATL .AB 6.0以上的版本还专门增加了滤波器设计工具箱(Filter DesignToolbox)。FDAToo可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。

5 FIR数字滤波器与IIR数字滤波器的比较 从性能上来说,IIR滤波器传递函数包括零点和极点两组可调因素,对极点的惟- -限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少,计算量小,效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器传递函数的极点固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能。所以要达到高的选择性,必须用较高的阶数;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果,成本较高,信号延时也较大;如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样要大大增加滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位。

从结构.上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移。这种情况有时会造成稳定性问题,甚至产生寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅里叶变换算法,在相同阶数的条件下,运算速度可以快得多。

另外,也应看到,IIR滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通及带阻等,往往脱.离不了模拟滤波器的格局。而FIR滤波器则要灵活得多,尤其是他易于适应某些特殊应用,如构成数字微分器或希尔波特变换器等,因而有更大的适应性和广阔的应用领域。

从上面的简单比较可以看到IIR与FIR滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。从使用要求上来看,在对相位要求不敏感的场合,如语言通信等,选用IIR较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。如果有条件,采用FIR滤波器较好。当然,在实际应用中可能还要考虑更多方面的因素。

6结论 利用MATLAB的信号处理工具箱强大的信号处理功能,采用编程的方法设计数字滤波器,使设计达到了最优化;并且它可以快速的实现数字滤波器的仿真,使设计达到了最简化。本文设计的数字滤波器采用IIR和FIR两种方法来实现,其中IIR采用巴特沃什,FIR采用布莱克曼窗函数法,按设计指标要求进行设计。利用MATLAB采用编程的方法实现。通过对IIR数字滤波器和FIR数字滤波器的比较可知IIR数字滤波器幅频特性较好,而相频特性曲线呈非线性,会使信号产生失真,阶数比FIR数字滤波器低,系统不稳定; FIR数字滤波器相位线性,信号在传输过程中不会产生失真,系统稳定,阶数高,而幅频特性难以满足要求。

附 录 附录1:
图1 图2 图3 图4 图5 图6 图7 图8 附录2:
图1 图2 图3 参考文献 [1]蒋志凯.数字滤波与卡尔曼滤波[M],北.京:中国科学技术出版社,1993: 100-120. [2]赵健,李勇.数字信号处理[M],北京:清华大学出版社,2006: 103-155. [3]陈怀琛.数字信号处理教程一-MATL _AB释义与实现[M],北京:电子工业出版社,2004: 106-123. [4]邓华. MATLAB通信仿真及应用实例解读[M],北京:人民邮电出版社,1997:123-156. [5]胡光书.数字信号处理:理论、算法与实现[M],北京:清华大学出版社,1997:136-155. [6]楼天顺.基于MATLAB的系统分析与设计-信号处理[M],西安:西安电子科技大学.出版社,1998: 133-142. [7]徐明远. MATL AB仿真在通信与电子工程中的应用[M],西安:西安电子科技大学出版社,2005: 154-187. [8]陈后金.数字信号处理[M],北京:高等教育出版社,2004: 124-177. [9] [美]Sanjit K.Mitra著,孙烘,余翔宇等译.数字信号处理实验指导书(MATLAB版) [M],北京:电子工业出版社,2005:71-85. [10]陈桂明,张明照,戚红雨.应用MATL AB语言处理数字信号与数字图像 [11] 赵健,李毅,杨菊平.数字信号处理学习辅导

推荐访问:matlab课设信号的频域分析 matlab课设题目

猜你喜欢