【matlab编程代做】基于FPGA的滤波器设计电子教案.doc
《【matlab编程代做】基于FPGA的滤波器设计电子教案.doc》由会员分享,可在线阅读,更多相关《【matlab编程代做】基于FPGA的滤波器设计电子教案.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。【matlab编程代做】基于FPGA的滤波器设计-数字滤波器的设计摘要FPGA是近几年出现的新型可编程逻辑器件,它不仅具有很高的速度和可靠性,而且具有用户重复定义的逻辑功能,即具有可编程的特点。它的出现不仅使数字电路系统的设计非常灵活,而且大大缩短了系统研制周期,缩小了数字电路系统的体积和所用芯片的种类。DESIGNOFFIRFILTERSAbstractFPGAinthepastfewyearsanewtypeofprogrammablelogicdevice,Itnotonlyhashighspee
2、dandreliable,Andrepeatwithuser-definedlogicfunction,Thatis,withprogrammablefeatures.Itnotonlymakestheemergenceofdigitalcircuitdesignisveryflexible,butalsogreatlyshortenthesystemdevelopmentcycle,reducingthesizeofthedigitalcircuitsystemandthetypeofchipused.前言在许多信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器,数字滤波器是
3、数字信号处理中使用最广泛的一种方法。数字滤波器(digitalfilter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器是一个离散时间系统。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器.随着数字信号处理的发展,对于器件
4、的要求也越来越高,传统技术如单片机,PLC等很难胜任数字信号处理,因此,FPGA的使用无疑是数字信号处理实现的最佳选择。FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性,可以减少系统设计和维护的风险,降低产品成本,缩短设计周期。FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高并行度结构特点的数字信号处理任务。我们设计的FIR滤波器是基于窗函数的数字滤波器,首先应用MATLAB进行理论分析,根据所要求的带通频率和截止频率以及滤波器的阶数得到所需要的滤波器的系数,然后将得到的系数量化并利用FPGA实现FIR滤波器。因此,我们只需要简单的改变频率指
5、标,并相应的调整滤波器系数就能实现不同应用场合的FIR滤波器。第一章.数字滤波器原理与选择1.1数字滤波器简介滤波器,是指对输入信号起到滤波作用的系统。根据处理的信号不同,可分为模拟滤波器和数字滤波器两大类。若滤波器的输入、输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,我们称这样的滤波器为数字滤波器(DigitalFilter)。当用硬件实现一个数字滤波器时,所需的元件是延时器、乘法器和加法器。当在通用计算机上用软件实现时,即是一段线性卷积的程序。数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变(LinearTi
6、meInvariant,LTI)离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工、处理和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。根据频率响应特性,数字滤波器可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,除了具有数字信号处理的固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。数字滤波器按其单位样值响应的性质可分为有限冲激响应滤波器(FiniteImpulseResponse,FIR)和无限冲激响应滤波器(InfiniteImpulseResponse,IIR)11。1.2FIR与IIR数字滤波器1.2.1有限冲击响应(F
7、initeImpulseResponse,FIR)滤波器有限长冲击响应滤波器,即FIR滤波器,是指离散系统的单位冲击响应h(k)是一个有限长的序列,即系统的单位冲击响应只在给定的时间区间里有非零值。此时,系统的传输函数是:(3-1)1.2.2无限冲击响应(InfiniteImpulseResponse,IIR)滤波器无限冲击响应滤波器,即IIR滤波器,是指离散系统的单位冲击响应h(k)是一个无限长的时间序列。这种滤波器滤波的实现结构与一般数字滤波器的结构相同。系统的传输函数是:(3-2)1.3FIR与IIR数字滤波器的比较与选择首先,从系统的幅频特性来看,IIR滤波器由于综合利用了系统的零极点
8、,容易达到比较理想的设计效果;而FIR滤波器由于只有零点,效果较IIR滤波器差。要达到与IIR滤波器相似的效果,往往要提高系统的阶数,这就会增加计算量,影响信号处理的速度。所以在对滤波器幅频特性和处理速度有很高要求的场合,多使用IIR滤波器。其次,从相位特性来看,用FIR滤波器可以得到线性相位数字滤波器,满足信号不失真传输的要求;而使用IIR滤波器则做不到这一点。对于IIR滤波器而言,往往幅频特性越好,相位非线性就越严重。所以,在对线性相位要求较高的场合,往往使用FIR滤波器。再次,从系统稳定性来看,FIR滤波器由于没有极点,所以一定是稳定的;而IIR滤波器的稳定与否取决于其极点的位置。即使I
9、IR滤波器的极点都处于Z平面的内部,如果其中某个极点非常靠近Z平面的单位圆,则在实际使用中,有时会由于数据计算误差的存在而导致系统不稳定。最后,从设计方法来看,IIR滤波器的设计参照连续时间系统的传输函数进行,可以充分利用模拟滤波器的设计结果,但是要求设计者有一定的模拟滤波器的设计知识,而且必须保证在模拟滤波器中能够找到合适的滤波器原型作为设计基础;而FIR滤波器设计结果完全是根据系统频率进行,不需要设计者有其他滤波器的知识,设计方法比较简单。综上所述,本课题决定使用FIR数字滤波器。因为本课题对心音信号的处理,对滤波器的相位特性有较高的要求,而对幅频特性则不是很敏感。虽然选择FIR数字滤波器
10、会带来相对较多的运算量,但由于是在计算机上利用MATLAB软件进行处理,不会涉及到硬件资源的问题,而所需要处理的数据量不是很大,所以结合自身水平,决定选用FIR数字滤波器。第二章.基于MATLAB的FIR数字滤波器设计2.1FIR数字滤波器设计原理数字滤波器的设计,其实质就是对提出的设计要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器的频率响应特性,逼近给出的理论频率响应特性。2.2基于MATLAB的FIR数字滤波器设计方法利用MATLAB进行FIR滤波器的设计,方法主要有:1. 直接程序设计法MATLAB信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接
11、调用相应函数,方便快捷。2. 利用SPTool设计法SPTool(SignalProcessingTool)提供了一个便于完成信号处理任务的GUI环境。利用它,可以从MATLAB工作空间或从文件直接导入设计好的信号的频谱;可以分析、比较和输出时域信号;可以设计、分析和输出滤波器;可以完成对信号的滤波;可以对输入输出信号进行各种谱分析并输出结果。3利用FDATool设计法在MATLAB信号处理的图形用户界面中,不但SPTool工具为滤波器的分析和设计提供了一个交互式的设计环境,给用户带来了极大方便;而且,MATLAB还为用户提供了另一个更加综合、简便的图形用户界面工具FDATool(Filter
12、Design&AnalysisTool)工具。利用它可以方便地设计出满足各种性能指标的滤波器,并可以查看该滤波器的各种分析图形。滤波器设计满意后,还可以把其系数直接导出为MATLAB变量、文本文件或C语言文件。本课题采用直接程序设计法,采用窗设计法。其基本设计思想是:先给定所要求的理想滤波器频率响应,然后由导出与其相对应的单位冲击响应,由于是矩形频率特性,故一定是无限长序列,是非因果的,而所要设计的FIR滤波器单位冲击响应必然是有限长的,所以要用一有限长的来逼近无限长的,最有效的方法即是用窗函数(有限长)来截断。具体设计步骤如下:(1)给定所要求的理想的频率响应函数;(2)求其傅立叶反变换,即
13、=;(3)根据允许的过渡带宽及阻带最小衰减的要求,可选定窗函数的形状及滤波器长度N,一般N要通过多次试探后才能确定;(4)求得所设计的FIR滤波器的单位冲击响=,n=0,1,2,N-1(5)计算出=,检查是否满足设计要求,如不满足,则需重新设计。2.3窗函数设计法的步骤窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲响应序列的设计方法。通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标。用窗函数法设计FIR滤波器的步骤如下:(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1)。窗函数类型可根据最小阻带衰减AS独立选择,因为
14、窗口长度N对最小阻带衰减AS没有影响。在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N。设待求滤波器的过渡带宽为,它与窗口长度N近似成反比。窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正。原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N。在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n)。如果给出待求滤波器的频率响应为Hd(ej),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:(3)计算滤波器的单位脉冲响应h(n)。
15、它是理想单位脉冲响应和窗函数的乘积,即h(n)=hd(n)wd(n),在MATLAB中用点乘命令表示为h=hdwd。(4)验算技术指标是否满足要求。为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗。2.4FIR数字滤波器的MATLAB实现Fir滤波器有如下的特点:线性相位;系统总是稳定;容易硬件实现;满足相同设计指标时需要较高的阶数(与IIR相比),因此就会带来较长的时间延迟,相位延迟和群迟延在滤波器通带内为常数。我们设FIR滤波器系数向量的
16、长度为N,则当偶对称的时候,滤波器对输入信号的延迟为(N-1)/2,当为奇对称的时候,该滤波器对输入信号的延迟为(N-1)/2,和90度的相移。在本文中,我们采用窗函数法来设计FIR滤波器,其基本原理如下,考虑截止频率为,其对应的理想低通滤波器的冲激响应为:即是无限长SINC函数的抽样。因此理想低通滤波器是非因果的,物理不可实现的,但是如果用一个窗函数来截断它,并保证其中心对称,就可以获得线性相位的FIR滤波器了。2.4.1矩形窗FIR数字滤波器首先我们使用矩形窗设计一个FIR线性相位低通数字滤波器。假设。求出并画出曲线。由矩形窗的冲激响应函数:我们可以得到如下等式:利用MATLAB我们可以编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab编程代做 matlab 编程 基于 FPGA 滤波器 设计 电子 教案
限制150内