DVB-S2 的纠错编码技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DVB-S2的纠错编码技术
李娟 门爱东
本文作者李娟女士,中国东方通信卫星有限责任公司工程师;门爱东先生,北京邮电大学电信学院多媒体通信中心教授。
关键词:DVB-S2编码 BCH LDPC双向图 迭代译码
DVB-S2编码方案概述
随着数字通信技术和大功率卫星技术的
发展,欧洲DVB组织在第一代DVB-S的基
础上,又制定了第二代卫星数字视频广播系统
标准,即DVB-S2。为了在恶劣的卫星信道中
可靠地传输信息,如同DVB-S标准,DVB-S2
的信道纠错编码也采用了内码和外码的级联
纠错编码,但具体的编码算法不同。DVB-S2
的编码模块由外码BCH、内码LDPC(Low
Density Parity Check)和比特交织三部分组成,
如图1所示。
DVB-S2的纠错编码部分的数据帧结构如图2所示,输入为Kbch bit的基带帧(BBFrame),输出为nldpc bit的纠错编码帧(FECFrame)。外码BCH的校验位(BCHFEC)附加在BBFrame 后面,而内码LDPC的校验位(LDPCFEC)将附加在BCHFEC域后面。
为了适应不同的应
用情况,DVB-S2标准
设置了两种纠错编码
帧的长度:64800比特
和16200比特,分别称
为正常FECFrame和短
小FECFrame,代表
LDPC纠错编码后的码
字长度。不同码长的BCH和LDPC码组合,得到了各种编码码率,分别为1/4、1/3、2/5、1/2、3/5、2/3、3/4、4/5、5/6、8/9、9/10等。DVB-S2系统具体的纠错编码参数见表1和表2。
外码BCH
BCH码是1959年B.C. Bose、D.K. Ray-Chandhari和A. Hocquenghem发明的一类能纠多个随机错误的循环码,有严格的代数结构,在短、中等码长下其性能接近理论值。BCH
码是用一个域GF(2m)中的n级元素α
的d-1个连续幂次为根的多项式生
成的循环码。一个纠t个符号错误的
BCH码有如下参数:
n=2m-1
d min=2t+1
n-k≤mt
为了适应传输帧结构的长度,在
实际系统中可以采取缩短的BCH
码。
BCH码纠错能力强,构造方便,
编/译码方法简单,在许多领域得到
了应用,比如在目前国际数字电视标
准中广泛使用的RS码就是一类多进
制BCH码。
BCH码在DVB-S2中用作外码。
纠t个错误的BCH编码器的生成多
项式是通过把表3中前t个多项式相
乘而得到的。BCH编码参数如表3
和表4所示。
内码LDPC
LDPC编码原理
1963年Robert Gallager在其博
士论文中提出了规则LDPC码,但因当时未能有效地实现而一度沉寂,在90年代Turbo码热潮中获得了新生,1995年Mackyay DJ和Neal RM重新介绍了LDPC而使之成为热点。
LDPC码是很长的线性分组码,其校验矩阵H是稀疏矩阵,即H由大量的0和小量的1组成。每个码字满足一定数目的线性约束,而约束的数目非常小,易于译码。
(1)规则LDPC码
Robert Gallagher定义的(n, p, q)LDPC码是码长为n的码字。在它的校验矩阵H中,每行和每列中1的数目(码重)是固定的,每一列中1的个数(重量)都是γ,每一行的个数(重量)
都是ρ,γ≥3。任意两行(或两列)之间1的重叠数目≤1,称之为行列约束(Row-Column Constraint)。如果校验矩阵H的每一行是线性独立的,那么码率r=(ρ-γ)/r,否则码率r=(ρ-γ')/ρ,其中γ'是校验矩阵H中行线性独立的数目。
图3是由Robert Gallagher构造的一个(20,3,4)LDPC码的校验矩阵,它的d min=6,设计码率为1/4,实际码率为7/20。这种校验矩阵中,每行和每列中1的数目(汉明重量)相同的LDPC 码被称为规则LDPC码(Regular LDPC Code)。由规则LDPC码的校验矩阵H得到如图4所示的双向图(Bipartite Graph)。图4下方每一个节点x n代表的是变量节点(Variable Node),上方每一个节点z m代表的是校验节点(Check Node)。把某列x n与该列中非零处的z m相连,例如对于x2列,这列中3个1分别对应于z1、z7和z12行,这样就把x2和z1、z7和z12连接起来。从行的角度考虑,把某一行z m中非零点处的x n相连,得到同一个双向图。
在规则LDPC码中,与每个变量节点相连边的数目是相同的,校验节点也具有相同的特点。在译码端,把与某一个校验节点z m相连的x n求和,结果若为0,则无错误发生。
(2)非规则LDPC码
非规则LDPC码,其校验矩阵H中每行中1的个数不同,每列中1的个数也不一样。其编码方法与规则LDPC码基本相同,而非规则双向图中信息节点之间、校验节点之间的度有可能不同。因此,对于非规则图构造的LDPC码,它的校验矩阵H的列重量不相同,是一个变化的值,这是非规则码与规则码的重要区别。非规则码的性能要好于规则码。最近几年的研究表明,对于在GF(8)构造的非规则码,它的性能要比Turbo码还好,其性能非常接近Shannon限。
LDPC译码原理
LDPC较通用的一种译码算法是置信传播算法(Belief Propagation Algorithm)。在BP算法中,各个节点之间传递的信息是概率或置信信息。BP算法是与双向图紧密结合的,各边上传递的消息叫做Message,分Check to Variable和Variable to Check两种Message。
(1)Message的含义
如图4所示,假设bit‘0’映射为+1,则x=+1;bit‘1’映射为-1,则=-1。
Check to Variable:R a mn(a=+1或a= -1)是校验节点z m向变量节点x n传递的校验信息,表示z m根据除x n外其他相邻变量节点{x k:k≠n,k∈N(m)}当前状态向x n宣称的“x n=a使z m满足”的可信度。
Variable to Check:Q a mn(a=+1或a=-1)是变量节点x n向校验节点z m传递的变量信息,表示x n根据除z m外其他相邻校验节点{z l:l≠m,l∈M(n)}和初始概率消息P a n向z m宣称的“x n=a”的可信度。
(2)置信传播算法迭代过程
初始化:计算初始消息{P a n}和初始化{R a mn}。
迭代消息传递和更新:阶段1,各个P n和z m节点向其所有相邻变量节点x n分别传递消息P a n和R a mn,而各个x n节点根据接收消息更新Q a mn;阶段2:各个节点x n向其所有相邻校验节点z m传递已更新的消息Q a mn,而各个z m节点根据接收消息更新R a mn。
迭代终止:x n节点根据所有接收消息计算最终消息Q a n。
(3)LDPC译码一般采取的迭代终止策略
每轮迭代结束时,计算最终消息并判决
^
X,计算伴随式
^
X·H T。如果伴随式为零向量,
则宣告成功,终止迭代;否则取前一次计算得出的值,转到第二个步骤继续迭代。若迭代次数达到预先设定的最大次数I max仍未成功,则根据最终消息判决得x,终止迭代,译码不成功。