当前位置:首页 期刊杂志

一种交错并行高速TPC译码器的设计*

时间:2024-07-28

熊玉平

(中国船舶工业系统工程研究院,北京 100036)



一种交错并行高速TPC译码器的设计*

熊玉平**

(中国船舶工业系统工程研究院,北京 100036)

Turbo乘积码(TPC)作为一种高码率编码在带限通信系统中有着广泛的应用,但是大多数TPC译码器存在结构复杂、资源消耗高、处理时延大的问题。为此,提出了一种交错并行流水线处理结构的译码器,并通过译码过程中测试序列的合理排序以及使用相关运算代替最小欧式距离计算等算法优化设计,简化了译码器的实现复杂度,现场可编程门阵列(FPGA)资源消耗相比传统设计降低了35%,提高了译码速度。在Xilinx公司的FPGA芯片XC5VSX95T上完成了译码器的硬件实现,达到80 Mbit/s的译码速度,通过增加子译码器个数还可进一步提升译码吞吐率。

Turbo乘积码(TPC);交错并行结构;测试序列;相关运算

1 引 言

Turbo乘积码(Turbo Product Code,TPC)是一种采用Turbo迭代译码方式的乘积码,在高码率(码率大于0.7)应用中,比Turbo码、卷积Turbo码(Convolutional Turbo Code,CTC)等更有效,尤其在带限系统中,TPC码可以在较高的频带利用率下保证优异的误码性能[1-2]。同时,它在码率、硬件复杂度和译码性能方面也有较大的灵活性。目前,TPC码已广泛应用于数据传输系统中。

随着数据传输通信中高速需求的增加,TPC译码器的吞吐率成为制约其应用的一个关键瓶颈。为此,通常的高速TPC译码器是以简化或者改进算法牺牲部分性能为代价来提高速率,并且资源占用较多,结构不够灵活[3]。

针对这一问题,本文提出了一种新的交错并行译码器结构,在不损失性能的情况下极大地提高了译码速率,并且可以增加子译码器个数,能灵活地实现资源与速率的互换,为译码速率的进一步提升提供了途径。

2 TPC编码原理

TPC码由两个或多个简单的线性分组码串行级联构成,因此码率非常灵活。常用的子码有汉明码、扩展汉明码、BCH码、RS码等。下面以应用最多的二维乘积码为例来说明TPC码的编码过程。

如图1所示,首先将信息位组成一个k2×k1的矩阵,然后用分组码C1(n1,k1)对k2行信息位编码,得到一个包含行校验的k2×n1的矩阵;再用分组码C2(n2,k2)对n1列数据编码,得到最终的包含列校验和校验位的校验的n2×n1的码字矩阵。这里只是以先行后列的编码顺序介绍编码过程,先列后行的编码方式得到的码字矩阵是完全相同的。通常情况下,为降低复杂度,在实现过程中子码C1和C2会选择相同的分组码。

图1 TPC编码过程Fig.1 TPC encoding process

3 TPC译码算法

TPC码由线性分组码级联构成,因此TPC码的译码过程也就是线性分组码的译码。基于Chase算法的软输入软输出迭代译码算法具有复杂度低、性能好的优点,能够很好地应用于TPC码的译码[1,4]。其具体译码过程如下:

(1)找到接收序列y中可信度最低的p个比特位。

(2)根据p个不可靠位产生2p个错误图样ti=(t1,t2,…,tn),1≤i≤2p。即p个不可靠位上进行“0”“1”全排列,其他位置为0。

(3)根据错误图样得到2p个测试序列:zi=z0⊕ti,1≤i≤2p,其中z0是接收信号y的硬判决序列。

(4)对测试序列zi进行代数译码,得到候选码字集合Ω。

(5)将集合Ω中的码字做{0,1}到{-1,+1}的映射,然后寻找与接收序列y具有最小欧氏距离的码字作为译码输出。

为了进行迭代译码,我们还需要知道判决码字中每个码元的可信度,即计算码元的软信息。对于判决码字d中的每个码元di,要计算其软信息必须寻找与其对应的竞争码字,即除d以外与接收序列y的欧氏距离最小的码字c,且di≠ci。

当竞争码字存在时,码元di的外信息为

(1)

当竞争码字不存在时,

wi=β×di。

(2)

式中:β称为可靠因子,通常由实验确定。

TPC码的译码就是通过上述译码流程,经过行列译码两个阶段的循环迭代,最终得到译码结果。

4 TPC译码器的FPGA设计

4.1 传统译码器的设计

TPC码的译码器结构设计是高速译码设计的难点。串行迭代译码在译码过程中先进行行译码,然后再进行列译码,同一时刻只有一个子译码器在工作,当行列子码相同时,可以通过行列子译码器的复用节省资源,但译码时延较大,很难实现高速译码[5]。传统的高速译码器设计如图2所示,通过简单的多路译码器复用,同时对多路接收信号译码,用资源来换速度,要想提高吞吐率,资源的消耗会大大增加,并且行列子码不相同时会有部分译码模块处于空闲状态。Argon等[6]提出了一种并行迭代译码结构,在进行译码时行列子译码器同时工作,逐行和逐列译码过程中相互传递各自更新的外信息,因此不管行列子码是否相同,都需要两个子译码器。这种译码结构,每次行列译码时利用的外信息会减少,因此性能有所损失,但速率可以提高1倍。

图2 传统高速TPC译码器结构Fig.2 Traditional high-speed TPC decoder structure

4.2 交错并行译码器的设计

4.2.1 交错并行译码结构

为了提高译码速率的同时不损失译码性能,本文设计了一种交错并行迭代译码结构,充分利用行列子译码器的空闲时间进行两帧数据的译码,可以达到与并行迭代译码相同的速率,而性能与串行迭代译码相同,其结构如图3所示。

图3 交错并行译码结构Fig.3 Interleaved parallel TPC decoder structure

在交错并行译码结构中,接收到的信道软信息首先存储在信息存储RAM中,当存储完一个码字后,读取信道信息Y和译码外信息W(初始为0),经过信息交换及计算模块得到译码所需的软信息,首先送入行译码模块进行行译码,此时新到的接收序列存入另一块信息存储RAM中;上一个码字的行译码结束之后进入列译码阶段,而新到的码字开始进行行译码,之后由信息交换及计算模块控制两个码字在行译码和列译码模块中交替计算,同时对两个码字进行译码;最后由输出缓存模块对译码结果进行缓存并去除校验位输出。

交错并行译码与串行译码的译码流程相同,因此性能上不会有损失,但能够同时对两帧数据进行译码,因此总的吞吐量相当于串行译码的2倍,与并行译码相同。

4.2.2 译码量化

译码过程中处理的是接收到的软信息,是浮点数,因此在FPGA实现时要考虑数据的量化。图4给出了4次迭代译码时不同量化位宽的译码性能。

图4 不同量化位宽的译码性能Fig.4 Decoding performance of different quantization word length

从图中可以看到,在误比特率为10-5时,采用4 bit量化会带来大概0.3 dB的性能损失,而5 bit量化与浮点情况下性能非常接近,因此在译码数据处理中将使用5 bit量化。

4.2.3 高速子译码模块设计

要实现高速译码,必须在最少的时钟周期内完成子码的一次行(或列)译码,并且多行(或列)的译码要形成流水,以减少完整的行(或列)译码所用的时间。为了减小计算量,这里提出了使用相关运算来代替欧氏距离计算的新方法,把寻找欧氏距离的最小值转化为计算内积的最大值,译码运算量可显著减少。下面以行译码器为例,说明子译码器的工作流程,如图5所示。

图5 子译码模块算法流程Fig.5 Algorithm flow for sub-decoder module

本文采用的子码是(32,26)扩展汉明码,因此每32个软信息进行一次译码。图5所示的译码流程中虚线框将译码分为3个阶段。在译码的第一阶段,求最不可靠位是难点。如果采用传统的排序方法来求p个最不可靠位,则需要经过p轮比较运算,第i轮需要做32-i次比较,时延很大。这里我们采用图6所示的方法,以p=4为例来说明求最不可靠位的流程。

图6 最不可靠位计算流程Fig.6 Computation flow for most unreliable bits

图6所示的算法设计了4个比较器和4个缓存器结构,软输入数据串行进入,每个时刻都可以得到当前时刻可靠性最小的4个值,32个时钟周期后就可以求得4个最不可靠的比特位。

在第一阶段的第二步,要使用前面得到的最不可靠位来构造测试序列。如果按照常规的方法来构造测试序列,测试序列没有规律,每个测试序列在求相关值和伴随式时都需要单独运算,一个测试序列的计算需要32个时钟周期,2p个测试序列就需要32×2p个时钟周期,时延大,也不利于流水操作的实现。这里我们对最不可靠位进行格雷编码[7],这样相邻的两个测试序列只有一个比特不同,其相关值和伴随式通过式(3)和(4)计算得到:

vi+1=vi±xk,

(3)

si+1=si⊕H(k)。

(4)

式中:k表示相邻测试序列不同的比特位置,x是输入软信息,H为校验矩阵。这样,2p个测试序列的计算只需要2p个时钟周期。

第一个阶段求得的测试序列串行进入代数译码模块,依次对错误位置进行纠正并更新全校验位就可以得到候选码字及其相关度量。然后,再依次送入第三个阶段,采用与求最不可靠位相同的方法得到判决码字和竞争码字,最后进行外信息计算即完成一行子码的译码。从整个译码流程可以看到当前阶段数据的处理并不影响后续数据的处理,3个阶段可以实现流水操作,能够对数据进行连续处理,没有等待时间,因此可以大大提高译码速率。

