毕业设计(论文)基于VHDL的有限冲激响应滤波器的设计_第1页
毕业设计(论文)基于VHDL的有限冲激响应滤波器的设计_第2页
毕业设计(论文)基于VHDL的有限冲激响应滤波器的设计_第3页
毕业设计(论文)基于VHDL的有限冲激响应滤波器的设计_第4页
毕业设计(论文)基于VHDL的有限冲激响应滤波器的设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于vhdl的有限冲激响应滤波器的设计1 绪论1.1 课题背景及目的在工程技术领域中几乎都会涉及到信号的处理问题,数字滤波器在通讯、 雷达、 声纳、 遥感、 图象处理和识别、 语言处理和识别 、地球物理资源考察、 人工智能 、核技术、 生物医学工程等许多领域得到越来越广泛的应用。信号处理的目的一般是对信号进行分析、变换、与识别等。如何在较强的噪声背景下提取出真正的信号或信号的特征,并将其应用于工程实际是信号处理的首要任务。根据处理对象的不同,信号处理技术分为模拟信号处理系统和数字信号处理系统。数字信号处理与模拟信号处理相比有许多优点,如相对于温度和工艺的变化数字信号要比模拟信号更稳健,在数字

2、表示中,精度可以通过改变信号的字长来更好地控制,所以数字信号处理技术可以在放大信号的同时去除噪声和干扰,而在模拟信号处理技术中信号和噪声同时被放大,不利于噪声和干扰的去除,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。数字滤波是通过采用数值运算的方法来达到滤波目的的,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份、消弱无用的干扰成份的目的。 数值运算可以通过计算机编写软

3、件来实现, 可以通过普通的硬件组合来实现, 也可以用专用的dsp芯片来实现 还可以通过vhdl 等硬件描述语言的设计。 用fpeg来实现数字滤波器按单位脉冲响应长度来分, 可分为无限长单位脉冲响应 iir滤波器和有限长单位脉冲响应fir 滤波器。按频率响应来分可分为:低通、 高通 、带通 、带阻滤波器。 数字滤波器凭其特有的严格的线性相位和高稳定和高精度, 可用快速傅立叶变换fft 和其它快速算法来实现及设计灵活和适应性强等优点,他与模拟滤波相比,有精度高、可靠性高、灵活性好等突出优点,可以满足对幅度和相位的严格要求,还能降低开发费用,缩短研制到应用的时间,在很多领域逐步代替了传统的模拟信号系

4、统。目前,应用fpga来实现fir滤波器这一新的fir解决方案目前正处于研究探索阶段,随着大规模集成电路技术和 eda 技术的发展 fpga/cpld 已被广泛应用于实现全硬件的数字信号处理器或相应的电路模块, 相对于传统的专用 dsp 器件, 无论在技术性能设计成本、上市速度还是应用领域方面。 基于 fpga 的数字信号处理器表现出了难以逾越的良好性能和更加广阔的市场前景,它能有效克服传统dsp技术的诸多技术瓶颈,在许多方面显现出突出的优势,如高速与实时性,高可靠性,自主知识产权化,系统的重配置与硬件可重构性,单片dps系统的可实现性以及开发技术的标准化和高效率等。在数字信号处理领域,具有领

5、先和实际意义,本课题将通过实验用分布式算法来设计fir滤波器的设计并对所设计的系统进行仿真实现,验证结果。fir滤波器在数字信号处理中有着广泛的应用,因此,研究fri的fpga解决方案体现电子系统的微型化和单片化,将数字信号处理和fpga的结合,无论是在理论研究上还是在如通讯、高清晰度电视、雷达、图象处理、数字音频等实际应用上都有着美好的技术前景和巨大的实用价值的。1.2 国内外研究的现状数字信号处理器具有灵活性、高稳定性、可靠性、集成度高等优点,促使研究人员不断对它进行研究和开发。但数字信号处理目前仍存在的缺点是:在一些重要研究领域,数字信号处理的速度还达不到实时处理的要求,例如超高频a/d

6、转换器。数字信号处理可以采用两种方法实现:软件实现和硬件实现。软件实现是在通用计算机上执行数字信号处理程序。这种方法灵活,但实现方法较慢,一般不能实时处理,主要用于教学和科研。国内外的研究机构、公已经推出了不同语言的信号处理软件包。硬件主要采用mcu(单片机)、dps(数字信号处理器)和集成电路来实现。其中,单片机速度较慢,集成电路虽然性能良好,但通常门限定的某一或某几个特定功能而设计,灵活性差,软件编程的通用数据处理芯片(如tms320cxx)是目前应用一种方法。dsp处理器实质上是一种适用于数字信号处理的单片微处理主要特点是灵活性大,适应性强,具有可编程功能,且处理速度较高。近年来由于多媒

7、体技术和无线通信的发展对dsp应用的要求不断地这些应用对信号处理要求高,需要采用处理速度高的硬件来实现dps,随着cmos工艺的线宽不断缩小,从研制高性能的dsp专用芯片处理器,直到近年来可以在单片上集成dsp的应用。但是,采用dsp处理器的解决方案日益面临着不断增加挑战,而自身的技术瓶颈(比如运行速度、吞吐量、总线结构的可变性、可重构配置性、硬件可升级性等等)致使这种解决方案在dps的许多新领域中的道路越走越窄。现场可编程门阵列在器件处理速度等达到片上系统的要求后,它所具有的系统内可重构的特性成dsp应用的优选方案之一。在许多诸如实时图像处理、联合战术无线电统、3g移动通信基站、实时工控系统

8、、卫星导航设备等领域中,fpga解决方案为数字信号处理开创了新的领域,国外有许多院校和科研机构在研究基于fpga的dsp应用,我国在dsp技术起步较早,产品的研究开发成绩斐然,本上与国发展,而在fpga方面起步较晚。全国有100来所高等院校从事这方面的教学和科研,除了一部分dsp芯片需要从国外进口外,在信号处理理法方面,与国外处于同等水平。而在fpga信号处理和系统方面,有了可喜进展,正在进行与世界先进国家同样的研究。现在,可编程逻辑器件在密度、性能和功耗上都有显著的进步,为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件的解决方案的灵活性,又能够接近集成电路的性能。fp

9、ga内部的功能块中的sram查找表构成函数发生器,这种结构特别适用于并行处理结构,如分布式算法(da)。相对于串行运算为主导的通用dsp芯片来说,其并行度和可扩展性都很好,它逐渐成为构造可编程的高性能算法结构的新的选择。据分析,在未来,数字信号处理器将会主宰需要复杂算法的应用领域,而fpga将会统治更多前端的应用,如fir滤波、cordic算法等。fir数字滤波器的实现,大体上可以分为软件实现和硬件实现两种。软件实现方法是在通用的计算机上用软件实现。利用计算机的存储器、运算器和控制器把滤波所要完成的运算编成程序通过计算机来执行。由于这种方法速度慢,难以对信号进行实时处理,因而多用于教学与科研。

10、硬件实现是设计专门的数字滤波电路,如今fir滤波器的硬件设计有多种实现方法。第一种是采用单片机来实现,但单片机的处理速度比较慢。第二种是采用专用的dsp芯片,但是dsp的串行指令执行方式使其速度和效率大打折扣,因此当滤波器的系数增加或字长增长时,计算时间会大大增加,而且在一些高速的应用中,dsp的性能的提高却落后于需求的增加。第三种是采用市场上通用的fir滤波器集成电路,但由于它的通用性,很难满足设计者独特的要求。第四种是采用可编程逻辑器件的方法实现可编程逻辑器件在电子技术领域中的应用,为数字硬件电路系统的设计带来了极大的灵活性。由于可编程逻辑器件可以通过软件编程而对其硬件结构和工作方式进行调

11、整,使得硬件的设计可以如同软件设计那样方便。在fir数字滤波器的设计过程中涉及的乘法运算方式有位串行乘法、并行乘法和用分布式算法的乘法。位串行乘法器的实现方法主要是通过对乘法运算进行分解,用加法器来完成乘法功能。由于一个8x8位的乘法器输出为16位,为得到正确的16位结果,串行输入的二进制补码数要进行符号位扩展,即将串行输入的8位二进制补码前补8个0(对正数或8个1(对负数)后才输入乘法器。如果每一位的运算需要一个时钟周期的话,则这乘法器完成一次运算就需要16个时钟周期。虽然位串行乘法器使乘法器的硬件规模到了最小,但由于运算周期过长,在对一些实时性要求较高的场合是不适用的。并行乘法速度快,但占

12、用的硬件资源极大。随着滤波器阶数的增加,乘法器的位也变大,硬件规模将变得十分庞大。分布式算法利用rom或寄存器将固定系数的乘累加运算转移成查找表操作,避免了乘法运算。同时,查找表后的数据执行的都是简单加法运算,可以较大幅度地提高算速度。这种方法是目前比较常用的基于fpga设计fir滤波器的方法。分布式算法分为串行分布式算法、串并结合的分布式算法和并行分布式算法。串行分布式算法其构相对简单,占用资源少,但是处理速度吞吐量很高;并行分布式算法结构齐整,利用流水实现,多用于对速度要求高的场合,但占用资源大;串并结合的分布式算法是串行分布式算法与并行分布式算法的一个折衷,具体情况不同,效果也不同,缺点

13、是有控电路的加入,增加了电路的复杂性s。相对于前两种方法,分布式算法既可以全串行实现,又可以全并行实现,还可以并行结合实现,可以在硬件规模和处理速度之间作出适当的折衷,是现在被研究的主要方法。1.3 论文的结构及研究内容fir可以对给定的频率特性直接进行设计, fir滤波器的冲激响应是有限长序列,具有严格的线性相位特性,其系统函数为一个多项式,它所包含的极点都位于原点,所以fir滤波器永远是稳定的。由于在数据通讯、语音信号处理、图像处理等传输过程中不能有明显的相位失真,而fir滤波器在满足一定对称条件下可以实现iir滤波器难以实现的线性相位,因而得到广泛应用。随着数字信息技术的发展,数字滤波器

14、已在许多领域得到广泛应用。在数字滤波器设计中,以往都是通过硬件电路来实现其功能,当今计算机软件技术不断发展,应用软件能够实现数字滤波器的功能和时序仿真,因而直观再现滤波器性能。本文通过vhdl和matlabl软件仿真实现压电直线微电机控制系统中fir低通数字滤波器,使设计达到最优化。本课题研究的主要内容是利用fpga进行有限冲击响应(fir)数字滤波器的研究,课题的主要内容如下:(1)以fir滤波器的基本原理为依据,研究适应工程实际的数字滤波器的设计方法。(2 )fir设计中的关键技术乘法运算的高效实现,并结合选用的现场可编程逻辑器件的特点,实现乘加运算。(3)采用硬件描述语言(vhdl),对

15、fir滤波器进行层次化、模块化、参数化的逻辑设计,编制滤波器的各个功能模块,对设计模块在max+plus软件里进行仿真实现,验证结果。论文主要内容包括以下几个几部分:第一章绪论第二章介绍数字滤波器的设计理论,本章首先介绍了数字滤波器的基本理论,然后从实际工程设计出发提出一个fir滤波器设计流程,包括滤波器结构的选择、滤波器的系数计算、系数的量化等,设计者按照此流程即能设计出满足实际性能需求的数字滤波器。提出fir滤波器的解决方案,采用vhdl语言的开发方法。第三章阐述了一个基于vhdl的低通滤波器的设计,介绍了vhdl语言以及其开发环境,说明具体实现方法,用matlab计算出所需参数,用vhd

16、l语言编程,完成对整个fir滤波器的功能模块的划分,以及各个功能模块的具体设计。第四章进行fir滤波器的测试与验证。为了验证fir滤波器的实际滤波效果,实际制作了一个实验电路,进行了系统测试,对测试结果进行分析。第五章是结论与展望,对论文进行了总结并对数字信号处理的发展进行了展望。 2 fir 数字滤波器设计理论 2.1 数字滤波器概述数字滤波器通常应用于修正或改变时域或频域中信号的属性。最为普通的数字滤波器就是线性时不变(lti)滤波器。输入信号进入lti数字滤波器后,经过一个线性卷积的过程,得到输出信号,线性卷积过程的定义如下: (2-1)lti数字滤波器通常分为有限脉冲响应(fir)和无

17、限脉冲响应(iir)两大类。fir滤波器由有限个采样值组成,式中卷积的数量为有限个。而iir滤波器需要执行无限数量次卷积。2.2 fir滤波器的特点fir滤波器相对于iir滤波器的优点与不足如下:优点:1.具有严格的线性相位又具有任意的幅度;2.fir滤波器的单位采样响应是有限长的,因而滤波器性能稳定;3.fir滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(fft)算法来实现过滤信号,可大大提高运算效率。不足:1.fir系统的系数长度一般会比iir系统大,也就是说要设计一个符合要求的滤波器,fir系统需要较多乘法器,当以直接回旋运算执行时其效率较差。2.此系统的输出延迟时间长。由上

18、面的比较可以看出,fir滤波器还是存在缺点的,但采用fpga进行fir滤波器的设计,运用fpga中的算法来提高速度,缩短延迟的时间,可以使fir滤波器符合指标的要求。随着fpga的快速发展,fir的缺点将逐渐被克服。fir 数字滤波器主要用来实现信号预处理、 防混叠、带选、 抽选/插补 、滤波和卷积等功能的。 以下简要介绍其结构原理和设计方案。2.3 fir 滤波器结构fir滤波器的构成形式主要有直接型、级联型、线性相位fir滤波器和频率采样型等。2.3.1 直接型结构n 阶的fir 滤波器系统的传递函数为 (2-2) 它有 n-1阶极点在z=0 处 有 n-1 个零点位于有限z平面的任何位置

19、,系统差分方程表达式为 (2-3)上式就是输入序列x(n) 与单位冲击响应 h(n ) 的线性卷积 由上式可知 n 时刻的输入y (n ) 仅于 n 时刻的输入以及过去n-1 个输入值有关 可以直接画出其网络结构如图2.1所示图2.1给出了n阶lti型fir滤波器的图解。由图2.1可见fir滤波器是由一个“抽头延迟线”加法器和乘法器的集合构成的。赋给每个乘法器的操作数就是一个fir系数。 图2.1 直接型fir滤波器结构直接fir模型的一个变型称为转置fir滤波器,它是根据转置定理定义的。如果将图2.1所示网络中所有支路的方向倒转,并将输入x(n)和输出y(n)互换,则其系统传递函数h(z)不

20、变,其转置结构见图2.2。 图2.2 转置型fir滤波器结构2.3.2 级联型将系统函数h(z)转换为具有实系数的二阶节的积,然后这些二阶节均用直接型实现,整个滤波器作为二阶节的级联。 (2-4)其中k是等于,bk,1和bk,2是代表实数的各二阶节系数。对于m=5,其级联型结构如图2.3。图2.3级联型结构2.3.3 线性相位型 相位响应是频率的线性函数 (2-5)其中=0或/2。是个常数。若fir因果滤波器的脉冲响应h(n)在0,m-1区间,线性相位会在h(n)上产生下列影响: (2-6) 这就是对称脉冲响应 。 (2-7) 这是反对称脉冲响应。 给一个对称脉冲响应差分方程: (2-8)该因

21、果系统具有严格的线性相位 当 m 为偶数时 ,有 (2-9)其中:m:fir滤波器的抽头数;h(k):第k级抽头系数(单位脉冲响应);x(n-k):延时k个抽头的输入信号。 图2.4 m 为偶数时线性相位型滤波器结构 (2-10) (2-11) 网络结构如图 2.3同理,当 m 为奇数时,有 (2-12)图2.5 m 为奇数时线性相位型滤波器结构2.3.4 频率采样型系统函数h(z)可以由单位圆上的样本得到重建,样本为m点脉冲响应h(n)的m点dfth(k),0km-1。 (2-13)图2.6 频率采样型fir结构图2.4 fir数字滤波器的设计方法fir滤波器设计方法是以直接逼近所需离散时间

22、系统的频率响应为基础的。设计方法包括窗函数法和最优化方法(等同纹波法),其中窗函数法是设计fir滤波器的最常用的方法之一。2.4.1 窗函数设计法 窗函数法的基本思想是,由于滤波器的时间响应函数hd(n)是无限长的,不能用fir滤波器实现,所以,要截取hd(n)幅度较大的部分,舍弃hd(n)幅度较小部分来近似表示hd(n)。截取的方法是选用某一种窗函数和截取hd(n)的一段进行卷积以得到实际滤波器的相应h(n)。窗函数不同,窗口宽度不同,实际频响会有较大区别。如加海明窗的频响曲线的通带和阻带特性比矩性窗好;窗口宽度n的阶数高,也能提高滤波器频响性能,但实时信号处理的时间会相应增加。因此,应根据

23、滤波参数要求确定选用窗函数的类型和阶数。设计fir数字数字滤波器的最简单的方法是窗函数,通常也称之为傅立叶级数法。fir设计思想是:一般是先给定所要求的理想滤波器频率响应,然后由导出与其相对应的单位样值响应,由于是矩形频率特性,故一定是无限长序列,是非因果的,而所要设计的fir滤波器单位样值响应h(n)必然是有限长的所以要用一有限长的h(n)来逼近无限长的。最有效的方法即是用窗函数(有限长)w(n)来截断。具体设计步骤如下:a)给定所要求的理想的频率响应函数;b)求其傅立叶反变换,即 (2-14)c)根据允许的过渡带宽及阻带最小衰减的要求,可选定窗函数w(n)的形状及滤波器长度n,一般的n要通

