首页> 中国专利> 一种速率兼容的低密度奇偶校验码编码方法和编码器

一种速率兼容的低密度奇偶校验码编码方法和编码器

摘要

本发明公开了一种速率兼容的低密度奇偶校验码的校验矩阵获取方法,包括:选择母码矩阵,并确定基础扩展矩阵的大小;将基础扩展矩阵划分为六个子矩阵,

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-02

    未缴年费专利权终止 IPC(主分类):H03M13/00 专利号:ZL200910085516X 申请日:20090525 授权公告日:20121212

    专利权的终止

  • 2012-12-12

    授权

    授权

  • 2009-12-23

    实质审查的生效

    实质审查的生效

  • 2009-10-28

    公开

    公开

说明书

技术领域

本发明涉及低密度奇偶校验码(LDPC)的编码技术,特别涉及一种速率兼容的LDPC编码方法和编码器。

背景技术

低密度奇偶校验码(Low-Density Parity-Check Codes,LDPC)是一类线性分组码,其校验矩阵可以用二进制矩阵表示,如图1所示,每一列有j个1(即列重量为j),每一行有k个1(即行重量为k),而其他元素都是零,其中j≥3,k>j,j、k为较小的整数。LDPC的校验矩阵还可以用一种双向图来表示,现在一般称为Tanner图。Tanner图与二进制校验矩阵是直接对应的。如图2所示,Tanner图中下面是变量节点(s0,s1,...,s9),可认为是一个码字中的一个比特、或校验矩阵中的一列;上面是校验节点(c0,c1,...,c4),每个节点代表一个校验方程、或校验矩阵中的一行。当码字中某一比特包含在某一校验方程中时,图2中相应节点之间存在连线。对于每个节点,与之相连的边的数目称为这个节点的度(degree)。低密度校验矩阵的结构对于码的性能有决定性的作用。不同的构造方法都是为了实现以下几个目的:优化非规则码节点度数分布;增大图中的周期,减少编码复杂度。Tanner图中的节点如果构建成如图3所示形式,则图中的短环周期为4。

目前,准循环的LDPC码被越来越多地应用到实际通信领域中。该码的校验矩阵是一个大小为(mb×z)×(nb×z)的矩阵,用H来表示,其中,z表示扩展因子。该校验矩阵H由许多大小为z×z的循环特征矩阵和全零阵构成。具体该校验矩阵的形成方式为:定义P是一个大小为z×z的单位矩阵的移位矩阵,其形式如下:

P=010...0001...0...............000...1100...1

上述P矩阵进行不同偏移量的循环移位得到多个大小为z×z的循环特征矩阵,校验矩阵H就由这些循环特征矩阵和全零阵构成。具体校验矩阵的形式如下式所示:

Hb=Ph00bPh01bPh02b...Ph0nbbPh10bPh11bPh12b...Ph1nbb...............Phmb0bPhmb1bPhmb2b...Phmbnbb

其中,表示对矩阵P进行hijb次循环移位后得到的矩阵,如果hijb=-1,Phijb=0.定义

Hb=h00bh01bh02b...h0nbbh10bh11bh12b...h1nbb...............hmb0bhmb1bhmb2b...hmbnbb

则校验矩阵可以表示为H=PHb,其中,校验矩阵H的大小为M×N,且N=nb×z,M=mb×z。将Hb称为校验矩阵的基础矩阵,根据该基础矩阵和替换矩阵P就可以得到校验矩阵。

基础矩阵Hb由两部分构成,Hb=[(Hb1)mb×kb|(Hb2)mb×mb],其中Hb1对应于系统位比特,Hb2对应于校验位比特。

速率兼容(Rate-Compatible,RC)的LDPC码在实际的分组数据通信中有着极其重要的作用。速率兼容码的一个主要优点就是只需一对编、译码器即可完成各个速率的编码、译码工作。除了具有低复杂度的优点外,速率兼容码还为自动重发请求(Automatic Repeat Request,ARQ)/前向纠错(ForwardError Correction,FEC)协议提供了一个有效的框架。

目前的速率兼容码,均是通过打孔方式实现的不同速率的编译码操作,这种方式不能保证在一个很大的码率范围内的LDPC码的性能。这是因为在高码率的情况下,打孔打掉了大部分译码器需要的软信息,从而导致译码失败。

发明内容

有鉴于此,本发明提供一种速率兼容的LDPC编码方法和编码器,利用由该方法和编码器进行速率兼容的LDPC编码,能够极大提高的编码性能。