5 TPC译码器的硬件实现

本文以扩展汉明码为子码,设计了(32,26)×(32,26)的TPC译码器,并在Xilinx的XC5VSX95T芯片上对其进行实现,译码采用5 bit量化,使用基于Chase算法的软输入软输出译码算法,应用4次迭代,主时钟为160 MHz,则单路译码器的吞吐率为80 Mbit/s。

表1给出了译码器的性能测试结果,与图4给出的仿真结果一致,性能没有损失。

表1 译码器误比特性能Tab.1 Error performance of decoder

表2给出了本文设计的译码器结构与文献[7]中并行译码器结构在相似吞吐率下的资源对比情况。从对比结果可以看出,本文设计的译码器具有明显的优势,在相似吞吐率下资源消耗可降低35%左右。

表2 译码器资源占用表Tab.2 Resource consumption of decoder

6 结 论

随着通信技术的发展和通信服务的多样化,人们对高速无线数据传输的需求不断增加,TPC码易于并行处理的结构特点决定了其在高速宽带数据传输中的重要意义。本文介绍了TPC编译码的基本原理,以(32,26)×(32,26)TPC码为例设计了可以实现高速处理的译码器结构。译码器采用交错并行流水线结构,并且译码流程也进行了优化,在不损失性能的情况下可以将译码速率提高1倍,在高速需求下还可以利用TPC码的并行结构,通过增加子译码器个数进一步提高译码吞吐率,扩展性好。目前,该译码器已经在实际项目中应用,并且性能优异。

[1] ARGON C, MCLAUGHLIN S W. An efficient chase decoder for Turbo product codes[J]. IEEE Transactions on Communications, 2004, 52(6):896-898.

[2] SUN W C, CHEN Y M, WENG C Y, et al. An efficient implementation of the distance-based decoding for block Turbo codes[C]//Proceedings of 2013 IEEE 8th International ICST Conference on Communications and Networking in China.Guilin:IEEE, 2013:675-679.

[3] 张飞. 高速Turbo乘积码译码器设计与实现[D]. 北京:北京理工大学, 2015. ZHANG Fei. Design and implementation of a high-speed Turbo product code decoder[D]. Beijing: Beijing Institute of Technology, 2015. (in Chinese)

[4] LU P, LU E, CHEN T. An efficient hybrid decoder for block Turbo codes[J]. IEEE Communications Letters, 2014, 18(12):2077-2080.

[5] 陆连伟,冯占斌. Turbo乘积码译码器的并行实现方法[J]. 通信技术, 2014,47(12):1371-1374. LU Lianwei, FENG Zhanbin. A parallel implementation of TPC decoder[J]. Communications Technology, 2014, 47(12):1371-1374. (in Chinese)

[6] ARGON C, MCLAUGHLIN S. A parallel decoder for low latency decoding of Turbo product codes[J]. IEEE Communications Letters,2002,6(2):70-72.

[7] 李超. 基于FPGA的TPC编译码器设计与实现[J]. 电子科技, 2015,28(5):121-123. LI Chao. Design and realization of TPC coding based on FPGA[J]. Electronic Science & Technology, 2015,28(5):121-123. (in Chinese)

Design of a High-speed Interleaved Parallel TPC Decoder

XIONG Yuping

(Systems Engineering Research Institute of China State Shipbuilding Corporation(CSSC),Beijing 100036,China)

Turbo product code (TPC) is applied extensively in bandlimited communication systems as a high-rate code. But most TPC decoders have the problems of complex structure, high resource consumption and large processing latency.For these problems,this paper proposes an interleaved parallel decoder adopting pipelined architecture.By using the reordered test sequences and optimized algorithm such as replacement of the calculation of Euclidean distance by correlation operation, the complexity is reduced, processing latency is shortened and resource consumption is reduced by 35%. Based on the proposed structures, a hardware implementation of TPC decoder on Xilinx XC5VSX95T FPGA is presented. The results show that the proposed decoder architecture can achieve a decoding throughput of 80 Mbit/s, and the decoding throughput can be improved further by increasing the number of sub-decoders.Key words:Turbo product code(TPC);interleaved parallel architecture;test sequence;correlation operation

10.3969/j.issn.1001-893x.2017.07.017

熊玉平.一种交错并行高速TPC译码器的设计[J].电讯技术,2017,57(7):830-833.[XIONG Yuping.Design of a high-speed interleaved parallel TPC decoder[J].Telecommunication Engineering,2017,57(7):830-833.]

2017-03-20;

2017-06-15 Received date:2017-03-20;Revised date:2017-06-15

TN919.3

A

1001-893X(2017)07-0830-04

熊玉平(1963—),女,湖南人,硕士,高级工程师,主要研究方向为飞行器制造、航空保障等。

Email:595090920@qq.com

**通信作者:595090920@qq.com Corresponding author:595090920@qq.com

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!