24、过多次试探后才能确定;d)求得所设计的fir滤波器的单位样值响应h(n)= (2-15)e)计算出,检测是否满足设计要求;总的系统函数为: (2-16)其中,hn为第n个频段的滤波器系统函数, (2-17)hd()abc(n-1)/2(n+1)/2nn图2.7 截止频率为的理想低通数字滤波器幅度频率特性对实际fir滤波器有影响的只是窗函数的幅度频率特性。实际中的fir滤波器的频率特性是理想低通滤波器的幅度频率特性和窗函数的幅度频率特性的复卷积。复卷积给带来过冲积波,所以加窗函数后,对滤波器的理想特性的影响有以下几点:a)hd()在截止频率的间断点变成了连续的曲线,使得h()出现了一个过渡带,它

25、的宽度等于窗函数的主瓣的宽度。由此可见,如果窗函数的主瓣越宽,过渡带就越宽。b)由于窗函数旁瓣的影响,使得滤波器的幅度频率特性出现了波动,波动的幅度取决于旁瓣的相对幅度。旁瓣范围的面积越大,通带波动和阻带的波动就越大,换句话说,阻带的衰减减小。而波动的多少,取决于旁瓣的多少。c)增加窗函数的长度,只能减少窗函数的幅度频率特性的主瓣宽度,而不能减少主瓣和旁瓣的相对值,该值取决于窗函数的形状。换句话说,增加截取函数的长度n只能相应的减小过渡带,而不能改变滤波器的波动程度。为了满足工程上的需要,可以通过改变窗函数的形状来改善滤波器的频率特性,而窗函数的选择原则是:1)具有较低的旁瓣幅度,尤其是第一旁

26、瓣的幅度。2)旁瓣的幅度下降的速率要快,以利于增加阻带的衰减。3)主瓣的宽度要窄,这样可以得到比较窄的过渡带。通常上述的几点难以同时满足。当选用主瓣宽度较窄时,虽然能够得到比较陡峭的幅度频率响应,但是通带和阻带的波动明显增加;当选用比较小的旁瓣幅度时,虽然能够得到比较平坦和匀滑的幅度频率响应,但是过渡带将加宽。因此,实际中选用的窗函数往往是它们的折中。在保证主瓣的宽度达到一定要求的条件下,适当地牺牲主瓣的宽度来换取旁瓣的波动减小。以上是从幅度频率特性设计方面对窗函数提出的要求,实际中设计fir滤波器往往要求是线性相位的,因此要求满足线性相位的条件求满足: (2-18)综上所述,用窗函数设计fi

27、r滤波器还有不尽人意之处,例如存在主瓣宽度与旁瓣波动等的矛盾。设计fir滤波器常用的窗函数有:矩形窗函数、三角(bartlett)窗函数、汉宁(hanning)窗函数、海明(hamming)窗函数、布莱克曼(blackman)窗函数和凯塞(kaiser)窗函数,具体性能指标可参看表3-1。 表3-1 常用窗函数性能小结窗函数名过渡带宽最小阻带衰减近似值准确值矩形21db巴特利特25db汉宁44db哈明53db布莱克曼74db2.4.2 等同波纹设计方法窗函数法存在某些缺陷。首先,在设计中不能精确地给定边缘频率,这意味着,在设计完成之后无论得到什么都必须接受;其次,不能够同时标定波纹因子,在窗函

28、数设计法中只能设定两种边缘因子相等;还有一个缺陷是近似误差在频带区间上不是均匀分布的,在靠近频带边缘误差愈大,远离频带边缘误差愈小。一种非常有效地解决这种问题的fir滤波器就是等同波纹fir滤波器。对于线性相位的fir滤波器来说,有可能导得一组条件,对这组条件能够证明,在最大近似误差最小化的意义下,这个设计是最优的。具有这种性质的滤波器就称为等同波纹滤波器,因为近似误差在通带和阻带上都是均匀分布的。等同波纹法是采用parks-mcclellan迭代方法来实现的。与直接频率法相比,等同波纹设计方法的优点在于通频带和抑制带偏差可以分别指定,且实现相同指标的滤波器时所用的滤波器阶数较小。2.5 滤波

29、器的性能要求数字滤波器的特性经常在频域定义,对于选择性的滤波器,如低通滤波器和带通滤波器,性能规范经常以容差图的形式出现,如图。由该图可知,滤波器的基本技术指标包括5个参数:通带截止频率,阻带截止频率关,通带容限。阻带容限。以及滤波器阶数o他们与通带波纹和阻带衰减之间的关系是: 图2.8 fir滤波器指标要求 (2-19) (2-20)如何确定这些性能参数呢?滤波系统中的抗混叠滤波应该对奈奎斯特频率以上的频率分量提供足够的衰减。在确定混叠滤波器时,应该考虑adc分辨率的要求。因此,滤波器应该设计成奈奎斯特频率以上的频率分量衰减到adc检测不到的电平。于是,对于采用b位的线性adc系统,其滤波器

30、的阻带最小衰减通常应该是 (2-21)其中b是adc的位数,对于8位adc可计算出a为50db。3 基于vhdl的fir滤波器设计3.1 vhdl语言及开发环境 随着半导体技术的迅速发展,在现代数字系统设计中,现场可编程器件(fpga和cpld)的使用越来越广泛。与此同时,基于大规模可编程逻辑器件的eda(电子设计自动化)硬件解决方案也被广泛采用。对于复杂的系统设计,必须依靠一种高层的逻辑输入方式来避免开发中的错误和缩短开发周期。这样就产生了硬件描述语言hdl (hardware description language),其中符合ieee-1076标准的vhdl的应用成为新一代eda解决方案