为实现上述目的,本发明采用如下的技术方案:

一种速率兼容的低密度奇偶校验码的校验矩阵获取方法,包括:

选择母码矩阵,并确定基础扩展矩阵的大小(mb+Δm)×(nb+Δm),其中,Δm=Δx·mb,表示向上取整,R0为母码矩阵对应的码率,mb和nb分别为母码矩阵的行数和列数,R为目标码率;

将基础扩展矩阵Hextension划分为六个子矩阵,Hextension=HbsystemHbparityHupper_rightHlower_leftHlower_midHlower_right,其中,Hbsystem为所述母码矩阵的信息子矩阵,Hbparity为所述母码矩阵的校验子矩阵,Hupper_right、Hlower_left、Hlower_mid、Hlower_right大小分别为mb×Δm、Δm×(nb-mb)、Δm×mb、Δm×Δm;

将子矩阵Hupper_right的所有元素设置为-1;

对于子矩阵Hlower_mid,将预设的对角线上的所有元素设置为0,其余元素设置为-1,所述预设的对角线为连接第行第0列元素和第nmb-1行第列元素的对角线,以及连接第(n-1)mb行第的元素和第行第mb-1列元素的对角线,其中,n=1,...,Δx,且n为正整数;

构造子矩阵Hlower_right的掩码矩阵HMASKlower_right为具备多条对角线的下三角矩阵,所述多条对角线中包括掩码矩阵HMASKlower_right的主对角线和Δx条副对角线,其中,所述Δx条副对角线为所述矩阵Hlower_mid中所述预设对角线的延长线,所述多条对角线上的所有元素设置为1,其余元素设置为0;

根据子矩阵Hbsystem、Hbparity、Hupper_right、Hlower_mid和子矩阵Hlower_right的掩码矩阵确定子矩阵Hlower_left的掩码矩阵HMASKlower_left的度分布,构造掩码矩阵HMASKlower_left

将掩码矩阵HMASKlower_right中所有取值为0的元素在子矩阵Hlower_right中对应的元素设置为“-1”,将矩阵HMASKlower_right中主对角线上的元素在子矩阵Hlower_right中对应的元素设置为“0”,将掩码矩阵HMASKlower_left中所有取值为0的元素在子矩阵Hlower_left中对应的元素设置为“-1”;根据最小环长最大化准则,为矩阵HMASKlower_right中副对角线上的元素在矩阵Hlower_right中对应的元素以及矩阵HMASKlower_left中取值为“1”的元素在子矩阵Hlower_left中对应的元素设置对应的偏移量;

将确定的六个子矩阵进行合并得到所述基础扩展矩阵;

利用当前扩展因子z对所述基础扩展矩阵进行修正处理,并利用大小为z×z的替换矩阵P对修正后的基础扩展矩阵进行扩展,得到校验矩阵,其中,表示向上取整,K为当前编码的信息比特长度,kb=nb-mb

利用得到的校验矩阵对待编码数据进行LDPC编码。

较佳地,根据最小环长最大化及短环个数最小化准则,构造掩码矩阵HMASKlower_left,满足最小环长大于等于6。

较佳地,根据hijlower_left=(C1×i2×j2+C2×i2×j+C3×i×j2+C4×i2+C5×j2+C6×i×j+C7×i+C8×j+C9)mod(zmax)

hijlower_right=(D1×i2×j2+D2×i2×j+D3×i×j2+D4×i2+D5×j2+D6×i×j+D7×i+D8×j+D9)mod(zmax)配置整数系数C1,...,C9,D1,...,D9,使所述基础扩展矩阵的最小环长大于等于6,其中,C1,...,C9为非负整数,zmax为扩展因子的最大值,hi′j′lower_right为子矩阵Hlower_right中第i′行第j′列的元素取值,且i′和j′为所述副对角线上元素的索引,hijlower_left为子矩阵Hlower_left中第i行第j列的元素取值,且i和j为子矩阵Hlower_left中与掩码矩阵HMASKlower_left中取值为“1”的元素对应的元素索引。

较佳地,所述修正处理为:其中,hijb为基础扩展矩阵Hextension中第i行第j列的元素取值,(hijb)modified为hijb修正后的元素取值。

较佳地,预先根据多个可选的目标码率选择目标矩阵并确定各个目标码率下的基础扩展矩阵;

在进行LDPC编码时,根据当前的目标码率选择相应的基础扩展矩阵,并执行所述修正处理和扩展操作,得到校验矩阵。

