下载此文档

基于FPGA的高速FIR数字滤波器的设计.doc


文档分类:通信/电子 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
1 引言目前 FIR 滤波器的实现方法主要有 3种: 利用单片通用数字滤波器集成电路、 DS P 器件和可编程逻辑器件实现。单片通用数字滤波器使用方便, 但由于字长和阶数的规格较少, 不能完全满足实际需要。使用 DSP 器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。 FPGA 有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务, 相对于串行运算为主导的通用 DSP 芯片来说, 其并行性和可扩展性更好。但长期以来, FPGA 一直被用于系统逻辑或时序控制上, 很少有信号处理方面的应用, 其原因主要是因为在 FPGA 中缺乏实现乘法运算的有效结构。本文利用 FPGA 乘累加的快速算法,可以设计出高速的 FIR 数字滤波器,使 FPGA 在数字信号处理方面有了长足的发展。 2 Matlab 设计滤波器参数利用 Matlab 为设计 FIR 滤波器提供的工具箱, 选择滤波器类型为低通 FIR , 设计方法为窗口法, 阶数为 16 , 窗口类型为 Hamming , Beta 为 , Fs 为 kHz , FC 为 kHz ,导出的滤波器系数如下: 3 快速 FIR 滤波器算法的基本原理(1) 分布式算法分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积进行累加得到最终结果。对于一个 N(N 为偶数) 阶线性相位 FIR 数字滤波器,输出可由式(1) 表示: (2) 乘法器设计高性能乘法器是实现高性能的 FIR 运算的关键,分析乘法器的运算过程,可以分解为部分积的产生和部分积的相加两个步骤。部分积的产生非常简单, 实现速度较快, 而部分积相加的过程是多个二进制数相加的加法问题, 实现速度通常较慢。解决乘法器速度问题, 需要分别从这两个方面入手,减小部分积的个数,提高部分积相加运算的速度。 Booth 算法 Booth 算法针对二进制补码表示的符号数之间的相乘,即可以同时处理二进制正数/负数的乘法运算。 Booth 算法乘法器可以减少乘法运算部分积个数, 提高乘法运算的速度。下面讨论一个 Mb×Nb 乘法器基本单元的设计。设乘数为 A,为M 比特符号数, 2 的补码表示,相应各比特位的值为 ai(i=0 ,1 ,…, M-2 , M-1) ,用比特串可表示为: A=aN-1aN-2 … a2a1a0 (2) 设被乘数为 B ,为N 比特符号数,2 的补码表示, 相应各比特位的值为 bi(i=0 ,1 ,…, N-2 , N-1) ,用比特串可表示为: B=bN-1bN-2 … b2b1b0 (3) MacSoley 提出了一种改进 Booth 算法, 将需要相加的部分积数减少为一半, 大大提高了乘法速度。改进 Booth 算法对乘数 A 中相邻 3 个比特进行编码, 符号数 A 可表示为: 因此, 应用改进 Booth 算法的乘法器运算过程仍然包括 Booth 编码过程, 即部分积产生过程和部分积相加过程。所不同的是,其产生的部分积个数减少到原来的一半。 Wallace 树加法在采用改进 Booth 算法将部分积数目减少为原来的一半之后,乘法运算的主要问题就是处理多个多比特二进制操作数相加的问题。最直观的算法是将多个部分积逐一累加, 但效率

基于FPGA的高速FIR数字滤波器的设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人6188
  • 文件大小358 KB
  • 时间2017-05-27