CN101178611A - 对数计算的实现方法及装置 - Google Patents
对数计算的实现方法及装置 Download PDFInfo
- Publication number
- CN101178611A CN101178611A CNA2007100324250A CN200710032425A CN101178611A CN 101178611 A CN101178611 A CN 101178611A CN A2007100324250 A CNA2007100324250 A CN A2007100324250A CN 200710032425 A CN200710032425 A CN 200710032425A CN 101178611 A CN101178611 A CN 101178611A
- Authority
- CN
- China
- Prior art keywords
- logarithm
- factor
- interval
- mapping
- input variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明实施例提供一种对数计算的实现方法,用于实现对输入变量的对数计算,包括以下步骤:判断所述输入变量所处的一般区间,获取所述一般区间对应的映射因子;通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;将所述映射因子的对数与所述基本数的对数求和。本发明实施例还提供一种对数计算的实现装置。本发明实施例计算对数的速度快,最快可以在一个时钟周期内实现;数据表可根据实际需要调整大小,根据实际需要还可做到很小;没有乘法运算,降低了系统成本;计算量小、复杂度低,只有查表、判断、移位、延迟或暂存、加法等简单操作。
Description
技术领域
本发明涉及通信领域,尤其涉及一种对数计算的实现方法及装置。
背景技术
在现代数字系统中,为了表述需要,经常要进行对数/反对数的计算。
一种计算方法是查表法,这种方法将预先计算得到的结果存到ROM(Read0nly Memory,只读存储器)表中,使用的时候通过查表的方式直接读出结果,但是ROM表不可能做到很大,所以这种方式有其固有的局限性。
目前采用较多的是实时计算法。这种方法一般利用泰勒公式及其变化形式,对输入的每一个值,进行实时计算。这种方法计算量大,往往需要使用乘法器、除法器甚至还需要迭代运算。
在很多应用中,需要快速高效的计算出对数或反对数值,而上述方法显然不能满足要求。
发明内容
本发明实施例要解决的技术问题在于,提供一种对数计算的实现方法及装置,以高效率、低成本、方便快捷地实现对输入变量的对数计算。
为解决上述技术问题,本发明实施例提供一种对数计算的实现方法,用于实现对输入变量的对数计算,包括以下步骤:
判断所述输入变量所处的一般区间,获取所述一般区间对应的映射因子;
通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;
将所述映射因子的对数与所述基本数的对数求和。
本发明实施例还提供一种对数计算的实现装置,用于实现对输入变量的对数计算,包括:
判断单元,用于通过判断输入变量所处的一般区间,获取所述一般区间对应的映射因子以及通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;
计算单元,用于将所述映射因子的对数与所述基本数的对数求和。
本发明实施例具有以下有益的效果:速度快,最快可以在一个时钟周期内实现;数据表可根据实际需要调整大小,根据实际需要可做到很小;没有乘法运算,降低了系统成本;计算量小、复杂度低,只有查表、判断、移位、延迟或暂存、加法等简单操作。
附图说明
图1是本发明实施例一对数计算的实现方法的流程示意图。
图2是本发明实施例二对数计算的实现装置的结构示意图。
具体实施方式
以下结合附图对本发明实施例进行详细描述。
设y=logab,本发明实施例即是在已知a和b的情况下求y,即求对数运算;或者在已知a和y的情况下求b,即求反对数运算,其中底数a为10或者2等值,也可以为其它数值。
下面以求对数运算为例说明本发明实施例的原理,采取相似的方法即可以实现求反对数。
设所关心的输入变量b的取值范围为[bL,bH],其中bH>bL>0。
将[bL,bH]分为若干段连续的区间[bL1,bH1],......[bLM,bHM],其中,bL1=bL,bHM=bH。
在实数范围内任取一段区间作为基本区间,这里选取[bL0,bH0]作为基本区间。
找到一组数ci,i=1,2,......,M作为映射因子,该映射因子位于映射因子区间,这个映射因子区间的上限为对应一般区间下限除以基本区间下限所得的商,映射因子区间的下限为对应一般区间上限除以基本区间上限所得的商。即使得bL1,......,bLM、bH1,......,bHM与基本区间[bL0,bH0]之间分别满足关系:bHi≤ci·bH0,bLi≥ci·bL0。这样,每个一般区间的数都可以通过映射因子ci映射到[bL0,bH0]区间,即一般区间内的数除以映射因子所得结果位于基本区间内。很显然,这个区间相比原来的[bL,bH]小了很多。[bL0,bH0]可以是该取值范围内的一个区间,也可以是独立于该取值范围的区间。
对于在区间[bLi,bHi],i=0,1,2,......,M上的输入变量b,其对数值为y=logab=logaci·d=logaci+logad。由于分好段之后,ci就确定了,通过判断b所在的区间就可获知相应的ci,在已知a的情况下,logaci则为常数。d是基本区间[bL0,bH0]的内一个数,称为基本数,需要注意的是,logaci可以是预先求取出的,也可以预先求出基本区间内相应基本数的对数值logad,将这些预先求取的数据做成数据表,即可以通过查表得到相应ci与d的对数值。通过适当选择ci,d=b/ci不需使用除法,仅通过移位即可实现,比如选择ci为2的幂。
这样一次计算实际上只需要进行1次查表、1次加或减法和数次判断即可完成。
本发明实施例一对数计算的实现方法,包括以下步骤:
步骤一,对输入变量b的取值范围[bL,bH](bH>bL>0)分段,分成若干段一般区间[bL1,bH1],......[bLM,bHM],其中,bL1=bL,bHM=bH。
分段与数据表的大小有关,可以根据数据表的大小灵活分段,多分段则数据表小,少分段则数据表大,数据表可以由ROM或RAM等存储介质实现,基本区间一定时,增加数据表的容量可以增加计算的精度。分段和映射因子之间存在线性映射关系,是集合中多对一的关系。分好各段区间之后压缩映射关系就确定了,映射因子ci也就确定了,同时还将得到各段一般区间的判断门限bL1,......,bLM和bH1,......,bHM备用。
举例而言,对于32bit二进制的定点整数,如果ROM表为大小1024bit,则可以将1024~1024*1024内的数据除以1024,1024*1024~1024*1024*1024范围内的数据除以1024*1024,,1024*1024*1024~1024*1024*1024*1024的数据除以1024*1024*1024,这样所有32bit二进制整数都可以映射到1~1024区间内。这里三个除数1024,1024*1024,1024*1024*1024则为不同区间的映射因子ci,对应区间则为一般区间,而1~1024为基本区间。又如,将1/(1024*1024*1024*1024)~1/(1024*1024*1024)的数据除以1/(1024*1024*1024*1024),1/(1024*1024*1024)~1/(1024*1024)范围内的数据除以1/(1024*1024*1024),,1/(1024*1024)~1/1024内的数据除以1/(1024*1024),这样所有数据都可以映射到1~1024区间内。这里三个除数1/(1024*1024*1024*1024),1/(1024*1024*1024),1/(1024*1024)则为不同区间的映射因子ci,对应区间则为一般区间,而1~1024为基本区间。上述只是例举性说明,其他小数、浮点数等等也可以用类似方法处理。
步骤二,将每一段一般区间所对应得映射因子ci,分别预求得常数logaci存储到数据表(如ROM表)备用。
步骤三,将基本区间[bL0,bH0]内所关心的相应变量的对数预先求取出来,存储到数据表(如ROM表)备用。
步骤四,计算输入变量b的对数,如图1所示,具体包括如下步骤:
S1、判断所述输入变量所处的一般区间,获取该一般区间对应的映射因子;
将输入变量b和判断门限bL1,......,bLM和bH1,......,bHM比较,判断其处于哪一段一般区间,例如,经判断bL2≤b≤ bH2,处于区间[bL2,bH2],则对应的映射因子就是c2。
S2、通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;
具体是指将所述输入变量除以所述映射因子得到的商作为所述基本数。例如该基本数d=b/c2。适当选择ci,例如选择ci为2的幂,则该基本数d仅需通过对该输入变量b移位即可实现。
S3、将所述映射因子的对数与所述基本数的对数求和。
由上可知,输入变量b的对数y=logab可以转换为求logaci·d,即映射因子ci的对数logaci与该基本数d的对数logad之和。而这两个对数值均可通过查询数据表获得。
例如,获得输入变量b对应的映射因子ci后,通过查询数据表求得其对数logaci,同样,对基本数d查找数据表,得到logad;执行加法y=logab=logaci+logad得到b的对数。当然也可以由判断逻辑直接输出logaci的值,但考虑到查表时间,可以暂存或延迟logaci。
步骤五,输出结果。
应当理解的是,本发明实施例对反对数求取也同样适用。
请参照图2所示,本发明实施例一对数计算的实现装置,用于对输入变量求对数,其中,包括判断单元1、计算单元2,其中,判断单元1用于通过判断输入变量所处的一般区间,获取该一般区间对应的映射因子以及通过该映射因子将所述输入变量映射为位于基本区间内的基本数;计算单元3,用于将所述映射因子的对数和所述基本数的对数求和。
本发明实施例还可包括分段单元3,用于将所述输入变量的取值范围划分为若干段一般区间,以及确定所述一般区间对应的映射因子,所述每一段一般区间可通过对应的映射因子映射到所述基本区间。
分段单元3对输入变量b的取值范围[bL,bH](bH>bL>0)进行分段,分段和映射因子之间存在线性映射关系,是集合中多对一的关系。分好各段区间之后压缩映射关系就确定了,映射因子ci也就确定了。基本区间为[bL0,bH0],若干段一般区间为[bL1,bH1],......[bLM,bHM],bL1=bL,bHM=bH。其中,只须满足关系:bHi≤ci·bH0,bLi≥ci·bL0,上述一般区间均可通过映射因子ci缩放至该基本区间[bL0,bH0]。
判断单元1具体则是将输入变量b与分出来的一般区间的门限bL1,......,bLM和bH1,......,bHM进行比较,判断其处于哪一段一般区间,例如,经判断bL2≤b≤bH2,处于区间[bL2,bH2],则对应的映射因子就是c2,并可得到一个基本数d=b/c2。适当选择ci,例如选择ci为2的幂,则该基本数d仅需通过对该输入变量b移位即可实现。
由上可知,输入变量b的对数y=logab可以转换为求logaci·d,即映射因子ci的对数logaci与在该基本数d的对数logad之和,计算单元3则是对这两个对数值求和,由此得到输入变量b的对数。
本实施例中,计算单元2进一步包括查表单元21和加法器22。通过判断单元1的判断,获取映射因子ci和基本数d。对于映射因子ci,其对数可预先求出并存储在数据表中,查表单元21通过查询该数据表即可获知。基本区间[bL0,bH0]内所关心的相应变量的对数同样会预先求取出来,存储在数据表备用(数据表的实现形式可以是ROM或RAM等存储介质,当基本区间一定时,数据表越大,计算精度越高);由于基本数d位于基本区间[bL0,bH0]中,因此当从判断单元1获取基本数d后,即可由查表单元22查询该数据表而得出logad。加法器22用于将logaci与logad求和,即获得输入变量b的对数y=logab=logaci+logad。
由于映射因子数量不多,也可以直接由判断单元1实现映射因子对数logaci的输出,以简化电路设计。此时判断单元1通过判断输入变量b,直接输出logaci及基本数d,查表单元21只需要对基本数d查表即可,考虑到查表单元21查表所需时间,可以设置一延迟单元或暂存单元,延迟或暂存该判断单元1所输出的映射因子的对数数据logaci,以避免加法器22可能的运算错误。
由于本发明实施例的对数计算的实现方法及装置将输入变量的取值范围分为若干段一般区间,所述一般区间通过映射因子可映射到基本区间,通过判断每一输入变量所处区间,而使对该输入变量的求对数计算转换为将该映射因子的对数与将该输入变量映射至该基本区间的基本数的对数的求和运算,计算对数的速度快,最快可以在一个时钟周期内实现;数据表可根据实际需要调整大小,根据实际需要还可做到很小;没有乘法运算,降低了系统成本;计算量小、复杂度低,只有查表、判断、移位、延迟或暂存、加法等简单操作。
以上所揭露的仅为本发明的较佳实施例而已,当然不能以此来限定本发明的权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种对数计算的实现方法,用于实现对输入变量的对数计算,包括以下步骤:
判断所述输入变量所处的一般区间,获取所述一般区间对应的映射因子;
通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;
将所述映射因子的对数与所述基本数的对数求和。
2.根据权利要求1所述的实现方法,其特征在于:还包括步骤:
将所述输入变量的取值范围划分为若干段一般区间;
确定所述一般区间对应的映射因子。
3.根据权利要求2所述的实现方法,其特征在于:所述确定所述一般区间对应的映射因子,具体是指:
从一般区间对应的映射因子区间内选取一数值确定为所述一般区间对应的所述映射因子,所述映射因子区间的上限为一般区间下限除以基本区间下限所得的商,所述映射因子区间的下限为一般区间上限除以基本区间上限所得的商。
4.根据权利要求1所述的实现方法,其特征在于:
所述判断所述输入变量所处的一般区间,具体是指将输入变量与所述一般区间的门限进行比较,以判断所述输入变量所处的一般区间。
所述通过所述映射因子将所述输入变量映射为位于基本区间内的基本数,具体是指将所述输入变量除以所述映射因子得到的商作为所述基本数。
5.根据权利要求2所述的实现方法,其特征在于:还包括:
求取所述映射因子的对数和所述基本区间内基本数的对数,并存储到数据表中。
6.根据权利要求5所述的实现方法,其特征在于:所述将所述映射因子的对数与所述基本数的对数求和的步骤中:
所述映射因子的对数与所述基本数的对数通过查询所述数据表获得。
7.一种对数计算的实现装置,用于实现对输入变量的对数计算,其特征在于:包括:
判断单元,用于通过判断输入变量所处的一般区间,获取所述一般区间对应的映射因子以及通过所述映射因子将所述输入变量映射为位于基本区间内的基本数;
计算单元,用于将所述映射因子的对数与所述基本数的对数求和。
8.根据权利要求7所述的实现装置,其特征在于:还包括:
分段单元,用于将所述输入变量的取值范围划分为若干段一般区间,以及确定所述一般区间对应的映射因子。
9.根据权利要求7所述的实现装置,其特征在于:所述映射因子的对数与所述基本区间内基本数的对数值均预先求取出来,存储在数据表中。
10.根据权利要求9所述的实现装置,其特征在于:所述计算单元进一步包括:
查表单元,用于通过查询数据表来获取所述映射因子的对数和基本数的对数;
加法器,用于将所述映射因子的对数与所述基本数的对数相加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100324250A CN101178611A (zh) | 2007-12-13 | 2007-12-13 | 对数计算的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100324250A CN101178611A (zh) | 2007-12-13 | 2007-12-13 | 对数计算的实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101178611A true CN101178611A (zh) | 2008-05-14 |
Family
ID=39404884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100324250A Pending CN101178611A (zh) | 2007-12-13 | 2007-12-13 | 对数计算的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101178611A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566965A (zh) * | 2011-12-22 | 2012-07-11 | 上海大学 | 一种误差平坦的浮点数对数运算装置 |
WO2012159372A1 (zh) * | 2011-08-09 | 2012-11-29 | 华为技术有限公司 | 用户数量计算方法及系统 |
CN101510148B (zh) * | 2009-04-02 | 2014-10-29 | 北京中星微电子有限公司 | 一种指数运算方法和装置 |
-
2007
- 2007-12-13 CN CNA2007100324250A patent/CN101178611A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510148B (zh) * | 2009-04-02 | 2014-10-29 | 北京中星微电子有限公司 | 一种指数运算方法和装置 |
WO2012159372A1 (zh) * | 2011-08-09 | 2012-11-29 | 华为技术有限公司 | 用户数量计算方法及系统 |
CN103039036A (zh) * | 2011-08-09 | 2013-04-10 | 华为技术有限公司 | 用户数量计算方法及系统 |
CN103039036B (zh) * | 2011-08-09 | 2015-04-08 | 华为技术有限公司 | 用户数量计算方法及系统 |
CN102566965A (zh) * | 2011-12-22 | 2012-07-11 | 上海大学 | 一种误差平坦的浮点数对数运算装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
CN103294446A (zh) | 一种定点乘累加器 | |
CN102043760B (zh) | 数据处理方法及系统 | |
CN111178516A (zh) | 一种基于分段查找表的softmax函数计算方法及硬件系统 | |
CN105426918A (zh) | 归一化相关图像模板匹配高效实现方法 | |
CN114239859B (zh) | 基于迁移学习的用电量数据预测方法、装置及存储介质 | |
CN101178611A (zh) | 对数计算的实现方法及装置 | |
CN1952875A (zh) | 一种定点除法器及其实现运算的方法 | |
CN111240746A (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN114463551A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN112200299B (zh) | 神经网络计算装置、数据处理方法及装置 | |
CN110337636A (zh) | 数据转换方法和装置 | |
CN103389413B (zh) | 一种频谱直方图的实时统计方法 | |
CN110210611A (zh) | 一种用于卷积神经网络计算的动态自适应数据截断方法 | |
CN102566965B (zh) | 一种误差平坦的浮点数对数运算装置 | |
CN104375800A (zh) | 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统 | |
CN113837365A (zh) | 实现sigmoid函数逼近的模型、FPGA电路及工作方法 | |
CN103901405A (zh) | 实时块浮点频域四路脉冲压缩器及其脉冲压缩方法 | |
CN113868580A (zh) | 抽凝供热机组工业供汽工况最小调峰出力的确定方法 | |
CN110287538B (zh) | 一种面向门级电路的精确快速敏感性单元定位方法 | |
CN108830663B (zh) | 电力客户价值评价方法、系统及终端设备 | |
CN105468726A (zh) | 基于本地计算和分布式计算的数据计算方法及系统 | |
CN104079147A (zh) | 一种模块化多电平变流器的功率模块动态分组均压控制方法 | |
CN113778379A (zh) | 一种基于cordic的低复杂度硬件系统和应用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080514 |