一种可变长度Turbo码的编译方法

文档序号:7820163阅读:331来源:国知局
一种可变长度Turbo码的编译方法
【专利摘要】本发明公开了一种可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法,利用在缩短Turbo码中所传送的信息序列长度一般小于原始信息序列长度的规律,通过在Turbo码母码基础上对缩短的信息序列比特的进行重新排位,将传送信息的比特置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,充分利用Turbo码本身所具有的不等保护的特征,在几乎不改变编译码方法的情况下充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。
【专利说明】—种可变长度Turbo码的编译方法

【技术领域】
[0001]本发明涉及一种Turbo码的编译方法,尤其涉及一种可变长度Turbo码的编译方法。

【背景技术】
[0002]在数据通信中,为了增强信息传输的可靠性,通常采用信道编码的方法对数据在传输中产生的错误进行检测和纠正。Turbo码是近十余年来发展的一种性能优异的纠错码,具有非常好的纠错能力,能大大改善系统性能。Turbo码的分量码构造简单,易于实现,而且各分量码可以采用并行译码,达到较高的数据速率,非常适合于高性能、高吞吐量的通信系统,有着良好的应用前景。但传统的Turbo码属于定长编码,要求信息长度是等长的。而在有些通信环境下,比如在网络通信中,信息长度是可变的。为了适应不同的信息长度,需要研究可变长度的信道编码问题。
[0003]申请号为200510114754的发明专利《联合信源信道可变长符号Turbo编译码方法》公开了一种联合信源信道可变长符号Turbo编译码方法。该方法对信源编码输出的可变长码字序列按照码长和概率进行分类,进行不等差错保护,码字长的分组序列出现概率小,级别较不重要,采用高码率的Turbo码进行编码;码字短的分组序列出现概率较大,级别较重要,采用低码率的Turbo码进行编码。虽然这种方法采用可变长符号Turbo编译码算法,通过可变长符号编码和变长符号译码判决,能够提高通信系统传输的性能和联合译码的效率。但在这种方法中,首先其假定“码字长的分组序列出现概率小,级别较不重要,码字短的分组序列出现概率较大,级别较重要”不具有普遍性。其次,该方法对信源编码器输出的可变长码字序列按照码字长度进行分类,较长的码字归为一组,较短的码字归为一组,而不是对信源编码其输出的码字直接进行编码,直接影响到编码的效率。
[0004]申请号为201010289187.3的发明专利《缩短Turbo乘积码的编译码方法》公开了一种可变长度的Turbo码的编译码方法。该专利涉及一种基于BCH码的缩短Turbo乘积码的编译码方法。编码方法的具体步骤包括:对待编码信息序列进行行或列编码;对行或列编码产生的行或列分量码码字进行并行编码;判断编码是否完成。译码方法的具体步骤包括:生成软输入信息序列的硬判决序列;在软输入信息序列中选择最不可靠位;根据硬判决序列和最不可靠位生成测试序列;对测试序列译码生成候选码字;计算候选码字和软输入信息序列的度量;减少候选码字个数;根据候选码字的度量确定判决码字;计算判决码字中每一码元的外信息。虽然该专利中的编码方法能够提高数据吞吐量,减少编码延迟;译码方法能够节省大量的逻辑资源和存储资源,尤其在分量码码长较大的情况下,能够很好的平衡译码复杂度和数据吞吐量。但这种方法是基于BCH分组码作为Turbo码的分量码进行编译码的,其误比特率在中信噪比下表现不好。另外,该方法是基于缩短的BCH乘积码,对不同信息长度的适应性较差。


【发明内容】

[0005]本发明的目的是提供一种建立在一个母码基础上的可变长度Turbo码的编译方法,能够在几乎不改变编译码方法的情况下对缩短的信息序列比特的重新排位,并在译码中充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。
[0006]本发明采用下述技术方案:
[0007]一种可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法;
[0008]可变长度Turbo码的编码方法包括以下步骤:
[0009]A:确定一个Turbo码母码,Turbo码母码的信息序列长度为k,码率为R,生成多项式矩阵为g = (1,g (D)/h (D)),并给定交织器类型和删截矩阵;
[0010]B:对Turbo码母码在给定信噪比SNR的条件下进行蒙特卡洛仿真,求出误比特率分布Pb = (pl, p2,…,pk),式中Pb(j) =pj, j = l,2,…,k, k为信息序列长度;Pb (j)为Turbo码母码中第j个信息比特位的错误率;
[0011]C:对误比特率分布曲线Pb按照各个信息比特位置的误比特率的大小从小到大进行重新排序,得到位置变化的排序表Π= Ol, JI 2, π 3,..., Jik),式中Π (j) = Tl j, j =1,2,..., k ;
[0012]D:设Turbo码母码缩短后实际输入的信息序列长度为k',输入的信息序列为Info=(al, a2,…,ak'),式中Info (j) =aj,j = l,2,…,k' ;在序列尾部添加k_k'个零,得到序列Info' = (al,a2,a3, ---,ak' ,0,…O),即前k'位为缩短后的信息序列,后k_k'位补零,k' < k, a」=O或I ;
[0013]E:对补零后的信息序列Info'中各个信息比特依照排序表Π进行重新排序,设排序后的信息序列表示为Info'',则Info'' ( Π (j)) = Info' (j), j = 1,2,…,k,得到新的信息序列 Info'' = (bl, b2,..., bk), j = 1,2,…,k ;
[0014]F:将排序后得到的信息序列Info''送入Turbo码编码器进行编码,得到两路校验序列Pl和P2 ;
[0015]G:将信息序列Info和两路校验序列Pl和P2组成码字序列Codeword ;
[0016]H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道发送;Modu(j) = 2 X Codeword (j) -1 ;
[0017]可变长度Turbo码的译码方法包括以下步骤:
[0018]1:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入信息序列Info、两路交验序列Pl和P2相对应的序列SUPrl 和 Pr2,其中 SI = (si, s2,…,sk');
[0019]J:将收到的序列SI进行扩展,即在序列SI后追加k-k'个负数G,G小于等于-200,得到扩展序列 SI',SI' = (sl,s2,...,sk',G,...,G);
[0020]K:对扩展序列SI'依照排序表Π进行重新排序,得到排序后的序列SI'',SI'' ( Π (j)) = SI' (j), j = 1,2,…,k ;
[0021]L:将序列SI'' ,Prl和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2, S2 = (tl, t2,…,tk);
[0022]M:对估值序列S2依照排序表Π进行位置反变换,即恢复原始顺序,得到恢复顺序后的序列S3,位置反变换为:S3(j) =S2(TI (j)),j = l,2,…,k;
[0023]N:取S3的前k'位,得到最后的译码结果。
[0024]所述的B步骤中,信噪比SNR应使平均误比特率大于等于10_4且小于等于10_3 ;仿真比特不少于kX 15, k为信息序列长度。
[0025]所述的J步骤中,G =-500。
[0026]本发明利用在缩短Turbo码中所传送的信息序列长度一般小于原始信息序列长度的规律,通过在Turbo码母码基础上对缩短的信息序列比特的进行重新排位,将传送信息的比特置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,充分利用Turbo码本身所具有的不等保护的特征,在几乎不改变编译码方法的情况下充分利用信息序列中的已知信息,达到既可任意改变输入信息序列的长度,又能保障信息可靠性的效果。

【专利附图】

【附图说明】
[0027]图1为重新排序前后误比特率分布曲线图;
[0028]图2为信息序列重排前不同信息序列长度下的平均误比特率曲线;
[0029]图3为信息序列重排后不同信息序列长度下的平均误比特率曲线;
[0030]图4为本发明中可变长度Turbo码的编码方法的流程图;
[0031]图5为本发明中可变长度Turbo码的译码方法的流程图;
[0032]图6为实施例1中Turbo码母码在重新排列前后的误比特率分布曲线;
[0033]图7为实施例1中Turbo码母码在重新排序前后比特位置变化表。

