一种具有高资源利用率的多速率变换滤波器的制作方法

未命名 09-21 阅读:78 评论:0


1.本技术涉及多速率变换滤波器领域,尤其是一种具有高资源利用率的多速率变换滤波器。


背景技术:

2.多速率变换滤波器(multi-rate transform filter)可以在数字信号处理过程中匹配不同的奈奎斯特采样域,通过插值技术和抽取技术实现升采样和降采样的操作以达到适合数字信号处理过程的速率,同时消除镜像且保证不混叠,具有较好的使用灵活性,因而被广泛应用于音频处理、雷达、rru(remote radio unit,射频拉远单元)等领域。
3.多速率变换滤波器实质上也是一种具有线性相位的fir(finite impulse response)滤波器,目前可以通过da分布式算法(distributed algorithm)结合fir滤波器来设计多速率变换滤波器,da分布式算法用查找表替代乘法器从而实现每个比特位的查表求和运算,然后再对各部分进行累加形成最终结果。但是这种设计方法中,da分布式算法对查找表的存储资源需求较大。


技术实现要素:

4.本技术人针对上述问题及技术需求,提出了一种具有高资源利用率的多速率变换滤波器,本技术的技术方案如下:一种具有高资源利用率的多速率变换滤波器,该具有高资源利用率的多速率变换滤波器包括:插值单元,用于根据插值倍数k对各个时钟周期获取到的输入数据x进行时域插值后输出,每个时钟周期输出插值后数据y,每组插值后数据y为一组获取到的位宽为n的输入数据x或者为一组位宽为n的0,输出的每两组输入数据x之间k-1个时钟周期分别输出k-1组0,n和k分别为整数参数;前处理单元,用于对插值单元输出的插值后数据y进行延迟打拍处理得到t组并行的插值后数据y,对t组并行的插值后数据y按照位宽串行划分为p个数据组后分p个时钟周期依次输入到查表单元,每个数据组包括t组并行的位宽为s的局部数据,t为多速率变换滤波器的滤波器抽头系数,s为整数参数,p为时钟裕量且表示时钟速率与输入数据速率的比值;查表单元包括s个相同的查找表和逻辑处理单元,查表单元用于将每个时钟周期输入的每个数据组按照位宽划分为s个数据列后分别对应输入s个查找表,每个数据列包括t位数据,s个查找表并行处理、对各自输入的数据列进行查表并输出对应的查表结果,逻辑处理单元对s个查找表的查表结果进行逻辑处理得到数据组的滤波结果,每个查找表的查表结果分别基于t个滤波器抽头系数构建;后处理单元,用于对查表单元在p个时钟周期依次输出的p个数据组的滤波结果进行后处理运算得到滤波后数据;
抽取单元,用于根据抽取倍数m对滤波后数据进行时域抽取并产生输出数据。
5.其进一步的技术方案为,n是s的整数倍,前处理单元对t组并行的插值后数据y按照位宽串行划分得到的任意第p个数据组包括t组局部数据p,对于任意p≤n/s,任意第t组局部数据p包括第t组插值后数据y中从低位开始的第(p-1)*s+1位数据至第s*p位数据的共s位数据,p和t均为整数参数,且1≤p≤p,1≤t≤t;对于任意p>n/s,任意第t组局部数据p包括共s位0;后处理单元对查表单元在p个时钟周期依次输出的p个数据组的滤波结果进行后处理运算得到滤波后数据包括:对任意第p个时钟输出的第p个数据组的滤波结果执行左移(p-1)*s位的移位操作得到移位后数据,将p个移位后数据相加得到相加结果b,对的二进制结果执行右移q位的移位操作后,取最低n位的二进制结果作为滤波后数据,q+1对查找表中的滤波器抽头系数进行浮点数定点化操作的量化位数,q为整数参数。
6.其进一步的技术方案为,查表单元对任意第p个数据组包含的t组局部数据p划分得到的s个数据列中,任意第s个数据列包括t组局部数据p中每组局部数据p从低位开始的第s位数据,第s个数据列对应输入到第s个查找表中,s为整数参数且1≤s≤s;逻辑处理单元对s个查找表的查表结果进行逻辑处理得到任意第p个数据组的滤波结果包括:对任意第s个查找表的查表结果执行左移s-1位的移位操作得到移位后数据,将s个移位后数据相加得到第p个数据组的滤波结果。
7.其进一步的技术方案为,每个查找表包括g个子查找表和逻辑处理子单元,每个子查找表支持c位输入数据,每个子查找表的查表子结果分别基于h个滤波器抽头系数构建,且t=g*h,g、c、h分别为整数参数;查表单元将每个数据列输入一个查找表得到对应的查表结果包括:查表单元将数据列的t位数据按照输入数据位数c划分为多个并行组,并将各个并行组分别输入查找表中的多个子查找表,各个子查找表并行处理、对各自输入的并行组进行查表并输出对应的查表子结果;每个查找表中的逻辑处理子单元用于对查找表中的各个子查找表的查表子结果进行逻辑处理得到查找表的查表结果。
8.其进一步的技术方案为,每个查找表中的逻辑处理子单元用于对查找表中的各个子查找表的查表子结果进行逻辑处理得到查找表的查表结果,包括:当输入查找表中的t位数据是t组并行的插值后数据y中的符号位数据时,对各个子查找表的查表子结果分别按位取反加1后相加,得到查找表的查表结果;当输入查找表中的t位数据不是t组并行的插值后数据y中的符号位数据时,对各个子查找表的查表子结果直接相加,得到查找表的查表结果。
9.其进一步的技术方案为,确定输入查找表中的t位数据是否是t组并行的插值后数据y中的符号位数据包括:当p≤n/s时,确定第p个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余t位数据是均不是符号位数据;当p>n/s时,确定第n/s个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余t位数据是均不是符号位数据。
10.其进一步的技术方案为,多速率变换滤波器还包括位宽扩展单元,位宽扩展单元用于对每个周期获取到的位宽为n的原始数据进行符号位扩展得到输入数据x,原始数据中从最低位开始的第n位数据为符号位数据,n为整数参数且n<n。
11.其进一步的技术方案为,每个查找表指示不同的输入数据与查表结果之间的对应关系,查找表对不同的输入数据查表输出不同的查表结果,且各个输入数据对应的查表结果基于滤波器抽头系数按照预定计算逻辑计算得到;每个查找表使用的滤波器抽头系数可配置,当滤波器抽头系数发生变化时,可对查找表进行重新配置,得到不同的查表结果。
12.其进一步的技术方案为,插值单元进行时域插值的插值倍数k可配置,和/或,抽取单元进行时域抽取的抽取倍数m可配置。
13.其进一步的技术方案为,插值单元包括长度配置寄存器、格式配置寄存器和状态机,长度配置寄存器的取值为十进制的插值倍数k,格式配置寄存器的取值为k位二进制数据且包含k-1个比特位的取值为0和1个比特位的取值为1,长度配置寄存器的取值和格式配置寄存器的取值可配置;状态机根据长度配置寄存器的取值确定插值倍数k,并对格式配置寄存器的取值中的k位二进制数据重复拼接生成串行单比特码流;状态机依次根据串行单比特码流中的比特位的取值输出插值后数据y,当对应串行单比特码流中的比特位的取值为0时输出一组位宽为n的0,当对应串行单比特码流中的比特位的取值为1时输出获取到的位宽为n的输入数据x。
14.本技术的有益技术效果是:本技术公开了一种具有高资源利用率的多速率变换滤波器,该多速率变换滤波器基于现有的da分布式算法的思想,根据时钟裕量来按照数据位宽进行串行分割为多个数据组,实现对查找表的分时复用,可以提高对查找表的资源利用率,从而可以减少使用的查找表的数量。
15.进一步的,可以对查找表进一步并行分割为多个子查找表,使得使用多个小规模的子查找表就能实现大规模查找表同等的查找功能,有利于减少查找表的查找深度,进一步提高资源利用率,降低对存储资源的需求。
16.另外可以加载不同的滤波器系数实现对查找表内容的动态可重配,使得多速率变换滤波器适应不同场景的使用需要。除了查找表的动态可重配,插值倍数和抽取倍数也动态可重配,提高了该多速率变换滤波器的使用灵活性、扩大了适用范围。
附图说明
17.图1是本技术一个实施例的多速率变换滤波器的结构示意图。
18.图2是一个实例中前处理单元进行延迟打拍处理得到的16组并行的插值后数据以及划分得到的三个数据组的示意图。
19.图3是在另一个实例中前处理单元进行延迟打拍处理得到的16组并行的插值后数据以及划分得到的五个数据组的示意图。
20.图4是对图2中的第一个数据组划分得到的8个数据列分别对应输入8个查找表中的示意图。
21.图5是查表单元在任意一个时钟周期对第p个数据组查表处理得到对应的滤波结
果的处理逻辑示意图。
22.图6是该多速率变换滤波器对查表单元进行分时复用并得到滤波后数据的处理逻辑示意图。
23.图7是一个查找表通过内部的子查找表对一个数据列查表处理得到对应的查表结果的处理逻辑示意图。
24.图8是本技术另一个实施例的多速率变换滤波器的结构示意图。
具体实施方式
25.下面结合附图对本技术的具体实施方式做进一步说明。
26.本技术公开了一种具有高资源利用率的多速率变换滤波器,请参考图1所示的结构框图,该多速率变换滤波器包括依次连接的插值单元、前处理单元、查表单元、后处理单元和抽取单元。其中,查表单元包括s个相同的查找表和逻辑处理单元,s为整数参数且为硬件参数,硬件结构设计完成后便不可修改。图1对s个查找表分别记为查找表blut_1~查找表blut_s。
27.每个查找表blut支持t位输入数据,每个查找表blut指示不同的输入数据与查表结果之间的对应关系,查找表对不同的输入数据查表输出不同的查表结果,每个查找表的查表结果分别基于t个滤波器抽头系数构建,t为整数参数且为硬件参数,硬件结构设计完成后便不可修改。由此使得该多速率变换滤波器支持的最小数据位宽为s、滤波器抽头系数为t、滤波器阶数为t-1。
28.比如在一个实例中,以t=4为例,一个查找表blut支持4位输入数据,则4位输入数据共可以实现16个不同的输入数据,查找表记载16个输入数据与各自的查表结果,且16个查表结果都基于4个滤波器抽头系数w0、w1、w2和w3来构建。在一个实施例中,一个查找表blut的16个不同的输入数据对应的查表结果如下表一所示,则该查找表blut在获取到输入数据为0001时就能查表确定对应的查表结果为w0,该查找表blut在获取到输入数据为0111时就能查表确定对应的查表结果为w0+w1+w2的结果,其他情况类似。
[0029][0030]
在实际应用时,该多速率变换滤波器的所有阶的滤波器抽头系数的求和值为1,那么单个的滤波器抽头系数一定是正数或负数的小数,因此在基于滤波器抽头系数构建查找表的查表结果时,通常还包括按照量化位数q+1对滤波器抽头系数进行浮点数定点化的操作,对每个滤波器抽头系数乘以得到对应的量化值,然后利用每个滤波器抽头系数对应的量化值构建得到查表结果,量化位数q+1可以自定义配置,量化位数q+1中包含一位符号位。
[0031]
本技术对多速率变换滤波器中各个单元的处理过程介绍如下:1、插值单元,用于根据插值倍数k对各个时钟周期获取到的输入数据x进行时域插值后输出,k为整数参数且为软件参数,在硬件结构设计完成后通过软件程序可以配置设定。
[0032]
插值单元每个时钟周期获取到的输入数据x的位宽都为n,如图1中记为x(n),n为整数参数且为硬件参数,硬件结构设计完成后便不可再修改,在进行硬件结构设计时,设计n是s的整数倍。插值单元每个时钟周期获取到的输入数据x并不直接输出,而是进行时域插值后输出,插值单元在每个时钟周期输出插值后数据y,插值后数据y的位宽为n,如图1中记为y(n)。每个时钟周期输出的一组插值后数据y为一组获取到的位宽为n的输入数据x或者为一组位宽为n的0。且输出的每两组输入数据x之间间隔的k-1个时钟周期分别输出k-1组0,也即在相邻的两个时钟周期的输入数据x之间时域插值k-1组0。当k=1时,每个时钟周期输出的一组插值后数据y均为输入数据x,也即插值单元直接将获取到的输入数据x依次输出。
[0033]
比如在一个实例中,以n=32、k=3为例,假设时钟周期1获取到的输入数据x(n)=00000000000000000000001000010010,时钟周期2获取到的输入数据x(n)=00000000000000000011100000011010。则一种时域插值结果为:第一个时钟周期的插值后数据y(n)=000000
00000000000000001000010010,第二个时钟周期的插值后数据y(n)=00000000000000000000000000000000,第三个时钟周期的插值后数据y(n)=00000000000000000000000000000000,第四个时钟周期的插值后数据y(n)=00000000000000000011100000011010。
[0034]
2、前处理单元,用于对插值单元输出的插值后数据y进行延迟打拍处理得到t组并行的插值后数据y,延迟打拍处理时的打拍深度t为滤波器抽头系数相等。
[0035]
然后前处理单元对t组并行的插值后数据y按照位宽串行划分为p个数据组后分p个时钟周期依次输入到查表单元,任意第p个数据组在第p个时钟周期输入查表单元中,每个数据组包括t组并行的位宽为s的局部数据,由此实现了p个数据组对同一个查表单元的分时复用。
[0036]
其中,p为时钟裕量,表示多少时钟拍数输出一个数据,时钟裕量是时钟速率与输入数据速率的比值,该比值肯定为整数,也即p为整数。比如在一个实例中,时钟速率为368.64mhz,输入数据速率为122.88mhz,则时钟裕量p=368.64mhz/122.88mhz=3。结合时钟裕量,该多速率变换滤波器实际支持的数据位宽可以达到s*p。p为整数参数且为软件参数,在硬件结构设计完成后通过软件程序即可配置修改。
[0037]
前处理单元对t组并行的插值后数据y按照位宽串行划分得到的任意第p个数据组包括t组局部数据p,对于任意p≤n/s,任意第t组局部数据p包括第t组插值后数据y中从低位开始的第(p-1)*s+1位数据至第s*p位数据的共s位数据,也即第t组局部数据p包括第t组插值后数据y的y[s*p:(p-1)*s+1]的数据,p和t均为整数参数,且1≤p≤p,1≤t≤t。第1位数据为插值后数据y的最低位。当p>n/s时,除了存在p≤n/s的情况外,还存在p>n/s的情况,则对于任意p>n/s,任意第t组局部数据p包括共s位0。
[0038]
比如在一个实例中,以n=32、k=1为例,插值单元依次输出各组输入数据x,并没有时域插值0。以t=16、p=3、s=8为例,前处理单元进行延迟打拍处理得到16组并行的插值后数据y如图2所示。划分得到的第一个数据组包括16组局部数据1,每组局部数据1包括所属插值后数据y中的第1位至第8位。划分得到的第二个数据组包括16组局部数据2,每组局部数据2包括所属插值后数据y中的第9位至第16位。划分得到的第三个数据组包括16组局部数据3,每组局部数据3包括所属插值后数据y中的第17位至第24位。得到的三个数据组分别如图2所示。然后前处理单元分三个时钟周期将三个数据组分别输入查表单元,第一个时钟周期将第一个数据组输入查表单元、第二个时钟周期将第二个数据组输入查表单元、第三个时钟周期将第三个数据组输入查表单元。
[0039]
比如在另一个实例中,以s=8且16组并行的输入数据x仍然如图2所示,但p=5为例,则划分得到的第一个数据组包括16组局部数据1,每组局部数据1包括所属插值后数据y中的第1位至第8位。划分得到的第二个数据组包括16组局部数据2,每组局部数据2包括所属插值后数据y中的第9位至第16位。划分得到的第三个数据组包括16组局部数据3,每组局部数据3包括所属插值后数据y中的第17位至第24位。划分得到的第四个数据组包括16组局部数据4,每组局部数据4包括所属插值后数据y中的第25位至第32位。划分得到的第五个数据组包括16组局部数据5,每组局部数据5包括8位0。得到的五个数据组分别如图3所示。然后前处理单元分五个时钟周期将五个数据组分别输入查表单元,第一个时钟周期将第一个数据组输入查表单元、第二个时钟周期将第二个数据组输入查表单元、第三个时钟周期将第三个数据组输入查表单元、第四个时钟周期将第四个数据组输入查表单元、第五个时钟周
期将第五个数据组输入查表单元。
[0040]
3、查表单元用于将每个时钟周期输入的每个数据组按照位宽划分为s个数据列后分别对应输入s个查找表,每个数据列包括t位数据。
[0041]
对任意包含t组局部数据p的第p个数据组,查表单元对该第p个数据组划分得到的s个数据列中,任意第s个数据列包括t组局部数据p中每组局部数据p从低位开始的第s位数据,第s个数据列对应输入到第s个查找表中,s为整数参数且1≤s≤s。比如对第p个数据组划分得到的第一个数据列包括每组局部数据p的最低位、划分得到的第二个数据列包括每组局部数据p最低位开始的第2位,依此类推。
[0042]
比如在图2的实例中,查表单元对第一个数据组划分得到8个数据列,第一个数据列包括16组局部数据1中每组局部数据1从低位开始的第1位数据,第二个数据列包括16组局部数据1中每组局部数据1从低位开始的第2位数据,以他依此类推,划分得到的8个数据列的示意图如图4所示。
[0043]
s个查找表并行处理、对各自输入的数据列进行查表并输出对应的查表结果。比如在图4的实例中,8个查找表blut分别对输入的数据列中的t位数据进行查表输出对应的查表结果,且8个查找表blut并行处理。
[0044]
然后逻辑处理单元对s个查找表的查表结果进行逻辑处理得到数据组的滤波结果。在一个实施例中,逻辑处理单元对任意第s个查找表的查表结果执行左移s-1位的移位操作得到移位后数据,将s个移位后数据相加得到第p个数据组的滤波结果。请参考图5示出了查表单元对任意第p个数据组的逻辑处理流程。
[0045]
在一个实施例中,当各个输入数据x是无符号数时,各个时钟裕量输入到各个查找表中的数据列均不是符号位数据,则逻辑处理子单元均直接对该第s个查找表的查表结果执行左移s-1位的移位操作得到移位后数据。在另一个实施例中,各个输入数据x还分别包括符号位,且符号位为0表示输入数据x为正数,符号位为1表示输入数据x为负数,则逻辑处理单元对s个查找表的查表结果进行逻辑处理包括:当输入任意第s个查找表中的t位数据是t组并行的插值后数据y中的符号位数据时,对该第s个查找表的查表结果按位取反加1(也即数学取反)后,再执行左移s-1位的移位操作得到移位后数据。否则,当输入任意第s个查找表中的t位数据不是t组并行的插值后数据y中的符号位数据时,直接对该第s个查找表的查表结果执行左移s-1位的移位操作得到移位后数据。
[0046]
而在确定每个输入数据x中的符号位数据时,分为两种情况:(1)当p≤n/s时,确定第p个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余均不是符号位数据。比如在图2的实例中,取第三个时钟裕量输入的第三个数据组中,输入到blut_8中的第8个数据列的t位数据为符号位数据,其余均不是符号位数据。(2)当p>n/s时,确定第n/s个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余t位数据均不是符号位数据。比如在图3的实例中,确定第四个时钟裕量输入的第四个数据组中,输入到blut_8中的第8个数据列的t位数据为符号位数据,其余均不是符号位数据。其中在硬件设计完成后,n/s就是已知的,因此上述判断逻辑并不需要实时计算除法,这种确定符号位数据的方法易于实现,无需增加额外的资源。
[0047]
4、后处理单元,用于对查表单元在p个时钟周期依次输出的p个数据组的滤波结果
进行后处理运算得到滤波后数据。由于第p个数据组包括原始的插值后数据y中从低位开始的第(p-1)*s+1位数据至第s*p位数据,因此得到的每个数据组的滤波结果要按照数据组在插值后数据中所占用的位数进行移位,包括:对任意第p个时钟输出的第p个数据组的滤波结果执行左移(p-1)*s位的移位操作得到移位后数据,然后将p个移位后数据相加得到相加结果b,并对相加结果b按照量化位数q+1进行量化截位得到滤波后数据,q+1是对查找表中的滤波器抽头系数进行浮点数定点化操作的量化位数,且q+1不大于查找表的存储位宽。得到滤波后数据的方法包括首先计算的二进制结果,然后对该二进制结果执行右移q位的移位操作后,取最低n位的二进制结果作为滤波后数据。该量化截位的操作一方面可以保证该多速率变换滤波器的增益一致,另一方面可以使得该多速率变换滤波器的输出位宽是确定的。
[0048]
该多速率变换滤波器对查表单元的分时复用的示意图以及后处理单元执行的后处理运算的逻辑示意图如图6所示。则比如在图2的实例中,保留第一个数据组的滤波结果不变,对第二个数据组的滤波结果左移8位,对第三个数据组的滤波结果左移16位,然后将三者相加,最后按照量化位数进行量化截位得到滤波后数据。
[0049]
5、抽取单元,用于根据抽取倍数m对滤波后数据进行时域抽取并产生输出数据y,也即将每m个时钟周期的滤波后数据抽取出一个滤波后数据作为输出数据y。m为整数参数且为软件参数,在硬件结构设计完成后通过软件程序即可以配置修改。
[0050]
在本技术这种结构的多速率变换滤波器中,如上述举例可以看出,当t的取值较大时,会导致每个查找表blut的查找深度呈指数级上升,比如上述表一举例以t=4为例的查找表blut为例。而在图2和图4的应用实例中,t=8,此时会导致查找表blut的查找深度远远大于表一所示的查找深度,会导致较大的存储资源消耗。因此在另一个实施例中对每个查找表blut进一步划分以降低查找深度,则每个查找表包括g个子查找表slut和逻辑处理子单元,g个子查找表slut分别记为slut_1~slut_g。每个子查找表支持c位输入数据,每个子查找表slut的查表子结果分别基于h个滤波器抽头系数构建,且t=g*h,g、c、h分别为整数参数且g、c、h均为硬件参数,在硬件结构设计完成后便不可再修改。当每个查找表blut包括多个子查找表slut时,量化位数q+1不大于子查找表slut的存储位宽。
[0051]
每个子查找表slut的工作原理与查找表类似,比如一个子查找表slut的16个不同的输入数据对应的查表子结果如上述表一所示,该子查找表slut的查表子结果分别基于h=4个滤波器抽头系数w0、w1、w2、w3构建。同样的,子查找表slut与blut类似,也存在对滤波器抽头系数的浮点数定点化过程。一个查找表blut包含的各个子查找表slut基于不同的滤波器抽头系数构建,比如另一个子查找表slut的查表子结果分别基于h=4个滤波器抽头系数w4、w5、w6、w7构建。当一个查找表blut包含多个子查找表slut,各个子查找表slut使用不同的滤波器抽头系数时,一个查找表blut就能基于多个低阶的子查找表实现较高的滤波器抽头系数。比如当整个多速率变换滤波器的滤波器抽头系数为64时,若直接使用查找表blut,则每个blut基于64个滤波器抽头系数构建,查找深度非常大。而当每个blut包括16个子查找表slut时,每个子查找表slut基于4个滤波器抽头系数构建,在同样实现64个滤波器抽头系数的基础上,每个子查找表slut的查找深度都较小,由此可以大大减少查找深度,降低存储资源的消耗。
[0052]
则查表单元将每个数据列输入一个查找表得到对应的查表结果包括:将数据列的
t位数据按照每个子查找表slut的输入数据位数c划分为多个并行组。划分得到的并行组的数量不超过g,也即可以使用一个查找表blut中的所有子查找表slut,也可以只使用一个查找表blut中的部分子查找表slut。
[0053]
每个并行组包括数据列的t位数据中连续的若干位数据,当t%c=0时,划分得到的每个并行组分别包括连续的c位数据。当t%c≠0,划分得到的其中一个并行组包括连续的t%c位数据、其余各个并行组分别包括连续的c位数据。其中,%表示求余符号。
[0054]
然后将各个并行组分别输入查找表中的多个子查找表,各个子查找表并行处理、对各自输入的并行组进行查表并输出对应的查表子结果。
[0055]
比如基于图4的实例,以每个查找表blut包括g=16个子查找表slut为例,每个子查找表slut的查找逻辑均如上述表一所示,但使用不同的滤波器抽头系数构。16个子查找表slut分别记为slut_1~slut_16。则在将第一个数据列输入查找表blut_1时,将第一个数据列的16位数据按照单个子查找表slut的输入数据位数c=4划分为4个并行组,4个并行组分别输入slut_1、slut_2、slut_3、slut_4,如图7所示。则当基于滤波器抽头系数w0、w1、w2、w3构建查找子结果的slut_1如上表一所示时,slut_1得到查表子结果为w0+w1的结果,其他子查找表slut的查表同理。
[0056]
得到各个子查找表slut的查表子结果后,每个查找表中的逻辑处理子单元用于对查找表中的各个子查找表的查表子结果进行逻辑处理得到查找表的查表结果。
[0057]
在一个实施例中,当输入任意第s个查找表中的t位数据是t组并行的插值后数据y中的符号位数据时,逻辑处理子单元对该第s个查找表中的各个子查找表的查表子结果分别按位取反加1(也即数学取反)后相加,得到查找表的查表结果。否则,对各个子查找表的查表子结果直接相加,得到查找表的查表结果,如图7所示。需要说明的是,当每个查找表blut包括多个子查找表slut以及逻辑处理子单元时,由于逻辑处理子单元已经对符号位数据做了判断处理,因此逻辑处理单元无需再重复处理,直接对各个查找表的查表结果执行左移操作后相加。
[0058]
在另一个实施例中,首先对各个子查找表slut输出的查表子结果扩展位宽后再计算查找表的查表结果,这是因为子查找表slut得到查表子结果并相加后的位宽为n+q+1,所以为了防止slut输出的查表子结果左移溢出导致符号位缺失错误,以及防止后续方法中左移溢出导致符号位缺失错误的现象出现,首先进行扩展位宽。
[0059]
在一个实施例中,插值单元在每个时钟周期获取到的输入数据x可以直接是输入到该多速率变换滤波器中的原始数据,也可以不是输入到该多速率变换滤波器中的原始数据。假设输入到该多速率变换滤波器中的原始数据的位宽为n,记为x(n),n为整数参数,则有n≤s*p,使得划分得到的p个数据组至少包含原始数据的全部n位数据。按照数据的通用格式,原始数据的最高位为符号位,也即原始数据中从最低位开始的第n位数据为符号位数据。
[0060]
基于图1所示的结构,该多速率变换滤波器只能获取位宽n=n的原始数据,则插值单元在每个时钟周期获取到的输入数据x直接是输入到该多速率变换滤波器中的原始数据,在这种情况中,为了满足n≤s*p的要求,该多速率变换滤波器在硬件结构设计完成固定参数s和n的取值后,只能适用于p≥n/s的应用场景。
[0061]
在另一个实施例中,请参考图8,该多速率变换滤波器还包括位宽扩展单元,则该
多速率变换滤波器可以获取位宽n<n的原始数据,位宽扩展单元用于对每个周期获取到的位宽为n的原始数据进行符号位扩展得到输入数据x,当原始数据进的符号位数据为0时,位宽扩展单元在原始数据的高位补0直至位宽为n;当原始数据进的符号位数据为1时,位宽扩展单元在原始数据的高位补1直至位宽为n。
[0062]
比如在一个图2的实例中,位宽扩展单元获取到的原始数据的位宽为17,位宽扩展单元对原始数据进行符号位扩展到位宽为32的输入数据x。比如第一组原始数据x(17)=00000001000010010,对应的那个符号位扩展后得到的第一组输入数据x(32)=00000000000000000000001000010010,对应的输出第一组插值后数据y(32)=00000000000000000000001000010010。则按照本技术提供的确定符号位数据的方法,在s=8、p=3的情况下,会确定将每组插值后数据y从最低位开始第24位作为符号位数据。
[0063]
本技术的多速率变换滤波器除了有较高的资源利用率之外,还具有较强的灵活性,包括如下三方面的可配置:(1)各个查找表blut的可配置。
[0064]
每个查找表指示不同的输入数据与查表结果之间的对应关系,查找表对不同的输入数据查表输出不同的查表结果,且各个输入数据对应的查表结果基于滤波器抽头系数按照预定计算逻辑计算得到。每个查找表使用的滤波器抽头系数可配置,当滤波器抽头系数发生变化时,可对查找表进行重新配置,得到不同的查表结果。
[0065]
比如对应于上述表一,当滤波器抽头系数修改为使用w4、w5、w6和w7时,在保持预定计算逻辑不变时,一个查找表blut的16个不同的输入数据对应的查表结果如下表二所示:
[0066]
则输入数据同样是0001时,在表一中对应的查表结果为w0,而修改后在表二中对应的查表结果为w4,在不改变硬件结构的基础上,通过修改滤波器抽头系数即可重新配置
查找表的内容,实现查找表中的内容动态可配置,继而实现整个多速率变换滤波器的可重配置,使得该多速率变换滤波器可以适应不同场合的使用需要。需要说明的是,该举例中使用的查表结果是未对滤波器抽头系数进行浮点数定点化时的结果,增加了浮点数定点化后也是同理。
[0067]
(2)插值单元进行时域插值的插值倍数k可配置。
[0068]
也即本技术的多速率变换滤波器可支持不同的插值倍数k,进一步满足不同场合的使用需要。比如在一个nr50m(复信号)带宽(61.44m采样率)的应用场景下,需要在122.88m下混频,那么配置插值倍数k=2可实现。而在另外一个场景是一个lte20m带宽(30.72)需要在122.88m下混频,那么需要配置插值倍数k=4可实现,通过灵活配置插值倍数k可以提高该多速率变换滤波器的灵活性。
[0069]
本技术利用两个配置寄存器结合状态机来实现对插值倍数k的配置,但无论如何配置,插值倍数k始终满足输入数据速率*k不大于时钟频率的要求。则插值单元包括长度配置寄存器、格式配置寄存器和状态机,长度配置寄存器的取值为十进制的插值倍数k,格式配置寄存器的取值为k位二进制数据且包含k-1个比特位的取值为0和1个比特位的取值为1,长度配置寄存器的取值和格式配置寄存器的取值可配置。状态机根据长度配置寄存器的取值确定插值倍数k,并对格式配置寄存器的取值中的k位二进制数据重复拼接生成串行单比特码流,串行单比特码流的速率为输入数据速率*k。状态机依次根据串行单比特码流中的比特位的取值输出插值后数据y,当对应串行单比特码流中的比特位的取值为0时输出一组位宽为n的0,当对应串行单比特码流中的比特位的取值为1时输出获取到的位宽为n的输入数据x。
[0070]
比如在一个实例中,长度配置寄存器的取值的3,格式配置寄存器的取值为001,则状态机对格式配置寄存器的取值中的k位二进制数据重复拼接生成串行单比特码流=001001001
……
,则状态机根据串行单比特码流中的比特位的取值,在第一个时钟周期输出一组位宽为n的0,在第二个时钟周期输出一组位宽为n的0,在第三个时钟周期输出一组位宽为n的输入数据x,在第四个时钟周期输出一组位宽为n的0,依此类推,实现k=3倍插值。
[0071]
在该实例中,格式配置寄存器的取值只需满足包含k-1个比特位的取值为0和1个比特位的取值为1的要求即可,因此格式配置寄存器的取值还可以配置为010,对应生成串行单比特码流=010010010
……
,同样可以实现k=3倍插值。同样的格式配置寄存器的取值还可以配置为100,也可以实现k=3倍插值。
[0072]
另外,在重新配置的插值倍数k不是2的整数幂时,也即当不是整数时,那么在重新配置插值倍数k后,还包括对各个查找表进行适应性更新的步骤,包括对各个查找表使用的各个滤波器抽头系数分别乘以k,也即比如对于表一所示的查找表,将使用的滤波器抽头系数w0、w1、w2、w3分别对应更新为k*w0、k*w1、k*w2、k*w3,则在按照量化位数q+1进行浮点数定点化后对应的查表结果分别为、、、。
[0073]
(3)抽取单元进行时域抽取的抽取倍数m可配置。通过改变计数脉冲即可实现对抽取倍数m的配置。
[0074]
以上所述的仅是本技术的优选实施方式,本技术不限于以上实施例。可以理解,本
领域技术人员在不脱离本技术的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本技术的保护范围之内。

