产生低密度奇偶校验码的方法和系统 【技术领域】
本发明涉及通信系统,更具体地说,涉及编码的通信系统。
背景技术
通信系统使用编码来确保在有噪声的通信信道中能提供可靠的通信。这些通信信道表现出一种固定的能力,它可以被表示为在给定的信噪比(SNR)下每个符号的比特数,它定义了一个理论上的上限[称为山农(Shannon)极限]。因此,编码设计以实现接近于这个山农极限的速率为目标。一种能接近山农极限的此类代码就是低密度奇偶校验(LDPC)码。
从传统上来说,由于存在许多缺点,使得LDPC码尚未被广泛地使用。其中,一个缺点就是,LDPC编码技术是高度复杂的。使用发生器矩阵来对LDPC码进行编码可能需要存储一个非常大的、非稀疏矩阵。此外,LDPC码要求大的数据块变为有效;因而,即使LDPC码的奇偶校验矩阵是稀疏的,要存储这些矩阵仍然是有问题地。从实施的角度来看,存储问题是为什么LDPC码在实践中尚未得到普遍推广的一个重要原因。在LDPC码实现过程中的一个主要挑战就是如何在解码器中的几个处理引擎(节点)之间实现连接网络。
因此,需要一种使用简单的编码和解码处理的LDPC通信系统。这也需要有效地使用LDPC码,以支持高的数据速率,同时不引入较大的复杂性。还需要改进LDPC编码器和解码器的性能。还需要使用于实现LDPC编码的存储要求最小。还需要一种简化在LDPC解码器中的处理节点之间的通信的方案。
【发明内容】
本发明针对这些和其他需求,其中,提供了一种产生结构化低密度奇偶校验(LDPC)码的方法。通过将奇偶校验矩阵的某一部分限定为下半部的三角形和/或满足其它要求,提供了LDPC码的结构,使得解码器的节点之间的通信变得非常简单。该方法也能够使用LDPC码对传送的比特的不均等的误码保护能力,以对高阶次调制星座(如8-PSK)的更脆弱的比特提供额外的误码保护。此外,通过利用预存储的常数和逐位操作,可通过算法产生奇偶校验矩阵。
根据本发明的一个实施例的一个方面,提供了一种产生低密度奇偶校验(LDPC)码的方法,该方法包括:仅利用LDPC码的奇偶校验矩阵,将接收的输入消息变换为LDPC码字,而不使用LDPC码的发生器矩阵;和输出LDPC码字。
根据本发明的一个实施例的另一个方面,提供了一种支持线性分组码的编码的方法,该方法包含将高阶次信号星座比特映射到对应于线性分组码的奇偶校验矩阵的比特节点。信号星座的脆弱的比特被映射到具有至少3个边沿的比特节点。
根据本发明的一个实施例的又一个方面,公开了一种支持线性分组码的编码的方法,该方法包含将高阶次信号星座比特映射到对应于线性分组码的奇偶校验矩阵的比特节点。信号星座的脆弱的比特被映射到其边沿的数量不少于更可靠的比特的边沿数量的比特节点。
根据本发明的一个实施例的再一个方面,提供了一种产生低密度奇偶校验(LDPC)码的方法,该方法包括仅利用LDPC码的奇偶校验矩阵,将接收的输入消息变换为LDPC码字,而不使用LDPC码的发生器矩阵。该方法还包含对LDPC码字施加外码,和输出具有施加的外码的LDPC码。
根据本发明的一个实施例的再一个方面,公开了一种产生低密度奇偶校验(LDPC)码的方法,该方法包括将一组比特节点的边沿的内容相互邻接地放置在存储器中。该方法还包含同时将一组校验节点的边沿的内容相互邻接地放置在存储器中。
根据本发明的一个实施例的再一个方面,公开了一种产生低密度奇偶校验(LDPC)码的系统,该系统包括仅利用LDPC码的奇偶校验矩阵,将接收的输入消息变换为LDPC码字,而不使用LDPC码的发生器矩阵的装置。该系统还包含输出LDPC码字的装置。
根据本发明的一个实施例的再一个方面,公开了一种处理低密度奇偶校验(LDPC)码的方法,该方法包括通过LDPC解码器解码接收的LDPC码。该方法还包含在每一次或几次LDPC解码器叠代之后,叠代地重新产生信号星座比特度量到LDPC解码器。
从以下的详细说明中,通过图解若干特定的实施例和实施方案,包括被设想用于实行本发明的最佳模式,将使本发明的其他方面,特征和优点变得更加明显。在不背离本发明的精神实质和范围的前提下,本发明还可以包括其他的和不同的实施例,并且在各个明显的方面对一些细节进行修改。相应地,从性质上来说,附图和说明都被认为是说明性的,而不是限制性的。
【附图说明】
在附图的各视图中,借助于实例,而不是借助于限制,来说明本发明,并且在其中,相同的参考数字指的是类似的元件,在附图中:
图1是根据本发明的一个实施例的、被构成去使用低密度奇偶校验(LDPC)码的通信系统的图;
图2是在图1的系统中的示例性的发射机的图;
图3是在图1的系统中的示例性的接收机的图;
图4是在根据本发明的一个实施例中,一个稀疏的奇偶校验矩阵的图;
图5是图4的矩阵的LDPC码的两部分构成的图;
图6是根据本发明的一个实施例的一个稀疏的奇偶校验矩阵的一个子矩阵的图,其中,该子矩阵含有仅限于下半部的三角形区域的奇偶校验数值;
图7是表示使用无约束的奇偶校验矩阵(H矩阵)的代码对具有如图6所示的子矩阵的有约束的H矩阵的代码之间的性能比较的图;
图8A和8B分别是一个非格雷8-相移键控调制方案的图,以及一个格雷8-相移键控调制方案的图,它们当中的每一种都可以用于图1的系统之中;
图9是表示使用格雷标记的代码对非格雷标记的代码之间的性能比较的图;
图10是在根据本发明的一个实施例中,使用非格雷映射的LDPC解码器的工作流程图;
图11是表示在根据本发明的一个实施例中,使用格雷映射的LDPC解码器的工作情况的流程图;
图12A-12C是在根据本发明的一个实施例中,各校验节点和各比特节点之间的交互作用的图;
图13A-13C表示在根据本发明的各个实施例中,所产生的各LDPC码的仿真结果;
图14A-14B分别表示在根据本发明的一个实施例中,被构成用以支持结构化存取、以实现在LDPC编码中的随机性的存储器的顶部边沿和底部边沿的图;
图15是表示在根据本发明的一个实施例中,能执行LDPC码的编码和解码处理的一个计算机系统的图。
【具体实施方式】
下面描述用于有效地产生结构化的低密度奇偶校验(LDPC)码的系统、方法和软件。在以下的描述中,为了说明的目的,将列举许多特定的细节,以便提供对本发明的透彻理解。然而,对本领域技术人员来说,显而易见,在实施本发明时,可以不用这些特定的细节,或者采取一种等效的设计安排。在其他各实例中,以方框图的形式来表示一些众所周知的结构和装置,以避免不必要地使本发明变得模糊不清。
图1是根据本发明的一个实施例的、被配置成使用低密度奇偶校验(LDPC)码的通信系统的图。数字通信系统100包括发射机101,它产生各种信号波形,通过通信信道103送往接收机105。在这个离散通信系统100中,发射机101有一个消息源,它产生各种可能的消息的一个离散的集合;各种可能的消息中的每一种都有一个相应的波形。这些信号波形被通信信道103所衰减,或被改变。为了克服在信道103中的噪声,使用了LDPC码。
由发射机101产生的LDPC码能在不引起任何性能损失的条件下实现高速实施方案。从发射机101输出的结构化的LDPC码避免向各比特节点(bit node)分配小量的校验节点(check node),由于所用的调制方案(例如,8-相移键控),使得各比特节点容易出现信道误码。
这样的LDPC码具有一种可并行化的解码算法(不同于turbo码),有利的是它涉及诸如加法、比较和查表那样的简单运算。而且,精心设计的各种LDPC码不会表现出误码平底的任何征兆。
根据本发明的一个实施例,发射机101使用一种相对地简单的编码技术,基于各奇偶校验矩阵(它有助于在解码过程中有效的存储器存取)来产生LDPC码,以便跟接收机105进行通信。发射机101使用LDPC码,只要块的长度足够大,它们在性能上均优于已连接在一起(concatenated)的turbo+RS(里德-所罗门)码。
图2是在图1的系统中的示例性的发射机的图。在发射机200中安装了一个LDPC编码器203,它从信息源201接受输入,并输出具有较高冗余度的编码流,适于在接收机105中进行纠错处理。信息源201从一个离散字母X产生k组信号。用各奇偶校验矩阵来指定各LDPC码。另一方面,LDPC码的编码通常需要指定发生器矩阵。即使有可能使用高斯消去法从各奇偶校验矩阵来获得发生器矩阵,所得到的矩阵将不再是稀疏的,同时存储一个大的发生器矩阵可能是复杂的。
编码器203使用一种简单的编码技术从字母Y产生各信号,送往调制器205,上述编码技术仅使用奇偶校验矩阵,其方法是将结构施加于奇偶校验矩阵。具体地说,通过将该矩阵的某个部分限定为三角形,来对该奇偶校验矩阵施加一种约束条件。下面在图6中,将更充分地说明这样一种奇偶校验矩阵的结构。这样一种约束所带来的性能损失是可以忽略的,因此,形成一种有吸引力的折衷。
调制器205将已编码的消息从编码器203映射到被传送到发射天线207的信号波形,发射天线207在通信信道103上发射这些波形。相应地,已编码的消息被调制并且被分配到发射天线207。来自发射天线207的传输传播到接收机,这将在下面进行讨论。
图3是在图1的系统中的一部示例性的接收机的图。在接收一侧,接收机300包括一个解调器301,它对来自发射机200的已接收的信号进行解调。这些信号在接收天线303处被接收用于解调。经过解调之后,已接收的信号被送往一个解码器305,它通过与一个比特度量发生器(bit metric generator)307相结合来产生消息X’,尝试重构原始的源消息。在非格雷映射的条件下,比特度量发生器307在解码过程中反复地(叠代地)跟解码器305交换概率信息,这将在图10中加以详细说明。可供替代地,若使用格雷映射(根据本发明的一个实施例),则通过比特度量发生器307一次已经足够,在其中,在每一次LDPC解码器叠代之后,比特度量产生的进一步的尝试可能只产生有限的性能改进;下面将结合图11更充分地说明这个方法。为了理解本发明所提供的种种好处,建议大家去考察LDPC码是如何产生的,如在图4中所讨论的那样。
图4是在根据本发明的一个实施例中,一个稀疏的奇偶校验矩阵的图。LDPC码是具有稀疏的奇偶校验矩阵H(n-k)xn的长的、线性分组码(linear block code)。典型地,块的长度n处于从数千到数万比特的范围内。例如,用于LDPC码的一个长度n=8和速率为1/2的奇偶校验矩阵示于图4。同样的代码可以等效地用图5的两部分构成的图来表示。
图5是图4的矩阵的LDPC码的两部分构成的图。奇偶校验方程式隐含着这样的意思,即,对每一个校验节点来说,所有相邻的各比特节点[在Galois域(GF)(2)上]之和等于零。如同在图中所看见的那样,各比特节点占据图的左边,并且按照一种预定的关系跟一个或多个校验节点相关联。例如,对应于校验节点m1,对各比特节点来说,下列表达式成立:
n1+n4+n5+n8=0
回到接收机303,LDPC解码器被认为是一个消息通过型解码器,由此,解码器305以找到各比特节点的数值为目标。为了完成这个任务,各比特节点跟各校验节点反复地互相进行通信。这种通信的特性将在下面加以说明。
从各校验节点到各比特节点,每一个校验节点都向一个相邻的比特节点提供基于来自相邻的其他各比特节点的信息的关于该比特节点的数值的一种估计(“意见”)。例如,在上述实例中,若对于m1,n4,n5以及n8之和“好像是”0,则m1将向n1表明,n1的数值将被认为是0(因为n1+n4+n5+n8=0);否则,m1将向n1表明,n1的数值将被认为是1。此外,对软判断解码来说,增加了可靠性措施。
从各比特节点到各校验节点,每一个比特节点都向一个相邻的校验节点重发基于来自它的相邻的其他各校验节点的反馈的关于它本身数值的一种估计。在上述实例中,n1只有两个相邻的校验节点m1和m3。若来自m3到n1的反馈表明,n1的数值可能为0,则n1将通知m1:n1本身的数值的估计为0。对于这种比特节点有两个以上相邻的校验节点的情形来说,比特节点在向与之通信的校验节点报告判断结果之前,比特节点将基于来自它的其他相邻的各校验节点的反馈,进行一次少数服从多数的表决(软判断)。重复进行上述过程,直到所有比特节点都被认为是正确(即,满足所有的奇偶校验方程式)为止,或者直至达到预定的最大叠代次数,由此宣告一次解码失败为止。
图6是根据本发明的一个实施例的一个稀疏的奇偶校验矩阵的一个子矩阵的图,其中,该子矩阵含有仅限于下半部的三角形区域的奇偶校验数值。如上所述,通过限定奇偶校验矩阵的下半部的三角形区域的各数值,(图2的)编码器203就能使用一种简单的编码技术。根据本发明的一个实施例,对奇偶校验矩阵所施加的约束条件具有下列形式:
H(n-k)xn=[A(n-k)xkB(n-k)x(n-k)]
式中,B为下半部的三角形区域。
任何信息块i=(i0,i1,…,ik-1)都使用HcT=0被编码为一个码字c=(i0,i1,…,ik-1,p0,p1,…,pn-k-1),并且递归地求解各奇偶校验位;例如,
a00i0+a01i1+...+a0,k-1ik-1+p0 →求解p0
a10i0+a11i1+...+a1,k-1ik-1+b10p0+p1 →求解p1
对p2,p3,…,pn-k-1来说,求解方法与此相似。
图7是表示使用无约束的奇偶校验矩阵(H矩阵)的代码对图6所示的有约束的H矩阵的代码之间性能比较的图。该图表示两种LDPC码之间的性能比较:一种具有普通的奇偶校验矩阵,另一种则具有一个仅限于下半部三角形的奇偶校验矩阵,以便简化编码。这种仿真所使用的编码方案为8-PSK。性能损失在0.1dB以内。因此,基于下半部三角形的H矩阵的约束条件,性能损失可以忽略不计,而编码技术的简化带来的益处是显著的。因此,在行和/或列排列中等效于一个下半部三角形或上半部三角形的任何奇偶校验矩阵都可以用于相同的目的。
图8A和8B分别是一个非格雷8-相移键控调制方案的图,以及一个格雷8-相移键控调制方案的图,它们当中的每一种都可以用于图1的系统之中。图8A的非格雷8-相移键控调制方案可以用于图3的接收机,以便提供一个要求很低的帧误码率(FER)的系统。如图8B所示,通过使用一种格雷8-相移键控调制方案,并且与一种诸如包斯(Bose)、楚赫利(Chaudhuri)以及贺昆汉(Hocquenghem)(BCH)、汉明(hamming)、里德-所罗门(Reed-Solomon)(RS)码那样的外码相结合,也能满足这种要求。
可供替代地,可以用一种外码来实现图8B的格雷8-相移键控方案。在这种方案下,不需要在LDPC解码器305(图3)以及可以使用8-PSK调制的比特度量发生器307之间进行叠代。在不具备外码的情况下,使用格雷标记的LDPC解码器305呈现出一种较早的误码平底,如下面的图9所示。
图9是表示图8A和8B的使用格雷标记的代码对无格雷标记的代码之间的性能比较的图。假定存在来自LDPC解码器305的正确的反馈,由于具有已知的两个比特的这两种8-PSK符号都跟非格雷标记相距甚远,所以采用非格雷标记的8-PSK的比特量度的再生将更为精确,误码平底就是来源于这个事实。这也可被等效地看作工作于较高的信噪比(SNR)的条件下。因此,即使使用的格雷或非格雷标记(labeling)的相同的LDPC码的误差渐近线具有相同斜率(即,互相平行),具有非格雷标记的那一种在任何信噪比下都能通过较低的帧误码率。
另一方面,对于不要求极低的帧误码率的那些系统来说,由于在每一次LDPC解码器叠代之前,8-PSK比特度量的再生都带来附加的复杂性,所以,在LDPC解码器305以及8-PSK比特度量发生器307之间没有任何叠代的格雷标记将更为适用。而且,当使用格雷标记时,在每一次LDPC解码器叠代之前,8-PSK比特量度的再生仅产生非常微弱的性能改进。如前所述,只要外码得以实现,没有叠代的格雷标记就能应用于要求极低的FER的那些系统。
格雷标记和非格雷标记之间的选择还取决于LDPC码的特性。典型地,由于在非格雷标记的条件下,节点的阶次越高,从LDPC解码器305到8-PSK(或者类似的较高阶次的调制方式)比特量度发生器307的初始反馈的恶化程度就越大,所以,比特节点或校验节点的阶次越高,格雷标记的效果就越好。
当8-PSK(或者类似的较高阶次)调制跟二进制解码器配合使用时,人们认识到,一个符号的3个(或更多)比特不是在“均等的噪声”条件下被接收的。例如,在格雷8-PSK标记的条件下,进入解码器的一个符号的第三比特被认为在噪声水平上高于其他两个比特。因此,在LDPC码设计中,不向那些由8-PSK符号的“噪声水平较高的”第三比特所代表的各比特节点分配小量的边沿(edge),使得那些比特不致处于双倍的不利地位。
图10是在根据本发明的一个实施例中,使用非格雷映射的LDPC解码器的工作流程图。在这种方案中,LDPC解码器和比特量度发生器轮流地发生叠代。在这个实例中,使用8-PSK调制,然而,相同的原理也可以应用于其他各种高阶次调制方案。在这种情况下,假定解调器301输出一个距离矢量d,它表示已接收的含有噪声的各符号点以及到比特量度发生器307的8-PSK符号点之间的距离,由此,矢量的各分量被表示为:di=-EsN0{(rx-si,x)2+(ry-si,y)2}]]>i=0,1,...7.
8-PSK比特量度发生器307跟LDPC解码器305进行通信,以便交换先验概率信息和后验概率信息,它们分别地被表示为u和a。这就是说,矢量u和a分别表示已编码的各比特的对数似然度比值的先验概率和后验概率。
8-PSK比特量度发生器307为3个比特的每一组产生的先验似然度比值的方法如下。首先,获得关于已编码的各比特的外在信息:
ej=aj-uj j=0,1,2
其次,确定8-PSK符号概率Pi i=0,1,…,7。
*yj=-f(0,ej) j=0,1,2
式中,f(a,b)=max(a,b)+LUTf(a,b),再有,
LUTf(a,b)=ln(1+e-|a-b|)
*xj=yj+ej j=0,1,2
*p0=x0+x1+x2 p4=y0+x1+x2
p1=x0+x1+y2 p5=y0+x1+y2
p2=x0+y1+x2 p6=y0+y1+x2
p3=x0+y1+y2 p7=y0+y1+y2
其次,比特度量发生器307确定已编码的各比特的先验的对数似然度比值,作为送往LDPC解码器305的输入,其表达式如下:
u0=f(d0+p0,d1+p1,d2+p2,d3+p3)-f(d4+p4,d5+p5,d6+p6,d7+p7)-e0
u1=f(d0+p0,d1+p1,d4+p4,d5+p5)-f(d2+p2,d3+p3,d6+p6,d7+p7)-e1
u2=f(d0+p0,d2+p2,d4+p4,d6+p6)-f(d1+p1,d3+p3,d5+p5,d7+p7)-e2
要注意的是,可以以递归方式对具有两个以上变量的函数f(.)进行估计;例如,f(a,b,c)=f(f(a,b),c)。
现在来说明使用非格雷映射的LDPC解码器305的工作情况。在步骤1001,在按照下列表达式(并且如图12A所示)进行第一次叠代之前,LDPC解码器305对已编码的各比特ν的对数似然度比值进行初始化:vn→ki=un,]]>n=0,1,…,N-1,i=1,2,…,deg(比特节点n)
在这里,表示从比特节点n送往它的相邻的校验节点ki的消息,un表示针对比特n的解调器输出,并且N为码字的大小。
在步骤1003,对校验节点k进行更新,由此,输入ν产生输出w。如图12B所示,从它的dc个相邻的比特节点送往校验节点k的到来的消息被表示为vn1→k,vn2→k,···,vndc→k.]]>其目标是计算从校验节点k返回到dc个相邻的比特节点的输出消息。这些消息被表示为wk→n1,wk→n2,···,wndc,]]>式中wk→ni=g(vn1→k,vn2→k,....,vni-1→k,vni+1→k,....,vndc→k).]]>函数g( )的定义由下式给出:
g(a,b)=sign(a)×sign(b)×{min(|a|,|b|)}+LUTg(a,b),
式中,LUTg(a,b)=ln(1+e-|a+b|)-ln(1+e-|a-b|)跟函数f相似,可以以递归方式对具有两个以上变量的函数g进行估计。
再次,在每一个步骤1005中,解码器305都输出一个后验概率信息(图12C),使得:an=un+Σjwkj→n]]>
在每一个步骤1007中,确定是否满足所有的奇偶校验方程式。若不满足这些奇偶校验方程式,则在步骤1009,解码器305重新导出8-PSK比特度量以及信道输入un。然后,如步骤1011所示,对该比特节点进行更新。如图13C所示,从dv个相邻的校验节点送往比特节点n的到来的消息被表示为vn→k1,vn→k2,....,vn→kdv]]>。来自比特节点n的外送的消息被计算并送回到dv个相邻的校验节点;这些消息被表示为wk1→n,wk1→n,....,wkdv→n]]>,计算公式如下:vn→ki=un+Σj≠iwkj→n]]>
在步骤1013,解码器305输出硬判断结果(在满足所有的奇偶校验方程式的情况下):
若Hc^T=0,]]>则停止。
当使用非格雷标记时,上述方案是适当的。然而,当采用格雷标记时,则应执行图11的处理过程。
图11是表示在根据本发明的一个实施例中,使用格雷映射的图3的LDPC解码器的工作情况的流程图。当使用格雷标记时,由于在每一次LDPC解码器叠代之后,各比特度量的再生只能产生微不足道的性能改进,所以在LDPC解码器叠代之前,各比特度量被有利地仅产生一次。如图10中的步骤1001和1003所示,进行已编码的各比特ν的对数似然度比值的初始化,并且在每一个步骤1101和1103中,都进行校验节点的更新。随后,如步骤1105所示,进行比特节点n的更新。此后,解码器输出一个后验概率信息(步骤1107)。在步骤1109,确定是否满足所有的奇偶校验方程式;若满足,则解码器输出硬判断结果(步骤1111)。否则,重复执行步骤1103-1107。
图13A-13C是表示在根据本发明的各个实施例中,所产生的各LDPC码的仿真结果的图。特别是,图13A-13C表示具有较高阶次调制以及码率为3/4(QPSK,1.485比特/符号),2/3(8-PSK,1.980比特/符号),以及5/6(8-PSK,2.474比特/符号)的各LDPC码的的性能。
为了实现介于各校验节点以及各比特节点之间的互联,存在两种总方案:(1)全并行的方案,以及(2)部分地并行的方案,在全并行的体系结构中,所有节点以及它们之间的互联都以物理方式来实现。这种体系结构的优点在于速度。
然而,全并行的体系结构在实现所有节点以及它们之间的互联上可能涉及较大的复杂性。因此,在全并行的体系结构中,可以要求较小的块大小,以便降低复杂性。在这种情况下,对相同的时钟频率来说,可能导致在吞吐量方面的成比例的缩减,以及在FER对Es/No的性能方面的某些下降。
实现LDPC码的第二种方案就是仅在节点总数的一个子集上从物理上来实现,并且仅使用这个有限数目的“物理”节点来处理该代码的所有“功能的”节点。即使可以使LDPC解码器的运算变得极端简单,并且可以以并行方式来执行,但是在设计上仍然存在着如何在“随机地”分布的各比特节点以及各校验节点之间建立通信联系的进一步的挑战。根据本发明的一个实施例,图3的解码器305通过以一种结构化的方式去访问存储器来解决这个问题,以便实现一种表面上的随机代码。下面将参照图14A和14B,对这个方案进行说明。
图14A和14B分别是存储器顶部边沿和底部边沿的结构图,根据本发明的一个实施例,该存储器支持结构化存取,以实现LDPC编码的随机性。可以通过把注意力集中于奇偶校验矩阵的产生,就能实现结构化存取,而不必牺牲真正的随机代码的性能。一般说来,可以通过各校验节点与各比特节点的连接来指定一个奇偶校验矩阵。例如,各比特节点被划分为每392个一组(此处392只用于说明目的)。而且,举例来说,假设与阶次为3的第一个比特节点相连接的各校验节点被编号为a、b和c,那么与第二个比特节点相连接的各校验节点就被编号为a+p,b+p和c+p,与第三个比特节点相连接的各校验节点就被编号为a+2p,b+2p和c+2p,等等。对于下一组的392个比特节点,与第一个比特节点相连接的各校验节点不同于a,b,c,从而通过选择适当的p,使所有的校验节点都具有相同的阶次。对各自由的常数进行随机搜索,从而最终的LDPC码就是自由的周期-4和周期-6。
上述安排有助于校验节点和比特节点在处理过程中的存储器访问。在这个两部分构成的图中,各边沿的数值可以存储在存储介质,例如随机存取存储器(RAM)之中。应当注意的是,对于校验节点和比特节点处理过程中真正的随机LDPC码来说,只能以随机方式对各边沿的数值一个一个地进行访问。然而,这种访问方式对于高数据速率应用来说就显得太慢了。图14A和14B的RAM以这样一种方式被组成,它将很大一组相关的边沿置于一个时钟周期之内;相应地,这些数值在存储器中将被放置“在一起”。可以看到的是,实际上,对于一组校验节点(以及各比特节点)来说,即使是采用真正的随机代码,相关的边沿数值在RAM中也可以一个挨一个地存放,但与一组比特节点(以及各校验节点)相邻的相关边沿数值将被随机地分布在RAM之中。因此,本发明所指的“在一起”,源于奇偶校验矩阵本身的设计。也就是说,校验矩阵的设计保证了一组比特节点和校验节点的相关边沿在RAM中被同时地放置在一起。
如图14A和14B所示,每一个框都含有一个边沿的数值,它是多比特的(例如,6比特)。根据本发明的一个实施例,边沿RAM被分为两部分:顶部边沿RAM(图14A)和底部边沿RAM(图14B)。底部边沿RAM中含有例如阶次为2的各比特节点和各校验节点之间的边沿。顶部边沿RAM则含有阶次高于2的各比特节点和各校验节点之间的边沿。因此,对于每个校验节点来说,有两个相邻的边沿被存储在底部边沿RAM之中,而其余的边沿则存储在顶部边沿RAM之中。
继续上面的例子,一次选择392个比特节点和392个校验节点作为一组进行处理。对于392个校验节点的处理来说,从顶部边沿RAM中访问q个相继的行,同时从底部边沿RAM中访问两个相继的行。在这个实例中,q+2就是每个校验节点的阶次。对于比特节点的处理来说,若392个比特节点的组的阶次为2,则它们的边沿就被定位于底部边沿RAM的两个相继的行中。若各比特节点的阶次d>2,则它们的边沿就被定位于顶部边沿RAM的d行之中。这d行的地址可以存储在非易失性存储器,例如只读存储器(ROM)之中。其中某一行的边沿对应于392个比特节点的第一边沿,另一行的边沿则对应于392个比特节点的第二边沿,依此类推。而且,对于每一行来说,属于392个比特节点的组中的第一个比特节点的边沿的列索引(index)也可以存储在ROM中。对应于第二、第三等比特节点的各边沿的索引,也以一种“卷绕”的方式跟随着起始列的索引。例如,若在行中的第j个边沿属于第一个比特节点,则第(j+1)个边沿就属于第二个比特节点,第(j+2)个边沿就属于第三个比特节点,....,以及第(j-1)个边沿就属于第392个比特节点。
采用上述的组成方式(示于图14A和14B),在LDPC编码过程中,存储器的存取速度得以大大地提高。
图15说明一部可以在其上实现根据本发明的一个实施例的计算机系统1500。计算机系统1500含有总线1501或其他用于传递信息的通信装置,以及被连接到总线1501之上、用于处理信息的处理器1503。计算机系统1500还包括被连接到总线1501的主存储器1505,例如一个随机存取存储器(RAM)或其他动态存储装置,用以存储准备由处理器1503执行的各种信息和指令。在处理器1503执行指令的过程中,主存储器1505也可以被用来存储各种暂时的变量或其他中间信息。计算机系统1500还包括被连接到总线1501的只读存储器(ROM)1507或其他静态存储装置,用以为处理器1503存储静态信息和各项指令。存储装置1509,例如磁盘或光盘,也被附带地连接到总线1501,用以存储各种信息和指令。
计算机系统1500可以经由总线1501被连接到显示器1511,例如阴极射线管(CRT),液晶显示器,有源矩阵显示器或等离子体显示器,用以向计算机用户显示信息。输入装置1513,例如包括字母数字以及其他键的键盘,被连接到总线1501,用于向处理器1503传达信息和各种命令选择。用户输入装置的另外一种类型就是光标控制器1515,例如鼠标,跟踪球,或者光标引导键等,也可以用于向处理器1503传达指向信息和各种命令选择,并且用以控制光标在显示器1511上的移动。
根据本发明的一个实施例,计算机系统1500响应于处理器1503执行主存储器1505中的一系列指令的安排,提供了LDPC码的产生。这些指令可以从其他计算机可读介质(例如存储装置1509)中读入到主存储器1505之中。执行在主存储器1505中所包含的一系列指令的安排,使得处理器1503执行本文所述的各处理步骤。在多处理器设计安排中的一个或多个处理器也可以被用来执行主存储器1505中所含有的各项指令。在可供替代的各实施例中,可以用硬件连接电路来代替软件指令,或者与软件指令相结合,来实现本发明的实施例。这样一来,本发明的各实施例就不局限于硬件电路和软件的任何特定的组合方式。
计算机系统1500还包括被连接到总线1501的通信接口1517。通信接口1517提供双向数据通信,它通过网络链路1519被连接到一个本地网1521。例如,通信接口1517可能是一块数字用户线路(DSL)卡或调制解调器,一块综合业务数字网络(ISDN)卡,一个电缆调制解调器,或者一个的电话调制解调器以向相应类型的电话线路提供数据通信连接。作为另一个例子,通信接口1517也可能是一块向一个兼容的局域网提供数据通信连接的局域网(LAN)卡(例如用于以太网或异步传输模式(ATM)网的卡)。无线链路也可以实现。在任何这样的实施方案中,通信接口1517发送和接收电气、电磁或光学信号,而这些信号都承载着代表不同类型信息的数字数据流。而且,通信接口1517可以包括外部接口装置,例如通用串行总线(USB)接口,个人计算机存储器卡国际协会(PCMCIA)接口等等。
网络链路1519典型地通过一个或多个网络向其他数据装置提供数据通信。例如,网络链路1519可以通过本地网1521来提供通往主计算机1523的连接,主计算机1523与网络1525(例如,广域网(WAN)或者全球分组数据通信网,现在普遍地被称为“因特网”)或者服务提供商运营的数据设备相连。本地网1521和网络1525二者都使用电气、电磁或光学信号来传递各种信息和指令。跟计算机系统1500交换数字数据的通过各种网络的信号、在网络链路1519上的信号,以及经过通信接口1517的信号,都是携带各种信息和指令的载波的示例性的形式。
计算机系统1500可以通过网络,网络链路1519和通信接口1517来发送消息和接收数据,其中包括程序代码。在因特网的例子中,服务器(未示出)可以通过网络1525、本地网1521和通信接口1517来发送属于一个应用程序的所需代码,以便实现本发明的一个实施例。处理器1503可以执行正在接收的所发送的代码,和/或将该代码存储在存储装置1509或其他非易失性存储装置之中,供以后执行。以这样的方式,计算机系统1500可能以载波的形式获得应用程序代码。
这里所使用的术语“计算机可读介质”指的是参与向处理器1503提供用于执行的各项指令的任何介质。这样的介质可能有很多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括,例如,光盘或磁盘,诸如存储装置1509。易失性介质包括动态存储器,诸如主存储器1505。传输介质包括各种同轴电缆、铜线和光纤,包括构成总线1501的导线。传输介质也可以采取声波,光波或电磁波的形式,诸如在射频(RF)和红外(IR)数据通信中所产生的各种波。计算机可读介质的一般形式包括,例如,软盘、柔性盘、硬盘、磁带、任何其他磁性介质,只读光盘(CD-ROM),可重写光盘(CDRW),数字化视频光盘(DVD),任何其他光学介质,穿孔卡片,纸带,光学标记单,以及具有孔的图形或其他可用光学方法识别的标记的其他物理介质,RAM,PROM和EPROM,FLASH-EPROM,任何其他存储器芯片或卡式磁带,载波,或计算机可读的任何其他介质。
在向处理器提供可执行的指令时,可能涉及不同形式的计算机可读介质。例如,用于实施本发明的至少一部分的指令可能首先加载在远程计算机的磁盘上。在这种情况下,远程计算机将指令装载到主存储器上,并使用调制解调器通过电话线路发出指令。本地计算机系统的调制解调器接收到在电话线路上传送的数据,并使用红外发射机将数据转换成红外信号,将红外信号发送到便携式计算装置,例如个人数字助理(PDA)和膝上型计算机。在便携式计算装置上的红外检测器接收到由红外信号携带的信息和指令,将数据传送到总线上。总线将数据传送到主存储器,处理器再从主存储器中取出指令并加以执行。主存储器接收到的指令可以在处理器执行之前或之后存储到存储装置之中。
相应地,本发明的不同的各实施例提供了一种方法,用以产生结构化的低密度奇偶校验(LDPC)码,以便使编码器和解码器得以简化。通过将奇偶校验矩阵限定为下半部三角形,来提供LDPC码的结构。同样,本方法可以有利地使用LDPC码对被发送的各比特的不均等的误码保护能力,以便向高阶次调制星座[诸如8-相移键控(8-PSK)]的更脆弱的各比特提供额外的误码保护。此外,可以使用预先存储的各项常数和逐位操作,从算法上来产生奇偶校验矩阵。通过将表示从奇偶校验矩阵的各校验节点到各比特节点的相继的各边沿的信息存储到存储器的相继的位置上,就能实现LDPC的有效解码。上述方案在不牺牲性能的前提下,有利地降低了复杂性。
在结合多个实施例和实施方案对本发明进行说明的同时,本发明并不因此而受到限制,相反,它覆盖了各种明显的修改以及各种等同的设计安排,它们都处于所附的权利要求书的范围内。