CN101764735B - 通信系统的传输区块长度计算方法 - Google Patents
通信系统的传输区块长度计算方法 Download PDFInfo
- Publication number
- CN101764735B CN101764735B CN2008101905157A CN200810190515A CN101764735B CN 101764735 B CN101764735 B CN 101764735B CN 2008101905157 A CN2008101905157 A CN 2008101905157A CN 200810190515 A CN200810190515 A CN 200810190515A CN 101764735 B CN101764735 B CN 101764735B
- Authority
- CN
- China
- Prior art keywords
- value
- constant vector
- parameter
- exponential function
- interim
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 title claims abstract description 11
- 238000004891 communication Methods 0.000 title claims abstract description 10
- 239000013598 vector Substances 0.000 claims abstract description 39
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 34
- 230000015654 memory Effects 0.000 abstract description 12
- 239000000047 product Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供一种通信系统的传输区块长度计算方法,通过将其中的指数函数Pk拆解成多个常数向量后,利用少量的存储器并执行少数的连乘积运算,即可快速得到正确结果,进而提高执行速度与效率并降低计算的复杂度。
Description
技术领域
本发明是有关于高速封包存取(high-speed packet access,HSPA)技术,尤有关于一种适用于HSPA的接收机(receiver)的指数函数(exponential function)的运算方法。
背景技术
在HSPA的接收机设计中,必须要通过计算一个复杂的函数(1):以得到传输区块长度(transport block size),才能够把资料正确的解码。然而,不同的系统所定义出来的参数Pk、Lmin、δ和k都不相同,例如支援双频分工(frequency division duplex,FDD)的3GPP规格、高速下行链路封包存取(high speed download packet access,HSDPA)平台的参数P=2085/2048、Lmin=296、δ=1、k=40~254。而计算函数L(k)的过程中解出指数函数Pk的处理是最复杂的,以下简单介绍目前常用的三种指数函数Pk的运算方法。
第一种方法是连乘积法(exhausted multiplication method),此方法在DSP上执行L(k)计算时,主要问题在于如何处理Pk的运算,P为实数常数且不为整数,当k为整数时只需执行P的k次连乘积。此方法最大的优点是观念简单,只要执行k次P的连乘积即可得到答案。然而其缺点是需要大量的乘法运算,通常DSP内建1-2个乘法器,当k值很大,例如k为250时,DSP需要进行迭代运算(iterative operation),因此需要很长的延迟时间(latency)。
第二种方法是对数域(log-domain)运算法,此方法是将指数函数Pk转换到对数域来运算,因此Pk=e(k*ln(P)),其中e(k*ln(P))可以表示成e(I+F),I为整数部份,F为小数部份。计算eI可以利用简单的e的I次连乘积,而eF的计算方式则揭露于美国专利第4,979,139号及Israel Koren(“Computer Arithmetic Algorithms”,Natick,MA:AK Peters,c2002)所提出的演算法,如图1所示。参考图1,mF表示F所需的位数,其中,步骤S106进行虚拟除法(pseudo division)运算,而步骤S110及S112或步骤S114及S116进行虚拟乘法(pseudo multiplication)运算。对数域运算法的优点是,只需少量的乘法运算,且计算eF时不需使用乘法器,而只需要加法器、减法器与逻辑运算单元即可。其缺点是:(1)当k为整数时,转成e(k*ln(P))仍然需要执行(I+2)次(包含k×ln(P)和eI×eF)的乘法运算,且I值大小与ln(P)有关,当ln(P)>1时,相关运算将比连乘积法还要复杂。(2)计算eF的过程需要mF次的迭代运算,因此当mF很大时需要的延迟时间(latency)也会变长。(3)计算e(k*ln(P))的过程中需要查表,进而需要额外的存储器,其大小为(me+mln(P)+mF×mF)个位(me表示e所需的位(bit)数,mln(P)表示ln(P)所需的位数),因此当mF很大时,所需要的存储器也就相对的变大。
第三种方法是查表法(look-up table),但需要利用大量的存储器来储存庞大的表。
发明内容
有鉴于上述问题,本发明的目的之一是提供一种通信系统的传输区块长度计算方法,通过将其中的指数函数拆解成多个常数向量,只需少量的存储器并执行连乘积运算,即可快速得到正确结果。
为达成上述目的,本发明通信系统的传输区块长度计算方法,该通信系统接收一k值,该方法包含以下步骤:计算出一指数函数值Pk,根据函数其中,ρn-1~ρ0为n个预设常数向量,且kn-1~k0为k的二进位数值的位值;以及,根据一参数Lmin、一参数δ及该指数函数Pk值,计算出一传输区块长度L(k),其中所述参数P、Lmin与δ为常数且k为正整数。
本发明只需利用少量的存储器及少量的乘法运算,即可快速得到正确结果,明显地提高执行速度与效率并降低计算的复杂度。
附图说明
图1是现有技术的计算eF的方法流程图。
图2是本发明指数函数Pk的运算方法的流程图。
图3是决定预设常数向量ρi的方法的一个例子。
图4是现有技术与本发明指数函数的运算方法的一实验结果比较表。
具体实施方式
配合下列图示、实施例的详细说明及权利要求,将上述及本发明的其他目的与优点详述于后。
在函数(1):中,P为无法整除的常数分数,因此整个运算最复杂的地方就是如何解决计算指数函数Pk,本发明通过线性代数的观念把指数函数Pk拆解成n个常数向量,其中k是位于一个范围kr内的一个变数,亦是一个整数,而n表示在范围kr内,指数函数Pk拆解后须要的常数向量的个数,即因此指数函数Pk可以表示如下:
其中, 且 i∈(0,n-1)。
由于在实际应用系统中并不存在无限小数的实数,在应用时通常会通过有限位表示的有限小数来近似此无限小数,而表示此有限小数的位宽度则取决于系统所需的精确度。在函数(2)中表示的近似值,而σ为修正参数,用以减少及替代表示所需的位数。一般而言,常数向量的位宽度(即精确度)与函数(1)中的Lmin值与范围kr内的最大值有关。本发明利用函数(2)的运算复杂的指数运算简化成n个常数向量ρi的连乘积,通常n相对于k是个很小的值,进而大大减少运算的复杂度。
由于不同的系统所定义出来的参数P、Lmin、δ和kr都不相同,所以也导致每一个系统相对应的常数向量ρi的值也会不同。系统设计者必须根据HSPA的接收机所欲支援的系统(假设为系统A),预先计算出相对应的一组常数向量ρi,于出厂前储存于非挥发性存储器中。当HSPA的接收机在系统A下工作时,若接收到参数P、Lmin、δ和k时,系统最多只需执行个连乘积,就能快速得到指数函数Pk的值。接着,再将指数函数Pk的值乘上Lmin及δ,然后取整数部分,就能得到传输区块长度值L(k)。当然,若HSPA的接收机能同时支援多个系统,则必须预先储存多组的常数向量ρi,之后,再根据所使用的系统取出相对应的一组常数向量,进而提供连乘积运算。
图2是本发明指数函数Pk的运算方法的流程图。为方便说明,以下假设Lmin=100、δ=1、范围kr=1~7、P=2085/2048,并根据上述参数值,预先求出范围kr(=1~7)内,指数函数Pk拆解后所需要的三个预设常数向量ρ0=(1.000001001)2,ρ1=(1.000010010)2,ρ2=(1.000100110)2。
步骤S220:设定变数Y=1,其中,本步骤设定变数Y的初始值。
步骤S230:判断j&1==1?本步骤判断目前变数j的最低位(LSB)是否等于1。若是,跳到步骤S240,否则,跳到步骤S250。
步骤S240:Y=Y×ρn-i。本步骤将目前变数Y的值乘上ρn-i。
步骤S250:i=i-1,j=j>>1。换言之,是将变数i递减,并将变数j往右移一个位。
步骤S260:判断变数i是否大于0?若是,回到步骤S230,否则,跳到步骤S270。
步骤S270:Pk=Y。就本实施例而言,k=(5)10=(101)2,因为只有位0及2等于1,故指数函数Pk=Y=ρ0×ρ2。
得到指数函数Pk值之后,根据函数(1),只需再乘以Lmin及δ即可得到传输区块长度值L(5)=105。上述实施例中,将变数j依序往右移一个位,根据变数j的最低位(LSB)值,来决定是否要乘上相对应的预设常数向量ρi。在另一实施例中,将变数j依序往左移一个位,根据变数j的最高位(MSB)值,来决定是否要乘上相对应的预设常数向量ρi,而本实施例与图2的实施例差别在于,于步骤S230判断j&(100)2是否等于(100)2,于步骤S240中计算Y=Y×ρn-1,于步骤S250中计算j=j<<1,其余作法相同。
图3是决定预设常数向量ρi的方法的一个例子。以下,根据图3说明决定预设常数向量ρi的方法。
步骤S310:根据参数P、Lmin、δ及kr,得到范围kr内每一个k值所相对应的一组正确的传输区块长度值L(k)。根据上述图2所举例的参数值,得到范围kr(=1~7)内每一个k值所相对应的正确传输区块长度值如下:L(1)=101、L(2)=103、L(3)=105、L(4)=107、L(5)=109、L(6)=111、L(7)=113。
P0=(1.01806640625...)10=(1.00000100101000000000...)2
P1=(1.03645920753...)10=(1.00001001010101010110...)2
P2=(1.07424768888...)10=(1.00010011000000011110...)2
步骤S330:根据一精确度(以位数作单位)及该n个指数函数代表值Pi,得到n个临时常数向量ρi′值假设精确度一开始设定为取Pi值至小数位以下7位(精确度=8),则得到以下三个临时常数向量ρi′值:ρ0′=(1.0000010)2=(1.0156250)10、ρ1′=(1.0000100)2=(1.0312500)10、ρ2′=(1.0001001)2=(1.0703125)10。
步骤S340:根据参数Lmin、δ及三个临时常数向量ρi′值,得到精确度为8时的一组传输区块长度值L’(k)。根据上述三个临时常数向量ρi′值及参数Lmin及δ,可得到精确度为8位时的相对应的一组传输区块长度值:L’(1)=101、L’(2)=103、L’(3)=104、L’(4)=107、L’(5)=108、L’(6)=110、L’(7)=112。
步骤S350:在范围kr内,比较二组传输区块长度值L(k)与L’(k)是否都相等。若L(k)与L’(k)全数相等,则跳到步骤S370,否则,跳到步骤S360。当精确度为8位时,从上述二组传输区块长度值L(k)与L’(k)可以观察到L’(3)≠L(3)、L’(5)≠L(5)、L’(6)≠L(6)、L’(7)≠L(7)。
步骤S360:调整精确度,再回到步骤S330。一般而言,增加精确度会提高正确率,但相对地会增加乘法运算的复杂度。因此,最佳的状况是,当在精确度是最低的情况下,使L(k)与L’(k)全部相等。
步骤S370:将预设常数向量ρi设定等于临时常数向量ρi′。对上述举例的参数值而言,精确度必须增加到10位(取Pi值至小数位以下9位)时,二组传输区块长度值L(k)与L’(k)才会全部相等,此时,以下三个临时常数向量会被设定当作预设常数向量:ρ0′=(1.000001001)2、ρ1′=(1.000010010)2、ρ2′=(1.000100110)2。
图4是现有技术与本发明指数函数的运算方法的一实验结果比较表。
假设P=(2085/2048)、k=1~510、mF=19时,从图4可以看到利用四种不同的方法计算Pk的复杂度:连乘积法直接执行连乘积运算,虽然只需要20个位来储存P值,但平均需要迭代执行255.5次乘法,运算的复杂度太高。至于对数域运算法,平均需要执行5.97次的乘法运算与19次虚拟除法和虚拟乘法的运算,同时,还需要额外19×19+41位的存储器;另外,因为虚拟除法和虚拟乘法是迭代的运算,因此执行时需要比较长的延迟时间。查表法虽然可以直接得到结果但需要很大的存储器(22×510位)来储存庞大的表。相形之下,使用本发明的运算法,平均只需要执行4.5次的乘法运算,以及9x23位的存储器来储存9个预设常数向量ρi。
由图4的比较表可以观察到,本发明计算指数函数Pk时具有以下三个优点,(1)较少的乘法运算,本发明最多只需要执行次乘法。当k的最大值很大时(例如k=510),相对于现有技术,本发明所需执行的平均乘法运算次数最少。(2)较少的存储器,本发明只需储存n个常数向量,例如,若a为表示预设常数向量所需的位数或精确度,则所需的存储器为n×a位),即可发挥最佳的运算效率。(3)较高的执行速度与效率,相较于对数域运算法,本发明只要判断需要执行哪些常数向量的连乘积,而不需要执行任何虚拟除法和虚拟乘法。因此,本发明只需利用少量的存储器及少量的乘法运算,即可快速得到正确结果,明显地提高执行速度与效率并降低计算的复杂度。
在较佳实施例的详细说明中所提出的具体实施例仅用以方便说明本发明的技术内容,而非将本发明狭义地限制于上述实施例,在不超出本发明的精神及以下权利要求的情况,所做的种种变化实施,皆属于本发明的范围。
Claims (7)
1.一种用于通信系统中的传输区块长度计算方法,其特征在于,所述通信系统接收一k值,所述方法包含以下步骤:
计算出一指数函数值Pk,根据函数其中,ρn-1~ρ0为n个预设常数向量,且kn-1~k0为k的二进位数值的位值;以及
根据一参数Lmin、一参数δ及所述指数函数Pk值,计算出一传输区块长度L(k),其中所述参数P、Lmin与δ为常数且k为正整数;
其中,所述n个预设常数向量的产生包含以下步骤:
根据所述参数P、Lmin与δ及一范围,得到一组传输区块长度值,其中,所述k值位于所述范围内;
根据一精确度及所述n个指数函数代表值,得到n个临时常数向量,其中,所述精确度为所述n个临时常数向量的位宽度;
根据所述n个临时常数向量、所述参数Lmin及δ,进而得到一组临时传输区块长度值;以及
针对所述范围,判断所述组传输区块长度值是否都等于所述组临时传输区块长度值,若是,将所述n个预设常数向量设定等于所述n个临时常数向量,否则,调整所述精确度,并回到前述得到所述n个临时常数向量的步骤。
2.如权利要求1所述的传输区块长度计算方法,其特征在于,所述n为表示k值所需的最大二进位数值的位数。
4.如权利要求1所述的传输区块长度计算方法,其特征在于,所述计算出前述指数函数Pk值的步骤包含:
依序比较所述k值的每个二进位数值的位的值是否等于一预设值,若所述k值所比较二进位数值的位的值为前述预设值时,选出对应所述二进位数值的位的一预设常数向量;以及
将所有选出的所述预设常数向量的乘积作为所述函数指数值Pk,所述的预设值为1。
5.如权利要求4所述的传输区块长度计算方法,其特征在于,所述依序比较步骤中,比较所述k值的最低二进位数值的位值与所述预设值后,再将所述k值往右移一个位,并重复本步骤直到比较完所述k值的所有二进位数值的位值。
6.如权利要求4所述的传输区块长度计算方法,其特征在于,所述依序比较步骤中,比较所述k值的最高二进位数值的位值与所述预设值后,再将所述k值往左移一个位,并重复本步骤直到比较完所述k值的所有二进位数值的位值。
7.如权利要求1所述的方法,其特征在于,所述通信系统为支持高速封包存取HSPA技术的一接收机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101905157A CN101764735B (zh) | 2008-12-25 | 2008-12-25 | 通信系统的传输区块长度计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101905157A CN101764735B (zh) | 2008-12-25 | 2008-12-25 | 通信系统的传输区块长度计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101764735A CN101764735A (zh) | 2010-06-30 |
CN101764735B true CN101764735B (zh) | 2011-12-07 |
Family
ID=42495729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101905157A Expired - Fee Related CN101764735B (zh) | 2008-12-25 | 2008-12-25 | 通信系统的传输区块长度计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101764735B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979139A (en) * | 1988-02-17 | 1990-12-18 | Nec Corporation | Arithmetic unit for exponential function |
EP1350161A1 (fr) * | 2001-01-11 | 2003-10-08 | Gemplus | Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif |
CN101000687A (zh) * | 2007-01-15 | 2007-07-18 | 浙江大学 | 一种基调平移和削弱图像噪声的快速处理方法 |
CN101061474A (zh) * | 2004-06-10 | 2007-10-24 | 哈桑·塞希托格鲁 | 信号处理的矩阵定值方法和装置 |
-
2008
- 2008-12-25 CN CN2008101905157A patent/CN101764735B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979139A (en) * | 1988-02-17 | 1990-12-18 | Nec Corporation | Arithmetic unit for exponential function |
EP1350161A1 (fr) * | 2001-01-11 | 2003-10-08 | Gemplus | Dispositif destine a realiser des calculs d'exponentiation, et procede de programmation et d'utilisation du dispositif |
CN101061474A (zh) * | 2004-06-10 | 2007-10-24 | 哈桑·塞希托格鲁 | 信号处理的矩阵定值方法和装置 |
CN101000687A (zh) * | 2007-01-15 | 2007-07-18 | 浙江大学 | 一种基调平移和削弱图像噪声的快速处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101764735A (zh) | 2010-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7689639B2 (en) | Complex logarithmic ALU | |
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
Meher | Hardware-efficient systolization of DA-based calculation of finite digital convolution | |
CN104461449A (zh) | 基于向量指令的大整数乘法实现方法及装置 | |
JPH0622033B2 (ja) | サンプルベクトルの離散余弦変換を計算する回路 | |
US9069686B2 (en) | Digital signal processor having instruction set with one or more non-linear functions using reduced look-up table with exponentially varying step-size | |
CN111966324A (zh) | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 | |
Chen et al. | A matrix-multiply unit for posits in reconfigurable logic leveraging (open) CAPI | |
Seo et al. | Binary and prime field multiplication for public key cryptography on embedded microprocessors | |
JP2016062404A (ja) | 演算処理方法及び演算処理装置 | |
CN116466910A (zh) | 一种基于浮点数的查表方法、装置、电子设备及存储介质 | |
CN1258710C (zh) | 用于高效模数归约和模数乘法的电路和方法 | |
CN112463112B (zh) | 点积累加方法及装置 | |
CN108228135B (zh) | 一种运算多种超越函数的装置 | |
US8527570B1 (en) | Low cost and high speed architecture of montgomery multiplier | |
CN101764735B (zh) | 通信系统的传输区块长度计算方法 | |
CN103049716B (zh) | 基于一阶矩的卷积器 | |
CN109379191B (zh) | 一种基于椭圆曲线基点的点乘运算电路和方法 | |
CN109460535B (zh) | 一种基于云的有限域矩阵求逆装置及求逆方法 | |
US20220075598A1 (en) | Systems and Methods for Numerical Precision in Digital Multiplier Circuitry | |
Irturk et al. | An efficient FPGA implementation of scalable matrix inversion core using QR decomposition | |
CN113778379A (zh) | 一种基于cordic的低复杂度硬件系统和应用方法 | |
CN109947393B (zh) | 基于求余器的运算方法及装置 | |
CN111615700B (zh) | 运算电路 | |
CN110457008B (zh) | m序列生成方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111207 Termination date: 20171225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |