使用准循环构造和穿孔以实现高速率、高并行性和低差错本底的LDPC设计

申请号 CN201480008409.6 申请日 2014-02-13 公开(公告)号 CN104981978B 公开(公告)日 2017-12-08
申请人 高通股份有限公司; 发明人 T·J·理查德森;
摘要 公开了一种LDPC编码/解码的方法。 编码器 接收一组信息比特并使用包括一个或多个被穿孔 节点 的基LDPC码对这些信息比特执行经提升LDPC编码操作以产生码字。包括该一个或多个被穿孔节点的该基LDPC码在节点对之间不具有多重边,而不具有该一个或多个被穿孔节点的基LDPC码则在节点对之间具有多重边。因此,被穿孔节点被用来消除用于经提升LDPC码的基图中的多重边。该编码器随后将该码字中与基LDPC码的该一个或多个被穿孔基比特相对应的所有经提升比特穿孔。该一个或多个被穿孔基比特是分别与该基LDPC码的一个或多个被穿孔基节点相对应的那些基比特。对于一些 实施例 而言,该一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。LDPC 解码器 在 迭代 解码操作期间将这些被穿孔码字比特视为被擦除。
权利要求

1.一种数据编码的方法,所述方法包括:
接收一组信息比特;
对该组信息比特执行经提升低密度奇偶校验(LDPC)编码操作以产生码字;以及对所述码字中与用于所述LDPC编码操作的基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特进行穿孔,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
2.如权利要求1所述的方法,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
3.如权利要求1所述的方法,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
4.如权利要求3所述的方法,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
5.如权利要求3所述的方法,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
6.如权利要求1所述的方法,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
7.一种数据解码的方法,所述方法包括:
接收LDPC码字;
标识所述LDPC码字中与基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边;以及
对所接收到的码字执行LDPC解码操作以恢复一组信息比特,其中出于解码目的将所标识出的经提升比特视为被擦除,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
8.如权利要求7所述的方法,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
9.如权利要求7所述的方法,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
10.如权利要求9所述的方法,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
11.如权利要求9所述的方法,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
12.如权利要求7所述的方法,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
13.一种包含程序指令的计算机可读存储介质,所述程序指令在由通信设备内提供的处理器执行时使所述设备:
接收一组信息比特;
对该组信息比特执行经提升LDPC编码操作以产生码字;以及
对所述码字中与用于所述LDPC编码操作的基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特进行穿孔,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
14.如权利要求13所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
15.如权利要求13所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
16.如权利要求15所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
17.如权利要求15所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
18.如权利要求13所述的计算机可读存储介质,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
19.一种包含程序指令的计算机可读存储介质,所述程序指令在由通信设备内提供的处理器执行时使所述设备:
接收LDPC码字;
标识所述LDPC码字中与基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边;以及
对所接收到的码字执行LDPC解码操作以恢复一组信息比特,其中出于解码目的将所标识出的经提升比特被视为被擦除,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
20.如权利要求19所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
21.如权利要求19所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
22.如权利要求21所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
23.如权利要求21所述的计算机可读存储介质,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
24.如权利要求19所述的计算机可读存储介质,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
25.一种通信设备,包括:
存储器,其用于存储一组信息比特;以及
编码器,其用于:
对该组信息比特执行经提升LDPC编码操作以产生码字;以及
对所述码字中与用于所述LDPC编码操作的基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特进行穿孔,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
26.如权利要求25所述的设备,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
27.如权利要求25所述的设备,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
28.如权利要求27所述的设备,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
29.如权利要求28所述的设备,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
30.如权利要求25所述的设备,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
31.一种通信设备,包括:
存储器,其用于存储LDPC码字;以及
解码器,其用于:
标识所述LDPC码字中与基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边;以及
对所接收到的码字执行LDPC解码操作以恢复一组信息比特,其中出于解码目的将所标识出的经提升比特视为被擦除,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
32.如权利要求31所述的设备,其特征在于,所述一个或多个被穿孔基节点对应于具有等于所述基LDPC码的校验节点的数目或比所述数目小1的度数的一个或多个变量节点。
33.如权利要求31所述的设备,其特征在于,所述一个或多个被穿孔基节点对应于一个或多个度数为2的变量节点。
34.如权利要求33所述的设备,其特征在于,所述一个或多个被穿孔基节点分裂各自连接到一其他变量节点的一个或多个相应校验节点,并且其中每一个所述其他变量节点由边来连接到对应的被分裂的校验节点的这两个元素。
35.如权利要求33所述的设备,其特征在于,所述一个或多个被穿孔基节点消除所述基LDPC码中的双重边。
36.如权利要求31所述的设备,其特征在于,准循环提升被应用于所述基LDPC码,并且其中所述准循环提升中的边簇的置换是循环置换。
37.一种编码器,包括:
用于接收一组信息比特的装置;
用于对该组信息比特执行LDPC编码操作以产生码字的装置;以及
用于对所述码字中与用于所述LDPC编码操作的基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特进行穿孔的装置,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。
38.一种解码器,包括:
用于接收LDPC码字的装置;
用于标识所述LDPC码字中与基LDPC码的一个或多个被穿孔基比特相对应的所有经提升比特的装置,其中:
所述一个或多个被穿孔基比特是分别与所述基LDPC码的一个或多个被穿孔基节点相对应的那些基比特;并且
所述基LDPC码在节点对之间不具有多重边;以及
用于对所接收到的码字执行LDPC解码操作以恢复一组信息比特的装置,其中出于解码目的将所标识出的经提升比特被视为被擦除,
其中所述一个或多个被穿孔基节点中的至少一个对应于所述基LDPC码的最高度数变量节点。

说明书全文

使用准循环构造和穿孔以实现高速率、高并行性和低差错本

底的LDPC设计

技术领域

[0001] 本公开的各实施例一般涉及通信和数据存储系统,尤其涉及使用LDPC码的通信和数据存储系统。

背景技术

[0002] 许多通信系统使用纠错码。具体而言,纠错码通过在数据流中引入冗余度来补偿这些系统中固有的信息传递不可靠性。低密度奇偶校验(LDPC)码是一种特定类型的纠错码,其使用迭代编码系统。LDPC码可由二部图(常常称为“Tanner图”)来表示,其中一组变量节点对应于码字的比特,并且一组校验节点对应于定义该码的一组奇偶校验约束。变量节点和校验节点在该图中若被边连接,则它们被认为是“邻居”。当且仅当对于每个校验节点,与所有相邻变量节点相关联的比特的模2总和为0(即,它们包括偶数个1)时,与变量节点序列具有一对一关联的比特序列是有效码字。
[0003] 例如,图1A示出表示示例性LDPC码的二部图100。二部图100包括连接至4个校验节点120(由正方形表示)的一组5个变量节点100(由圆形表示)。图100中的边将变量节点110连接至校验节点120。图1B示出二部图100的矩阵表示150。矩阵表示150包括奇偶校验矩阵H和码字向量x,其中x1-x5表示码字x的比特。更具体地,当且仅当Hx=0时,码字向量x表示有效码字。图2图形化地解说了对图1A的图作出三个副本的效果,例如,如在共同拥有的美国专利7,552,097中描述的。三个副本可通过置换这些副本间的相似边来被互连。如果置换被限为循环置换,则结果所得的图对应于具有提升Z=3的准循环LDPC。从其作出三个副本的原始图在本文中被称为基图。
[0004] 所接收到的LDPC码字可被解码以产生原始码字的经重构版本。在不存在差错的情况下或者在可校正差错的情形中,解码可被用来恢复已被编码的原始数据单元。LDPC解码器通常通过以下操作来工作:沿着各边在二部图100内交换消息,以及通过基于传入消息在各节点处执行计算来更新这些消息。例如,图100中的每个变量节点110可初始地被提供以“软比特”(例如,表示码字的收到比特),其指示如由从通信信道所作的观察所确定的相关联比特的值的估计。使用这些软比特,LDPC解码器可通过从存储器迭代地读取消息或其部分并将经更新消息或其部分写回存储器来更新消息。更新操作通常基于对应LDPC码的奇偶校验约束。在用于经提升LDPC码的实现中,在相似边上的消息常常被并行处理。
[0005] 针对高速应用设计的LDPC码往往使用具有较大提升因子和相对较小的基图的准循环构造以支持编码和解码操作中的高并行性。具有较高码率(例如,消息长度K与码字长度N的比率)的LDPC码趋向于具有相对较少的奇偶校验。如果基奇偶校验的数目小于变量节点的度数(例如,连接至变量节点的边数),则在基图中,该变量节点由两条或更多条边(例如,该变量节点可具有“双重边”)连接到其中至少一个基奇偶校验。使所基于的变量节点和基校验节点由两条或更多条边连接对于并行硬件实现目的而言通常是不期望的。例如,此类双重边可导致对相同存储器位置的多次并发读和写操作,这进而可产生数据一致性问题。并行消息更新的流线化可受到双重边存在的不利影响。发明内容
[0006] 提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题内容的关键特征或必要特征,亦非旨在限定要求保护的主题内容的范围。
[0007] 公开了可辅助低密度奇偶校验(LDPC)码字的编码和/或解码的设备和操作方法。注意到,向基图设计中添加被穿孔变量节点(也称为状态变量节点)可有效地将该图中校验数目增加1而不改变该码的速率参数(k和n)。对于一些实施例而言,编码器可接收一组信息比特并对这些信息比特执行LDPC编码操作以产生码字。设备随后可基于被用于LDPC编码操作的经提升LDPC码来将与一个或多个基变量节点相对应的一组经提升码字比特穿孔,其中被穿孔的比特分别对应于基LDPC图的一个或多个被穿孔基变量节点。应理解,该码的图形化描述中的被穿孔的变量节点可通过对经提升奇偶校验矩阵进行操作的校验节点合并过程来从该描述中被消除。因此,该一个或多个被穿孔基节点中的至少一个被理解为消除经提升LDPC码的基图的节点对之间的多重边——当消除被穿孔变量节点结果产生多重边时。
[0008] 对于一些实施例而言,所述一个或多个被穿孔节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的变量节点。例如,至少一个被穿孔的节点可以是该LDPC码的最高度数变量节点。在此类实施例中,往往期望该节点的高度数以用于增强该码的性能。例如,穿孔允许有更高的变量节点度数,而同时又避免基图中的双重边。图中存在被穿孔的变量节点有效地增加了原本将在相同大小和速率的码的基图中存在的校验节点的数目。对于其他实施例而言,至少一个被穿孔的节点可以是度数为2的变量节点,其被用来分裂原本由两条或更多条边连接到该LDPC码的一变量节点的校验节点。被穿孔的度数为2的节点可通过加上其所连接到的2个奇偶校验来从描述中被消除。该至少一个被穿孔的度数为2的基变量节点由此可被用来消除基LDPC图中的双重边。类似地,高度数的被穿孔节点可通过对诸约束节点进行求和以有效地将该变量节点的度数减小到1的消除过程来从奇偶校验矩阵表示中被消除。度数为1的被穿孔节点可连同其相邻校验节点一起从图中被消除而无需改动该码。此类消除过程有可能向此表示中引入双重边或多重边,这对于解码的并行实现而言是不期望的。
[0009] 通过从基LDPC图中消除或减少双重(或多重)边,本公开的各实施例可降低并行执行LDPC解码操作的硬件的复杂度,藉此提高实现经提升LDPC码的LDPC解码器的处理效率。这进一步简化了存储器中执行的读和/或写操作,并且确保读和写操作不是脱序执行的。通过允许较大的变量节点度数而同时又避免双重边,本公开的各实施例还可改进LDPC编码系统的纠错性能。
附图说明
[0010] 本发明各实施例是作为示例来解说的,且不旨在受附图中各图的限定,其中:
[0011] 图1A-1B示出了示例性LDPC码的图形和矩阵表示;
[0012] 图2图形化地解说了对图1A的图作出三个副本的效果;
[0013] 图3示出根据一些实施例的通信系统;
[0014] 图4是根据一些实施例的通信设备的框图
[0015] 图5是根据一些实施例的描绘LDPC编码操作的解说性流程图
[0016] 图6是根据一些实施例的描绘LDPC解码操作的解说性流程图;
[0017] 图7示出与具有码率r=27/30的LDPC码相关联的示例性奇偶校验矩阵;
[0018] 图8示出与具有码率r=13/15的LDPC码相关联的示例性奇偶校验矩阵;
[0019] 图9示出与具有码率r=21/28的LDPC码相关联的示例性奇偶校验矩阵;以及[0020] 图10是根据一些实施例的通信设备的框图。

具体实施方式

[0021] 在以下描述中,阐述了众多具体细节(诸如具体组件、电路、和过程的示例),以提供对本公开的透彻理解。如本文所使用的,术语“耦合”意指直接连接到、或通过一个或多个居间组件或电路来连接。而且,在以下描述中并且出于解释目的,阐述了具体的命名以提供对本公开各实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以不需要这些具体细节就能实践本发明各实施例。在其他实例中,以框图形式示出公知的电路和设备以避免混淆本公开。本文所描述的各种总线上所提供的任何信号可以与其他信号进行时间复用并且在一条或多条共用总线上提供。另外,各电路元件或软件之间的互连可被示为总线或单信号线。每条总线可替换地是单信号线,而每条单信号线可替换地是总线,并且单线或总线可表示用于各组件之间的通信的大量物理或逻辑机制中的任一个或多个。本发明各实施例不应被解释为限于本文描述的具体示例,而是在其范围内包括由所附权利要求所限定的所有实施例。
[0022] 图3示出根据一些实施例的通信系统300。发射机310将信号发射到信道320上,并且接收机330从信道320接收该信号。发射机310和接收机330可以是例如计算机、交换机、路由器、集线器、网关、和/或类似设备。在一些实施例中,信道320是无线的。在其他实施例中,信道320是有线链路(例如,同轴电缆或其他物理连接)。
[0023] 通信系统300中的各个组件的瑕疵可能成为信号损伤的源,并由此导致信号降级。例如,信道320中的瑕疵可能引入信道畸变,其可包括线性畸变、多径效应、和/或加性高斯白噪声(AWGN)。为了对抗潜在的信号降级,发射机310和接收机330可包括LDPC编码器和解码器。特别地,发射机310可对传出数据执行LDPC编码以产生能由接收机330后续解码(例如,通过LDPC解码操作)以恢复原始数据的码字。对于一些实施例,发射机310可传送具有一个或多个“被穿孔”比特(例如,基于具有一个或多个被穿孔变量节点的LDPC码)的经LDPC编码码字。
[0024] “提升”使得LDPC码能够使用并行编码和/或解码实现来实现,而同时还还降低通常与大LDPC码相关联的复杂度。更具体地,提升是用于从较小基码的多个副本生成相对较大LDPC码的技术。例如,经提升LDPC码可通过以下操作来生成:产生基图的数个(Z个)并行副本并随后通过对该基图的每个副本的边簇的置换来互连这些并行副本。经提升LDPC码的更详细讨论可例如在于2008年3月17日出版的、由Tom Richardson和Ruediger Urbanke撰写的题为“Modern Coding Theory(现代编码理论)”的书中找到,其通过引用整体纳入于此。
[0025] 例如,当处理具有提升大小Z的码字时,LDPC解码器可利用Z个处理元件来并发地对经提升图的所有Z条边执行奇偶校验或变量节点操作。具体而言,每个奇偶校验操作可涉及从存储器读取对应软比特值,将该软比特值与关联于该校验节点的其他软比特值进行组合并将由该校验节点操作结果得到的软比特写回存储器。基图中的双重边可触发在单次并行奇偶校验更新期间并行读取一存储器位置中的相同软比特值两次。由此可能需要附加电路系统来组合被写回存储器的软比特值,以便正确地纳入这两个更新。消除基图中的双重边帮助避免此额外的复杂度。
[0026] 通过从基LDPC码中消除或减少双重(和/或多重)边,穿孔可降低执行并行校验节点或变量节点操作的硬件的复杂度,藉此提高对应LDPC解码器的并行处理效率。这进一步简化了在存储器中执行的读和/或写操作,并且确保读和写操作不是脱序执行的。
[0027] 穿孔是从码字移除比特以产出较短码字的动作。因此,被穿孔的变量节点对应于实际不被传送的码字比特。穿孔LDPC码中的变量节点创建缩短的码(例如,由于比特的移除),而同时还有效地移除校验节点。具体而言,对于LDPC码的矩阵表示(其包括要被穿孔的比特),在要被穿孔的变量节点具有度数1(这样的表示可通过行合并来成为可能,前提是该码是正确的)的场合,穿孔该变量节点将相关联的比特从该码移除并且有效地从该图移除了其单个相邻校验节点。作为结果,该图中校验节点的数目被减少了1。如果基传送块长度为n-p,其中p是被穿孔列的数目,并且基奇偶校验的数目为m,则码率为(n-m)/(n-p)。二进制信息块大小为(n-m)*Z,并且传送块大小为(n-p)*Z。注意,如果将n和p增大1,则可将m增大1并让码率和块大小不变。
[0028] 作为示例,考虑码率为0.9的码,其中基块长度为30。在不穿孔的情况下,将被用来定义该基码的校验节点的数目为3,结果得到(27,30)码(例如,K=27个消息比特,N=30个码字比特)。此类码很有可能具有将至少一个校验节点连接至一变量节点的双重(或更多重)边(例如,除非所有变量节点具有最大度数为3)。然而,可能期望有更大度数的变量节点(例如,度数≥4)例如以确保深的差错本底。如果被穿孔的变量节点被引入到LDPC码中,藉此将变量节点的总数增大到31,则基校验节点的数目增大到4。现在就有可能在基图中没有双重边的情况下有度数为4的基变量节点。然而,注意到,此类LDPC码仍为(27,30)码。
[0029] 在LDPC码的二部图表示中,被穿孔的度数为2的变量节点有效地将其两个相邻校验节点归并成单个校验节点。被穿孔的度数为2的变量节点有效地指示其两个相邻校验节点在该度数为2的节点不在的情况下具有相同奇偶性。相应地,被穿孔的度数为2的变量节点可被用来“分裂”校验节点,藉此看起来增大了校验节点的总数。此机制由此可被用来从LDPC码中移除多重边。如果在基图中变量节点的度数大于校验节点的总数(N),则该变量节点通常由两条或更多条边连接到至少一个校验节点。因此,可通过引入一个或多个度数为2的变量节点(即,假定基图中的至少一个变量节点具有大于N的度数)来避免和/或消除基图中的多重边。
[0030] 对LDPC码的高度数基变量节点穿孔还可增加校验节点的数目。另外,高度数校验节点在高性能LDPC设计中可能是期望的。例如,最高度数变量节点可对应于具有等于基图中校验节点的总数(或比其小1)的度数的变量节点。此类高度数变量节点明显可存在于基图中而不具有任何双重边。如以下更详细描述的,被穿孔的变量节点在解码时被视为“已擦除”。因此,对于目标为低差错率的码而言,可能期望防止此类节点参与引起差错本底事件的组合结构(例如,陷阱集(trapping set)或近码字)。具有高度数通常使得节点将不太可能对促成差错本底事件。
[0031] 此外,图中高度数的被穿孔变量节点可改进该码的性能。已知的是图中被穿孔的节点能改进码结构的所谓迭代阈值。在标准的不规则LDPC设计中(即,不具有被穿孔的变量节点),可通过增大二部图中的平均度数并由此增大变量节点和校验节点的度数来改进阈值。在具有被穿孔的变量节点的情况下,可使用较低平均度数达成相同效果,藉此降低了LDPC码的复杂度。此外,具有较低平均度数的LDPC码结构对于较小的图可能性能更好。因此,将高度数变量节点穿孔可以既增大校验节点的数目(由此允许较高度数),又以有限的最大变量节点度数来改进码的性能。
[0032] 图4是根据一些实施例的通信设备400的框图。通信设备400包括编码器410、解码器420、和收发机430,收发机430经由通信信道传送和/或接收经LDPC编码的码字。编码器410包括存储器412和LDPC编码器414。存储器412可被用来存储要由LDPC编码器414编码的数据(即,信息比特)。LDPC编码器414通过基于LDPC码生成要被传送给另一设备的码字来处理存储在存储器412中的信息比特。
[0033] 对于一些实施例而言,LDPC码可以是经提升LDPC码。进一步,对于一些实施例而言,基LDPC码可包括一个或多个被穿孔的节点。LDPC编码器414由此可对码字中与基LDPC码的相应被穿孔节点相对应的一个或多个比特进行穿孔。这些被穿孔的码字比特不被收发机430传送。对于一些实施例而言,被穿孔的节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的基变量节点。例如,至少一个被穿孔的节点可以是LDPC码的最高度数变量节点。对于其他实施例而言,至少一个被穿孔的节点可被用来分裂由两条或更多条边连接到LDPC码的一变量节点的校验节点。此类被穿孔的节点可被用来消除用于经提升LDPC码的基图中的双重边。
[0034] 解码器420包括存储器422和LDPC解码器424。存储器422存储经由收发机430接收到的要被LDPC解码器424解码的码字。LDPC解码器424通过以下操作来处理存储器424中存储的码字:迭代地执行奇偶校验操作,使用LDPC码,以及尝试校正可能接收出错了的任何比特。对于一些实施例而言,LDPC码可以是经提升LDPC码。进一步,对于一些实施例而言,所接收到的码字可包括正如例如基于对应LDPC码的一组被穿孔节点所确定的一个或多个穿孔比特。如上所述,参照图3,被穿孔节点可基于LDPC码的变量节点的度数来确定。LDPC解码器424由此可将这些被穿孔节点视为已擦除以用于解码目的。例如,LDPC解码器424可在初始化时将被穿孔节点的对数似然比(LLR)设为0。
[0035] 对于一些实施例而言,LDPC解码器424可包括多个处理元件来并行执行奇偶校验或变量节点操作。例如,当处理具有提升大小Z的码字时,LDPC解码器424可利用数个(Z个)处理元件来并发地对经提升图的所有Z条边执行奇偶校验操作。具体而言,每个奇偶校验操作可涉及从存储器422读取对应软比特值,将该软比特值与关联于校验节点的其他软比特值进行组合并将由此校验节点操作结果得到的软比特写回存储器422。基LDPC码中的双重边可触发在单次并行奇偶校验更新期间并行读取存储器位置中的相同软比特值两次。因此,通常需要附加电路系统来组合被写回存储器的软比特值,以便正确地纳入这两个更新。然而,消除LDPC码中的双重边(例如,如以上关于图3描述的)帮助避免此额外的复杂度。
[0036] 图5是根据一些实施例的描绘LDPC编码操作500的解说性流程图。例如,参照图4,编码器410首先接收要被编码的一组信息比特(510)。这些信息比特可对应于旨在通过通信信道或网络传送给另一设备(例如,接收方设备)的数据。例如,这些信息比特可接收自中央处理单元(CPU)并存储在存储器412中。
[0037] 编码器410随后可对这些信息比特执行LDPC编码操作以产生LDPC码字(520)。对于一些实施例而言,LDPC编码器414可基于由编码器410和对应解码器(例如,接收方设备的对应解码器)共享的LDPC码将这些信息比特编码成LDPC码字。每个码字可包括原始信息比特或其部分、以及可(例如由解码器)用来对原始信息比特执行奇偶校验操作和/或恢复原始信息比特的一组奇偶比特。
[0038] 编码器410可进一步基于LDPC码的被穿孔的基变量节点对LDPC码字的一个或多个比特进行穿孔(530)。例如,该一个或多个被穿孔的码字比特可分别对应于基LDPC码的一个或多个被穿孔的基变量节点。具体而言,被穿孔的节点中的至少一些被提供以消除经提升LDPC码的基图中的节点对之间的多重边。对于一些实施例而言,被穿孔的节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的变量节点。对于其他实施例,其中至少一个被穿孔的节点可以是度数为2的变量节点。例如,度数为2的变量节点可被用来分裂原本将由两条或更多条边连接到LDPC码的另一变量节点的校验节点。对于一些实施例而言,两者均可发生,具体而言,高度数的被穿孔变量节点和度数为2的被穿孔节点两者均可在基图中发生。对于一些实施例而言,LDPC码可以是经提升LDPC码。再进一步,LDPC码可基于准循环提升,其中对边簇的置换是循环置换。
[0039] 图6是根据一些实施例的描绘LDPC解码操作的解说性流程图600。例如,参照图4,解码器420首先接收要被解码的LDPC码字(610)。LDPC码字可接收自传送方设备,例如以经正交振幅调制(QAM)数据信号的形式。相应地,LDPC码字可对应于经解映射的QAM数据信号的标记比特的子集。
[0040] 解码器420可基于LDPC码的被穿孔基节点来标识LDPC码字的一个或多个被穿孔比特(620)。例如,该一个或多个被穿孔的码字比特可分别对应于LDPC码的一个或多个被穿孔基节点。如上所述,被穿孔基节点中的至少一些被提供以消除经提升LDPC码的基图中的节点对之间的多重边。对于一些实施例而言,被穿孔节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的变量节点。对于其他实施例,其中至少一个被穿孔的节点可以是度数为2的变量节点。如上所述,度数为2的变量节点可被用来分裂原本将由两条或更多条边连接到LDPC码的另一变量节点的校验节点。对于一些实施例而言,LDPC码可以是经提升LDPC码(例如基于准循环提升的LDPC码)。
[0041] 解码器420随后可对所接收到的码字执行LDPC解码操作以恢复原始信息比特(630)。例如,LDPC解码器424可通过以下操作来处理码字:迭代地执行奇偶校验操作,使用LDPC码,以及尝试校正可能接收出错了的任何比特。对于一些实施例,LDPC解码器424可在解码操作期间将被穿孔的码字比特视为被擦除,例如通过在初始化时将被穿孔节点的LLR设为0。
[0042] 在本公开的各实施例中,每个LDPC码可被视为大小为Z×n的二维的二进制阵列,其中n是基(传输)块长度。对于一些实施例而言,所提议的下游码被定义为使得Z=360。在每个星座中,可每次每维取k个比特(例如,对于1024QAM,k=5)。此外,k是360的因数,并且进而按列一次取k个比特,由此生成360/k维或180/k个码元每列。由此应注意,在感兴趣的情形中,对于集合k∈{1,2,3,4,5,6},k是60的因数。
[0043] 图7、8和9分别示出根据一些实施例的示例性奇偶校验矩阵700、800和900。在奇偶校验矩阵700、800和900中的每一者中,顶行索引H的列。第二行指示信息(1)和奇偶校验(0)列。第三行指示被传送列(1)和被穿孔列(0)。
[0044] 注意,分别与具有码率r=27/30和r=13/15的LDPC码相关联的奇偶校验矩阵700和800是系统性的。然而,与具有码率r=21/28的LDPC码相关联的奇偶校验矩阵900具有被穿孔的信息列,并且由此不是完全系统性的。
[0045] 进一步,奇偶校验矩阵700具有被穿孔的度数为2的变量节点(索引0)。此类节点可将单个奇偶校验分裂成2个。这确保基矩阵不具有双重边,并且促成了本文所描述的一些实施例。可通过合并这两个奇偶校验以及消除被穿孔的度数为2的变量节点来构造等效的码表示。此外,此类等效表示在基图中将具有双重或多重边。
[0046] 图10是根据一些实施例的通信设备1000的框图。通信设备1000包括收发机1010、处理器1020和存储器1030。收发机1010可被用于向和/或从通信设备1000传达数据。例如,收发机1010可在通信设备1000与CPU之间接收和/或传送信息比特。编码器接口1010还可在通信设备1000与网络中的另一通信设备之间输出和/或接收LDPC码字。
[0047] 存储器1030可包括数据存储1032,数据存储1032可被用作存储收到信息比特和/或码字的本地高速缓存。此外,存储器1030还可包括非瞬态计算机可读存储介质(例如,一个或多个非易失性存储器元件,诸如EPROM、EEPROM、闪存存储器、硬盘驱动器、等等),其可存储以下软件模块
[0048] ·LDPC编码模块1034,其使用LDPC码对一组信息比特进行编码以产生[0049] 码字;
[0050] ·LDPC解码模块1036,其使用LDPC码对LDPC码字解码。
[0051] 每个软件模块可以包括指令,这些指令在由处理器1020执行时可以使编码器1000执行相应的功能。由此,存储器1030的非瞬态计算机可读存储介质可包括用于执行以上针对图5–6描述的操作的全部或一部分的指令。应注意,虽然模块1034–1036被描绘为存储器1030中的软件,但这些模块中的任一者可以用硬件、软件、固件、或前述的组合来实现。
[0052] 处理器1020(其耦合在编码器接口1010与存储器1030之间)可以是能够执行存储在解码器1000中(例如,存储器1030内)的一个或多个软件程序的指令的脚本的任何合适的处理器。例如,处理器1020可执行LDPC编码模块1034和/或LDPC解码模块1036。
[0053] LDPC编码模块1034可被处理器1020执行以使用LDPC码对信息比特进行编码以产生码字。例如,处理器1020在执行LDPC编码模块1034时可基于由LDPC编码模块1034与对应接收设备的解码模块共享的LDPC码来对信息比特执行LDPC编码操作。每个码字可包括原始信息比特以及可被用来对原始信息比特执行奇偶校验和/或恢复原始信息比特的一组奇偶比特。对于一些实施例而言,LDPC码可以是经提升(例如基于准循环提升)的LDPC码。
[0054] 处理器1020在执行LDPC编码模块1034时可进一步基于对应LDPC码来对码字的一个或多个比特进行穿孔。例如,该一个或多个被穿孔的码字比特可分别对应于该LDPC码的一个或多个被穿孔节点。如上所述,被穿孔节点中的至少一些被提供以消除经提升LDPC码的基图中的节点对之间的多重边。对于一些实施例而言,被穿孔的节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的变量节点。对于其他实施例而言,其中至少一个被穿孔的节点可以是度数为2的变量节点(例如,被用来分裂原本将由两条或更多条边连接到LDPC码的另一变量节点的校验节点)。
[0055] LDPC解码模块1036可被处理器1020执行以使用LDPC码对LDPC码字进行解码。对于一些实施例而言,处理器1020在执行LDPC解码模块1036时可首先基于LDPC码来标识收到码字的一个或多个被穿孔比特。处理器1020随后可对所接收到的码字执行LDPC解码操作,而同时将被穿孔的码字比特视为被擦除。例如,LDPC解码模块1036在被处理器1020执行时可在初始化时将被穿孔节点的LLR设为0。对于一些实施例而言,LDPC码可以是经提升(例如基于准循环提升)的LDPC码。
[0056] 如上所述,被穿孔的码字比特可对应于LDPC码的相应被穿孔节点,其中被穿孔节点中的至少一些被提供以消除经提升LDPC码的基图中的节点对之间的多重边。对于一些实施例而言,被穿孔节点可包括具有等于LDPC码的校验节点的数目或比该数目小1的度数的变量节点。对于其他实施例而言,其中至少一个被穿孔的节点可以是度数为2的变量节点(例如,被用来分裂原本将由两条或更多条边连接到LDPC码的另一变量节点的校验节点)。
[0057] 在说明书前述篇幅中,本发明各实施例已参照其具体示例性实施例进行了描述。然而将明显的是,可对其作出各种修改和改变而不会脱离如所附权利要求中所阐述的本公开更宽泛的范围。相应地,本说明书和附图应被认为是解说性而非限定性的。例如,在图5–6的流程图中描绘的方法步骤可以按其他合适的次序执行,多个步骤可以合并成单个步骤,和/或一些步骤可以被省略。
QQ群二维码
意见反馈