您现在的位置:融合网首页 > 广电 > CMMB >

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

来源:C114 作者:秩名 责任编辑:融合网 发表时间:2011-04-03 16:10 阅读:
核心提示:低密度奇偶校验(Low Density Parity Check,LDPC)码是由Gallager博士在1962年首次提出来的,由于LDPC码的误码性能能够逼近香农限,因而在无线通信、卫星通信等领域都得到了较多应用。

0、引言

低密度奇偶校验(Low Density Parity Check,LDPC)码是由Gallager博士在1962年首次提出来的,由于LDPC码的误码性能能够逼近香农限,因而在无线通信、卫星通信等领域都得到了较多应用。中国移动多媒体广播(CMMB)中使用的就是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,
其次是迭代过程。而每次迭代又包括以下3个步骤:


 

从而达到预定的迭代次数。否则重新更新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均可。

2、CMMB中LDPC译码器的硬件实现

2.1 译码器总体结构

LDPC码的译码器通常有串行结构、并行结构和部分并行结构等。根据校验矩阵的特点,LDPC部分并行译码结构可简单分为输入和输出存储单元、VNU(变量节点运算)单元、CNU(校验节点运算)单元和中间结果存储单元。其译码器结构如图1所示。为了便于ASIC实现,本文采用单端口RAM,每块RAM由一个控制器控制以实现不同码率的地址初始化、读RAM、写RAM等操作。(责任编辑:融合网)

今日头条

更多>>

热门关键字

关于我们 - 融合文化 - 媒体报道 - 在线咨询 - 网站地图 - TAG标签 - 联系我们
Copyright © 2010-2012 融合网|DWRH.net 版权所有 联系邮箱:dwrh@dwrh.net 京公网安备1101055274号 京ICP备11014553号
网站性能监测支持: