FAE讲堂:利用赛灵思FGPA实现降采样FIR滤波器

时间:2011-05-06来源:电子产品世界

 

  图 5. 三个降采样器的频率响应 - 整体速率变化为50,图中显示了放大的1.5~3MHz频段。单级滤波器为蓝色,三级滤波器(比例分别为M1=2、M2=5、M3=5)为绿色,基于CIC的二级滤波器(比例分别为M1=10、M2=5)为红色。

  图5对比上述三种按50降采样方法:单级、三级(比例为 2-5-5)和CIC滤波器与CIC补偿FIR滤波器串联(比例为10-5)。

  有理数降采样

  在此第二个应用示例中,我们假设信号输入数据速率是50MHz,其必须降采样到12MHz,因此其需要采用L/M=6/25 的有理数固定速率变化(换句话说,抽取因数为M/L=25/6)。FPGA时钟频率假设为150MHz。

  如FIR-Compiler 5.0数据手册所解释,采用有理数速率变化的滤波器理论上需要两个处理步骤:按L插值,然后是按M抽取。在我们这个具体例子中,一旦输入信号按L=6插值,输出虚拟采样速率 Fv 就会变为300MHz。因此,必须过滤掉Fs_in/2=25MHz与Fv/2=150MHz之间的频段,以滤除Fs_in整数倍之处的频谱。在DSP术语中其称为“图像”,这正是采用插值“抗成像”低通滤波器的原因。

  在上述处理步骤之后、按M最终降采样之前,我们需要采用低通滤波器滤除从Fv/(2*M)=6MHz到Fv/2=150MHz的频率,其在DSP术语中称为“混叠”。由于这两个低通滤波器是串联在一起并且按相同的虚拟数据速率Fv运行,因此我们可以使用带宽较低的滤波器同时执行抗成像与抗混叠,从而节约资源。在我们的例子中,具有最低带宽的滤波器是抽取滤波器。

  以下MATLAB片段说明如何使用单级滤波器设计和模拟上述降采样器。我们假设通带和阻带频率衰减分别为0.05dB和70dB。

  

 

  

 

  

 

  

 

  请注意:此MATLAB代码只是有理数降采样滤波器的行为模型。在实际硬件多相架构中,您只需实现一个单相滤波器,然后改变每个新输出采样的系数即可(按Fclk速率执行处理)。其不同于采用整数比的多相降采样滤波器。

  图6说明FIR-Compiler GUI第一个页面的设置。其它三个页面本人采用与第一个整数降采样应用例子相同的参数。布局布线后的总体FGPA资源占用情况如下:

  Slice触发器数量:547 个

  Slice LUT数量:451个

  占用 Slice数量:153个

  DSP48单元数量:13

  BRAM单元数量:6个

  

 

  图 6. 25/6有理数降采样。用于参考单级滤波器的FIR-Complier 5.0 GUI设置第 1 页(共 4 页)。

1 2 3 4 5

关键词: Xilinx FGPA FAE

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版