CN108832908A - 基于fpga的多路高速滤波器实现方法 - Google Patents
基于fpga的多路高速滤波器实现方法 Download PDFInfo
- Publication number
- CN108832908A CN108832908A CN201810501673.3A CN201810501673A CN108832908A CN 108832908 A CN108832908 A CN 108832908A CN 201810501673 A CN201810501673 A CN 201810501673A CN 108832908 A CN108832908 A CN 108832908A
- Authority
- CN
- China
- Prior art keywords
- signal
- road
- fpga
- delay
- parts
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M9/00—Parallel/series conversion or vice versa
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H2017/0072—Theoretical filter design
- H03H2017/0081—Theoretical filter design of FIR filters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Filters That Use Time-Delay Elements (AREA)
Abstract
本发明特别涉及一种基于FPGA的多路高速滤波器实现方法,包括如下步骤:(A)将输入信号s(n)串并转换为M路信号s0,s1,…,sM‑1;(B)将串并转换后的M路信号分为M份,每一份有M路信号;(C)将所有M份M2路信号延时P个单元并将延时数据输出,其中P=N/M,N为滤波器系数个数;(D)每一份M路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;(E)将M份共M个结果数据按顺序输出即可获得当前时刻的输出信号。将一个串行FIR滤波器设计为多路进行,将前级输入的M路信号划分为具有均匀采样延时的M个部分,对每一部分进行乘累加操作后输出,然后将M个部分的M路输出合并就可以获得多路高速滤波器的输出,该方式下输入与输出均可实现实时的连续性,非常方便。
Description
技术领域
本发明涉及数字信号处理技术领域,特别涉及一种基于FPGA的多路高速滤波器实现方法。
背景技术
FIR(Finite Impulse Response)滤波器即有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
随着技术的发展,芯片采样率越来越高,一般都上GHz,而FPGA的系数时钟速率相对比较低,一般都不会超过400MHz。当信号采样率远大于FPGA运行时钟频率时,由于芯片限制无法再采用传统的方式对输入信号进行单路滤波。因此,要在FPGA中实现运算速率较高的FIR滤波器,只能采用并行结构以降低FPGA的工作频率。
发明内容
本发明的目的在于提供一种基于FPGA的多路高速滤波器实现方法,能够实现高采样率下的实时滤波。
为实现以上目的,本发明采用的技术方案为:一种基于FPGA的多路高速滤波器实现方法,包括如下步骤:(A)将输入信号s(n)串并转换为M路信号s0,s1,…,sM-1,其中M=fS-ADC/fS-FPGA,fS-ADC为输入信号采样率,fS-FPGA为FPGA的工作频率;(B)将串并转换后的M路信号分为M份,每一份有M路信号:第1份M路信号,为原始M路信号的复制,顺序为s0/s1/…/sM-1;第2份M路信号,将信号s0延时并与s1/…/sM-1交换位置,顺序为……;第M份M路信号,将信号s0/s1/…/sM-2延时并与sM-1交换位置,顺序为其中,指对第m路信号进行延时;(C)将所有M份M2路信号延时P个单元并将延时数据输出,其中P=N/M,N为滤波器系数个数;(D)每一份M路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;(E)将M份共M个结果数据按顺序输出即可获得当前时刻的输出信号。
与现有技术相比,本发明存在以下技术效果:这里通过ADC芯片的高采样率和FPGA的低运算时钟之间的关系将一个串行FIR滤波器设计为多路进行,将前级输入的M路信号划分为具有均匀采样延时的M个部分,通过对每一部分进行乘累加操作后输出,然后将M个部分的M路输出合并就可以获得多路高速滤波器的输出,这种方式下输入与输出均可实现实时的连续性,非常方便。
附图说明
图1是直接性FIR滤波器结构图;
图2是转置型FIR滤波器结构图;
图3是FPGA中高速信号多路输入方式示意图;
图4a-4d为多路并行滤波、输出示意图;
图5a-5d分别是图4a-4d在FPGA中的数据流程图。
具体实施方式
下面结合图1至图5,对本发明做进一步详细叙述。
一种基于FPGA的多路高速滤波器实现方法,包括如下步骤:(A)将输入信号s(n)串并转换为M路信号s0,s1,…,sM-1,其中M=fS-ADC/fS-FPGA,fS-ADC为输入信号采样率,fS-FPGA为FPGA的工作频率;(B)将串并转换后的M路信号分为M份,每一份有M路信号:
第1份M路信号,为原始M路信号的复制,顺序为s0/s1/…/sM-1;
第2份M路信号,将信号s0延时并与s1/…/sM-1交换位置,顺序为
……
第M份M路信号,将信号s0/s1/…/sM-2延时并与sM-1交换位置,顺序为
其中,指对第m路信号进行延时;(C)将所有M份M2路信号延时P个单元并将延时数据输出,其中P=N/M,N为滤波器系数个数;(D)每一份M路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;(E)将M份共M个结果数据按顺序输出即可获得当前时刻的输出信号。这里通过ADC芯片的高采样率和FPGA的低运算时钟之间的关系将一个串行FIR滤波器设计为多路进行,将前级输入的M路信号划分为具有均匀采样延时的M个部分,通过对每一部分进行乘累加操作后输出,然后将M个部分的M路输出合并就可以获得多路高速滤波器的输出,这种方式下输入与输出均可实现实时的连续性,非常方便。
优选地,所述的步骤C中,若滤波器系数个数N不满足M的整数倍时,将滤波器系数通过补0实现滤波器系数个数为M的整数倍。步骤C中,P的取值为正整数,而M是固定的,因此滤波器系数个数N不一定正好满足公式P=N/M,此时就需要通过补0的方式,来保证P的取值为正整数。
具体地,下面以四路信号为例来详细的阐述下实现方法:所述的输入信号采样率fS-ADC=1GHz,FPGA的工作频率fS-FPGA=250MHz,滤波器系数个数为8,步骤A-E变为:(A1)将输入信号s(n)串并转换为4路信号s0,s1,s2,s3;(B1)将串并转换后的4路信号分为4份,每一份有4路信号:
第1份4路信号,为原始4路信号的复制,顺序为s0/s1/s2/s3;
第2份4路信号,将信号s0延时并与s1/s2/s3交换位置,顺序为
第3分4路信号,将信号s0/s1延时并与s2/s3交换位置,顺序为
第4份4路信号,将信号s0/s1/s2延时并与s3交换位置,顺序为
其中,指对第m路信号进行延时;(C1)将所有4份16路信号延时2个单元并将延时数据输出;(D1)每一份4路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;(E)将4份共4个结果数据按顺序输出即可获得当前时刻的输出信号。这里的滤波器系数个数正好为8个,如果为7个,就需要进行补0。
下面从原理上进行详细阐述,以解释上述步骤实现的理由。
假设原始序列为s(n),冲击响应序列为h(n),则滤波器结果为s(n)与h(n)的卷积,即:
由于h(n)为有限长冲击响应,且长度为N即:
h(m)=0;当m<0或者m>N-1时
因此:
FIR滤波器的核心运算是卷积,图1所示的为直接型FIR滤波器结构图,图2为转置型FIR滤波器的结构。两种滤波器结构都是利用串行结构来实现的,串行结构的滤波器,其数据吞吐量受FPGA时钟的限制,无法做到太高,不利于滤波器的高速数字信号处理实现。本发明是在图2转置型FIR滤波器的结构的基础上进行滤波器的并行设计,以满足高速运算的需求。
以1G采样率信号输入,FPGA运算时钟(即FPGA的工作频率)为250M为例,很显然,输入的1G信号经过串并转换变为4路250M输入。数据按交叉排列的方式进行流水输入,如图3所示。
假设原始输入的信号由s(n)表示,n=0,1,2,…,经过串并转换为4路后的信号分别为:
s(4*k)、s(4*k+1)、s(4*k+2)、s(4*k+3),k=0,1,2……
可以将滤波器表达:
利用m=N-1-m,则替换后的m取值范围仍然为0到N-1
由于r[n+(N-1)]和r[n]只存在一个固定的延时关系,因此为简化起见采用r(n)代替r[n+(N-1)],另外,将上述表达式分为4路交叉形式,见如下表达式:
上式中,k=0,1,2,…。假设N=4*P,N为原型滤波器的系数个数,若不为4的整数倍可以通过补零的方式使得N为4的整数倍。因此m取值范围为{4p+0,4p+1,4p+2,4p+3},其中p=0,1…P-1。
将上述表达式分解如下所示:
其中,r(4k+0)、r(4k+1)、r(4k+2)、r(4k+3)为一次4路并行滤波后的输出值。为了便于描述,这里不妨假设N=8,因此每次需要8个乘积进行累加,如图4a-4d所示,将累加后的结果合并输出即可得到滤波后的输出。
其在FPGA内部具体实现时,将输入序列命名为s0,s1,s2,s3,输出序列命名为r0,r1,r2,r3,根据上面图4a-4d可以将FPGA内部数据流程画出,即图5a-5d。
上面是以4路信号输入,8个滤波器系数为例进行演示,实际上对于任意整数路输入,以及任意个滤波器系数,上述分析方法同样适用。该专利的提出,非常适合FPGA进行实时实现,极大扩展了在高采样率下的实时滤波应用。
Claims (3)
1.一种基于FPGA的多路高速滤波器实现方法,包括如下步骤:
(A)将输入信号s(n)串并转换为M路信号s0,s1,…,sM-1,其中M=fS-ADC/fS-FPGA,fS-ADC为输入信号采样率,fS-FPGA为FPGA的工作频率;
(B)将串并转换后的M路信号分为M份,每一份有M路信号:
第1份M路信号,为原始M路信号的复制,顺序为s0/s1/…/sM-1;
第2份M路信号,将信号s0延时并与s1/…/sM-1交换位置,顺序为
……
第M份M路信号,将信号s0/s1/…/sM-2延时并与sM-1交换位置,顺序为
其中,指对第m路信号进行延时;
(C)将所有M份M2路信号延时P个单元并将延时数据输出,其中P=N/M,N为滤波器系数个数;
(D)每一份M路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;
(E)将M份共M个结果数据按顺序输出即可获得当前时刻的输出信号。
2.如权利要求1所述的基于FPGA的多路高速滤波器实现方法,其特征在于:所述的步骤C中,若滤波器系数个数N不满足M的整数倍时,将滤波器系数通过补0实现滤波器系数个数为M的整数倍。
3.如权利要求1所述的基于FPGA的多路高速滤波器实现方法,其特征在于:所述的输入信号采样率fS-ADC=1GHz,FPGA的工作频率fS-FPGA=250MHz,滤波器系数个数为8,步骤A-E变为:
(A1)将输入信号s(n)串并转换为4路信号s0,s1,s2,s3;
(B1)将串并转换后的4路信号分为4份,每一份有4路信号:
第1份4路信号,为原始4路信号的复制,顺序为s0/s1/s2/s3;
第2份4路信号,将信号s0延时并与s1/s2/s3交换位置,顺序为
第3分4路信号,将信号s0/s1延时并与s2/s3交换位置,顺序为
第4份4路信号,将信号s0/s1/s2延时并与s3交换位置,顺序为
其中,指对第m路信号进行延时;
(C1)将所有4份16路信号延时2个单元并将延时数据输出;
(D1)每一份4路信号,将抽出的延时数据与对应的滤波器系数相乘并累加;
(E)将4份共4个结果数据按顺序输出即可获得当前时刻的输出信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810501673.3A CN108832908A (zh) | 2018-05-23 | 2018-05-23 | 基于fpga的多路高速滤波器实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810501673.3A CN108832908A (zh) | 2018-05-23 | 2018-05-23 | 基于fpga的多路高速滤波器实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108832908A true CN108832908A (zh) | 2018-11-16 |
Family
ID=64147211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810501673.3A Pending CN108832908A (zh) | 2018-05-23 | 2018-05-23 | 基于fpga的多路高速滤波器实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108832908A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951173A (zh) * | 2019-03-06 | 2019-06-28 | 西安迪菲电子科技有限公司 | 一种多路并行输入并行处理的fir滤波方法及滤波器 |
CN114584109A (zh) * | 2022-03-15 | 2022-06-03 | 苏州赛迈测控技术有限公司 | 一种对高速串行接口传输的并行信号进行实时滤波的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040170223A1 (en) * | 2003-03-02 | 2004-09-02 | Tzi-Dar Chiueh | Reconfigurable fir filter |
US7480603B1 (en) * | 2006-08-16 | 2009-01-20 | Altera Corporation | Finite impulse response (FIR) filter compiler |
CN101458329A (zh) * | 2009-01-06 | 2009-06-17 | 清华大学 | 时域并行采样率变换方法 |
CN101547018A (zh) * | 2008-03-28 | 2009-09-30 | 大唐移动通信设备有限公司 | 一种实现多天线系统抽取滤波的方法及装置 |
CN104579240A (zh) * | 2013-10-21 | 2015-04-29 | 京微雅格(北京)科技有限公司 | 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法 |
CN106452388A (zh) * | 2016-09-29 | 2017-02-22 | 电子科技大学 | 一种基于并行运算的cic滤波器设计方法 |
US9767818B1 (en) * | 2012-09-18 | 2017-09-19 | Marvell International Ltd. | Steerable beamformer |
CN107332539A (zh) * | 2017-06-30 | 2017-11-07 | 电子科技大学 | 一种高速并行多路分数延时滤波器实现方法 |
CN107707219A (zh) * | 2017-10-26 | 2018-02-16 | 电子科技大学 | 一种基于fpga的高采样率fir滤波等效实现方法 |
CN107769755A (zh) * | 2017-10-24 | 2018-03-06 | 中国科学院电子学研究所 | 一种并行fir抽取滤波器的设计方法和并行fir抽取滤波器 |
-
2018
- 2018-05-23 CN CN201810501673.3A patent/CN108832908A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040170223A1 (en) * | 2003-03-02 | 2004-09-02 | Tzi-Dar Chiueh | Reconfigurable fir filter |
US7480603B1 (en) * | 2006-08-16 | 2009-01-20 | Altera Corporation | Finite impulse response (FIR) filter compiler |
CN101547018A (zh) * | 2008-03-28 | 2009-09-30 | 大唐移动通信设备有限公司 | 一种实现多天线系统抽取滤波的方法及装置 |
CN101458329A (zh) * | 2009-01-06 | 2009-06-17 | 清华大学 | 时域并行采样率变换方法 |
US9767818B1 (en) * | 2012-09-18 | 2017-09-19 | Marvell International Ltd. | Steerable beamformer |
CN104579240A (zh) * | 2013-10-21 | 2015-04-29 | 京微雅格(北京)科技有限公司 | 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法 |
CN106452388A (zh) * | 2016-09-29 | 2017-02-22 | 电子科技大学 | 一种基于并行运算的cic滤波器设计方法 |
CN107332539A (zh) * | 2017-06-30 | 2017-11-07 | 电子科技大学 | 一种高速并行多路分数延时滤波器实现方法 |
CN107769755A (zh) * | 2017-10-24 | 2018-03-06 | 中国科学院电子学研究所 | 一种并行fir抽取滤波器的设计方法和并行fir抽取滤波器 |
CN107707219A (zh) * | 2017-10-26 | 2018-02-16 | 电子科技大学 | 一种基于fpga的高采样率fir滤波等效实现方法 |
Non-Patent Citations (2)
Title |
---|
T PITCHAIAH: "FPGA implementation of low area and delay efficient Adaptive Filter using Distributed Arithmetic", 《 2014 INTERNATIONAL CONFERENCE ON ADVANCES IN ENGINEERING & TECHNOLOGY RESEARCH (ICAETR - 2014)》 * |
张维良: "高速并行FIR 滤波器的FPGA 实现", 《系统工程与电子技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951173A (zh) * | 2019-03-06 | 2019-06-28 | 西安迪菲电子科技有限公司 | 一种多路并行输入并行处理的fir滤波方法及滤波器 |
CN109951173B (zh) * | 2019-03-06 | 2023-03-21 | 西安迪菲电子科技有限公司 | 一种多路并行输入并行处理的fir滤波方法及滤波器 |
CN114584109A (zh) * | 2022-03-15 | 2022-06-03 | 苏州赛迈测控技术有限公司 | 一种对高速串行接口传输的并行信号进行实时滤波的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104993827B (zh) | 模数转换器误差估计校正的装置及其方法 | |
KR100248693B1 (ko) | 통신채널식별시스템 및 방법과 수신기 | |
CN102055435B (zh) | 一种窄带数字滤波器 | |
CN102882491B (zh) | 一种稀疏无频偏线性相位fir陷波滤波器的设计方法 | |
CN108832908A (zh) | 基于fpga的多路高速滤波器实现方法 | |
CN106506135A (zh) | 一种吉比特速率的全数字时域并行定时同步系统及方法 | |
CN1996975A (zh) | 一种信号测量设备、系统及方法 | |
CN108918965A (zh) | 多通道信号相位、幅度高精度测量方法 | |
CN105281708B (zh) | 一种基于分段并行处理的高速fir滤波实现方法 | |
CN111510110A (zh) | 一种并行处理的插值匹配滤波方法及滤波器 | |
CN105227158B (zh) | 一种高精度信号实时滤波器 | |
US4785411A (en) | Cascade filter structure with time overlapped partial addition operations and programmable tap length | |
Li | Design and realization of FIR digital filters based on MATLAB | |
CN105066990A (zh) | 一种适用于捷联惯性导航的高精度数字滤波器 | |
CN110166021A (zh) | 一种实现任意降采样率转换的数字信号处理方法 | |
CN106603036A (zh) | 一种基于低阶内插滤波器的自适应时延估计方法 | |
CN109976660A (zh) | 基于线性插值的任意重采样算法和数据采样系统 | |
CN106153029B (zh) | 二频机抖激光陀螺抖动信号抵消装置 | |
CN110365314A (zh) | 具有稀疏系数的可分离二维fir滤波器的设计方法 | |
CN105811919A (zh) | 用于智能变电站数字化保护的低通滤波器设计方法 | |
CN103607180A (zh) | 光电互感器中多数字源采样率转换的快速滤波方法 | |
Rohini et al. | A crystal view on the design of FIR filter | |
CN107862381A (zh) | 一种适用于多种卷积模式的fir滤波器实现 | |
CN108631752A (zh) | 成形滤波器及其成形方法 | |
CN204131622U (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 |