一种速率兼容的低密度奇偶校验码的编码器,包括:

基础扩展矩阵确定单元,用于选择母码矩阵,并确定基础扩展矩阵的大小(mb+Δm)×(nb+Δm),其中,Δm=Δx·mb,表示向上取整,R0为母码矩阵对应的码率,mb和nb分别为母码矩阵的行数和列数,R为目标码率;将基础扩展矩阵Hextension划分为六个子矩阵,Hextension=HbsystemHbparityHupper_rightHlower_leftHlower_midHlower_right,其中,Hbsystem为所述母码矩阵的信息子矩阵,Hbparity为所述母码矩阵的校验子矩阵,Hupper_right、Hlower_left、Hlower_mid、Hlower_right大小分别为mb×Δm、Δm×(nb-mb)、Δm×mb、Δm×Δm;将子矩阵Hupper_right的所有元素设置为-1;对于子矩阵Hlower_mid,将预设的对角线上的所有元素设置为0,其余元素设置为-1,所述预设的对角线为连接第行第0列元素和第nmb-1行第列元素的对角线,以及连接第(n-1)mb行第的元素和第行第mb-1列元素的对角线,其中,n=1,...,Δx,且n为正整数;构造子矩阵Hlower_right的掩码矩阵HMASKlower_right为具备多条对角线的下三角矩阵,所述多条对角线中包括掩码矩阵HMASKlower_right的主对角线和Δx条副对角线,其中,所述Δx条副对角线为所述矩阵Hlower_mid中所述预设对角线的延长线,所述多条对角线上的所有元素设置为1,其余元素设置为0;根据子矩阵Hbsystem、Hbparity、Hupper_right、Hlower_mid和子矩阵Hlower_right的掩码矩阵确定子矩阵Hlower_left的掩码矩阵HMASKlower_left的度分布,构造掩码矩阵HMASKlower_left;将掩码矩阵HMASKlower_right中所有取值为0的元素在子矩阵Hlower_right中对应的元素设置为“-1”,将矩阵HMASKlower_right中主对角线上的元素在子矩阵Hlower_right中对应的元素设置为“0”,将掩码矩阵HMASKlower_left中所有取值为0的元素在子矩阵Hlower_left中对应的元素设置为“-1”;根据最小环长最大化准则,为矩阵HMASKlower_right中副对角线上的元素在矩阵Hlower_right中对应的元素以及矩阵HMASKlower_left中取值为“1”的元素在子矩阵Hlower_left中对应的元素设置对应的偏移量;将确定的六个子矩阵进行合并得到所述基础扩展矩阵;

修正处理单元,用于利用当前扩展因子z对所述基础扩展矩阵确定单元得到的基础扩展矩阵进行修正处理;

扩展单元,用于利用大小为z×z的替换矩阵P对所述修正处理单元得到的修正后的基础扩展矩阵进行扩展,得到校验矩阵,其中,表示向上取整,K为当前编码的信息比特长度,kb=nb-mb

编码单元,用于利用所述扩展单元得到的校验矩阵对待编码数据进行LDPC编码。

较佳地,所述基础扩展矩阵确定单元包括确定子单元和存储子单元,

所述确定子单元,进一步用于根据多个可选的目标码率选择目标矩阵并确定各个目标码率下的基础扩展矩阵,并将各个可选的目标码率与相应的基础扩展矩阵对应保存在所述存储子单元中;

所述修正处理单元,进一步用于在所述存储子单元中提前与当前的目标码率对应的基础扩展矩阵。

由上述技术方案可见,本发明中,选择母码矩阵,并确定基础扩展矩阵的大小;将基础扩展矩阵划分为六个子矩阵,Hextension=HbsystemHbparityHupper_rightHlower_leftHlower_midHlower_right,按照最小环最大化原则,分别确定各个子矩阵的取值,再将各个子矩阵合并构成基础扩展矩阵;最后,利用当前扩展因子z对得到的基础扩展矩阵进行修正,再利用大小为z×z的矩阵P对修正后的基础扩展矩阵进行扩展,得到校验矩阵;利用该校验矩阵对待编码数据进行LDPC编码。经过上述方式得到的LDPC码,一方面,能够实现速率兼容,另一方面,由于采用最小化最大化原则确定各个基础扩展矩阵中各个子矩阵的取值,因此,相对于打孔方式实现速率兼容的LDPC码,能够提高译码性能。

附图说明

图1为利用二进制矩阵表示LDPC码校验矩阵的示意图。

图2为利用Tanner图表示LDPC码校验矩阵的示意图。

图3为本发明中LDPC的校验矩阵获取方法的流程图。

图4为本发明中基础扩展矩阵的结构示意图一。

图5为本发明中基础校验矩阵的结构示意图二。

图6为本发明与现有技术中构造的LDPC码的误帧率(BLER)和信噪比(Eb/No)之间的性能对比曲线关系。

图7为本发明中的LDPC码与现有Turbo码的误帧率(FER)和信噪比(Eb/No)之间的性能对比曲线关系。

具体实施方式

为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图对本发明做进一步详细说明。

本发明的基本思想是:根据目标码率,按照最小环长最大化准则将母码矩阵扩展为满足不同目标码率要求的基础扩展矩阵,以实现速率兼容的LDPC编码,从而避免由于打孔处理而造成的译码性能降低。

本发明中提供了速率兼容的LDPC编码器,包括:基础扩展矩阵确定单元、修正处理单元、扩展单元和编码单元。

在上述LDPC编码器中,可以实施本发明的LDPC编码方法。图3为本发明中LDPC的编码方法的流程图。如图3所示,该方法包括:

步骤301,根据码率R和码长N的要求,选择母码矩阵,并确定基础扩展矩阵的大小。

本步骤可以通过下面步骤实现:

(11)根据码率R和码长N的要求,确定信息比特长度K和校验比特长度M;其中,信息比特长度K=RN,校验比特长度M=N-K,式中,信息比特长度K、码长N和校验比特M均为正整数;

假定本发明一具体实施例中,目标码率为1/3,码长N有三种要求,分别为3180、6060、15342,则对应的信息比特长度K=1060、2020、5114,对应的校验比特长度M=2120、4040、10228;以下就以此种情况为例对每个步骤进行具体说明。

(12)选择大小为mb×nb的母码矩阵Hbuniform,具体母码矩阵选择方式与现有实现方式相同。其中,母码矩阵由大小为mb×(nb-mb)的系统位子矩阵Hbsystem和大小为mb×mb的校验位子矩阵Hbparity两部分组成,即Hbuniform=[Hbsystem|Hbparity],其中Hbparity是双对角线的准下三角矩阵;

在具体实施例中,选择的母码矩阵行数为mb=16,列数nb=32,母码码率为1/2,母码矩阵由大小为16×16的系统位子矩阵Hbsystem和大小为16×16的校验位子矩阵Hbsystem组成,其中Hbparity是双对角线的准下三角矩阵;

其中,系统位子矩阵Hbsystem=

-1-1-1-1-152-167-111-1-1-113251285-1-1-1326-1-1-1-1163-1-1-151362489-1243227-1-1-1-1-1-1-1278-1-1205337373-1-1-1-1-1381-1-1-1-1-113011036181176-1-1-1232315-1199-1-1-1-1-1-1232295135247310-1-1-1-1-1-1-1-1-1-123367254138-1-1-1-1-1-1-1-1178262-1176-111335740-1-1252-1-1-1-1235-1-1-1-1362366297332-1-1-1-1-1-1117-1-1-198-1-12037948102-1-1-1-1-1-1-1-1178-1-126918116073-1-1-1-119-1-18-1-1-177-1255370332-1-1-1-1-1232-1-1-1-138-110693329152-1339-1-1-1-1211-1-116-1-1-12255212-1-153284-1-1-1-1-1-1-1-16922465280110-1-1-1357-1-1-1239-1-1-1-116436836-196-1-1-1-1-1-1-1-1-119361531475

校验位子矩阵Hbsystem=

00-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1336-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1000-1-1-1-1-1-1-1-1-1-1-1-1-1-10

(13)根据码率R,确定需要构造的基础扩展矩阵Hextension的行数和列数,该基础扩展矩阵Hextension行数为mb+Δm,列数为nb+Δm,Δm=mb·Δx;

其中,由R=((nb+mb·Δx)-(mb+mb·Δx))/(nb+mb·Δx),且R0=(nb-mb)/nb,可得出表示向上取整,R0为母码矩阵对应的码率。这样,就可以根据码率为R0的母码矩阵大小扩展出码率为R的基础扩展矩阵的大小。当然,本步骤仅确定了基础扩展矩阵的大小,在后续步骤还需要进一步确定基础扩展矩阵的具体取值,然后通过对该基础扩展矩阵进行替换就可以得到码率为R的校验矩阵;

在具体实施例中,由于LDPC的目标码率为R=1/3,则基础扩展矩阵的码率也为R=1/3,又根据母码码率R0=1/2,可得Δx=1,Δm=mb=16,因而得出基础扩展矩阵Hextension的行数为32,列数为48。

步骤302,将基础扩展矩阵Hextension划分为六个子矩阵Hextension=HbsystemHbparityHupper_rightHlower_leftHlower_midHlower_right.

由选择的母码矩阵扩展得到基础扩展矩阵,因此,将母码矩阵作为基础扩展矩阵中左上角的矩阵,并据此将基础扩展矩阵划分为多个子矩阵,再逐个确定除母码矩阵之外的其他子矩阵的取值,从而最终确定基础扩展矩阵。

具体地,将基础扩展矩阵Hextension划分为六个子矩阵,即Hextension=HbsystemHbparityHupper_rightHlower_leftHlower_midHlower_right,其中,Hbsystem为母码矩阵的信息子矩阵,Hbparity为母码矩阵的校验子矩阵,Hupper_right、Hlower_left、Hlower_mid、Hlower_right为扩展出的子矩阵,大小分别为mb×Δm、Δm×(nb-mb)、Δm×mb、Δm×Δm。

在具体实施例中,基础扩展矩阵Hextension如图4所示,矩阵包括5个部分,其中,左上角是大小为16×32的母码矩阵HbuniformHbuniform=[Hbsystem|Hbparity],扩展部分Hupper_right、Hlower_left、Hlower_mid、Hlower_right矩阵大小分别均为16×16。

步骤303,将子矩阵Hupper_right中的所有元素设置为-1。

步骤304,对于子矩阵Hlower_mid,将预设的对角线上的所有元素设置为0,其余元素设置为-1。

本步骤确定子矩阵Hlower_mid中所有元素的取值。如图5所示,子矩阵Hlower_mid呈现双对角线的形式。在各个对角线上的所有元素设置为0,其余元素设置为-1。具体对角线为:连接第行第0列元素和第nmb-1行第列元素的对角线,和,连接第(n-1)mb行第的元素和第行第mb-1列元素的对角线。其中,n的取值为小于等于Δx的所有正整数,即n从1开始取,一直取到Δx,当n取任一值时,得到两条对角线,因此子矩阵Hlower_mid共有2Δx条对角线。这样,即可以确定子矩阵Hlower_mid的所有元素取值,最终确定的子矩阵Hlower_mid行重为1,列重为Δx。

在具体实施例中,构造基础扩展矩阵下半部分中间大小为16×16的矩阵Hlower_mid时,首先将矩阵中所有元素置为“-1”,再将对角线上的元素置为“0”,此处由于Δx=1,因此n仅取1,从而第一条对角线连接的是子矩阵Hlower_mid中第8行第0列的元素与第15行第7列的元素,第二条对角线连接的是子矩阵Hlower_mid中第0行第8列的元素与第7行第15列的元素;该子矩阵的行重为1,列重也为1;

Hlower_mid=

-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1

步骤305,根据子矩阵Hlower_mid构造一个与基础扩展矩阵右下角的子矩阵Hlower_right相对应、且结构相同的掩码矩阵HMASKlower_right

本步骤构造的掩码矩阵HMASKlower_right中的元素值为“0”或“1”,其中,“0”表示没有矩阵运算,“1”表示有矩阵运算。

具体地,子矩阵Hlower_right的掩码矩阵HMASKlower_right为具备多条对角线的下三角矩阵,其中,多条对角线中包括掩码矩阵HMASKlower_right的主对角线和Δx条副对角线,其中,Δx条副对角线为子矩阵Hlower_mid中所有对角线的延长线,如图5所示。并且,在掩码矩阵HMASKlower_right中,各个对角线上的所有元素设置为1,其余元素设置为0。

在具体实施例中,掩码矩阵是一个具有双对角线的下三角矩阵,且副对角线是由子矩阵Hlower_mid的第一条对角线延长得到的,具体该掩码矩阵

HMASKlower_right=

1000000000000000010000000000000000100000000000000001000000000000000010000000000000000100000000000000001000000000000000010000000010000000100000000100000001000000001000000010000000010000000100000000100000001000000001000000010000000010000000100000000100000001

步骤306,根据子矩阵Hbsystem、Hbparity、Hupper_right、Hlower_mid和子矩阵Hlower_right的掩码矩阵确定子矩阵Hlower_left的掩码矩阵HMASKlower_left的度分布,构造掩码矩阵HMASKlower_left

