发明内容
本发明的目的在于避免现有技术的不足之处而提供一种基于1∶4零插值、充分利用系统条件,占用资源小、相位可调的基带48阶FIR滤波优化实现方法及装置,以及精简硬件位宽的方法,以降低系统成本,提高系统运行效率。
本发明的目的可以通过采用以下技术方案来实现:
设计、实施一种相位可调的基带滤波优化实现方法,利用逻辑电路,完成48阶1∶4零插值滤波。尤其是让信号经过并串转换器后分别经四组SDA(串行分布式算法)电路、加法器和延时移位寄存器处理后,由四输入的复用器输出。该优化实现方法适用于所有预设系数的基带FIR(有限冲激响应)成形滤波并具有以下步骤:
A.将数据宽度为m位,速率为n Mcps的数据信号送入并串转换器,得到速率为m*n Mcps的串行码流;
B.将所述串行码流分别送入4相4抽头SDA电路;
C.每组串行SDA电路和加法器有如下处理分步骤:
C1.第一SDA电路进行处理并将处理结果分别送第二SDA电路和第一加法器;
C2.所述第二SDA电路将处理结果分别送第三SDA电路和第一加法器;
C3.所述第一加法器的结果和所述第三SDA电路的结果均送第二加法器;
C4.由第二加法器将运算和送延时移位寄存器;
D.延时移位寄存器每隔16时钟周期将第二加法器送来的数据送复用器并保持;
E.复用器对一至四路延时移位寄存器送来的数据进行复用处理后输出。
设计、制造一种相位可调的基带优化滤波装置,包括若干数字电路,尤其是所述数字电路包括并串转换电路、串行分布式算法SDA电路与加法电路、延时移位寄存器和复用器。
所述SDA电路与加法电路包含4个通道,每个通道含有3个单输入双输出的SDA电路和两个加法器电路;其中第一SDA电路的输入端并连以后接所述并串转换电路的输出;该第一SDA电路的第一输出α1至α4分别接第二SDA电路的输入端;第二输出端β1至β4分别接第一加法器的一个输入端;
所述第二SDA电路的第一输出端α5至α8分别接第三SDA电路的输入端;该第二SDA电路的第二输出端β5至β8分别接所述第一加法器的另一个输入端;该第一加法器的运算和分别送第二加法器的一个输出端;
所述第三SDA电路的第二输出端β9β12分别接所述第二加法器的另一个输入端;该第二加法器的运算和分别送延时移位寄存器;
所述延时移位寄存器电路每16时钟周期将第二加法器送来的数据送复用器;
所述复用器将四组输入信号进行复用处理后输出。
设计、实施一种精简基带优化滤波装置中硬件的位宽并避免溢出的方法,所述硬件包括各串行分布式算法SDA电路中的硬件、加法器延时移位寄存器和复用器,所述SDA电路包括查表ROM和移位累加器,所述SDA电路的四个抽头的系数包括0、a、b、c、d,尤其是,所述精简基带优化滤波装置中硬件位宽并避免溢出的方法包括如下步骤:
J.预先确定基带优化滤波装置中的SDA电路所需系数0、a、b、c、d的二进制值,计算该5个系数的全部组合和值,并将其按排列顺序存入查表ROM;
K.以所述组合和值中最大值的位数为查表ROM的位宽数;
L.步骤K中所述查表ROM的位宽数加上16作为移位累加器的位宽数;
M.步骤L中所述移位累加器的位宽数加1作为与之相连的各加法器的位宽数;
N.以步骤M中所述各加法器各自的位宽数作为与之相连的延时移位寄存器的位宽数;
O.以步骤N中所述各延时移位寄存器最大输出的位数作为复用器的位宽数。
具体实施方式
以下结合附图详述本发明的最佳实施例。
一种相位可调基带滤波优化实现方法,利用逻辑电路,完成48阶1∶4零插值滤波。尤其是让信号经过并串转换器510后分别经四组串行分布式算法SDA电路7101至7112、加法器7201至7208和延时移位寄存器5601至5604处理后,由四输入的复用器430输出。
该优化实现方法适用于所有预设系数的基带FIR(有限冲激响应)成形滤波并具有以下步骤:
A.将数据宽度为m位,一例如16bit,速率为n Mcps,例如1.2288Mcps的数据信号送入并串转换器510,得到速率为m*n Mcps的串行码流511;
B.将所述串行码流511分别送入4相4抽头SDA电路7101至7104;
C.每组串行SDA电路和加法器有如下处理分步骤:
C1.第一SDA电路7101至7104进行处理并将处理结果分别送第二SDA电路7105至7108和第一加法器7201至7204;
C2.所述第二SDA电路7105至7108将处理结果分别送第三SDA电路7109至7112和第一加法器7201至7204;
C3.所述第一加法器7201至7204的结果和所述第三SDA电路7109至7112的结果均送第二加法器7205至7208;
C4.由第二加法器7205至7208将运算和送延时移位寄存器5601至5604;
D.延时移位寄存器5601至5604每隔16时钟周期将第二加法器7205至7208送来的数据送复用器430并保持;
F.复用器430对一至四路延时移位寄存器5601至5604送来的数据进行复用处理后输出。
所述SDA电路内部又包括以下处理步骤:
V1.接收输入信号后由内部4组移位寄存器5211至5214串行处理,依次得出地址码A0-A3的值。
V2.所述地址码A0-A3的值组成A3A2A1A016进制地址,并据以查阅含有系数0、a、b、c、d组合和排列值的查表ROM620。这些系数0、a、b、c、d可以是CDMA2000推荐值。
V3.将查得的值送移位累加器630处理后作为SDA电路的一组输出β。
V4.最后一组移位寄存器5214的串行输出结果作为输出α同时送下一SDA电路的移位寄存器。
一种相位可调的基带优化滤波装置,包括若干数字电路,其特征在于:所述数字电路包括并串转换电路510、串行分布式算法SDA电路与加法电路7、延时移位寄存器56和复用器430;
所述SDA与加法电路7包含4个通道,每个通道含有3个单输入双输出的SDA电路和两个加法器电路;其中第一SDA电路7101至7104的输入端并连以后接所述并串转换电路510的输出;该第一SDA7101至7104电路的第一输出α1至α4分别接第二SDA电路7105至7108的输入端;第二输出端β1至β4分别接第一加法器7201至7204的一个输入端;
所述第二SDA电路7105至7108的第一输出端α5至α8分别接第三SDA电路7109至7112的输入端;该第二SDA7105至7108电路的第二输出端β5至β8分别接所述第一加法器7201至7204的另一个输入端;该第一加法器7201至7204的运算和分别送第二加法器7205至7208的一个输出端;
所述第三SDA电路7109至7112的第二输出端β9至β12分别接所述第二加法器7205至7208的另一个输入端;该第二加法器7205至7208的运算和分别送延时移位寄存器5601至5604;
所述延时移位寄存器电路5601至5604每16时钟周期将第二加法器7205至7208送来的数据送复用器430;
所述复用器430将四组输入信号进行复用处理后输出。
所述多个SDA电路的组成完全相同,每个SDA电路包括4个首尾相连串接而成的移位寄存器即承接输入信号的第一移位寄存器5211和第二、第三移位寄存器5212至5213,以及接有第一输出端α的第四移位寄存器5214;串连回路上有四个抽头,即第一、二、第二、三和第三、四移位寄存器之间以及兼作第一输出端α的第四移位寄存器的输出端;
所述抽头组成地址线A3A2A1A0;
所述四抽头与查表ROM 620相连;该查表ROM620中存有0、a、b、c、d五系数的组合值;所述查表ROM 620的输出接移位累加器630;该移位累加器的输出即为所述SDA电路的第二输出端β。
一种精简基带优化滤波装置中硬件的位宽并避免溢出的方法,所述硬件包括串行分布式算法SDA电路中的硬件、加法器、延时移位寄存器和复用器,所述SDA电路包括查表ROM和移位累加器,所述SDA电路的四个抽头的系数包括0、a、b、c、d,尤其是所述精简基带优化滤波装置中硬件位宽并避免溢出的方法包括如下步骤:
J.预先确定基带优化滤波装置中的SDA电路所需系数0、a、b、c、d的二进制值,计算该5个系数的全部组合和值。并按排列顺序将其存入查表ROM;
K.以所述组合和值中最大值的位数为查表ROM的位宽数;
L.步骤K中所述查表ROM的位宽数加上16作为移位累加器的位宽数;
M.步骤L中所述移位累加器的位宽数加1作为与之相连的各加法器的位宽数;
N.以步骤M中所述各加法器各自的位宽数作为与之相连的各延时移位寄存器的位宽数;
O.以步骤N中所述各延时移位寄存器中最大输出的位数为复用器的位宽数。
为更加清晰理解本发明方案推导过程,对各附图所示细述如下。
图1描述的是现有技术直接实现框图;
如图1所示,硬件由47个延时寄存器110、48个乘法器120、47个加法器130组成。h0,h1,h2,......h47是CDMA2000推荐的FIR系数。硬件实现中用到了48个16bit乘16bit的乘法器120,这种没有优化的乘法器在ASIC或FPGA实现时将占用大量资源。另外,47个位数较大的加法器130也占用较大的资源。
对于1∶4插零输入111,此硬件实现结构整个电路工作时钟为4倍1.2288MHz,没有充分利用CDMA2000系统中可以得到的16倍1.2288MHz时钟来改变电路结构以节省硬件资源。
图2描述的是一种现有技术改进实现图采用KCM方法。改进的硬件结构包括48个基于ROM查表的常系数乘法器210、48个延时寄存器230和47个加法器220组成的延时加法链。基于ROM查表的常系数乘法器210替代了图1中的乘法器120,使硬件实现有所简化。
对于16位的输入,一个基于ROM查表的常系数乘法器210含有一个16×20bit的ROM及累加器,分四次完成乘法功能,因此48个基于ROM查表的常系数乘法器210占用的资源仍较大。延时加法链中的48个延时寄存器230和47个加法器220的位数将较大,占用较大硬件资源。
另外,其硬件常系数乘法器210、延时寄存器230和加法器220的位数大于所需的位数,没有按需配置硬件位宽以节省硬件资源。
为了更好的描述本发明的优化实现方案,下面按优化过程,一步步描述优化,最终得到图7所示的本发明的优化实现框图。
图3描述的是图1的系数表示示意图。1∶4插零输入111的速率为4倍1.2288Mcps,输出320速率也为4倍1.2288Mcps。48个抽头的滤波器320的工作频率为4倍1.2288MHz。抽头系数即FIR系数h0,h1,h2,......h47。
将图3的结构等效为图4描述的等效4相结构。
如图4所示,等效的4相结构中每相为一较小的滤波器,分别为420、421、422、423。滤波器420、421、422、423的抽头系数为图3中48个抽头的滤波器320的系数每隔4个抽取组成,所以每相滤波器的系数为12个。复用器430将4相滤波器420、421、422、423的输出4合1到输出320。
这时,输入410的没有零插值,速率降为1.2288Mcps,因而4相滤波器420、421、422、423的工作频率都降为1.2288MHz。这样就为下一步转变成串行移位结构,创造了工作频率的有利条件。因为对于16位的输入410,串行移位结构将需16倍1.2288MHz。如对于图3中的输入111,串行移位结构将需64倍1.2288MHz,不适合于CDMA2000系统。
图5描述的是由图4结构转变为采用串行移位结构的实现图。硬件由并串转换模块510,4相滤波器520、530、540、550,延时寄存器560及复用器430组成。其中4相滤波器520、530、540、550都改成了串行移位结构,这样就可以用移位相加模块522完成乘法功能,较大的节约了硬件资源。
滤波器520给出了内部串行移位结构,而滤波器530、540、550都类似,故只画出简单框图。
并串转换模块510将16位的输入410转换成串行码流511,当然串行码流511的速率比输入410的1.2288Mcps提高16倍。串行码流511分别流入4相滤波器520、530、540、550,在每相中依次通过12个16bit的移位寄存器521,
在12个抽头处,经移位相加模块522,每16个时钟周期完成一个输入与抽头系数的相乘,然后由11个加法器523将12路的值相加。经延时寄存器560及复用器430输出。
其中并串转换模块510,4相滤波器520、530、540、550的工作频率都为16倍1.2288MHz。
这种串行移位结构为下一步SDA串行分布式算法优化提供了方便。将图5所示的4相滤波器520、530、540、550中的每4个抽头合并,包括4个移位寄存器521、4个移位相加模块522及对应的加法器523,采用SDA串行分布式算法来优化实现。
图6描述的是4抽头SDA串行分布式算法模块结构图。4抽头SDA串行分布式算法模块由4个移位寄存器5211至5214、查表ROM620、移位累加模块630组成。串行输入610由前一个SDA串行分布式算法模块引入或就是图5中的串行码流511,串行输出α引出到下一个SDA串行分布式算法模块。4个抽头形成4bit的地址A3A2A1A0以寻址16个地址空间的ROM620。移位累加模块630在16个时钟周期里完成16次ROM620输出值的移位累加,然后得到4抽头SDA串行分布式算法模块的输出β。
其中查表ROM 620中预先存储了分布式算法的16个可能的部分和值。a,b,c,d代表的是4个抽头的系数,也就是对应图5中,每4个串行相邻的系数,如(h0,h4,h8,h12)、(h16,h20,h24,h28)、(h32,h36,h40,h44)、(h1,h5,h9,h13)......等等。ROM620的位宽由a,b,c,d组合的16个部分和值的实际所需的位数确定,后续的移位累加模块630以及承接4抽头SDA串行分布式算法模块的输出β的其他模块也由此确定位宽。这种按需计算硬件位宽的方法既防止了运算溢出,又节省硬件资源。
每4抽头合并,采用SDA串行分布式算法优化后,整个FIR滤波器则有12个预先配置不同的4抽头SDA串行分布式算法模块。每个4抽头SDA串行分布式算法模块含有的移位寄存器5211至5214、查表ROM620、移位累加模块630都相对较小,占用硬件资源较少,且容易实现。
图7描述的是本发明的优化实现框图。将图5中的FIR滤波器结构经过SDA串行分布式算法优化后,就得到了本发明的最后优化实现结构,如图7所示。其硬件由1个并串转换模块510、12个4抽头SDA串行分布式算法模块7101至7112、8个加法器7201至7208、4个延时寄存器5601至5604及1个复用器430组成。
输入数据410,宽度为16bit,速率为1.2288Mcps,输入并串转换模块510,产生串行码流511,速率为16倍1.2288Mcps。串行码流511分别流入4相中的4抽头SDA串行分布式算法模块7101至7104,4抽头SDA模块在图6中已详细描述。每相中的3个4抽头SDA串行分布式算法模块的输出β经2个多位加法器输出到相应的延时寄存器。4相延时寄存器每16个时钟周期将数据输出并保持。因此,4相延时寄存器560的4路输出431的速率为1.2288Mcps。
4相输出431经4合1复用器430得到FIR滤波器的输出320。FIR滤波器的输出320的速率为4倍1.2288Mcps。
输入数据410经上述处理过程就完成了1∶4零插值48阶FIR滤波。
如上所述,输入数据410速率为1.2288Mcps,由并串转换模块510装载,转换成16倍1.2288Mcps串行输出。在输入数据410的1个码片周期内,改变装载时刻前移或后移,就可以得到滤波器的相位相对前移或后移。因此,滤波器的相位方便可调。
在本发明的硬件优化过程中,采用了按需计算硬件位宽的方法。这种按需计算硬件位宽的方法既防止了运算溢出,又更进一步节省硬件资源。方法实现如下:
如图6和图7所示,在4抽头SDA(串行分布式算法)模块710的ROM 620中要预先存储分布式算法的16个可能的部分和值,即由系数a,b,c,d组合的16个部分和值0、a、b、a+b、c、a+c、b+c、a+b+c、d、a+d、b+d、a+b+d、c+d、a+c+d、b+c+d、a+b+c+d。
在此开始引入按需计算硬件位宽的方法,首先计算出这16个值,以带符号的2进制表示(负数为2的补码形式),从中找出最大位数作为ROM 620的位宽值,因为有12个4抽头SDA(串行分布式算法)模块,系数a、b、c、d不同,需对12个ROM 620按此方法计算硬件位宽。然后在ROM 620位宽的基础上加16就可得到后续移位累加模块630的位宽。图7中的加法器7201至7208、延时寄存器560和复用器430在此基础上也就按需确定了硬件位宽。
例如,系数a,b,c,d按16bit量化的情况下,依常规做法,为了运算不溢出,所有12个4抽头SDA(串行分布式算法)模块中的ROM620的位宽统一为18bit,后续的移位累加模块630以及图7中的加法器7201至7208、延时寄存器560和复用器430都要在此基础上扩展位宽。而采用按需计算硬件位宽的方法,12个4抽头SDA(串行分布式算法)模块中的ROM 620的位宽分别为13bit、14bit、17bit......等等,总是小于等于18bit的。后续移位累加模块630以及图7中的加法器7201至7208、延时寄存器56/*和复用器430在此基础上配置,也相应减少位宽,节省了硬件资源。