一种超声增益计算快速求解方法和系统
技术领域
本发明涉及超声数字信号处理技术领域,特别是指一种超声增益计算快速求解方法和系统。
背景技术
近来随着集成电路、数字信号处理技术的高速发展,掌上超声医疗扫查仪,凭借灵活、小巧实用性,越来越受到青睐,而该仪器增益调节与计算是必须用到的功能,快速灵活的增益调节功能是衡量整个仪器的测量实时性与准确性关键因素之一,以便更好的对组织结构的图像纹理进行分析。传统的增益调节技术靠模拟放大器、全数字查找表、CORDIC算法与系统函数库等来进行计算,不但使得硬件系统复杂,消耗较多的资源,而且运算速度也受到限制。如经典的查找表法会占用大量内存,而CORDIC算法需多次迭代、系统库函数会降低运算效率等。已经极大影响了该仪器的实时性与实用性。故通过一些快速、灵活的数字信号处理算法来提升增益的计算效率,即对数函数求解效率,将非常有必要。
FPGA作为一种现场可编程逻辑门技术,鉴于内部可编程性、并行快速处理能力,已经成为掌上超声仪器中不可缺少的信号处理模块,而增益dB计算作为一个常用的功能,涉及一个对数函数求解过程,如在进行多普勒血流检测中需要测量回波频谱峰值M的dB值,则dB=20log10(M),该函数属于超越函数,不能用简单求解方法实现。本专利将基于FPGA结合查找表、泰勒级数等手段快速实现其计算。
发明内容
本发明提出一种超声增益计算快速求解方法和系统,解决了现有技术中超声回波频谱增益不能用简单、快速方法计算的问题,如经典的查找表法会占用大量内存,而CORDIC算法需多次迭代、系统库函数会降低运算效率等。
本发明的技术方案是这样实现的:
一种超声增益计算快速求解方法,具体包括以下步骤:
S1,对超声增益计算公式进行底数变换,通过移位比较法求出超声回波频域信号幅度值的对数估计值,并分离出误差量;
S2,对误差量高位数据进行定点化对数值查表计算,分离出小误差量;
S3,对误差量低位数据通过泰勒级数二级展开求解小误差量,完成超声增益计算。
作为本发明的一个优选实施例,步骤S1对超声增益计算公式进行底数变换具体指的是将超声增益计算公式的底数10转换为底数2。
作为本发明的一个优选实施例,步骤S3中对误差量低位数据通过泰勒级数二级展开求解小误差值具体指的是对误差量低位Bit数通过泰勒级数二级展开与除法到定点化乘法转换求解小误差量的对数值。
作为本发明的一个优选实施例,步骤S1-S3基于FPGA并行技术执行计算过程。
一种超声增益计算快速求解系统,具体包括
一级误差估算单元,对超声增益计算公式进行底数变换,通过移位比较法求出超声回波频域信号幅度值的对数估计值,并分离出误差量;
二级误差逼近单元,对误差量高位Bit数进行定点化对数值查表计算,分离出小误差量;
三级误差逼近单元,对误差量低位Bit数通过泰勒级数二级展开求解小误差量以缩小误差。
作为本发明的一个优选实施例,所述一级误差估算单元对超声增益计算公式进行底数变换,具体指的是将超声增益计算公式的底数10转换为底数2。
作为本发明的一个优选实施例,三级误差逼近单元,对误差量低位数据通过泰勒级数二级展开与除法到定点化乘法转换求解小误差量的对数值以缩小误差。
本发明的有益效果在于:对超声频域信号增益计算通过三次求解方案逼近实现,首先对计算公式进行变换,通过移位比较法求出最高位对应的位序列号,计算出一个粗的对数值,其次,误差量高位字节数据进行定点化对数值查表计算,进一步分离出小误差量,再次,误差量低位字节通过泰勒级数二级展开精细求解小误差值,在保证精度的条件下具有较高的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种超声增益计算快速求解方法的流程图;
图2为掌上超声控制系统框架图;
图3是移位比较法FPGA求粗增益值原理图;
图4是增益信号高位字节数据定点化对数值查表计算架构;
图5是增益信号低位字节数泰勒级数小误差精细求解原理图;
图6是FPGA求解增益输出结果图;
图7是与理论值比对误差分布图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提出了一种超声增益计算快速求解方法,下面以FPGA并行技术为例进行详细说明,具体包括以下步骤:
S1,对超声增益计算公式进行底数变换,将超声增益计算公式的底数10转换为底数2,通过移位比较法求出超声回波频域信号幅度值的对数估计值,并分离出误差量;
图2为掌上超声控制系统框架图,上位机控制整个掌上超声仪器的工作模式(包括增益计算),FPGA通过dB求解算法,把计算结果返回上位机。
FPGA增益计算功能的衡量单位为dB,而超声频域信号转换后还需要把超声回波频域信号幅度值(M二进制存储)转换成dB,即dB=20log10(M),所以需要将底数10转换为底数2,式(1)为其变换过程
对M进行分解,假设M为32bit位宽数,则0≤M≤232-1,可分解为M=2k+σk-12k-1+···+σ121+σ020,其中k∈N,k≤31,σi={0,1},i∈N,i≤30,其分解原理如图3所示,下面分析对数估计值k的求解方法,通过移位比较法求取其值,先初始化一个计数器变量count=1与一个32bit数A=“10000000000000000000000000000000”,其步骤如下:
①计算A与M的与值B=A&M,看是否B=A,若不等于则执行步骤②,否则找到k=32-count值,退出计算;
②将A右移1位,即A=A>>1,同时计数器变量递增:count=count+1;跳转到①。
通过上面的移位比较法求得k值,便可以估计增益粗值R0,如式(2)。
由式(2)可知,可以预估出幅度值M的增益dB一级估计值
其产生误差相关量Δ
0,可由式(3)表达。
S2,对误差量高位Bit数进行定点化对数值查表计算,分离出小误差量;
针对式(3)的误差量Δ0,对其进一步分解,表达式为(4)。
式(3)中m为一设定的整数,通过这个值来衡量Δ
0高位Bit数位宽,可以预估出近似值
产生误差量相关量Δ
1,可由式(5)表达。
针对式(4)中的近似求解值,m值可在具体工程实践中进行设定,如本文设定m=6,故只需2
6=64个查表数就可以精准求解
的定点化值(如扩大2
32倍取整),图4为对增益信号高位Bit数定点化对数值查表计算架构,从而可以方便求出Δ
0近似值。
结合式(2)、(4)可以得到幅度值M的增益dB的二级逼近结果,其表达式如式(6)。
S3,对误差量低位Bit数通过泰勒级数二级展开求解小误差量,完成超声增益计算。
针对式(5)误差量Δ1,可对其进行变形为自然对数ln(·)形式如式(7),再用泰勒级数二阶展开进一步求解其精细结果。
图5为增益信号低位Bit数泰勒级数小误差精细求解原理图,对于式(7)中,存在除法运算,这在FPGA实现中是很耗资源的,故采取除法→定点化乘法转换,令分母D=2k+σk- 12k-1+···+σ12k-m,并提取公因子,可得式(8),
本文设定的m=6;故只需2
6=64个查表数就可以精准求解
的定点化值(如扩大2
32倍取整),而σ
12
k-m-1+···+σ
02
0是通过对M的分解得出的,是已知的,可知通过两个乘法运算就可以方面求解Δ
1的值,非常方便FPGA实现。
综合上面3个步骤可以得到最后幅度值M的增益dB三级求解如式(9)。
为常数可以预先计算出,结合式(1)~(9),通过FPGA进行一个实例分析,图6为整数M值从1~224的增益dB的运算结果。
图7为FPGA运算结果与理论值(MATLAB函数运算)的绝对误差比对曲线图。可知最大误差为-0.135dB,至少在24bit数据位宽掌上超声系统中可完全满足要求。而该方法主要用到总共两次查表(供128个查表内存)与两次乘法运算(采用FPGA中的DSP模块一个时钟周期并可计算出结果)即可实现,带来极大灵活性与实时性。
本发明还提出了一种超声增益计算快速求解系统,具体包括
一级误差估算单元,对超声增益计算公式进行底数变换,通过移位比较法求出超声回波频域信号幅度值的对数估计值,并分离出误差量;
二级误差逼近单元,对误差量高位数据进行定点化对数值查表计算,分离出小误差量;
三级误差逼近单元,对误差量低位数据通过泰勒级数二级展开求解小误差量以缩小误差。
本发明的优点在于:
掌上超声增益计算的FPGA快速求解方法,通过查表与泰勒级数的方法,经过三级逼近对数函数值,实现掌上超声仪器的增益快速计算显示功能,其灵活性、实时性、精度高,易于FPGA实现。
⑴研究针对掌上超声增益计算原理,通过FPGA技术进行快速求解,来提高掌上超声仪器的增益计算速度,能提高该类仪器的工作效率与扩大应用场景;
⑵通过分析幅度量M数值,可采用高位Bit数查表法实现快速的增益dB值预估,用较小的内存单元就可以达到高的精度。
⑶研究设计通过泰勒二级展开与除法到定点化乘法转换来求解小误差量对数值,结合了查表与多项式逼近的优势,可以快捷的求出小误差量,达到对一进步缩小误差量目的。
通过三级模式增益dB逼近方式来实现掌上超声仪器的增益计算功能,具有很好的灵活性、可实施性。
上述实施例基于FPGA快速并行技术,对幅度量M进行多次分解,使其更适合FPGA运算求解其增益dB值的特点:移位比较法快速求解出一个对数值的估计量R0,通过FPGA的时序逻辑电路,很容易完成其移位比较运算;再通过二级查表运算,对第一级运算产生的误差项进行细化,直接求解其主要误差值,省略小误差,该方法只需要少量的FPGA内存单位即可实现;最后剩下的小误差量,通过泰勒二级展开与除法到定点化乘法转换,可以快捷的求出小误差量,只需两个乘法运算与少量查找表即可实现高精度增益dB值,其算法灵活、耗资源少、实时性强。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。