0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

电子设计 来源:郭婷 作者:电子设计 2019-04-22 08:07 次阅读

数字信号处理领域,滤波器无疑是个非常重要的环节。而在数字滤波器中,有限脉冲响应(FIR)滤波器因为其线性相位的特点,应用尤为广泛。实际应用中FIR滤波器分为常系数FIR滤波器和变系数FIR滤波器。常系数FIR滤波器的系数固定不变,可根据其特点采用分布式算法进行设计,故实现起来速度快,消耗的资源少。变系数FIR滤波器的系数是不断变化的。当前含有变系数FIR滤波环节的芯片普遍存在速度与处理级数的矛盾,有效解决此问题具有重要的现实意义。

随着片上系统(SOC)时代的到来,可编程逻辑器件不仅为FIR滤波器的设计提供了一条可行而高效的方法,而且更被广泛地使用于数字信号处理的各个领域。采用INMOS公司的IMS A100级联型信号处理器为模板,以FIR滤波器设计为核心,用FPGA威廉希尔官方网站 开发设计级联型信号处理器,能够应用于数字FIR滤波、高速自适应滤波、相关和卷积、离散傅里叶变换、脉冲压缩、线性预测编码语音处理、高速定点矩阵乘法等,有较好的应用前景和发展空间。

1 FIR滤波器结构设计

传统的FIR滤波器横向结构如图1(a)所示,为提高系统处理速度,求和单元∑可采用流水线结构。图中的N阶滤波器从系统开始工作到第一个输出数据有效,需经过N个周期,系统最大速度是由一次乘法和N个乘法结果求和运算消耗的时间决定,因而运算速度很低。采用流水线结构后,运算速度则由一次乘法运算决定,运算速度得到提高。为了系统结构的有效设计,根据FIR滤波器结构的可逆性,可采用图1(b)所示的转置结构。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

在横向滤波器的转置结构中,N个相同的处理单元级联就组成了滤波器,因此系统能在保证计算结果不溢出的前提下,只改变级联处理单元的数目就能方便地调整滤波器的级数。在t=KT时,滤波器的输出为:

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

实际应用中常常会用到高阶FIR滤波器,但一块芯片的资源和容量毕竟有限,不能很好地满足设计要求。从图1(b)所示的结构可以看出,多片FIR滤波器可以级联起来,构成高阶FIR滤波器,无需任何附加逻辑,也不会降低运算速度,同时保持运算精度,故对比后优先选择图1(b)的滤波器转置结构。

考虑到FIR滤波器系数的对称性,在横向滤波器的转置结构中再加入一条反向相加、延时支路,把单片FIR滤波器的级数由N扩展到2N,适合于阶数M为N<M≤2N的滤波器使用。系统只需用一个信号便可实现对芯片级联使用或单片使用的控制,具体实现结构如图2所示。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

为了让设计的信号处理器能用于自适应信号处理、快速傅里叶变换等领域,还必须使系统能根据用户的要求实时改变当前系数。一般有两种方案可以实现:一是通过一个写入端口直接修改当前系数;二是准备多组备用系数,并可以在与系统工作时钟异步的情况下对这些备用系数进行修改。方案一可以节省一定的系统资源,但对一组当前系数的修改需要较长时间,且此段时间内系统无法正常工作,故实时性较差;方案二虽然消耗了较多的系统资源,但系统能在准备系数(即修改备用系数)时正常工作,修改当前系数只需将当前系数和备用系数交换,交换系数的过程只需一个时钟节拍即可完成。综合考虑各方面因素,方案二具备更好的系统性能,故优先选择方案二。

2 系统设计与FPGA实现

图2的FIR滤波器结构是高速、高精度的数字式横向滤波器结构,在数字信号处理应用中可作为功能块,完成高速离散傅里叶变换、卷积和相关,以及滤波功能。级联型信号处理器的设计正是基于此结构,其FPGA实现的总体结构如图3所示。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

此级联型信号处理器的外部输入数据Din字长16位,系数字长16位,输入数据和系数均采用二进制补码方式。内部有A,B两组系数寄存器,一个存储当前系数,另一个存储修改系数,用户可通过数据线D在与系统时钟异步的情况下对系数进行修改,也可使A,B两组系数在系统工作的过程中相互“交换”。系统具有用户控制切换和系统自动切换两种系数切换方式。为了保持完整的数据精度,对于延时、乘法和相加链的中间结果是以满精度进行运算的,若N=2K,则系统的满精度为31+K位,考虑到单片使用时N级可扩展到2N级,所以应选用的满精度为32+K位,本系统采用32阶滤波器设计,故满精度为37位。在延时、乘法和相加链的输出端,设计一个可编程的桶形移位器(即数据选择单元),它可从四组24位数据字段[7~30],[11~34],[15~38]和[20~43]字段中任选一种,这四组字段从FIR滤波器输出的37位结果[0~36]中得到,所选的24位在输出前需进行舍入或符号扩展,至于如何选择,则根据实际应用而定。另外,本系统还为用户提供了系统复位(reset)、工作许可(go)、状态监测(error,out-ready)等常用握手信号。用户可以读写控制逻辑中的状态控制寄存器来切换当前系数,选择输出字段和设置系统工作模式(单片或级联,当系统课用于级联时,Cin为级联输入),其内部寄存器的详细描述见表1。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

用户还可以通过数据线D、地址信号address、读写控制信号W、系统使能信号Ce、片选信号Cs等对系数寄存器A,B以及状态控制寄存器进行读写。

3 FPGA仿真

系统利用FPGA实现了一个32阶的级联型信号处理器,选用的FPGA芯片是XILINX公司的集成了18×18位硬件乘法器的VirtexⅡ系列的XC2V1000-5-FG256,其资源消耗情况如表2所示。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

为了方便仿真和结果观察,选用固定值输入,图4(a)和图4(b)分别是系统级联型工作模式及系数切换仿真和系统单片工作模式仿真结果。

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

从图4(a)和图4(b)可以看出,系数寄存器和内部控制寄存器可以正确读写,当输入系数切换指令后,系数正常交换,整个系统工作正常。

4 性能分析

系统的输入数据和系数都是16位的二进制补码,所以中间结果的[0~30]字段对应着-1~+1。而系统的中间结果是以满精度运算的,所以系统输出的误差产生于数据选择单元,四组字段会产生不同的误差。

对[7~30]字段,按四舍五入原则产生的最大舍入误差为:

基于FIR滤波器结构实现级联型信号处理器FPGA的设计

系统的仿真结果和性能分析都表明,系统可正常工作,且最高工作时钟可达到50 MHz。

5 结语

讨论了级联型信号处理器的FPGA高效实现,通过系统论证、仿真和硬件调试证明,设计方法正确有效,系统功能实现正常且稳定,为FIR滤波、快速傅里叶变换、自适应滤波等应用提供了一条可行之路,其性能可以随着可编程逻辑器件的发展而不断提高。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603044
  • 滤波器
    +关注

    关注

    161

    文章

    7799

    浏览量

    178011
  • soc
    soc
    +关注

    关注

    38

    文章

    4163

    浏览量

    218171
收藏 人收藏

    评论

    相关推荐

    DSP in FPGAFIR滤波器(一)

    FIR 滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。##全并
    发表于 06-27 10:02 9501次阅读

    DSP in FPGAFIR滤波器(二)

    FIR 滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。##脉动
    发表于 06-30 09:47 2156次阅读

    基于FPGAFIR滤波器设计与实现

    本帖最后由 eehome 于 2013-1-5 09:50 编辑 基于FPGAFIR滤波器设计与实现   文章研究基于FPGA、采用
    发表于 08-11 15:32

    串行结构FIR滤波器设计(含文档 代码资料)

    滤波器,即有限脉冲响应滤波器,顾名思义,是指单位脉冲响应的长度是有限的滤波器。而根据FIR滤波器结构
    发表于 04-14 15:20

    如何利用FPGA实现级联信号处理器

    的各个领域。采用INMOS公司的IMS A100级联信号处理器为模板,以FIR滤波器设计为核心
    发表于 07-30 07:22

    并行FIR滤波器Verilog设计

    对应一个系数。由理论知识可知,只有当FIR的h(n)对称时,FIR滤波器才具有线性相位特性。使用MATLAB等工具设计FIR时,得到的h(n)也都是具有对称性的。
    发表于 09-25 17:44

    请问怎样去设计级联信号处理器

    怎样设计FIR滤波器结构?怎样设计级联信号处理器
    发表于 04-28 07:04

    怎么利用FPGA实现FIR滤波器

    并行流水结构FIR的原理是什么基于并行流水线结构的可重配FIR滤波器FPGA
    发表于 04-29 06:30

    基于FPGA对称FIR滤波器的设计与实现

    基于FPGA对称FIR滤波器的设计与实现:在基于FPGA的对称
    发表于 09-25 15:38 30次下载

    基于FPGA设计的FIR滤波器实现与对比

    描述了基于FPGAFIR滤波器设计。根据FIR的原理及严格线性相位滤波器具有偶对称的性质给出了FIR
    发表于 11-09 17:32 121次下载

    基于FPGAFIR滤波器设计与实现

    基于FPGAFIR滤波器设计与实现,下来看看
    发表于 05-10 11:49 39次下载

    串行结构FIR滤波器设计 (含有代码 文档资料)

    FIR滤波器,即有限脉冲响应滤波器,顾名思义,是指单位脉冲响应的长度是有限的滤波器。而根据FIR滤波器
    发表于 04-20 14:42 2359次阅读

    基于FPGA的硬件加速FIR流水结构滤波器实现、设计及验证

    摘要:有限冲击响应(FIR)滤波器是数字通信系统中常用的基本模块。文章设计了一种流水结构FIR滤波器,通过
    发表于 11-18 06:15 1535次阅读
    基于<b class='flag-5'>FPGA</b>的硬件加速<b class='flag-5'>器</b>的<b class='flag-5'>FIR</b>流水<b class='flag-5'>结构</b><b class='flag-5'>滤波器</b><b class='flag-5'>实现</b>、设计及验证

    如何使用FPGA实现FIR抽取滤波器的设计

    FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,
    发表于 09-25 10:44 3次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>FIR</b>抽取<b class='flag-5'>滤波器</b>的设计

    FIR滤波器代码及仿真设计

    上文 FPGA数字信号处理滤波器2_使用dsp48e1的fir滤波器设计完成了
    的头像 发表于 06-02 12:36 1600次阅读
    <b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>代码及仿真设计