31、中的首选。因此,vhdl的应用必将成为当前以及未来eda解决方案的核心,更是整个电子逻辑系统设计的核心。现在,vhdl作为ieee的工业标准硬件描述语言,得到了众多eda公司的支持,在电子工程领域,己成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,vhdl语言将承担起大部分的数字系统设计任务。vhdl主要用于描述数字系统的结构、行为、功能和接口,除了含有许多具有硬件特征的语句外,vhdl的语言形式和描述风格与句法和一般的计算机高级语言十分相似。一个完整的vhdl语言程序通常包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(pack

32、age)和库(library)五个部分。 应用vhdl进行工程设计的优点是多方面的: 1、与其他语言相比,vhdl具有强大的行为描述能力,在eda工具和vhdl综合器的支持下,可以避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统。2、 vhdl中丰富的仿真语句和库函数,使得在任何大系统的设计早期(设计尚未完成),就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。3、 vhdl语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和己有设计的再利用功能。 4、对于用vhdl完成的一个确定的设计,可以利用eda工具进行逻辑综合和优化,并自动地把vhdl描述设计转变为门级网表(根

33、据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。应用eda工具的逻辑优化功能,可以自动地的把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,返回去更新vhdl的设计描述,使之更为完善。 5、 vhdl对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。 6、由于vhdl具有类属描述语句和子程序调用等功能,对于己完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易的改变设计的规模和结构。可以预计,随着v

34、hdl-93标准的广泛应用以及可编程逻辑器件的不断推出,vhdl必将在未来的eda解决方案中发挥不可替代的作用。可以利用eda工具对适配生成的结果进行模拟测试,就是所谓的仿真。仿真就是让计算机根据一定的算法和一定的仿真库对eda设计进行模拟,以验证设计,排除错误。时序仿真和功能仿真工具通常由fpga/cpld公司的eda开发工具直接提供,也可以选用第三方的专业仿真工具,它们可以完成两种不同级别的仿真测试。功能仿真直接对vhdl、原理图描述或其他描述形式的逻辑功能进行模拟测试,以了解其实现的功能是否满足原设计的要求。功能仿真过程不涉及任何具体器件的硬件特性,不经历综合与适配阶段,在设计项目编辑编

35、译后即可进入门级仿真器进行模拟测试。直接进行功能仿真的好处是设计耗时短,对硬件库、综合器等没有任何要求。对于规模比较大的设计项目,综合与适配在计算机上的耗时是十分可观的,如果每一次修改后的模拟都必须进行时序仿真,显然会降低开发效率。因此,通常的做法是首先进行功能仿真,待确定设计文件所表达的功能满足设计者原有意图,即逻辑功能满足要求后,再进行综合、适配和时序仿真,以便把握设计项目在硬件条件下的运行情况。时序仿真是接近真实器件运行特性的仿真,仿真文件中己包含了器件硬件特性参数,仿真精度高。3.2 fir滤波器设计流程fir滤波器的设计流程包括以下几个方面:1.设计规范 设计规范包括滤波器的类型、阶

36、数、滤波器的设计方法,选定设计方法后对应的参数、采样频率、截止频率等。2.滤波器系数的计算利用matlab软件。通过设置上面的参数后可以简单地计算出滤波器的参数,之后再对计算出的参数进行量化就可以得到一系列的整数,这样就可以在fpga中使用了。3.软件的仿真和运行通过常用的如原理图或者硬件描述语言等方面描述出滤波器的原型,验证则是把前面实现出来的原型输入到max+plusii里面,通过实际电路来观察设计是否正确,如果不正确,要返回上面的步骤重新开始设计。4.设计优化 当第3步实现和验证正确后可以根据实际情况对设计进行优化,优化完后通过验证,如果结果符合实际的要求,设计完成,如果不正确,则要返回

37、上面的步骤重新开始,直至正确为止。fir数字滤波器的设计流程如图所示。设计规范系数计算设计优化硬件实现及仿真满足要求?满足要求?yynn图3.1 fir滤波器设计流程3.3 fir滤波器的设计要求数字滤波器的设计步骤为先根据需要确定其性能指标,设计一个系统传递函数h(z)逼近所需要的技术指标,最后采用有限精度算法实现。本设计是基于vhdl语言实现压电直线微电机控制系统fir低通数字滤波器的设计,首先将模拟信号转化为数字信号,再将此数字信号通过一定技术指标的fir低通滤波器滤波。设计一个满足压电直线微电机控制系统的fir低通数字滤波器,其主要技术性能指标如下:(1)对模拟信号的采样频率fs为44

38、.1khz;(2)带通0-20khz;(3)信号的截止频率fc=22khz;(4)截止频带衰减约为60db。3.4 基于乘累加结构fir滤波器设计的总体结构和设计思路本设计的总体结构框图如图3.2所示。优化模块移位寄存器乘法器模块加法器x(n)y(n)clkreset图3.2 滤波器的总体结构框图各模块的主要功能如下:(1)移位寄存器:移位寄存器的功能是将输入序列x(n)通过移位寄存器改为并行输入的功能。(2)优化模块:优化模块的功能是根据fir滤波器h (n)的对称特性将滤波器降阶,完成输入求和x(k)+ x(n-1-k),对于本设计中的16抽头的滤波器,即完成x(0)+ x(15), x(

39、2)+ x(14) . (3)乘法器模块: 对于使用乘法器结构的fir滤波器,乘法器的实现对于系统的性能有很大的影响。(4)加法器:将前面乘法器模块得到的结果相加,最后得到输出结果y (n)。直接结构实现的fir滤波器主要由三部分组成:数据移位寄存器、乘法器和多操作数加法。对于一个n阶fir滤波器而言,直接结构实现的fir滤波器共需要n级数据移位寄存器、n个乘法器和n-1个加法器。按照前面滤波器的总体结构框图将该结构滤波器分成三个典型的模块。第一个模块是移位寄存器,该模块的功能是通过移位寄存器把串行输入的采样数据转换为并行的;第二个模块是优化模块,优化模块的主要功能是根据fir滤波器h(n)的

40、对称性完成输入求和x(k)+x(n-1-k),从而实现对滤波器的降阶;第三个模块是将乘法器和加法器合并构成乘累加器模块,乘法器模块完成输入数据和它对应的系数的乘法运算,而加法器模块完成将之前乘法器模块的输出的结果相加,加法器模块对乘法器模块的输出的求和运算是通过一个计数器控制完成的,每完成一次乘累加操作后把结果输出,该结果就是滤波器的滤波输出。每完成一次乘累加操作共需n/2个时钟周期,在第(n/2+1)个时钟周期时把乘累加的结果输出,因此完成一次滤波输出共需要(n/2+1)个时钟周期。 因为乘法器的输入数据在不同的计数时钟下对应的系数不同,因此对于乘法器的设计采用了一个通用的乘法器。为了提高系

41、统的性能,通过采用加法器树乘法器。通过一个共完成n/2次计数的计数器来控制乘累加操作,当计数值为对应的数值时完成对应的输入信号与系数的乘积,并与之前和乘积相加,最后再重新计数开始,也就是在计数值为0时把乘累加的结果输出,从而完成一次滤波输出。3.5 滤波器的设计原理及硬件电路构成一个fir滤波器的输出是由其过去和现在输入值权重所决定的,且构成因果关系的fir滤波器对所有的离散时间k n(n是正整数),其脉冲响应均为零,fir滤波器的数学表达式可用差分方程来表示: (3-1) 其中: r 是fir的滤波器的抽头数;b(r)是第r级抽头数(单位脉冲响应);x(n-r)是延时r个抽头的输入信号。该方

42、程可由图1给出的硬件电路实现,其中,d-in为数字信号输入;clock为时钟信号;c1cn是由matlab处理得到的系数;d触发器实现数据延时与触发功能。结构中延时支路相互串联, 延时线上有n个抽头,分别连接乘法器, 乘法器相乘的系数就是单位脉冲响应,乘法器的输出连接到加法器上。为使输出波形稳定,采用同步输出方式。图3.3 n 阶fir滤波器硬件电路3.6 数据处理与软件设计3.6.1 matlab/simulink参数设置与处理根据设计要求,通过matlab/simulink参数设置与处理,得到fir低通数字滤波器57个系数:-0.000497 0.000590 -0.0009210.001

43、356 -0.001912 0.002603 -0.003442 0.004440 -0.004440 -0.003442 0.002603 -0.001912 0.001356 -0.000921 0.000590 -0.0004973.6.2 vhdl系数处理程序相关参数定义:d_in: 输入数据信号; d_out: 输出数据信号; rst: 复位信号; fsclk: 采样时钟信号。在vhdl代码中,滤波器的系数被设置,类似存储于程序存储器中执行。subtype rombyte is signed (20 downto 0);type romarray is array (1 to 57)

44、 of rombyte;signal romdata: romarray;coefficient: process(rst)begin - process coefficientif(rst = 1) thenfor i in 1 to 57 loopromdata(i) =“000000000000000000000”;end loop;elseromdata(1) =“111111111111000001111”; - - - - 0.000497romdata(2) =“000000000001001001110”; - - - - 0.000590end ifend process c

45、oefficient;3.6.3数据输入和频率控制根据设计滤波器的参数可知,采样频率要求是44.1 khz, 所以采样周期为ts=22us (t=1/f)(1)时钟频率控制程序for j in 0 to 49 loopfsclk =1;d_in = sin v(j); wait for 11 us; - - - - ts=22us, fs=44.1khzfsclk =0;wait for 11 us; - - - - ts=22us, fs=44.1khzend loop;(2)将输入的数据信号写入数据存储器ram(由d触发器组成)中wr_data: process(rst,fsclk)beg

46、inif (rst =1) thenfor k in 1 to 57 loopramdata(k) =000000000000000000000;end loop;elsif fsclk event and fsclk = 1thenfor k in 1 to 56 loopramdata(k+1) = ramdata(k);ramdata(1) = d_in;end loop;end if;end process wr_data; (3)对正弦信号采样程序 正弦信号t=2*pi=360,在整个周期上采样100次,故每3.6采样一次。type table is array (0 to 49)

47、of signed(20 downto 0)signal sinv:table:=(“000000000000000000000”, - sin 0; line no.1“000000000010000000100”,- sin(3.6);line no.2 “000000011111111111111”, - sin(90);line no. 26 “000000000100000000101”,- sin(180 - 7.2);line no.49“000000000010000000100”);- sin(180 - 3.6); line no. 50)(4)在整个程序执行过程中,输入正

