DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 364|回复: 0
打印 上一主题 下一主题

二维FIR滤波器的FPGA实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:09:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

                      摘要:对二维信号实时处理涉及大量的复数运算且对运算速度要求很高,因此二维有限长单位脉冲响应滤波器(2D—FIR)的结构比一维滤波器要复杂得多。通过对二维滤波器重要运算单元复数乘法的分析、优化减小了其所需实数乘法器的个数。采用Quartus II软件综合可以得到算法优化后的二维滤波器占用逻辑资源减少了16%,工作速度提高了13%。
  0 引言
  二维有限长单位脉冲响应滤波器(2D—FIR)用于对二维信号的处理,如在通信领域中广泛采用2D-FIR完成对I、Q两支路基带信号的滤波[1]。由于涉及大量复数运算并且实时性要求高,如果不对算法作优化在技术上很难实现。目前主要设计方案是利用FPGA厂商提供的一维FIR知识产权核(IP),组成二维滤波器[2]。这种方案没有考滤复数运算的特点,不可能在算法上优化,而且IP核的内部代码是不可修改的,因此在不同厂商的器件上不可移植。2D_FIR的复数运算都需转成实数运算来实现的,而其中实数乘法运算占用逻辑资源远比实数加法多。通过分析复数乘法特点,减小其所需实数乘法器个数就可以减小逻辑资源占用率并提高运算速度。这种方案优点在于直接优化算法,不会受IP核限制可移植性很强。
  1 2D—FlR的设计
  采用FPGA设计复数FIR滤波器常见的方案[2]为:用FPGA厂商提供的4个实数FIR滤波器IP核组合成2D—FIR滤波器。很明显这种设计没有考虑复数运算的特点,2D—FIR滤波器占用资源至少4倍于实数FIR滤波器,硬件资源耗费过大,性能也会受到不小的影响。因此从算法上分析并优化滤波器的结构非常必要。
  1.1 算法优化
  2D—FIR滤波器结构采用卷积型,它对输入数据的处理就是进行卷积运算[3],如(1)式所示:




为滤波器抽头系数。由(1)式可以看出其运算过程是


一个复数乘法由4个实数乘法和2个实数加法构成。而相同位数的实数乘法器与实数加法器相比会占更多的硬件资源,也会对电路性能产生更多的负面影响。通过优化后的复数乘法如下:






  0.1*i]。为了方便验证仿真结果,事先计算出输出数据并转化为带符号位的整数[-10457+3486i,0+17428i,0,4096+12288i,32768—4096i,9626—7987i…]。从图3中的仿真结果可以看到,经过十几个时钟周期的延时后复数FIR滤波器的输出为[3486+10457 i,17428,0,4096+12288i,32767-4096i,9626-7987i…],前面两个数据与计算结果不一致是因为:复滤波器刚开始工作时内部移位寄存器默认的数据是0而不是外部输入的数据,当数据全部装载入滤波器后,计算结果完全满足设计要求。
  通过对算法与电路的优化使2D—FIR滤波器的性能提高了13%,逻辑资源的占用减小了16%。文中所提出的方案比常规方法更有效,而且具有更强的可移植性。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-13 13:21 , 耗时 0.094193 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表