一种低密度奇偶校验码的编码方法

文档序号:7612721阅读:128来源:国知局
专利名称:一种低密度奇偶校验码的编码方法
技术领域
本发明属于信息论信道编码技术领域,具体涉及一种低密度奇偶校验(LDPC)码的编码方法,本发明能与3G移动通信标准兼容,主要用于宽带无线多媒体通信。
背景技术
自香农建立信息论以来的50多年中,信道编码理论在深空通信与卫星通信、数据传输、数据存储、移动通信、文件传递和数字音频视频传输等多个领域得到广泛应用。并由此产生了五类标准,即用于深空和卫星通信的空间数据系统编码标准、用于高速数据调制解调的格栅编码标准、用于磁盘压缩存储系统的RS编码标准、移动蜂窝通信编码标准、用于HDLC协议的CRC编码标准。目前,正在研究的下一代网络(NGN)是软交换系统网、IPv6数据互联网、第三代移动通信网、各种宽带接入网、智能光纤传输网等所有新一代网络技术的有机融合,要求网络具有更高数据传输率、更大系统容量、更高频谱利用率、更适合各种信道条件和更高QoS,以期实现集话音、图像、视频和数据为一体的多媒体综合业务的传输。面对下一代网络的挑战,现有纠错码技术很难满足其传输要求,于是一批新型高效的纠错码技术应运而生。其中性能最好、计算复杂度最低的纠错码之一是低密度奇偶校验(LDPC)码。
1993年,C.Berrou等向世界公布了Turbo码的研究成果,使信道编码理论的研究向前迈进了革命性的一步。受Turbo码迭代技术的提示,人们再次想到了R.gallager在1962年提出的低密度奇偶校验码(LDPC码)及其迭代解码算法[2]。九十年代后期,Spielman et al.[3]和MacKay et al.重新发现并发展了LDPC码。目前LDPC码已经成为纠错码领域的研究热点,并成为Turbo码的竞争对手,迭代信号处理技术也渗透到通信链路的各个环节中。在北美、欧洲,日本等国家和地区,已有多个研究小组在从事LDPC码的研究工作。Turbo码的应用研究正在走向成熟,最近已成为第三代(3G)移动通信标准的一部分。LDPC码的珊珊来迟,几乎要错过这个标准。但有专家认为,由于3G系统部署的延迟,使LDPC码编解码系统很有可能参与3G标准。最近,一个LDPC码的基本解决方案已被DVB卫星通信标准采纳。可以说LDPC码和Turbo码是迄今为止实验与应用验证逼近香农限的信道纠错码类,它们将成为当今和今后数年通信可靠性研究的重要领域。
研究表明LDPC码可在未来的高速光纤通信、宽带无线多媒体通信、IPv6互联网通信、空间通信、计算机存储与传输系统等多个通信领域的差错控制保护中得到应用。自LDPC码复出以来,通信工程师和编码理论家进行了大量的研究工作,这些工作包括1)LDPC码的极限性能分析,如密度进化理论、容量限、最小距离限等;2)高效迭代解码算法研究,如BP算法、MP算法、和积算法、最小和算法和位翻转算法,包括它们的性能分析与改进、有效实现设计与收敛性分析;3)结构分析与构造方法的设计,如基于稀疏偶图、因子图或Tanner图的规则和不规则码的构造、有限群上和多元码的构造、随机结构码和代数结构码的设计等;4)编码算法设计,主要是线性开销编码算法的研究;5)LDPC码在多个数字处理领域的应用,如LDPC码在磁记录信道、高速光纤通信、深空与卫星通信、数字用户线、与移动通信的CDMA和OFDM技术的结合、与调制技术的结合等。这种对LDPC码多方位、不同层面、大力度的研究投入表明LDPC码极具应用潜力。
LDPC码定义为稀疏奇偶校验矩阵H的零空间,由Gallager构造的H矩阵的结构可归纳如下1)每列含1的个数是一个固定的较小数dv,dv≥3;2)每行含1的个数也是固定的较小数dc,dc≥dv;3)任何两列之间同为1的行数(称为重叠数)不超过1,即H矩阵中不含四角为1的小方阵,也即无4线循环;4)dv和dc均远小于码字长度N和矩阵的行数M(=Ndv/dc),且当N→∞时,dc/N=dv/M→0,表明H矩阵是稀疏的。这是30多年前Gallager设计的H矩阵,即使当时申请了专利,现在也已经失效了。目前大型稀疏奇偶校验矩阵H的存储和快速生成方法,也就是LDPC码的代数构造问题,以及线性开销LDPC码编码器的设计问题,一直是阻碍LDPC码走向应用的瓶颈问题。关于H矩阵的代数构造方法有如下一些有代表性的研究成果1)LDPC码的再发现者MacKay提出了用计算机搜索随机规则LDPC码的方法,随机产生不含4线循环的H矩阵,当码率为1/2,码长大于104时,性能达到离香农限1.5dB左右,他没有提出规则LDPC码的代数构造方法,随机码只有理论研究价值,没有实际应用价值;2)Yu Kou、Heng Tang等提出了基于有限几何的LDPC码,Bane Vasic和Bassem Ammar提出利用组合数学的分支——均衡不完全分组设计(BIBD),来构造LDPC码,这两类代数结构LDPC码的不足之处是编码参数的改变不够灵活,如不能先给定码长和码率的值,然后构造H矩阵,而是先根据算法规则构造H矩阵,然后根据H矩阵确定码参数,这样确定的码参数难以与现有标准兼容,这两类码在高码率,长分组长度时,具有很好的性能;3)Gallager在其博士论文中只给出了(N,3,4)特定结构LDPC码稀疏奇偶校验矩阵H的构造算法,其H矩阵中的分块子矩阵是由单位矩阵及其一组循环移位矩阵构成,目前称为准循环LDPC码(QC-LDPC码),他没有给出任意结构的稀疏奇偶校验矩阵H的构造方法,也没有提出编码器的设计方法,R.M.Tanner和Marc.P.C.Fossorier在Gallager的研究基础上对QC-LDPC码进行了深入研究,他们的基本思想是H矩阵由一组分块矩阵按一定的规则排列,这组分块矩阵由单位矩阵及其单位矩阵的一组循环移位矩阵组成。二者的不同之处在于,分块矩阵在H矩阵中的排列规则不同。此外在Tanner的设计中,要求分块矩阵的维数u是素数或素数的偶数倍,这种限制导致码长和码率的取值不灵活,码的数量较少。在Fossorier的设计中,u的限制条件较宽,可以取素数和其它整数,但不能取2的幂这一类整数。对u的限制致使QC-LDPC码的码率参数选择不灵活,如不能设计码率为0.5的码,而且QC-LDPC码的性能为3-5dB,似乎并不是很好。

发明内容
本发明的目的在于提供一种低密度奇偶校验码的编码方法,该编码方法所获得的低密度奇偶校验码具有计算复杂度低和码参数设计灵活的特点,该编码方法还提供了一个稀疏奇偶校验矩阵的构造方法。
本发明提供的一种低密度奇偶校验码的编码方法,其步骤为(1)确定码率R和码长N,并计算校验位长度M;(2)构造M×M的Hp矩阵 第一行的第一位是“1”元素,其余位是“0”元素;第二行的第一、二位是“1”元素,其余位是“0”元素;从第三行开始,下一行是由上一行循环右移1位得到;(3)根据码率R,确定Hd矩阵的行重量t和列重量q,再计算子矩阵维数u,其中t/(q+t)=R,ut=K,K为信息位长度;(4)利用等差数列构造D矩阵,D矩阵定义为对矩阵元素在GF(2)有限域上取值的u×u阶方阵,它的每行、每列均只有一个“1”元素,其余元素都是“0”;(5)利用D矩阵构造Hd矩阵;(6)求码字序列c,并构造H矩阵,H=[HpHd];求码字序列c的过程为①对任给的信息序列cd={dj,j=1,2,...K},利用Hp=[hijp:i=1,2,...,M,j=1,2,...,M]]]>和Hd=[hijd:i=1,2,...,M,j=1,2,...,K]]]>矩阵,根据下式HcT=[HpHd]cpcd=Hpcp+Hdcd=0]]>②令cp={pi,i=1,2,...M},p1=Σjh1jddj]]>递推可得pi=pi-1+Σjhijddj]]>③求码字序列c=[cpcd]={cl,l=1,2,...N}。
上述步骤(4)的具体步骤可以为(4.1)利用等差数列构成V矢量,等差数列的通项公式是au=a1+(u-1)b,其中公差b为大于2的整数,u为矢量V的维数,当首项a1的取值分别为1,2,...,b时,分别带入等差数列的通项公式进行计算,对应得到b个序列,将这b个序列并置在一起构成未经循环移位的第0个u维矢量V0,对u维矢量V0循环左移或右移u-1次,得到个数为u的一组V矢量V0,V1,V2,...vu-1;(4.2)利用V矢量构造D′矩阵,二者的对应关系为矢量中每个元素所在位置的序号表示矩阵中“1”元素所在列的序号,矢量中元素的值表示矩阵中“1”元素所在行的序号,据此方法由一组V矢量V0,V1,V2,...Vu-1对应得到一组正交D′矩阵D0′,D1′,D2′,...,Du-1′;(4.3)从正交D′矩阵D0′,D1′,D2′,...,Du-1′中任选一矩阵作为分块子矩阵D0,对其进行循环移位得到u个分块子矩阵D0,D1,D2,...,Du-1;上述步骤(5)的具体步骤可以为Hd矩阵的第一行第一列放置D0分块子矩阵,其余各行各列不能再出现D0分块子矩阵;对D0分块子矩阵循环左移或右移gs次,其中s=1,2,...,t-1,g从2开始依次按行递增取(q-1)个素数,对应得到Dg,D2g,...,D(t-1)g,依次将其放置在Hd矩阵的第2,3,...,q行或第2,3,...,t列;得到Hd矩阵。
步骤(4)的具体步骤还可以为(4.1)利用等差数列构成V矢量,等差数列的通项公式是au=a1+(u-1)b,其中公差b为大于2的整数,u为矢量V的维数,当首项a1的取值分别为1,2,...,b时,分别带入等差数列的通项公式进行计算,对应得到b个序列,将这b个序列并置在一起构成u维矢量V0(4.2)由v0矢量得到D0′矩阵,对D0′矩阵进行循环移位操作,得到一组正交D′矩阵D0′,D1′,D2′,...,Du-1′;(4.3)从正交D′矩阵D0′,D1′,D2′,...,Du-1′中任选一矩阵作为分块子矩阵D0,对其进行循环移位得到u个分块子矩阵D0,D1,D2,...,Du-1;步骤(5)的具体步骤还可以为Hd矩阵的第一行第一列放置D0分块子矩阵,其余各行各列不能再出现D0分块子矩阵;对D0分块子矩阵循环左移或右移gs次,其中s=1,2,...,t-1,g从2开始依次按行递增取(q-1)个素数,对应得到Dg,D2g,...,D(t-1)g,依次将其放置在Hd矩阵的第2,3,...,q行或第2,3,...,t列,得到Hd矩阵。
本发明提出用等差数列来构造稀疏奇偶校验矩阵H的方法,如果将H矩阵分解为校验位对应的矩阵Hp和信息位对应的矩阵Hd,即H=[HpHd],Hd矩阵可用等差数列来构成。本发明提出利用等差数列来产生D矢量和D矩阵,D矩阵是循环移位正交矩阵,以一组正交D矩阵作为分块子矩阵,按一定规则排列构成H矩阵,从而产生LDPC码,这种码适合于中低码率,如CDMA2000的1/2、1/3、1/4和1/6码率,适合于长、中、短分组长度,如CDMA2000的192到20736的所有码长,有较好的性能,H矩阵的构造复杂度和编码器的设计复杂度均与分组长度N成线性关系,与现有代数结构码不同的最突出的优点是,码参数的取值非常灵活,可以根据给定的码率和码长设计H矩阵。具体而言,本发明具有以下二个特点(1)计算复杂度低由下面的设计步骤可以看出,设计Hp、Hd和H的算法几乎不需要做加法和乘法,只需做循环移位,所以计算复杂度相当低,可视为零;编码器的设计算法中,计算量主要是下面(4)式的递推计算,求解一个pi,需要做K次乘法,(K+1)次加法,如果不考虑与“0”做加法和乘法,则需要做t次乘法,(t+1)次加法;一共需要求M个pi,所以需要做Mt次乘法,M(t+1)次加法。总的计算量为M(2t+1)次,用N表示即为M(2t+1)=N(1-R)(2t+1),因为0<R<1,所以计算量不到码长N的2t倍,即总计算量与码长N成线性关系。
(2)码参数设计灵活基于等差数列(公差b2≤b≤u/2)的LDPC码,可以根据已知的码率R和码长N,计算Hd和H矩阵的结构参数,从而构造Hd和H矩阵,至使这种码类能与现有标准兼容,具有广泛的应用潜力,这是现有代数结构LDPC码类还没有达到的。


图1为本发明方法的流程图。
具体实施例方式
本发明提供了一种可与现有标准兼容的准规则LDPC码编码方法。LDPC码定义为稀疏奇偶校验矩阵H的零空间,即有HcT=0,其中c是码字序列。由定义可知,设计LDPC码,关键是设计H矩阵的结构,H矩阵结构的优与劣会产生三个方面的影响一是迭代解码时,要用到H矩阵,其结构会影响迭代解码的性能,例如“1”元素越多,分布越不均匀,性能越好;二是迭代解码算法的复杂度与H矩阵的结构有关,也就是“1”元素的个数越少,解码复杂度越低;三是应将H矩阵的结构设计成有利于编码器的实现,最好是将信息位和校验位对应的矩阵分开,也就是将H矩阵设计成系统形式的。
本发明的基本原理如下为了构造H矩阵,可将矩阵H分解为校验位矩阵Hp和信息位矩阵Hd,Hp由双对角下三角矩阵构成,Hd矩阵由一组正交D矩阵经适当排列构成,D矩阵的结构是每行、每列均只有一个1的方阵,D矩阵所对应的V矢量由等差数列构成,以D矩阵作子矩阵,对D矩阵的排列组合构成各种形式的稀疏奇偶校验矩阵H。对任给的信息序列cd,根据HcT=[HpHd]cpcd=Hpcp+Hdcd=0]]>式,求解校验位序列cp,由此求解码字序列c=[cpcd]。
本发明的流程如图1所示,下面对其作进一步详细的说明。
(1)码参数R和N的确定监测信道状态信息,根据信道情况自适应的选择码参数R和N。按照CDMA2000标准,码率R的取值范围是1/2、1/3、1/4和1/6,码长N的取值范围是192、288、3072、4608、6144、9216、12288、20736。需要说明的是码率R和码长N的取值范围不限于CDMA2000标准,从原理上讲,只要构造H矩阵的结构参数N、M、列重量、行重量和分块矩阵维数u保持正整数,那么R可以取任意正实数,N可以取任意正整数。具体做法是,根据输入信息序列cd提取信息序列长度K,根据信道状态信息自适应调整码率R,然后计算码长N,即R=K/N,计算校验位长度M,M=N-K。
(2)构造Hp矩阵已知参数M,就可以构造M×M的Hp=[hijp:i=1,2,...,M,j=1,2,...,M]]]>矩阵,它由双对角下三角矩阵构成,形式如下
具体构造算法是第一行的第一位是“1”元素,其余位是“0”元素;第二行的第一、二位是“1”元素,其余位是“0”元素;从第三行开始,下一行是由上一行循环右移1位得到。
(3)Hd矩阵的结构参数行重量t、列重量q和u的确定已知码率R,可以确定Hd矩阵的行重量t和列重量q,即有R=t/(t+q),q的取值可以是大于等于3的任意正整数,t可以取任意正整数。例如q=3,t=1,则R=1/4;q=3,t=3,则R=1/2。也就是说已知R,给定t,可以确定q;或者给定q,可以求得t。必须注意的是在满足R=t/(t+q)的条件下,要保证求得的q(或t)是正整数。已知信息位长度K,并确定了行重量t之后,可以确定子矩阵维数u,即K=ut。
(4)D矩阵的构造本发明主要是利用等差数列设计稀疏奇偶校验矩阵H,对H矩阵进行分块设计,分块子矩阵采用D矩阵,D矩阵是这样定义的对矩阵元素在GF(2)有限域上取值的u×u阶方阵(u为任意正整数),它的每行、每列均只有一个“1”元素,其余元素都是“0”,则该矩阵称为D矩阵。
D矩阵可表示成矢量的形式,称为V矢量,在许多文献中每行、每列只有一个1的子矩阵均有应用,所不同的是这里D矩阵所对应的V矢量由等差数列形成,V矢量与D矩阵的对应关系是矢量中每个元素所在位置的序号表示矩阵中“1”元素所在列的序号,矢量中元素的值表示矩阵中“1”元素所在行的序号;对u维矢量V0循环左移(或右移)u-1次,得到一组(共u个)V矢量V0,V1,V2,...Vu-1,对应一组正交D矩阵D0,D1,D2,...,Du-1。注意D0(或V0)的下标0表示由等差数列构成的未经移位的第0个D矩阵(或第0个V矢量),对D0矩阵循环移位一次得D1矩阵,对D0矩阵循环移位u-1次后,依次得到D1,D2,D3,...,Du。
首先利用等差数列构成V矢量,等差数列的通项公式是au=a1+(u-1)b,例如矢量长度为u=12,公差为b=2,当首项为a1=1时,得到等差数列1,3,5,7,9,11,当a1=2时,得到另一个等差数列2,4,6,8,10,12,将两个数列合并在一起,并表示成矢量形式,即为V0矢量(1,3,5,7,9,11,2,4,6,8,10,12),数列的合并方式也可以是第二个数列在前,第一个数列在后,即(2,4,6,8,10,12,1,3,5,7,9,11);又如,取公差b=3,当a1=1时,得到等差数列1,4,7,10,当a1=2时,得到等差数列2,5,8,11,当a1=3时,得到等差数列3,6,9,12,将三个数列合并在一起,得另一个v0矢量(1,4,7,10,2,5,8,11,3,6,9,12),三个数列可以有六种排列方式,因此可以得到六个不同的v0矢量。当b=1时,v0矢量为(1,2,3,4,5,6,7,8,9,10,11,12),对应的D0矩阵是单位矩阵,由这个单位矩阵及其一组循环矩阵所生成的LDPC码正是已被多人研究的准循环QC-LDPC码,所以b=1的情况不在本发明的保护范围内。上述4个V0矢量所对应的D0矩阵展开如下100000000000000000100000010000000000000000010000001000000000000000001000000100000000000000000100000010000000000000000010000001000000000000000001]]>000000100000100000000000000000010000010000000000000000001000001000000000000000000100000100000000000000000010000010000000000000000001000001000000]]>100000000000000010000000000000001000010000000000000001000000000000000100001000000000000000100000000000000010000100000000000000010000000000000001]]>100000000000010000000000001000000000000100000000000010000000000001000000000000100000000000010000000000001000000000000100000000000010000000000001]]>
由上述4个V0矢量展开所得到的4个D0矩阵均是每行、每列只有一个“1”元素的方阵,对这4个D0方阵进行循环左移15次,能得到4组彼此正交的16个D方阵,由任意一组D方阵按一定规则进行排列组合,均能构成H矩阵或Hd矩阵,这说明由等差数列构成LDPC码时,其码集合中的码数量是相当丰富的。需要强调的是第四个单位矩阵及其一组循环移位正交矩阵所构成的H矩阵或Hd矩阵不在本发明的保护范围之内。
(5)Hd矩阵的构成以一组正交D方阵作为分块子矩阵,对公差b≥2的一组正交D方阵进行排列组合可构造各种形式的稀疏矩阵Hd=[hijd:i=1,2,...,M,j=1,2,...,K];]]>设由等差数列构成的未经循环移位的第0个D方阵为D0,一个可有效执行的利用D0分块子矩阵构造Hd矩阵的方法说明如下Hd矩阵的第一行第一列放置D0分块子矩阵,其余各行各列不能再出现D0分块子矩阵;对D0分块子矩阵循环左移(或右移)2s(s=1,2,...,t-1)次,对应得到D2,D4,D6,D8,D10...,将其放置在Hd矩阵的第二行(从第二列开始);对D0分块子矩阵循环左移(或右移)3s(s=1,2,...,t-1)次,对应得到D3,D6,D9,D12,D15...,将其放置在Hd矩阵的第三行(从第二列开始);对D0分块子矩阵循环左移(或右移)5s(s=1,2,...,t-1)次,对应得到D5,D10,D15,D20,D25...,将其放置在Hd矩阵的第四行(从第二列开始);对D0分块子矩阵循环左移(或右移)7s(s=1,2,...,t-1)次,对应得到D7,D14,D21,D28,D35...,将其放置在Hd矩阵的第五行(从第二列开始);......
继续操作下去直到第q行分块子矩阵,需要放置分块移位矩阵的行数是q-1行,每一行对D0分块子矩阵循环移位次数是素数g(g=2,3,5,7,11,13,17,...)和素数g的倍数gs(s=1,2,...,t-1),素数的值按行递增。由上述算法构造的Hd=[hijd:i=1,2,...,M,j=1,2,...,K]]]>矩阵如下
由(2)式构成的Hd矩阵是一个q×t的矩阵阵列,Hd矩阵由q行、t列D方阵构成,Hd矩阵的维数是qu×tu=M×K。
(6)求解码字序列C设计构造编码器的方法,求解码字序列c。对任给的信息序列cd={dj,j=1,2,...K},利用上面构造的Hp=[hijp:i=1,2,...,M,j=1,2,...,M]]]>和Hd=[hijd:i=1,2,...,M,j=1,2,...,K]]]>矩阵,根据下面的(3)式HcT=[HpHd]cpcd=Hpcp+Hdcd=0---(3)]]>求解校验位序列cp,由于Hp的结构是双对角下三角矩阵,所以利用(3)式求解校验位序列cp时,不需要对Hp矩阵求逆,而是通过回代和递推的方法,如下面(4)式求解cp={pi,i=1,2,...M}p1=Σjh1jddj]]>递推可得pi=pi-1+Σjhijddj---(4)]]>由此求解码字序列c=[cpcd]={cl,l=1,2,...N}。需要说明的是表面上看(4)式的两个求和表达式有K项相加,实际上由于Hd矩阵的每行只有t个“1”,所以每次求和,(4)式的两个表达式只有t项相加。
(7)H矩阵的构成从上述的步骤(1)到步骤(6)可以看出,从输入信息序列cd到输出码字c的整个编码器设计过程中,并没有用到H矩阵,但在一个终端的编解码系统中,需要用到H矩阵进行解码,所以这里仍然需要构造H矩阵,以便完成整个过程。将(1)式的Hp矩阵和(2)式的Hd矩阵并置在一起,得如下的H矩阵
由(5)式H矩阵的零空间所定义的LDPC码是基于等差数列的准规则LDPC码,它的码率为R=t/(t+q),码长为N=u(t+q)。
实例本实例以移动通信标准CDMA2000的码参数R=1/2,N=192为例,给出基于等差数列的LDPC码编码器具体实现方法,对1/2码率而言,校验位和信息位是相等的,即M=K=192/2=96,Hd矩阵的列重量和行重量的取值也是相等的,可以取3、4、5和6,这里取q=t=4,于是求得D矩阵的维数u=96/4=24,编码器的输入是信息序列cd={dj,j=1,2,...96},编码器的输出是码序列c={cl,l=1,2,...192}。
码参数R和N可以根据信道状态反馈信息和输入信息序列进行自适应选取,根据确定的码参数R和N值计算结构参数q、t和u,编码器中每个矩阵方框的实现算法如下1.D矩阵的设计根据等差数列公式au=a1+(u-1)b,根据上面的计算这里数列长度u=24,公差b(2≤b≤u/2)可以取任意正整数,例如,b=4,那么首项a1可以取1、2、3和4,因此有4段数列,共有1×2×3×4=4!=24种排列,这里采用首项a1取值的顺序排列,当a1=1时,得数列(1,5,9,13,17,21),当a1=2时,得数列(2,6,10,14,18,22),当a1=3时,得数列(3,7,11,15,19,23),当a1=4时,得数列(4,8,12,16,20,24),将上述4段数列顺序合并,得到24位元素的V矢量V0=(1,5,9,13,17,21,2,6,10,14,18,22,3,7,11,15,19,23,4,8,12,16,20,24),将V0矢量循环左移(或右移)23次,得到一组(u=24个)V矢量,对应一组(u=24个)彼此正交的D矩阵,如果u的取值足够大,那么就有足够多的正交D矩阵作为子矩阵,用来构造H矩阵。
2.Hd矩阵的设计根据(2)式Hd矩阵的设计算法,对于u=24的例子,可设计一个q=t=4,K=96的Hd矩阵如下
Hd=D0D0D0D0D0D2D4D6D0D3D6D9D0D5D10D15---(6)]]>由上式可以看出,虽然有24个正交D矩阵,但(6)式只用到了10个,其中D0矩阵的最大循环移位数是15,所以(6)式中不会出现4线循环。实际上,u可以取任意正整数,q可以取2,3,4,5,6,7,8,...任意正整数,对应u=24的t可以取1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16...任意正整数。
3、Hp矩阵的设计Hp矩阵是双对角下三角矩阵,对u=24,有M=96,用计算机构造一个96×96的双对角下三角矩阵,具体做法是第一行的第一位是“1”元素,其余位是“0”元素;第二行的第一、二位是“1”元素,其余位是“0”元素;从第三行开始,下一行是由上一行循环右移1位得到。Hp矩阵如(1)式重写如下 4.H矩阵的设计将上面的(7)式Hp矩阵和(6)式Hd矩阵级联在一起得到如下H矩阵 (8)式的H矩阵的零空间给出了基于等差数列的准规则LDPC码,设计参数为码率R=t/(q+t)=4/(4+4)=1/2,码长N=u(q+t)=24×(4+4)=192。到此可以看出,可以遵循这样的设计规则,首先给出码率和码长的值R和N,然后计算H矩阵的结构参数t、q和u,最后构造H矩阵,因此这个设计可以与CDMA2000标准兼容。
5.LDPC码编码器设计由于将H矩阵构造成系统形式的H=[HpHd],相应地将码序列也分解为校验位和信息位c=[cpcd],任给信息序列cd={dj,j=1,2,...96},由(3)式HcT=[HpHd]cpcd=Hpcp+Hdcd=0,]]>可以求解校验序列cp;由于Hp设计成了双对角下三角矩阵,因此在求解(3)式时,不需要对Hp矩阵求逆,而是先求第一行,得到p1,然后采用回代和递推的方式求解下面各行,得到p2,p3...直到最后一行,最终求得cp={pi,i=1,2,...96},根据(4)式,计算表达式如下p1=Σj=196h1jddj]]>递推可得pi=pi-1+Σj=196hijddj---(9)]]>求出cp后,即可求得码字序列c=[cpcd]={cl,l=1,2,...192}。需要说明的是,从表面上看(9)式的两个求和表达式有96项相加,实际上由于t=4,Hd矩阵的每一行只有4个“1”,所以(9)式的两个求和表达式只有4项相加(模2加),只是每求一个pi,参与求和(模2和)的4项是不同的,而它们的取值是一样的,都是1。
权利要求
1.一种低密度奇偶校验码的编码方法,其步骤为(1)确定码率R和码长N,并计算校验位长度M;(2)构造M×M的Hp矩阵 第一行的第一位是“1”元素,其余位是“0”元素;第二行的第一、二位是“1”元素,其余位是“0”元素;从第三行开始,下一行是由上一行循环右移1位得到;(3)根据码率R,确定Hd矩阵的行重量t和列重量q,再计算子矩阵维数u,其中t/(q+t)=R,ut=K,K为信息位长度;(4)利用等差数列构造D矩阵,D矩阵定义为对矩阵元素在GF(2)有限域上取值的u×u阶方阵,它的每行、每列均只有一个“1”元素,其余元素都是“0”;(5)利用D矩阵构造Hd矩阵;(6)求码字序列c,并构造H矩阵,H=[HpHd];求码字序列c的过程为①对任给的信息序列cd={dj,j=1,2,…K},利用Hp=[hijp:i=1,2,...,M,j=1,2,...,M]]]>和Hd=[hijp:i=1,2,...,M,j=1,2,...,K]]]>矩阵,根据下式HcT=[HpHd]cpcd=Hpcp+Hdcd=0]]>②令cp={pi,i=1,2,…M},p1=Σjh1jddj]]>递推可得pi=pi-1+Σjhijddj]]>③求码字序列c=[cpcd]={cl,l=1,2,…N}。c=·cp·cp·={cl,l=1,2,...N}.]]>
2.根据权利要求1所述的方法,其特征在于步骤(4)的具体步骤为(4.1)利用等差数列构成v矢量,等差数列的通项公式是au=a1+(u-1)b,其中公差b为大于2的整数,u为矢量v的维数,当首项a1的取值分别为1,2,…,b时,分别带入等差数列的通项公式进行计算,对应得到b个序列,将这b个序列并置在一起构成未经循环移位的第0个u维矢量v0,对u维矢量v0循环左移或右移u-1次,得到个数为u的一组v矢量v0,v1,v2,…vu-1;(4.2)利用v矢量构造D′矩阵,二者的对应关系为矢量中每个元素所在位置的序号表示矩阵中“1”元素所在列的序号,矢量中元素的值表示矩阵中“1”元素所在行的序号,据此方法由一组v矢量v0,v1,v2,…vu-1对应得到一组正交D′矩阵D0′,D1′,D2′,…,Du-1′;(4.3)从正交D′矩阵D0′,D1′,D2′,…,Du-1′中任选一矩阵作为分块子矩阵D0,对其进行循环移位得到u个分块子矩阵D0,D1,D2,…,Du-1;步骤(5)的具体步骤为Hd矩阵的第一行第一列放置D0分块子矩阵,其余各行各列不能再出现D0分块子矩阵;对D0分块子矩阵循环左移或右移gs次,其中s=1,2,…,t-1,g从2开始依次按行递增取(q-1)个素数,对应得到Dg,D2g,…,D(t-1)g,依次将其放置在Hd矩阵的第2,3,…,q行或第2,3,…,t列;得到Hd矩阵。
3.根据权利要求1所述的方法,其特征在于步骤(4)的具体步骤为(4.1)利用等差数列构成v矢量,等差数列的通项公式是au=a1+(u-1)b,其中公差b为大于2的整数,u为矢量v的维数,当首项a1的取值分别为1,2,…,b时,分别带入等差数列的通项公式进行计算,对应得到b个序列,将这b个序列并置在一起构成u维矢量v0(4.2)由v0矢量得到D0′矩阵,对D0′矩阵进行循环移位操作,得到一组正交D′矩阵D0′,D1′,D2′,…,Du-1′;(4.3)从正交D′矩阵D0′,D1′,D2′,Du-1′中任选一矩阵作为分块子矩阵D0,对其进行循环移位得到u个分块子矩阵D0,D1,D2,…,Du-1;步骤(5)的具体步骤为Hd矩阵的第一行第一列放置D0分块子矩阵,其余各行各列不能再出现D0分块子矩阵;对D0分块子矩阵循环左移或右移gs次,其中s=1,2,…t-1,g从2开始依次按行递增取(q-1)个素数,对应得到Dg,D2g,…,D(t-2)g,依次将其放置在Hd矩阵的第2,3,…,q行或第2,3,…,t列,得到Hd矩阵。
全文摘要
本发明公开了一种低密度奇偶校验码的编码方法,其步骤为①确定码率R和码长N,并计算校验位长度M;②构造M×M的H
文档编号H04L1/00GK1753315SQ20051001973
公开日2006年3月29日 申请日期2005年11月3日 优先权日2005年11月3日
发明者彭立, 朱光喜 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1