一类低密度奇偶校验码的实现方法

文档序号:7513568阅读:103来源:国知局

专利名称::一类低密度奇偶校验码的实现方法
技术领域
:本发明涉及数字通信系统的编解码技术,特别涉及一类低密度奇偶校验码的实现方法。
背景技术
:由于随机噪声、无线传输中的多径衰落等因素的影响,使得通信系统中的数据传输经常发生各种差错,尤其是在数字多媒体广播系统中,数据量大、带宽有限、且各种突发干扰非常多,使得数据传输的可靠性问题变得更加突出。通常,采用信道编码的方法来确保在有噪声的通信信道中提供可靠的通信。现有实现方法中,低密度奇偶校验码(LDPC)被广泛认为是性能最好的纠错实现方法之一。这是因为,一种编码的性能优劣可以用接近于香农(Shannon)限的程度来衡量,而LDPC码译码复杂度较低、却具有接近于香农限的性能。下面简要介绍现有LDPC码。LDPC码是一种基于稀疏奇偶校验矩阵H的线性纠错码。H矩阵的特点是矩阵中的元素0占绝大多数,而元素1的密度很低,即所谓的低密度。LDPC码中有以下几个比较基础的概念码长,是指输入数据经编码之后,所得到的输出数据的长度,即LDPC码字的长度;校验位长度即校验方程的个数,是指输出数据中校验位所占的比特数,即码长减信息位长度;码率,是信息位长度与码长之比;列重,是指奇偶校验矩阵H的每一列中1的个数,其中,若每列中1的个数相同,则该LDPC码为规则LDPC码(regularLDPC),否则,为非规则LDPC码(IrregularLDPC);行重,是指奇偶校验矩阵H的每一行中1的个数。若以N表示LDPC码的码长、K表示信息位长度、M表示校验位长度、Y表示列重、p表示行重、v表示码率,可以将该LDPC码表示为(N,K),该LDPC码的奇偶校验矩阵H具有以下特性1、H为MxN的满秩矩阵;2、y为任意整凄史,且y上3、yM;其中,<<表示远小于;3、p为Y壬意整数,且p兰3、pN;4、存在关系v=(N-M)/N=K/N;5、任何两列中元素同为1的行数不超过1,即矩阵中不存在四个角都是1的矩形,即不存在四线循环。下面通过一个LDPC编码器示例,-说明LDPC编码过程。图1为现有LDPC编码器的结构示意图。参见图1,该编码器包括奇偶校验矩阵构造单元、生成矩阵构造单元和编码单元。图1所示LDPC编码器的工作原理是首先,奇偶校验矩阵构造单元根据预先设定的LDPC码长、码率以及列重,构造奇偶校验矩阵H;然后,由生成矩阵构造单元根据奇偶校验矩阵H构造生成矩阵G,这里,由于LDPC码是一种线性纠错码,因此,生成矩阵G和相应的奇偶校验矩阵H是对偶矩阵,但是G不具备H的低密度特点;最后,编码单元用生成矩阵G对输入数据s进行编码,得到输出的LDPC码的码字t,并且满足Ht-0。从实用性角度来看,制约LDPC码广泛应用的一个重要因素是稀疏的奇偶校验矩阵和非稀疏的生成矩阵的存储量过大,导致在使用LDPC码进行编码时所需要的存储空间非常大。此外,传统的LDPC码编码复杂度过高也是制约其广泛应用的一个比较重要的因素。由于上述缺点的存在,导致LDPC码尚未被广泛地投入实际应用中。
发明内容有鉴于此,本发明的主要目的在于提供一类低密度奇偶校验码的实现方法,以降低存储奇偶校验矩阵所需的存储空间。为达到上述目的,本发明的技术方案具体是这样实现的一类低密度奇偶校验码的实现方法,所述低密度奇偶校验码LDPC码为非规则LDPC码,且码长为4608、码率为43/64、行重为12或13,该方法包括以下步骤A、根据所述码长、码率以及行重,设置用于生成奇偶校验矩阵的数字序列,所述数字序列的长度为256,所述数字序列为:<table>tableseeoriginaldocumentpage6</column></row><table>Bl、根据所述码长和码率构造一个1512行x4608列的奇偶校验矩阵,将所述奇偶校验矩阵按行均匀划分为21个72行x4608列的分矩阵;B2、将所述数字序列划分为21个数字组,每个数字组中包含12或13个数字,且每个数字组对应一个分矩阵,以所述每个数字组中的数字作为相应分矩阵的第一行元素中l所处的列数,确定各个分矩阵的第一行元素;B3、将所述各个分矩阵按列均匀划分为64个72行x72列的子矩阵;B4、根据每个子矩阵中已经确定的第一行元素,采用循环移位的方式得到每个子矩阵的其他行元素;C、利用所述奇偶校验矩阵,将输入数据变换为LDPC码字。其中,步骤B4所述循环移位可以为循环左移和/或循环右移。其中,所述奇偶校验矩阵中可以包含256个置换单位矩阵。其中,所述每个数字组中的任意两个数字对所述子矩阵的行数72取^莫所得的值互不相同。进一步地,在所述步骤B4之后,可以包括对所得到的奇偶校验矩阵进行各种角度的旋转和/或进行行置换和/或进行列置换和/或改变所述子矩阵的位置。由上述技术方案可见,本发明的一类LDPC码的实现方法采用了以数字序列表示奇偶校验矩阵、并对数字序列循环移位得到奇偶校验矩阵的方式,使得存储奇偶校验矩阵所需的存储空间达到了最小化。此外,由于本发明的奇偶校验矩阵具有准循环的结构特性,使得在实际应用中,可以利用循环移位的特性实现快速寻址,节约处理资源,简化编码和译码操作,使编码和译码操作的复杂度得以降低。图l为现有LDPC编码器的结构示意图。图2为本发明一类LDPC码的实现方法的示例性流程图。图3为本发明实施例一中(4608,2304)规则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。图4为本发明实施例一中(4608,2304)规则QC-LDPC码在在T-MMB系统的AWGN信道中采用8DPSK调制的BER性能曲线示意图。图5为本发明实施例二中(4608,2304)非规则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。图6为本发明实施例三中(4608,3096)非规则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。图7为本发明实施例四中QC-LDPC码的实现装置的结构示意图。具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。本发明的主要思想是根据预先设定的码长、码率以及行重,设置用于生成奇偶校验矩阵的数字序列,然后根据数字序列、采用循环移位的方式构造具有准循环(QC:QuasiCyclic)结构的LDPC码的奇偶4交验矩阵,再以所得到的奇偶校验矩阵对输入数据进行变换,得到包含奇偶校验信息的LDPC码字。如此,只需用非常少量的存储空间存储数字序列,即可解决奇偶校验矩阵存储量过大的问题。图2为本发明一类LDPC码的实现方法的示例性流程图。参见图2,该方法包括以下步骤步骤201:根据预先设定的码长、码率以及行重,设置用于生成奇偶校验矩阵的数字序列。本示例中,根据预先设定的码长、码率以及行重,确定本示例将要构造的奇偶校验矩阵的行数和列数,其中,行数为LDPC码的码长,表示为N;列数为校验位长度,表示为M,并假设所构造的本发明QC-LDPC码的奇偶校验矩阵H如(1)所示<formula>formulaseeoriginaldocumentpage9</formula>(1)(l)中,Ai,j是t行xt列的循环矩阵,称为奇偶4交验矩阵H的子矩阵,由于Ai,j是循环矩阵,也可将其称为奇偶校验矩阵H的循环子矩阵,因此本发明奇偶校验矩阵H具有准循环结构,故而将本发明所构造的LDPC码称为QC-LDPC码。根据上述确定的奇偶校验矩阵H的行数和列数构造多个分矩阵,使得所构造的分矩阵的行数为矩阵H的行数的分矩阵个数分之一、列数与矩阵H的列数相等,并令所构造的每个分矩阵与上述矩阵H中的每一行循环子矩阵相对应,即可以将每个分矩阵表示为Ai=[Au,Ai,2…,Aj,c](i=l,2,..,u)(2)其中,分矩阵的个数u二N/t,分矩阵中子矩阵的个数c-M/t。本步骤中所i殳置的数字序列用于确定每个分矩阵的第一行中元素1所处的列数,也即得到了每个分矩阵中的第一行,因此,可以将该数字序列称为奇偶校验矩阵的行生成规则。这里,为了保证所构造的校验矩阵是稀疏的,每一行中任意两个元素1所处的列数对t取模所得的值应互不相同,因此,在所设置的数字序列中,用于确定每个分矩阵的第一行中元素1所处的列数的任意两个数字对t取模所得的值互不相同。对于规则LDPC码以及行重相同的非规则LDPC码,若以p表示行重、u表示校验矩阵中分矩阵的个数,由于该数字序列中的每p个数字代表一个分矩阵的第一行中元素1所处的列数,因此,该数字序列由pxu个数字组成,相对于MxN来说,所需的存储空间得以极大地减少;对于行重不相同的非规则LDPC码,虽然其行重不确定,但是,该数字序列中所包含的数字个数最多为行重最大值与u之积,因此,相对于MxN来说,其所需的存储空间也将得以极大地减少。步骤202:根据所设置的数字序列,采用循环移位的方式构造LDPC码的奇偶校验矩阵。本步骤中,首先根据数字序列确定每一个分矩阵中的第一行元素;然后将每个分矩阵按列均匀划分为c个子矩阵,使得每个子矩阵是一个方阵,这里,c与步骤201所述c的物理含义相同;最后,冲艮据每个子矩阵的第一行元素,采用循环移位的方式得到整个子矩阵中其他行的元素,即为本发明所述循环子矩阵,如此,得到由各个循环子矩阵构成的本示例中QC-LDPC码的奇偶校验矩阵。假设所设置的用于生成奇偶校验矩阵的数字序列包含y个数字,由于该数字序列中,用于确定每个分矩阵的第一行中元素1所处的列数的任意两个数字对t取模所得的值互不相同,因此,每个循环子矩阵的每一行中至多只有一个元素1,于是,所得到的校验矩阵中包含y个含有元素1的循环子矩阵,由矩阵的性质可知,这些含有元素1的循环子矩阵是置换单位阵。本步骤中,得到奇偶校验矩阵之后,可以对其进行各种角度的旋转、行置换、列置换或改变循环子矩阵位置的任何变换。步骤203:利用所得到的奇偶校验矩阵,将输入数据变换为LDPC码字。本步骤中,得到奇偶校验矩阵之后,可以按照与现有技术相同的方式对输入数据进行编码,得到包含奇偶校验信息的输出数据。至此,结束本发明一类准循环的LDPC码的实现方法的示例性流程。在实际应用中,将经过本发明QC-LDPC实现方法编码之后的数据进行交织、调制之后,即可向外发射。这里,调制方式可以包括正交幅度调制(QAM)、相移键控(PSK)、幅度相移键控(APSK)、差分相移键控(DPSK)、绝对相移键控(BPSK)、差分幅度相移键控(DAPSK)和正交频分复用(OFDM)等。调制信号可以通过各种通信系统来传输,包括支持移动多媒体广播的地面链路等,例如可以通过地面移动多媒体广4番系统(T-MMB:TerrestrialMobileMultimediaBroadcasting)来<专專#。本发明可以适用于规则LDPC码和非规则LDPC码,以下通过四个实施例,对本发明技术方案进行详细说明。实施例一本实施例以规则(4608,2304)LDPC码为例进行说明。本实施例将要实现的规则LDPC码的码长N为4608,行重p^6,码率v二l/2。由码率、码长以及校验方程个数之间的对应关系可知,本实施例校验矩阵中校验方程个数M=4608-2304=2304。另外,本实施例中,将以72行x72列的循环子矩阵为最小循环单位为例说明上述准循环LDPC码的实现过程。本实施例方法流程图与图2所示本发明示例性方法流程图类似,参见图2,本实施例中QC-LDPC码的实现方法包括以下步-骤在步骤201中,根据本实施例中预先设置的码长、码率以及行重,设置数字序列,如下所示<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>为方便描述,将上述本实施例的数字序列称为数字序列一。参见数字序列一,该序列中的每一行代表一个分矩阵的第一行中元素1所处的列数。由于本实施例中LDPC码的行重为6,因此,每一个分矩阵的第一行中存在6个元素1,即存在6个取值为1的列;另外,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而校验方程的个数为2304,因此,奇偶校验矩阵中分矩阵的个数u=2304/72=32个,所以,本实施例中的数字序列一为32行x6歹'J=192个数字组成的序列。其中,每6个数字为一组,代表了一个分矩阵的第一行中元素1所处的列数;每一组6数字组中的任意两个数字对72取模所得的值互不相同,以保证每个循环子矩阵的同一行中最多只有一个l,即保证奇偶校验矩阵是稀疏的。在步骤202中,根据所设置的数字序列一,采用循环移位的方式构造LDPC码的奇偶校验矩阵。本步骤中,按照下述步骤构造LDPC码的奇偶校验矩阵第l步,将数字序列一均匀划分为多个包含行重个数字的数字组,并以数字序列一中的每一个数字组中的数字作为相应分矩阵的第一行中元素1所处的列数。即,以数字序列一中的第一个数字组中的数字作为第一个分矩阵的第一行中元素1所处的列数,以数字序列一中的第二个数字组中的数字作为第二个分矩阵的第一行中元素1所处的列数,依此类推,直至以数字序列一中的最后一个数字组中的数字作为最后一个分矩阵的第一行中元素1所处的列数。具体而言,将数字序列一均匀划分为多个包含6个数字的数字组,根据所得到的每一个数字组中的数字,即如数字序列一所示的每一行中的数字,得到奇偶校验矩阵的每个分矩阵的第一行元素例如,如数字序列一所示,其第一个数字组为9、212、384、2326、2803和3343,表示奇偶校验矩阵中第一个分矩阵的第一行,即奇偶校验矩阵的第一行中的第9列、第212列、第384列、第2326列、第2803列和第3343列的取值为1,第一个分矩阵的第一行中的其余列为0;其第二个数字组为140、264、465、2405、2870和3445,表示奇偶校验矩阵的第二个分矩阵的第一行,即奇偶校验矩阵的第73行中的第140列、第264列、第465列、第2405列、第2870列和第3445列的取值为1,第二个分矩阵的第一行中的其余列为0,对于其他分矩阵的第一行的取值,可以参照举例类推得到,在此不再赘述。第2步,将已确定第一行取值的每个分矩阵按列均匀划分为c个子矩阵;这里,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而码长为4608,因此,每个分矩阵中循环子矩阵的个数c=4608/72=64个;经划分之后,本实施例的奇偶校验矩阵将被划分为32行x64列=2048个循环子矩阵,且每个循环子矩阵的第一行元素的取值已经确定。第3步,针对每个循环子矩阵,釆用将其第一行元素循环移位的方式得到该循环子矩阵中其他行元素的取值。例如,可以对第1行元素循环左移x位,得到第2行元素;对第2行元素循环左移x位,得到第3行元素,依此类推,即可得到从第2行到第72行的所有元素的取值。这里,当然也可以采取循环右移或者其他循环移位方式进行移位。经过上述第1步至第3步的操作之后,即可得到本实施例中规则QC-LDPC码的奇偶校验矩阵。由于本实施例数字序列中存在32行x6列=192个数字,并且,每一个数字组中的任意两个数字对72取模所得的值互不相同,保证了每个循环子矩阵的同一行中最多只有一个1,因此,本实施例所得到的奇偶校验矩阵中将存在192个置换单位矩阵。本步骤中,得到奇偶校验矩阵之后,可以对其进行各种角度的旋转、行置换、列置换或改变循环子矩阵位置的任何变换。在步骤203中,按照与现有技术相同的方式利用所得到的奇偶校验矩阵,将输入数据变换为LDPC码字。至此,结束本发明实施例一中QC-LDPC码的实现方法的示例性流程。由上述实施例可见,本发明采用了以数字序列表示奇偶校验矩阵、并对数字序列循环移位得到奇偶校验矩阵的方式,使得存储奇偶校验矩阵所需的存储空间达到了最小化。此外,由于本实施例的奇偶校验矩阵具有准循环的结构特性,使得在实际应用中,可以利用循环移位的特性实现快速寻址,节约处理资源,筒化编码和译码操作,使编码和译码操作的复杂度得以降低。下面通过与现有技术的仿真对比,说明本发明实施例一中所提供的(4608,2304)规则QC-LDPC码的性能。图3为本发明实施例一中(4608,2304)规则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。本次仿真中,译码采用sum-product算法,最大迭代次数为50。参见图3,其中,直线301表示香农限;编码、BPSK方式进行调制、然后在加性高斯白噪声(AWGN)信道中传输、并采用和积译码算法(SPA:Sum-ProductArithmetic)进行译码的信号的误比特率(BER)曲线;曲线303表示采用本发明(4608,2304)规则QC-LDPC码进行编码、BPSK方式进行调制、然后在AWGN信道中传输、并采用SPA算法进行i,码的信号的误帧率(BLER)曲线;曲线304表示未经编码,直接采用BPSK调制,再经AWGN信道传输的信号的BER性能曲线;由图3可见,本发明(4608,2304)规则QC-LDPC码的盆底(errorfloor)非常低,并且,在BER-10力处,其性能曲线距离香农限仅1.9dB。将本实施例所提供的(4608,2304)规则QC-LDPC码应用于T-MMB系统的AWGN信道,并采用8DPSK方式进行调制、SPA算法进行-泽码,将得到如图4所示的BER性能曲线。参见图4,图中所示曲线为在T-MMB系统的AWGN信道中,采用本发明(4608,2304)规则QC-LDPC码进行编码、8DPSK方式进行调制、并采用SPA算法进行译码之后的信号BER性能曲线。在上述实施例一中,对本发明(4608,2304)^见则QC-LDPC码的实现方法的具体实施方式进行了详细说明,下面的两个实施例中,将对本发明非规则QC-LDPC码的实现方法的具体实施方式进行了详细说明。实施例二本实施例以(4608,2304)行重相同的非规则LDPC码为例进行说明。本实施例将要实现的规则LDPC码的码长N为4608,行重p:7,码率v:l/2,由码率、码长以及校验方程个数之间的对应关系可知,本实施例才交验矩阵中校验方程个数M=4608-2304=2304。另外,本实施例中,与实施例一相同,以72x72的循环子矩阵为最小循环单位为例说明上述准循环LDPC码的实现过程。本实施例方法流程图与图2所示本发明示例性方法流程图类似,参见图2,本实施例中QC-LDPC码的实现方法包括以下步骤在步骤201中,根据本实施例中预先设置的码长、码率以及行重,设置数字序列,如下所示<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>为方便描述,将上述本实施例的数字序列称为数字序列二。参见数字序列二,该序列中的每一行代表一个分矩阵的第一行中元素l所处的列数。由于本实施例中LDPC码的行重为7,因此,每一个分矩阵的第一行中存在7个元素1,即存在7个取值为1的列;另外,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而校验方程的个凄t为2304,因此,奇偶校验矩阵中分矩阵的个数u=2304/72=32个,所以,本实施例中的数字序列二为32行x7列=244个数字组成的序列。其中,每7个数字为一组,代表了一个分矩阵的第一行中元素1所处的列数;每一组7数字组中的任意两个数字对72取模所得的值互不相同,以保证每个循环子矩阵的同一行中最多只有一个l,即保证奇偶校验矩阵是稀疏的。在步骤202中,根据所设置的数字序列二,采用循环移位的方式构造LDPC码的奇偶校验矩阵。本步骤中,按照下述步骤构造LDPC码的奇偶校验矩阵第l步,将数字序列二均匀划分为多个包含7个数字的数字组,根据所得到的每一个数字组中的数字,即如数字序列二所示的每一行中的数字,得到奇偶校验矩阵的每个分矩阵的第一行元素例如,如数字序列二所示,其第一个数字组为923、970、2044、2100、2976、3359和4191,表示奇偶校验矩阵中第一个分矩阵的第一行,即奇偶校验矩阵的第一行中的第923列、第970列、第2044列、第2100列、第2976列、第3359列和第4191列的取值为1,第一个分矩阵的第一4亍中的其余列为0;其第二个数字组为136、288、1972、2422、2904、4243和4266,表示奇偶校验矩阵的第二个分矩阵的第一行,即奇偶校验矩阵的第73行中的第136列、第288列、第1972列、第2422列、第2904列、第4243列和第4266列的取值为1,第二个分矩阵的第一行中的其余列为0,对于其他分矩阵的第一行的取值,可以参照举例类推得到,在此不再赘述。第2步,将已确定第一行取值的每个分矩阵按列均匀划分为c个子矩阵;这里,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而码长为4608,因此,每个分矩阵中循环子矩阵的个数c=4608/72=64个;经划分之后,本实施例的奇偶校验矩阵将被划分为32行x64歹'J=2048个循环子矩阵,且每个循环子矩阵的第一行元素的取值已经确定。第3步,针对每个循环子矩阵,采用将其第一行元素循环移位的方式得到该循环子矩阵中其他行元素的取值。例如,可以对第1行元素循环左移x位,得到第2行元素;对第2行元素循环左移x位,得到第3行元素,依此类推,即可得到从第2行到第72行的所有元素的取值。这里,当然也可以采取循环右移或者其他循环移位方式进行移位。经过上述第1步至第3步的操作之后,即可得到本实施例中非规则QC-LDPC码的奇偶校验矩阵。由于本实施例数字序列中存在32行x7列=224个数字,并且,每一个数字组中的任意两个数字对72取模所得的值互不相同,保证了每个循环子矩阵的同一行中最多只有一个1,因此,本实施例所得到的奇偶校验矩阵中将存在224个置换单位矩阵。本步骤中,得到奇偶校验矩阵之后,可以对其进行各种角度的旋转、行置换、列置换或改变循环子矩阵位置的任何变换。在步骤203中,按照与现有技术相同的方式利用所得到的奇偶校验矩阵,将输入数据变换为LDPC码字。至此,结束本发明实施例二中QC-LDPC码的实现方法的示例性流程。由上述实施例可见,本发明采用了以数字序列表示奇偶校验矩阵、并对数字序列循环移位得到奇偶校验矩阵的方式,使得存储奇偶校验矩阵所需的存储空间达到了最小化。并且,由于本实施例的奇偶校验矩阵具有准循环的结构特性,使得在实际应用中,可以利用循环移位的特性实现快速寻址,节约了处理资源,简化了编码和译码操作,使编码和译码操作的复杂度得以降低。下面通过与现有技术的仿真对比,说明本发明实施例二中所提供的(4608,2304)非规则QC-LDPC码的性能。图5为本发明实施例二中(4608,2304)非^L则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。本次仿真中,译码釆用SPA算法,最大迭代次数为50。参见图5,其中,直线501表示香农限;曲线502表示采用本发明(4608,2304)非规则QC-LDPC码进行编码、BPSK方式进行调制、然后在AWGN信道中传输、并采用SPA算法进行i奪码的信号的BER曲线;曲线503表示采用本发明(4608,2304)非规则QC-LDPC码进4亍编码、BPSK方式进行调制、然后在AWGN信道中传输、并采用SPA算法进行译码的的信号的BLER曲线;曲线504表示未经编码,直接采用BPSK调制,再经AWGN信道传输的信号的BER性能曲线;由图5可见,本发明(4608,2304)非规则QC-LDPC码的errorfloor非常低,并且,在BER^10力处,其性能曲线距离香农限仅1.6dB,比本发明实施例一中所提供的(4608,2304)规则QC-LDPC码的性能更优。在上述实施例二中,以行重相同的非规则QC-LDPC码为例,详细说明了本发明技术方案,下面再通过一个行重不相同的LDPC码示例,对本发明非规则QC-LDPC码的实现方法进行介绍。实施例三本实施例以(4608,3096)行重不相同的非规则LDPC码为例进行说明。本实施例将要实现的规则LDPC码的码长N为4608,行重卩=12或13,码率v=43/64,由码率、码长以及校验方程个数之间的对应关系可知,本实施例校验矩阵中校验方程个数M=4608-3096=1512。另外,本实施例中,与实施例一相同,以72x72的循环子矩阵为最小循环单位为例说明上述准循环LDPC码的实现过程。本实施例方法流程图与图2所示本发明示例性方法流程图类似,参见图2,本实施例中QC-LDPC码的实现方法包括以下步骤在步骤201中,根据本实施例中预先设置的码长、码率以及行重,设置数字序列,如下所示<table>tableseeoriginaldocumentpage20</column></row><table>为方便描述,将上述本实施例的数字序列称为数字序列三。参见数字序列三,该序列中的每一行代表一个分矩阵的第一行中元素l所处的列数。由于本实施例中LDPC码的行重为12或13,因此,每一个分矩阵的第一行中存在12个或13个元素1,即存在12个或13个取值为1的列,根据数字序列三,本实施例中存在17个行重为12的分矩阵、4个行重为13的分矩阵;另外,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而校验方程的个数为1512,因此,奇偶校验矩阵中分矩阵的个数u=1512/72=21个,所以,本实施例中的数字序列三为17行x12歹'J十4行x13列=256个数字组成的序列。其中,每12个或13个数字为一组,代表了一个分矩阵的第一行中元素1所处的列数;每一组12个或13个数字组中的任意两个数字之差对72取模所得的值互不相同,以保证每个循环子矩阵的同一行中最多只有一个1,即保证奇偶校验矩阵是稀疏的。在步骤202中,根据所设置的数字序列三,采用循环移位的方式构造LDPC码的奇偶校验矩阵。本步骤中,按照下述步骤构造LDPC码的奇偶校验矩阵第1步,将数字序列三划分为多个包含行重个数字的数字组,根据所得到的每一个数字组中的数字,即如数字序列三所示的每一行,得到奇偶校验矩阵的每个分矩阵的第一行元素例如,如^:字序列三所示,其第一个数字组为536、1098、1156、1259、1889、2012、3529、3656、3739、3749、3907和3998,表示奇偶校验矩阵中第一个分矩阵的第一行,即奇偶校验矩阵的第一行中的第536列、第1098列、第1156列、第1259列、第1889列、第2012列、第3529列、第3656列、第3739列、第3749列、第3907列和第3998列的取值为1,第一个分矩阵的第一行中的其余列为0;对于其他分矩阵的第一行的取值,可以参照举例类推得到,在此不再赘述。第2步,将已确定第一行取值的每个分矩阵按列均匀划分为c个子矩阵;这里,由于本实施例中奇偶校验矩阵的循环子矩阵是72x72的矩阵,而码长为4608,因此,每个分矩阵中循环子矩阵的个数c=4608/72=64个;经划分之后,本实施例的奇偶校验矩阵将被划分为32行x64列=2048个循环子矩阵,且每个循环子矩阵的第一行元素的取值已经确定。第3步,针对每个循环子矩阵,采用将其第一行元素循环移位的方式得到该循环子矩阵中其他行元素的取值。例如,可以对第1行元素循环左移X位,得到第2行元素;对第2行元素循环左移x位,得到第3行元素,依此类推,即可得到从第2行到第72行的所有元素的取值。这里,当然也可以采取循环右移或者其他循环移位方式进行移位。经过上述第1步至第3步的操作之后,即可得到本实施例中非规则QC-LDPC码的奇偶校验矩阵。由于本实施例数字序列中存在256个数字,并且,每一个数字组中的任意两个数字对72取模所得的值互不相同,保证了每个循环子矩阵的同一行中最多只有一个1,因此,本实施例所得到的奇偶校验矩阵中将存在256个置换单位矩阵。本步骤中,得到奇偶校验矩阵之后,可以对其进行各种角度的旋转、行置换、列置换或改变循环子矩阵位置的任何变换。在步骤203中,按照与现有技术相同的方式利用所得到的奇偶校验矩阵,将输入数据变换为LDPC码字。至此,结束本发明实施例三中QC-LDPC码的实现方法的示例性流程。由上述实施例可见,本发明采用了以数字序列表示奇偶校^r矩阵、并对数字序列循环移位得到奇偶校验矩阵的方式,使得存储奇偶校验矩阵所需的存储空间达到了最小化。此外,由于本实施例的奇偶校验矩阵具有准循环的结构特性,使得在实际应用中,可以利用循环移位的特性实现快速寻址,节约了处理资源,简化了编码和译码操作,使编码和译码操作的复杂度得以降低。下面通过与现有技术的仿真对比,说明本发明实施例三中所提供的(4608,3096)非规则QC-LDPC码的性能。图6为本发明实施例三中(4608,3096)非规则QC-LDPC码在AWGN信道中采用BPSK调制的性能曲线示意图。本次仿真中,译码采用sum-product算法,最大迭代次数为50。参见图6,其中,直线601表示香农限;曲线602表示采用本发明(4608,3096)非规则QC-LDPC码进行编码、BPSK方式进行调制、然后在AWGN信道中传输、并采用SPA算法进行译码的信号的BER曲线;曲线603表示采用本发明(4608,3096)非*见则QC-LDPC码进4亍编码、BPSK方式进行调制、然后在AWGN信道中传输、并采用SPA算法进行i奪码的信号的BLER曲线;曲线604表示未经编码,直接采用BPSK调制,再经AWGN信道传输的信号的BER性能曲线;由图6可见,本发明(4608,3096)非规则QC-LDPC码的errorfloor非常低,并且,在BER^10^处,其性能曲线距离香农限小于1.5dB,比本发明实施例二中所实现的(4608,2304)非规则QC-LDPC码的性能更优。在上面的实施例中对本发明QC-LDPC码的实现方法进行了详细的说明,下面通过一个编码器示例说明本发明QC-LDPC码的编码器的具体实施方式。实施例四图7为本发明实施例四中QC-LDPC码的实现装置的结构示意图。参见图7,该实现装置包括存储模块710、校验矩阵生成模块720和码字生成模块730,其中,校验矩阵生成模块720中进一步包括数字序列分析单元721和循环移位单元722。图7所示实现装置中,存储模块710,用于存储数字序列,并向校验矩阵生成模块720中的数字序列分析单元721提供其所存储的数字序列;校验矩阵生成模块720中的数字序列分析单元721,用于根据存储模块710所提供的数字序列,以及LDPC码的行重,均匀划分数字序列得到多个包含所述行重个数字的数字组,并根据划分所得到的每一个数字序列、得到将奇偶校验矩阵按行均匀划分为多个分矩阵后的各个分矩阵的第一行元素,并将所得到的已确定第一行元素的每一个分矩阵发送给校验矩阵生成^t块720中的循环移位单元722;校验矩阵生成模块720中的循环移位单元722,用于将来自于数字序列分析单元721的每一个分矩阵按列均勻划分为方阵,得到该奇偶校验矩阵的已确定第一行元素的子矩阵,并^^艮据每一个子矩阵的第一行元素、采用循环移位的方式得到每一个子矩阵,这里,每一个子矩阵即构成了本实施例中的奇偶校验矩阵,将该奇偶校验矩阵发送给码字生成模块730;码字生成模块730,用于接收来自于校验矩阵生成模块720中的循环移位单元722的奇偶校验矩阵,并利用该奇偶校验矩阵,将输入数据变换为LDPC码字。在图7所示实现装置中,可以进一步包括校^r矩阵变换单元,该校^r矩阵变换单元,可以用于对循环移位单元722得到的奇偶校验矩阵进行各种角度的旋转、行置换、列置换或改变子矩阵位置等各种变换,然后将经过变换所得到的奇偶校验矩阵发送给码字生成模块730。该校验矩阵变换单元可以单独设置于本实施例的实现装置中,也可以设置于校验矩阵生成模块720中,或者也可以设置于其他模块之中。由上述实施例可见,本发明采用了以数字序列表示奇偶校验矩阵、并对数字序列循环移位得到奇偶校验矩阵的方式,使得存储奇偶校验矩阵所需的存储空间达到了最小化。此外,由于本实施例的奇偶4L睑矩阵具有准循环的结构特性,^使得在实际应用中,可以利用循环移位的特性实现快速寻址,节约处理资源,简化编码和译码操作,使编码和译码操作的复杂度得以P争低。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一类低密度奇偶校验码的实现方法,其特征在于,所述低密度奇偶校验码LDPC码为非规则LDPC码,且码长为4608、码率为43/64、行重为12或13,该方法包括以下步骤A、根据所述码长、码率以及行重,设置用于生成奇偶校验矩阵的数字序列,所述数字序列的长度为256,所述数字序列为<tablesid="tabl0001"num="0001"><table><tgroupcols="13"><colspeccolname="c001"colwidth="8%"/><colspeccolname="c002"colwidth="8%"/><colspeccolname="c003"colwidth="8%"/><colspeccolname="c004"colwidth="8%"/><colspeccolname="c005"colwidth="8%"/><colspeccolname="c006"colwidth="8%"/><colspeccolname="c007"colwidth="7%"/><colspeccolname="c008"colwidth="8%"/><colspeccolname="c009"colwidth="8%"/><colspeccolname="c010"colwidth="8%"/><colspeccolname="c011"colwidth="8%"/><colspeccolname="c012"colwidth="8%"/><colspeccolname="c013"colwidth="8%"/><thead></column></row><row><column><entrymorerows="1">536</entry><entrymorerows="1">1098</entry><entrymorerows="1">1156</entry><entrymorerows="1">1259</entry><entrymorerows="1">1889</entry><entrymorerows="1">2012</entry><entrymorerows="1">3529</entry><entrymorerows="1">3656</entry><entrymorerows="1">3739</entry><entrymorerows="1">3749</entry><entrymorerows="1">3907</entry><entrymorerows="1">3998</entry><entrymorerows="1"></entry></column></row></thead><tbody></column></row><row><column><entrymorerows="1">100</entry><entrymorerows="1">322</entry><entrymorerows="1">977</entry><entrymorerows="1">1026</entry><entrymorerows="1">1672</entry><entrymorerows="1">1940</entry><entrymorerows="1">2994</entry><entrymorerows="1">3073</entry><entrymorerows="1">3457</entry><entrymorerows="1">3677</entry><entrymorerows="1">4207</entry><entrymorerows="1">4382</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">743</entry><entrymorerows="1">1868</entry><entrymorerows="1">3512</entry><entrymorerows="1">3595</entry><entrymorerows="1">3605</entry><entrymorerows="1">3697</entry><entrymorerows="1">3763</entry><entrymorerows="1">3854</entry><entrymorerows="1">3900</entry><entrymorerows="1">4072</entry><entrymorerows="1">4230</entry><entrymorerows="1">4310</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">1199</entry><entrymorerows="1">1227</entry><entrymorerows="1">1429</entry><entrymorerows="1">3351</entry><entrymorerows="1">3523</entry><entrymorerows="1">3691</entry><entrymorerows="1">3782</entry><entrymorerows="1">3828</entry><entrymorerows="1">3895</entry><entrymorerows="1">4064</entry><entrymorerows="1">4150</entry><entrymorerows="1">4272</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">1079</entry><entrymorerows="1">2022</entry><entrymorerows="1">2173</entry><entrymorerows="1">2260</entry><entrymorerows="1">3194</entry><entrymorerows="1">3710</entry><entrymorerows="1">3823</entry><entrymorerows="1">3928</entry><entrymorerows="1">3992</entry><entrymorerows="1">4162</entry><entrymorerows="1">4389</entry><entrymorerows="1">4393</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">419</entry><entrymorerows="1">1362</entry><entrymorerows="1">1384</entry><entrymorerows="1">2475</entry><entrymorerows="1">2553</entry><entrymorerows="1">3547</entry><entrymorerows="1">3638</entry><entrymorerows="1">3856</entry><entrymorerows="1">4006</entry><entrymorerows="1">4090</entry><entrymorerows="1">4448</entry><entrymorerows="1">4531</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">144</entry><entrymorerows="1">146</entry><entrymorerows="1">1580</entry><entrymorerows="1">1648</entry><entrymorerows="1">2212</entry><entrymorerows="1">3449</entry><entrymorerows="1">3612</entry><entrymorerows="1">3784</entry><entrymorerows="1">4018</entry><entrymorerows="1">4089</entry><entrymorerows="1">4124</entry><entrymorerows="1">4469</entry><entrymorerows="1">4561</entry></column></row></column></row><row><column><entrymorerows="1">502</entry><entrymorerows="1">1508</entry><entrymorerows="1">2140</entry><entrymorerows="1">2508</entry><entrymorerows="1">2757</entry><entrymorerows="1">2819</entry><entrymorerows="1">2909</entry><entrymorerows="1">2978</entry><entrymorerows="1">3494</entry><entrymorerows="1">3540</entry><entrymorerows="1">4127</entry><entrymorerows="1">4555</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">2</entry><entrymorerows="1">683</entry><entrymorerows="1">791</entry><entrymorerows="1">1313</entry><entrymorerows="1">2376</entry><entrymorerows="1">2991</entry><entrymorerows="1">3118</entry><entrymorerows="1">3183</entry><entrymorerows="1">3305</entry><entrymorerows="1">3468</entry><entrymorerows="1">3980</entry><entrymorerows="1">4055</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">611</entry><entrymorerows="1">719</entry><entrymorerows="1">767</entry><entrymorerows="1">795</entry><entrymorerows="1">997</entry><entrymorerows="1">3254</entry><entrymorerows="1">3568</entry><entrymorerows="1">3632</entry><entrymorerows="1">3802</entry><entrymorerows="1">3873</entry><entrymorerows="1">3983</entry><entrymorerows="1">4102</entry><entrymorerows="1">4145</entry></column></row></column></row><row><column><entrymorerows="1">171</entry><entrymorerows="1">436</entry><entrymorerows="1">1169</entry><entrymorerows="1">1954</entry><entrymorerows="1">2052</entry><entrymorerows="1">2409</entry><entrymorerows="1">2693</entry><entrymorerows="1">2762</entry><entrymorerows="1">3496</entry><entrymorerows="1">3801</entry><entrymorerows="1">3836</entry><entrymorerows="1">4030</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">59</entry><entrymorerows="1">99</entry><entrymorerows="1">258</entry><entrymorerows="1">930</entry><entrymorerows="1">1053</entry><entrymorerows="1">1097</entry><entrymorerows="1">2531</entry><entrymorerows="1">2621</entry><entrymorerows="1">2690</entry><entrymorerows="1">2863</entry><entrymorerows="1">2902</entry><entrymorerows="1">3658</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">265</entry><entrymorerows="1">2090</entry><entrymorerows="1">2223</entry><entrymorerows="1">2282</entry><entrymorerows="1">2418</entry><entrymorerows="1">3271</entry><entrymorerows="1">3366</entry><entrymorerows="1">3502</entry><entrymorerows="1">3586</entry><entrymorerows="1">3657</entry><entrymorerows="1">3978</entry><entrymorerows="1">4036</entry><entrymorerows="1">4139</entry></column></row></column></row><row><column><entrymorerows="1">309</entry><entrymorerows="1">371</entry><entrymorerows="1">709</entry><entrymorerows="1">1374</entry><entrymorerows="1">1483</entry><entrymorerows="1">2331</entry><entrymorerows="1">3408</entry><entrymorerows="1">3514</entry><entrymorerows="1">3585</entry><entrymorerows="1">3695</entry><entrymorerows="1">3906</entry><entrymorerows="1">4067</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">389</entry><entrymorerows="1">1666</entry><entrymorerows="1">1834</entry><entrymorerows="1">2079</entry><entrymorerows="1">2138</entry><entrymorerows="1">2337</entry><entrymorerows="1">2873</entry><entrymorerows="1">2894</entry><entrymorerows="1">3548</entry><entrymorerows="1">3892</entry><entrymorerows="1">4103</entry><entrymorerows="1">4151</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">809</entry><entrymorerows="1">932</entry><entrymorerows="1">1468</entry><entrymorerows="1">1564</entry><entrymorerows="1">1594</entry><entrymorerows="1">3670</entry><entrymorerows="1">3713</entry><entrymorerows="1">3762</entry><entrymorerows="1">3820</entry><entrymorerows="1">3923</entry><entrymorerows="1">4079</entry><entrymorerows="1">4107</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">493</entry><entrymorerows="1">570</entry><entrymorerows="1">1267</entry><entrymorerows="1">1309</entry><entrymorerows="1">2607</entry><entrymorerows="1">2729</entry><entrymorerows="1">3078</entry><entrymorerows="1">3158</entry><entrymorerows="1">3381</entry><entrymorerows="1">3598</entry><entrymorerows="1">3851</entry><entrymorerows="1">3959</entry><entrymorerows="1">4007</entry></column></row></column></row><row><column><entrymorerows="1">30</entry><entrymorerows="1">242</entry><entrymorerows="1">327</entry><entrymorerows="1">856</entry><entrymorerows="1">2470</entry><entrymorerows="1">2535</entry><entrymorerows="1">3526</entry><entrymorerows="1">3618</entry><entrymorerows="1">3676</entry><entrymorerows="1">3779</entry><entrymorerows="1">3935</entry><entrymorerows="1">4165</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">549</entry><entrymorerows="1">593</entry><entrymorerows="1">1123</entry><entrymorerows="1">1791</entry><entrymorerows="1">2606</entry><entrymorerows="1">2787</entry><entrymorerows="1">3048</entry><entrymorerows="1">3237</entry><entrymorerows="1">3451</entry><entrymorerows="1">3497</entry><entrymorerows="1">3546</entry><entrymorerows="1">3863</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">170</entry><entrymorerows="1">1584</entry><entrymorerows="1">1719</entry><entrymorerows="1">1778</entry><entrymorerows="1">1899</entry><entrymorerows="1">2415</entry><entrymorerows="1">3165</entry><entrymorerows="1">3743</entry><entrymorerows="1">3791</entry><entrymorerows="1">3819</entry><entrymorerows="1">3932</entry><entrymorerows="1">4120</entry><entrymorerows="1"></entry></column></row></column></row><row><column><entrymorerows="1">640</entry><entrymorerows="1">870</entry><entrymorerows="1">979</entry><entrymorerows="1">1647</entry><entrymorerows="1">1787</entry><entrymorerows="1">1827</entry><entrymorerows="1">2004</entry><entrymorerows="1">2253</entry><entrymorerows="1">3671</entry><entrymorerows="1">3719</entry><entrymorerows="1">3747</entry><entrymorerows="1">4026</entry><entrymorerows="1"></entry></column></row></tbody></tgroup></column></row><table></tables>B1、根据所述码长和码率构造一个1512行×4608列的奇偶校验矩阵,将所述奇偶校验矩阵按行均匀划分为21个72行×4608列的分矩阵;B2、将所述数字序列划分为21个数字组,每个数字组中包含12或13个数字,且每个数字组对应一个分矩阵,以所述每个数字组中的数字作为相应分矩阵的第一行元素中1所处的列数,确定各个分矩阵的第一行元素;B3、将所述各个分矩阵按列均匀划分为64个72行×72列的子矩阵;B4、根据每个子矩阵中已经确定的第一行元素,采用循环移位的方式得到每个子矩阵的其他行元素;C、利用所述奇偶校验矩阵,将输入数据变换为LDPC码字。2、根据权利要求1所述的方法,其特征在于,步骤B4所述循环移位为循环左移和/或循环右移。3、根据权利要求1所述的方法,其特征在于,所述奇偶校验矩阵中包含256个置换单位矩阵。4、根据权利要求1所述的方法,其特征在于,所述每个数字组中的任意两个数字对所述子矩阵的行数72取模所得的值互不相同。5、根据权利要求1至4任一项所述的方法,其特征在于,在所迷步骤B4之后,进一步包括对所得到的奇偶校验矩阵进行各种角度的旋转和/或进行行置换和/或进行列置换和/或改变所述子矩阵的位置。全文摘要本发明公开了一类低密度奇偶校验码的实现方法,该方法包括以下步骤A.根据预先设定的码长、码率以及行重,设置用于生成奇偶校验矩阵的数字序列;B.根据所述数字序列,采用循环移位的方式构造低密度奇偶校验码(LDPC)码的奇偶校验矩阵;C.利用所述奇偶校验矩阵,将输入数据变换为LDPC码字。应用本发明能够降低存储奇偶校验矩阵所需的存储空间。文档编号H03M13/00GK101340262SQ20081009693公开日2009年1月7日申请日期2006年11月17日优先权日2006年6月14日发明者王加庆,鲍东山申请人:北京新岸线移动多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1