专利名称::通信系统的传输区块长度计算方法
技术领域:
:本发明是有关于高速封包存取(high-speedpacketaccess,HSPA)技术,尤有关于一种适用于HSPA的接收机(receiver)的指数函式(exponentialfunction)的运算方法。
背景技术:
:在HSPA的接收机设计中,必须要通过计算一个复杂的函式(1):""=lAninx,」x5,以得到传输区块长度(transportblocksize),才能够把资料正确的解码。然而,不同的系统所定义出来的参数pk、Lmin、S和k都不相同,例如支援双频分工(frequencydivisionduplex,FDD)的3GPP规格、高速下行链路封包存取(highspeeddownloadpacketaccess,HSDPA)平台的参数P=2085/2048、Lmin=296、S=i、k=40254。而计算函式L(k)的过程中解出指数函式pk的处理是最复杂的,以下简单介绍目前常用的三种指数函式Pk的运算方法。第一种方法是连乘积法(exhaustedmultiplicationmethod),此方法在DSP上执行L(k)计算时,主要问题在于如何处理pk的运算,P为实数常数且不为整数,当k为整数时只需执行P的k次连乘积。此方法最大的优点是观念简单,只要执行k次P的连乘积即可得到答案。然而其缺点是需要大量的乘法运算,通常DSP内建1-2个乘法器,当k值很大,例如k为250时,DSP需要进行迭代运算(iterativeoperation),因此需要很长的延迟时间(latency)。第二种方法是对数域(log-domain)运算法,此方法是将指数函式Pk转换到对数域来运算,因此Pk=e(一(P)),其中e(k*ln(P))可以表示成e(I+F),I为整数部份,F为小数部份。计算e1可以利用简单的e的I次连乘积,而eF的计算方式则揭露于美国专利第4,979,139号及IsraelKoren("ComputerArithmeticAlgorithms,,,Natick,MA:AKPeters,c2002)所提出的演算法,如图l所示。参考图1,nv表示F所需的位数,其中,步骤S106进行虚拟除法(pseudodivision)运算,而步骤S110及S112或步骤S114及S116进行虚拟乘法(pseudomultiplication)运算。对数域运算法的优点是,只需少量的乘法运算,且计算eF时不需使用乘法器,而只需要加法器、减法器与逻辑运算单元即可。其缺点是(l)当k为整数时,转成e(一(P))仍然需要执行(1+2)次(包含kXln(P)和^XJ)的乘法运算,且I值大小与ln(P)有关,当ln(P)>1时,相关运算将比连乘积法还要复杂。(2)计算eF的过程需要HV次的迭代运算,因此当nv很大时需要的延迟时间(latency)也会变长。(3)计算e(k*ln(P的过程中需要查表,进而需要额外的存储器,其大小为(mjmin(p)+mFXmF)个位(n^表示e所需的位(bit)数,n^(p)表示ln(P)所需的位数),因此当mF很大时,所需要的存储器也就相对的变大。第三种方法是查表法(look-uptable),但需要利用大量的存储器来储存庞大的表。
发明内容有鉴于上述问题,本发明的目的之一是提供一种通信系统的传输区块长度计算方法,通过将其中的指数函式拆解成多个常数向量,只需少量的存储器并执行连乘积运算,即可快速得到正确结果。为达成上述目的,本发明通信系统的传输区块长度计算方法,该通信系统接收一k值,该方法包含以下步骤计算出一指数函数值pk,根据函式<formula>formulaseeoriginaldocumentpage4</formula>,其中,Pn—!P。为n个预设常数向量,且kn—!k。为k的二进位数值的位值;以及,根据一参数L^、一参数S及该指数函式pk值,计算出一传输区块长度L(k),其中"A0-LA^X,」x5,该些参数P、l^与S为常数且k为正整数。本发明只需利用少量的存储器及少量的乘法运算,即可快速得到正确结果,明显地提高执行速度与效率并降低计算的复杂度。图1是现有技术的计算eF的方法流程图。图2是本发明指数函式Pk的运算方法的流程图。图3是决定预设常数向量Pi的方法的一个例子。图4是现有技术与本发明指数函式的运算方法的一实验结果比较表。具体实施例方式配合下列图示、实施例的详细说明及权利要求,将上述及本发明的其他目的与优点详述于后。在函式<formula>formulaseeoriginaldocumentpage4</formula>X5中,P为无法整除的常数分数,因此整个运算最复杂的地方就是如何解决计算指数函式Pk,本发明通过线性代数的观念把指数函式Pk拆解成n个常数向量,其中k是位于一个范围kr内的一个变数,亦是一个整数,而n表示在范围kr内,指数函式pk拆解后须要的常数向量的个数,即n=Tlog2(max(kr))"l,因此指数函式pk可以表示如下<formula>formulaseeoriginaldocumentpage4</formula>2)其中,A=//,且/2'(尸2'十O"),fe(O,"-1)。由于在实际应用系统中并不存在无限小数的实数,在应用时通常会通过有限位表示的有限小数来近似此无限小数,而表示此有限小数的位宽度则取决于系统所需的精确度。在函式(2)中^'表示^'的近似值,而o为修正参数,用以减少及替代pZ'表示J^'所需的位数。一般而言,常数向量/^的位宽度(即精确度)与函式(1)中的Lmin值与范围kr内的最大值有关。本发明利用函式(2)的运算复杂的指数运算简化成n个常数向量Pi的连乘积,通常n相对于k是个很小的值,进而大大减少运算的复杂度。由于不同的系统所定义出来的参数P、L^、S和kr都不相同,所以也导致每一个系统相对应的常数向量Pi的值也会不同。系统设计者必须根据HSPA的接收机所欲支援的系统(假设为系统A),预先计算出相对应的一组常数向量Pi,于出厂前储存于非挥发性存储器中。当HSPA的接收机在系统A下工作时,若接收到参数P、L^、S和k时,系统最多只需执行「l0g"k)1个连乘积,就能快速得到指数函式P的值。接着,再将指数函式P的值乘上L^及S,然后取整数部分,就能得到传输区块长度值L(k)。当然,若HSPA的接收机能同时支援多个系统,则必须预先储存多组的常数向量Pi,之后,再根据所使用的系统取出相对应的一组常数向量,进而提供连乘积运算。图2是本发明指数函式pk的运算方法的流程图。为方便说明,以下假设L^=100、S=1、范围kr=17、P=2085/2048,并根据上述参数值,预先求出范围kr(=丄7)内,指数函式pk拆解后所需要的三个(;n4"log2(;max(;7))"lh3)预设常数向量p2',/e(0,"—1)):P。=(1.000001001)2,P1=(1.000010010)2,P2=(1.000100110)2。步骤S210:根据HSPA的接收机所接收的一k值(假设k=5),设定变数j=k、变数i-n(H"log2(max(5))"t^3)。步骤S220:设定变数Y=l,其中,本步骤设定变数Y的初始值。步骤S230:判断j&l==1本步骤判断目前变数j的最低位(LSB)是否等于l。若是,跳到步骤S240,否则,跳到步骤S250。步骤S240:Y=YXpn—i。本步骤将目前变数Y的值乘上Pn—i。步骤S250:i=i-l,j=j>>1。换言之,是将变数i递减,并将变数j往右移一个位。步骤S260:判断变数i是否大于0若是,回到步骤S230,否则,跳到步骤S270。步骤S270:Pk=Y。就本实施例而言,k=(5)w=(101)2,因为只有位0及2等于l,故指数函式pk=Y=P。Xp2。得到指数函式pk值之后,根据函式(l),只需再乘以Lmin及S即可得到传输区块长度值L(5)=105。上述实施例中,将变数j依序往右移一个位,根据变数j的最低位(LSB)值,来决定是否要乘上相对应的预设常数向量Pi。在另一实施例中,将变数j依序往左移一个位,根据变数j的最高位(MSB)值,来决定是否要乘上相对应的预设常数向量Pi,而本实施例与图2的实施例差别在于,于步骤S230判断j&(100)2是否等于(100)2,于步骤S240中计算Y=YXpn—p于步骤S250中计算j=j<<l,其余作法相同。图3是决定预设常数向量Pi的方法的一个例子。以下,根据图3说明决定预设常数向量Pi的方法。步骤S310:根据参数P、L^、S及kr,得到范围kr内每一个k值所相对应的一组正确的传输区块长度值L(k)。根据上述图2所举例的参数值,得到范围&(=17)内每一个k值所相对应的正确传输区块长度值如下L(l)=101、L(2)=103、L(3)=105、L(4)=107、L(5)=109、L(6)=111、L(7)=113。步骤SMO:根据参数P及kr,计算出n个指数函式代表值《(=尸2'Je(0,-1))5值。从图2的说明已知n=3,将P值代入可得到三个Pi值如下PQ=(1.01806640625..)1(l=(1.00000100101000000000.)2=(1.03645920753..)1(l=(1.00001001010101010110..)2P2=(1.07424768888..)1(l=(1.00010011000000011110..)2步骤S330:根据一精确度(以位数作单位)及该n个指数函式代表值Pi,得到n个临时常数向量Pi值(p,.-p2、/e(0,"-l))。假设精确度一开始设定为取Pi值至小数位以下7位(精确度=8),则得到以下三个临时常数向量Pi'值P。二(1.0000010)2=(1.0156250)10、Pi=(1.0000100)2=(1.0312500)10、P2=(1.0001001)2=(1.0703125)1(|。步骤S340:根据参数L^、S及三个临时常数向量值,得到精确度为8时的一组传输区块长度值L'(k)。根据上述三个临时常数向量值及参数L^及S,可得到精确度为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:将预设常数向量Pi设定等于临时常数向量Pi'。对上述举例的参数值而言,精确度必须增加到10位(取Pi值至小数位以下9位)时,二组传输区块长度值L(k)与L'(k)才会全部相等,此时,以下三个临时常数向量会被设定当作预设常数向量P0'=(1.000001001)2、P/=(1.000010010)2、P2'=(1.000100110)2。图4是现有技术与本发明指数函式的运算方法的一实验结果比较表。假设P二(2085/2048)、k=1510、mF=19时,从图4可以看到利用四种不同的方法计算Pk的复杂度连乘积法直接执行连乘积运算,虽然只需要20个位来储存P值,但平均需要迭代执行255.5次乘法,运算的复杂度太高。至于对数域运算法,平均需要执行5.97次的乘法运算与19次虚拟除法和虚拟乘法的运算,同时,还需要额外19X19+41位的存储器;另外,因为虚拟除法和虚拟乘法是迭代的运算,因此执行时需要比较长的延迟时间。查表法虽然可以直接得到结果但需要很大的存储器(22X510位)来储存庞大的表。相形之下,使用本发明的运算法,平均只需要执行4.5次的乘法运算,以及9x23位的存储器来储存9个预设常数向量Pit)由图4的比较表可以观察到,本发明计算指数函式pk时具有以下三个优点,(1)较少的乘法运算,本发明最多只需要执行nH"log2(max(kX)])次乘法。当k的最大值很大时(例如k=510),相对于现有技术,本发明所需执行的平均乘法运算次数最少。(2)较少的存储器,本发明只需储存n个常数向量,例如,若a为表示预设常数向量所需的位数或精确度,则所需的存储器为nXa位),即可发挥最佳的运算效率。(3)较高的执行速度与效率,相较于对数域运算法,本发明只要判断需要执行哪些常数向量的连乘积,而不需要执行任何虚拟除法和虚拟乘法。因此,本发明只需利用少量的存储器及少量的乘法运算,即可快速得到正确结果,明显地提高执行速度与效率并降低计算的复杂度。在较佳实施例的详细说明中所提出的具体实施例仅用以方便说明本发明的技术内容,而非将本发明狭义地限制于上述实施例,在不超出本发明的精神及以下权利要求的情况,所做的种种变化实施,皆属于本发明的范围。权利要求一种用于通信系统中的传输区块长度计算方法,其特征在于,所述通信系统接收一k值,所述方法包含以下步骤计算出一指数函数值Pk,根据函式其中,ρn-1~ρ0为n个预设常数向量,且kn-1~k0为k的二进位数值的位值;以及根据一参数Lmin、一参数δ及所述指数函式Pk值,计算出一传输区块长度L(k),其中所述些参数P、Lmin与δ为常数且k为正整数。F2008101905157C0000011.tif,F2008101905157C0000012.tif2.如权利要求1所述的传输区块长度计算方法,其特征在于,所述n为表示k值所需的最大位数。3.如权利要求2所述的传输区块长度计算方法,其特征在于,所述n为「1og2(max(k))"l。4.如权利要求1所述的传输区块长度计算方法,其特征在于,所述计算出前述指数函数pk值的步骤包含依序比较所述k值的每个位的值是否等于一预设值,若所述k值所比较位的值为前述预设值时,选出对应所述位的一预设常数向量;以及将所有选出的所述预设常数向量的乘积作为所述函数指数值Pk。5.如权利要求4所述的传输区块长度计算方法,其特征在于,所述依序比较步骤中,比较所述k值的最低位值与所述预设值后,再将所述k值往右移一个位,并重复本步骤直到比较完所述k值的所有位值。6.如权利要求4所述的传输区块长度计算方法,其特征在于,所述依序比较步骤中,比较所述k值的最高位值与所述预设值后,再将所述k值往左移一个位,并重复本步骤直到比较完所述k值的所有位值。7.如权利要求l所述的传输区块长度计算方法,其特征在于,所述n个预设常数向量的产生包含以下步骤根据该些参数P、L^与S及一范围,得到一组传输区块长度值,其中,所述k值位于所述范围内;根据所述参数P及前述n值,计算n个指数函式代表值;根据一精确度及所述这些指数函式代表值,得到n个临时常数向量,其中,所述精确度为所述这些临时常数向量的位宽度;根据所述这些临时常数向量、所述这些参数Lmin及S,进而得到一组临时传输区块长度值;以及针对所述范围,判断所述组传输区块长度值是否都等于所述组临时传输区块长度值,若是,将所述这些预设常数向量设定等于所述这些临时常数向量,否则,调整所述精确度,并回到前述得到所述这些临时常数向量的步骤。8.如权利要求7所述的传输区块长度计算方法,其特征在于,所述这些指数函式代表值等于&,《=尸2',1G(O,n-l)。9.如权利要求1所述的方法,其特征在于,所述通信系统为支援高速封包存取技术的一接收机。全文摘要本发明提供一种通信系统的传输区块长度计算方法,通过将其中的指数函式Pk拆解成多个常数向量后,利用少量的存储器并执行少数的连乘积运算,即可快速得到正确结果,进而提高执行速度与效率并降低计算的复杂度。文档编号H04L12/56GK101764735SQ20081019051公开日2010年6月30日申请日期2008年12月25日优先权日2008年12月25日发明者周毓堂申请人:凌阳电通科技股份有限公司