本步骤中,可以采用密度演化理论根据已经确定的几个子矩阵的结构,确定子矩阵Hlower_left的掩码矩阵HMASKlower_left的度分布,采用渐进加边方法构造掩码矩阵HMASKlower_left。该掩码矩阵HMASKlower_left与掩码矩阵HMASKlower_right类似,其中的元素值为“0”或“1”,“0”表示没有矩阵运算,“1”表示有矩阵运算。

优选地,在构造掩码矩阵HMASKlower_left的过程中,依照最小环长最大化及短环个数最小化的准则进行。

在具体实施例中,根据已经构造好的4个部分的结构,采用密度演化理论,得到左下角掩码矩阵HMASKlower_left的列重分布为0.6875x0+0.125x2+0.1875x16,也就是列重量分别为0、2、16的列数占总列数比例分别为0.6875、0.125、0.1875;再采用渐进加边算法加边使基础扩展矩阵Hextension的最小环长最大化,即最小环长≥6,以及短环个数最小化,得到的掩码矩阵为HMASKlower_left=

0000000000001111000000000001011100000000000011110000000000000111000000000001011100000000000001110000000000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000111

步骤307,根据最小环长最大化准则,为矩阵HMASKlower_right中副对角线上的元素在矩阵Hlower_right中对应的元素以及矩阵HMASKlower_left中取值为“1”的元素在子矩阵Hlower_left中对应的元素设置对应的偏移量,并将矩阵Hlower_right和Hlower_left中的其余元素设置为“-1”。

本步骤中,根据掩码矩阵HMASKlower_right和HMASKlower_left,确定相应的子矩阵Hlower_right和HMASKlower_left的元素取值。具体地,根据hijlower_left=(C1×i2×j2+C2×i2×j+C3×i×j2+C4×i2+C5×j2+C6×i×j+C7×i+C8×j+C9)mod(zmax)hijlower_right=(D1×i2×j2+D2×i2×j+D3×i×j2+D4×i2+D5×j2+D6×i×j+D7×i+D8×j+D9)mod(zmax)配置整数系数C1,...,C9,D1,...,D9,使基础扩展矩阵的最小环长大于等于6,其中,C1,...,C9为非负整数,zmax为扩展因子的最大值,hi′j′lower_right为子矩阵Hlower_right中第i′行第j′列的元素取值,且i′和j′为子矩阵Hlower_right中副对角线上元素的索引,hijlower_left为子矩阵Hlower_left中第i行第j列的元素取值,且i和j为子矩阵Hlower_left中与掩码矩阵HMASKlower_left中取值为“1”的元素对应的元素索引。将矩阵Hlower_right和Hlower_left中的其余元素设置为“-1”。

在具体实施例中,首先配置左下角子矩阵Hlower_left的偏移量:在Hlower_left中,将对应于掩码矩阵HMASKlower_left中元素为“0”的位置均填充“-1”,其余部分采用下述计算公式得到的:

hijlower_left=(i2×j2+i2+11×i×j+20×i+13×j+20)mod(zmax),式中,hijlower_left是扩展部分左下角子矩阵Hlower_left中第i行、第j列的元素,zmax为扩展因子z可取得的最大值zmax=384,mod为求余运算符号;于是得到左下角子矩阵Hlower_left=

-1-1-1-1-1-1-1-1-1-1-1-1176189226215-1-1-1-1-1-1-1-1-1-1-142-1138218250-1-1-1-1-1-1-1-1-1-1-1-129243186337-1-1-1-1-1-1-1-1-1-1-1-1-1288193116-1-1-1-1-1-1-1-1-1-1-1375-1105210347-1-1-1-1-1-1-1-1-1-1-1-1-1262237262-1-1-1-1-1-1-1-1-1-1-1-1-1375274245-1-1-1-1-1-1-1-1-1-1-1-1-160321335-1-1-1-1-1-1-1-1-1-1-1-1-185158-1-1-1-1-1-1-1-1-1-1-1-1-16661218-1-1-1-1-1-1-1-1-1-1-1-1-1313889-1-1-1-1-1-1-1-1-1-1-1-1-128032235-1-1-1-1-1-1-1-1-1-1-1-1-112932235-1-1-1-1-1-1-1-1-1-1-1-1-131845110-1-1-1-1-1-1-1-1-1-1-1-1-179162270-1-1-1-1-1-1-1-1-1-1-1-1-118030680

接下来配置右下角子矩阵Hlower_right的偏移量:在Hlower_right中,先将主对角线上的元素为填为“0”,再将副对角线上的元素采用下述公式计算:

hi,jlower_right=(2×i2+5×j2+3×i×j-109×i-201×j+2400)mod(zmax)

式中,hi,jlower_right是扩展部分右下角矩阵子Hlower_left中第i行、第j列的元素,且i=8,9,...,15,j=i-8;该元素满足在副对角线上;zmax为扩展因子z可取得的最大值,zmax=384,mod为求余运算符号,最后将其余位置元素置为“-1”;该Hlower_right=

0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1120-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1260-1-1-1-1-1-1-10-1-1-1-1-1-1-1-136-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1216-1-1-1-1-1-1-10-1-1-1-1-1-1-1-132-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1252-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1108-1-1-1-1-1-1-10-1-1-1-1-1-1-1-1368-1-1-1-1-1-1-10

步骤308,将确定的六个子矩阵合并成基础扩展矩阵。

至此,即可以得到基础扩展矩阵。上述步骤301~308的操作可以由前述编码器中的基础扩展矩阵单元完成相应功能。

步骤309,根据当前扩展因子z对基础扩展矩阵Hextension进行修正处理,得到修正后的基础扩展矩阵Hmodified

母码矩阵是根据最大的扩展因子zmax得到的,并且在上述确定各个子矩阵的过程中,也是基于母码矩阵和最大扩展因子进行的,因此步骤308中合并得到的基础扩展矩阵也是与最大扩展因子相应zmax的。而在实际应用中,进行编码的扩展因子z可能小于最大扩展因子zmax,因此,需要根据实际扩展因子z对基础扩展矩阵进行修正,以使该修正后的基础扩展矩阵Hmodified中所有元素的值都小于LDPC码的扩展因子z。

优选地,具体修正方式为:其中,hijb为基础扩展矩阵Hextension中第i行第j列的元素取值,(hijb)modified为hijb修正后的元素取值。

在具体实施例中,信息比特长度分别为1060、2020、5114,对应的扩展因子分别为67、127、320,从而得到3个修正后的矩阵H1060modified、H2020modified、H5114modified;该H1060modified=

H2020modified=

H5114modified=

本步骤的操作可以由前述LDPC编码器中的修正处理单元完成相应功能。

步骤310,利用大小为z×z的替换矩阵P,对修正后的基础扩展矩阵进行扩展,得到实际编码时所需的(mb+Δm)×z行(nb+Δm)×z列的校验矩阵H。

具体进行扩展的方式与现有相同,这里就不再赘述。

在具体实施例中,信息比特长度分别为1060、2020、5114,对应的扩展因子分别为67、127、320,从而得到3个大小分别为2144×3216、4064×6096、10240×15360的校验矩阵H1060、H2020、H5114

本步骤的操作可以由前述LDPC编码器中的扩展单元完成相应功能。

步骤311,利用步骤310确定的校验矩阵H对待编码数据进行LDPC编码。

接下来,就可以利用得到的校验矩阵进行LDPC编码。下面简单介绍一下编码过程,仍以上述具体实施例的参数为例:

码率R=1/3,把一个码字x划分为N-2M个信息比特s、M个校验比特c1和M个校验比特c2,x=[s,c1,c2],相应地,把2M×N的校验矩阵H划分为6块稀疏矩阵,H=H1H2H3H4H5H6,即H1,H2,H3,H4,H5和H6,大小分别为M×(N-2M)、M×M、M×M、M×(N-2M)、M×M、M×M,根据HxT=0T,可得:

H1H2H3H4H5H6×[s,c1,c2]T=0T,

于是可以得到H1×s+H2×c1T+H3×c2T=0T,由于H3是全零矩阵,推出c1T=H2-1H1s;再由H4×s+H5×c1T+H6×c2T=0T,进一步推出c2T=H6-1(H4×s+H5×c1T);由于矩阵H2采用双对角线的准下三角结构,H6采用严格下三角结构,因此H2-1和H6-1具有非常简单的形式,可以直接按照上边计算公式得到校验比特部分c1和c2,并且可以保证编码器具有线性复杂度。

利用校验矩阵H进行编码的具体操作步骤采用现有方式,具体如下:

步骤1:将kx=kb×z-K个0比特加在K比特的信息块前,构成kb×z比特信息比特s;例如,当K=1060时,kx=kb×z-K=16×67-1060=12;

步骤2:对校验矩阵H中的子矩阵[H1|H2]进行初等行变换,将校验矩阵[H1|H2]中的所有行都加到第一行中,计算出校验码的第一块;

