CN109412556A - 一种基于fpga的多路并行数据fir滤波实现方法 - Google Patents

一种基于fpga的多路并行数据fir滤波实现方法 Download PDF

Info

Publication number
CN109412556A
CN109412556A CN201811252556.4A CN201811252556A CN109412556A CN 109412556 A CN109412556 A CN 109412556A CN 201811252556 A CN201811252556 A CN 201811252556A CN 109412556 A CN109412556 A CN 109412556A
Authority
CN
China
Prior art keywords
din
buffer
data
delay
fir
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201811252556.4A
Other languages
English (en)
Inventor
陈晖�
张晓峰
陈伟峰
王东锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Optical Electrical Communication Technology Co Ltd
Original Assignee
Tianjin Optical Electrical Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Optical Electrical Communication Technology Co Ltd filed Critical Tianjin Optical Electrical Communication Technology Co Ltd
Priority to CN201811252556.4A priority Critical patent/CN109412556A/zh
Publication of CN109412556A publication Critical patent/CN109412556A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/0081Theoretical filter design of FIR filters

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Abstract

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

Description

一种基于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滤波实现方法。
以下对本方法再进一步举例详细说明:
一、将多路并行数据进行移位存储
将同时收到的多路数据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深度为8,初始时din_buffer[0]-din_buffer[7]值为0,FPGA一个时钟周期收到4个并行数据。时钟周期0收到D0,D1,D2,D3,按上述移位存储得到din_buffer为{0,0,0,0,D0,D1,D2,D3};时钟周期1收到D4,D5,D6,D7,按上述移位存储得到din_buffer为{D0,D1,D2,D3,D4,D5,D6,D7};时钟周期2收到D8,D9,D10,D11,按上述移位存储得到din_buffer为{D4,D5,D6,D7,D8,D9,D10,D11};时钟周期3收到D12,D13,D14,D15,按上述移位存储得到din_buffer为{D8,D9,D10,D11,D12,D13,D14,D15}。
二、将移位存储数据进行延迟打拍
将步骤一中的din_buffer作为一个整体进行延迟打拍,从而得到延迟打拍后的din_buffer_d0,din_buffer_d1,...,din_buffer_dm-1,m表示将din_buffer延迟打m拍。举例说明为:时钟周期3时din_buffer为{D8,D9,D10,D11,D12,D13,D14,D15},时钟周期4得到打1拍的din_buffer_d0亦为{D8,D9,D10,D11,D12,D13,D14,D15},时钟周期5得到打2拍的din_buffer_d1亦为{D8,D9,D10,D11,D12,D13,D14,D15},时钟周期6得到打3拍的din_buffer_d2亦为{D8,D9,D10,D11,D12,D13,D14,D15},时钟周期7得到打4拍的din_buffer_d3亦为{D8,D9,D10,D11,D12,D13,D14,D15}。
三、将延迟打拍数据与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)为计算得到的滤波后数据。举例说明为:假设滤波器系数个数为4,时钟周期3亦同时收到4个数据D12,D13,D14,D15,经过FIR阵列运算后相应的得到4个滤波结果y12,y13,y14,y15。过程为,取出时钟周期4的din_buffer_d0[3]=D12与滤波器系数h(0)相乘,得到中间结果为D12*h(0);取出时钟周期5的din_buffer_d1[4]=D11与滤波器系数h(1)相乘再与之前中间结果D12*h(0)相加,得到D12*h(0)+D11*h(1);取出时钟周期6的din_buffer_d2[5]=D10与滤波器系数h(2)相乘再与之前中间结果D12*h(0)+D11*h(1)相加,得到D12*h(0)+D11*h(1)+D10*h(2);取出时钟周期7的din_buffer_d3[6]=D9与滤波器系数h(3)相乘再与之前中间结果D12*h(0)+D11*h(1)+D10*h(2)相加,得到D12*h(0)+D11*h(1)+D10*h(2)+D9*h(3)。经过这样的运算后便得到一路的滤波结果y12=D12*h(0)+D11*h(1)+D10*h(2)+D9*h(3)。由于FPGA的并行处理特性,按上述过程,同时从相应din_buffer_d中取出数据并与滤波器系数做乘加运算,便并行的得到其余路的滤波结果:
y13=D13*h(0)+D12*h(1)+D11*h(2)+D10*h(3) y14=D14*h(0)+D13*h(1)+D12*h(2)+D11*h(3) y15=D15*h(0)+D14*h(1)+D13*h(2)+ D12*h(3)。

Claims (2)

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)为计算得到的滤波后数据。
2.根据权利要求1所述的一种基于FPGA的多路并行数据FIR滤波实现方法,其特征在于,采用的FPGA芯片型号为Xilinx公司的XCKU040-FFVA1156-2-E。
CN201811252556.4A 2018-10-25 2018-10-25 一种基于fpga的多路并行数据fir滤波实现方法 Withdrawn CN109412556A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811252556.4A CN109412556A (zh) 2018-10-25 2018-10-25 一种基于fpga的多路并行数据fir滤波实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811252556.4A CN109412556A (zh) 2018-10-25 2018-10-25 一种基于fpga的多路并行数据fir滤波实现方法

Publications (1)

Publication Number Publication Date
CN109412556A true CN109412556A (zh) 2019-03-01

Family

ID=65469687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811252556.4A Withdrawn CN109412556A (zh) 2018-10-25 2018-10-25 一种基于fpga的多路并行数据fir滤波实现方法

Country Status (1)

Country Link
CN (1) CN109412556A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114063926A (zh) * 2021-11-22 2022-02-18 上海创远仪器技术股份有限公司 基于fpga硬件实现数据间插值处理的方法、装置、处理器及其计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102983839A (zh) * 2012-12-05 2013-03-20 天津光电通信技术有限公司 一种基于fpga实现gmsk信号发生器的方法
CN203617974U (zh) * 2013-10-21 2014-05-28 京微雅格(北京)科技有限公司 一种基于fpga的可配置系数的滤波器及电子设备
CN105227158A (zh) * 2015-11-13 2016-01-06 中国空气动力研究与发展中心低速空气动力研究所 一种高精度信号实时滤波器
CN106803750A (zh) * 2017-01-12 2017-06-06 中国电子科技集团公司第十四研究所 一种多通道流水fir滤波器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102983839A (zh) * 2012-12-05 2013-03-20 天津光电通信技术有限公司 一种基于fpga实现gmsk信号发生器的方法
CN203617974U (zh) * 2013-10-21 2014-05-28 京微雅格(北京)科技有限公司 一种基于fpga的可配置系数的滤波器及电子设备
CN105227158A (zh) * 2015-11-13 2016-01-06 中国空气动力研究与发展中心低速空气动力研究所 一种高精度信号实时滤波器
CN106803750A (zh) * 2017-01-12 2017-06-06 中国电子科技集团公司第十四研究所 一种多通道流水fir滤波器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114063926A (zh) * 2021-11-22 2022-02-18 上海创远仪器技术股份有限公司 基于fpga硬件实现数据间插值处理的方法、装置、处理器及其计算机可读存储介质
CN114063926B (zh) * 2021-11-22 2024-03-15 上海创远仪器技术股份有限公司 基于fpga硬件实现数据间插值处理的方法、装置、处理器及其计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN111694027B (zh) 超大动态扩频信号捕获方法与装置
WO2018188228A1 (zh) 高精度频率测量系统及方法
CN107196881B (zh) 一种高动态脉冲成形信号模拟方法和装置
CN104201991B (zh) 实现捷变频米波雷达的数字下变频系统
CN105911351B (zh) 基于dsp的实时zfft方法
CN111600821B (zh) 一种基于分数傅里叶变换域的线性调频信号稀疏采样与重建方法
CN101126772A (zh) 一种示波器的高速信号重构方法
CN208190613U (zh) 一种基于fpga实现的分数阶积分器
CN109412556A (zh) 一种基于fpga的多路并行数据fir滤波实现方法
CN108918965A (zh) 多通道信号相位、幅度高精度测量方法
CN110784229B (zh) 一种基于快速傅里叶变换的带有模拟滤波器补偿的mwc后端信号重构方法
CN106603036A (zh) 一种基于低阶内插滤波器的自适应时延估计方法
CN101919706B (zh) 抽取滤波的方法及装置
US20070067377A1 (en) Methods, devices, and programs for designing a digital filter and for generating a numerical sequence of desired frequency characteristics
CN108696468B (zh) 一种基于欠采样的二相编码信号的参数估计方法
WO2022253214A1 (zh) 量子态信息处理系统、量子测控系统、量子计算机
CN109951173A (zh) 一种多路并行输入并行处理的fir滤波方法及滤波器
CN108616265A (zh) 一种基于五模余数基的rns dwt滤波器组的电路结构
CN116111982A (zh) 一种基于fpga的iir滤波方法、存储介质及装置
WO2003047097A1 (fr) Procede de conception d&#39;un filtre numerique, appareil de projet, programme de projet pour la realisation d&#39;un tel filtre, et filtre numerique y relatif
CN107786476A (zh) 一种滤波器、时域均衡器以及接收机
CN104579238B (zh) 应用于全数字接收机的基于Schur算法的插值滤波器
CN110808935B (zh) 线性调频信号自相关运算的精确高效实现方法及装置
CN105656451B (zh) 一种基于频域处理的扩频信号匹配滤波系统及方法
CN106160701A (zh) 多通道数据采集系统、陷波器以及陷波器的设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20190301

WW01 Invention patent application withdrawn after publication