具体实施方式
为使本实用新型的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本实用新型进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本实用新型,并不限定本实用新型的保护范围。
参见图1所示,为本实用新型的数字滤波设备的结构示意图。该实施例中的数字滤波设备,包括CIC抽取装置100、FIR滤波器200和CIC插值装置300;CIC是指级联积分疏状滤波,FIR滤波器是指有限长单位冲击响应滤波器;
CIC抽取装置100的Pi1个输入端接收待滤波信号数据,其中,Pi1为大于0的整数;
CIC抽取装置100的Pc1个输出端与FIR滤波器200的Pc1个输入端对应连接,其中,Pc1为大于0的整数;
FIR滤波器200的Pc2个输出端与CIC插值装置300的Pc2个输入端对应连接,其中,Pc2为大于0的整数;
CIC插值装置300的Pi2个输出端输出滤波数据,其中,Pi2为大于0的整数。
在本实施例中,数字滤波设备,其包括依次连接的CIC抽取装置、FIR滤波器和CIC插值装置,CIC抽取装置接收待滤波信号数据后,可以得到多路并行数据,通过CIC抽取装置对多路并行数据进行抽取下变频,FIR滤波器对下变频后的信号进行滤波,最后通过CIC插值装置对滤波后的信号进行插值上变频,将其频率恢复到原来待滤波信号数据的频率,得到最终的滤波结果;本方案将原频率信号下变频后滤波,再将滤波后的信号上变频至原频率,配合FIR滤波器系数可配置,可以实现对高带宽内任意频率的信号进行滤波处理;数字滤波设备中前级使用CIC抽取装置进行下变频可以减少由于采样率不足而造成的频谱混叠,后级使用CIC插值装置进行上变频可以实现抗镜像滤波,以此可以减少上变频和下变频对高频率信号滤波的影响;同时,利用多路并行结构,可对输入数据实时处理(无需先存储后处理),在较小的***时钟下实现高带宽信号的实时滤波处理。
需要说明的是,CIC抽取装置的输入端输入的是数字信号。由于本实用新型多并行结构可以在***运行时钟有限而资源允许的情况下,理论上可实现任意带宽信号的高速实时滤波处理。假设输入数据并行数为Pin,本实用新型***运行时钟频率为fsys,另外本实用新型中各模块使用流水线结构可实现实时处理输入数据,即可以在每个***时钟输入一次数据,每个***时钟周期内可输入数据量为Pin,因此本实用新型可处理信号的最大采样率fs为:
fs=fsys×Pin
只要增大Pin就可以增大能处理信号的最大采样率,即可以增大能处理信号的带宽。当然增大Pin会导致资源使用增大,所以只要资源允许,无论fsys多小(当然大于0)只要增大Pin即可满足任何频率信号的滤波处理。使用普通单并行结构滤波器是无法实现这一特性的。
优选的,Pi1与Pi2可以相同,使输入的待滤波数据量与输出的滤波后数据量相同,从而使用本实用新型或旁路本实用新型都不影响信号的后级处理,Pc1与Pc2相同,使FIR滤波器的输入数据量和输出数据量相同,在FIR滤波器对信号进行滤波处理后保证信号的完整性。
可选的,Pi1、Pi2、Pc1、与Pc2可以为1,此时实际为单并行结构;Pi1、Pi2、Pc1、与Pc2可以为大于1的整数,此时实际为多并行结构。
在其中一个实施例中,如图2(a)所示,CIC抽取装置100包括输出端、输入端依次连接的Ncic1个单级并行CIC抽取装置110,第1至Ncic1-1个单级并行CIC抽取装置110均具备Pi1个输入端和Pi1个输出端,第Ncic1个单级并行CIC抽取装置110具备Pi1个输入端和Pc1个输出端,第1个单级并行CIC抽取装置110的Pi1个输入端作为CIC抽取装置100的Pi1个输入端,第Ncic1个单级并行CIC抽取装置110的Pc1个输出端作为CIC抽取装置100的Pc1个输出端;
如图2(b)所示,CIC插值装置300包括输出端、输入端依次连接的Ncic2个单级并行CIC插值装置310,第1至Ncic2-1个单级并行CIC插值装置310均具备Pc2个输入端和Pc2个输出端,第Ncic2个单级并行CIC插值装置310具备Pc2个输入端和Pi2个输出端;第1个单级并行CIC插值装置310的Pc2个输入端作为CIC插值装置300的Pc2个输入端,第Ncic1个单级并行CIC插值装置310的Pi2个输出端作为CIC插值装置300的Pi2个输出端;
Ncic1、Ncic2均为大于0的整数。
在本实施例中,为了达到较好的抽取效果,并行CIC抽取装置通常需要较大的抽取倍数,并行CIC抽取装置的抽取因子与抽取倍数正相关,但当一个并行CIC抽取装置的抽取因子较大时,并行CIC抽取装置的输入数据位宽较大,并行CIC抽取装置对***的资源占用较多,而采用多个单级并行CIC抽取装置串联的结构,并行CIC抽取装置的抽取倍数为各个单级并行CIC抽取装置的抽取倍数的乘积,可以用较小的抽取因子来获得较大的抽取倍数,同时对***的资源占用较少;上一级单级并行CIC抽取装置抽取以后,数据减少,但为了能在下一级单级并行CIC抽取装置执行同样的抽取,需要将抽取以后的数据进行延迟分配,使并行输出与下一级单级并行CIC抽取装置的并行输入的并行数相同;
为了达到较好的插值效果,并行CIC插值装置通常需要较大的插值倍数,并行CIC插值装置的插值因子与插值倍数正相关,但当一个并行CIC插值装置的插值因子较大时,并行CIC插值装置对***的资源占用较多,而采用多个单级并行CIC插值装置串联的结构,并行CIC插值装置的插值倍数为各个单级并行CIC插值装置的插值倍数的乘积,可以用较小的插值因子来获得较大的插值倍数,同时对***的资源占用较少;上一级单级并行CIC插值装置插值以后,数据增加,但为了能在下一级单级并行CIC插值装置执行同样的插值,需要将插值以后的数据进行延迟分配,使并行输出与下一级单级并行CIC插值装置的并行输入的并行数相同。
可选的,单级并行CIC抽取装置的个数Ncic1与单级并行CIC插值装置的个数Ncic2可以相同,也可以不同。
在其中一个实施例中,如图3(a)和图3(b)所示,单级并行CIC抽取装置110包括输出端、输入端依次连接的Ni1个并行积分模块112、并行抽取模块114、Nc1个并行疏状模块116以及第一增益调整模块118,Ni1和Nc1均为大于0的整数;
每个并行积分模块112具备Pi1个输入端和Pi1个输出端,并行抽取模块114具备Pi1个输入端和Pc1个输出端,每个并行疏状模块116具备Pc1个输入端和Pc1个输出端;第1至Ncic1-1个单级并行CIC抽取装置110中的各第一增益调整模块118具备Pc1个输入端和Pi1个输出端,第Ncic1个单级并行CIC抽取装置110中的第一增益调整模块具备Pc1个输入端和Pc1个输出端;
如图3(c)和图3(d)所示,单级并行CIC插值装置310包括输出端、输入端依次连接的Nc2个并行疏状模块312、并行插值模块314、Ni2个并行积分模块316以及第二增益调整模块318;
每个并行疏状模块312具备Pc2个输入端和Pc2个输出端,并行插值模块314具备Pc2个输入端和Pi2个输出端,每个并行积分模块316具备Pi2个输入端和Pi2个输出端;第1至Ncic2-1个单级并行CIC插值装置310中的各第二增益调整模块318具备Pi2个输入端和Pc2个输出端,第Ncic2个单级并行CIC插值装置310中的第二增益调整模块具备Pi2个输入端和Pi2个输出端。
在本实施例中,单级并行CIC抽取装置包括Ni1个并行积分模块、并行抽取模块、Nc1个并行疏状模块以及第一增益调整模块,通过此种连接关系,可以对输入的信号进行并行抽取,而且减少由于抽取可能导致的采样率不足而造成的频谱混叠,并行CIC抽取模块对信号有增益放大的作用,因此,在输出之前需要经过第一增益调整模块,对信号进行增益调整;而且,为了能使在下一级单级并行CIC抽取装置执行同样并行数的处理,第一增益调整模块需要将抽取以后的数据进行延迟分配,使并行输出与下一级单级并行CIC抽取装置的并行输入对应;
单级并行CIC插值装置包括Nc2个并行疏状模块、并行插值模块、Ni2个并行积分模块以及第二增益调整模块,通过此种连接关系,可以对输入的信号进行并行插值,而且实现抗镜像滤波,由于并行CIC插值模块对信号有增益放大的作用,因此,在输出之前需要经过第二增益调整模块,对信号进行增益调整;为了能在下一级单级并行CIC插值装置执行同样的插值,第二增益调整模块需要将插值以后的数据进行延迟分配,使并行输出与下一级单级并行CIC插值装置的并行输入对应。
在其中一个实施例中,如图4所示,并行积分模块包括器件矩阵[Ai,j],其中,1≤i≤p,1≤j≤p,p为并行积分模块的并行通道数,i、j、p均为整数;
第i行第i-1列的器件Ai,i-1和第p列的器件Ai,p均为加法器,器件矩阵[Ai,j]中剩余的器件为存储延迟寄存器;
器件矩阵[Ai,j]中每一行的器件依次连接,第i行第i-1列的加法器Ai,i-1依次连接;
存储延迟寄存器A1,1的输入端与加法器A2,1的第一输入端连接,加法器Ak,k-1的输出端与加法器Ak+1,k的第一输入端连接,同时加法器Ak,k-1的输出端与存储延迟寄存器Ak,k的输入端连接,其中,2≤k≤p-1,k为整数;
存储延迟寄存器Ah,h-2的输出端与加法器Ah,h-1的第二输入端连接,其中,3≤h≤p,h为整数;
存储延迟寄存器Ag,p-1的输出端与加法器Ag,p的第二输入端连接,其中,1≤g≤p-1,g为整数,加法器Ap,p-1的输出端与加法器Ap,p的第二输入端连接,加法器Ap,p的输出端与加法器Ai,p的第一输入端连接;
并行积分模块的输入端包括存储延迟寄存器A1,1的输入端、加法器A2,1的第二输入端以及存储延迟寄存器Ah,1的输入端,并行积分模块的输出端包括加法器Ai,p的输出端;
并行积分模块为并行积分模块112或并行积分模块316。
在本实施例中,并行积分模块主要通过加法器实现,在计算某一时钟周期的积分结果前,需要将之前的加和结果计算完成,积分结构要累加之前的数据,本方案通过器件矩阵方式对信号数据进行处理,存储延迟寄存器可以将存储的数据延迟一个时钟周期输出,加法器在两个输入值相加后也会延迟一个时钟周期输出,在器件矩阵的前p-1列先累加各级的值,在最后一列再与上一时钟周期结果相加来得到当前时钟周期结果,上个时钟周期输入的p个数据中最后一个数据是当前时钟周期输入p个数据中第一个数据的前一个数据,理论上需要等待上个时钟周期输入数据计算完成后才能进行当前时钟周期的计算,而本方案中所用结构,先将当前时钟周期输入数据各级累加,在当前时钟周期输入各级累加完时上一个时钟周期的结果正好计算完成,当前时钟周期输入的累加值刚好可以和上一个时钟周期计算结果中最后一个结果累加,得到当前时钟周期的积分结果值。在每一个时钟周期均可接受新的数据并进行处理,即数据可以实时输入处理。
可选的,并行积分模块212中的并行通道数与并行积分模块416中的并行通道数可以相同,也可以不同;当并行积分模块为并行积分模块212时,并行通道数p为Pi1;当并行积分模块为并行积分模块416时,并行通道数p为Pi2。
在其中一个实施例中,如图5所示,并行疏状模块包括q个减法器和一个存储延迟寄存器,其中,q为并行疏状模块的并行通道数;
并行疏状模块的输入端包括所有减法器的第一输入端,并行疏状模块的输出端包括所有减法器的输出端;
第r个减法器的第一输入端与第(r+1)个减法器的第二输入端连接;其中,1≤r≤q-1,r、q均为整数;
第q个减法器的第一输入端与存储延迟寄存器的输入端连接,存储延迟寄存器的输出端与第1个减法器的第二输入端连接;
并行疏状模块为并行疏状模块116或并行疏状模块312。
在本实施例中,并行疏状模块主要通过减法器实现,上一时钟周期输入的信号数据的最后一个数据为当前时钟周期输入的第一个数据的前一个数据,将当前时钟周期输入的各数据与上一时钟周期输入的最后一个数据延迟一个时钟周期后进行作差处理,以得到当前周期的微分结果值。在每一个时钟周期均可接受新的数据并进行处理,即数据可以实时输入处理。
可选的,并行疏状模块216中的并行通道数与并行疏状模块412中的并行通道数可以相同,也可以不同;当并行疏状模块为并行疏状模块216时,并行通道数q为Pc1;当并行疏状模块为并行疏状模块412时,并行通道数q为Pc2。
在其中一个实施例中,如图6(a)和图6(b)所示,FIR滤波器200包括数据分配延迟链模块210和Pc2个单级并行FIR滤波器220;
数据分配延迟链模块210包括(N+Pc2-1)个依次排列的存储延迟寄存器,其中,第n个存储延迟寄存器的输出端与第(n+Pc1)个存储延迟寄存器的输入端连接,1≤n≤N-1,n、N均为整数,N是单级并行FIR滤波器220的阶数;
第m至(N+m-1)个存储延迟寄存器的输出端与第m个单级并行FIR滤波器220的输入端对应连接,其中,1≤m≤Pc2,m为整数;
FIR滤波器200的输入端包括第1至Pc1个存储延迟寄存器的输入端,FIR滤波器200的输出端包括所有单级并行FIR滤波器220的输出端。
在本实施例中,数据分配延迟链模块的延迟链长为(N+Pc2-1)个数据,每个时钟周期从第1至Pc1个存储延迟寄存器输入Pc1个数据,在下一时钟周期,第1至Pc1个存储延迟寄存器的数据移动至第Pc1+1至2Pc1个存储延迟寄存器中,在每一个时钟周期输出第m至(N+m-1)个存储延迟寄存器的数据至第m个单级并行FIR滤波器,类似于滑动窗口的方式输出,每个单级并行FIR滤波器在一个时钟周期可以输出一个滤波结果,Pc2个单级并行FIR滤波器在一个时钟周期可以同时输出Pc2个滤波结果;以滑动窗口方式分配数据,可以利用较少的存储延迟寄存器实现并行滤波。
优选的,FIR滤波器200的输入端数Pc1与FIR滤波器200的输出端数Pc2相同。
在其中一个实施例中,如图7所示,当单级并行FIR滤波器220的阶数为偶数时,单级并行FIR滤波器220包括N/2个加法器、N/2个乘法器和一个累加器;
与单级并行FIR滤波器220连接的N个依次排列的存储延迟寄存器中,第s个存储延迟寄存器的输出端和第(N+1-s)个存储延迟寄存器的输出端分别连接到对应的一个加法器的两个输入端,其中,1≤s≤N,每个加法器的输出端与对应的一个乘法器的输入端连接,每个乘法器的输出端均与累加器的对应输入端连接,累加器的输出端为单级并行FIR滤波器220的输出端。
在本实施例中,当单级并行FIR滤波器220的阶数为偶数时,利用N/2个加法器、N/2个乘法器和一个累加器即可实现对一组数据的滤波。
可选的,累加器可以是加法器树,也可以是满足每个时钟周期可多并行输入、输出一个累加结果的并行结构。
在其中一个实施例中,如图8所示,当单级并行FIR滤波器220的阶数为奇数时,单级并行FIR滤波器320包括(N-1)/2个加法器、一个延时器、(N+1)/2个乘法器和一个累加器;
与单级并行FIR滤波器220连接的N个依次排列的存储延迟寄存器中,第s个存储延迟寄存器的输出端和第(N+1-s)个存储延迟寄存器的输出端分别连接到对应的一个加法器的两个输入端,其中,1≤s≤N,每个加法器的输出端与对应的一个乘法器的输入端连接,第(N+1)/2个存储延迟寄存器的输出端与延时器的输入端连接,延时器的输出端与对应的一个乘法器的输入端连接,每个乘法器的输出端均与累加器的对应输入端连接,累加器的输出端为单级并行FIR滤波器220的输出端。
在本实施例中,当单级并行FIR滤波器220的阶数为奇数时,利用(N-1)/2个加法器、一个延时器、(N+1)/2个乘法器和一个累加器即可实现对一组数据的滤波,由于阶数为奇数,其中一个存储延迟寄存器没有对应的加法器与之连接,而加法器在进行加法计算时会有延迟,因此,需要将该存储延迟寄存器与延时器连接,以保证各乘法器接收数据的同时性。
可选的,累加器可以是加法器树,也可以是满足每个时钟周期可多并行输入、输出一个累加结果的并行结构。
在其中一个实施例中,如图9所示,数字滤波设备还包括抽取器400和内插器500,抽取器400连接在CIC抽取装置100的输出端和FIR滤波器200的输入端之间,内插器500连接在FIR滤波器200的输出口和CIC插值装置300的输入端之间。
在本实施例中,可以使用抽取器来辅助并行CIC抽取装置,一般抽取器是以直接抽取方式进行抽取,占用资源较少,在完全使用并行CIC抽取装置导致资源不足时,可以用抽取器替代部分并行CIC抽取装置;可以使用内插器来辅助并行CIC插值装置,一般内插器是以直接内插方式进行插值,占用资源较少,在完全使用并行CIC插值装置导致资源不足时,可以用内插器替代部分并行CIC插值装置,以合理利用***资源。
可选的,抽取器400具备Pi1个输入端,Pc1个输出端;内插器500具备Pc2个输入端,Pi2个输出端。
在其中一个实施例中,如图10所示,数字滤波设备还包括上位机600和系数寄存器配置总线接口700;
上位机600通过系数寄存器配置总线接口700分别与CIC抽取装置100、FIR滤波器200、CIC插值装置300连接。
在本实施例中,上位机通过系数寄存器配置总线接口可以对CIC抽取装置、FIR滤波器、CIC插值装置进行系数设置,如CIC抽取装置的抽取系数、FIR滤波器的滤波系数、CIC插值装置的插值系数等,对CIC抽取装置、FIR滤波器、CIC插值装置进行合理调整,平衡数字滤波设备的性能和***资源,使得数字滤波设备更加灵活实用。
在其中一个实施例中,如图11所示,上位机600通过系数寄存器配置总线接口700还分别与抽取器400、内插器500连接。
在本实施例中,上位机通过系数寄存器配置总线接口还可以对抽取器、内插器进行系数设置,如抽取器的抽取系数、内插器的插值系数等,对抽取器、内插器进行合理调整,平衡数字滤波设备的性能和***资源,使得数字滤波设备更加灵活实用。
在一个具体的实施例中,数字滤波设备可以在FPGA中实现,或设计为专用于滤波的ASIC芯片,可用于需要任意截止频率可调的高速实时滤波的应用中,如示波器等仪器中。
数字滤波设备在***中的位置如图12所示,信号通过前级的模拟处理、ADC(模数转换器)等处理后输入到数字滤波设备中,由于数字滤波设备的结构可使输入和输出数据量不变,所以前级ADC可以旁路数字滤波设备直接连接到后级处理,而不影响后级的处理过程。即可以使用数字滤波设备滤波后再进行处理,也可以直接处理ADC输出数据,而不影响后级处理。数字滤波设备和旁路电路的使用可以通过选择器来进行选择,选择器的选择功能通过使能端的使能信号进行控制。
数字滤波设备主要组成部分为“数字下变频”装置、“多并行FIR”滤波器、“数字上变频”装置和“系数寄存器配置”总线接口。其中“数字下变频”装置由“多级并行CIC抽取”装置和“抽取器”装置组成;“数字上变频”装置由“多级并行CIC插值”装置和“内插器”装置组成;“系数寄存器配置”总线接口可以为AXI-Lite、Wishbone或Avalon-MM等片内总线接口,与系数寄存器配置总线接口连接的上位机可以根据需要的截止频率实时修改抽取、插值倍数和FIR滤波器系数。“数字下变频”装置中可以只包括“多级并行CIC抽取”装置,“数字上变频”装置中可以只包括“多级并行CIC抽取”装置,“抽取器”装置和“内插器”装置可以不设置。
数字滤波设备通过“数字下变频”装置将输入数据下变频,即将输入数据的采样频率fi调节到“多并行FIR”滤波器满足要求的滤波范围中(可通过“系数寄存器配置总线接口”配置“滤波器系数”来改变“多并行FIR”的采样频率);再通过“系数寄存器配置总线接口”配置“滤波器系数”调节具体的滤波截止频率(下变频后数据的截止频率);最后通过“数字上变频”装置将经过下变频并滤波后的数据重新恢复到原有采样频率fi;这样通过这三个装置配合可实现任意截止频率的滤波效果。如需要滤波的截止频率为fbd,而通过配置FIR滤波器系数得到FIR滤波器的截止频率可以为fbf,这样将整个“数字下变频”装置的抽取倍数Rl配置为(为使输出和输入数据量相同,“数字上变频”部分的插值倍数也要配置为相同的值):
即将信号频率下变频到“多并行FIR”滤波器支持的采样频率上,这样就使用截止频率为fbf的滤波器实现了截止频率为fbd的滤波,当然“数字上变频”装置需要对应配置将信号重新上变频回原来的频率。
前级“多级并行CIC抽取”装置可减少一般串行CIC抽取导致采样率不足而出现的频谱混叠,使并行滤波器达到更好的性能。由于CIC传递函数可以表示为:
其中N为级联系数,M为延迟因子,R为抽取或插值因子,z代表z型变换信号。由上公式可知:
即CIC抽取增益为(RM)N,则输出最大值为yout:
其中Bin为CIC输入数据位宽(二进制),要使CIC计算数据不溢出,则CIC装置中使用的数据位宽Bout为:
Bout=Nlog2(RM)+Bin
延迟因子M通常取固定值1,级联系数N是CIC抽取装置的系数(并非并行CIC抽取装置中单级并行CIC抽取装置的个数),根据需要通常选择1~3即可,而抽取因子R通常需要实现较大抽取倍数,当抽取因子R较大时数据位宽Bout较大,由于CIC使用并行流水线结构实现(流水线存储单元较多),所以CIC中数据位宽增大时占用资源增加较多,因此这里使用多级并行CIC抽取,“多级并行CIC抽取”的抽取倍数为各级抽取倍数的乘积,可以用较小的抽取因子实现较大的抽取倍数,而且占用的资源较少。
若在资源足够的情况下可以不使用“抽取器”,即将“抽取器”装置旁路;当然当性能达到要求而资源较少时可以使用占用资源较少的“抽取器”(可以为简单的直接抽取方式实现)代替部分“多级并行CIC抽取”装置,由于CIC有低通的特性,其减少了后级“抽取器”导致的频谱混叠。如ADC为2G采样率,而前级“模拟处理”已将信号处理到100M带宽,由于这里采样率远大于信号带宽,所以这里可以使用占用资源较少的“抽取器”直接降低采样率,而完全不会降低滤波性能。
经过“多并行FIR”装置后需要将下变频的数据重新上变频回原来的频率,这里的插值也用“多级并行CIC插值”装置和“内插器”配合调节资源与性能,“多级并行CIC插值”装置作为插值之后的抗镜像滤波,也使用多级串联的结构以节省资源(原因同“CIC抽取”部分)。“多级并行CIC插值”装置中插值部分为插0值方式插值;“内插器”可以使用临近复制插值、线性插值等其它满足设计要求的插值方式。
“多级并行CIC抽取”装置、“多级并行CIC插值”装置与抽取器、内插器配合调整需要的性能与资源的平衡,可使数字滤波设备更具实用性。
“多级并行CIC抽取”装置结构如图2所示,由Ncic1个“单级并行CIC抽取”装置结构串联实现。
其中“单级并行CIC抽取”装置结构如图3所示,由Ni1个“并行积分”模块、“并行抽取”模块、Nc1个“并行疏状”模块和“增益调整”模块组成。由于并行CIC抽取模块对数据的增益为(RM)N,所以各“单级并行CIC抽取”装置输出前会进行增益调整(除以增益(RM)N)后输出。
其中“并行积分”模块如图4所示(图中“D”标记的方框为存储延迟寄存器单元,本图中加法器在两个值相加后会延迟一个时钟周期输出),包括一个p行p列的器件矩阵[Ai,j],“并行积分”模块并行输入p个数据,由于同时输入的p个数据之间和各次输入数据都有先后关系,计算结果需要在之前结果完成后才能完成(积分结构要累加之前的数据),所以并非简单的多个单级积分结构并联就可以实现,而是通过流水线方式处理,先以流水线方式累加各级的值,在最后一级流水线输出前再与上一时钟周期结果相加来得到当前时钟周期结果。上一时钟周期输入的p个数据中最后一个数据(数据p-1)是当前时钟周期输入p个数据中第一个数据(数据0)的前一个数据,理论上需要等待上一时钟周期输入的p个数据计算完成后才能进行当前时钟周期流水线,而本实用新型中所用结构,先用流水线结构将当前时钟周期输入数据各级累加,在第p-1列当前时钟周期输入各级累加完时,上一时钟周期结果正好在第p列计算完成,当前时钟周期输入的累加值刚好可以和上一时钟周期计算结果中最后一个结果累加,得到当前时钟周期结果积分值。
“并行疏状”模块如图5所示(延迟因子M取1时),上一时钟周期输入数据的最后一个数据(数据q-1)为当前时钟周期输入的第一个数据(数据0)的前一个数据,所以需要将当前时钟周期输入的各个数据与上一时钟周期输入的最后一个数据延迟一个时钟周期后进行作差处理,得到当前时钟周期的结果。
类似“多级并行CIC抽取”装置结构,“多级并行CIC插值”装置结构如图6所示,由Ncic2个“单级并行CIC插值”装置串联实现。
其中“单级并行CIC插值”装置结构如图7所示,由Nc2个“并行疏状”模块、“并行插值”模块、Ni2个“并行积分”模块和“增益调整”模块组成。由于并行CIC插值模块对数据的增益为M(RM)N-1(由于插值***的为0值,所以增益较并行抽取模块增益小R倍),所以各“单级并行CIC插值”装置输出前会进行增益调整(即除以增益M(RM)N-1)后输出。
这里的“并行疏状”模块和“并行积分”模块与“并行CIC抽取”中的相似;“并行插值”模块为插0值方式。
“多并行FIR”滤波器的结构如图8所示,主要由“数据分配延迟链”模块和“单级并行FIR”滤波器组成。
“数据分配延迟链”模块的移位延迟链长为N+Pc2-1个数据(N为单级并行FIR滤波器的阶数),每个时钟周期从数据分配延迟链的第1至Pc1个存储延迟寄存器输入M个数据,同时以滑动窗口方式输出Pc2个数据组,分别输入到Pc2个“单级并行FIR”滤波器中用于滤波计算。
其中并行CIC抽取装置中的串联级数Ncic1和并行CIC插值装置中的串联级数Ncic2均为大于0的整数,且Ncic1和Ncic2值可以相同,也可以不同;并行积分模块和并行疏状模块的并行数p和q、串联数Ni和Nc均为大于0的整数,且在并行CIC抽取装置和并行CIC插值装置两个模块对应的值可以相同,也可以不同;单级并行FIR滤波器中的阶数N可以为大于0的整数。
“单级并行FIR”滤波器每个***时钟周期可以输出一个滤波结果,Pc2个“单级并行FIR”滤波器在每个时钟周期可以输出Pc2个滤波结果(图中Pc2表示“多并行FIR”滤波器的并行数)。“单级并行FIR”滤波器可以为任何并行结构的FIR滤波器,如常用的偶数阶、系数对称的“单级并行FIR”滤波器结构可以为如图9所示结构(但不限于本结构)。该FIR滤波器传递函数为:
图9中单级并行FIR滤波器阶数为N(N为偶数);h(0)~h(N/2-1)为滤波器系数(可通过“系数寄存器配置”总线接口配置);图下方的方框为累加器结构,这里是以加法器树方式累加,使用流水线方式实现;为时序能满足要求,图中的“加法器”、“乘法器”可以为多级流水线实现;图中所有“D”标记的方框为存储延迟寄存器单元,在实现结构中为“数据分配延迟链”模块中的存储延迟寄存器单元,即图中上方虚线框内的结构为“数据分配延迟链”中的一个“数据组”的结构,Pc2个“单级并行FIR”滤波器依次使用“数据分配延迟链”中的Pc2个“数据组”,每组N个存储延迟寄存器单元,由于采用滑动窗口方式重复利用,则总共使用N+Pc2-1个存储延迟寄存器单元,即“单级并行FIR”滤波器结构图中上方各数据存储延迟寄存器的输出对应从“数据分配延迟链”输出的一个数据组。
类似的,奇数阶“单级并行FIR”滤波器结构如图10(N为奇数),由于为奇数阶,其中间一阶直接进入乘法器(由于一个数据不需要相加,注意若加法器使用流水线方式实现需要将本数据延时与加法器流水线相同时钟周期后再输入到乘法器)与滤波器对应系数相乘后就可输入加法器树进行累加。
以上结构中的累加器可以使用流水线方式实现的加法器树,当然实际应用中不一定为加法器树方式,只要满足每个***时钟周期可多输入、输出一个累加结果的流水线结构均可。
本实用新型中各模块使用流水线方式处理,每个***时钟周期可输入、输出一次数据,只是输入数据到输出数据的延迟周期数D为:
D=D1+Dfir+D2
其中D1为“数字下变频”模块延迟,D2为“数字上变频”模块延时,Dfir为“多并行FIR”滤波器延迟:
D1=Ncic1×(Ni1×P1+Dr1+Nc1)+Ddr1
D2=Ncic2×(Ni2×P2+Dr2+Nc2)+Ddr2
其中Ncic1为“多级并行CIC抽取”装置中“单级并行CIC抽取”装置的级数;Ni1为“单级并行CIC抽取”装置中并行积分模块的级数;P1为“单级并行CIC抽取”装置中并行积分模块的并行数;Dr1为“单级并行CIC抽取”装置中并行抽取模块的延迟数;Nc1为“单级并行CIC抽取”装置中并行疏状模块的级数;Ddr1为“数字下变频”中抽取器的延迟数。Dmult为“多并行FIR”中乘法器的流水线级数;Nfir为FIR滤波器的阶数。Ncic2为“多级并行CIC插值”装置中“单级并行CIC插值”装置的级数;Ni2为“单级并行CIC插值”装置中并行积分模块的级数;P2为“单级并行CIC插值”装置中并行积分模块的并行数;Dr2为“单级并行CIC插值”装置中并行插值模块的延迟数;Nc2为“单级并行CIC插值”装置中并行疏状模块的级数;Ddr2为“数字上变频”中内插器的延迟数。以上公式中的加法器(同减法器)都考虑为使用一级流水线实现,这里计算的延时的单位为***时钟周期。
而使用普通MCU(微型控制器)实现类似结构的滤波器,其计算一个结果的延迟估算为:
由于MCU方式每个时钟周期只能执行一个指令(只考虑单核MCU)Dmcu延时时间内一直忙于计算,无法接收新的数据,而基于FPGA的本实用新型,即使输入到输出有一段延时D,但由于流水线实现方式,在这个延时期间可继续接收新的数据并处理,即数据可以实时输入处理。
本实用新型采用CIC抽取+抽取器+FIR滤波器+CIC插值+内插器的结构。通过抽取来下变频、FIR滤波器滤波后再插值来上变频,以此实现任意截止频率可调;通过前级抽取减小采样频率后进行FIR滤波可以减少FIR滤波器阶数;先抽取后插值结构还可使输入数据点数和输出数据点数相同,这样使本实用新型在设计中任何时候用或不用(旁路)而不影响前级或后级处理;多级CIC抽取和多级CIC插值可以使用较少资源实现较大的抽取和插值倍数;前级使用CIC抽取装置可以减少由于下变频而造成的频谱混叠,后级使用CIC插值装置作为抗镜像滤波;通过CIC抽取、插值与抽取器、内插器配合调整的结构,可灵活调节资源与性能的平衡,更具实用性。
以上结构中各模块都为并行实现:有并行CIC结构的实现方式,特别有其积分部分的实现,巧妙的使用流水线结构实现前后数据相关的并行计算;多并行FIR结构,使用滑动窗口方式分配数据,使用较少存储结构即可实现多并行滤波器。所有模块使用并行实现,可实现高速、实时(无需将数据先存储下来才可滤波)滤波。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本实用新型的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对实用新型专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干变形和改进,这些都属于本实用新型的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。