由于子矩阵H2是下三角矩阵,因此首先从第一行开始算起,如上进行计算。

步骤3:根据子矩阵[H1|H2]用递推方法计算出其他校验位,与步骤2计算出的校验码一起构成c1

步骤4:根据子矩阵[H4|H5|H6]用递推的方法计算出校验位c2

步骤5:在s中删除在步骤1中添加的0比特。如果码字x剩下的比特数不等于N,则码字x尾部的y=2mb×z-N+K(y为一个较小的数)个校验比特需要删除,例如,当K=1060时,y=2mb×z-N+K=2×16×67-3180+1060=24。

这样,即完成了利用依照本发明方法得到的校验矩阵进行LDPC编码的过程。上述利用校验矩阵进行LDPC编码的操作可以由前述LDPC编码器中的编码单元完成相应功能。

至此,本发明中速率兼容的LDPC编码方法流程结束。通过上述方式,可以根据合适的母码矩阵得到各种码率下的校验矩阵,从而实现速率兼容的LDPC编码。

在上述本发明的具体实现过程中,可以针对各种可选的目标码率,执行步骤301~308,然后将得到的基础扩展矩阵与相应的目标码率对应保存。在进行实际LDPC编码时,根据当前的码率要求选择目标码率,再提取出与该目标码率对应的基础扩展矩阵,执行步骤309~310进行修正处理和扩展,得到相应的校验矩阵,再利用步骤311进行LDPC编码。这样,前述步骤301~308的操作可以预先执行并保存,能够减少LDPC编码时的实时运算量,提高编码速度。

相应地,当采用上述针对各种可选目标码率预先确定相应基础扩展矩阵的方式,在编码器中的具体实现可以为:编码器中的基础扩展矩阵确定单元包括确定子单元和存储子单元,其中,确定子单元用于针对各种可选的目标码率,执行步骤301~308,然后将得到的基础扩展矩阵与相应的目标码率对应保存在存储子单元中。修正处理单元在获取基础扩展矩阵确定单元得到的基础扩展矩阵时,优选地,从基础扩展矩阵确定单元中的存储单元中提取与当前目标码率对应的基础扩展矩阵。

由上述本发明的具体实现过程可见,在构造速率兼容的LDPC码过程中,本发明中采用由母码矩阵进行扩展得到基础扩展矩阵,再由基础扩展矩阵进行扩展得到校验矩阵的方式。上述方式与现有的打孔方式相比,尽量保留了译码的有用信息,并且在确定基础扩展矩阵的过程中,根据最小环长最大化的准则进行,因此能够提高译码性能。

为了鉴定依照本发明方式形成的LDPC码的传输性能,采用AWGN信道模型对本发明构造出的LDPC码的传输性能进行了仿真试验,并与现有技术中通过打孔方式实现的LDPC码进行了性能比较。表1为用于试验和分析性能的实施例各个参数的设置情况。

  参数名称  数值  信息位长(K)  1024  码率  2/3  调制模式  BPSK  信道模型  AWGN  译码方式  LDPC:Log-BP最大迭代次数=50

图6为本发明与现有技术中构造的LDPC码的误帧率(BLER)和信噪比(Eb/No)之间的性能对比曲线关系。在图6中,虚线是按照现有技术中打孔方式实现的LDPC码的传输性能曲线,实线按照本发明的方法实现的LDPC码的传输性能曲线。由图6可见,同现有的打孔技术相比,采用本发明构造的LDPC码的误帧率性能优于现有技术。

同时,还对依据本发明的方式构造的LDPC码和现有的Turbo码的传输性能进行了仿真和比较。表2为用于试验和分析性能的实施例各个参数的设置情况。

  参数名称  数值  信息位长(K)  1060、2020、5114  码率  1/3  调制模式  BPSK  信道模型  AWGN  译码方式  Turbo:Log-MAP最大迭代次数=8  LDPC:Log-BP最大迭代次数=50

图7为本发明中的LDPC码与现有Turbo码的误帧率(FER)和信噪比(Eb/No)之间的性能对比曲线关系。在图7中,虚线是Turbo码的传输性能曲线,实线是本发明中LDPC码的传输性能曲线。由图7可见,采用本发明构造的LDPC码的误帧率性能良好:在信息位长度为2020,误帧率为10-3时,LDPC码比Turbo码多0.08dB的增益;在信息位长度为5114时,误帧率为10-3时,LDPC码比Turbo码多0.1dB的增益;并且在误帧率为10-4时,LDPC码能够克服Turbo码存在的地板效应。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号