新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于CMMB系统的LDPC译码器的设计与实现

基于CMMB系统的LDPC译码器的设计与实现

作者:时间:2011-03-28来源:网络收藏

摘要:根据码校验矩阵的结构特点,提出了一种部分并行译码结构的实现方法,并在XILINX的VirtexIV的XC4VLX80型FPGA上实现了这种结构。该设计充分利用了校验矩阵的规律,采用了一种适当的硬件结构和独特的存储器调用控制策略,故可在保证高性能和较大吞吐率的情况下,以较少的硬件资源实现两种码率的复用。
关键词:;中国移动多媒体广播;码;部分并行结构;

0 引言
低密度奇偶校验(Low Density Parity Check,LDPC)码是由Gallager博士在1962年首次提出来的,由于LDPC码的误码性能能够逼近香农限,因而在无线通信、卫星通信等领域都得到了较多应用。中国移动多媒体广播()中使用的就是LDPC纠错编码。在CMMB标准中,LDPC码长为9216,可支持1/2和3/4两种码率。作者通过深入分析CMMB中LDPC码校验矩阵的特点,采用了一种合适的硬件实现结构,因而在保证较高性能和较快译码速度的情况下,以较低的硬件资源实现了两种码率的复用。

1 CMMB标准中的LDPC译码算法
1.1 CMMB中LDPC码的主要特征
CMMB采用规则的LDPC码,两种码率的LDPC校验矩阵有类似的规律。CMMB中1/2码率的LDPC码校验矩阵为一个4608x9216的矩阵,进一步可划分为256个18x9216行子矩阵。其中下一个行子矩阵是上一个行子矩阵的向右循环移36位,每一个行子矩阵的行重都为6;也可以把它划分为256个4608x36列子矩阵,其中后一个列子矩阵是前一个列子矩阵的向下循环移18位,每一个列子矩阵的列重都为3。同理,3/4码率的矩阵也可以进行类似的划分,可划分为256个9x9216的行子矩阵,每个行子矩阵的行重为12;当然,也可以分为256个2304x36,列重为3的列子矩阵。从校验矩阵的特点可以看出,只要存储器能存储一个行或列子矩阵的非零元素,则利用这些非零元素,就可以恢复出整个校验矩阵,从而进行译码。而且更为重要的是,对于同种码率,行子矩阵组和列子矩阵组之间在非零元素位置上有着潜在的对应关系。本文正是通过挖掘这种潜在的对应关系,设计出了一种独特的存储器调用控制策略,并成功实现了复用RAM的同时,满足了两种码率的硬件结构。
1.2 LDPC译码算法
常用的LDPC码译码算法为置信度传递解码算法(BP decoding)。该算法相对比较成熟,性能非常优异。但是,BP算法中的f(x)函数包含对数运算和指数运算,这些复杂运算大大增加了BP的运算量和复杂度。Fossorier等在1999年提出了一种min-sum译码算法,即利用一种近似的方法来处理BP算法中的f(x)函数,以将对数和指数运算化简为乘法和比较运算,从而减少了译码器的运算量,但该方法在性能上也有一定损失。后来,Jinghu Chen和Fossorier又提出了修正的min-sum算法。在码长较长的情况下,修正的min-sum算法比BP算法性能只差0.03~0.05 dB,而在算法复杂度上则只需要乘以一个常量修正因子。基于以上分析,本文采用修正的min-sum算法来进行迭代更新,此更新分为校验节点更新和变量节点更新。其迭代译码步骤分为两步。
第一步是初始化,即对每个m和n,a.JPG
其次是迭代过程。而每次迭代又包括以下3个步骤:
b.JPG
从而达到预定的迭代次数。否则重新更新Qm=n并开始下一轮迭代。上面式中的k表示第k次迭代。
记集合N(m)表示与校验节点相连的所有变量节点;集合M(n)表示与变量节点相连的所有校验节点;N(m)\n表示N(m)中除去变量节点n,同理,M(n)\m表示M(n)中除去校验节点m。α一般取值为0.6~0.9,本中通过C模型浮点和定点仿真,可以得到α的最佳取值约为0.8,为了便于移位实现,取值为0.7875或者0.8125均可。

本文引用地址:http://www.eepw.com.cn/article/191280.htm


上一页 1 2 3 下一页

关键词: CMMB LDPC 系统 译码器

评论


相关推荐

技术专区

关闭