CN110096677B - 一种基于概率计算的高阶可导函数的快速计算方法和系统 - Google Patents
一种基于概率计算的高阶可导函数的快速计算方法和系统 Download PDFInfo
- Publication number
- CN110096677B CN110096677B CN201910378598.0A CN201910378598A CN110096677B CN 110096677 B CN110096677 B CN 110096677B CN 201910378598 A CN201910378598 A CN 201910378598A CN 110096677 B CN110096677 B CN 110096677B
- Authority
- CN
- China
- Prior art keywords
- group
- binary string
- calculation
- probability
- module
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于概率计算的高阶可导函数的快速计算方法和系统。方法包括:对函数进行转换的步骤、对控制点组进行归一化处理的步骤、对映射值组和输入的节点组进行二值化处理,得到第一二进制串组和第二二进制串组的步骤、利用概率计算方法基于第二二进制串组对第一二进制串组进行多路选通以得到概率值组的步骤、对概率值组进行随机解码的步骤。系统包括依次连接的函数变换模块、归一化处理模块、二值化处理模块、概率计算模块和数据解码模块,函数变换模块接收函数,二值化处理模块接收节点组。本发明可以通过简单的结构,快速对高阶可导函数进行计算,系统复杂度低,运算量小,计算时间短。
Description
技术领域
本发明涉及计算机辅助解析领域,尤其是一种利用概率计算方法快速计算高阶可导函数的方法和系统。
背景技术
传统上计算三角函数等高阶可导函数,在硬件上一般使用查表法、多项式展开或近似的方法,计算过程中必然要涉及到大量的浮点运算,用这些方法来计算这些函数会非常的费时,基于此,Voider于1959年在美国航空控制系统的设计中提出CORDIC(CoordinateRotational Digital Computer,坐标旋转计算机)算法。该算法不同的实现形式(如圆周模式、双曲线模式、线性模式等)来计算包括乘、除、平方根、正旋、余弦、反正切、向量旋转(即复数乘法)以及指数运算等。1971年,J.S Walther提出了统一的CORDIC算法形式,把圆周旋转、双曲旋转和直线旋转统一到同一个CORDIC迭代方程中进行计算为统一硬件实现多功能运算奠定了基础。CORDIC迭代方程从算法本身入手,将复杂的算法分解成一些在硬件中容易实现的基本算法,如加法、移位等。但每一种函数计算转换复杂,同时计算时,迭代次数多,计算量还是较大。
概率计算[1]是一种数值表征和计算方法,在概率计算中,利用序列中含1的个数占整个序列长度的比例来表征值,通过构造简单的门级电路来完成乘、加等的运算,进而实现对方程的运算。概率计算的方法近年来已经被应用于数字滤波器、FFT、Turbo译码器、多码率LDPC译码器[2-4]等研究领域。使用概率计算能大幅减小计算量。
如果能将概率计算的方法运用到高阶可导函数的计算中,则无论从计算速度和运算复杂度上,都将有一个全新的突破。
本发明涉及的参考文献如下:
[1]W.Qian and M.Riedel,“The synthesis of robust polynomial arithmeticwith stochastic logic,”in DAC’08:Proceedings of the 45th Design AutomationConference,Anaheim,CA,USA,Jun.2008,pp.648–653.
[2]吴思励,周焰,乐艳丽,李加庆.基于实测数据的雷达探测概率计算方法[J].微计算机信息,2008,7-3.
[3]陈杰男,胡剑浩.基于概率计算的数字滤波器的实现[J].中国集成电路,2010,11.
[4]胡剑浩,陈杰男.概率计算在通信信号处理系统实现中的应用[J].无线电通信技术,2015,41(2):01-06.
发明内容
本发明的发明目的在于:针对上述存在的问题,提供一种利用概率计算方法快速计算高阶可导函数的方法和系统。以利用概率计算的简单结构,以低复杂度的硬件结构,通过较小的运算量,快速计算出函数结果。
本发明采用的技术方案如下:
一种基于概率计算的高阶可导函数的快速计算方法,其包括以下步骤:
将输入的高阶可导函数变换为概率计算多项式,得到控制点组的步骤;
对所述控制点组进行归一化处理,得到对应映射值组的步骤;
将所述映射值组和输入的节点组分别进行二值化处理,转换得到对应的第一二进制串组和第二二进制串组的步骤;
基于所述第二二进制串组对所述第一二进制串组进行多路选通,得到概率值组的步骤;
对所述概率值组进行随机解码,得到的解码结果即为对高阶可导函数的计算结果。
上述计算方法,计算过程仅涉及加法、比较和多路选通,属于复杂度随着函数阶数和精度要求增加呈线性增长的方法,较直接计算中,以循环嵌套的迭代方式使复杂度呈指数型增长的方式,可大幅减少计算的复杂度,缩短计算时间。且本发明可根据精度要求对参数(节点)进行灵活调整,便于对计算复杂度和精度要求的综合考虑。
进一步的,上述二值化处理的过程为将待二值化处理的数据与预设长度伪随机码进行移位比较以得到比较结果的过程。
进一步的,上述基于第二二进制串组对第一二进制串组进行多路选通具体为:将第二二进制串组对应位相加的结果作为多路选通控制端,以对第一二进制串组进行多路选通。
进一步的,上述对控制点组进行归一化处理中,归一化处理的方法为:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn))(i=0,1,2...n)
其中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量,GBi为归一化处理得到的映射值。
本发明提供了一种基于概率计算的高阶可导函数的快速计算系统,其包括依次连接的函数变换模块、归一化处理模块、二值化处理模块、概率计算模块和数据解码模块;其中:
函数计算模块用于将输入的高阶可导函数变换为概率计算多项式,输出对应的控制点组;
归一化处理模块用于对接收的控制点组进行归一化处理,输出对应的映射值组;
二值化处理模块用于对归一化模块输出的映射值组进行二值化处理,输出对应的第一二进制串组,还用于对输入的节点组进行二值化处理,输出对应的第二二进制串组;
概率计算模块基于第二二进制串组对第一二进制串组进行多路选通,以输出概率值组;
数据解码模块用于对所述概率值组进行随机解码,输出解码结果。
进一步的,上述二值化处理模块基于伪随机码对接收的数据进行二值化处理。
进一步的,上述二值化处理模块包括一伪随机码生成单元和一比较器,所述伪随机码生成单元的输出端连接所述比较器的第一输入端;所述伪随机码生成单元用于生成预设长度的伪随机码,所述比较器的第二输入端用于接收归一化模块的输出值,所述比较器的输出端输出对应于其第二输入端所接收的数据的二进制串。
进一步的,上述概率计算模块基于第二二进制串组对第一二进制串组进行多路选通具体为:概率计算模块基于第二二进制串组对应位相加的结果对所述第一二进制串组进行多路选通。
进一步的,上述概率计算模块包括一加法器和一多路选通器,所述加法器输出端连接多路选通器的控制端;所述加法器用于接收所述第二二进制串组,并将所述第二二进制串组的对应位相加,多路选通器的系数输入端用于接收第一二进制串组,多路选通器的输出端输出概率值组。
进一步的,上述归一化处理模块对待处理数据进行归一化处理的方法为:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn))(i=0,1,2...n)
其中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量,GBi为归一化处理得到的映射值。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明运算路径由加法器、比较器和多路选通器构成,n次级数计算需要2n个比较器,1个加法和1个n+1选一多路选通器,并且随着n的增加,所需硬件呈线性增加,计算复杂度低。
2、本发明计算方法的运算量随函数阶数的增加呈线性增长,较传统直接运算或CORDIC中需要多次迭代的方式,大幅减少了运算量,计算速度快。
3、本发明可根据误差容忍度,灵活、方便地调整计算参数,以应对计算误差的允许范围。且随着精度的提高,所需硬件呈线性增长,可以确保系统保持在一个低复杂度的状态。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是基于概率计算的高阶可导函数的快速计算系统结构的一个实施例。
图2是基于概率计算的高阶可导函数的快速计算系统结构的另一实施例。
图3是二值化处理模块结构的一个实施例。
图4是概率计算模块结构的一个实施例。
图5-图10是不同类型函数通过本发明方式计算结果与直接计算的结果间的对比图。
图5-10中,虚线为通过本发明方式计算的结果,实现为直接计算的结果。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
实施例一
一种基于概率计算的高阶可导函数的快速计算方法,其包括以下步骤:
A.将输入的高阶可导函数(如三角函数、指数函数、对数函数等)变换为概率计算多项式,将各项式的参数作为控制点,得到控制点组的步骤;
B.对控制点组中的各控制点分别进行归一化处理,得到对应映射值组的步骤。
C.将映射值组中的数据和外部输入的节点组的数据分别进行二值化处理,转换得到对应的第一二进制串组和第二二进制串组的步骤。
D.基于第二二进制串组对第一二进制串组进行多路选通,得到概率值组的步骤。其通过一多路选通器实现。
E.对概率值组进行随机解码,得到的解码结果即为所求。
实施例二
一种基于概率计算的高阶可导函数的快速计算方法,其包括以下步骤:
A.将输入的高阶可导函数变换为概率计算多项式,得到控制点组的步骤。
步骤A分两步实现,第一步A-1:将高阶可导函数转换为麦克劳林级数:
高阶可导函数在0处可转化为如下麦克劳林级数:
f(x)≈f(0)+f'(0)x+(f”(0)/2!)x2+...+(f(n)(0)/n!)xn (1)
令A0=f(0),A1=f'(0),A2=f”(0)/2!,...,An=f(n)(0)
有f(x)≈A0+A1x+A2x2+A3x3+.......+Anxn (2)
将式(2)右侧部分以麦克劳林级数表示如下:
P(x)=A0+A1x+A2x2+A3x3+.......+Anxn (3)
麦克劳林级数的次数n越大,P(x)与f(x)函数的值就越接近。
第二步A-2:将麦克劳林级数转换为概率计算多项式:
将式(3)转换为下式:
式(4)中,表示组合数。B0~Bn即为控制点,其共同构成控制点组Bi(i=0,1,2...n)。
以n=9为例,将式(4)展开,与式(3)比较得到以下控制点组:
B.对控制点组Bi进行归一化处理,得到对应映射值组GBi(i=0,1,2...n)的步骤。
对控制点组Bi中各控制点分别进行归一化处理,将各控制点分别映射到[0,1]的范围,得到对应的映射值GBi。归一化映射转换方法如下:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn))(i=0,1,2...n),
式中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量。归一化后,GBi的值在[0,1]之间。
C.将映射值组GBi和输入的节点组tk(k=0,1,2...n)分别进行二值化处理,转换得到对应的第一二进制串组Mi和第二二进制串组Xi的步骤。
转换输入tk,输出得到Xi,输入GBi,输出得到Mi。二值化处理过程基于伪随机码组完成,伪随机码是具有某种随机序列随机特性的0,1序列码,且序列中0的总数和1的总数相差不超过1。文献“伪随机码及计算机的产生”(吴明捷、杜天苍,辽宁工程技术大学学报,第21卷第2期)中提到将本原多项式作为反馈移位寄存器的特征多项式,可以产生伪随机码序列。
伪随机码由本原多项式移位产生,将本原多项式作为反馈移位寄存器的特征多项式,即可产生伪随机码组。本原多项式如下:
在本实施例中,本原多项式取10阶,即n取10,用110000101反馈移位产生N位随机码Ri,N分别取256位、512位、1024位和2048位进行实验。
在将GBi与Ri(i=0,1,2…,n)进行移位比较时,若GBi大于等于Ri,输出为“1”,小于则输出为“0”。实验证明,得到的二进制串Mi(i取0,1,2…n)中,“1”所占的比例与GBi表示的值相同。这就为概率计算应用到高阶可导函数的计算中提供了基础。假如GBi的的值为0.4,N为128位,则Mi中“1”的个数为128*0.4个,虽然Mi中“1”所占的比例相同,但由于Ri中“1”的位置是随机的,所以Mi中的二进制串中“1”的位置也是随机的。同样,tk与Ri进行移位比较(i=0,1,2…n),得到随机的二进制串组Xi。
D.以Xi(i=0,1,2,3...n)对应位相加的结果S(i)=X0(i)+X1(i)+X2(i)+...+Xn(i),(i=1,2...N)作为多路选通控制端,以Mi(i=0,1,2...n)作为多路选通系数输入端,得到概率值组Y(i)=MS(i)(i=1,2...N)的步骤。
概率计算中,使用到一加法器和一多路选通器,以Xi(i=0,1,2,3...n)作为加法器的输入端,各位对应相加得到S(1)S(2)...S(N),其中,S(i)=X0(i)+X1(i)+X2(i)+...+Xn(i)(i=1,2...N)。加法器输出端Si(i=1,2,3...N)作为多路选通器的控制端,Mi(i=0,1,2...n)作为多路选通器的系数输入端(数据输入端),多路选通器输出端输出Y(i)=MS(i)(i=1,2...N),即为概率值组Y(1)Y(2)···Y(N)。
E.对概率值组Y(i)=MS(i)(i=1,2...N)进行随机解码,得到的结算结果即为所求。
随机解码方法为:
其统计Y(1)Y(2)···Y(N)中“1”的个数在二进制串的比例,随机解码过程即为概率计算过程。随机解码的输出值对应于高阶可导函数输入坐标后计算的结果。
实施例三
如图1所示,本实施例公开了一种基于概率计算的高阶可导函数的快速计算系统,其包括依次连接的函数变换模块、归一化处理模块、二值化处理模块、概率计算模块和数据解码模块,函数变换模块包含函数输入端,二值化处理模块的一个输入端连接归一化处理模块,还包括一节点输入端。
函数计算模块用于将输入的高阶可导函数变换为概率计算多项式,输出对应的控制点组Bi(i=0,1,2...n);
归一化处理模块用于对接收的控制点组Bi(i=0,1,2...n)进行归一化处理,输出对应的映射值组GBi(i=0,1,2...n);
二值化处理模块用于对归一化模块输出的映射值组GBi(i=0,1,2...n)进行二值化处理,输出对应的第一二进制串组Mi,还用于对输入的节点组tk(k=0,1,2...n)进行二值化处理,输出对应的第二二进制串组Xi;
概率计算模块基于第二二进制串组Xi对第一二进制串组Mi进行多路选通,以输出概率值组Y(i)=MS(i)(i=1,2...N);
数据解码模块用于对所述概率值组Y(i)=MS(i)(i=1,2...N)进行随机解码,输出解码结果Y。
实施例四
如图1所示,本实施例公开了一种基于概率计算的高阶可导函数的快速计算系统,其包括依次连接的函数变换模块、归一化处理模块、二值化处理模块、概率计算模块和数据解码模块,其中:
函数变换模块包括一函数输入端,函数变换模块用于将从函数输入端输入的高阶可导函数变换为概率计算多项式,将多项式的各项参数作为控制点,输出控制点组。变换方法为:
先将高阶可导函数转换为麦克劳林级数:
高阶可导函数在0处可转化为如下麦克劳林级数:
f(x)≈f(0)+f'(0)x+(f”(0)/2!)x2+...+(f(n)(0)/n!)xn (1)
令A0=f(0),A1=f'(0),A2=f”(0)/2!,...,An=f(n)(0)
有f(x)≈A0+A1x+A2x2+A3x3+.......+Anxn (2)
将式(2)右侧部分以麦克劳林级数表示如下:
P(x)=A0+A1x+A2x2+A3x3+.......+Anxn (3)
麦克劳林级数的次数n越大,P(x)与f(x)函数的值就越接近。
再将麦克劳林级数转换为概率计算多项式:
将式(3)转换为下式:
式(4)中,表示组合数。B0~Bn即为控制点,其共同构成控制点组Bi(i=0,1,2...n)。
以n=9为例,将式(4)展开,与式(3)比较得到以下控制点组:
归一化模块用于对接收的控制点组Bi(i=0,1,2...n)进行归一化处理,输出对应的映射值组GBi(i=0,1,2...n)。
归一化处理是将各控制点坐标组Bi(i=0,1,2...n)的值分别映射到[0,1]之间,归一化处理方法如下:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn))(i=1,2...n)
式中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量。归一化后,GBi的值在[0,1]之间。
二值化处理模块包括两个输入端,其一连接归一化处理模块的输出端,以接收映射值组,另一输入端用于接收节点组。二值化处理模块用于对接收的数据基于N位伪随机码组Ri(i=0,1,2,3...n)进行二值化处理,得到对应的二进制串。对于接收的概率值组GBi,则对应输出二进制串组Mi,对于接收的节点组tk,则对应输出二进制串组Xi,其中,i=0,1,2,3...n,k=0,1,2,3...n。
如图3所示,二值化处理模块包括一伪随机码生成单元和一比较器,伪随机码生成模块的输出端连接比较器的一输入端。在二值化处理时,待处理数据输入到比较器的另一输入端,比较器输出端输出对应与输入数据的二进制串,若干输出即构成二进制串组。
在一个实施例中,伪随机码生成单元为移位寄存器,该移位寄存器的特征多项式为本原多项式:
上述本原多项式在本实施例中取10阶,即n取10,用110000101反馈移位产生N位随机码Ri,N分别取256位、512位、1024位和2048位进行实验。
如图4所示,概率计算模块包括一加法器和一多路选通器,加法器输入端用于接收Xi(i=0,1,2,3...n),加法器输出端连接多路选通器的控制端,多路选通器的系数输入端用于接收Mi(i=0,1,2...n),多路选通器的输出端输出Y(i)=MS(i)(i=1,2...N)。MS(i)计算的真值表如下表所示:
输入信号B | 选通信号S | 输出信号Y |
M0(1)M0(2)M0(3)...M0(N) | 0 | M0(t) |
M1(1)M1(2)M1(3)...M1(N) | 1 | M1(t) |
...... | ...... | |
Mn(1)Mn(2)Mn(3)...Mn(N) | n | Mn(t) |
数据解码模块对接收的数据(概率计算模块输出的Y(i)=MS(i)(i=1,2...N))依次进行随机解码,输出解码结果。
随机解码方法为:
其统计Y(1)Y(2)···Y(N)中“1”的个数在二进制串的比例。
实施例五
本实施例基于实施例三和四中的系统,公开了另一种基于概率计算的高阶可导函数的快速计算系统,如图2所示。其中,函数变换模块、归一化处理模块和二值化处理模块属于离线处理单元,概率计算模块和数据解码模块属于硬件处理单元,二值化处理模块的输出值存储于一存储器中,通过离线处理的方式,可提前将各函数进行离线转换并提取参数,将参数存于存储器中。在需要计算函数时,概率计算模块根据选择指令,直接从存储器中提取出需要的参数进行实时计算,从而将高阶可导函数用统一硬件来实现。
通过该种方式,由于提前计算了各种(基础)函数的参数,在实时计算高阶可导函数时,直接从存储器中提取利用,无需每次实时计算时,重复计算各函数的参数,可以有效节省实时计算高阶可导函数时的时间。
实施例六
本实施例以若干种高阶可导函数为例,说明本发明对高阶可导函数的计算过程。
将高阶可导函数转换为麦克劳林级数:
1.三角函数
sin(ax)=ax-(1/3!)(ax)3+(1/5!)(ax)5-(1/7!)(ax)7+(1/9!)(ax)9,0≤x≤1(18)
cos(ax)=1-(1/2!)(ax)2+(1/4!)(ax)4-(1/6!)(ax)6+(1/8!)(ax)8,0≤x≤1(19)
tan(ax)=ax+(1/3)(ax)3+(2/15)(ax)5+(17/315)(ax)7+(62/2835)(ax)9,0≤x<1(20)
2.双曲函数
sinh(ax)=ax+(1/3!)(ax)3+(1/5!)(ax)5+(1/7!)(ax)7+(1/9!)(ax)9,0≤x≤1(21)
cosh(ax)=1+(1/2!)(ax)2+(1/4!)(ax)4+(1/6!)(ax)6+(1/8!)(ax)8,0≤x≤1(22)
tanh(ax)=ax-(1/3)(ax)3+(2/15)(ax)5-(17/315)(ax)7+(62/2835)(ax)9,0<x<1 23)
3.指数函数
eax=1+ax+(1/2!)(ax)2+(1/3!)(ax)3+(1/4!)(ax)4+....+(1/9!)(ax)9,0≤x≤1(24)
4.对数函数
ln(1+ax)=ax-(1/2)(ax)2+(1/3)(ax)3-(1/4!)(ax)4+....+(1/9!)(ax)9,0≤x≤1 (25)
5.朗伯W函数
W0(ax)=ax-(ax)2+(3/2)(ax)3-(8/3)(ax)4+....+(531441/4480)(ax)9,0≤x≤1(26)
再将麦克劳林级数转换为概率计算多项式:
按公式(6)-(15)将公式(18)-(26)转为概率计算多项式(以9阶为例),系数(控制点)如下表1所示:
表1:概率计算系数值
函数 | a | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 |
sin(ax) | 3.14 | 0.0 | 0.3489 | 0.6978 | 0.9852 | 1.1499 | 1.1504 | 0.9859 | 0.6997 | 0.3491 | 0.0086 |
cos(ax) | 3.14 | 1.0 | 1.0 | 0.8631 | 0.5892 | 0.2105 | -0.209 | -0.588 | -0.861 | -1.002 | -0.976 |
tan(ax) | 1.57 | 0.0 | 0.1744 | 0.3489 | 0.5387 | 0.7592 | 1.0359 | 1.4144 | 2.0058 | 3.1030 | 6.2090 |
sinh(ax) | 5.7 | 0.0 | 0.6333 | 1.2667 | 1.5116 | 4.0031 | 7.239 | 13.537 | 26.728 | 56.548 | 142.99 |
cosh(ax) | 5.7 | 1.0 | 1.0 | 1.4513 | 2.3538 | 4.0566 | 7.2579 | 13.572 | 26.663 | 57.019 | 136.50 |
tanh(ax) | 1.57 | 0.0 | 0.1744 | 0.3489 | 0.5080 | 0.6364 | 0.7287 | 0.8001 | 0.8603 | 0.8187 | 0.8927 |
eax | 5.0 | 1.0 | 1.5556 | 2.4583 | 3.9563 | 6.5043 | 10.970 | 19.100 | 34.674 | 66.852 | 143.69 |
eax | -5.0 | 1.0 | 0.4444 | 0.2361 | 0.1270 | 0.0757 | 0.0410 | 0.0332 | -0.006 | 0.1482 | -1.827 |
ln(1+ax) | 1.2 | 0.0 | 0.1333 | 0.2467 | 0.3169 | 0.4366 | 0.5186 | 0.5932 | 0.6650 | 0.7120 | 1.0854 |
ln(1+ax) | -1 | 0.0 | -0.111 | -0.236 | -0.379 | -0.546 | -0.746 | -0.996 | -1.329 | -1.829 | -2.829 |
W0(ax) | 0.3 | 0.0 | 0.0333 | 0.0642 | 0.0930 | 0.1201 | 0.1456 | 0.1696 | 0.1915 | 0.2106 | 0.2268 |
再依次进行归一化处理、二值化处理、多路选通和随机解码(对应与方法的步骤B-E,或者系统的归一化处理模块、二值化处理模块、概率计算模块和数据解码模块),即可得到各高阶可导函数的计算结果。将本发明方法计算的结果和直接对高阶可导函数计算的结果绘制到同一坐标系下,即可得到计算误差。如图5-10,为对部分函数以本发明的计算方式和直接计算方式的结果对比。
基于512位伪随机码的概率计算方式和传统直接计算的结果对比如下:
表2.sin(ax)与cos(ax)(a取3.14)概率计算对比值
表3.eax与e-ax(a取5)概率计算对比值
表4.ln(1+ax)(a取1.2)与ln(1+ax)(a取1)概率计算对比值
表5.sinh(ax)与cosh(ax)(a取5.7)概率计算对比值
表6.tan(ax)与tanh(ax)(a取1.57)概率计算对比值
由表2到表6,概率计算的方法与直接计算的结果虽有一些偏差,但偏差较小,通过调整节点参数,可以控制计算结果的误差。随着精度要求的提升,系统复杂度会呈线性的增长,因此,应对不同的使用场景,本发明允许在系统复杂度和计算精度间进行权衡,以在满足误差需求的情况下,尽可能降低计算的复杂度。
本实施例还验证了伪随机码长度对计算结果误差的影响。在本实施例中,分别取64位,128位,256位和512位的伪随机码概率计算,计算的结果如表7所示。
表7.wo(ax)(a取0.3)概率计算方法结果
由表7的实验数据可知:随着伪随机码位数的不断增大,差值不断缩小,其结果会越来越精确。
为更加直观的观察本发明方式计算结果与直接运算结果间的误差,将表2-7的计算结果绘制成图,结果如图5-图10所示,其中,伪随机码长度为512位,实现为直接计算结果,虚线对应本发明方式计算的结果。由图5-10可知,本发明计算方式的计算结果与实际值间的误差很小,若调整伪随机码长度,可以进一步减小误差,因此,本发明方式可以在大幅降低运算量和系统复杂度的情况下,得到较为准确的结果。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (2)
1.一种基于概率计算的高阶可导函数的快速计算方法,其特征在于,包括以下步骤:
将输入的高阶可导函数变换为概率计算多项式,得到控制点组的步骤;第一步:将高阶可导函数转换为麦克劳林级数;第二步:将麦克劳林级数转换为概率计算多项式,将各项式的参数作为控制点,共同构成控制点组Bi,i=0,1,2...n;
对所述控制点组进行归一化处理,得到对应映射值组的步骤;归一化处理的方法为:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn)),i=0,1,2...n;
其中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量,GBi为归一化处理得到的映射值;
将所述映射值组GBi和输入的节点组tk,k=0,1,2...n分别进行二值化处理,转换得到对应的第一二进制串组Mi,i=0,1,2...n和第二二进制串组Xi,i=0,1,2...n的步骤;
二值化处理过程基于N位伪随机码组完成,伪随机码由本原多项式移位产生,将本原多项式作为反馈移位寄存器的特征多项式,即可产生伪随机码组,本原多项式如下:所述二值化处理的过程为将待二值化处理的数据与预设长度伪随机码进行移位比较以得到比较结果的过程;
基于所述第二二进制串组对所述第一二进制串组进行多路选通,得到概率值组的步骤;具体为:将第二二进制串组Xi,i=0,1,2...n对应位相加的结果作为多路选通控制端,以对第一二进制串组Mi,i=0,1,2...n进行多路选通,包括:使用到一加法器和一多路选通器,以第二二进制串组Xi,i=0,1,2...n作为加法器的输入端,各位对应相加得到S(1)S(2)...S(N),其中,
S(i)=X0(i)+X1(i)+X2(i)+...+Xn(i),i=1,2...N;加法器输出端Si,i=1,2,3...N作为多路选通器的控制端,第一二进制串组Mi,i=0,1,2...n作为多路选通器的系数输入端,多路选通器输出端输出概率值组Y(i)=MS(i),i=1,2...N;
对所述概率值组进行随机解码,得到的解码结果即为对高阶可导函数的计算结果;
将计算结果绘制成图。
2.一种基于概率计算的高阶可导函数的快速计算系统,其特征在于,其包括依次连接的函数变换模块、归一化处理模块、二值化处理模块、概率计算模块和数据解码模块;其中:
函数计算模块用于将输入的高阶可导函数变换为概率计算多项式,输出对应的控制点组;变换方法为:先将高阶可导函数转换为麦克劳林级数,再将麦克劳林级数转换为概率计算多项式,将各项式的参数作为控制点,共同构成控制点组Bi,i=0,1,2...n;
归一化处理模块用于对接收的控制点组进行归一化处理,输出对应的映射值组;所述归一化处理模块对待处理数据进行归一化处理的方法为:
GBi=(Bi-min(B0,B1,B2.....Bn))/(max(B0,B1,B2....Bn)-min(B0,B1,B2.....Bn)),i=0,1,2...n;
其中,min(.)是求最小值函数,max(.)是求最大值函数,n为控制点数量,GBi为归一化处理得到的映射值;
二值化处理模块基于N位伪随机码组,用于对归一化模块输出的映射值组进行二值化处理,输出对应的第一二进制串组,还用于对输入的节点组进行二值化处理,输出对应的第二二进制串组;所述二值化处理模块包括一伪随机码生成单元和一比较器,所述伪随机码生成单元为移位寄存器,该移位寄存器的特征多项式为本原多项式:所述伪随机码生成单元的输出端连接所述比较器的第一输入端;所述伪随机码生成单元用于生成预设长度的伪随机码,所述比较器的第二输入端用于接收归一化模块的输出值,还用于接收节点组,所述比较器的输出端输出对应于其第二输入端所接收的数据的二进制串;
概率计算模块基于第二二进制串组对第一二进制串组进行多路选通,以输出概率值组;概率计算模块基于第二二进制串组对应位相加的结果对所述第一二进制串组进行多路选通;所述概率计算模块包括一加法器和一多路选通器,所述加法器输出端连接多路选通器的控制端;所述加法器用于接收所述第二二进制串组,并将所述第二二进制串组的对应位相加,多路选通器的系数输入端用于接收第一二进制串组,多路选通器的输出端输出概率值组;
数据解码模块用于对所述概率值组进行随机解码,输出解码结果,将计算结果绘制成图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910378598.0A CN110096677B (zh) | 2019-05-08 | 2019-05-08 | 一种基于概率计算的高阶可导函数的快速计算方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910378598.0A CN110096677B (zh) | 2019-05-08 | 2019-05-08 | 一种基于概率计算的高阶可导函数的快速计算方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096677A CN110096677A (zh) | 2019-08-06 |
CN110096677B true CN110096677B (zh) | 2023-08-25 |
Family
ID=67447247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910378598.0A Active CN110096677B (zh) | 2019-05-08 | 2019-05-08 | 一种基于概率计算的高阶可导函数的快速计算方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096677B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003110A (ja) * | 2007-06-20 | 2009-01-08 | National Institute Of Information & Communication Technology | 知識源を組込むための確率計算装置及びコンピュータプログラム |
CN105631155A (zh) * | 2016-01-12 | 2016-06-01 | 昆明理工大学 | 一种水库诱发地震概率计算方法 |
CN106059597A (zh) * | 2016-05-19 | 2016-10-26 | 电子科技大学 | 一种基于概率Turbo译码器的有符号概率计算单元 |
CN106774624A (zh) * | 2016-11-24 | 2017-05-31 | 北京理工大学 | 一种实时高斯白噪声硬件发生器的并行实现方法 |
-
2019
- 2019-05-08 CN CN201910378598.0A patent/CN110096677B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003110A (ja) * | 2007-06-20 | 2009-01-08 | National Institute Of Information & Communication Technology | 知識源を組込むための確率計算装置及びコンピュータプログラム |
CN105631155A (zh) * | 2016-01-12 | 2016-06-01 | 昆明理工大学 | 一种水库诱发地震概率计算方法 |
CN106059597A (zh) * | 2016-05-19 | 2016-10-26 | 电子科技大学 | 一种基于概率Turbo译码器的有符号概率计算单元 |
CN106774624A (zh) * | 2016-11-24 | 2017-05-31 | 北京理工大学 | 一种实时高斯白噪声硬件发生器的并行实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110096677A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9813224B2 (en) | Digital processor having instruction set with complex angle function | |
US10534576B2 (en) | Optimization apparatus and control method thereof | |
CN111984227B (zh) | 一种针对复数平方根的近似计算装置及方法 | |
CN112486455A (zh) | 一种基于cordic方法求复数的n次开根号的硬件计算系统及其计算方法 | |
EP3769208B1 (en) | Stochastic rounding logic | |
Chinnathambi et al. | FPGA implementation of fast and area efficient CORDIC algorithm | |
CN110097613B (zh) | 一种基于概率计算的b样条曲线生成方法和系统 | |
CN104135457B (zh) | 基于改进的cordic算法的数字鉴相方法及装置 | |
CN106814990A (zh) | Cordic算法的优化方法 | |
CN110096677B (zh) | 一种基于概率计算的高阶可导函数的快速计算方法和系统 | |
CN113778378B (zh) | 一种求解复数n次方根的装置和方法 | |
Karabulut et al. | Efficient, flexible, and constant-time gaussian sampling hardware for lattice cryptography | |
CN116388759A (zh) | 一种数字信号杂散检测及校正电路及方法 | |
Bangqiang et al. | Base-N logarithm implementation on FPGA for the data with random decimal point positions | |
CN113778379A (zh) | 一种基于cordic的低复杂度硬件系统和应用方法 | |
CN110532510B (zh) | 一种生成旋转因子和校正因子的生成器 | |
Deng et al. | A low latency High-throughput Elementary Function Generator based on Enhanced double rotation CORDIC | |
US6647403B2 (en) | Method and digital signal processing equipment for performing digital signal processing calculation | |
US20220374201A1 (en) | Digital Signal Processing Device | |
US12124815B2 (en) | Digital signal processing device | |
CN107203491A (zh) | 一种用于fpga的三角脉动阵列结构qr分解装置 | |
CN113127802B (zh) | 基于cordic算法的复对数实现方法、装置、设备及计算机存储介质 | |
CN111934712B (zh) | 基于动态重构的m序列跳频码结构还原方法 | |
Petrovsky et al. | Automatic generation of split-radix 2-4 parallel-pipeline FFT processors: hardware reconfiguration and core optimizations | |
Moroz et al. | The CORDIC method of calculating the exponential function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |