基于FPGA的高速FIR数字滤波器的设计_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、基于fpga的高速fir数字滤波器的设计目前fir的实现办法主要有3种:利用单片通用数字滤波器、器件和可编程规律器件实现。单片通用数字滤波器用法便利,但因为字长和阶数的规格较少,不能彻低满足实际需要。用法dsp器件实现虽然容易,但因为程序挨次执行,执行速度必定不快。有着规整的内部规律阵列和丰盛的连线资源,特殊适合于数字信号处理任务,相对于串行运算为主导的通用dsp芯片来说,其并行性和可扩展性更好。但长久以来,fpga向来被用于系统规律或时序控制上,很少有信号处理方面的应用,其缘由主要是由于在fpga中缺乏实现乘法运算的有效结构。本文利用fpga乘累加的迅速算法,可以设计出高速的fir数字滤波器

2、,使fpga在数字信号处理方面有了长足的进展。2 matlab设计滤波器参数利用matlab为设计fir滤波器提供的工具箱,挑选滤波器类型为低通fir,设计办法为窗口法,阶数为16,窗口类型为hamming,beta为0.5,fs为8.6 khz,fc为3.4 khz,导出的滤波器系数如下:3 迅速fir滤波器算法的基本原理(1) 分布式算法分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积举行累加得到终于结果。对于一个n(n为偶数)阶线性相位fir数字滤波器,输出可由式(1)表示:(2) 乘法器设计高性能乘法器是实现高性能的fir运算

3、的关键,分析乘法器的运算过程,可以分解为部分积的产生和部分积的相加两个步骤。部分积的产生十分容易,实现速度较快,而部分积相加的过程是多个二进制数相加的加法问题,实现速度通常较慢。解决乘法器速度问题,需要分离从这两个方面入手,减小部分积的个数,提高部分积相加运算的速度。3.1 booth算法booth算法针对二进制补码表示的符号数之间的相乘,即可以同时处理二进制正数负数的乘法运算。booth算法乘法器可以削减乘法运算部分积个数,提高乘法运算的速度。下面研究一个m b×n b乘法器基本单元的设计。设乘数为a,为m比特符号数,2的补码表示,相应各比特位的值为ai(i=0,1,m-2,m-1

4、),用比特串可表示为:a=an-1an-2a2a1a0 (2)设被乘数为b,为n比特符号数,2的补码表示,相应各比特位的值为bi(i=0,1,n-2,n-1),用比特串可表示为:b=bn-1bn-2b2b1b0 (3)macsoley提出了一种改进booth算法,将需要相加的部分积数削减为一半,大大提高了乘法速度。改进booth算法对乘数a中相邻3个比特举行编码,符号数a可表示为:因此,应用改进booth算法的乘法器运算过程仍然包括booth编码过程,即部分积产生过程和部分积相加过程。所不同的是,其产生的部分积个数削减到本来的一半。3.2 wallace树加法在采纳改进booth算法将部分积数

5、目削减为本来的一半之后,乘法运算的主要问题就是处理多个多比特二进制操作数相加的问题。最直观的算法是将多个部分积逐一累加,但效率很低,运算时延巨大。wallace在1964年提出采纳树形结构削减多个数累加次数的办法,称为wallace树结构加法器。wallace树充分利用全加器3-2压缩的特性,随时将可利用的全部输入和中间结果准时并行计算,因而可以将n个部分积的累加次数从n-1次削减到log2n次,大大节约了计算时延。2所示为wallace树结构与csa结构的对比,其结构的关键特征在于利用不规章的树形结构对全部预备好输人数据的运算准时并行处理。wallace树结构普通用于设计高速乘法器,其显著优

6、点是速度快,尤其对处理多个数相加的状况具有相当的优越性,缺点是其规律结构形式不规整,在vlsi设计中对布局布线的影响较大。3.3 进位的迅速传递考虑到提高两个多比特操作数相加运算的速度,关键在于解决进位传递时延较大的问题。采纳以牺牲硬件资源面积换取速度的方式,以自立的规律结构单独计算各个加法位需要的进位输入以及产生的进位输出,提高进位传递的速度,从而提高加法运算速度。3.3.1 四位超前进位加法器的设计两个加数分离为a3a2a1a0,b3b2bb1b0,c-1为低位进位。令两个辅助变量分离为g3g2g1g0和p3p2p1p0:gi=ai&bi,pi=ai+bi。g和p可用与门、或门实现

7、。一位全加器的规律表达式可化为:利用上述关系,一个4比特加法器的进位计算就变幻为下式:由式(7)可以看出每一个进位的计算都挺直依靠于囫囵加法器的最初输入,而不需要等待相邻低位的进位传递。理论上,每一个进位的计算都只需要3个门延迟时光,即同时产生g i,p i的与门以及或门,输入为g i,p i,c-1的与门,以及终于的或门。同样道理,理论上终于结果sum的得到只需要5个门延迟时光。事实上,当加数位数较大时,输入需要驱动的门数较多,其vlsi实现的输出时延增强无数,考虑互联线延时的状况将会越发糟糕。因此,通常在芯片实现中设计位数较少的超前进位加法器结构,而后以此为基本结构构造位数较大的加法器。3

8、.3.2 进位挑选加法器结构事实上,超前进位加法器只是提高了进位传递的速度,其计算过程与行波进位加法器同样需要等待进位传递的完成。借鉴并行计算的思想,人们提出了进位挑选加法器结构,其算法的实质是增强硬件面积换取速度性能的提高。利用二进制加法的特点,进位或者为规律1,或者为规律0,二者必居其一。将进位链较长的加法器分为m块分离举行加法计算,对除去包含最低位计算的m-1块加法结构复制两份,其进位输入分离预定为规律1和规律0,于是m块加法器可以同时并行举行各自的加法运算,然后按照各自相邻低位加法运算结果产生的进位输出,挑选正确的加法结果输出。4 基于fpga设计fir数字滤波器clk2为fir数字滤

9、波器的工作时钟,clk2频率远大于clk1频率。其工作过程:clk1时钟的升高沿启动一次计算过程,控制器输出reset信号使触发器1清0;其后每个clk2周期计算一个h(i)x(i)+x(n-i-1)并举行累加,共需n2个clk2周期完成计算,完成计算后控制器输出oe信号将结果输出。(1) 对冲激响应系数h的处理:由matlab设计fir滤波器系数是一系列的浮点数,而fpga不支持浮点数的运算,因此浮点数需转换成定点数,设计可采纳q值量化法,把系数扩大了27=128倍,然后转化为8位二进制数补码。终于结果再右移7位就可等到真正结果。(2) 本设计对于有符号数采纳补码表示的办法,在设计中多次浮现

10、加法运算,可能会产生溢出,所以应举行符号位扩展。将符号位扩展到输出统一的最高位,才干够保证计算结果的正确性。扩展办法为:p9p8p7p6p5p4p3p2p1p0=p9p9p9p9p9p8p7p6p5p4p3p2p1p0其中:p9为补码的符号位。(3) booth编码处理因为存在求“-x”的运算,需举行求反加1。假如每1次调用booth编码都举行加1运算,不仅使资源大大铺张,而且因为位数较长,也会大大影响乘法器的速度。而本设计将加1放在wallace树中计算,尽管多了1级wallace树,但速度和资源上都大大提高了。(4) 因为fir是线性相位,h(i)=h(15-i),可以将乘法运算由16次削减到8次;再通过对h(i)举行booth编码可以将部分积削减到4个;终于利用wallace树以及超迅速加法器将4个部分积的相加,得到8*8乘法器的结果。因为将booth编码中的加1放在wallace树中,经过分析需要3级wallace树。5 fir滤波器的频率特性分析利用matlab中rand()和round()函数产生-128128之间中100个整随机数。比较输入x与输出y的幅频特性,可以看出fir滤波器为低通滤波,指标符合设计要求。6 用ise综合分析fir滤波器的性能分析分析设计

温馨提示

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

评论

0/150

提交评论