技术特征:
1.一种具有高资源利用率的多速率变换滤波器,其特征在于,所述具有高资源利用率的多速率变换滤波器包括:插值单元,用于根据插值倍数k对各个时钟周期获取到的输入数据x进行时域插值后输出,每个时钟周期输出插值后数据y,每组插值后数据y为一组获取到的位宽为n的输入数据x或者为一组位宽为n的0,输出的每两组输入数据x之间k-1个时钟周期分别输出k-1组0,n和k分别为整数参数;前处理单元,用于对所述插值单元输出的插值后数据y进行延迟打拍处理得到t组并行的插值后数据y,对t组并行的插值后数据y按照位宽串行划分为p个数据组后分p个时钟周期依次输入到查表单元,每个数据组包括t组并行的位宽为s的局部数据,t为所述多速率变换滤波器的滤波器抽头系数,s为整数参数,p为时钟裕量且表示时钟速率与输入数据速率的比值;所述查表单元包括s个相同的查找表和逻辑处理单元,所述查表单元用于将每个时钟周期输入的每个数据组按照位宽划分为s个数据列后分别对应输入s个查找表,每个数据列包括t位数据,s个查找表并行处理、对各自输入的数据列进行查表并输出对应的查表结果,所述逻辑处理单元对s个查找表的查表结果进行逻辑处理得到所述数据组的滤波结果,每个查找表的查表结果分别基于t个滤波器抽头系数构建;后处理单元,用于对所述查表单元在p个时钟周期依次输出的p个数据组的滤波结果进行后处理运算得到滤波后数据;抽取单元,用于根据抽取倍数m对所述滤波后数据进行时域抽取并产生输出数据。2.根据权利要求1所述的具有高资源利用率的多速率变换滤波器,其特征在于,n是s的整数倍,所述前处理单元对t组并行的插值后数据y按照位宽串行划分得到的任意第p个数据组包括t组局部数据p,对于任意p≤n/s,任意第t组局部数据p包括第t组插值后数据y中从低位开始的第(p-1)*s+1位数据至第s*p位数据的共s位数据,p和t均为整数参数,且1≤p≤p,1≤t≤t;对于任意p>n/s,任意第t组局部数据p包括共s位0;后处理单元对所述查表单元在p个时钟周期依次输出的p个数据组的滤波结果进行后处理运算得到滤波后数据包括:对任意第p个时钟输出的第p个数据组的滤波结果执行左移(p-1)*s位的移位操作得到移位后数据,将p个移位后数据相加得到相加结果b,对的二进制结果执行右移q位的移位操作后,取最低n位的二进制结果作为滤波后数据,q+1对所述查找表中的滤波器抽头系数进行浮点数定点化操作的量化位数且q为整数参数。3.根据权利要求2所述的具有高资源利用率的多速率变换滤波器,其特征在于,所述查表单元对任意第p个数据组包含的t组局部数据p划分得到的s个数据列中,任意第s个数据列包括t组局部数据p中每组局部数据p从低位开始的第s位数据,第s个数据列对应输入到第s个查找表中,s为整数参数且1≤s≤s;逻辑处理单元对s个查找表的查表结果进行逻辑处理得到任意第p个数据组的滤波结果包括:对任意第s个查找表的查表结果执行左移s-1位的移位操作得到移位后数据,将s个移位后数据相加得到所述第p个数据组的滤波结果。
4.根据权利要求3所述的具有高资源利用率的多速率变换滤波器,其特征在于,每个查找表包括g个子查找表和逻辑处理子单元,每个子查找表支持c位输入数据,每个子查找表的查表子结果分别基于h个滤波器抽头系数构建,且t=g*h,g、c、h分别为整数参数;所述查表单元将每个数据列输入一个查找表得到对应的查表结果包括:所述查表单元将所述数据列的t位数据按照输入数据位数c划分为多个并行组,并将各个并行组分别输入所述查找表中的多个子查找表,各个子查找表并行处理、对各自输入的并行组进行查表并输出对应的查表子结果;每个查找表中的逻辑处理子单元用于对所述查找表中的各个子查找表的查表子结果进行逻辑处理得到所述查找表的查表结果。5.根据权利要求4所述的具有高资源利用率的多速率变换滤波器,其特征在于,所述每个查找表中的逻辑处理子单元用于对所述查找表中的各个子查找表的查表子结果进行逻辑处理得到所述查找表的查表结果,包括:当输入所述查找表中的t位数据是t组并行的插值后数据y中的符号位数据时,对各个子查找表的查表子结果分别按位取反加1后相加,得到所述查找表的查表结果;当输入所述查找表中的t位数据不是t组并行的插值后数据y中的符号位数据时,对各个子查找表的查表子结果直接相加,得到所述查找表的查表结果。6.根据权利要求5所述的具有高资源利用率的多速率变换滤波器,其特征在于,确定输入所述查找表中的t位数据是否是t组并行的插值后数据y中的符号位数据包括:当p≤n/s时,确定第p个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余t位数据是均不是符号位数据;当p>n/s时,确定第n/s个时钟裕量输入到第s个查找表中的第s个数据列的t位数据是t组并行的插值后数据y中的符号位数据、其余t位数据是均不是符号位数据。7.根据权利要求1所述的具有高资源利用率的多速率变换滤波器,其特征在于,所述多速率变换滤波器还包括位宽扩展单元,所述位宽扩展单元用于对每个周期获取到的位宽为n的原始数据进行符号位扩展得到输入数据x,所述原始数据中从最低位开始的第n位数据为符号位数据,n为整数参数且n<n。8.根据权利要求1所述的具有高资源利用率的多速率变换滤波器,其特征在于,每个查找表指示不同的输入数据与查表结果之间的对应关系,所述查找表对不同的输入数据查表输出不同的查表结果,且各个输入数据对应的查表结果基于滤波器抽头系数按照预定计算逻辑计算得到;每个查找表使用的滤波器抽头系数可配置,当滤波器抽头系数发生变化时,可对查找表进行重新配置,得到不同的查表结果。9.根据权利要求1所述的具有高资源利用率的多速率变换滤波器,其特征在于,所述插值单元进行时域插值的插值倍数k可配置,和/或,所述抽取单元进行时域抽取的抽取倍数m可配置。10.根据权利要求9所述的具有高资源利用率的多速率变换滤波器,其特征在于,所述插值单元包括长度配置寄存器、格式配置寄存器和状态机,所述长度配置寄存器的取值为十进制的插值倍数k,所述格式配置寄存器的取值为k位二进制数据且包含k-1个比特位的取值为0和1个比特位的取值为1,所述长度配置寄存器的取值和所述格式配置寄存器的取值可配置;所述状态机根据所述长度配置寄存器的取值确定插值倍数k,并对所述格式配置寄存
器的取值中的k位二进制数据重复拼接生成串行单比特码流;所述状态机依次根据串行单比特码流中的比特位的取值输出插值后数据y,当对应串行单比特码流中的比特位的取值为0时输出一组位宽为n的0,当对应串行单比特码流中的比特位的取值为1时输出获取到的位宽为n的输入数据x。

技术总结
本申请公开了一种具有高资源利用率的多速率变换滤波器,涉及多速率变换滤波器领域,该多速率变换滤波器中的插值单元对输入数据进行K倍时域插值后输出,前处理单元进行延迟打拍处理得到多组并行数据后,按照位宽串行划分为多个数据组分时输入查表单元中进行查表处理,后处理单元对查表单元分时输出的各个数据组的滤波结果进行后处理运算得到滤波后数据,再由抽取单元实现M倍抽取。该多速率变换根据时钟裕量来按照数据位宽对数据进行串行分割为多个数据组,实现对查找表的分时复用,从而可以减少使用的查找表的数量,提高对查找表的资源利用率,减少查找表的存储资源需求。减少查找表的存储资源需求。减少查找表的存储资源需求。


技术研发人员:朱敏
受保护的技术使用者:无锡沐创集成电路设计有限公司
技术研发日:2023.08.18
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