一种基于FPGA的多路并行数据FIR滤波实现方法技术

技术编号:20492729 阅读:22 留言:0更新日期:2019-03-02 22:56
本发明专利技术公开了一种基于FPGA的多路并行数据FIR滤波实现方法。该方法有如下步骤:1、将多路并行数据进行移位存储;2、将移位存储数据进行延迟打拍;3、将延迟打拍数据与FIR相应系数进行并行乘加运算;运算结果即为滤波后数据。该方法在FPGA内部实现了并行FIR阵列,以同时处理多路并行的数据。当采样信号带宽很大,采样率很高,FPGA必须在一个时钟周期接收多个采样点时,要对接收的数据实时进行FIR滤波处理,采用本发明专利技术提供的方法可很好的实现功能与性能要求。在大宽带数字信号处理、高速数字通信领域有广泛的应用价值。

A Method of FIR Filtering for Multiplex Parallel Data Based on FPGA

The invention discloses a method for realizing multi-channel parallel data FIR filtering based on FPGA. The method has the following steps: 1. shifting and storing multi-channel parallel data; 2. delaying beating the shifted data; 3. multiplying and adding the delayed beating data and the corresponding FIR coefficients in parallel; the result of the operation is the filtered data. This method implements parallel FIR arrays in the FPGA to process multi-channel parallel data at the same time. When the sampling signal bandwidth is large and the sampling rate is high, when the FPGA must receive multiple sampling points in a clock cycle, the received data should be processed by FIR filtering in real time. The method provided by the invention can achieve the function and performance requirements very well. It has wide application value in the field of large-band digital signal processing and high-speed digital communication.

【技术实现步骤摘要】
一种基于FPGA的多路并行数据FIR滤波实现方法
本专利技术涉及数字通信、数字信号处理系统中的FIR滤波器,尤其涉及一种基于FPGA的多路并行数据FIR滤波实现方法。
技术介绍
FIR滤波器又称有限长单位脉冲响应滤波器,是数字信号处理系统中最基本的单元。它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位脉冲响应是有限长的,因而由它组成的系统是稳定的。这些特性都使FIR滤波器在通信、图像处理、模式识别等领域有着广泛的应用。此外,FPGA有着规整的内部逻辑阵列、专用硬核乘法器和丰富的连线资源,且相对于串行运算为主的通用DSP芯片来说,其并行性和可扩展性更好,这都使FPGA特别适合于数字信号处理任务,从而设计出高速的FIR数字滤波器。传统的FIR滤波器往往针对采样率较低的情形,此时FPGA一个时钟周期收到一个数据点。当采样率很高,处理大带宽的信号时,通常的情形是FPGA一个时钟周期会收到多个数据点,此时需在FPGA内部设计并行的FIR滤波器阵列,以处理收到的多路并行数据。
技术实现思路
鉴于现在技术存在的问题,本专利技术提供一种基于FPGA的多路并行数据FIR滤波实现方法。本专利技术的目的就是要解决上述技术中存在的问题,采用FPGA来完成大带宽信号的多路并行数据FIR滤波。本方法在FPGA内部实现了并行FIR阵列,以同时处理多路并行的数据。当采样信号带宽很大,采样率很高,FPGA必须在一个时钟周期接收多个采样点时,通过本方法可对接收的数据实时进行FIR滤波处理。本专利技术采取的技术方案是:一种基于FPGA的多路并行数据FIR滤波实现方法,其特征在于,有如下步骤:一、将多路并行数据进行移位存储将同时收到的多路数据D0,D1,...,Dn看作一个整体,并按D0存在din_buffer[n]中,D1存在din_buffer[n-1]中,...,Dn存在din_buffer[0]中的顺序进行缓存;同时,将din_buffer以并行数据数进行间隔移位,即din_buffer[0]移位到din_buffer[n+1],din_buffer[1]移位到din_buffer[n+2],...,din_buffer[n]移位到din_buffer[2n+1]。二、将移位存储数据进行延迟打拍将步骤一中的din_buffer作为一个整体进行延迟打拍,从而得到延迟打拍后的din_buffer_d0,din_buffer_d1,...,din_buffer_dm-1,m表示将din_buffer延迟打m拍。三、将延迟打拍数据与FIR相应系数进行并行乘加运算从步骤二的各din_buffer_d中取出与滤波器系数对应的数据做乘加运算,即用FIR阵列对并行数据进行滤波处理;FIR滤波数学计算公式为:y(n)=h(0)x(n)+h(1)x(n-1)+……+h(m)x(n-m),其中x(n)为数据采样点,h(m)为滤波器系数,y(n)为计算得到的滤波后数据。本专利技术所产生的有益效果是:丰富了传统FIR滤波器可处理的信号带宽范围,当采样信号带宽很大,采样率很高时,可采用本方法处理大带宽信号的滤波问题。采用本专利技术提供的方法可很好的实现功能与性能要求。在大宽带数字信号处理、高速数字通信领域有广泛的应用价值。附图说明图1为传统FIR滤波器结构示意图;图2为din_buffer的数据存储与移位示意图;图3为din_buffer_d的数据延迟打拍示意图;图4为FIR滤波器阵列示意图。具体实施方式以下结合附图对本专利技术做进一步说明:基于FPGA的多路并行数据是来自同一信号的采样点数据。前端AD对信号进行采样,时刻1采样数据点1,时刻2采样数据点2,......,时刻N采样数据点N,如果采样率比较低,FPGA便能以较低时钟频率依次接收这些采样点数据;而当采样率很高时,FPGA不能以很高的时钟频率接收这些数据,只能一个时钟周期同时接收N个采样点,此即多路并行数据的含义。本方法采用的FPGA芯片型号为Xilinx公司的XCKU040-FFVA1156-2-E。图1示意了FIR滤波器的一般性结构图,是如下数学公式的直观显示。各个采样点数据与对应系数作乘加运算,从而达到滤波效果。滤波器系数决定了FIR滤波器特性。数学公式为,y(n)=h(0)x(n)+h(1)x(n-1)+……+h(m)x(n-m),其中x(n)为数据采样点,h(m)为滤波器系数,y(n)为计算得到的滤波后数据。当采样信号带宽很大,需要很高的采样率时,FPGA必须在一个时钟周期接收多个采样点,此时FPGA内部逻辑需要并行的FIR滤波阵列来处理采样数据。图2至图4分别对应本方法的步骤一至步骤三。方便起见,以下按一个时钟周期接收4个采样点数据,FIR滤波器系数个数为4,对本专利技术进行阐述。但本专利技术并不对并行接收采样点个数以及FIR滤波器系数个数作限制,且并行接收采样点个数与系数个数之间也没有必然联系,完全取决于采样率与滤波器性能要求。首先,接收的4路并行数据按图2方式进行存储与移位,初始时din_buffer(数据缓存寄存器)清零。每个时钟周期din_buffer更新一次,其存储移位的伪代码为,din_buffer[7:0]<={din_buffer[3:0],D4n,D4n+1,D4n+2,D4n+3},n=0,1,2,...,n值对应不同的周期。其次,将din_buffer延迟打拍,如图3示意了在din_buffer内的数据为{D8,D9,D10,D11,D12,D13,D14,D15}时延迟打4拍的情形,得到din_buffer_d0,din_buffer_d1,din_buffer_d2,din_buffer_d3。相应操作的伪代码为,din_buffer_d0<=din_buffer;,din_buffer_d1<=din_buffer_d0,din_buffer_d2<=din_buffer_d1,din_buffer_d3<=din_buffer_d2。其中d是delay的缩写,表示数据延迟,dm-1表示延迟m拍。最后,将din_buffer_d中的数据取出,并与对应滤波器系数按图4的方式作乘加运算。下面结合图2至图4对这一过程进行说明。时钟周期3,FPGA同时收到4路数据{D12,D13,D14,D15},并按图2方式存入din_buffer中,同时din_buffer进行移位操作,得到din_buffer的数据为{D8,D9,D10,D11,D12,D13,D14,D15}。然后将din_buffer延迟打拍,得到时钟周期4的din_buffer_d0,时钟周期5的din_buffer_d1,时钟周期6的din_buffer_d2,时钟周期7的din_buffer_d3,如图3中所示。图4中有4个并行处理的FIR滤波器,对FPGA同时收到的4个样点数据{D12,D13,D14,D15}进行并行运算,进而得到4个运算结果,即4个滤波后数据{y12,y13,y14,y15}。由于FPGA内部逻辑是流水线处理的,随着每个时钟周期收到4个采样数据,经过几个周期的延迟便流水的得到相应的滤波结果,此即基于FPGA的多路并行数据FIR滤波实现方法。以下对本方法再进一步本文档来自技高网...

【技术保护点】
1. 一种基于FPGA的多路并行数据FIR滤波实现方法,其特征在于,有如下步骤:一、将多路并行数据进行移位存储将同时收到的多路数据D0,D1,...,Dn看作一个整体,并按D0存在din_buffer[n]中,D1存在din_buffer[n‑1]中,...,Dn存在din_buffer[0]中的顺序进行缓存;同时,将din_buffer以并行数据数进行间隔移位,即din_buffer[0]移位到din_buffer[n+1],din_buffer[1]移位到din_buffer[n+2],...,din_buffer[n]移位到din_buffer[2n+1];二、将移位存储数据进行延迟打拍将步骤一中的din_buffer作为一个整体进行延迟打拍,从而得到延迟打拍后的din_buffer_d0,din_buffer_d1,...,din_buffer_dm‑1,m表示将din_buffer延迟打m拍;三、将延迟打拍数据与FIR相应系数进行并行乘加运算从步骤二的各din_buffer_d中取出与滤波器系数对应的数据做乘加运算,即用FIR阵列对并行数据进行滤波处理;FIR滤波数学计算公式为:y(n)=h(0)x(n)+h(1)x(n‑1)+……+h(m)x(n‑m),其中x(n)为数据采样点,h(m)为滤波器系数,y(n)为计算得到的滤波后数据。...

【技术特征摘要】
1.一种基于FPGA的多路并行数据FIR滤波实现方法,其特征在于,有如下步骤:一、将多路并行数据进行移位存储将同时收到的多路数据D0,D1,...,Dn看作一个整体,并按D0存在din_buffer[n]中,D1存在din_buffer[n-1]中,...,Dn存在din_buffer[0]中的顺序进行缓存;同时,将din_buffer以并行数据数进行间隔移位,即din_buffer[0]移位到din_buffer[n+1],din_buffer[1]移位到din_buffer[n+2],...,din_buffer[n]移位到din_buffer[2n+1];二、将移位存储数据进行延迟打拍将步骤一中的din_buffer作为一个整体进行延迟打拍,从而得到...

【专利技术属性】
技术研发人员:陈晖张晓峰陈伟峰王东锋
申请(专利权)人:天津光电通信技术有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1