一种移动通信中信道编码的快速计算方法

文档序号:7505881阅读:227来源:国知局
专利名称:一种移动通信中信道编码的快速计算方法
技术领域
本发明涉及信道编码技术,特别是指一种移动通信中信道编码的快速计算方法。
背景技术
卷积码是1955年Elias提出的一种信道编码技术,目前已被广泛应用于通信系统中,刚刚发展起来的3GPP也将其作为主要采用的信道编码。具体来说,卷积编码是将k个信息比特编码成n个比特,本组的n-k个校验元不仅与本组的k个信息码元有关,而且与前面N-1个时刻输入编码器的信息有关,其中N=n+1,可见,编码过程中相互关联的码元为Nn个。由于卷积码的纠错能力是随N的增加而增大的,而差错率是随N的增加而指数下降的,因此,N被称为约束长度。
同样,在卷积码译码过程中,不仅从当前时刻收到的码组中提取译码信息,而且还要利用以前或以后各个时刻收到的码组中提取有关信息。正是由于卷积码在编码过程中充分利用了各组之间的相关性,并且,相对于分组编码而言,k和n也相对较小,实现最佳和准最佳译码也比较容易。
卷积码编码器的整个编码过程可以看成是输入信息序列与移位寄存器和异或连接方式所决定的另一个序列的卷积,一般将卷积码记作(n,k,N),其编码效率为Rc=k/n。根据编码效率的不同,卷积码又包括1/2卷积码、1/3卷积码等等,其中的1/2、1/3即为编码效率,这里,编码效率也可简称为码率。
通常,卷积码编码器的生成多项式如公式(1)所示G(D)=A0+A1D+...+An-1Dn-1+AnDn(1)以1/2码率为例,1/2卷积码编码器的生成多项式如公式(2)、公式(3)所示
G0(D)=1+D2+D3+D4+D8(2)G1(D)=1+D+D2+D3+D5+D7+D8(3)在3GPP中,卷积码编码器的结构如图1所示,其中,图1a给出的是1/2卷积码编码器,图1b给出的是1/3卷积码编码器。参见图1所示,3GPP的卷积码编码器包括八个移位寄存器,一个输入序列经过八个移位寄存器的不同处理后,输出两个或三个序列,具体的输出序列个数与所采用的码率相关。从图1可以看出,每个输出比特都是当前输入比特与此前输入的某些比特进行异或得到的结果。
实际上,卷积码编码的常规方法就是按生成多项式决定的逻辑结构来进行逐比特操作。由于生成多项式的不同,运算量大小也不一样。图1中处理每个比特所使用的异或指令为5或7条,这样运算量相当大,不适合高速数据通信。
目前,卷积码编码两种典型的计算方法是基于生成多项式状态项计算和基于冲激响应计算。其中,基于生成多项式状态项计算的方法主要过程是这样的首先,将待编码的比特流分成一个或多个处理单元,所述处理单元最好与处理器的处理位宽一致,现有处理器的处理位宽一般是8、16、32等等。然后,存储各个状态项对应的比特序列,以便以后计算使用。这里,所述状态项是指生成多项式中D的各个指数项,对于公式(2)、公式(3)来说,状态项包括1,D,D2,D3,D4,D5,D7,D8。其中,状态项1对应当前处理单元;状态项D对应的比特序列比当前处理单元延迟1个时刻;状态项D2对应的比特序列比当前处理单元延迟2个时刻,依次类推。最后,按照生成多项式,将各个状态项对应的比特序列进行异或,得到当前处理单元的编码序列。虽然该方法计算速度最快能达到lcycle/bit,但其计算速度受到处理器处理位宽的限制,只有处理器位宽大于或等于约束长度的2倍,也就是W≥2(N-1)时,才能方便快速地获取各个状态项,否则速度将大打折扣。而且,该方法产生的编码数据是按照支路存放的,在支路合并时也需要额外的处理器开销。
对于基于冲激响应的卷积码编码计算,如图1所示,由于任意时刻t的输入比特对编码器都会产生一次冲激,这次冲激会影响t时刻及以后的t+1一直到t+8时刻,每个时刻对应一个输出比特,从c0到c8。那么,正好将输入比特流看作一个个冲激,对应输出码流就是该一个个冲激响应的叠加。又由于“0”的冲激响应对应的输出比特都是0,可以不考虑,而只考虑“1”的冲激响应。因此,基于冲激响应计算的方法包括以下步骤1)根据编码器状态的数据长度,选用合适的寄存器,并进行初始化。比如图1b所示的编码器约束长度为9,数据长度为(9-1)/(1/3)=24,所以选取三个32比特的寄存器分别存放冲激响应累加结果S、“1”冲激响应A、编码器输出C。
2)计算“1”的冲激响应,并存储在对应A的寄存器中。
3)按如下步骤进行迭代a.取一个输入比特,判断输入比特是0还是1,如果是1,则执行步骤b,否则执行步骤c;b.将寄存器A的比特流累加入寄存器S;c.将寄存器S中的比特流左移三位输入寄存器C,该三位就是输入比特的编码值,寄存器S左移三位后的结果仍保留在寄存器S中;d.最后输出寄存器C中的编码值,返回步骤a。
所述基于冲激响应的计算方法,虽然计算速度也是lcycle/bit级的,适用于高速数据通信,但该方法始终是一个串行的方式,因为针对每个输入比特都要有一个判断过程,不能并行处理一块数据,因此在计算速度上的提高还是有限制的。

发明内容
有鉴于此,本发明的主要目的在于提供一种移动通信中信道编码的快速计算方法,能大大提高信道编码的计算速度,进而提高整体的业务处理能力。
为达到上述目的,本发明的技术方案是这样实现的一种移动通信中信道编码的快速计算方法,该方法包括以下步骤
a.根据当前所用信道码编码器的逻辑结构,获取该信道码编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;b.将所获得的每路输出的每个函数表示部分分别存储,并对每个存储部分分别生成对应的查找表;c.在计算编码时,先将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加得到第i路输出的最终编码。
其中,步骤a还包括同时获取当前所用信道码编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系。
上述方案中,步骤b和步骤c之间进一步包括判断每个存储部分是否需要继续细分,如果需要,则按给定条件将当前的存储部分进一步划分为一个以上子存储部分,并对划分后的每个子存储部分分别生成对应的查找表;否则,直接执行步骤c。相应的,该方法进一步包括预先设置需要进行细分的条件,则所述判断是否需要细分为判断是否符合细分条件,如果符合,则需要细分;否则不需要细分。其中,所述进行细分的条件为步骤b中所述分别存储部分的存储量大于给定存储量。
上述方案中,如果将当前存储部分进一步划分为一个以上子存储部分,则步骤c为将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自子存储部分对应的查找表获得各自的编码,再将所有获得的对应每个子存储部分的编码进行模2加得到第i路输出的编码。
上述方案中,可将每个存储部分的内容分别存储在表中。另外,所述信道码编码器为1/2码率的卷积码编码器、或1/3码率的卷积码编码器、或Turbo码编码器。
本发明所提供的移动通信中信道编码的快速计算方法,由于根据当前信道码编码器对应的逻辑结构,预先获取在不同输入比特的处理状态下,当前信道码编码器的每路输出与编码器中每个移位寄存器的初始状态和每路输入比特位之间的关系,并根据该关系生成对应的查找表;在进行对应的信道编码时,直接利用预先生成的查找表获取信道码编码器当前状态下的每路输出,如此能大大提高信道编码的计算速度。由于本发明是基于并行处理实现的,所以具有很高的并行度,处理灵活,不受处理器处理位宽的限制;而且,一次到位,不需要任何合路操作,因此也不会带来额外的开销。


