CN104378122B - A kind of Compilation Method of variable-length Turbo code - Google Patents
A kind of Compilation Method of variable-length Turbo code Download PDFInfo
- Publication number
- CN104378122B CN104378122B CN201410667118.XA CN201410667118A CN104378122B CN 104378122 B CN104378122 B CN 104378122B CN 201410667118 A CN201410667118 A CN 201410667118A CN 104378122 B CN104378122 B CN 104378122B
- Authority
- CN
- China
- Prior art keywords
- sequence
- information
- length
- turbo code
- code
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法,利用在缩短Turbo码中所传送的信息序列长度一般小于原始信息序列长度的规律,通过在Turbo码母码基础上对缩短的信息序列比特的进行重新排位,将传送信息的比特置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,充分利用Turbo码本身所具有的不等保护的特征,在几乎不改变编译码方法的情况下充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。
The invention discloses a coding method of a variable-length Turbo code, which includes a coding method of a variable-length Turbo code and a decoding method of a variable-length Turbo code. The length of the information sequence transmitted in the shortened Turbo code is generally smaller than that of the original The law of the length of the information sequence, by rearranging the bits of the shortened information sequence on the basis of the Turbo code mother code, the bits of the transmitted information are placed in the low bit error rate position in the bit error rate distribution curve, and the information will not be transmitted The bits (bits set to zero) are placed in the position of high bit error rate, making full use of the characteristics of unequal protection of the Turbo code itself, and making full use of the known information in the information sequence without changing the encoding and decoding method. , to achieve the effect that the length of the input information sequence can be changed arbitrarily, and the reliability of the information can be guaranteed.
Description
技术领域technical field
本发明涉及一种Turbo码的编译方法,尤其涉及一种可变长度Turbo码的编译方法。The invention relates to a compiling method of Turbo codes, in particular to a compiling method of variable-length Turbo codes.
背景技术Background technique
在数据通信中,为了增强信息传输的可靠性,通常采用信道编码的方法对数据在传输中产生的错误进行检测和纠正。Turbo码是近十余年来发展的一种性能优异的纠错码,具有非常好的纠错能力,能大大改善系统性能。Turbo码的分量码构造简单,易于实现,而且各分量码可以采用并行译码,达到较高的数据速率,非常适合于高性能、高吞吐量的通信系统,有着良好的应用前景。但传统的Turbo码属于定长编码,要求信息长度是等长的。而在有些通信环境下,比如在网络通信中,信息长度是可变的。为了适应不同的信息长度,需要研究可变长度的信道编码问题。In data communication, in order to enhance the reliability of information transmission, the method of channel coding is usually used to detect and correct the errors generated during data transmission. Turbo code is an error-correcting code with excellent performance developed in the past ten years. It has very good error-correcting ability and can greatly improve system performance. The component codes of Turbo codes are simple in structure and easy to implement, and each component code can be decoded in parallel to achieve a higher data rate. It is very suitable for high-performance, high-throughput communication systems and has a good application prospect. However, traditional Turbo codes are fixed-length codes, which require the length of information to be equal. However, in some communication environments, such as network communication, the length of information is variable. In order to adapt to different information lengths, it is necessary to study variable-length channel coding problems.
申请号为200510114754的发明专利《联合信源信道可变长符号Turbo编译码方法》公开了一种联合信源信道可变长符号Turbo编译码方法。该方法对信源编码输出的可变长码字序列按照码长和概率进行分类,进行不等差错保护,码字长的分组序列出现概率小,级别较不重要,采用高码率的Turbo码进行编码;码字短的分组序列出现概率较大,级别较重要,采用低码率的Turbo码进行编码。虽然这种方法采用可变长符号Turbo编译码算法,通过可变长符号编码和变长符号译码判决,能够提高通信系统传输的性能和联合译码的效率。但在这种方法中,首先其假定“码字长的分组序列出现概率小,级别较不重要,码字短的分组序列出现概率较大,级别较重要”不具有普遍性。其次,该方法对信源编码器输出的可变长码字序列按照码字长度进行分类,较长的码字归为一组,较短的码字归为一组,而不是对信源编码其输出的码字直接进行编码,直接影响到编码的效率。The patent for invention with the application number of 200510114754 "Combined Source Channel Variable-Length Symbol Turbo Coding and Decoding Method" discloses a joint source-channel variable-length symbol Turbo coding and decoding method. This method classifies the variable-length code word sequence output by the source code according to the code length and probability, and performs unequal error protection. The occurrence probability of the block sequence with code word length is small, and the level is less important. High code rate Turbo code is used. Encoding is carried out; the grouping sequence with short codewords has a higher probability of occurrence and the level is more important, and a low bit rate Turbo code is used for encoding. Although this method adopts the variable-length symbol Turbo encoding and decoding algorithm, the performance of communication system transmission and the efficiency of joint decoding can be improved through variable-length symbol coding and variable-length symbol decoding decision. But in this method, first of all, it assumes that "the group sequence with long codewords has a small probability of occurrence and the level is less important, and the group sequence with short codewords has a higher probability of occurrence and the level is more important" is not universal. Secondly, this method classifies the variable-length codeword sequence output by the source encoder according to the codeword length, the longer codewords are grouped into one group, and the shorter codewords are grouped into one group, instead of encoding the source The output codeword is directly encoded, which directly affects the efficiency of encoding.
申请号为201010289187.3的发明专利《缩短Turbo乘积码的编译码方法》公开了一种可变长度的Turbo码的编译码方法。该专利涉及一种基于BCH码的缩短Turbo乘积码的编译码方法。编码方法的具体步骤包括:对待编码信息序列进行行或列编码;对行或列编码产生的行或列分量码码字进行并行编码;判断编码是否完成。译码方法的具体步骤包括:生成软输入信息序列的硬判决序列;在软输入信息序列中选择最不可靠位;根据硬判决序列和最不可靠位生成测试序列;对测试序列译码生成候选码字;计算候选码字和软输入信息序列的度量;减少候选码字个数;根据候选码字的度量确定判决码字;计算判决码字中每一码元的外信息。虽然该专利中的编码方法能够提高数据吞吐量,减少编码延迟;译码方法能够节省大量的逻辑资源和存储资源,尤其在分量码码长较大的情况下,能够很好的平衡译码复杂度和数据吞吐量。但这种方法是基于BCH分组码作为Turbo码的分量码进行编译码的,其误比特率在中信噪比下表现不好。另外,该方法是基于缩短的BCH乘积码,对不同信息长度的适应性较差。The invention patent "Coding and Decoding Method of Shortened Turbo Product Codes" with application number 201010289187.3 discloses a coding and decoding method of variable-length Turbo codes. This patent relates to a coding and decoding method of shortened Turbo product codes based on BCH codes. The specific steps of the encoding method include: performing row or column encoding on the information sequence to be encoded; performing parallel encoding on the row or column component code words generated by the row or column encoding; judging whether the encoding is completed. The specific steps of the decoding method include: generating a hard decision sequence of a soft input information sequence; selecting the least reliable bit in the soft input information sequence; generating a test sequence according to the hard decision sequence and the least reliable bit; decoding the test sequence to generate a candidate Codeword; calculate the metric of candidate codeword and soft input information sequence; reduce the number of candidate codewords; determine the decision codeword according to the metric of candidate codeword; calculate the external information of each symbol in the decision codeword. Although the encoding method in this patent can improve data throughput and reduce encoding delay; the decoding method can save a lot of logic resources and storage resources, especially when the code length of the component code is large, it can well balance the complexity of decoding. speed and data throughput. However, this method is based on the BCH block code as the component code of the Turbo code for encoding and decoding, and its bit error rate does not perform well under medium signal-to-noise ratio. In addition, this method is based on the shortened BCH product code, which has poor adaptability to different message lengths.
发明内容Contents of the invention
本发明的目的是提供一种建立在一个母码基础上的可变长度Turbo码的编译方法,能够在几乎不改变编译码方法的情况下对缩短的信息序列比特的重新排位,并在译码中充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。The purpose of the present invention is to provide a coding method of variable-length Turbo codes based on a mother code, which can rearrange the shortened information sequence bits under the situation of hardly changing the coding and decoding methods, and can be used in decoding The known information in the information sequence is fully utilized in the code to achieve the effect that the length of the input information sequence can be changed arbitrarily and the reliability of the information can be guaranteed.
本发明采用下述技术方案:The present invention adopts following technical scheme:
一种可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法;A coding method of a variable-length Turbo code, including an encoding method of a variable-length Turbo code and a decoding method of a variable-length Turbo code;
可变长度Turbo码的编码方法包括以下步骤:The encoding method of variable length Turbo code comprises the following steps:
A:确定一个Turbo码母码,Turbo码母码的信息序列长度为k,码率为R,生成多项式矩阵为g=(1,g(D)/h(D)),并给定交织器类型和删截矩阵;A: Determine a Turbo code mother code, the information sequence length of the Turbo code mother code is k, the code rate is R, the generator polynomial matrix is g=(1, g(D)/h(D)), and the interleaver is given type and censored matrix;
B:对Turbo码母码在给定信噪比SNR的条件下进行蒙特卡洛仿真,求出误比特率分布Pb=(p1,p2,…,pk),式中Pb(j)=pj,j=1,2,…,k,k为信息序列长度;Pb(j)为Turbo码母码中第j个信息比特位的错误率;B: Carry out Monte Carlo simulation on the mother code of the Turbo code under the condition of a given signal-to-noise ratio SNR, and obtain the bit error rate distribution P b = (p1, p2, ..., pk), where P b (j) = pj, j=1, 2, ..., k, k is the information sequence length; P b (j) is the error rate of the jth information bit in the Turbo code mother code;
C:对误比特率分布曲线Pb按照各个信息比特位置的误比特率的大小从小到大进行重新排序,得到位置变化的排序表∏=(π1,π2,π3,…,πk),式中∏(j)=πj,j=1,2,…,k;C: Reorder the bit error rate distribution curve P b according to the size of the bit error rate of each information bit position from small to large, and obtain the position change sorting table Π=(π1,π2,π3,...,πk), where ∏(j)=πj, j=1, 2, ..., k;
D:设Turbo码母码缩短后实际输入的信息序列长度为k`,输入的信息序列为Info=(a1,a2,…,ak`),式中Info(j)=aj,j=1,2,…,k`;在序列尾部添加k-k`个零,得到序列Info`=(a1,a2,a3,…,ak`,0,…0),即前k`位为缩短后的信息序列,后k-k`位补零,k`≤k,aj=0或1;D: Let the actual input information sequence length after the Turbo code mother code is shortened be k`, the input information sequence is Info=(a1,a2,...,ak`), where Info(j)=aj, j=1, 2,...,k`; add kk`zeros at the end of the sequence to get the sequence Info`=(a1,a2,a3,...,ak`,0,...0), that is, the first k`bits are the shortened information sequence , the last kk` bits are filled with zeros, k`≤k, a j =0 or 1;
E:对补零后的信息序列Info`中各个信息比特依照排序表∏进行重新排序,设排序后的信息序列表示为Info``,则Info``(∏(j))=Info`(j),j=1,2,…,k,得到新的信息序列Info``=(b1,b2,…,bk),j=1,2,…,k;E: Reorder each information bit in the zero-padded information sequence Info` according to the sorting table ∏. Let the sorted information sequence be expressed as Info``, then Info``(∏(j))=Info`(j ), j=1, 2,..., k, get a new information sequence Info``=(b1, b2,..., bk), j=1, 2,..., k;
F:将排序后得到的信息序列Info``送入Turbo码编码器进行编码,得到两路校验序列P1和P2;F: Send the information sequence Info`` obtained after sorting to the Turbo code encoder for encoding, and obtain two check sequences P1 and P2;
G:将信息序列Info和两路校验序列P1和P2组成码字序列Codeword;G: The information sequence Info and the two check sequences P1 and P2 form the codeword sequence Codeword;
H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道发送;Modu(j)=2×Codeword(j)–1;H: Perform BPSK modulation on the codeword sequence Codeword to generate a modulated signal sequence Modu and send it to the channel; Modu(j)=2×Codeword(j)–1;
可变长度Turbo码的译码方法包括以下步骤:The decoding method of variable length Turbo code comprises the following steps:
I:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入信息序列Info、两路交验序列P1和P2相对应的序列S1、Pr1和Pr2,其中S1=(s1,s2,…,sk`);I: Separate the information of each channel in the interfered receiving sequence Re received by the receiving end and corresponding to the modulated signal sequence Modu, and obtain the information corresponding to the input information sequence Info and the two-way cross-examination sequences P1 and P2 respectively Sequence S1, Pr1 and Pr2, where S1 = (s1, s2, ..., sk`);
J:将收到的序列S1进行扩展,即在序列S1后追加k-k`个负数G,G小于等于-200,得到扩展序列S1`,S1`=(s1,s2,…,sk`,G,…,G);J: Extend the received sequence S1, that is, add k-k` negative numbers G after the sequence S1, G is less than or equal to -200, and obtain the extended sequence S1`, S1`=(s1, s2,..., sk`, G, ..., G);
K:对扩展序列S1`依照排序表∏进行重新排序,得到排序后的序列S1``,S1``(∏(j))=S1`(j),j=1,2,…,k;K: reorder the extended sequence S1` according to the sorting table ∏, and obtain the sorted sequence S1``, S1``(∏(j))=S1`(j), j=1, 2,...,k;
L:将序列S1``、Pr1和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2,S2=(t1,t2,…,tk);L: Send the sequence S1``, Pr1 and Pr2 into the Turbo code decoder for iterative decoding, and output the estimated sequence S2 of the information sequence after decoding, S2=(t1,t2,...,tk);
M:对估值序列S2依照排序表∏进行位置反变换,即恢复原始顺序,得到恢复顺序后的序列S3,位置反变换为:S3(j)=S2(∏(j)),j=1,2,…,k;M: Inversely transform the position of the estimated sequence S2 according to the sorting table ∏, that is, restore the original order, and obtain the sequence S3 after restoring the order. The position inverse transformation is: S3(j)=S2(∏(j)), j=1 ,2,...,k;
N:取S3的前k`位,得到最后的译码结果。N: Take the first k`bits of S3 to get the final decoding result.
所述的B步骤中,信噪比SNR应使平均误比特率大于等于10-4且小于等于10-3;仿真比特不少于k×105,k为信息序列长度。In step B, the signal-to-noise ratio (SNR) should make the average bit error rate greater than or equal to 10 -4 and less than or equal to 10 -3 ; the simulated bits are not less than k×10 5 , where k is the length of the information sequence.
所述的J步骤中,G=-500。In the J step, G=-500.
本发明利用在缩短Turbo码中所传送的信息序列长度一般小于原始信息序列长度的规律,通过在Turbo码母码基础上对缩短的信息序列比特的进行重新排位,将传送信息的比特置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,充分利用Turbo码本身所具有的不等保护的特征,在几乎不改变编译码方法的情况下充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。The present invention utilizes the law that the length of the information sequence transmitted in the shortened Turbo code is generally less than the length of the original information sequence, and by rearranging the bits of the shortened information sequence on the basis of the mother code of the Turbo code, the bits of the transmitted information are placed in the In the low bit error rate position in the bit error rate distribution curve, the bits that do not transmit information (zero-set bits) are placed in the high bit error rate position, and the characteristics of unequal protection of the Turbo code itself are fully utilized. The known information in the information sequence is fully utilized without changing the encoding and decoding method, so that the length of the input information sequence can be changed arbitrarily and the reliability of the information can be guaranteed.
附图说明Description of drawings
图1为重新排序前后误比特率分布曲线图;Fig. 1 is the bit error rate distribution curve before and after reordering;
图2为信息序列重排前不同信息序列长度下的平均误比特率曲线;Fig. 2 is the average bit error rate curve under different information sequence lengths before information sequence rearrangement;
图3为信息序列重排后不同信息序列长度下的平均误比特率曲线;Fig. 3 is the average bit error rate curve under different information sequence lengths after information sequence rearrangement;
图4为本发明中可变长度Turbo码的编码方法的流程图;Fig. 4 is the flowchart of the encoding method of variable length Turbo code among the present invention;
图5为本发明中可变长度Turbo码的译码方法的流程图;Fig. 5 is the flowchart of the decoding method of variable length Turbo code among the present invention;
图6为实施例1中Turbo码母码在重新排列前后的误比特率分布曲线;Fig. 6 is the bit error rate distribution curve of Turbo code mother code before and after rearrangement in embodiment 1;
图7为实施例1中Turbo码母码在重新排序前后比特位置变化表。FIG. 7 is a table of bit position changes of the Turbo code mother code before and after reordering in Embodiment 1.
具体实施方式detailed description
在Turbo码中,一个码的误比特率分布Pb=(p1,p2,…,pk)是不均匀的,式中,Pb(j)=pj,j=1,2,…,k,k为信息序列长度,Pb(j)为第j个信息比特的错误概率。有的信息比特的错误概率高一些,而有的信息比特的错误概率低一些。如图1所示,图1给出了一个交织长度为64的Turbo码在信噪比为4dB下的误比特率分布曲线。Turbo码的生成多项式矩阵为g=(1,D4+1/D4+D3+D2+D+1),g=(1,g(D)/h(D))为通用表达式,在本例中将其转化为具体表达式g=(1,D4+1/D4+D3+D2+D+1),采用一个8×8的分组交织器,删截矩阵为(10;01),因此码率为1/2。图1中的曲线A是排序前的误比特率分布曲线,即原始误比特率分布曲线。由图1可以看出,各个信息比特的错误率有高有低,交错参差。曲线B是将原误比特率分布曲线中的各个信息比特的误比特率按照从低到高的顺序重新排列得到的。在缩短Turbo码中,所传送的信息序列长度一般小于原始信息序列长度,我们将传送信息的比特尽可能的置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,这样可以充分利用Turbo码本身所具有的不等保护的特征,使得信息比特得到更好的保护。In Turbo codes, the bit error rate distribution P b = (p1, p2, ..., pk) of a code is not uniform, where P b (j) = pj, j = 1, 2, ..., k, k is the length of the information sequence, and P b (j) is the error probability of the jth information bit. Some information bits have a higher error probability, while other information bits have a lower error probability. As shown in Figure 1, Figure 1 shows a bit error rate distribution curve of a Turbo code with an interleaving length of 64 at a signal-to-noise ratio of 4dB. The generator polynomial matrix of the Turbo code is g=(1, D 4 +1/D 4 +D 3 +D 2 +D+1), and g=(1, g(D)/h(D)) is a general expression , in this example it is transformed into a specific expression g=(1,D 4 +1/D 4 +D 3 +D 2 +D+1), using an 8×8 block interleaver, the puncturing matrix is (10;01), so the code rate is 1/2. Curve A in FIG. 1 is the bit error rate distribution curve before sorting, that is, the original bit error rate distribution curve. It can be seen from Figure 1 that the error rate of each information bit is high or low, and the interleaving is uneven. Curve B is obtained by rearranging the bit error rates of each information bit in the original bit error rate distribution curve from low to high. In the shortened Turbo code, the length of the transmitted information sequence is generally smaller than the length of the original information sequence, and we place the bits of the transmitted information in the low bit error rate position in the bit error rate distribution curve as much as possible, and the bits that do not transmit the information ( The bits that are set to zero) are placed in the position of high bit error rate, so that the characteristics of unequal protection of the Turbo code itself can be fully utilized, so that the information bits can be better protected.
在传送信息的时候,信息序列中被置零的比特不必传送。假定采用BPSK调制,调制规则为0→-1,1→+1,在接收端,虽然被置零的比特没有被传送,但它们的位置和值是已知的。因此,在接收序列进行译码前,将被置零的比特位的值用一个足够大的负数代替,在迭代译码时就可以充分利用这些已知的信息,提高译码效率。When transmitting information, bits that are set to zero in the information sequence do not have to be transmitted. Assuming that BPSK modulation is adopted, the modulation rule is 0→-1, 1→+1. At the receiving end, although the zeroed bits are not transmitted, their positions and values are known. Therefore, before the received sequence is decoded, the value of the bit that is set to zero is replaced by a sufficiently large negative number, and the known information can be fully utilized during iterative decoding to improve decoding efficiency.
图2和图3分别给出了在不同信息序列长度下,重排前后在不同信噪比下的平均误比特率曲线。图2为信息序列重排前不同信息序列长度下的平均误比特率曲线,图3为信息序列重排后不同信息序列长度下的平均误比特率曲线。信息序列长度分别取64(相当于没有缩短),16,32,52。从图3可以看出,经过信息序列重排后,不同信息长度下的平均误比特率都得到了明显的改善。比如信噪比6dB时,缩短Turbo码后的平均误比特率有了一个数量级左右的改善。Figure 2 and Figure 3 respectively show the average bit error rate curves under different signal-to-noise ratios before and after rearrangement under different information sequence lengths. Figure 2 is the average bit error rate curve under different information sequence lengths before the information sequence rearrangement, and Figure 3 is the average bit error rate curve under different information sequence lengths after the information sequence rearrangement. The information sequence lengths are 64 (equivalent to no shortening), 16, 32, and 52 respectively. It can be seen from Figure 3 that after the information sequence rearrangement, the average bit error rate under different information lengths has been significantly improved. For example, when the signal-to-noise ratio is 6dB, the average bit error rate after shortening the Turbo code has been improved by about an order of magnitude.
利用上述原理,如图4和图5所示,本发明所述的可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法;Utilize above-mentioned principle, as shown in Figure 4 and Figure 5, the coding method of variable-length Turbo code of the present invention comprises the encoding method of variable-length Turbo code and the decoding method of variable-length Turbo code;
其中,可变长度Turbo码的编码方法包括以下步骤:Wherein, the coding method of variable length Turbo code comprises the following steps:
A:确定一个Turbo码母码,Turbo码母码的信息序列长度为k,码率为R,生成多项式矩阵为g=(1,g(D)/h(D)),并给定交织器类型和删截矩阵;A: Determine a Turbo code mother code, the information sequence length of the Turbo code mother code is k, the code rate is R, the generator polynomial matrix is g=(1, g(D)/h(D)), and the interleaver is given type and censored matrix;
B:对Turbo码母码在给定信噪比SNR的条件下进行蒙特卡洛仿真,求出误比特率分布Pb=(p1,p2,…,pk),式中Pb(j)=pj,j=1,2,…,k,k为信息序列长度,Pb(j)为Turbo码母码中第j个信息比特位的错误率;B: Carry out Monte Carlo simulation on the mother code of the Turbo code under the condition of a given signal-to-noise ratio SNR, and obtain the bit error rate distribution P b = (p1, p2, ..., pk), where P b (j) = pj, j=1, 2, ..., k, k is the information sequence length, and P b (j) is the error rate of the jth information bit in the Turbo code mother code;
在进行信噪比SNR的选择时,使平均误比特率大于等于10-4且小于等于10-3即可。为得到精确的误比特率分布,仿真比特应尽可能的多,一般不少于k×105,k为信息序列长度。When selecting the signal-to-noise ratio (SNR), it is sufficient to make the average bit error rate greater than or equal to 10 −4 and less than or equal to 10 −3 . In order to obtain accurate bit error rate distribution, the number of simulated bits should be as many as possible, generally not less than k×10 5 , where k is the length of the information sequence.
当信息序列长度较长时,如k>105,误比特率分布Pb中,可能会出现某些码元的错误概率为零的情况,如果零的个数较少,比如不超过码字长度的百分之一,对于结果不会有明显的影响。如果零的个数过多,可以通过增加仿真的比特数,从而改善仿真精度。When the length of the information sequence is long, such as k>10 5 , in the bit error rate distribution P b , the error probability of some code elements may be zero. If the number of zeros is small, such as not exceeding the code word One hundredth of the length has no noticeable effect on the result. If there are too many zeros, the simulation accuracy can be improved by increasing the number of simulated bits.
C:对误比特率分布Pb按照各个信息比特位置的误比特率的大小从小到大进行重新排序,得到位置变化的排序表∏=(π1,π2,π3,…,πk),式中∏(j)=πj,j=1,2,…,k。排序表∏的含义为在原始位置(即变换前)π1的比特具有最小的误比特率,变换后放在首位;变换前在原始位置π2的比特具有次最小的误比特率,变换后放在第2的位置;……、变换前在原始位置πj的比特具有第j小的误比特率,变换后放在第j位置;以此类推。C: Reorder the bit error rate distribution P b according to the size of the bit error rate of each information bit position from small to large, and obtain the position change sorting table Π=(π1,π2,π3,...,πk), where ∏ (j)=πj, j=1, 2, . . . , k. The meaning of the sorting table Π is that the bit at the original position (that is, before the transformation) π1 has the smallest bit error rate, and it is placed in the first place after the transformation; the bit at the original position π2 before the transformation has the second smallest bit error rate, and it is placed in the The second position; ..., the bit at the original position πj before transformation has the jth smallest bit error rate, and it is placed at the jth position after transformation; and so on.
D:设Turbo码母码缩短后实际输入的信息序列长度为k`,输入的信息序列为Info=(a1,a2,…,ak`),式中Info(j)=aj,j=1,2,…,k`。在序列尾部添加k-k`个零,得到序列Info`=(a1,a2,a3,…,ak`,0,…0),即前k`位为缩短后的信息序列,后k-k`位补零,k`≤k,aj=0或1;D: Let the actual input information sequence length after the Turbo code mother code is shortened be k`, the input information sequence is Info=(a1,a2,...,ak`), where Info(j)=aj, j=1, 2, ..., k`. Add kk` zeros at the end of the sequence to get the sequence Info`=(a1, a2, a3,...,ak`, 0,...0), that is, the first k`bits are the shortened information sequence, and the last kk`bits are filled with zeros , k`≤k, a j =0 or 1;
E:对补零后的信息序列Info`中各个信息比特依照排序表∏进行重新排序,设排序后的信息序列表示为Info``,则Info``(∏(j))=Info`(j),j=1,2,…,k,得到新的信息序列Info``=(b1,b2,…,bk),j=1,2,…,k;E: Reorder each information bit in the zero-padded information sequence Info` according to the sorting table ∏. Let the sorted information sequence be expressed as Info``, then Info``(∏(j))=Info`(j ), j=1, 2,..., k, get a new information sequence Info``=(b1, b2,..., bk), j=1, 2,..., k;
F:将排序后得到的信息序列Info``送入Turbo码编码器进行编码,得到两路校验序列P1和P2;F: Send the information sequence Info`` obtained after sorting to the Turbo code encoder for encoding, and obtain two check sequences P1 and P2;
G:将信息序列Info和两路校验序列P1和P2组成码字序列Codeword;G: The information sequence Info and the two check sequences P1 and P2 form the codeword sequence Codeword;
H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道发送;Modu(j)=2×Codeword(j)–1;H: Perform BPSK modulation on the codeword sequence Codeword to generate a modulated signal sequence Modu and send it to the channel; Modu(j)=2×Codeword(j)–1;
可变长度Turbo码的译码方法包括以下步骤:The decoding method of variable length Turbo code comprises the following steps:
I:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入的信息序列Info、两路交验序列P1和P2相对应的序列S1、Pr1和Pr2,其中S1=(s1,s2,…,sk`);I: Separate the information of each channel in the interfered receiving sequence Re received by the receiving end corresponding to the modulated signal sequence Modu, and obtain the corresponding input information sequence Info, two-way cross-check sequence P1 and P2 respectively Sequences S1, Pr1 and Pr2 of , where S1=(s1, s2, ..., sk`);
J:将收到的序列S1进行扩展,即在序列S1后追加k-k`个负数G,G小于等于-200,得到扩展序列S1`,S1`=(s1,s2,…,sk`,G,…,G);J: Extend the received sequence S1, that is, add k-k` negative numbers G after the sequence S1, G is less than or equal to -200, and obtain the extended sequence S1`, S1`=(s1, s2,..., sk`, G, ..., G);
K:对扩展序列S1`依照排序表∏进行重新排序,得到排序后的序列S1``,S1``(∏(j))=S1`(j),j=1,2,…,k;K: reorder the extended sequence S1` according to the sorting table ∏, and obtain the sorted sequence S1``, S1``(∏(j))=S1`(j), j=1, 2,...,k;
L:将序列S1``、Pr1和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2,S2=(t1,t2,…,tk);L: Send the sequence S1``, Pr1 and Pr2 into the Turbo code decoder for iterative decoding, and output the estimated sequence S2 of the information sequence after decoding, S2=(t1,t2,...,tk);
M:对估值序列S2依照排序表∏进行位置反变换,即恢复原始顺序,得到恢复顺序后的序列S3,位置反变换为:S3(j)=S2(∏(j)),j=1,2,…,k;M: Inversely transform the position of the estimated sequence S2 according to the sorting table ∏, that is, restore the original order, and obtain the sequence S3 after restoring the order. The position inverse transformation is: S3(j)=S2(∏(j)), j=1 ,2,...,k;
N:取S3的前k`位,得到最后的译码结果。N: Take the first k`bits of S3 to get the final decoding result.
以下结合具体实施例对本发明所述的可变长度Turbo码的编译方法进行进一步阐述:Below in conjunction with specific embodiment, the compiling method of variable-length Turbo code of the present invention is further elaborated:
在进行可变长度Turbo码的编码时,按照以下步骤依次执行:When encoding variable-length Turbo codes, follow the steps below to perform sequentially:
A:确定一个Turbo码母码,设Turbo码母码的生成多项式矩阵为g=(1,D2+1/D2+D+1),g=(1,g(D)/h(D))为通用表达式,在本例中将其转化为具体表达式g=(1,D2+1/D2+D+1),无删截,码率为1/3,使用一个随机交织器,Turbo码母码的信息序列长度为22,结尾序列长度为2,两路编码器均结尾;A: Determine a Turbo code mother code, set the generator polynomial matrix of the Turbo code mother code as g=(1, D 2 +1/D 2 +D+1), g=(1, g(D)/h(D )) is a general expression, in this example it is transformed into a specific expression g=(1, D 2 +1/D 2 +D+1), without puncture, code rate 1/3, using a random The interleaver, the information sequence length of the Turbo code mother code is 22, the end sequence length is 2, and both encoders end;
B:对此Turbo码母码在信噪比为4dB的条件下进行蒙特卡洛仿真,求出误比特率分布Pb,Pb(j)为Turbo码母码中第j个信息比特位的错误率,Turbo码母码在重新排列前的误比特率分布曲线Pb如图6中的曲线A所示;B: Carry out Monte Carlo simulation under the condition that the signal-to-noise ratio of the Turbo code mother code is 4dB, and obtain the bit error rate distribution P b , P b (j) is the jth information bit in the Turbo code mother code Error rate, the bit error rate distribution curve P b of the Turbo code mother code before rearrangement is as shown in the curve A in Figure 6;
C:对误比特率分布Pb按照各位误比特率的大小从小到大进行重新排序,得到位置变化的排序表∏,如图7所示;本实施例中,排序表∏=(2 4 1 5 3 6 14 19 22 7 15 9 1021 8 20 16 18 17 13 11 12),Turbo码母码在重新排列后的误比特率分布曲线Pb如图6中的曲线B所示;C: Reorder the bit error rate distribution Pb according to the size of each bit error rate from small to large, and obtain the sorting table Π of position change, as shown in Figure 7; in this embodiment, the sorting table Π=(2 4 1 5 3 6 14 19 22 7 15 9 1021 8 20 16 18 17 13 11 12), the bit error rate distribution curve P b of the Turbo code base code after rearrangement is shown in curve B in Figure 6;
D:设Turbo码缩短后所实际输入的信息序列长度k`=8,输入的信息序列为Info=(a1,a2,a3,a4,a5,a6,a7,a8),通过尾部添加14个零将输入的信息序列表示为Info`=(a1,a2,a3,a4,a5,a6,a7,a8,0,0,0,0,0,0,0,0,0,0,0,0,0,0),即前8位为缩短后的信息序列,后14(即22-8)位补零,aj=0或1;D: The actual input information sequence length k`=8 after the Turbo code is shortened, the input information sequence is Info=(a1, a2, a3, a4, a5, a6, a7, a8), and 14 zeros are added at the end Express the input information sequence as Info`=(a1, a2, a3, a4, a5, a6, a7, a8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0), that is, the first 8 bits are the shortened information sequence, and the last 14 (ie 22-8) bits are filled with zeros, a j =0 or 1;
E:依照排序表∏对信息序列Info`中各个信息比特依照排序表进行重新排序,即Info``(∏(j))=Info`(j),j=1,2,…,k,得到排序后的信息序列Info``=(a3,a1,a5,a2,a4,a6,0,0,0,0,0,0,0,a7,0,0,0,0,a8,0,0,0);E: According to the sorting table ∏, reorder each information bit in the information sequence Info` according to the sorting table, that is, Info``(∏(j))=Info`(j), j=1, 2,...,k, get The sorted information sequence Info``=(a3,a1,a5,a2,a4,a6,0,0,0,0,0,0,0,a7,0,0,0,0,a8,0, 0,0);
F:将排序后得到的信息序列Info``送入Turbo码编码器进行编码,得到两路校验序列P1和P2;F: Send the information sequence Info`` obtained after sorting to the Turbo code encoder for encoding, and obtain two check sequences P1 and P2;
G:将信息序列Info和两路校验序列P1和P2组成码字序列Codeword;G: The information sequence Info and the two check sequences P1 and P2 form the codeword sequence Codeword;
H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道传输,Modu(j)=2×Codeword(j)–1;H: Perform BPSK modulation on the codeword sequence Codeword to generate a modulated signal sequence Modu and send it to the channel for transmission, Modu(j)=2×Codeword(j)–1;
在进行可变长度Turbo码的译码时,按照以下步骤依次执行:When carrying out the decoding of variable-length Turbo code, carry out successively according to the following steps:
I:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入信息序列Info、两路交验序列P1和P2相对应的序列S1,Pr1和Pr2,其中S1=(s1,s2,…,sk`);I: Separate the information of each channel in the interfered receiving sequence Re received by the receiving end and corresponding to the modulated signal sequence Modu, and obtain the information corresponding to the input information sequence Info and the two-way cross-examination sequences P1 and P2 respectively Sequence S1, Pr1 and Pr2, where S1 = (s1, s2, ..., sk`);
J:将收到的序列S1进行扩展,即在序列S1后追加k-k`个负数G,在这里,G取值-500,得到扩展序列S1`,S1`=(s1,s2,…,sk`,-500,…,-500);J: Extend the received sequence S1, that is, add k-k` negative numbers G after the sequence S1. Here, G takes the value -500 to obtain the extended sequence S1`, S1`=(s1, s2,...,sk` ,-500,...,-500);
K:对扩展序列S1`依照排序表∏进行重新排序,得到排序后的序列S1``,S1``(∏(j))=S1`(j);S1``=(a3,a1,a5,a2,a4,a6,-500,-500,-500,-500,-500,-500,-500,a7,-500,-500,-500,-500,a8,-500,-500,-500)K: Reorder the extended sequence S1` according to the sorting table ∏, and obtain the sorted sequence S1``, S1``(∏(j))=S1`(j); S1``=(a3,a1,a5 ,a2,a4,a6,-500,-500,-500,-500,-500,-500,-500,a7,-500,-500,-500,-500,a8,-500,-500, -500)
L:将序列S1``、Pr1和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2,S2=(t1,t2,…,tk);L: Send the sequence S1``, Pr1 and Pr2 into the Turbo code decoder for iterative decoding, and output the estimated sequence S2 of the information sequence after decoding, S2=(t1, t2, ..., tk);
M:对估值序列S2依照排序表∏进行位置反变换,得到恢复原始位置的序列S3=(t2,t4,t1,t5,t3,t6,t14,t19,t22,t7,t15,t9,t10,t21,t8,t20,t16,t18,t17,t13,t11,t12),即S3(j)=S2(∏(j));M: Inversely transform the position of the estimated sequence S2 according to the sorting table ∏, and obtain the sequence S3 = (t2, t4, t1, t5, t3, t6, t14, t19, t22, t7, t15, t9, t10 to restore the original position , t21, t8, t20, t16, t18, t17, t13, t11, t12), that is, S3(j)=S2(∏(j));
N:取S3的前k`=8位,即得到最后的译码结果,译码结果为(t2,t4,t1,t5,t3,t6,t14,t19)。N: Take the first k'=8 bits of S3, that is, get the final decoding result, which is (t2, t4, t1, t5, t3, t6, t14, t19).
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410667118.XA CN104378122B (en) | 2014-11-20 | 2014-11-20 | A kind of Compilation Method of variable-length Turbo code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410667118.XA CN104378122B (en) | 2014-11-20 | 2014-11-20 | A kind of Compilation Method of variable-length Turbo code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104378122A CN104378122A (en) | 2015-02-25 |
CN104378122B true CN104378122B (en) | 2017-06-13 |
Family
ID=52556819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410667118.XA Expired - Fee Related CN104378122B (en) | 2014-11-20 | 2014-11-20 | A kind of Compilation Method of variable-length Turbo code |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104378122B (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812095A (en) * | 2016-03-08 | 2016-07-27 | 熊猫电子集团有限公司 | Helicopter satellite communication Turbo code encoding method |
CN106452672B (en) * | 2016-09-28 | 2017-08-15 | 郑州大学西亚斯国际学院 | A kind of punctured Design Method of Turbo code with strong unequal error protection |
CN106452678B (en) * | 2016-10-21 | 2017-07-21 | 郑州大学西亚斯国际学院 | A kind of Turbo code puncturing method being distributed based on bit error rate |
US10897295B2 (en) * | 2017-04-13 | 2021-01-19 | Futurewei Technologies, Inc. | System and method for beam indexing reference signal design for initial access |
CN109120377B (en) * | 2018-07-19 | 2020-11-27 | 华北水利水电大学 | A new information hiding method and storage medium in data transmission |
CN113872615B (en) * | 2021-10-09 | 2024-11-19 | 中国电子科技集团公司第五十四研究所 | A variable length turbo code decoder device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1411695A2 (en) * | 2001-06-09 | 2004-04-21 | Samsung Electronics Co., Ltd. | Mapping with unequal error protection |
CN1794590A (en) * | 2005-10-27 | 2006-06-28 | 中国科学院研究生院 | Coding-decoding method for integrated source and channel variable-length symbol Turbo |
CN101958720A (en) * | 2010-09-24 | 2011-01-26 | 西安电子科技大学 | A Method of Encoding and Decoding of Shortened Turbo Product Codes |
CN103368695A (en) * | 2013-07-09 | 2013-10-23 | 华北水利水电大学 | Energy distribution method based on bit error rate distribution |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7751324B2 (en) * | 2004-11-19 | 2010-07-06 | Nokia Corporation | Packet stream arrangement in multimedia transmission |
-
2014
- 2014-11-20 CN CN201410667118.XA patent/CN104378122B/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1411695A2 (en) * | 2001-06-09 | 2004-04-21 | Samsung Electronics Co., Ltd. | Mapping with unequal error protection |
CN1794590A (en) * | 2005-10-27 | 2006-06-28 | 中国科学院研究生院 | Coding-decoding method for integrated source and channel variable-length symbol Turbo |
CN101958720A (en) * | 2010-09-24 | 2011-01-26 | 西安电子科技大学 | A Method of Encoding and Decoding of Shortened Turbo Product Codes |
CN103368695A (en) * | 2013-07-09 | 2013-10-23 | 华北水利水电大学 | Energy distribution method based on bit error rate distribution |
Non-Patent Citations (1)
Title |
---|
Unequal Error Protection of JPEG2000 Images Using Short Block Length Turbo Codes;Weidang Zhang,et al;《IEEE COMMUNICATIONS LETTERS》;20110630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104378122A (en) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104378122B (en) | A kind of Compilation Method of variable-length Turbo code | |
JP5329239B2 (en) | Multi-body code generator and decoder for communication systems | |
CN111628785B (en) | Method for generating soft information by decoder in hard selection hard decoding mode | |
KR101421286B1 (en) | Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes | |
JP5485302B2 (en) | File download and streaming system | |
TWI280748B (en) | Multi-stage code generator and decoder for communication systems | |
JP4389373B2 (en) | Decoder for iterative decoding of binary cyclic code | |
CN102164026B (en) | Fountain code compiling method based on deep space communication environment | |
CN105991227B (en) | Data coding method and device | |
CN101459430B (en) | Encoding method and apparatus for low density generation matrix code | |
CN106888026A (en) | Segmentation polarization code coding/decoding method and system based on LSC CRC decodings | |
CN105162552B (en) | A kind of Ka frequency range deep space communication method and system of q-LDPC-LT cascades fountain codes scheme | |
CN101252606A (en) | Coding Method Based on LDPC-Fountain Code in Deep Space Communication | |
CN108462560A (en) | One kind being used for the cascade coding and decoding method of polarization code | |
CN103338046B (en) | The encoding and decoding method of the LDPC-RS two dimensional product codes of code-rate-compatible | |
CN100508442C (en) | Encoding and decoding method and encoding and decoding device | |
CN105634506A (en) | Soft decision decoding method of quadratic residue (QR) code based on shifting search algorithm | |
Kumar et al. | Efficient and low latency turbo encoder design using Verilog-Hdl | |
Roca et al. | Rs+ ldpc-staircase codes for the erasure channel: Standards, usage and performance | |
CN112118014A (en) | Low density parity check decoding apparatus for performing re-combinable decoding and related methods | |
CN107615666A (en) | The interpretation method and decoding equipment of LDPC shortened codes | |
Azeem et al. | On the performance of tanner graph based and viterbi decoding for erasure recovery | |
CN116760425A (en) | A CRC-assisted OSD decoding method for LDPC codes | |
CN103401649B (en) | Distributed transmission method based on fountain coding under a kind of noisy channels | |
CN101604976B (en) | Pretreatment method for check matrix of bit reliability mapping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170613 Termination date: 20181120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |