缩短Turbo乘积码的编译码方法

文档序号:7518088阅读:147来源:国知局
专利名称:缩短Turbo乘积码的编译码方法
技术领域
本发明涉及通信技术领域中的前向纠错方法,特别是有关于一种缩短Turbo乘积 码的编译码方法。
背景技术
在通信系统中,为了提高数据传输的可靠性,在信息发送之前,需要按照一定的规 贝U,在数据流中加入冗余,以便接收端能够进行误码检测和校正。TurbO乘积码是近十余年 来发展的一种性能优异的纠错码,它将Turbo码中的迭代译码思想引入乘积码中,使其具 有非常好的纠错能力和更低的错误平层,能大大改善系统性能。Turbo乘积码的分量码构造 简单,易于实现,而且各分量码可以采用并行译码,达到较高的数据速率,非常适合于高性 能、高吞吐量的通信系统,有着良好的应用前景。为了适应通信系统对不同码率的需求,可 以将前面若干个信息位的值全部置为零,构成了缩短码。缩短Turbo乘积码的编译码原理 与Turbo乘积码相同。2008年申请号为200810207929. 6的专利“Turbo乘积码优化编译码算法的FPGA 实现方法”给出了一种可实现的编译码方案。该编译码方法的主要发明点在于实现了 Turbo 乘积码优化编码方式,即待编码数据传输至随机存取内存中,编码器从随机存取内存中逐 行或逐列读入,并采用Turbo乘积码进行行或列编码,所有行或列编码完毕后再逐列或逐 行进行编码,将编码后的数据写入输出内存中。当输出内存存满时,先输出帧头,然后读出 输出内存中的整块数据,并以0或1或其他冗余信息补足数据块之间的时钟空隙,并根据码 率需要,对信息位进行缩短。实际上,这种先进行行(列)编码,再进行列(行)编码的方 法会产生较大的编码时延。Leroux 等人在 2008 年 10 月的 IEEE Signal Processing Systems 发表的论文“A highly parallel Turbo product code decoder without inter leaving resource,,,设计 了能够并行处理所有行或列的全并行SISO译码器和只处理一行或列的连续SISO译码器, 使得在两次迭代之间可以直接传递外信息而不需要额外的存储资源。在全并行Siso译码 器中,得到软输入信息序列硬判决译码的伴随式和全校验位后,其他测试序列的译码伴随 式和全校验位并行计算得到,各个候选码字的度量则根据测试序列译码后最不可靠位、伴 随式指示的纠正位和全校验位的变化情况计算得到。虽然文中介绍的方法可以节省两次迭 代之间的存储资源并达到较高的数据吞吐量,但是其代价是候选码字及其度量的全并行计 算造成的大量逻辑资源和存储资源的消耗,当分量码码长较大时,现有硬件可能无法满足 译码器对于资源的要求。尤其对于缩短Turbo乘积码,当各行或列的码长不一致时,全并行 SISO译码器并不适用。

发明内容
本发明的目的在于提供一种适合于缩短Turbo乘积码的编译码方法,能够有效地 降低编译码的复杂度,提高吞吐量,当码长较大时能够很好的平衡译码复杂度和吞吐量,同时也能更好地支持通信系统对于各种码率的不同需求。为实现上述目的,本发 明提供了一种基于BCH码或者扩展BCH码的缩短Turbo乘 积码的编码方法,包括如下步骤1、对缩短Turbo乘积码信息序列进行行或列编码;2、对行或列编码产生的每一个行或列分量码码字进行并行编码(2. 1)判断分量码码字中各比特的位置信息;(2. 2)读取状态信息,根据比特的位置信息读取该比特所在列或列的分量码编码 电路上一次更新后的状态;(2. 3)更新状态信息,根据比特值和状态,经过分量码编码电路后得到本次列或列 分量码编码的状态信息;3、判断编码是否完成(3. 1)若待编码信息序列完成最后一行或列的编码,则判编码已完成,并输出 Turbo乘积码的码字;(3. 2)若待编码信息序列未完成最后一行或列的编码,则判编码未完成,转回到步 骤(1)继续进行下一行或列编码。本发明提供了一种基于BCH码或者扩展BCH码的缩短Turbo乘积码的译码方法, 具体步骤如下1、生成软输入信息序列的硬判决序列;2、在软输入信息序列中选择最不可靠位;3、根据硬判决序列和最不可靠位生成测试序列;4、对测试序列译码生成候选码字(4. 1)对软输入信息序列进行硬判决译码,可以得到硬判决序列的伴随式;(4. 2)根据分量码生成多项式得到与最不可靠位相应的本原域元素幂的向量;(4. 3)根据硬判决序列的伴随式,计算在最不可靠位全为0的测试序列的伴随式, 从最不可靠位全为0的测试序列开始,依次改变在最不可靠位上的值,计算得到其他测试 序列的伴随式;(4. 4)根据伴随式纠正测试序列的错误位置,得到所有的候选码字;5、计算候选码字和软输入信息序列的度量(5. 1)计算硬判决序列和软输入信息序列的度量;(5. 2)计算测试序列与软输入信息序列的度量,根据软输入信息序列在最不可靠 位置上的数值和硬判决序列的度量,计算测试序列中最不可靠位全为0的度量,根据软输 入信息序列在最不可靠位置上的数值和测试序列中最不可靠位全为0的度量,计算其他所 有测试序列的度量;(5. 3)计算候选码字的度量,测试序列译码完成后,根据软输入信息序列在错误位 置的数值,计算所有候选码字的度量;6、减少候选码字个数,在候选码字中保留2或3个度量最小的码字,剔除其他候选 码字;7、根据候选码字的度量确定判决码字;8、计算判决码字中每一码元的外信息。
本发明与现有技术相比,存在以下优点第一,本发明提供的编码方法,相比于现有技术采用逐行编码再逐列编码的实现 方法,只需增加少量的存储资源,就可以使数据吞吐量提高1倍左右,编码延迟减少。第二,本发明提供的译码方法能够采用流水线的实现方式,减少译码延迟,并且能 够节省大量的逻辑资源和存储资源,尤其在分量码码长较大的情况下,能够很好的平衡复 杂度和数据吞吐量。



图1是本发明的编码流程图。图2是本发明所采用的缩短Turbo乘积码的矩阵结构。图3是本发明的译码流程图。图4是本发明具体实施方式
中缩短Turbo乘积码的性能曲线。
具体实施例方式本发明所采用的缩短Turbo乘积码的矩阵结构如图2所示,(H^k1)和(n2,k2),ni, kji = 1,2)分别表示两个分量码的码长和信息位长度,其中分量码选用BCH码或扩展BCH 码。将前I1行中每一个分量码的前I2位信息比特置为零,得到两个缩短码Oi1-I1, Ic1-I1) 和(n2-l2,k2-l2)。缩短分量码的生成多项式与原码相同,因此可以采用与原码相同的编码 方法,只是将缩短的信息序列都考虑为零,而且这些信息序列不参与传输。为了进一步说明本发明的编译码方法,本发明以(1695,848)缩短Turbo乘积码为 例,其中行分量码和列分量码均采用(64,57,4)扩展BCH码,即H1 = n2 = 64,Ic1 = k2 = 57 和 Ii = I2 = 49。参照图1和图2,以信息序列逐行输入为例,来说明编码的具体实施步骤步骤一,行编码。对于任意一行信息序列m = (Hi1, L,Hij, L,m57),按比特顺序依次 输入分量码编码电路,进行行编码,产生分量码码字c = (Cl,L,Cj,L,C64),并按比特顺序依 次读出。对于前49行的分量码,因为缩短信息位全为零,所以分量码编码电路只需要读入 缩短信息位除外的信息序列。步骤二,并行编码。接收到行编码产生的分量码码字c = (C1, L,Cj, L,C64)后,进 行并行编码,具体步骤是(2. 1)判断分量码码字中任意比特Cj的位置信息。比特的位置信息是在编码矩阵 中,该比特所在列的列号,例如比特…的列号就是j。(2. 2)读取状态信息。根据码字c中各比特的位置信息读取该比特所在列的分量 码编码电路上一次更新后的状态,分量码编码电路的初始状态设置为全0。(2. 3)更新状态信息。根据比特值和状态,经过分量码编码电路后得到本次列分量 码编码的状态信息。步骤三,判断编码是否完成。(3.1)如果信息序列m是第57行,表示编码完成,输出码字。(3. 2)如果信息序列m不是第57行,表示编码未完成,则转回到第一步继续进行下 一行的编码。
在编码过程中采用的分量码编码电路是基于(63,57,3) BCH码生成多项式g(x)= χ6+χ+1的除法电路。参照图3,对本发明译码方法的具体步骤做进一步的描述 步骤一,生成软输入信息序列的硬判决序列。对从信道中接收到的(或通过迭代 获得的)任意一行或者列的软输入信息序列1 = (Y1Iyj^y64),如果Yj彡0,判为Zchj = 1,如果Yj P0,判为Zthj = 0,得到硬判决序列Ztl = (zoa, L,Z0, j, L,z0j64)。对于缩短分量码 的软输入信息序列,添加修正值a作为软输入信息序列中缩短位的信号,且令a的取值范围 为a e [_p-l,-p+l],其中,ρ表示最不可靠位的个数。步骤二,在软输入信息序列中选择最不可靠位。比较软输入信息序列中各信号绝 对值|y」的大小,从中选出P个绝对值最小的信号作为最不可靠位,P—般取值为2,3或4。步骤三,根据硬判决序列和最不可靠位生成测试序列。用所有的“0”和“1”比特 排列去替代硬判决序列中最不可靠位的值,从而得到所有的测试序列Zi,l < i < 2P。步骤四,对测试序列译码生成候选码字。(4. 1)计算硬判决序列的伴随式。对软输入信息序列进行硬判决译码,可以得到硬 判决序列的伴随式。(4. 2)根据分量码生成多项式g(x) = x6+x+l得到与最不可靠位相应的本原域元
素幂的向量。(4.3)计算测试序列的伴随式。根据硬判决序列的伴随式,计算在最不可靠位全 为0的测试序列的伴随式。从最不可靠位全为0的测试序列开始,依次判断软输入信息序 列在最不可靠位上的符号,如果其值为正数或零,将与此最不可靠位的本原域元素的幂向 量按位异或,得到新的伴随式;否则,保持伴随式不变。检查所有的最不可靠位上的符号后 可以得到所有测试序列的伴随式Si,1 < i < 2P。(4. 4)生成候选码字。根据伴随式Si纠正测试序列的错误位置,得到所有的候选 码字Vi, 1彡i ( 2P。步骤五,计算候选码字和软输入信息序列的度量。(5. 1)计算硬判决序列的度量,即欧氏距离。(5.2)计算测试序列与软输入信息序列的度量。根据软输入信息序列在最不可靠 位置上的数值和硬判决序列的度量,计算测试序列中最不可靠位全为0的度量。根据软输 入信息序列在最不可靠位置上的数值和测试序列中最不可靠位全为0的度量,计算其他所 有测试序列的度量。(5. 3)计算候选码字的度量。测试序列译码完成后,根据软输入信息序列在错误位 置的数值,计算所有候选码字的度量。步骤六,减少候选码字个数。在2P个候选码字中保留h个度量最小且互不相同的 码字,剔除其他候选码字,h 一般取值为2或3。步骤七,根据候选码字的度量确定判决码字。在候选码字中,将度量最小的作为判 决码字V。步骤八,计算判决码字中每一码元的外信息。对于判决码字中的每一码元\,在候 选码字集中寻找它的竞争码字椒,要求椒是候选码字集中除ν外与接收序列y之间的欧氏距 离最小,且满足^^力。码元Vj的外信息由下式计算得出
权利要求
一种缩短Turbo乘积码的编码方法,包括如下步骤(1)对待编码信息序列进行行或列编码;(2)对行或列编码产生的每一个行或列分量码码字进行并行编码(2.1)判断分量码码字中各比特的位置信息;(2.2)读取状态信息,根据比特的位置信息读取该比特所在列或列的分量码编码电路上一次更新后的状态;(2.3)更新状态信息,根据比特值和状态,经过分量码编码电路后得到本次列或列分量码编码的状态信息;(3)判断编码是否完成(3.1)若待编码信息序列完成最后一行或列的编码,则判编码已完成,并输出Turbo乘积码的码字;(3.2)若待编码信息序列未完成最后一行或列的编码,则判编码未完成,转回到步骤(1)继续进行下一行或列编码。
2.根据权利要求1所述的缩短Turbo乘积码的编码方法,其特征在于所述步骤(2.1) 中的比特位置信息为该比特在编码信息序列中的列号或行号。
3.根据权利要求1所述的缩短Turbo乘积码的编码方法,其特征在于所述步骤(2.2) 中读取状态信息时分量码编码电路的初始状态设置为全0。
4.缩短Turbo乘积码的译码方法,包括如下步骤(1)生成软输入信息序列的硬判决序列;(2)在软输入信息序列中选择最不可靠位;(3)根据硬判决序列和最不可靠位生成测试序列;(4)对测试序列译码生成候选码字(4. 1)对软输入信息序列进行硬判决译码,可以得到硬判决序列的伴随式;(4. 2)根据分量码生成多项式得到与最不可靠位相应的本原域元素幂的向量;(4. 3)根据硬判决序列的伴随式,计算在最不可靠位全为0的测试序列的伴随式,从最 不可靠位全为0的测试序列开始,依次改变在最不可靠位上的值,计算得到其他测试序列 的伴随式;(4. 4)根据伴随式纠正测试序列的错误位置,得到所有的候选码字;(5)计算候选码字和软输入信息序列的度量(5. 1)计算硬判决序列和软输入信息序列的度量;(5. 2)计算测试序列与软输入信息序列的度量,根据软输入信息序列在最不可靠位置 上的数值和硬判决序列的度量,计算测试序列中最不可靠位全为0的度量,根据软输入信 息序列在最不可靠位置上的数值和测试序列中最不可靠位全为0的度量,计算其他所有测 试序列的度量;(5. 3)计算候选码字的度量,测试序列译码完成后,根据软输入信息序列在错误位置的 数值,计算所有候选码字的度量;(6)减少候选码字个数,在候选码字中保留2或3个度量最小的码字,剔除其他候选码字;(7)根据候选码字的度量确定判决码字;(8)计算判决码字中每一码元的外信息。
5.根据权利要求4所述的缩短Turbo乘积码的译码方法,其特征在于所述步骤(1) 中对于缩短分量码,添加修正值a作为软输入信息序列中缩短位的信号,a的取值范围为 ae [_p-l,-p+l],其中,ρ表示最不可靠位的个数。
6.根据权利要求4所述的缩短Turbo乘积码的译码方法,其特征在于所述步骤(6)中 保留的候选码字的度量互不相同。
全文摘要
本发明涉及一种缩短Turbo乘积码的编译码方法。编码方法的具体步骤包括对待编码信息序列进行行或列编码;对行或列编码产生的行或列分量码码字进行并行编码;判断编码是否完成。译码方法的具体步骤包括生成软输入信息序列的硬判决序列;在软输入信息序列中选择最不可靠位;根据硬判决序列和最不可靠位生成测试序列;对测试序列译码生成候选码字;计算候选码字和软输入信息序列的度量;减少候选码字个数;根据候选码字的度量确定判决码字;计算判决码字中每一码元的外信息。编码方法能够提高数据吞吐量,减少编码延迟。译码方法能够节省大量的逻辑资源和存储资源,尤其在分量码码长较大的情况下,能够很好的平衡译码复杂度和数据吞吐量。
文档编号H03M13/29GK101958720SQ20101028918
公开日2011年1月26日 申请日期2010年9月24日 优先权日2010年9月24日
发明者吴侃侃, 周博, 白宝明, 童胜 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1