您的位置 首页 电路

用FPGA完成FIR滤波器

你接到要求用FPGA实现FIR滤波器的任务时,也许会想起在学校里所学的FIR基础知识,但是下一步该做什么呢?哪些参数是重要的?做这个设计的最佳方法是什么?还有这个设计应该怎样在FPGA中实现?现在有大

  你接到要求用FPGA完结FIR滤波器的使命时,或许会想起在校园里所学的FIR根底知识,可是下一步该做什么呢?哪些参数是重要的?做这个规划的最佳办法是什么?还有这个规划应该怎样在FPGA中完结?现在有很多的低成本IP核和东西来协助你进行规划,由于FIR是用FPGA完结的最一般的功用。

  根底和主要参数

  或许你在听FIR滤波器课时不行专心。这儿做一个快速的温习,最简略的方式是, FIR 滤波器的输出 y(n)是求采样数据x(n) 的N个输入的平均值。 存储的每个采样称为抽头。 当然大多数规划都比这个杂乱, 要供给优化的滤波器 特性,要用系数乘 每个抽头, 或许对 h(i) 进行加权。

   图1 典型的FIR滤波器结构(彻底并行)

  用于FIR滤波器的主要参数是通带、阻带、阻带衰减和通带波纹。关于某些运用,阻带波纹或许是重要的和规则的。但是对大多数运用,阻带衰减是恰当的。还有输入采样率,以及与输入数据分辨率一同的所要求的输出采样率。

  图2 低通滤波器标准

  你或许仅仅接受使命,而由你自己挑选规划标准。当然运用项目界说了许多标准。这儿有一些辅导定见,协助你缩小各种可能性,评价权衡规划。

  一般通带越挨近阻带,规划就越具挑战性。相同,指定通带很低的波纹,或许很高的阻带衰减增加了规划的杂乱性。有必要紧记,指定波纹和衰减为数据的分辨率,你有必要满意规划要求。指定衰减的关键是小于输入数据的最低位。相同在满标度中指定小于1位的通带波纹是不必要的。好像其它的滤波器,FIR滤波器可构成低通、高通和带通滤波器。

  表1 数据宽度相关于阻带衰减和通带波纹

  输入至输出的采样率也会影响你的规划。在简略的规划中,输入速率和输出速率是持平的。但是,在许多低通滤波器规划中,输出以输入的速率运转是不经济的,由于传输信息不要求高的输出率。取十分之一速率的FIR是适宜的。其它要求较高输出率的规划,则采样内插FIR。

  进行规划

  挑选FIR滤波器的系数有两种办法。Parks-McClellan办法(履行Remez算法)和进行冲击呼应的窗口操作。窗口办法依赖于一个现实,要求频率呼应的离散Fourier反改换代表FIR滤波器的系数。抱负的频率响运用作起始点,所以运用窗功用削减系数的数目,成形频率呼应。通用的窗功用包含矩形、三角、Hanning、Hamming、Kaiser 和Blackman。

  没有必要对数学进行深究,有许多免费的低成本东西协助你进行规划。假如运用MATLAB,MathWorks有各种东西可用于FIR规划。假如你不必这些包,用Internet查找“FIR滤波器规划东西”将展示一些免费的低成本东西。

  首要应做出选用哪种规划办法的决议计划。大多数规划者选用Park-McClellan 办法,由于规划输入是滤波器的要求,这个办法一般满意具有最少抽头的滤波器要求。假定选用这个办法,你能够简洁地把要求输入至所选的东西中。大多数规划东西会给出频率呼应、冲击呼应和滤波器系数。假如挑选窗口办法,只需做些试验。要输入截止频率、窗口办法和抽头数目至规划东西。所以规划东西会给出频率呼应。假如频率呼应不是你所要的,你能够改动输入参数和迭代进程。

  因而,你现已用规划东西发生了系数,查验了频率呼应。那么现在是否能够移开这个东西,而在FPGA中完结这个规划呢?并非如此,还要考虑一些作业。首要要确认频率呼应,数据不是无限准确的。大多数规划东西让你界说一个量化等级并调查成果。假使等级的精度是合理的,那就不需求做改动。但是,最好是现在发现这些问题而不是在试验室。下一步是研讨其它的滤波器规划,比如Lth带(或许Nyquist)滤波器,这些滤波器大约有一半的系数设置为0,因而削减了数学上的杂乱性。

  在FPGA中完结规划

  你设置了系数之后,现在打算在FPGA中完结这个规划。再次要做出若干决议。首要是挑选完结乘法器单元的办法,决议它们能运转多快。一般有两个挑选:用在FPGA内完结逻辑的查找表(LUT)来完结乘法器,或许用FPGA内的专用的DSP单元。为了阐明这些挑选,考虑LatticeECP2 FPGA系列,在这个FPGA内用sysDSP块完结一个18×18乘法器不占用LUT,运转速度高于400MHz。用LUT完结相同的功用其功能大约是100MHz,并要占用许多LUT。专门的DSP块具有高速并运用少的LUT,一般挑选这个办法,除非你保存DSP块预备留作它用。

  图4 LatticeECP2 sysDSP块

  接下来要做的事是决议运用多少个乘法器。关于最快的速度,乘法器的数目等于FIR滤波器中抽头的数目。这种类型的滤波器彻底用并行方式来完结。但是在许多情况下,并不需求功能的等级,答应乘法器时刻同享。一种快速核算提醒了运用的乘法器的数目。首要做一个简化,以采样率除速度,你以为适中的杂乱规划能够运转于所选的FPGA,然后对这个数进行四舍五入至最挨近的整数。经过这个核算因子,能够削减乘法器的数目。作为一个比如,假定要在LatticeECP2 FPGA中完结12个抽头,75MSPS,12位的滤波器。用这个器材,300MHz的滤波器比较简单完结,削减因子为4,需求3个乘法器。

  在做出终究决议之前,要考虑终究的完结。例如,运用Lattice供给的FIR发生器,这个东西用sysDSP块内的加法树完结FIR滤波器。由于这个加法树的规模是4个乘法器,没有有用的资源与指定的3个乘法器联络在一同。此外,假如指定了4个乘法器,规划要求的作业速度会略有下降。

  表2 最大采样率比照用于12个抽头滤波器的乘法器

  现在有了系数,乘法器完结的办法,以及知道需求多少个乘法器。许多供货商,包含Lattice供给主动发生FIR的东西。终究一步是把系数输入东西,指定乘法器的数目。发生滤波器之后要进行时序剖析,确认是否假定的速度是正确的。在运用的比如中,东西报告了350MHz的最大速度,高于假定的300MHz。假如速度十分挨近,你应该进行调整并再试。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/192392.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部