一种高阶数字滤波系统及方法

文档序号:7527409阅读:286来源:国知局
一种高阶数字滤波系统及方法
【专利摘要】本发明提供了一种高阶数字滤波系统及方法。通过数字信号的时频变换,将并行数据基于帧的形式,在频域上,通过与滤波器系数频域响应进行乘累加运算,完成高阶FIR滤波的数字并行实现。大大简化了传统并行数字滤波通过序列重组的繁琐实现方式。
【专利说明】一种高阶数字滤波系统及方法

【技术领域】
[0001]本发明涉及一种滤波系统及方法,特别是涉及一种适用于高阶数字滤波的滤波系统及方法。

【背景技术】
[0002]数字滤波是很多数字信号处理系统的基本组成,它们广泛的应用于通信、信号处理、图像处理、模式识别等很多领域。目前有多种实现FIR滤波的方法,诸如使用DSP芯片、专用集成电路ASIC以及FPGA等,利用DSP来实现将会受限于运行速度以及较漫长的开发时间,ASIC将会受限于开发周期、成本以及通用性等问题,而FPGA的实现将会平衡这些因素,由于其开发周期短、实现方式容易、通用性强等特点,在很多领域都有着广泛的应用,并且发展潜力巨大。
[0003]FIR滤波主要的设计方法就是利用乘累加来实现。在一些高端应用场景中需要在FPGA内部实现采样速率达到2G — 3G的FIR滤波。若采用串行处理的方式,在FPGA内部仍然无法实现超宽带高速数字滤波,因此必须改进数字滤波的实现结构,采用并行方式,降低对运算单元的速率要求,从而可以在FPGA等硬件中得以实现。
[0004]传统并行FIR数字滤波在FPGA中的实现方式十分复杂,数字信号并行N路进入FPGA,在FPGA内部通过数据的重排列组合形成N路新的并行序列,再与滤波器系数通过乘加运算,输出并行的N路数据,即滤波器的并行输出数据。这种算法在FPGA内部的信号重组逻辑十分复杂,且并行N路与滤波器系数的乘加运算需要使用大量FPGA内部的乘法单元,资源开销大,工程上不易实现。


【发明内容】

[0005]本发明要解决的技术问题是提供一种实现方式更简单的高阶数字滤波系统及方法。
[0006]本发明采用的技术方案如下:一种高阶数字滤波系统,包括数字信号并行输入模块和滤波器系数输入模块,其特征在于,还包括:
滤波系数时频变换模块,以向量为滤波器元素的K-1阶滑动滤波器;其中,K=l,2,3,…; 短时滑帧处理模块,形成含2Ν个离散数据的时域帧信号;其中N为N路并行数据;
FFT定点运算模块,将短时滑帧处理所得的每帧数据做2Ν点数的FFT ;
帧结构滑动滤波模块,将FFT定点运算输出的每一帧数据滑动进入滑动滤波器并输出;
IFFT定点运算模块,将滑动滤波器输出的每一帧数据通过IFFT变换转换为时域数据; 数据截取及输出模块,将IFFT定点运算输出的每帧数据只保留后半帧数据输出。
[0007]—种高阶数字滤波方法,具体方法为,数字信号并行N路进入FPGA,滤波器系数通过时频变换,形成以向量为各元素的滑动滤波器;同时,并行数据在FPGA中通过短时滑帧处理,形成含2Ν个离散数据的时域帧信号,实时、并行的做FFT定点运算,形成含2Ν个离散数据的频域帧信号;频域帧信号再经过帧结构滑动滤波,完成含2N个频域数据的滤波器帧输出,每帧数据再实时流水地通过IFFT定点运算,完成频域帧信号的时域变换,最后经数据截取及输出后半帧时域信号;其中,
滤波器系数时频变换的具体方法为:将KN-1阶滤波器系数按每N个系数后面补N个O,再通过2N点DFT,形成滤波器的K个元素,且每个元素均为2N点的向量;其中,K=I, 2,3,…;短时滑帧处理的具体方法为:并行N路数据,在FPGA内部缓存一帧,将当前时钟周期缓存的数据与当前时钟周期到来的数据按采样先后顺序组成含2N个数据的一帧数;
FFT定点运算的具体方法为:将短时滑帧处理所得的每帧数据做2N点数的FFT ;
帧结构滑动滤波的具体方法为:将FFT定点运算实时流水输出的每一帧数据,滑动进入通过由滤波器系数时频变换所得的以向量为元素的滑动滤波器;
IFFT定点运算的具体方法为:将帧结构滑动滤波输出的每帧数据,通过IFFT变换,转换为时域数据;
数据截取及输出的具体方法为:将IFFT定点运算输出的每帧数据只保留后半帧数据,这就使得并行N路输入,并行N路输出。
[0008]所述2N点数的FFT通过η次蝶形计算得到,其中,N为2的η次方。
[0009]所述IFFT变换通过蝶形计算得到。
[0010]与现有技术相比,本发明的有益效果是:对于并行N路输入高阶数字滤波的FPGA实现方法,本发明的方法较传统通过序列重组,并行经过N路高阶滤波器的实现架构,其算法架构更加简单、合理,资源开销更少,工程可实现性更高。

【专利附图】

【附图说明】
[0011]图1为本发明其中一实施例的数字处理架构框图。
[0012]图2为本发明其中一实施例的FFT及IFFT蝶形算法示意图。
[0013]图3为本发明其中一实施例的帧结构滑动滤波处理结构流程框图。
[0014]图4为本发明其中一实施例的滤波器系数时频变换处理流程框图。
[0015]图5为本发明采用基于帧结构的并行高阶低通滤波方法所得的高斯白噪声频域响应效果图。
[0016]图6为采用传统并行高阶低通滤波方法所得的高斯白噪声频域响应效果图。
[0017]图7为本发明采用基于帧结构的并行高阶带通滤波方法所得的高斯白噪声频域响应效果图。
[0018]图8为采用传统并行高阶带通滤波方法所得的高斯白噪声频域响应效果图。

【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0020]本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0021]本具体实施例以4路量化的高斯白噪声数据并行通过63阶的FIR滤波处理为例进行具体说明。
[0022]如图1所示的,高阶数字滤波系统,采用的具体滤波处理方法为,数字信号并行N路进入FPGA,滤波器系数通过时频变换,形成以向量为各元素的滑动滤波器;同时,并行数据在FPGA中通过短时滑帧处理,形成含2N个离散数据的时域帧信号,实时、并行的做FFT定点运算,形成含2N个离散数据的频域帧信号;频域帧信号再经过帧结构滑动滤波,完成含2N个频域数据的滤波器帧输出,每帧数据再实时流水地通过IFFT定点运算,完成频域帧信号的时域变换,最后经数据截取及输出后半帧时域信号,即为最终的滤波器输出结果。较传统算法,本发明算法架构更加简单、合理,资源开销更少,工程可实现性更高。
[0023]滤波器系数时频变换的具体方法为:将KN-1阶滤波器系数按每N个系数后面补N个0,再通过2N点DFT,形成滤波器的K个元素,且每个元素均为2N点的向量;这样就形成了以向量为滤波器元素的K-1阶滑动滤波器。其中,K=l,2,3,…。在本具体实施例中,如图4所示,63阶滤波系数重组为16组,每组4个点。将每组4个点后补4个O,做8点的DFT,所得16组数据,即构成帧结构滑动滤波器的16个元素,且每个元素为8点的向量。
[0024]短时滑帧处理的具体方法为:并行N路数据,在FPGA内部缓存一巾贞,将当前时钟周期缓存的数据与当前时钟周期到来的数据按采样先后顺序组成含2Ν个数据的一帧数,这样流水形成的每一帧的前半帧数据与前一帧的后半帧数据相同。在本具体实施例中,4路并行数据在FPGA内部缓存一个时钟周期的数据,每一个时钟周期的输出为上一时钟周期缓存的4个量化数据及当前时钟周期到来的4个量化数据,按采样先后顺序组成的一帧8个数,这种变换使得前一帧数据的后半帧与后一帧数据的前半帧数据相同。这种滑半帧处理即得到该步骤的输出。
[0025]FFT定点运算的具体方法为:将短时滑帧处理所得的每帧数据做2Ν点数的FFT。在本具体实施例中,所述2Ν点数的FFT通过η次蝶形计算得到,其中,N为2的η次方。通常由ADC量化的N路数据,N为2的η次方,因此2Ν点的FFT可以通过η次蝶形计算得到,且FPGA的资源消耗量小,算法可实现性高。在本具体实施例中,将每帧8个量化数据经8点的FFT,得到时域信号的频域变换。图2所示为8点FFT的蝶形算法。
[0026]帧结构滑动滤波的具体方法为:将FFT定点运算实时流水输出的每一帧数据,滑动进入通过由滤波器系数时频变换所得的以向量为元素的滑动滤波器。每一帧数据各元素和滤波器各向量组元素对应相乘,再对应相加,流水输出含2Ν个数据的每一帧数。在本具体实施例中,经FFT处理得到的每帧8点的频域数据再经帧结构滑动滤波处理,通过如图3的向量乘累加计算,输出的每帧8点数据即为帧结构滑动滤波的输出。帧结构滑动滤波器元素均为向量,且每个向量含8个系数,滤波器阶数与原始高阶滤波器阶数相关。
[0027]IFFT定点运算的具体方法为:将帧结构滑动滤波输出的每帧数据,通过IFFT变换,转换为时域数据。在本具体实施例中,所述IFFT变换通过蝶形计算得到。同FFT定点运算类似,只是IFFT变化蝶形运算是加权系数成共轭关系。在本具体实施例中,由帧结构滑动滤波输出的数据经8点IFFT定点运算,得到时域信号。图2所示为8点的IFFT蝶形算法,与FFT的区别在于加权因子的计算略有不同。
[0028]数据截取及输出的具体方法为:将IFFT定点运算输出的每帧数据只保留后半帧数据,这就使得并行N路输入,并行N路输出。将IFFT定点运算得到的每帧8点数据,只保留后半帧的4个点,即为最终的滤波器并行输出,且并行4路输入,并行4路输出,满足数据吞吐率的一致性。
[0029]由图5—图8的实验结果可得到这样的结论:不论是实现并行低通数字滤波还是并行带通数字滤波,本发明采用基于帧结构的并行数字滤波处理架构,所得滤波器频域响应特性和传统滤波架构所得频域响应特性几乎相同。而本发明采用帧形式的滑动滤波处理方法,相比于传统通过序列重组的方法,在实现方式上更为简单,消耗的系统资源更少,工程上更易实现。
【权利要求】
1.一种高阶数字滤波系统,包括数字信号并行输入模块和滤波器系数输入模块,其特征在于,还包括: 滤波系数时频变换模块,以向量为滤波器元素的K-1阶滑动滤波器;其中,K=l,2,3,…; 短时滑帧处理模块,形成含2Ν个离散数据的时域帧信号;其中N为N路并行数据; FFT定点运算模块,将短时滑帧处理所得的每帧数据做2Ν点数的FFT ; 帧结构滑动滤波模块,将FFT定点运算输出的每一帧数据滑动进入滑动滤波器并输出; IFFT定点运算模块,将滑动滤波器输出的每一帧数据通过IFFT变换转换为时域数据; 数据截取及输出模块,将IFFT定点运算输出的每帧数据只保留后半帧数据输出。
2.一种高阶数字滤波方法,具体方法为,数字信号并行N路进入FPGA,滤波器系数通过时频变换,形成以向量为各元素的滑动滤波器;同时,并行数据在FPGA中通过短时滑帧处理,形成含2Ν个离散数据的时域帧信号,实时、并行的做FFT定点运算,形成含2Ν个离散数据的频域帧信号;频域帧信号再经过帧结构滑动滤波,完成含2Ν个频域数据的滤波器帧输出,每帧数据再实时流水地通过IFFT定点运算,完成频域帧信号的时域变换,最后经数据截取及输出后半帧时域信号;其中, 滤波器系数时频变换的具体方法为:将KN-1阶滤波器系数按每N个系数后面补N个O,再通过2Ν点DFT,形成滤波器的K个元素,且每个元素均为2Ν点的向量;其中,K=I, 2,3,…;短时滑帧处理的具体方法为:并行N路数据,在FPGA内部缓存一帧,将当前时钟周期缓存的数据与当前时钟周期到来的数据按采样先后顺序组成含2Ν个数据的一帧数; FFT定点运算的具体方法为:将短时滑帧处理所得的每帧数据做2Ν点数的FFT ; 帧结构滑动滤波的具体方法为:将FFT定点运算实时流水输出的每一帧数据,滑动进入通过由滤波器系数时频变换所得的以向量为元素的滑动滤波器; IFFT定点运算的具体方法为:将帧结构滑动滤波输出的每帧数据,通过IFFT变换,转换为时域数据; 数据截取及输出的具体方法为:将IFFT定点运算输出的每帧数据只保留后半帧数据,这就使得并行N路输入,并行N路输出。
3.根据权利要求2所述的滤波方法,所述2Ν点数的FFT通过η次蝶形计算得到,其中,N为2的η次方。
4.根据权利要求3所述的滤波方法,所述IFFT变换通过蝶形计算得到。
【文档编号】H03H17/02GK104333348SQ201410694085
【公开日】2015年2月4日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】刘宪军, 陈俊霖, 喻令, 向川云 申请人:中国电子科技集团公司第二十九研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1