【具体实施方式】
[0034]在Turbo码中,一个码的误比特率分布Pb = (pl, p2,…,pk)是不均勻的,式中,Pb(j) = Pj, j = 1,2,…,k,k为信息序列长度,Pb(J)为第j个信息比特的错误概率。有的信息比特的错误概率高一些,而有的信息比特的错误概率低一些。如图1所示,图1给出了一个交织长度为64的Turbo码在信噪比为4dB下的误比特率分布曲线。Turbo码的生成多项式矩阵为g= (I, D4+l/D4+D3+D2+D+l), g = (I, g(D)/h(D))为通用表达式,在本例中将其转化为具体表达式g = (I, D4+l/D4+D3+D2+D+l),采用一个8X8的分组交织器,删截矩阵为(10 ;01),因此码率为1/2。图1中的曲线A是排序前的误比特率分布曲线,即原始误比特率分布曲线。由图1可以看出,各个信息比特的错误率有高有低,交错参差。曲线B是将原误比特率分布曲线中的各个信息比特的误比特率按照从低到高的顺序重新排列得到的。在缩短Turbo码中,所传送的信息序列长度一般小于原始信息序列长度,我们将传送信息的比特尽可能的置于误比特率分布曲线中的低误比特率位置,将不传送信息的比特(置零的比特)置于高误比特率的位置,这样可以充分利用Turbo码本身所具有的不等保护的特征,使得信息比特得到更好的保护。
[0035]在传送信息的时候,信息序列中被置零的比特不必传送。假定采用BPSK调制,调制规则为O — -1,I — +1,在接收端,虽然被置零的比特没有被传送,但它们的位置和值是已知的。因此,在接收序列进行译码前,将被置零的比特位的值用一个足够大的负数代替,在迭代译码时就可以充分利用这些已知的信息,提高译码效率。
[0036]图2和图3分别给出了在不同信息序列长度下,重排前后在不同信噪比下的平均误比特率曲线。图2为信息序列重排前不同信息序列长度下的平均误比特率曲线,图3为信息序列重排后不同信息序列长度下的平均误比特率曲线。信息序列长度分别取64 (相当于没有缩短),16,32,52。从图3可以看出,经过信息序列重排后,不同信息长度下的平均误比特率都得到了明显的改善。比如信噪比6dB时,缩短Turbo码后的平均误比特率有了一个数量级左右的改善。
[0037]利用上述原理,如图4和图5所示,本发明所述的可变长度Turbo码的编译方法,包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法;
[0038]其中,可变长度Turbo码的编码方法包括以下步骤:
[0039]A:确定一个Turbo码母码,Turbo码母码的信息序列长度为k,码率为R,生成多项式矩阵为g = (1,g (D)/h (D)),并给定交织器类型和删截矩阵;
[0040]B:对Turbo码母码在给定信噪比SNR的条件下进行蒙特卡洛仿真,求出误比特率分布 Pb = (pl, p2,..., pk),式中 Pb(j) =pj,j = l,2,..., k, k 为信息序列长度,Pb(j)为Turbo码母码中第j个信息比特位的错误率;
[0041]在进行信噪比SNR的选择时,使平均误比特率大于等于10_4且小于等于10_3即可。为得到精确的误比特率分布,仿真比特应尽可能的多,一般不少于kX 15, k为信息序列长度。
[0042]当信息序列长度较长时,如k>105,误比特率分布Pb中,可能会出现某些码元的错误概率为零的情况,如果零的个数较少,比如不超过码字长度的百分之一,对于结果不会有明显的影响。如果零的个数过多,可以通过增加仿真的比特数,从而改善仿真精度。
[0043]C:对误比特率分布Pb按照各个信息比特位置的误比特率的大小从小到大进行重新排序,得到位置变化的排序表Π = Ol, JI 2, η 3,..., n k),式中Π (j) = π j, j = I,2,…,k。排序表Π的含义为在原始位置(即变换前)π I的比特具有最小的误比特率,变换后放在首位;变换前在原始位置的比特具有次最小的误比特率,变换后放在第2的位置;……、变换前在原始位置n j的比特具有第j小的误比特率,变换后放在第j位置;以此类推。
[0044]D:设Turbo码母码缩短后实际输入的信息序列长度为k',输入的信息序列为Info=(al, a2,…,ak'),式中Info (j) =aj,j = 1,2,…,k'。在序列尾部添加k_k'个零,得到序列Info' = (al,a2,a3, ---,ak' ,0,…O),即前k'位为缩短后的信息序列,后k_k'位补零,k' < k, a」=O或I ;
[0045]E:对补零后的信息序列Info'中各个信息比特依照排序表Π进行重新排序,设排序后的信息序列表示为Info'',则Info'' ( Π (j)) = Info' (j), j = 1,2,…,k,得到新的信息序列 Info'' = (bl, b2,..., bk), j = 1,2,…,k ;
[0046]F:将排序后得到的信息序列Info''送入Turbo码编码器进行编码,得到两路校验序列Pl和P2 ;
[0047]G:将信息序列Info和两路校验序列Pl和P2组成码字序列Codeword ;
[0048]H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道发送;Modu(j) = 2 X Codeword (j) -1 ;
[0049]可变长度Turbo码的译码方法包括以下步骤:
[0050]1:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入的信息序列Info、两路交验序列Pl和P2相对应的序列SUPrl 和 Pr2,其中 SI = (sl, s2,…,sk');
[0051]J:将收到的序列SI进行扩展,即在序列SI后追加k-k'个负数G,G小于等于-200,得到扩展序列 SI',SI' = (sl,s2,...,sk',G,…,G);
[0052]K:对扩展序列SI'依照排序表Π进行重新排序,得到排序后的序列SI'',SI'' ( Π (j)) = SI' (j), j = 1,2,…,k ;
[0053]L:将序列SI''、Prl和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2, S2 = (tl, t2,…,tk);
[0054]M:对估值序列S2依照排序表Π进行位置反变换,即恢复原始顺序,得到恢复顺序后的序列S3,位置反变换为:S3(j) =S2(TI (j)),j = l,2,…,k;
[0055]N -M S3的前k'位,得到最后的译码结果。
[0056]以下结合具体实施例对本发明所述的可变长度Turbo码的编译方法进行进一步阐述:
[0057]在进行可变长度Turbo码的编码时,按照以下步骤依次执行:
[0058]A:确定一个Turbo码母码,设Turbo码母码的生成多项式矩阵为g = (I, D2+l/D2+D+l), g = (I, g(D)/h (D))为通用表达式,在本例中将其转化为具体表达式g= (1,D2+1/D2+D+l),无删截,码率为1/3,使用一个随机交织器,Turbo码母码的信息序列长度为22,结尾序列长度为2,两路编码器均结尾;
[0059]B:对此Turbo码母码在信噪比为4dB的条件下进行蒙特卡洛仿真,求出误比特率分布Pb,Pb(J)为Turbo码母码中第j个信息比特位的错误率,Turbo码母码在重新排列前的误比特率分布曲线Pb如图6中的曲线A所示;
[0060]C:对误比特率分布Pb按照各位误比特率的大小从小到大进行重新排序,得到位置变化的排序表Π,如图7所示;本实施例中,排序表Π= (2 4 I 5 3 6 14 19 22 7 15 910 21 8 20 16 18 17 13 11 12) ,Turbo码母码在重新排列后的误比特率分布曲线Pb如图6中的曲线B所示;
[0061]D:设Turbo码缩短后所实际输入的信息序列长度k' = 8,输入的信息序列为Info=(al? ?2, a3,a4,a5,a6,a7,a8),通过尾部添加14个零将細入的彳曰息序列表不为Info=(al,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)位补零,a」=O或I ;
[0062]E:依照排序表Π对信息序列Info'中各个信息比特依照排序表进行重新排序,即Info'' ( Π (j)) = Info' (j), j = 1,2,...,k,得到排序后的信息序列 Info'' = (a3, al, a5, a2, a4, a6, 0, 0, 0, 0, 0, 0, 0, a7, 0, 0, 0, 0, a8, 0, 0, 0);
[0063]F:将排序后得到的信息序列Info''送入Turbo码编码器进行编码,得到两路校验序列Pl和P2 ;
[0064]G:将信息序列Info和两路校验序列Pl和P2组成码字序列Codeword ;
[0065]H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道传输,Modu (j) = 2 X Codeword (j) -1 ;
[0066]在进行可变长度Turbo码的译码时,按照以下步骤依次执行:
[0067]1:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入信息序列Info、两路交验序列Pl和P2相对应的序列SI, Prl 和 Pr2,其中 SI = (sl, s2,…,sk');
[0068]J:将收到的序列SI进行扩展,即在序列SI后追加k-k'个负数G,在这里,G取值-500,得到扩展序列 SI',SI' = (sl,s2,...,sk',-500,…,-500);
[0069]K:对扩展序列SI'依照排序表Π进行重新排序,得到排序后的序列SI'',SI'' ( Π (j)) = SI' (j) ;S1'' = (a3, al, a5, a2, a4, a6,-500,-500,-500,-500,-500,-500,_500, a7, _500, _500, _500, _500, a8, _500, _500,_500)
[0070]L:将序列SI''、Prl和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2,S2 = (tl,t2,…,tk);
[0071]M:对估值序列S2依照排序表Π进行位置反变换,得到恢复原始位置的序列S3 =(t2, t4, tl, t5, t3, t6, tl4, tl9, t22, t7, tl5, t9, tlO, t21, t8, t20, tl6, tl8, tl7, tl3, til,tl2),即 S3(j) = S2(TI (j));
[0072]N:取S3的前k' = 8位,即得到最后的译码结果,译码结果为(t2, t4, tl, t5, t3, t6, tl4, tl9)。
【权利要求】
1.一种可变长度Turbo码的编译方法,其特征在于:包括可变长度Turbo码的编码方法和可变长度Turbo码的译码方法; 可变长度Turbo码的编码方法包括以下步骤: A:确定一个Turbo码母码,Turbo码母码的信息序列长度为k,码率为R,生成多项式矩阵为g = (1,g (D)/h (D)),并给定交织器类型和删截矩阵; B:对Turbo码母码在给定信噪比SNR的条件下进行蒙特卡洛仿真,求出误比特率分布Pb= (pl,p2, "'pk),式中 Pb(j) =pj,j = l,2,…,k, k 为信息序列长度;Pb (j)为 Turbo码母码中第j个信息比特位的错误率; C:对误比特率分布曲线Pb按照各个信息比特位置的误比特率的大小从小到大进行重新排序,得到位置变化的排序表Π = Ol, JI 2, π 3,..., 31 k),式中Π (j) = Tl j, j = I,2,..., k ; D:设Turbo码母码缩短后实际输入的信息序列长度为k',输入的信息序列为Info =(al,a2,..., ak'),式中Info (j) = aj, j = 1,2,…,k' ;在序列尾部添加k_k'个零,得到序列Info' = (al,a2,a3,-,ak',0,…O),即前k'位为缩短后的信息序列,后k_k'位补零,k' < k, a」=O 或 I ; E:对补零后的信息序列Info'中各个信息比特依照排序表Π进行重新排序,设排序后的信息序列表示为Info'',则Info'' ( Π (j)) = Info' (j), j = 1,2, “.Λ,得到新的信息序列 Info'' = (bl, b2,..., bk), j = I, 2,…,k ; F:将排序后得到的信息序列Info''送入Turbo码编码器进行编码,得到两路校验序列Pl 和 P2 ; G:将信息序列Info和两路校验序列Pl和P2组成码字序列Codeword ; H:对码字序列Codeword进行BPSK调制,生成调制信号序列Modu并送入信道发送;Modu(j) = 2 X Codeword(j) -1 ; 可变长度Turbo码的译码方法包括以下步骤: 1:将接收端收到的与调制信号序列Modu相对应的受到干扰后的接收序列Re中的各路信息进行分离,分别得到与输入信息序列Info、两路交验序列Pl和P2相对应的序列S1、Prl 和 Pr2,其中 SI = (si, s2,…,sk'); J:将收到的序列SI进行扩展,即在序列SI后追加k-k'个负数G,G小于等于-200,得到扩展序列 SI', SI' = (Si, s2,..., sk', G,..., G); K:对扩展序列SI'依照排序表Π进行重新排序,得到排序后的序列SI'',SI'' ( Π (j)) = SI' (j), j = 1,2,…,k ; L:将序列SI'' ,Prl和Pr2送入Turbo码译码器进行迭代译码,译码结束后输出信息序列的估值序列S2, S2 = (tl, t2,…,tk); M:对估值序列S2依照排序表Π进行位置反变换,即恢复原始顺序,得到恢复顺序后的序列 S3,位置反变换为:S3(j) = S2(TI (j)),j = 1,2,…,k; N:取S3的前k'位,得到最后的译码结果。
2.根据权利要求1所述的可变长度Turbo码的编译方法,其特征在于:所述的B步骤中,信噪比SNR应使平均误比特率大于等于10_4且小于等于10_3 ;仿真比特不少于kX105,k为信息序列长度。
3.根据权利要求2所述的可变长度Turbo码的编译方法,其特征在于:所述的J步骤中,G = -500。
【文档编号】H04L1/00GK104378122SQ201410667118
【公开日】2015年2月25日 申请日期:2014年11月20日 优先权日:2014年11月20日
【发明者】邵霞, 张卫党, 李萍, 郑丽敏, 李甦 申请人:华北水利水电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1