+

CN100388631C - A Fast Calculation Method of Channel Coding in Mobile Communication - Google Patents

A Fast Calculation Method of Channel Coding in Mobile Communication Download PDF

Info

Publication number
CN100388631C
CN100388631C CNB2003101224482A CN200310122448A CN100388631C CN 100388631 C CN100388631 C CN 100388631C CN B2003101224482 A CNB2003101224482 A CN B2003101224482A CN 200310122448 A CN200310122448 A CN 200310122448A CN 100388631 C CN100388631 C CN 100388631C
Authority
CN
China
Prior art keywords
sub
encoder
output
storage area
road
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 - Lifetime
Application number
CNB2003101224482A
Other languages
Chinese (zh)
Other versions
CN1633031A (en
Inventor
赵训威
王刚强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Potevio Co ltd
Petevio Institute Of Technology Co ltd
Original Assignee
PUTIAN INST OF INFORMATION TECHNOLOGY
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PUTIAN INST OF INFORMATION TECHNOLOGY filed Critical PUTIAN INST OF INFORMATION TECHNOLOGY
Priority to CNB2003101224482A priority Critical patent/CN100388631C/en
Publication of CN1633031A publication Critical patent/CN1633031A/en
Application granted granted Critical
Publication of CN100388631C publication Critical patent/CN100388631C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The present invention discloses a rapid calculation method for channel codes in mobile communication, which comprises the following procedures that the relation between the initial state of each path output of a channel code encoder and each shift register in the encoder and each path input bit is obtained according to the logic structure of the channel code encoder used at present; each function representation part of each obtained path output is respectively stored, and a corresponding lookup table is respectively generated for each storage part; when a code is calculated, each code is firstly obtained by all functions of an ith path of output of the channel code encoder, which represent the present calculation, according to each corresponding lookup table, and then modular-two addition is carried out for all the obtained codes so as to obtain the final code of the ith path of output. The calculating speed of channel codes can be greatly increased by the method so that integral business processing capacity is enhanced.

Description

一种移动通信中信道编码的快速计算方法 A Fast Calculation Method of Channel Coding in Mobile Communication

技术领域 technical field

本发明涉及信道编码技术,特别是指一种移动通信中信道编码的快速计算方法。The invention relates to channel coding technology, in particular to a fast calculation method for channel coding in mobile communication.

背景技术 Background technique

卷积码是1955年Elias提出的一种信道编码技术,目前已被广泛应用于通信系统中,刚刚发展起来的3GPP也将其作为主要采用的信道编码。具体来说,卷积编码是将k个信息比特编码成n个比特,本组的n-k个校验元不仅与本组的k个信息码元有关,而且与前面N-1个时刻输入编码器的信息有关,其中N=n+1,可见,编码过程中相互关联的码元为Nn个。由于卷积码的纠错能力是随N的增加而增大的,而差错率是随N的增加而指数下降的,因此,N被称为约束长度。Convolutional code is a channel coding technology proposed by Elias in 1955. It has been widely used in communication systems. The newly developed 3GPP also uses it as the main channel coding technology. Specifically, convolutional coding is to encode k information bits into n bits, and the n-k parity elements of this group are not only related to the k information symbols of this group, but also related to the previous N-1 time input encoder , where N=n+1, it can be seen that there are Nn interrelated symbols in the encoding process. Since the error correction capability of the convolutional code increases with the increase of N, and the error rate decreases exponentially with the increase of N, N is called the constraint length.

同样,在卷积码译码过程中,不仅从当前时刻收到的码组中提取译码信息,而且还要利用以前或以后各个时刻收到的码组中提取有关信息。正是由于卷积码在编码过程中充分利用了各组之间的相关性,并且,相对于分组编码而言,k和n也相对较小,实现最佳和准最佳译码也比较容易。Similarly, in the decoding process of convolutional codes, not only the decoding information is extracted from the code groups received at the current moment, but also relevant information is extracted from the code groups received at previous or subsequent times. It is precisely because convolutional codes make full use of the correlation between groups in the coding process, and, compared with block coding, k and n are relatively small, and it is relatively easy to achieve optimal and quasi-optimal decoding .

卷积码编码器的整个编码过程可以看成是输入信息序列与移位寄存器和异或连接方式所决定的另一个序列的卷积,一般将卷积码记作(n,k,N),其编码效率为Rc=k/n。根据编码效率的不同,卷积码又包括:1/2卷积码、1/3卷积码等等,其中的1/2、1/3即为编码效率,这里,编码效率也可简称为码率。The entire encoding process of the convolutional code encoder can be regarded as the convolution of the input information sequence with another sequence determined by the shift register and the XOR connection mode. Generally, the convolutional code is recorded as (n, k, N), Its encoding efficiency is Rc=k/n. According to the difference in coding efficiency, convolutional codes include: 1/2 convolutional code, 1/3 convolutional code, etc., among which 1/2 and 1/3 are coding efficiency. Here, coding efficiency can also be referred to as code rate.

通常,卷积码编码器的生成多项式如公式(1)所示:Generally, the generator polynomial of a convolutional code encoder is shown in formula (1):

G(D)=A0+A1D+...+An-1Dn-1+AnDn    (1)G(D)=A 0 +A 1 D+...+A n-1 D n-1 +A n D n (1)

以1/2码率为例,1/2卷积码编码器的生成多项式如公式(2)、公式(3)所示:Taking the 1/2 code rate as an example, the generator polynomial of the 1/2 convolutional code encoder is shown in formula (2) and formula (3):

G0(D)=1+D2+D3+D4+D8         (2)G 0 (D)=1+D 2 +D 3 +D 4 +D 8 (2)

G1(D)=1+D+D2+D3+D5+D7+D8    (3)G 1 (D)=1+D+D 2 +D 3 +D 5 +D 7 +D 8 (3)

在3GPP中,卷积码编码器的结构如图1所示,其中,图1a给出的是1/2卷积码编码器,图1b给出的是1/3卷积码编码器。参见图1所示,3GPP的卷积码编码器包括八个移位寄存器,一个输入序列经过八个移位寄存器的不同处理后,输出两个或三个序列,具体的输出序列个数与所采用的码率相关。从图1可以看出,每个输出比特都是当前输入比特与此前输入的某些比特进行异或得到的结果。In 3GPP, the structure of a convolutional code encoder is shown in Figure 1, wherein Figure 1a shows a 1/2 convolutional code encoder, and Figure 1b shows a 1/3 convolutional code encoder. As shown in Figure 1, the 3GPP convolutional code encoder includes eight shift registers. After an input sequence is processed differently by eight shift registers, it outputs two or three sequences. The specific number of output sequences is the same as the Depending on the code rate used. It can be seen from FIG. 1 that each output bit is the result of XOR of the current input bit and some previously input bits.

实际上,卷积码编码的常规方法就是按生成多项式决定的逻辑结构来进行逐比特操作。由于生成多项式的不同,运算量大小也不一样。图1中处理每个比特所使用的异或指令为5或7条,这样运算量相当大,不适合高速数据通信。In fact, the conventional method of convolutional code encoding is to perform bit-by-bit operations according to the logic structure determined by the generator polynomial. Due to the difference of generating polynomials, the amount of operation is also different. In Fig. 1, there are 5 or 7 XOR instructions used to process each bit, so the amount of calculation is quite large, and it is not suitable for high-speed data communication.

目前,卷积码编码两种典型的计算方法是:基于生成多项式状态项计算和基于冲激响应计算。其中,基于生成多项式状态项计算的方法主要过程是这样的:首先,将待编码的比特流分成一个或多个处理单元,所述处理单元最好与处理器的处理位宽一致,现有处理器的处理位宽一般是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)时,才能方便快速地获取各个状态项,否则速度将大打折扣。而且,该方法产生的编码数据是按照支路存放的,在支路合并时也需要额外的处理器开销。At present, there are two typical calculation methods for convolutional code encoding: calculation based on generator polynomial state items and calculation based on impulse response. Among them, the main process of the method based on generator polynomial state item calculation is as follows: first, the bit stream to be encoded is divided into one or more processing units, and the processing unit is preferably consistent with the processing bit width of the processor. The processing bit width of the processor is generally 8, 16, 32 and so on. Then, the bit sequence corresponding to each state item is stored for later calculation and use. Here, the state item refers to each index item of D in the generator polynomial. For formula (2) and formula (3), the state item includes: 1, D, D 2 , D 3 , D 4 , D 5 , D 7 , D 8 . Among them, the state item 1 corresponds to the current processing unit; the bit sequence corresponding to the state item D is 1 moment later than the current processing unit; the bit sequence corresponding to the state item D 2 is 2 moments later than the current processing unit, and so on. Finally, according to the generator polynomial, the bit sequence corresponding to each state item is XORed to obtain the coding sequence of the current processing unit. Although the calculation speed of this method can reach lcycle/bit at the fastest, its calculation speed is limited by the processing bit width of the processor, only if the processor bit width is greater than or equal to twice the constraint length, that is, W≥2(N-1) Only then can each status item be obtained conveniently and quickly, otherwise the speed will be greatly reduced. Moreover, the coded data generated by this method is stored according to branches, and additional processor overhead is required when branches are merged.

对于基于冲激响应的卷积码编码计算,如图1所示,由于任意时刻t的输入比特对编码器都会产生一次冲激,这次冲激会影响t时刻及以后的t+1一直到t+8时刻,每个时刻对应一个输出比特,从c0到c8。那么,正好将输入比特流看作一个个冲激,对应输出码流就是该一个个冲激响应的叠加。又由于“0”的冲激响应对应的输出比特都是0,可以不考虑,而只考虑“1”的冲激响应。因此,基于冲激响应计算的方法包括以下步骤:For the calculation of convolutional code encoding based on impulse response, as shown in Figure 1, since the input bit at any time t will generate an impulse to the encoder, this impulse will affect time t and later t+1 until At time t+8, each time corresponds to an output bit, from c0 to c8. Then, just consider the input bit stream as individual impulses, and the corresponding output bit stream is the superposition of the individual impulse responses. And because the output bits corresponding to the impulse response of "0" are all 0, it can be ignored, and only the impulse response of "1" is considered. Therefore, the method based on the calculation of the impulse response consists of the following steps:

1)根据编码器状态的数据长度,选用合适的寄存器,并进行初始化。比如:图1b所示的编码器约束长度为9,数据长度为(9-1)/(1/3)=24,所以选取三个32比特的寄存器分别存放:冲激响应累加结果S、“1”冲激响应A、编码器输出C。1) According to the data length of the encoder state, select an appropriate register and initialize it. For example: the encoder constraint length shown in Figure 1b is 9, and the data length is (9-1)/(1/3)=24, so three 32-bit registers are selected to store respectively: the impulse response accumulation result S, " 1” impulse response A, encoder output C.

2)计算“1”的冲激响应,并存储在对应A的寄存器中。2) Calculate the impulse response of "1" and store it in the register corresponding to A.

3)按如下步骤进行迭代:3) Iterate as follows:

a.取一个输入比特,判断输入比特是0还是1,如果是1,则执行步骤b,否则执行步骤c;a. Take an input bit, judge whether the input bit is 0 or 1, if it is 1, then execute step b, otherwise execute step c;

b.将寄存器A的比特流累加入寄存器S;b. Accumulate the bit stream of register A into register S;

c.将寄存器S中的比特流左移三位输入寄存器C,该三位就是输入比特的编码值,寄存器S左移三位后的结果仍保留在寄存器S中;c. Shift the bit stream in the register S to the left by three bits and input it to the register C. The three bits are the encoded value of the input bit, and the result after the register S is shifted to the left by three bits is still retained in the register S;

d.最后输出寄存器C中的编码值,返回步骤a。d. Finally, output the encoded value in register C and return to step a.

所述基于冲激响应的计算方法,虽然计算速度也是lcycle/bit级的,适用于高速数据通信,但该方法始终是一个串行的方式,因为针对每个输入比特都要有一个判断过程,不能并行处理一块数据,因此在计算速度上的提高还是有限制的。The calculation method based on the impulse response, although the calculation speed is lcycle/bit level, is suitable for high-speed data communication, but this method is always a serial method, because there is a judgment process for each input bit, A block of data cannot be processed in parallel, so the improvement in computing speed is still limited.

发明内容 Contents of the invention

有鉴于此,本发明的主要目的在于提供一种移动通信中信道编码的快速计算方法,能大大提高信道编码的计算速度,进而提高整体的业务处理能力。In view of this, the main purpose of the present invention is to provide a fast calculation method for channel coding in mobile communication, which can greatly increase the calculation speed of channel coding, and further improve the overall service processing capability.

为达到上述目的,本发明的技术方案是这样实现的:In order to achieve the above object, technical solution of the present invention is achieved in that way:

一种移动通信中信道编码的快速计算方法,该方法包括以下步骤:A fast calculation method for channel coding in mobile communication, the method comprises the following steps:

a.根据当前所用信道码编码器的逻辑结构,获取该信道码编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;a. According to the logical structure of the currently used channel code encoder, obtain the relationship between each output of the channel code encoder and the initial state of each shift register in the encoder and the relationship between each input bit;