图1a为3GPP中1/2卷积码编码器的逻辑结构示意图;图1b为3GPP中1/3卷积码编码器的逻辑结构示意图;图2为通用信道码编码器的结构组成图;图3为本发明方法的实现流程图。
具体实施例方式
本发明的基本思想就是根据当前信道码编码器对应的逻辑结构,预先获取在不同输入比特的处理状态下,当前信道码编码器的每路输出与编码器中每个移位寄存器的初始状态和每路输入比特位之间的关系,以及编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系,并根据所述关系分别生成对应的查找表;在进行对应的信道编码时,直接利用预先生成的查找表获取信道码编码器当前状态下的每路输出或移位寄存器的更新状态。
如图2所示,图2是一个通用的信道码编码器逻辑结构,该编码器共有N路输入和L路输出,假设编码器的状态由R1,R2,......,Rk表示,且Rk~R1的初始状态为Ck~C1。当然,编码器也可能没有状态,比如编码器仅由模2加电路组成,也就是说,编码器的输出仅与当时的输入有关,这种情况下,只需将Rk~R1(Ck~C1)去掉。假设INPUT1输入的一个字节为M1=M1,8,M1,7,M1,6,M1,5,M1,4,M1,3,M1,2,M1,1,其中M1,8为最高有效位(MSB),M1,1为最低有效位(LSB);从INPUT2输入的一个字节为M2=M2,8,M2,7,M2,6,M2,5,M2,4,M2,3,M2,2,M2,1,其中M2,8为MSB,M2,1为LSB;依此类推,从INPUTn输入的一个字节为Mn=Mn,8,Mn,7,Mn,6,Mn,5,Mn,4,Mn,3,Mn,2,Mn,1,其中Mn,8为MSB,Mn,1为LSB。假设编码器在所有的输入比特Mn,i(1≤n≤N,1≤i≤8)编码结束之后,输出的比特按照先后顺序分别记为OUT1,OUT2,...,OUTL。那么,经过变换编码器的L路输出以及编码器更新状态R1~Rk的表达式如表一和表二所示,其中表一为通用卷积码编码器L路输出的表达式,表二为通用卷积码编码器更新状态的表达式。

表一表一中,φi(C1,C2,....,Ck)表示是C1,...,Ck的一个函数,C1到Ck是移位寄存器的初始状态,φi的下标i表示是第i路输出的函数;f1,1(M1,1,M1,2,...M1,8)表示是M1,1,M1,2,...M1,8的函数,其中M1,2表示输入,具体讲就是,第一路输入的一个字节中的第二个比特,以此类推。f1,1下标中的第一个1表示第一路输出,第二个1表示第一路输入;“+”表示模2加。

表二同样的,表二中,gi(C1,C2, ....,Ck)表示是C1,...,Ck的一个函数,C1到Ck是移位寄存器的初始状态,gi的下标i表示是第i路输出的函数;h1,1(M1,1,M1,2,..M1,8)表示是M1,1,M1,2,...M1,8的函数,其中M1,2表示输入,具体讲就是,第一路输入的一个字节中的第二个比特,以此类推。h1,1下标中的第一个1表示第一路输出,第二个1表示第一路输入;“+”表示模2加。
实际上,本发明计算信道编码的具体处理过程,如图3所示包括以下步骤步骤301根据当前所用信道码编码器的逻辑结构,获取该编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系,同时获取该编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;步骤302将所获得的每路输出的每个函数表示部分分别存储,比如将表一划分为N+1个子表,如表三、表四、表五所示;

表三

表四

