一种用于超声信号处理的升采样滤波方法
技术领域
本发明涉及超声信号处理领域,具体地涉及升采样滤波方法。
背景技术
在数据处理中,为了提高采样率,提升系统的性能,通常进行升采样的处理方法,因此提高升采样的性能,降低其实现的资源是十分必要的,特别在多通道系统当中,如果每个通道都要进行升采样处理,当升采样设计和实现不合理时,将会对系统造成较大的不利影响。
下面就以某多通道系统的升采样为例进行说明:
多通道处理部分示意图如图1所示,某个通道的数据经过AD变换,串并转换之后,求和之前,一般需要进行通道处理,对于某些通道数超大的系统,譬如超声系统(通常≥32通道),在各通道数据延时求和以前的处理,需要在每个通道上都进行,因此其总资源消耗都被较大的通道数目放大,因此对这种通道处理的资源进行优化,对提高系统的性价比有较大影响。
由于资源消耗的限制,大量多通道系统都采用了线性插值的方式进行升采样处理,这样能有效降低资源消耗量,但其升采样效果却大打折扣。本发明具体的升采样算法示意图参看图2:
假定超声设备中回波信号的AD采样为20M,升采样率为4,滤波阶数为4,假设D_in0,D_in1,D_in2,D_in3为20M速率输入的超声回波数据,D_out0,D_out1,D_out2,D_out3......为升采样后80M输出的升采样滤波结果,C0-C15为滤波器系数。图中黑色的点表示实际AD后的并行数据,空心的点表示升采样之后的输出的点。升采样滤波阶数为4,表示升采样滤波每4点一组进行,图中划出了从整线回波数据上抽出的任意四点数据做升采样滤波的示意图。假设升采样算法采用4点滤波。即升采样的输出如下式所示:(D_out为升采样输出,D_in为升采样之前的数据)
则升采样算法的具体做法是:
D_out0=D_in0*C0+D_in1*C4+D_in2*C8+D_in3*C12
D_out1=D_in0*C1+D_in1*C5+D_in2*C9+D_in3*C13
D_out2=D_in0*C2+D_in1*C6+D_in2*C10+D_in3*C14
D_out3=D_in0*C3+D_in1*C7+D_in2*C11+D_in3*C15
由此可以看出,该4点滤波器至少需要4个乘法器,3个加法器,如果设备中有64个通道,则需要256个乘法器,192个加法器,而超声回波进行AD转换后至少都是12bit,且回波数据每个通道都是按照10M以上速率12bit源源不断的输入,这对加法器的进位链和乘法器的位宽都是一个较大的消耗,这种资源消耗对目前的硬件器件来说是一个很大的挑战。
另外一种实现升采样的方法是:在如图1所示缓存输出的地方,即图中虚线部分进行升采样,这种方式把缓存输出的数据率直接提高升采样率倍,控制比较复杂,造成控制资源数量较大。
以上两种常见处理方法,其系数都完全固定,这种处理方法灵活性较差,适用范围有限。现有实现升采样插值的技术控制比较复杂,在通道较多的情况下需要的资源将很大,对系统造成较大不利影响,由于硬件的限制,现有技术造成升采样滤波效果不好。
而现有系数可变且阶数较大,升采样滤波效果较好的算法,由于要消耗庞大的硬件乘法器等资源,通常的超声系统中都无法实现,即使实现了其性价比也很低。
发明内容
本发明为解决上述技术问题,提供一种用于超声信号处理的升采样滤波方法。
本发明实现发明目的采用的技术方案是,一种用于超声信号处理的升采样滤波方法,采用可编程门阵列实现升采样滤波,包括以下步骤:
a.先将滤波系数写为2的指数次幂求和的形式,再利用移位和加法运算实现升采样滤波前的各组数据与滤波系数的乘法运算,得到运算结果;
b.当所述升采样滤波前的各组数据中输入点相同且滤波系数相同时,保存第一次由步骤a得到的运算结果;
c.对所述步骤a得到的运算结果进行求和运算,其中,当所述升采样滤波前的各组数据中输入点相同且滤波系数相同时,将所述步骤b保存的运算结果直接延时进行所述求和运算,得到升采样滤波后的数据。
更好地,所述步骤a中,若滤波系数能被2的更高次幂整除,则将滤波系数写为以该更高次幂为底数的指数次幂求和的形式。
更好地,当所述滤波系数不同时,将不同滤波系数具有相同运算操作的部分定义为公共运算部分,将滤波系数拆分为具有所述公共运算部分和非公共运算部分,所述公共运算部分可重复使用。
更好地,在进行所述加法运算时,先进行低位宽加法再进行高位宽加法。
本发明的有益效果是:
1、通过对滤波系数进行调整,以使其为能被2^n(n尽可能大)整除的方法降低滤波器使用的资源;
2、利用滤波系数对称的特点,减少乘法器数量而降低系统资源占用,利用移位相加和加法系数可配的方式实现任意滤波系数的乘法,并利用不同拍的滤波系数的相同部分复用加法器的方法降低资源;
3、在加法时先进行低位宽加法再进行高位宽加法以达到节约资源的目的;
本发明经过以上方法,升采样滤波器需要消耗的资源可降为原来的一半以下,且控制非常简单,只用移位,求和,延时三种方法就可以实现,由于加法器位宽变小,系统工作的主频也显著提升,稳定性和处理能力均得到有效提高。
附图说明
图1,多通道处理部分示意图。
图2,升采样算法示意图。
图3,本发明升采样滤波方法流程图。
具体实施方式
一种用于超声信号处理的升采样滤波方法,采用可编程门阵列实现升采样滤波,升采样滤波方法流程图参看附图3,包括以下步骤:
a.先将滤波系数写为2的指数次幂求和的形式,再利用移位和加法运算实现升采样滤波前的各组数据与滤波系数的乘法运算,得到运算结果;
现有的升采样系统实现的瓶颈在乘法器数量较多,因此本发明改用加法实现乘法的功能,把滤波系数改写成2的指数次幂求和的形式,譬如7=2^2+2^1+2^0;再利用移位和加法实现乘法,譬如:D*7=D<<2+D<<1+D,其中,D表示升采样滤波前的数据,<<2表示向左位移两位,<<1表示向左位移一位,这种方式并不局限于固定的系数,任何系数均可以表示成2的指数次方求和的方式,譬如一个系数C,假设其位宽为4,使C=2^3*k1+2^2*k2+2^1*k3+2^0*k4,通过配置k1-k4为0或1使C为4bit的任意系数,这种方式降低了升采样滤波器对于乘法器的要求,基于这种思路,可以对升采样的滤波系数先进行第一步处理,即满足原有滤波器滤波要求的基础上对滤波系数进行微调,使其能被更高次幂的2的指数次方整除,譬如原来被2整除的,改成被4整除,这样处理后,可以对加法求和过程进行简化,即如果滤波系数C0,C1,C2,C3均能被4整除,则可以使这些滤波系数先右移两位,即提取公因子4,再进行移位和求和得到中间结果后,再左移两位得到运算结果;
b.当所述升采样滤波前的各组数据中输入点相同且滤波系数相同时,保存第一次由步骤a得到的运算结果;
c.对所述步骤a得到的运算结果进行求和运算,其中,当所述升采样滤波前的各组数据中输入点相同且滤波系数相同时,将所述步骤b保存的运算结果直接延时进行所述求和运算,得到升采样滤波后的数据。
通常滤波系数具有对称性,本发明利用滤波系数对称的特点,可以省略某些乘法运算,参看附图2,即
C0=C15;C1=C14;C2=C13;C3=C12;C4=C11;C5=C10;C6=C9;C7=C8;
由于系数的对称性,在某一拍运算时,D_out0=D_in0*C0+D_in1*C4+D_in2*C12+D_in3*C16,此时D_in0*C0是D_out0的组成部分,由于升采样滤波是对点的连续运算,即D_out0-D_out3是对输入点D_in0-D_in3升采样滤波的结果,而滤波结果D_out4-D_out7是对输入点D_in1-D_in4升采样滤波的结果,滤波结果D_out8-D_out11是对输入点D_in2-D_in5滤波的结果,升采样滤波结果D_out12-D_out15是对输入点D_in3-D_in6滤波的结果,这四组滤波输出结果中,其输入均有公共点,且其滤波系数具有对称性,这样对这些公共的部分,可以不用再运算,而直接延时得到结果,譬如D_in3*C15是D_out3的求和组成部分,同时D_in3*C0也是D_out15的求和组成部分,由于C0=C15,这样D_in3*C15运算的结果不仅可以用于D_out3,还可以用于D_out15,同理,D_in3*C12的运算不仅可以用于D_out0,还可用于D_out12的运算,D_in3*C13的运算不仅可以用于D_out1,还可用于D_out13的运算,D_in3*C14的运算不仅可以用于D_out2,还可用于D_out14的运算,这样延时复用之后,相当于滤波阶数降低为原来的一半。
更好地,当所述滤波系数不同时,将不同滤波系数具有相同运算操作的部分定义为公共运算部分,将滤波系数拆分为具有所述公共运算部分和非公共运算部分,所述公共运算部分可重复使用。即:对于D_out0,D_out1,D_out2......,如果他们的四个乘法运算均采用回波采样时钟的4倍时钟进行运算(即80M),则每次只需要4个乘法运算,如果D_out0-D_out3之间有相同的乘法公因子,则加法树可以复用,这样能使加法最少,举例来说,假设C0,C4,C8,C12分别等于-2,4,28,2,C1,C5,C9,C13分别等于-1,6,24,3,则C8=32-4,C9=32-4-4,则其可共用32-4的部分,即上一拍信号左移5位减其左移两位,下一拍仍然先进行这个操作,并在此基础上再减去其本身左移两位的结果,这样一来,把4拍乘法运算的每拍都拆成有一定公共运算部分的操作和非公共运算的操作,公共运算的部分可以共用,同坐这种方式节省资源,在则其可在某些特殊系数下,只需要4个加法器就可以完成整个加法,这样大大缩减了系统资源消耗。
更好地,在进行所述加法运算时,先进行低位宽加法再进行高位宽加法。即:在进行加法运算时,先进行位宽小的加法再进行位宽大的加法对资源也有一定影响,特别当通道数量增加导致加法器数量很大时,影响将很明显,譬如A+B+C,如果A=7,B=65,C=10,则这个加法顺序是不合理的,应该改为A+C+B,因为A+C的结果只需要5位就可以保存,最后求和的结果只需要7位可以保存,而A+B的结果就需要7位才能保存,最终求和的结果需要7位保存,这样A+C+B的做法使保存中间结果的缓存和加法进位链的资源都变少。
在新一代彩色超声中,原有常规乘法器方案无法实现(乘法器数量太多)直接改成用加法和移位实现发现由于通道较多,仍占总资源的25%左右,性价比较差,采用本发明利用系数调整,系数对称,结果延时等方法以后,资源下降为总资源的10%,下降为原设计的一半以下。
最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是本领域的技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。