b.将所获得的每路输出的每个函数表示部分分别存储,并以每个存储部分包含的自变量的不同取值为地址索引,分别生成每个存储部分对应的查找表,所述查找表中包括所述自变量的不同取值与每路输出间的对应关系;b. Store each function representation part of each output obtained separately, and use the different values of the independent variables contained in each storage part as address indexes to generate a lookup table corresponding to each storage part, the lookup The table includes the corresponding relationship between different values of the independent variable and each output;

c.在计算编码时,先将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加得到第i路输出的最终编码。c. When calculating the code, first obtain the respective codes according to the respective look-up tables for all the functions that represent the current calculation and the i-th channel output of the channel code encoder, and then add all the obtained codes modulo 2 to obtain the first The final encoding of the i output.

其中,步骤a还包括:同时获取当前所用信道码编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系。Wherein, step a further includes: simultaneously obtaining the relationship between the update state of each shift register in the currently used channel code encoder, the initial state of each shift register in the encoder, and each input bit.

上述方案中,步骤b和步骤c之间进一步包括:判断每个存储部分是否需要继续细分,如果需要,则按给定条件将当前的存储部分进一步划分为一个以上子存储部分,并对划分后的每个子存储部分分别生成对应的查找表;否则,直接执行步骤c。相应的,该方法进一步包括:预先设置需要进行细分的条件,则所述判断是否需要细分为判断是否符合细分条件,如果符合,则需要细分;否则不需要细分。其中,所述进行细分的条件为:步骤b中所述分别存储部分的存储量大于给定存储量。In the above scheme, between step b and step c further includes: judging whether each storage part needs to be further subdivided, if necessary, further dividing the current storage part into more than one sub-storage part according to given conditions, and dividing After each sub-storage part generates a corresponding lookup table; otherwise, directly execute step c. Correspondingly, the method further includes: pre-setting the conditions that need to be subdivided, and then judging whether subdivision is required is judging whether the subdivision condition is met, and if so, subdivision is required; otherwise, no subdivision is required. Wherein, the condition for subdividing is: the storage capacity of the respective storage parts in step b is greater than a given storage capacity.

上述方案中,如果将当前存储部分进一步划分为一个以上子存储部分,则步骤c为:将表示当前计算的、信道码编码器第i路输出的所有函数分别根据各自子存储部分对应的查找表获得各自的编码,再将所有获得的对应每个子存储部分的编码进行模2加得到第i路输出的编码。In the above scheme, if the current storage part is further divided into more than one sub-storage part, then step c is: represent all the functions currently calculated and output by the i-th channel of the channel code encoder according to the look-up tables corresponding to the respective sub-storage parts The respective codes are obtained, and then all obtained codes corresponding to each sub-storage part are added modulo 2 to obtain the code output by the i-th channel.

上述方案中,可将每个存储部分的内容分别存储在表中。另外,所述信道码编码器为:1/2码率的卷积码编码器、或1/3码率的卷积码编码器、或Turbo码编码器。In the above scheme, the content of each storage part can be stored in a table respectively. In addition, the channel code encoder is: a code rate 1/2 convolutional code encoder, or a code rate 1/3 convolutional code encoder, or a Turbo code encoder.

本发明所提供的移动通信中信道编码的快速计算方法,由于根据当前信道码编码器对应的逻辑结构,预先获取在不同输入比特的处理状态下,当前信道码编码器的每路输出与编码器中每个移位寄存器的初始状态和每路输入比特位之间的关系,并根据该关系生成对应的查找表;在进行对应的信道编码时,直接利用预先生成的查找表获取信道码编码器当前状态下的每路输出,如此能大大提高信道编码的计算速度。由于本发明是基于并行处理实现的,所以具有很高的并行度,处理灵活,不受处理器处理位宽的限制;而且,一次到位,不需要任何合路操作,因此也不会带来额外的开销。In the fast calculation method of channel coding in mobile communication provided by the present invention, according to the logical structure corresponding to the current channel code encoder, the processing status of each input bit of the current channel code encoder is pre-acquired. The relationship between the initial state of each shift register and each input bit, and generate a corresponding lookup table according to the relationship; when performing corresponding channel coding, directly use the pre-generated lookup table to obtain the channel code encoder Each output in the current state, which can greatly improve the calculation speed of channel coding. Since the present invention is realized based on parallel processing, it has a high degree of parallelism, flexible processing, and is not limited by the processing bit width of the processor; moreover, it does not require any combination operation at one time, so it will not bring additional s expenses.

附图说明 Description of drawings

图1a为3GPP中1/2卷积码编码器的逻辑结构示意图;Figure 1a is a schematic diagram of the logical structure of a 1/2 convolutional code encoder in 3GPP;

图1b为3GPP中1/3卷积码编码器的逻辑结构示意图;Figure 1b is a schematic diagram of the logical structure of a 1/3 convolutional code encoder in 3GPP;

图2为通用信道码编码器的结构组成图;Fig. 2 is the structural composition figure of universal channel code encoder;

图3为本发明方法的实现流程图。Fig. 3 is a flow chart of the implementation of the method of the present invention.

具体实施方式 Detailed ways

本发明的基本思想就是:根据当前信道码编码器对应的逻辑结构,预先获取在不同输入比特的处理状态下,当前信道码编码器的每路输出与编码器中每个移位寄存器的初始状态和每路输入比特位之间的关系,以及编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系,并根据所述关系分别生成对应的查找表;在进行对应的信道编码时,直接利用预先生成的查找表获取信道码编码器当前状态下的每路输出或移位寄存器的更新状态。The basic idea of the present invention is: according to the logical structure corresponding to the current channel code encoder, the initial state of each output of the current channel code encoder and each shift register in the encoder is obtained in advance under different input bit processing states and the relationship between each input bit, and the relationship between the update state of each shift register in the encoder and the initial state of each shift register in the encoder and each input bit, and according to the relationship Corresponding look-up tables are generated respectively; when performing corresponding channel coding, the pre-generated look-up tables are directly used to obtain each output of the channel code encoder or the update status of the shift register in the current state.

如图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;依此类推,从INPUT输入的一个字节为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路输出的表达式,表二为通用卷积码编码器更新状态的表达式。As shown in Figure 2, Figure 2 is a general channel code encoder logic structure, the encoder has a total of N-way input and L-way output, assuming that the state of the encoder consists of R 1 , R 2 ,..., R k represents, and the initial state of R k ~ R 1 is C k ~ C 1 . Of course, the encoder may also have no state. For example, the encoder is only composed of a modulo 2 plus circuit, that is, the output of the encoder is only related to the input at that time. In this case, only R k ~ R 1 ( C k ~ C 1 ) are removed. Suppose a byte input by INPUT 1 is M 1 =M 1,8 , M 1,7 , M 1,6 , M 1,5 , M 1,4 , M 1,3 , M 1,2 , M 1, 1 , where M 1, 8 is the most significant bit (MSB), M 1, 1 is the least significant bit (LSB); a byte input from INPUT 2 is M 2 = M 2 , 8 , M 2, 7 , M 2, 6 , M 2, 5 , M 2, 4, M 2, 3 , M 2 , 2, M 2, 1 , where M 2, 8 is MSB, M 2, 1 is LSB; and so on, from INPUT One byte input is M n = M n, 8 , M n, 7 , M n, 6 , M n, 5 , M n, 4 , M n, 3 , M n, 2 , M n, 1 , where M n, 8 is MSB, M n, 1 is LSB. Assume that after the encoder finishes encoding all input bits M n, i (1≤n≤N, 1≤i≤8), the output bits are recorded as OUT 1 , OUT 2 , ..., OUT L in sequence . Then, the expressions of the L-channel outputs of the transformed encoder and the encoder update states R 1 ~ R k are shown in Table 1 and Table 2, where Table 1 is the expression of the L-channel output of the general convolutional code encoder, and Table 1 The second is the expression of the update state of the general convolutional code encoder.

OUT<sub>1</sub>=φ<sub>1</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+f<sub>1,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+f<sub>1,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>1</sub>=φ<sub>1</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)+f<sub>1, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M<sub>1 ,8</sub>)+...+f<sub>1,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) OUT<sub>2</sub>=φ<sub>2</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+f<sub>2,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+f<sub>2,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>2</sub>=φ<sub>2</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)+f<sub>2, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M<sub>1 ,8</sub>)+...+f<sub>2,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) OUT<sub>3</sub>=φ<sub>3</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+f<sub>3,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+f<sub>3,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>3</sub>=φ<sub>3</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)+f<sub>3,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1 ,8</sub>)+...+f<sub>3,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) ...... … OUT<sub>L</sub>=φ<sub>L</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+f<sub>L,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+f<sub>L,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>L</sub>=φ<sub>L</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)+f<sub>L,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1 ,8</sub>)+...+f<sub>L,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>)

表一Table I

表一中,φ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加。In Table 1, φ i (C 1 , C 2 , ..., C k ) represents a function of C 1 , ..., C k , C 1 to C k are the initial states of the shift register, φ The subscript i of i means the function output by the i-th road; f 1,1 (M 1,1 , M 1,2 ,...M 1,8 ) means M 1,1 , M 1,2 ,. ..M 1, 8 functions, where M 1, 2 represents the input, specifically, the second bit in a byte of the first input, and so on. The first 1 in the f 1,1 subscript indicates the first output, and the second 1 indicates the first input; "+" indicates modulo 2 addition.

R<sub>1</sub>=g<sub>1</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+h<sub>1,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+h<sub>1,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)R<sub>1</sub>=g<sub>1</sub>(C<sub>1</sub>, C<sub>2</sub>, ..., C<sub>k </sub>)+h<sub>1, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M<sub>1 ,8</sub>)+...+h<sub>1,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) R<sub>2</sub>=g<sub>2</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+h<sub>2,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+h<sub>2,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)R<sub>2</sub>=g<sub>2</sub>(C<sub>1</sub>, C<sub>2</sub>, ..., C<sub>k </sub>)+h<sub>2,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1 ,8</sub>)+...+h<sub>2,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) R<sub>3</sub>=g<sub>3</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+h<sub>3,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+h<sub>3,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)R<sub>3</sub>=g<sub>3</sub>(C<sub>1</sub>, C<sub>2</sub>, ..., C<sub>k </sub>)+h<sub>3,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1 ,8</sub>)+...+h<sub>3,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>... , M<sub>N, 8</sub>) ...... … R<sub>k</sub>=g<sub>k</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)+h<sub>k,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)+...+h<sub>k,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)R<sub>k</sub>=g<sub>k</sub>(C<sub>1</sub>, C<sub>2</sub>, ..., C<sub>k </sub>)+h<sub>k,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1 , 8</sub>)+...+h<sub>k, N</sub>(M<sub>N, 1</sub>, M<sub>N, 2</sub>... , M<sub>N, 8</sub>)

表二Table II

同样的,表二中,gi(C1,C2,....,Ck)表示是C1,...,Ck的一个函数,C1到Ck是移位寄存器的初始状态,gi的下标i表示是第i路输出的函数;h1,1(M1,1M1,2,...M1,8)表示是M1,1,M1,2,...M1,8的函数,其中M1,2表示输入,具体讲就是,第一路输入的一个字节中的第二个比特,以此类推。h1,1下标中的第一个1表示第一路输出,第二个1表示第一路输入;“+”表示模2加。Similarly, in Table 2, g i (C 1 , C 2 , ..., C k ) represents a function of C 1 , ..., C k , and C 1 to C k are the initial State, the subscript i of g i means it is the function of the i-th output; h 1, 1 (M 1, 1 M 1, 2 ,...M 1, 8 ) means it is M 1, 1 , M 1, 2 ,... M 1, 8 functions, where M 1, 2 represents the input, specifically, the second bit in a byte of the first input, and so on. h 1, the first 1 in the subscript of 1 indicates the first output, and the second 1 indicates the first input; "+" indicates modulo 2 addition.

实际上,本发明计算信道编码的具体处理过程,如图3所示包括以下步骤:In fact, the specific processing process of the present invention to calculate channel coding, as shown in Figure 3, includes the following steps:

步骤301:根据当前所用信道码编码器的逻辑结构,获取该编码器每路输出与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系,同时获取该编码器中每个移位寄存器的更新状态与编码器中每个移位寄存器的初始状态和每路输入比特之间的关系;Step 301: According to the logical structure of the currently used channel code encoder, obtain the relationship between each output of the encoder and the initial state of each shift register in the encoder and each input bit, and at the same time obtain the relationship between each output of the encoder. The relationship between the update state of each shift register and the initial state of each shift register in the encoder and each input bit;

步骤302:将所获得的每路输出的每个函数表示部分分别存储,比如:将表一划分为N+1个子表,如表三、表四、表五所示;Step 302: Store each function representation part of each output obtained separately, for example: divide Table 1 into N+1 sub-tables, as shown in Table 3, Table 4, and Table 5;

  OUT<sub>1</sub>=φ<sub>1</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)OUT<sub>1</sub>=φ<sub>1</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)   OUT<sub>2</sub>=φ<sub>2</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)OUT<sub>2</sub>=φ<sub>2</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)   OUT<sub>3</sub>=φ<sub>3</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)OUT<sub>3</sub>=φ<sub>3</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)   .........   OUT<sub>L</sub>=φ<sub>L</sub>(C<sub>1</sub>,C<sub>2</sub>,....,C<sub>k</sub>)OUT<sub>L</sub>=φ<sub>L</sub>(C<sub>1</sub>, C<sub>2</sub>,...., C<sub>k </sub>)

表三Table three

  OUT<sub>1</sub>=f<sub>1,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)OUT<sub>1</sub>=f<sub>1, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M <sub>1, 8</sub>)   OUT<sub>2</sub>=f<sub>2,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)OUT<sub>2</sub>=f<sub>2, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M <sub>1, 8</sub>)   OUT<sub>3</sub>=f<sub>3,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)OUT<sub>3</sub>=f<sub>3, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M <sub>1, 8</sub>)   .........   OUT<sub>L</sub>=f<sub>L,1</sub>(M<sub>1,1</sub>,M<sub>1,2</sub>,...M<sub>1,8</sub>)OUT<sub>L</sub>=f<sub>L, 1</sub>(M<sub>1, 1</sub>, M<sub>1, 2</sub>,...M <sub>1, 8</sub>)

表四Table four

  OUT<sub>1</sub>=f<sub>1,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>1</sub>=f<sub>1, N</sub>(M<sub>N, 1</sub>, M<sub>N, 2</sub>..., M <sub>N, 8</sub>)   OUT<sub>2</sub>=f<sub>2,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>2</sub>=f<sub>2, N</sub>(M<sub>N, 1</sub>, M<sub>N, 2</sub>..., M <sub>N, 8</sub>)   OUT<sub>3</sub>=f<sub>3,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>3</sub>=f<sub>3, N</sub>(M<sub>N, 1</sub>, M<sub>N, 2</sub>..., M <sub>N, 8</sub>)   .........   OUT<sub>L</sub>=f<sub>L,N</sub>(M<sub>N,1</sub>,M<sub>N,2</sub>...,M<sub>N,8</sub>)OUT<sub>L</sub>=f<sub>L, N</sub>(M<sub>N, 1</sub>, M<sub>N, 2</sub>..., M <sub>N, 8</sub>)

表五Table five

步骤303:分别生成对应每个存储部分的查找表,也就是,分别生成N+1个子表的查找表;Step 303: generate a lookup table corresponding to each storage part, that is, generate a lookup table of N+1 sub-tables respectively;

步骤304:在计算编码时,先将表示当前计算的第i路输出的所有函数分别根据各自对应的查找表获得各自的编码,再将所获得的所有编码进行模2加即可得到该路输出所要求的最终编码。Step 304: When calculating the code, firstly obtain the codes of all the functions representing the output of the i-th path currently calculated according to their corresponding look-up tables, and then add all the obtained codes modulo 2 to obtain the output of the road The final encoding requested.

在步骤302和步骤303之间还可以增加一个判断,判断分别存储的部分是否还需继续细分,如果需要,则按给定条件将当前的存储部分进一步划分为一个以上子存储部分,并对划分后的每个子存储部分分别生成对应的查找表。可预先设置细分条件,比如:查找表的存储量大于某个给定值就再细分,那么,细分时就按照存储量给定值来决定如何细分,具体说就是,当前存储部分的查找表存储量为64K,而给定值为32K,那么,就会将当前存储部分再进一步划分为两个存储部分。如果进行了细分,则步骤304还要分别以每个子存储部分所含的自变量为地址索引,查找相应的查找表,再将所有查找结果进行异或。A judgment can also be added between step 302 and step 303 to judge whether the parts stored separately need to be further subdivided, and if necessary, the current storage part is further divided into more than one sub-storage parts according to given conditions, and Each divided sub-storage part generates a corresponding look-up table respectively. Subdivision conditions can be set in advance, for example: if the storage capacity of the lookup table is greater than a certain value, it will be subdivided. Then, when subdividing, it will be determined how to subdivide according to the given value of the storage capacity. Specifically, the current storage part The storage capacity of the lookup table is 64K, and the given value is 32K, then the current storage part will be further divided into two storage parts. If subdivision is performed, then in step 304, the independent variable contained in each sub-storage part is used as the address index to search the corresponding look-up table, and then XOR all the search results.

对于上述每个步骤提到的存储,都可以设置一个表进行存储,如果某两个表是从某个表中划分出来的,则这两个表可称为原表的子表。For the storage mentioned in each of the above steps, a table can be set for storage. If two tables are divided from a certain table, these two tables can be called sub-tables of the original table.

实施例:以图1a所示1/2码率的卷积码编码为例。Embodiment: Take the 1/2 code rate convolutional code encoding shown in FIG. 1a as an example.

根据3GPP标准规定,3GPP 1/2码率的卷积码编码器有一路输出Input,两路输出Output0和Output1,该编码器采用八个移位寄存器,具体逻辑结构如图1a所示。本实施例中,每路输出的各个函数表示部分就具体由相应的移位寄存器初始状态和输入比特位来表示。According to the 3GPP standard, the 3GPP 1/2 code rate convolution code encoder has one output Input, two outputs Output0 and Output1, and the encoder uses eight shift registers. The specific logic structure is shown in Figure 1a. In this embodiment, each function representation part of each output is specifically represented by the corresponding initial state of the shift register and input bits.

设定图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卷积码编码的过程是:The shift registers used to set the encoder shown in Figure 1a are recorded from left to right as: D8, D7, D6, D5, D4, D3, D2, D1; the initial state of each shift register is respectively recorded as: C8, C7, C6, C5, C4, C3, C2, C1; an input byte is recorded as M=M8M7M6M5M4M3M2M1, where M8 is MSB and M1 is LSB. Moreover, when M1 bits are input, the output Output0 of the encoder is recorded as OUT1, and Output1 is recorded as OUT2; when M2 bits are input, the output Output0 of the encoder is recorded as OUT3, and Output1 is recorded as OUT4; and so on, input M3, ......, M8 bits, the output Output0 and Output1 of the encoder are recorded as: OUT5, OUT6, OUT7, OUT8, OUT9, OUT10, OUT11, OUT12, OUT13, OUT14, OUT15, OUT16. Then the process of calculating 1/2 convolutional code encoding is:

第一步:根据图1a给出的逻辑结构,可以得到每输入一个比特时,移位寄存器当前更新状态与移位寄存器初始状态和输入比特之间的关系,如表六所示。比如:移位寄存器D1在未输入比特时,等于C1;在输入第一个比特后,等于C2;在输入第二个比特后,等于C3;以此类推。 Step 1 : According to the logical structure shown in Figure 1a, the relationship between the current update state of the shift register, the initial state of the shift register, and the input bit can be obtained when a bit is input, as shown in Table 6. For example: the shift register D1 is equal to C1 when no bit is input; it is equal to C2 after the first bit is input; it is equal to C3 after the second bit is input; and so on.

 CLKCLK  INPUTINPUT   D8D8   D7D7   D6D6   D5D5   D4D4   D3D3   D2D2   D1D1   00   C8C8   C7C7   C6C6   C5C5   C4C4   C3C3   C2C2   C1C1   1 1   M1M1   M1M1   C8C8   C7C7   C6C6   C5C5   C4C4   C3C3   C2C2   2 2   M2M2   M2M2   M1M1   C8C8   C7C7   C6C6   C5C5   C4C4   C3C3   33   M3M3   M3M3   M2M2   M1M1   C8C8   C7C7   C6C6   C5C5   C4C4   44   M4M4   M4M4   M3M3   M2M2   M1M1   C8C8   C7C7   C6C6   C5C5   55   M5M5   M5M5   M4M4   M3M3   M2M2   M1M1   C8C8   C7C7   C6C6   66   M6M6   M6M6   M5M5   M4M4   M3M3   M2M2   M1M1   C8C8   C7C7   77   M7M7   M7M7   M6M6   M5M5   M4M4   M3M3   M2M2   M1M1   C8C8   8 8   M8M8   M8M8   M7M7   M6M6   M5M5   M4M4   M3M3   M2M2   M1M1

表六Table six

同时,还根据图1a给出的逻辑结构,可以得到每输入一个比特时,1/2卷积码编码器的输出与移位寄存器初始状态和输入比特之间的关系,如表七所示。比如:在输入第一个比特后,该1/2卷积码编码器的第一输出为M1+C7+C6+C5+C1;第二输出为M1+C8+C7+C6+C4+C2+C1,以此类推。其中,表中的“+”为模2加,以下各表中的“+”均表示模2加。At the same time, according to the logical structure shown in Figure 1a, the relationship between the output of the 1/2 convolutional code encoder, the initial state of the shift register, and the input bit can be obtained when a bit is input, as shown in Table 7. For example: after inputting the first bit, the first output of the 1/2 convolutional code encoder is M1+C7+C6+C5+C1; the second output is M1+C8+C7+C6+C4+C2+ C1, and so on. Wherein, "+" in the table means modulo 2 addition, and "+" in the following tables all means modulo 2 addition.

  OUT1=M1+C7+C6+C5+C1OUT1=M1+C7+C6+C5+C1   OUT2=M1+C8+C7+C6+C4+C2+C1OUT2=M1+C8+C7+C6+C4+C2+C1   OUT3=M2+C8+C7+C6+C2OUT3=M2+C8+C7+C6+C2   OUT4=M2+M1+C8+C7+C5+C3+C2OUT4=M2+M1+C8+C7+C5+C3+C2   OUT5=M3+M1+C8+C7+C3OUT5=M3+M1+C8+C7+C3

  OUT6=M3+M2+M1+C8+C6+C4+C3OUT6=M3+M2+M1+C8+C6+C4+C3   OUT7=M4+M2+M1+C8+C4OUT7=M4+M2+M1+C8+C4   OUT8=M4+M3+M2+M1+C7+C5+C4OUT8=M4+M3+M2+M1+C7+C5+C4   OUT9=M5+M3+M2+M1+C5OUT9=M5+M3+M2+M1+C5   OUT10=M5+M4+M3+M2+C8+C6+C5OUT10=M5+M4+M3+M2+C8+C6+C5   OUT11=M6+M4+M3+M2+C6OUT11=M6+M4+M3+M2+C6   OUT12=M6+M5+M4+M3+M1+C7+C6OUT12=M6+M5+M4+M3+M1+C7+C6   OUT13=M7+M5+M4+M3+C7OUT13=M7+M5+M4+M3+C7   OUT14=M7+M6+M5+M4+M2+C8+C7OUT14=M7+M6+M5+M4+M2+C8+C7   OUT15=M8+M6+M5+M4+C8OUT15=M8+M6+M5+M4+C8   OUT16=M8+M7+M6+M5+M3+M1+C8OUT16=M8+M7+M6+M5+M3+M1+C8

表七Table Seven

如果直接生成表七所对应的查找表,显然不恰当,因为表中共有M8~M1、C8~C1十六个自变量,相应的,会有216=65536(64K)种组合情况,如此会导致查找表存储量太大,因此,继续执行第二步。It is obviously inappropriate to directly generate the lookup table corresponding to Table 7, because there are sixteen independent variables M8~M1, C8~C1 in the table, correspondingly, there will be 2 16 =65536 (64K) combinations, so that The storage capacity of the lookup table is too large, therefore, proceed to the second step.

第二步:将所获得的、表示每个输出的与输入比特相关部分和与移位寄存器初始状态相关部分分别存储,即:将表七分为表八、表九两个子表,其中表八为每个输出与输入比特相关的表示部分,表九为每个输出与移位寄存器初始状态相关的表示部分。 The second step : store the part related to the input bit and the initial state of the shift register obtained, representing each output, respectively, that is: divide table 7 into two sub-tables, table 8 and table 9, wherein table 8 For each output and the representation part related to the input bit, Table 9 is the representation part for each output and the initial state of the shift register.

  OUT1=M1OUT1=M1   OUT2=M1OUT2=M1   OUT3=M2OUT3=M2   OUT4=M2+M1OUT4=M2+M1   OUT5=M3+M1OUT5=M3+M1   OUT6=M3+M2+M1OUT6=M3+M2+M1   OUT7=M4+M2+M1OUT7=M4+M2+M1   OUT8=M4+M3+M2+M1OUT8=M4+M3+M2+M1   OUT9=M5+M3+M2+M1OUT9=M5+M3+M2+M1

  OUT10=M5+M4+M3+M2OUT10=M5+M4+M3+M2   OUT11=M6+M4+M3+M2OUT11=M6+M4+M3+M2   OUT12=M6+M5+M4+M3+M1OUT12=M6+M5+M4+M3+M1   OUT13=M7+M5+M4+M3OUT13=M7+M5+M4+M3   OUT14=M7+M6+M5+M4+M2OUT14=M7+M6+M5+M4+M2   OUT15=M8+M6+M5+M4OUT15=M8+M6+M5+M4   OUT16=M8+M7+M6+M5+M3+M1OUT16=M8+M7+M6+M5+M3+M1