表五步骤303分别生成对应每个存储部分的查找表,也就是,分别生成N+1个子表的查找表;步骤304在计算编码时,先将表示当前计算的第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加即可得到该路输出所要求的最终编码。
在步骤302和步骤303之间还可以增加一个判断,判断分别存储的部分是否还需继续细分,如果需要,则按给定条件将当前的存储部分进一步划分为一个以上子存储部分,并对划分后的每个子存储部分分别生成对应的查找表。可预先设置细分条件,比如查找表的存储量大于某个给定值就再细分,那么,细分时就按照存储量给定值来决定如何细分,具体说就是,当前存储部分的查找表存储量为64K,而给定值为32K,那么,就会将当前存储部分再进一步划分为两个存储部分。如果进行了细分,则步骤304还要分别以每个子存储部分所含的自变量为地址索引,查找相应的查找表,再将所有查找结果进行异或。
对于上述每个步骤提到的存储,都可以设置一个表进行存储,如果某两个表是从某个表中划分出来的,则这两个表可称为原表的子表。实施例以图1a所示1/2码率的卷积码编码为例。
根据3GPP标准规定,3GPP 1/2码率的卷积码编码器有一路输出Input,两路输出Output0和Output1,该编码器采用八个移位寄存器,具体逻辑结构如图1a所示。本实施例中,每路输出的各个函数表示部分就具体由相应的移位寄存器初始状态和输入比特位来表示。
设定图1a中所示编码器所用的移位寄存器从左到右分别记为D8,D7,D6,D5,D4,D3,D2,D1;每个移位寄存器的初始状态分别记为C8,C7,C6,C5,C4,C3,C2,C1;输入的一个字节记为M=M8M7M6M5M4M3M2M1,其中M8为MSB,M1为LSB。并且,当输入M1比特时,编码器的输出Output0记为OUT1,Output1记为OUT2;当输入M2比特时,编码器的输出Output0记为OUT3,Output1记为OUT4;依此类推,分别输入M3、......、M8比特时,编码器的输出Output0和Output1分别记为OUT5、OUT6,OUT7、OUT8,OUT9、OUT10,OUT11、OUT12,OUT13、OUT14,OUT15、OUT16。则计算1/2卷积码编码的过程是第一步根据图1a给出的逻辑结构,可以得到每输入一个比特时,移位寄存器当前更新状态与移位寄存器初始状态和输入比特之间的关系,如表六所示。比如移位寄存器D1在未输入比特时,等于C1;在输入第一个比特后,等于C2;在输入第二个比特后,等于C3;以此类推。

表六同时,还根据图1a给出的逻辑结构,可以得到每输入一个比特时,1/2卷积码编码器的输出与移位寄存器初始状态和输入比特之间的关系,如表七所示。比如在输入第一个比特后,该1/2卷积码编码器的第一输出为M1+C7+C6+C5+C1;第二输出为M1+C8+C7+C6+C4+C2+C1,以此类推。其中,表中的“+”为模2加,以下各表中的“+”均表示模2加。


表七如果直接生成表七所对应的查找表,显然不恰当,因为表中共有M8~M1、C8~C1十六个自变量,相应的,会有216=65536(64K)种组合情况,如此会导致查找表存储量太大,因此,继续执行第二步。
第二步将所获得的、表示每个输出的与输入比特相关部分和与移位寄存器初始状态相关部分分别存储,即将表七分为表八、表九两个子表,其中表八为每个输出与输入比特相关的表示部分,表九为每个输出与移位寄存器初始状态相关的表示部分。


表八

表九第三步分别以表八或表九中的自变量为地址索引,生成对应表八或表九存储部分的查找表。
这里,以表八为例,生成查找表的具体过程是先列出M1~M8的256种取值;再根据表八中每个输出与M1~M8的关系,计算出M1~M8每种不同取值所对应的每个输出值;以M1~M8为地址索引,将所有输出值都存储到寄存器中;最后形成的关于每个输出的256种取值就是所需的查找表。比如M1~M8的取值为01111010时,由于OUT5为M3+M1,这里M3=1,M1=0,则计算出OUT5的取值为1,其它输出的计算方法与此相同。
第四步在实际进行卷积编码时,分别对两个查找表进行寻址,然后将得到的两个值进行模2加,即可得到最后的编码值。也就是说,分别根据两个查找表得到对应的两个OUTn的值,然后将两个OUTn的值进行模2加,得到的结果即为最终OUTn的输出。
由于分别对表八和表九生成查找表,因此所需的存储空间为28×2=512个字,相对于216,存储量减小为原来的1/128。
对于图1b所示1/3码率的卷积码编码的计算方法与上述实施例完全相同,只是1/3码率的卷积码编码器有三路输出,相应的,会出现24个OUT。对于其它的信道编码,只要其能通过确定逻辑结构计算,都可以采用本发明的方法,比如Turbo编码等等,具体的基本实现过程也均与上述实施例相同。
本发明的方法相对于单比特计算而言,既可以节约时间,又可以节约空间。譬如如果环境对空间要求十分严格,可将16比特分成两个8比特,空间可以节约为原来的2-7=1/128;也可以将8比特分成两个4比特,空间可以节约为原来的1/8;同时,还可以省去将两个比特或三个比特缝补为一个字或字节的繁琐过程,当然也节约了操作时间。
本发明的方法也适用于单个比特,即不成一个字节的比特,只需将寻址得到的码的前几位去掉即可。此外,本发明方法的输出比特流即为各个支路的输出比特流的合路输出,不需要单独的合路操作。
对于本发明方法的计算量,可具体计算一下,比如输入码流为每8个比特一组,则1/2码率、约束长度为9的卷积码编码器的计算量情况是,两次查表操作和一次异或操作;1/3码率时,仅仅需要将表格的存储方式从按照字存储改为按照双字存储就行了,并不需要额外的开销,只是增大存储量而已。另外,采用本发明的方法,对于图1所示的卷积码编码器,其计算速度能够达到低于lcycle/bit的速度。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种移动通信中信道编码的快速计算方法,其特征在于,该方法包括以下步骤a.根据当前所用信道码编码器的逻辑结构,获取该信道码编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;b.将所获得的每路输出的每个函数表示部分分别存储,并对每个存储部分分别生成对应的查找表;c.在计算编码时,先将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加得到第i路输出的最终编码。
2.根据权利要求1所述的方法,其特征在于,步骤a还包括同时获取当前所用信道码编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系。
3.根据权利要求1所述的方法,其特征在于,步骤b和步骤c之间进一步包括判断每个存储部分是否需要继续细分,如果需要,则按给定条件将当前的存储部分进一步划分为一个以上子存储部分,并对划分后的每个子存储部分分别生成对应的查找表;否则,直接执行步骤c。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括预先设置需要进行细分的条件,则所述判断是否需要细分为判断是否符合细分条件,如果符合,则需要细分;否则不需要细分。
5.根据权利要求4所述的方法,其特征在于,所述进行细分的条件为步骤b中所述分别存储部分的存储量大于给定存储量。
6.根据权利要求3所述的方法,其特征在于,如果将当前存储部分进一步划分为一个以上子存储部分,则步骤c为将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自子存储部分对应的查找表获得各自的编码,再将所有获得的对应每个子存储部分的编码进行模2加得到第i路输出的编码。
7.根据权利要求1所述的方法,其特征在于,将每个存储部分的内容分别存储在表中。
8.根据权利要求1所述的方法,其特征在于,所述信道码编码器为1/2码率的卷积码编码器、或1/3码率的卷积码编码器、或Turbo码编码器。
全文摘要
本发明公开了一种移动通信中信道编码的快速计算方法,该方法包括以下步骤a.根据当前所用信道码编码器的逻辑结构,获取该信道码编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;b.将所获得的每路输出的每个函数表示部分分别存储,并对每个存储部分分别生成对应的查找表;c.在计算编码时,先将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加得到第i路输出的最终编码。该方法能大大提高信道编码的计算速度,进而提高整体的业务处理能力。
文档编号H03M13/23GK1633031SQ200310122448
公开日2005年6月29日 申请日期2003年12月22日 优先权日2003年12月22日
发明者赵训威, 王刚强 申请人:普天信息技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1