专利摘要
专利摘要
本发明公开了一种基于FPGA的高采样率FIR滤波等效实现方法,先利用MATLAB工具设计FIR滤波器系数h(n),并将系数h(n)进行放大、取整,使得到的系数能够被FPGA直接采用,然后在FPGA中将输入的ADC高采样率信号降速为M路并行低速采样信号,并获取一个数据同步时钟CLK周期内产生M个输出样点的所有输入样点和输出样点,最后对M路信号进行拼合得到高采样率滤波输出信号。
权利要求
1.一种基于FPGA的高采样率FIR滤波等效实现方法,其特征在于,包括以下步骤:
(1)、按照系统要求,利用MATLAB工具设计FIR滤波器系数h(n),再适当调节相关参数,使滤波器长度L满足LmodM=0,设L′=L/M;
(2)、对系数h(n)进行整数倍放大,再进行四舍五入取整,使得到的系数能够直接被FPGA采用;
(3)、在FPGA中将输入的ADC高采样率信号x(n)降速为M路并行低速采样信号x
(4)、将M路并行低速采样信号x
(5)、根据步骤(4)获取的输入信号样点,计算一个数据同步时钟CLK周期内的M个FIR滤波并行输出样点;
(6)、重复连续执行步骤(4)、(5),即可实现多路并行乘累加输出M路信号y
2.根据权利要求1所述的一种基于FPGA的高采样率FIR滤波等效实现方法,其特征在于,所述的ADC高采样率信号x(n)的采样率为f
3.根据权利要求1所述的一种基于FPGA的高采样率FIR滤波等效实现方法,其特征在于,所述的MATLAB工具对系数h(n)进行整数倍放大时,采取对系数h(n)进行2的幂次方放大,即放大倍数为2
4.根据权利要求1所述的一种基于FPGA的高采样率FIR滤波等效实现方法,其特征在于,所述步骤(4)中,第i路并行低速采样信号x
其中,j∈[1,L′]∩Z,Z表示整数集。
说明书
技术领域
本发明属于FIR数字滤波技术领域,更为具体地讲,涉及一种基于FPGA的高采样率FIR滤波等效实现方法。
背景技术
FIR滤波器(Finite Impulse Response)即有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最为基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
在进入FIR滤波器前,首先要将信号通过ADC进行模数转换,把模拟信号转化为数字信号。为了使信号处理能够不发生失真,信号采样速度必须满足奈奎斯特采样定理,一般取信号频率上限的4-5倍作为采样频率。可采用FPGA或者通用DSP芯片来实现FIR滤波器。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
随着科技的发展,各种电子信号呈现出复杂化、多样化的特征,导致其频率范围越来越宽。因此,将该信号数字化需要更高的ADC采样率。目前市面上已有几十GSPS甚至上百GSPS的ADC芯片面世,其采样输出数据也具有相当的数据率。然后,目前绝大多数高端FPGA芯片的最高系统时钟不超过1GHz,若要直接利用FPGA实现上述高数据率数字信号的FIR滤波明显是不可能的。
常见的采用FIR滤波器处理高数据率输入数字信号有如下两种情形。
第一种情形如图1所示。假设ADC采样率为1GSPS。由于FPGA中无法直接处理1GSPS的采样数据流,故由FPGA中集成的高速接收器接收并将1GSPS数据流降速分为4路250MSPS数据流。利用4个一定存储深度(设均为1K)的FIFO分别存储4路250MSPS数据流。待FIFO满后,停止FIFO些操作。在250MHz时钟控制下,从4个FIFO中依次读出采样数据拼合成一路1GSPS的数据,再进行FIR数字滤波,最终可以得到4K的滤波后数据。这种情况下,1GSPS的待滤波数据流是通过多路数据拼合得到的,而且在拼合的过程中,FIFO的写操作是停止的。而ADC的采样仍在进行,导致FIR滤波期间ADC采样数据全部丢失。对FPGA中实现的FIR滤波操作来说,无法实现数据流的不间断连续流水线操作。
第二种情形基于多相滤波理论,如图2所示。设ADC采样输出信号x(n)的采样率为fs,该频率高于FPGA能够实现的最高系统频率。经过内部高速接收器接收降速为M路采样率为fs/M的数据流xi(n)(i=0,1,...,M-1)。对得到的M路数据流xi(n)进行多相FIR滤波,其中Ei(z)为以采样率fs设计得到的原型滤波器的分支滤波器。输出信号y(n)的采样率降为ADC采样率的1/M,即fs/M。图2所示滤波结构不涉及缓存存储器,即可以实现滤波结构的连续流水操作,但是其输入输出信号的采样率已经发生了变化,即无法实现始终等效以ADC采样频率对输入信号进行滤波。
目前,需求系统等效实现以ADC采样频率对其采样输出进行不间断的连续流水滤波操作,同时,还要求滤波输入输出信号的采样率保持不变,因此,以上两种滤波接收均不能满足需求。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于FPGA的高采样率FIR滤波等效实现方法,始终等效实现以高速率进行不间断数字信号滤波且输入输出采样率保持不变。
为实现上述发明目的,本发明一种基于FPGA的高采样率FIR滤波等效实现方法,其特征在于,包括以下步骤:
(1)、按照系统要求,利用MATLAB工具设计FIR滤波器系数h(n),再适当调节相关参数,使滤波器长度L满足LmodM=0,设L′=L/M;
(2)、对系数h(n)进行整数倍放大,再进行四舍五入取整,使得到的系数能够直接被FPGA采用;
(3)、在FPGA中将输入的ADC高采样率信号x(n)降速为M路并行低速采样信号xi(n),i=0,1,...,M-1;
(4)、将M路并行低速采样信号xi(n)分别延迟1到L′个数据同步时钟CLK周期,使FPGA在一个数据同步时钟CLK周期内获取FIR滤波所需要的L+M-1个输入信号样点;
(5)、根据步骤(4)获取的输入信号样点,计算一个数据同步时钟CLK周期内的M个FIR滤波并行输出样点;
(6)、重复连续执行步骤(4)、(5),即可实现多路并行乘累加输出M路信号yi(n),按照i递增的顺序将yi(n)拼合起来,从而得到高采样率滤波输出信号y(n)。
本发明的发明目的是这样实现的:
本发明基于FPGA的高采样率FIR滤波等效实现方法,先利用MATLAB工具设计FIR滤波器系数h(n),并将系数h(n)进行放大、取整,使得到的系数能够被FPGA直接采用,然后在FPGA中将输入的ADC高采样率信号降速为M路并行低速采样信号,并获取一个数据同步时钟CLK周期内产生M个输出样点的所有输入样点和输出样点,最后对M路信号进行拼合得到高采样率滤波输出信号。
同时,本发明基于FPGA的高采样率FIR滤波等效实现方法还具有以下有益效果:
(1)、本发明适用于FPGA最高系统时钟小于前端ADC采样时钟时的ADC输出采样数据的FIR数字滤波,可以以多路并行方式等效实现以高速ADC采样率为数字滤波器采样率的实时高数据率数字滤波;
(2)、在FPGA中实现的FIR滤波操作时能够实现数据流的不间断连续流水线操作;
(3)、本发明中输入输出信号的采样率不变,且实现始终等效以ADC采样频率对输入信号进行滤波。
附图说明
图1是多路并行数据拼合后的滤波原理图;
图2是多相滤波结构原理图;
图3是本发明基于FPGA的高采样率FIR滤波等效实现方法原理图;
图4是数据延迟示意图;
图5是产生M个连续y(n)值所需输入样点位置示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图3是本发明基于FPGA的高采样率FIR滤波等效实现方法原理图。
在本实施例中,设滤波输入信号x(n)的采样率为fs,FIR滤波器冲激响应为h(n),滤波输出信号为y(n),采样率与x(n)相同,也为fs,则有
式(1)所示FIR滤波运算的时钟速率为fs。当上述FIR滤波在FPGA中实现时,由于fs高于FPGA最高系统时钟,高采样率信号x(n)不能被FPGA直接接收,需求经过高速接收器降速为多路低速率数据流。因此式(1)所示滤波运算也是采用多路并行的方式进行,进而输出多路信号。这多路信号即是滤波输出信号y(n)的多相分解,而y(n)的采样率与x(n)一致。因此,本发明的实质即是在FPGA中以多路并行滤波的方式等效实现滤波输入输出采样率不变的FIR数字滤波。
下面我们结合图3对本发明一种基于FPGA的高采样率FIR滤波等效实现方法进行详细说明。
S1、按照系统要求,利用MATLAB工具设计FIR滤波器系数h(n),再适当调节相关参数,使滤波器长度L满足LmodM=0,设L′=L/M。
S2、对系数h(n)进行整数倍放大,再进行四舍五入取整,使得到的系数能够直接被FPGA采用;
在本实施例中,MATLAB工具对系数h(n)进行整数倍放大时,一般采取对系数h(n)进行2的幂次方放大,即放大倍数为2
S3、在FPGA中将输入的ADC高采样率信号x(n)降速为M路并行低速采样信号xi(n),i=0,1,...,M-1;
在本实施例中,设FPGA高速接收器将输入高采样率信号x(n)降速为M路数据率为fs/M的信号xi(n)(i=0,1,...,M-1),输出信号y(n)的多相分解为yi(n)(i=0,1,...,M-1),即:
S4、当已知滤波器h(n)长度为L(n=0,1,...,L-1)且LmodM=0时,那么滤波输出M路信号yi(n)可以表示为:
进一步有
上式中,要得到一个yi(n)值,需要i+1+(L′-1)M+M-i-1=L′M=L个连续x(n)样点实现式(4)中的乘累加运算。如果需要在一个数据同步时钟CLK周期内同时产生M个连续y(n)值,分别对应于M个输出低速率信号yi(n)(i=0,1,...,M-1),则需要从x((n-L′)M+1)到x(nM+M-1)共计L+M-1个连续x(n)样点。
通过对M路输入信号xi(n)整体延迟多个CLK周期来完成L+M-1个输入信号样点的准备工作,如图4所示,其中第i路并行低速采样信号xi(n)延迟j个CLK周期的信号 为:
其中,j∈[1,L′]∩Z,Z表示整数集。
S5、由于高采样率信号x(n)在FPGA中体现为多路并行低速率信号xi(n)(i=0,1,...,M-1),则计算M个连续y(n)值(即y0(n),y1(n),...,yM-1(n))所需的L+M-1个连续x(n)样点在M路并行信号xi(n)中的位置如图5所示,其中CLK为数据同步时钟,其频率为fs/M。
从图5中可以看出,在一个CLK时钟周期内产生一组y0(n),y1(n),...,yM-1(n)值要涉及连续(L′+1)个CLK时钟周期内输入信号值。对于单个yi(n)值而言,所需要的输入信号值均包含在图5所示范围内。因此,如果要实现在一个时钟周期内滤波得到一组y0(n),y1(n),...,yM-1(n)值,需要在一个CLK周期内准备好图5所示范围内所有输入信号样点,再根据式(4)针对某一路yi(n)去选择相应的L个输入信号值与L个滤波器系数完成乘累加操作。
如图4所示,经过图4所示的M路输入信号整体延迟后,可以在一个CLK周期范围获取图5所示的L+M-1个连续x(n)样点,然后再根据式(4)即可以计算M个连续y(n)值(即y0(n),y1(n),...,yM-1(n))。
S6、重复连续执行步骤S4、S5,即可实现多路并行乘累加输出M路信号yi(n),按照i递增的顺序将yi(n)拼合起来,从而得到高采样率滤波输出信号y(n)。即可以等效实现基于高采样率fs的连续流水FIR滤波运算,且滤波输出信号的采样率保持fs不变。
通过上述分析可知,当ADC高采样率信号x(n)的采样率为fs,那么xi(n)的采样率为fs/M,滤波输出M路并行信号yi(n)采样率为fs/M,拼合后的信号y(n)采样率为fs。
根据式(4)可知,如果要在FPGA中实现该滤波操作,每一个yi(n)样点都会涉及所有的滤波器系数,但是涉及的x(n)样点都不相同。因此针对每一路yi(n),都需要实现L个乘法器(L为滤波器长度),M路共计需要ML个乘法器。实际实现过程中,由于FIR滤波器系数是首尾对称的,即有h(k)=h(L-1-k),k=0,1,...,L-1,因此可以节省一半的乘法器资源,即只需要ML/2个乘法器。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
一种基于FPGA的高采样率FIR滤波等效实现方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0