表八table eight

  OUT1=C7+C6+C5+C1OUT1=C7+C6+C5+C1   OUT2=C8+C7+C6+C4+C2+C1OUT2=C8+C7+C6+C4+C2+C1   OUT3=C8+C7+C6+C2OUT3=C8+C7+C6+C2   OUT4=C8+C7+C5+C3+C2OUT4=C8+C7+C5+C3+C2   OUT5=C8+C7+C3OUT5=C8+C7+C3   OUT6=C8+C6+C4+C3OUT6=C8+C6+C4+C3   OUT7=C8+C4OUT7=C8+C4   OUT8=C7+C5+C4OUT8=C7+C5+C4   OUT9=C5OUT9=C5   OUT10=C8+C6+C5OUT10=C8+C6+C5   OUT11=C6OUT11=C6   OUT12=C7+C6OUT12=C7+C6   OUT13=C7OUT13=C7   OUT14=C8+C7OUT14=C8+C7   OUT15=C8OUT15=C8   OUT16=C8OUT16=C8

表九Table nine

第三步:分别以表八或表九中的自变量为地址索引,生成对应表八或表九存储部分的查找表。 Step 3 : Using the independent variables in Table 8 or Table 9 as address indexes respectively, generate a lookup table corresponding to the storage part of Table 8 or Table 9.

这里,以表八为例,生成查找表的具体过程是:先列出M1~M8的256种取值;再根据表八中每个输出与M1~M8的关系,计算出M1~M8每种不同取值所对应的每个输出值;以M1~M8为地址索引,将所有输出值都存储到寄存器中;最后形成的关于每个输出的256种取值就是所需的查找表。比如:M1~M8的取值为01111010时,由于OUT5为M3+M1,这里M3=1,M1=0,则计算出OUT5的取值为1,其它输出的计算方法与此相同。Here, taking Table 8 as an example, the specific process of generating the lookup table is: first list 256 values of M1~M8; Each output value corresponding to different values; with M1-M8 as the address index, all output values are stored in the register; the final 256 values for each output are the required lookup table. For example: when the values of M1-M8 are 01111010, since OUT5 is M3+M1, where M3=1 and M1=0, the calculated value of OUT5 is 1, and the calculation methods for other outputs are the same.

第四步:在实际进行卷积编码时,分别对两个查找表进行寻址,然后将得到的两个值进行模2加,即可得到最后的编码值。也就是说,分别根据两个查找表得到对应的两个OUTn的值,然后将两个OUTn的值进行模2加,得到的结果即为最终OUTn的输出。 Step 4 : When actually performing convolutional encoding, address the two lookup tables respectively, and then add the two obtained values modulo 2 to obtain the final encoded value. That is to say, the corresponding two OUTn values are respectively obtained according to the two lookup tables, and then the two OUTn values are added modulo 2, and the obtained result is the final OUTn output.

由于分别对表八和表九生成查找表,因此所需的存储空间为28×2=512个字,相对于216,存储量减小为原来的1/128。Since the lookup tables are generated for Table 8 and Table 9 respectively, the required storage space is 2 8 ×2=512 words, and compared to 2 16 , the storage capacity is reduced to 1/128 of the original.

对于图1b所示1/3码率的卷积码编码的计算方法与上述实施例完全相同,只是1/3码率的卷积码编码器有三路输出,相应的,会出现24个OUT。对于其它的信道编码,只要其能通过确定逻辑结构计算,都可以采用本发明的方法,比如:Turbo编码等等,具体的基本实现过程也均与上述实施例相同。The calculation method for the 1/3 code rate convolutional code encoding shown in Figure 1b is exactly the same as the above-mentioned embodiment, except that the 1/3 code rate convolutional code encoder has three outputs, correspondingly, there will be 24 OUTs. For other channel codes, as long as they can be calculated by determining the logical structure, the method of the present invention can be used, such as Turbo code, etc., and the specific basic implementation process is also the same as the above-mentioned embodiment.

本发明的方法相对于单比特计算而言,既可以节约时间,又可以节约空间。譬如:如果环境对空间要求十分严格,可将16比特分成两个8比特,空间可以节约为原来的2-7=1/128;也可以将8比特分成两个4比特,空间可以节约为原来的1/8;同时,还可以省去将两个比特或三个比特缝补为一个字或字节的繁琐过程,当然也节约了操作时间。Compared with single-bit calculation, the method of the invention can save time and space. For example: if the environment has very strict space requirements, 16 bits can be divided into two 8 bits, and the space can be saved as the original 2 -7 = 1/128; 8 bits can also be divided into two 4 bits, and the space can be saved as the original At the same time, it can also save the cumbersome process of stitching two or three bits into a word or byte, and of course saves operation time.

本发明的方法也适用于单个比特,即不成一个字节的比特,只需将寻址得到的码的前几位去掉即可。此外,本发明方法的输出比特流即为各个支路的输出比特流的合路输出,不需要单独的合路操作。The method of the present invention is also applicable to a single bit, that is, a bit that does not form a byte, and only needs to remove the first few bits of the code obtained by addressing. In addition, the output bit stream of the method of the present invention is the combined output of the output bit streams of each branch, and no separate combining operation is required.

对于本发明方法的计算量,可具体计算一下,比如:输入码流为每8个比特一组,则1/2码率、约束长度为9的卷积码编码器的计算量情况是,两次查表操作和一次异或操作;1/3码率时,仅仅需要将表格的存储方式从按照字存储改为按照双字存储就行了,并不需要额外的开销,只是增大存储量而已。另外,采用本发明的方法,对于图1所示的卷积码编码器,其计算速度能够达到低于lcycle/bit的速度。For the amount of calculation of the inventive method, it can be specifically calculated, such as: the input code stream is a group of every 8 bits, then the calculation amount of the convolutional code encoder with a code rate of 1/2 and a constraint length of 9 is, two One table lookup operation and one XOR operation; when the code rate is 1/3, it is only necessary to change the storage method of the table from word storage to double word storage, no additional overhead is required, just increase the storage capacity . In addition, with the method of the present invention, for the convolutional code encoder shown in FIG. 1 , its calculation speed can reach a speed lower than lcycle/bit.

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the protection scope of the present invention.

Claims (8)

1. the quick calculation method of chnnel coding in the mobile communication is characterized in that this method may further comprise the steps:
A. according to the logical construction of currently used channel code encoder, obtain the initial condition of each shift register in every road output of this channel code encoder and the encoder and the relation between the input bit of every road;
Each function representation part storage respectively of b. the every road that is obtained being exported, and the different values of the independent variable that comprises with each storage area are allocation index, generate the look-up table of each storage area correspondence respectively, comprise the different values of described independent variable and the corresponding relation between the output of every road in the described look-up table;
C. when calculation code, will represent that earlier all functions current calculating, the output of channel code encoder i road respectively according to each self-corresponding look-up table acquisition coding separately, carry out all codings that obtained mould 2 again and add the final coding that obtains the output of i road.
2. method according to claim 1, it is characterized in that step a also comprises: obtain the initial condition of each shift register in the update mode of each shift register in the currently used channel code encoder and the encoder and the relation between the input bit of every road simultaneously.
3. method according to claim 1, it is characterized in that, further comprise between step b and the step c: judge whether each storage area needs to continue segmentation, if desired, then current storage area further is divided into sub-storage area more than, and each the sub-storage area after dividing is generated corresponding look-up table respectively by specified criteria; Otherwise, direct execution in step c.
4. method according to claim 3 is characterized in that, this method further comprises: set in advance the condition that need segment, then described judge whether to be subdivided into judge whether to meet sub-divided condition, if meet, then need the segmentation; Otherwise do not need segmentation.
5. method according to claim 4 is characterized in that, the described condition of segmenting is: the memory space of the storage area of difference described in the step b is greater than given memory space.
6. method according to claim 3, it is characterized in that, if current storage area further is divided into sub-storage area more than, then step c is: will represent that all functions current calculating, channel code encoder i road output obtain separately coding according to the look-up table of sub-storage area correspondence separately respectively, and again the coding of each sub-storage area of correspondence of all acquisitions be carried out mould 2 and add the coding that obtains the output of i road.
7. method according to claim 1 is characterized in that, the content of each storage area is stored in the table respectively.
8. method according to claim 1 is characterized in that, described channel code encoder is: the encoder for convolution codes of the encoder for convolution codes of 1/2 code check or 1/3 code check or Turbo code encoder.
CNB2003101224482A 2003-12-22 2003-12-22 A Fast Calculation Method of Channel Coding in Mobile Communication Expired - Lifetime CN100388631C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101224482A CN100388631C (en) 2003-12-22 2003-12-22 A Fast Calculation Method of Channel Coding in Mobile Communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101224482A CN100388631C (en) 2003-12-22 2003-12-22 A Fast Calculation Method of Channel Coding in Mobile Communication

Publications (2)

Publication Number Publication Date
CN1633031A CN1633031A (en) 2005-06-29
CN100388631C true CN100388631C (en) 2008-05-14

Family

ID=34844510

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101224482A Expired - Lifetime CN100388631C (en) 2003-12-22 2003-12-22 A Fast Calculation Method of Channel Coding in Mobile Communication

Country Status (1)

Country Link
CN (1) CN100388631C (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1283898A (en) * 1999-07-06 2001-02-14 深圳市华为技术有限公司 Method for estimating code error rate of wireless channel in digital mobile communication system
US6233711B1 (en) * 1997-09-02 2001-05-15 Sony Corporation Turbo coding, decoding devices and turbo coding, decoding methods
CN1338824A (en) * 2000-08-17 2002-03-06 华为技术有限公司 Method and decoder for decoding turbo code
CN1433238A (en) * 2001-11-09 2003-07-30 生命扫描有限公司 Data character string authorizing system and method
US6609226B1 (en) * 2000-04-10 2003-08-19 Nortel Networks Limited Networking device and method for making cyclic redundancy check (CRC) immune to scrambler error duplication
JP2003264468A (en) * 2002-03-12 2003-09-19 Sharp Corp Viterbi decoding device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233711B1 (en) * 1997-09-02 2001-05-15 Sony Corporation Turbo coding, decoding devices and turbo coding, decoding methods
CN1283898A (en) * 1999-07-06 2001-02-14 深圳市华为技术有限公司 Method for estimating code error rate of wireless channel in digital mobile communication system
US6609226B1 (en) * 2000-04-10 2003-08-19 Nortel Networks Limited Networking device and method for making cyclic redundancy check (CRC) immune to scrambler error duplication
CN1338824A (en) * 2000-08-17 2002-03-06 华为技术有限公司 Method and decoder for decoding turbo code
CN1433238A (en) * 2001-11-09 2003-07-30 生命扫描有限公司 Data character string authorizing system and method
JP2003264468A (en) * 2002-03-12 2003-09-19 Sharp Corp Viterbi decoding device

Also Published As

Publication number Publication date
CN1633031A (en) 2005-06-29

Similar Documents

Publication Publication Date Title
Ramabadran et al. A tutorial on CRC computations
CN100539443C (en) Interleaving apparatus and method for communication system
CN101777924B (en) A turbo code decoding method and device
EP0729674B1 (en) Cyclical redundancy check method and apparatus
CN112214349B (en) Data cyclic redundancy check device and method
CN102096609B (en) Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
KR930008683B1 (en) Reed-Solomon error correction code encoder
US6041431A (en) Method and apparatus for performing error correction code operations
WO1999025069A1 (en) Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded
US7243289B1 (en) Method and system for efficiently computing cyclic redundancy checks
JPH0453128B2 (en)
US5594742A (en) Bidirectional trellis coding
CN102356554B (en) Turbo code data interweaving process method and interweaving device used for interweaving turbo code data
CN104617959A (en) Universal processor-based LDPC (Low Density Parity Check) encoding and decoding method
CN114598331A (en) Polar code encoding method, encoding and decoding method and device
CN101971504A (en) Methods and apparatus for programmable decoding of a plurality of code types
JP4764973B2 (en) CRC value calculation device
CN116846406A (en) A polar code decoding method and decoder based on special nodes
US3571795A (en) Random and burst error-correcting systems utilizing self-orthogonal convolution codes
CN110097613A (en) A kind of B-spline curves generation method and system based on probability calculation
CN100388631C (en) A Fast Calculation Method of Channel Coding in Mobile Communication
US6691275B1 (en) Encoder with vector-calculated disparity logic
CN1988391A (en) Arithmetic circuit
US20070201586A1 (en) Multi-rate viterbi decoder
US5942002A (en) Method and apparatus for generating a transform

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
ASS Succession or assignment of patent right

Owner name: CHINA POTEVIO COMPANY LIMITED

Free format text: FORMER OWNER: CHINA PUTIAN INSTITUTE OF TECHNOLOGY CO., LTD.

Effective date: 20090508

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: CHINA PUTIAN INSTITUTE OF TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: CHINA PUTIAN INSTITUTE OF TECHNOLOGY

CP03 Change of name, title or address

Address after: No. two North 6 street, Beijing, Haidian District

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: No. two, 2 street, Beijing information industry base

Patentee before: POTEVIO Institute of Information Technology

TR01 Transfer of patent right

Effective date of registration: 20090508

Address after: No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee after: CHINA POTEVIO CO.,LTD.

Address before: No. two North 6 street, Beijing, Haidian District

Patentee before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

CX01 Expiry of patent term

Granted publication date: 20080514

CX01 Expiry of patent term
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载