48、弦波模拟信号分为两个过程进行采样处理,在一个周期上共采样100个点,正半周采样50个点,负半周采样50个点。 采样时间的计算:由fs=44.1hz,则ts=1/ fs =22us,所以总时间t=22*100=2200us采样子程序:for k in 0 to 99 loopfor j in 0 to 49 loopfsclk =1;d_in = sinv(j);wait for 11 us;fsclk =0wait for 11 us;end loop ; -正半周采样for j in 0 to 49 loopfsclk =1;d_in = -sinv(j);wait for 11 us;fs

49、clk = 0;wait for 11 us;end loop; -负半周采样(5)滤波器的功能设计的滤波器具有以下两项功能: 一是通过低频信号; 二是衰减截止高频信号达60db,实现数据滤波和综合,下面是实现其功能代码:a: filtering_data: process(fsclk)begin - process rd_dataif (rst = 1) thenfor k in 1 to 57 loopmuldata(k) = “000000000000000000000000000000000000000000”;end loop;elsif fsclk event and fsclk

50、=1 thenfor k in 1 to 57 loopmuldata(k) = ramdata(k)*romdata(k);end loop;end if;end process filtering_data;b: accumulation: process(fsclk)variable accu:signed(41 downto 0);beginif (rst = 1) thend_out =“000000000000000000000”;accu:= “000000000000000000000000000000000000000000”;elsif fsclkevent and fsc

51、lk = 1 thenfor k in 1 to 57 loopaccu:= muldata(k) + accu;end loop;end if;end process accumulation; 4 软件仿真为了测量所设计的数字滤波器的低通滤波特性,分别进行低频仿真和高频仿真,把低频信号和高频信号输入滤波器来观察滤波效果。运行中分别输入信号为455hz和22khz的正弦信号,从图4.1我们可以看到,频率为455hz的正弦信号,输入波形与输出波形相比,频率几乎无变化,虽然还有一定的波形抖动,但是对于数字系统来说,这样微小的电压幅值还不至于引起0, 1跳变,因此对于数字信号来说,可以认为该低通滤

52、波器的理论设计是达到了要求的。高频信号滤波情况中,输入数据频率为截止频率22khz。图4.2是信号通过情况,可以清楚的看到与输入振幅16253相比,输出为18,衰减20lg(16253/18)=59.956 db,近似60 db。实现了低通滤波功能,对于高频率信号则不能通过,满足设计要求,达到理论滤波效果。 4.1低频仿真 1条件:输入数据频率为455hz(fs=1/t =1/2200us =455hz)。2结论:低频仿真如图4.1所示,输入波形振幅 a=5062, 输出为a=7813, 衰减20lg(5062/7813)=0,输入波形与输出波形相比,频率几乎无变化,达到低通功能,满足设计要求

53、。 图4.1 f=455hz时fir滤波器输出 274.2高频仿真1条件:输入数据频率为截止频率22khz。2结论: 高频仿真如图4.2所示,与输入振幅16253相比,输出为18,衰减20lg(16253/18)=59.956 db,近似60 db。实现了低通滤波功能,对于高频率信号则不能通过,满足设计要求。图4.2 f=22 khz时fir滤波器输出由前面的实验我们可以认为:该设计所建的模型是正确,实验方案是合理的、可行的,制作的数字滤波电路基本达到设计指标。从这里我们可以看出图4.1中虽然在曲线的形状上比较接近,但是实际的精度还是存在误差。误差造成的原因是多方面的,比如有限字长效应的影响等。 5结论与展望数字信号处理的最主要应用领域就是数字滤波,数字滤波器与快速傅里叶变换(fft)被公认为数字信号处理的两大基石。在现代电子系统中,fir数字滤波器以其良好的线性特性被广泛使用,随着科技的日新月异,基于fpga来设计电子电路己成为一种趋势。这是由于fpga器件集成度高、体积小,使用它可以大大缩短开发的周期,减少资金的投入,将原来的电路板级产品升级为芯片级产品。vhdl语言是一种功能强大的硬件描述语言,本设计用vhdl语言编写了一个实现fir滤波器的程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论