《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > IEEE 802.16e标准中LDPC编码的实现与仿真
IEEE 802.16e标准中LDPC编码的实现与仿真
2014年电子技术应用第9期
宁 平
上海航天电子技术研究所,上海201109
摘要: 根据IEEE802.16e标准中LDPC编码的定义,提出了一种利用高速状态机来实现编码的快速算法。在Quartus II下使用Verilog HDL实现了该算法并进行了时序仿真。仿真结果表明,设计具有良好的实时性,克服了以往设计中预处理复杂、消耗逻辑资源多的缺点。最后利用MATLAB对该设计与DVB-S2缩短码的BER性能进行了比较,分析了制约DVB-S2缩短码性能的因素。
中图分类号: TN919.3+3
文献标识码: A
文章编号: 0258-7998(2014)09-0101-04
The implementation and simulation of IEEE 802.16e LDPC coding
Ning Ping
The Institute of Shanghai Aerospace Electronics Technology,Shanghai 201109,China
Abstract: According to the definition of IEEE802.16e LDPC coding, this paper proposes a high-speed state machine to achieve fast coding algorithm. This algorithm is realized under the Quartus II environment by using Verilog HDL and timing simulation is also made. The results show that the design has a good real-time performance. It overcomes the shortcomings of complex pre-processing and consumption of logic resources. Finally, the BER performances between this design and shortened DVB-S2 codes are compared under MATLAB. The facts which can restrict shortened DVB-S2 code performance are also analyzed.
Key words : LDPC coding;IEEE802.16e standard;base check matrix

    LDPC(Low Density Parity Check Code)码是一种性能优异的线性分组码,其性能非常接近于Shannon极限且具有很强的纠错能力。但自LDPC码被发明以来就存在一个阻碍其发展的巨大障碍。众所周知,一般的线性分组码是通过其生成矩阵实现编码。而LDPC码的校验矩阵虽然是稀疏的,但生成矩阵却不是稀疏矩阵。由于LDPC码的编码长度都很长,因此复杂的生成矩阵为编码带来了巨大困难。后来,人们利用其校验矩阵的特点实现了快速编码。即便如此,当码长很长时编码所需的存储空间仍然非常庞大,学者们也在不断探索高性能的编码方法。

    目前,LDPC码已开始逐渐应用于空间通信、光纤通信、数字视频和音频广播等领域。LDPC码的编码标准主要有:DVB-S(DigitalVideoBroadcasting-Sa-tellite)标准、DVB-S2[1]标准、CCSDS(Consultative Committee for Space Data Systems)标准[2]、GB20600标准[3]、IEEE802.16e标准[4]等。LDPC编码已经在IEEE802.16e标准中作为专用传输码使用。DVB-S2是新一代数字卫星广播的标准,与DVB-S标准相比,其传输容量增益可达30%。CCSDS标准中的LDPC码包括近地和深空应用。GB20600标准中的LDPC码主要用于数字电视地面广播系统。本文主要研究IEEE 802.16e标准中LDPC码快速编码的实现方法,并将其与DVB-S2标准的LDPC缩短码的性能进行比较。

1 IEEE802.16e标准中的LDPC码校验矩阵的构造方式

    IEEE802.16e标准中定义的LDPC码是一种准循环的非规则LDPC码,共有4种速率[4]。每一种速率都有相应的校验矩阵H。Hb是H的基校验矩阵,Hb经过扩展后可得到H,Hb的尺寸为mb×nb,具体构成见式(1)。nb的长度固定为24,mb的长度根据码速率不同而异。Hb1是一个mb×(nb-mb)矩阵。Hb2是一个mb×mb矩阵。q称为扩展系数,Hb可通过mb·q×nb·q的扩展方式获得校验矩阵H。

    tx5-gs1.gif

    Hb1中的元素由-1或非负整数组成,若为-1,则校验矩阵H相应的位置是全0矩阵;若为非负整数,则校验矩阵H相应的位置是单位矩阵E进行非负整数次右移所得的矩阵。Hb2的第一列中h(1)、h(r)、h(mb)为非负整数,且h(1)=h(mb)。r的取值范围为2≤r≤mb-1,其具体值由IEEE802.16e标准指定。Hb2除第一列外,其余部分构成准双对角线结构,两条准对角线上的元素为0,其他位置为-1。Hb2的元素构成见式(2)。

tx5-gs2.gif    

    根据IEEE802.16e标准,基矩阵Hb的扩展系数q共有19种取值,分别对应19种码长,最小为24,最大为96,具体的扩展规则见参考文献[4]。设基校验矩阵中处于位置(i,j)的元素为q(i,j)。以1/2速率的LDPC码为例,当q=96时,1/2速率的LDPC码的基校验矩阵为式(3),q(i,j)的更新方法见式(4),tx5-gs2-1.gif表示向下取整。

tx5-gs3.gif

tx5-gs4.gif

2 IEEE802.16e标准中LDPC码的FPGA实现

2.1 LDPC码的快速编码算法

tx5-gs4-1.gif

    tx5-gs5.gif

    将线性方程组式(5)中的各行都加在第一行,可推出:

tx5-gs6-9.gif

2.2 快速编码算法的FPGA实现

    以q=24、速率为1/2的LDPC码为例,其基校验矩阵根据式(3)、(4)计算可得到式(10),其中mb=nb-mb=kb=12。

tx5-gs10.gif

    根据式(6)可推得:

tx5-gs11.gif

    设输入序列s的长度为mb·q,每个时钟上升沿输入的位宽为q,即每次输入为si。可以定义kb个寄存器ZH,每个寄存器的位数为q位。利用上述寄存器来存储输入序列与基矩阵每一列的乘积,这个乘积在每个时钟周期进行更新。在更新时需计算当前值与乘积值的异或。在校验位计算中经常需要计算tx5-gs11-1.gif的乘积,tx5-gs11-2.gif表示基校验矩阵Hb1中位于(i,j)位置的元素。由于该元素表示单位矩阵的移位,所以其与输入数据序列sj的乘积等效为输入数据序列的循环移位。当单位矩阵是右移时,乘积等效为输入序列的循环右移;当单位矩阵是左移时,乘积等效为输入序列的循环左移。利用这个特性可以大大简化序列与矩阵之间的乘法运算。图1表示编码的详细计算流程。在序列s12输入后,每个ZHi(i=1,2…12)寄存器中就会得到tx5-gs11-3.gif 

tx5-t1.gif

    将上述编码方法用HDL在Quartus II中实现,并分别在EP2C70F896C6、EP2S15484C3上实现综合和布线。逻辑资源占用情况如表1所示。对于不同的器件,消耗的逻辑资源各异,同时布线后逻辑单元的延迟也不尽相同。使用Stratix II系列的器件相比Cyclone II系列的器件的时钟频率提高了约50%。可以预见,如果提升输入和输出的位宽,逻辑单元间附加延迟会导致时钟频率略有降低,但由于并行度的增加,将显著提升数据吞吐速率。

tx5-b1.gif

    在EP2C70F896C6上的时序仿真如图2所示。在仿真开始前首先复位使系统进入初始状态。工作时钟为50 MHz,输入序列s1=FF0000,s2=s3=…=s11=000000,s12=FFFFFF。输出的校验码序列为p1=F87C7B,p2=F0F8F7,…。在原码输出与校验位输出之间有一个等待周期。与参考文献[5]相比,考虑到预处理的时间以及输入和输出均需要大长度高速串/并、并/串转换,实际的系统性能会有一定程度下降。与参考文献[5]、[6]相比,本设计利用高速状态机实现,具有实时性强,不需要进行大长度串/并、并/串转换的优点,而且也不需要对基矩阵进行预处理和分割,对输入/输出的制约小,具有较高的性能。

tx5-t2.gif

3 IEEE802.16e和DVB-S2标准ldpc码的性能比较

    本设计实现了q=24下,1/2速率的IEEE802.16e标准的LDPC码的快速编码。根据图3左图所示,在q=24时其HT·H结果中只有主对角线上的元素大于1,其他元素均小于等于1。根据参考文献[7],本校验矩阵中无4环,具有良好的译码性能。DVB-S2标准的LDPC码分为长码和短码两种,长度分别为64 800 bit和16 200 bit。由于码长较长,LDPC码编解码器实现具有相当难度,因此将本设计与DVB-S2标准的LDPC缩短码比较,缩短方法见参考文献[8]。由于长度24·q=576的IEEE802.16e标准LDPC码没有适当的q1值可使DVB-S2缩短码的码长与之相等,取q1=15,速率为1/2,则DVB-S2缩短码的码长为n=600。在高斯白噪声信道中进行性能仿真。仿真信道的调制方式为BPSK,采用BP译码算法,最大迭代次数为500次。对于200帧随机数据,每帧长度分别为288 bit和300 bit,分别进行编码调制和接收译码。最后的仿真曲线如图4所示。可见在码长基本相同的条件下,IEEE802.16e标准的LDPC码较DVB-S2缩短码具有优异的BER性能。图3右图是n=600的情况下DVB-S2缩短码的HT·H数值分布。由图中可见有大量4环位于校验矩阵H中,这也是其BER曲线中存在误码平台的原因。

tx5-t3.gif

tx5-t4.gif

    本文对IEEE802.16e标准的LDPC码的快速编码算法进行了研究,并在FPGA上实现了q=24、n=576、速率为1/2的LDPC码快速编码器。时序仿真的结果显示该编码器具有良好的实时编码性能,资源占用少,性能优良。同时,该编码器具有良好的可扩展性。当q不同时,只要增加并行输入输出的位宽和内部寄存器位数即可灵活改变码长。其误码率在相同的信噪比下优于长度相近的DVB-S2标准的LDPC缩短码。因此,该编码器具有良好的实用价值。

参考文献

[1] DVB-S2 standard draft ETSI EN 302 307 V1.1.1[S].2004.

[2] CCSDS131.1-0-2.Low density parity check codes for use in near-earth and deep space applications[S].CCSDS,2007.

[3] 中华人民共和国国家标准.数字电视地面广播标准(GB20600)[S].2006.

[4] IEEE P802.16e/D8[S].IEEE Standard for Local and Metropo-litan Area Networks Part 16:Air Interface for Fixed and Mobile Broadband Wireless Access Systems,May 2005.

[5] 李超,石磊.基于IEEE802.16e标准的LDPC编码器设计与实现[J].电子科技,2011,24(6):40-42.

[6] 俞华梁,毛志刚,张函隽.IEEE802.16e标准的LDPC编码器设计及硬件实现[J].信息技术,2008(4):63-66.

[7] XIAO Y,LEE M H.Low complexity MIMO-LDPC CDMA systems over multipath channels[J].IEICE Trans.,2006,89(5):1713-1717.

[8] 肖扬.Turbo与LDPC编解码及其应用[M].北京:人民邮电出版社,2010.

此内容为AET网站原创,未经授权禁止转载。