一种具有启动停止控制位的插值fir滤波实现方法

文档序号:10491751阅读:444来源:国知局
一种具有启动停止控制位的插值fir滤波实现方法
【专利摘要】本发明公开了一种具有启动停止控制位的插值FIR滤波实现方法,在一个数据包处理完毕后使寄存器不再移位,所有的移位寄存器里的数据都保持在数据包的最后一个数据输入时的状态;下一个数据包到来时,完整的与上一个数据包对接,新输入的数据与前N?1个数据的相关性没被破坏,保证了大量连续数据的无间隔处理,其中N为移位寄存器个数。本发明具有原理简单、易实现、能够令各移位寄存器在各个包间隙数据保持不变、保证数据连续及相关性等优点。
【专利说明】
-种具有启动停止控制位的插值FIR滤波实现方法
技术领域
[0001] 本发明主要设及到数字信号处理技术领域,特指一种具有启动停止控制位的插值 FIR滤波实现方法。
【背景技术】
[0002] 在数字信号处理领域,数字滤波器是必不可少的基本器件,其中FIR滤波器又是最 常用的数字滤波器结构,也就是有限长单位脉冲响应数字滤波器,FIR输出对应于输入时间 序列x(n)的关系,由一种有限卷积数量形式给出,公式为:
[0003]
[0004] 最基本的FIR滤波器结构是直接型结构,直接型结构的FIR滤波器结构如图1,主要 包括移位寄存器和乘法器加法器。关于FIR滤波器的结构已经有很多种改进,如串行FIR滤 波器、并行FIR滤波器、半并行FIR滤波器、分布式FIR滤波器等。
[0005] 基于移位寄存器的串行FIR滤波器的设计思想是输入数据周期性的动态流动是W 自身的流动而非通过地址的改变实现的。如图2所示,每完成一次滤波运算,输入数据沿数 据窗推进一格,即总有一格新的数据进入数据窗并占据数据窗的第一个位置,数据窗内的 原有数据整体向前推移一个系数位,且总有一格数据一处数据窗。输入数据的运种流动特 性可采用移位寄存器实现。基于移位寄存器的串行FIR滤波器结构如图3所示。
[0006] 在某些场合,FIR滤波器的采样频率很高,实时性很强,运就要求其具有很高的处 理速度和数据吞吐率。全并行结构就满足了运一要求。它使得采样频率与系统处理速度相 当。其思想是将一次滤波运算内的乘法同时执行,最终达到"W资源换速度"的目的。采用加 法树的直接型结构FIR滤波器使用流水线计数进行处理W缩短关键路径,得到如图4所示的 基于直接型结构的4抽头采用加法树的全并行FIR滤波器硬件结构。运种结构是将一次滤波 运算的所有乘法同时执行。
[0007] 插值FIR滤波器是FIR滤波器的一种,插值意味着提高采样频率,故也可称之为上 采样。假定原始序列为x(n),采样频率为fx,插值因子为L,则插值过程可描述为在原始序列 每相邻采样点钟插入个0构成新序列。一般的插值滤波器结构由插值器和滤波器组成。 插值后相邻的两个采样点之间引入个零,显然对运个零的运算时没有必要的。所W 通常插值的FIR滤波器并不需要耗费运么多乘法器资源,而可W采用多相结构,将一个大的 插值滤波器分解成若干个子滤波器。分时复用延时单元和乘法器后,可W得到改进的结构。 W 5倍插值26阶插值FIR滤波器为例,5倍插值的滤波器,每一个有效数据间隔内插4个0,也 就是只有x0,x5,xl0……是有效数据,其余为0。每个输出与输入序列的关系:
[000引 Y0 = x0*h0;
[0009] Yl =xl*h0+x0*hl =x0*hl ;
[0010] Y2 = X巧h0+xl*hl+x0*h2 = x0*h2;
[0011] Y3 = x3*h0+x2*hl+xl*h 化 x0*h3 = x0*h3;
[0012] Y4 = x4*h0+x3*hl+x2*h化Xl*h3+x0*h4 = x0*h4;
[0013] Y5 = :x5*h0+x4*hl+x3*h 化 x2*h3+xl*h4+x0*h5 = :x5*h0+x0*h5;
[0014] YB =……=巧 *hl+x0*h6;
[0015] Y7 =……=巧地化 x0*h7;
[0016] YS =……=巧地3+x0*h8;
[0017] Y9 =……=巧地4+x0*h9;
[001 引 YlO =……=xl0*h0+x5*h5+x0*hl0;
[0019] ……
[0020] Y25 = x25*h0+x20*h5+xl5*hl0+xl0*hl5+巧地20+x0*h25;
[0021] Y26 = x25*hl+x20*h6+xl5*hll+xl0*hl6+巧地21;
[0022] Y27 = x25*h2+x20*h7+xl5*hl 化 xl0*hl7+巧地22;
[0023] Y28 = x25*h3+x20*h8+xl5*hl3+xl0*hl8+巧地23;
[0024] Y29 = x25*h4+x20*h9+xl5*hl4+xl0*hl9+巧地24;
[00 巧]Y30 = x26*h0+x25*h5+x20*hl0+xl5*hl5+xl0*h20+巧地25;
[0026]……
[0027] 观察上式规律,每个输入最多有6个乘法相加,每个有效输入(xO,巧,XlO……)分 别按h0,hl,h2,h3……的顺序依次与系数相乘,每相乘5个系数,就有新的有效数据输入。按 照此规律,可W将系数5个一起进行分组,进行循环移位,系数移位的速度是移位寄存器移 位速度的5倍,保证每移位一次都与5个系数分别相乘,输出5个结果。运样26阶的插值FIR滤 波器只需要6个移位寄存器和6个乘法器。节省了资源,而且每时钟周期都可W输出一结果, 结构如图5。
[0028] 网络通信中的数据通常是W多帖的格式传输的,要传输的数据被打包,一份一份 的在从主机和从机之间通信。从PC机经网线传输来的数据进行无线传输时,数据通过无线 信道环境之前必须要经过FIR插值滤波器才能保证数据在接收端能被正确解析出。FIR滤波 器是串行输入数据,数据要源源不断的输入,由于进行卷积运算,对于N阶的FIR滤波器,每 一个新进入移位寄存器里的数据都与之前N-I个已经进入移位寄存器里的数据序列相关。 然而各个数据包之间有时间间隔,如果不采用任何结构,滤波器移位寄存器会被新采样的 无效数据填充,导致新数据与旧数据之间的数据相关性被破坏,输出错误的数据。

【发明内容】

[0029] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一 种原理简单、易实现、能够令各移位寄存器在各个包间隙数据保持不变、保证数据连续及相 关性的具有启动停止控制位的插值FIR滤波实现方法。
[0030] 为解决上述技术问题,本发明采用W下技术方案:
[0031] 一种具有启动停止控制位的插值FIR滤波实现方法,在一个数据包处理完毕后使 寄存器不再移位,所有的移位寄存器里的数据都保持在数据包的最后一个数据输入时的状 态;下一个数据包到来时,完整的与上一个数据包对接,新输入的数据与前N-I个数据的相 关性没被破坏,其中N为移位寄存器个数。
[0032] 作为本发明的进一步改进:在插值FIR滤波器中移位寄存器间设置多路选择器,选 择信号是输入的控制信号control;所述控制信号control为高时寄存器正常移位到下一 级,否则,移位到本寄存器输入端,保持移位寄存器中数据的不变。
[0033] 作为本发明的进一步改进:连接插值FIR滤波器与微控制器的中AXI总线针对外设 分配专用的输入输出缓存区,运些输入输出缓存区向下被接口电路当做RAM或寄存器使用, 向上被C程序读写;FIR滤波器的数据data从处理器经AXI数据总线发送到FIR滤波器指定缓 存区RAM,只有一次性要处理的数据全部搬运到FIR滤波器缓存区RAM之后,滤波器才能开始 处理。
[0034] 作为本发明的进一步改进:在缓存区RAM中某一不会被待处理数据覆盖的一个存 储单元,把该存储单元定义成标志位Flag,运个标志位地址能够被C程序访问,并且将运个 标志位Flag作为寄存器变量在接口电路中直接连接到FIR滤波器的启停位control;标志位 Flag不能靠 C程序对手动置0,因为信号从C程序经过数据总线传输到标志位Flag后的时间 不确定,而控制位control需要在处理完数据后立即停止,否则多采样无效数据;设置一个 计数counter,在计数满一个包数据的时候对标志位Flag清0。
[0035] 与现有技术相比,本发明的优点在于:
[0036] 本发明的具有启动停止控制位的插值FIR滤波实现方法,原理简单、易实现,为针 对类似于多帖数据包格式数据的FIR滤波设计,它针对类似于网络数据的多个数据包之间 有时间间隙的特点,设计了各移位寄存器在各个包间隙数据保持不变的结构,从而保证了 数据的连续及相关性。进一步,本发明还针对停止启动控制位,设计了在嵌入式系统中相应 的接口控制电路,保证了软硬件之间的正确握手。
【附图说明】
[0037] 图1是现有直接型FIR滤波器结构示意图。
[0038] 图2是现有4抽头FIR滤波器数据流动的动态变化示意图。
[0039] 图3是现有基于移位寄存器的串行FIR滤波器结构示意图。
[0040] 图4是现有基于直接型结构的4抽头采用加法树的全并行FIR滤波器硬件结构示意 图。
[0041 ]图5是现有节省乘法资源的插值FIR滤波器结构示意图。
[0042] 图6是本发明方法在具体应用实例中改变数据通路的移位寄存器结构示意图。
[0043] 图7是本发明方法在具体应用实例中接口电路与AXI总线和滤波器的连接关系示 意图。
[0044] 图8是本发明方法在具体应用实例中针对多帖数据的有停止启动位的FIR插值滤 波器和接口电路结构的示意图。
【具体实施方式】
[0045] W下将结合说明书附图和具体实施例对本发明做进一步详细说明。
[0046] 本发明的具有启动停止控制位的插值FIR滤波实现方法,是针对网络传输数据的 多帖格式特点所进行的插值FIR滤波器设计,该方法的关键就在于:在一个数据包处理完毕 后使寄存器不再移位,所有的移位寄存器里的数据都保持在数据包的最后一个数据输入时 的状态,运样下一个数据包到来,能够完整的与上一个数据包对接,保证了数据的连续性, 新输入的数据与前N-UN为移位寄存器个数)个数据的相关性没被破坏。
[0047] 在具体应用实例中,如图6所示,本发明是在移位寄存器间设置多路选择器,选择 信号是输入的控制信号control ,control为高时寄存器正常移位到下一级,否则,移位到本 寄存器输入端,保持移位寄存器中数据的不变。运样,通过把control位作为启动停止位,实 现了带启动停止位的FIR插值滤波,构成了 FIR插值滤波器,从而可W在两个数据包间隔保 持移位寄存器中的数据不变,不丢失与下一个数据包相关的数据。
[0048] 采用本发明的方法后,基于运样的带有停止启动位的滤波器,就需要外围相应接 口电路。为此,AXI总线针对外设分配专用的输入输出缓存区,运些缓存区向下可W被接口 电路当做RAM或寄存器使用,向上可W被C程序读写。FIR滤波器数据data从处理器经AXI数 据总线发送到FIR滤波器指定缓存区RAM,只有一次性要处理的数据全部搬运到FIR滤波器 缓存区RAM之后,滤波器才能开始处理,否则会出现数据顺序错乱。运就需要软件C程序与硬 件FIR滤波器之间的握手协议。
[0049] 在具体应用实例中,本发明进一步在RAM中某一不会被待处理数据覆盖的一个存 储单元,比如最后一个存储单单元,把最后一个存储单元定义成标志位Flag,运个标志位地 址可W被C程序访问,并且将运个标志位作为寄存器变量在接口电路中直接连接到FIR滤波 器的启停位control。标志位Flag不能靠 C程序对手动置0,因为信号从C程序经过数据总线 传输到标志位后的时间不确定,而控制位control需要在处理完数据后立即停止,否则多采 样无效数据。运里添加一个计数counter,在计数满一个包数据数据的时候对标志位清0。接 口电路与总线和FIR连接关系如图7所示。
[0050] 在一次待处理的数据被完整搬运到输入缓存区时,用C程序置标志位Flag为高,从 而control也为高,RAM里的数据开始有序送往滤波器的输入端,参与移位寄存器移位。当一 个数据包处理完毕,Flag被置为低,从而control也为低,此时移位寄存器不再移位,只是不 断刷新自己所存数据,RAM里的数据也无法进入滤波器输入。N阶滤波器的所有的移位寄存 器数据保持在最后一个数据输入时的状态。运样,在下一个包写入缓存准备好时,将 control置高,数据输入滤波器,可W保证所有数据的连续性,相关性,从而输出正确的数 据。
[0051] 基于本发明的上述实现方法,在具体应用时形成了整体结构,如图8所示,该图8是 W26抽头的滤波器为例,W此类推,N抽头的滤波器设计是一样的,均在本发明的保护范围 之内。
[0052] W上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护 范围。
【主权项】
1. 一种具有启动停止控制位的插值FIR滤波实现方法,其特征在于,在一个数据包处理 完毕后使寄存器不再移位,所有的移位寄存器里的数据都保持在数据包的最后一个数据输 入时的状态;下一个数据包到来时,完整的与上一个数据包对接,新输入的数据与前N-1个 数据的相关性没被破坏,保证了大量连续数据的无间隔处理,其中N为移位寄存器个数。2. 根据权利要求1所述的具有启动停止控制位的插值FIR滤波实现方法,其特征在于, 在插值FIR滤波器中移位寄存器间设置多路选择器,选择信号是输入的控制信号control; 所述控制信号control为高时寄存器正常移位到下一级,否则,移位到本寄存器输入端,保 持移位寄存器中数据的不变。3. 根据权利要求2所述的具有启动停止控制位的插值FIR滤波实现方法,其特征在于, 连接插值FIR滤波器与微控制器的AXI总线针对外设分配专用的输入输出缓存区,这些输入 输出缓存区向下被接口电路当做RAM或寄存器使用,向上被C程序读写;FIR滤波器的数据 data从处理器经AXI数据总线发送到FIR滤波器指定缓存区RAM,只有一次性要处理的数据 全部搬运到FIR滤波器缓存区RAM之后,滤波器才能开始处理。4. 根据权利要求3所述的具有启动停止控制位的插值FIR滤波实现方法,其特征在于, 在缓存区RAM中某一不会被待处理数据覆盖的一个存储单元,把该存储单元定义成标志位 Flag,这个标志位地址能够被C程序访问,并且将这个标志位Flag作为寄存器变量在接口电 路中直接连接到FIR滤波器的启停位control;标志位Flag不能靠 C程序手动置0,因为信号 从C程序经过数据总线传输到标志位Flag后的时间不确定,而控制位control需要在处理完 数据后立即停止,否则多采样无效数据;设置一个计数counter,在计数满一个包数据数据 的时候对标志位Flag清0。
【文档编号】H03H17/00GK105846794SQ201610173415
【公开日】2016年8月10日
【申请日】2016年3月24日
【发明人】邢座程, 吕朝, 刘苍, 唐川, 原略超, 张洋, 王庆林, 王 锋, 危乐, 董永旺, 刘丹, 陈礼锐
【申请人】中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1