一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于生成优化LDPC码的方法和装置与流程

2022-05-18 19:49:52 来源:中国专利 TAG:

用于生成优化ldpc码的方法和装置
技术领域
1.本公开涉及低密度奇偶校验(low-density parity-check,ldpc)码优化。特别地,示例涉及用于生成优化ldpc码的方法和装置。


背景技术:

2.ldpc码是当今的通信和存储系统中广泛使用的纠错机制。在给定信道的特性的情况下,编码的列度和行度分布可以被优化为使得ldpc码的性能可以非常接近香农极限。
3.然而,这种精心设计的ldpc码不是通用的。例如,针对一个特定信道设计的ldpc码可能对于其他信道并不有效。此外,当底层信道是对称的、即错误转移概率不取决于传输的符号时,ldpc码的设计被充分地进行了研究。然而,在实际的通信和存储系统中通常遇到的信道是不对称的,并且有时可能是严重偏斜的。不存在针对这种场景中的ldpc码的明确设计原则。
4.通常,ldpc码会遭受所谓的“错误平层(error floor)”,在错误平层处,与高输入错误率状态相比,输出错误率曲线在低输入错误率状态中的斜率显著降低。对于要求高可靠性的应用,这可能会限制ldpc码的使用。
5.因此,可能存在对ldpc码优化技术的期望。
附图说明
6.以下将参考附图仅作为示例来描述装置和/或方法的一些示例,在附图中:
7.图1示出了用于生成用于非对称传输信道的优化ldpc码的方法的示例的流程图;
8.图2示出了用于生成用于非对称传输信道的优化ldpc码的装置的示例;
9.图3示出了当底层传输信道非对称时,用于非对称传输信道的优化ldpc码与用于对称传输信道的优化ldpc码之间的第一示例性性能比较;
10.图4示出了当底层传输信道对称时,用于非对称传输信道的优化ldpc码与用于对称传输信道的优化ldpc码之间的第二示例性性能比较;
11.图5示出了用于生成针对多个传输信道而优化的优化ldpc码的方法的示例的流程图;
12.图6示出了用于生成针对多个传输信道而优化的优化ldpc码的装置的示例;
13.图7示出了用于优化ldpc码的方法的示例的流程图;
14.图8示出了用于优化ldpc码的装置的示例;
15.图9示出了用于优化ldpc码的示例性过程流程的流程图;
16.图10示出了环数配置的第一示例;
17.图11示出了环数配置的第二示例;
18.图12示出了优化顺序的第一示例;
19.图13示出了优化顺序的第二示例;
20.图14示出了优化顺序的第三示例;
21.图15示出了优化ldpc码与参考ldpc码之间的示例性性能比较;
22.图16示出了两个优化ldpc码之间的示例性性能比较;以及
23.图17示出了不同围长的两个ldpc码之间的示例性性能比较。
具体实施方式
24.现在参考附图对一些示例进行更详细的描述。然而,其他可能的示例并不限于详细描述的这些实施例的特征。其他示例可包括对这些特征的修改,以及对这些特征的等同和替换。此外,本文用于描述某些示例的术语不应当限制另外的可能示例。
25.在对附图的整个描述的各处,相同或相似的附图标记指代相同或相似的元素和/或特征,它们可以是相同的,或者是以修改后的形式实现的,同时提供相同或相似的功能。附图中的线、层和/或区域的厚度也可能为了清晰而被夸大。
26.当两个元素a和b被使用“或”来组合时,这应被理解为公开了所有可能的组合,即,仅a、仅b、以及a和b,除非在个别情况下另有明确定义。作为相同组合的替换措辞,可以使用“a和b中的至少一个”或者“a和/或b”。这等同地适用于多于两个元素的组合。
27.如果使用诸如“一”和“该”之类的单数形式,并且没有明确地或者隐含地将仅使用单个元素限定为强制性的,则另外的示例还可使用若干个元素来实现相同的功能。如果一功能在下文中被描述为使用多个元素来实现,则另外的示例可使用单个元素或单个处理实体来实现相同的功能。还应理解,术语“包括”和/或“包含”当被使用时描述的是存在所指定的特征、整体、步骤、操作、过程、元素、组件和/或其群组,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、过程、元素、组件和/或其群组。
28.ldpc码是现代通信系统中普遍使用纠错机制。它们的特征在于以下奇偶校验矩阵:该奇偶校验矩阵(针对总体维度)具有稀疏的列重和行重。ldpc码经常由连接列(变量节点)和行(校验节点)的坦纳图(tanner graph)表示。
29.图1示出了用于生成用于非对称传输信道的优化ldpc码的方法100的示例的流程图。在下文中,还将参考图2来描述方法100,图2示出了用于生成用于非对称传输信道的优化ldpc码的示例性装置200。
30.非对称传输信道是以下传输信道:针对传输信道的不同的可能输入值,输出转移概率是不同的。例如,对于二进制输入非对称传输信道,针对输入比特0和1的输出转移概率是不同的。
31.方法100包括接收102用于非对称传输信道的初始ldpc码。相应地,装置200包括被配置为接收初始ldpc码201的输入电路210。初始ldpc码是待针对非对称传输信道进行优化的ldpc码。换言之,初始ldpc码用作以下码优化过程的基础。
32.方法100还包括对初始ldpc码执行104密度演化(density evolution,de)阈值优化,以获得用于非对称传输信道的优化ldpc码。装置200包括相应的处理电路220,处理电路220用于对初始ldpc码执行de阈值优化。例如,处理电路220可以是单个专用处理器、单个共享处理器、或者多个单独的处理器,多个单独的处理器中的一些或者全部的多个单独的处理器可以是共享的数字信号处理器(digital signal processor,dsp)硬件、专用集成电路(application specific integrated circuit,asic)或者现场可编程门阵列(field programmable gate array,fpga)。处理电路220可以可选地耦接到例如用于存储软件的只
读存储器(read only memory,rom)、随机访问存储器(random access memory,ram)和/或非易失性存储器。由处理电路220确定的优化ldpc码202由装置200的输出电路230输出。
33.de是以下数值工具:其用于分析用于ldpc码的消息传递解码算法。de通过模拟消息传递解码器的变量节点和校验节点操作,计算出在对渐进大的ldpc码进行解码期间的消息分布。该消息分布随后被用于预测在解码结束时的输出误比特率(随信道参数变化)。由于在de计算中涉及的元素的渐进性质,因而在信道参数的某个“阈值”以下,由de计算的输出误比特率将等于零。虽然可能看起来这种计算是纯理论上有意义的,但该阈值对应于输出错误率曲线的“拐点”或“瀑布起点”,即使对于实际的有限长度码、例如待优化的初始ldpc码,也是如此。利用de计算阈值并且优化该拐点,是被用于为通信和存储系统设计实际ldpc码的基本方法。de阈值优化涉及(包括)使用诸如爬坡、模拟退火等之类的技术对列度和行度分布进行的函数优化。
34.在de用于对称传输信道的传统设置中,de通过在解码器处进行全零码字假设来计算边缘消息分布。这是因为对于对称传输信道和线性码(ldpc码是线性的),解码器处的输出错误概率与传输的码字无关,并且我们可以假设传输的是全零码字,而不失一般性。与此形成鲜明对比的是,对于非对称传输信道,这个假设是不成立的,并且解码器处的输出错误概率严格取决于传输的码字。因此,非对称传输信道是复杂的,并且比对称信道难分析得多。
35.为了考虑非对称传输信道的结构,在de阈值优化中使用非对称传输信道的均匀混合对称信道密度。均匀混合对称信道密度是均匀加权的以下通道密度的组合:该通道密度为非对称传输信道的针对非对称传输信道的各个可能输入值的信道密度。
36.方法100的优化方法基于以下发现:对于实际的非对称传输信道,并非ldpc码的所有码字都有意义。由于编码延迟约束和解码延迟约束,ldpc码的所有实际系统实现方式都使用系统编码,这意味着传输的码字包含可区分的数据部分和奇偶部分。此外,由于安全性约束,数据很可能在编码器之前已经被加密,这意味着码字的数据部分包含均匀的一和零(即,接近50%的0和50%的1)。即使没有加密,用户数据通常是作为一个流的均匀随机的0和1(尤其是在压缩之后)这个事实,也使均匀性假设可信。现在,由于数据包含均匀的0和1,而这还意味着码字的奇偶部分也包含均匀的0和1,因而整个码字包含均匀的零和一(即,接近50%的0和1)。也就是说,在实践中,ldpc码字包含均匀的零和一。然而,整个ldpc码本包含的码字具有0到1之间的宽广范围比例的零和一。
37.方法100通过利用非对称传输信道的均匀混合对称信道密度方面的零和一的均匀性,而涉及对非对称传输信道的近似,并且将处理非对称传输信道的问题化简到对称传输信道的领域。问题的这种变换进一步允许使用关于对称传输信道的所有现有技术。
38.例如,针对具有交叉概率(错误转移概率)p的二进制对称传输信道,用于de目的的信道对数似然比(log-likelihood ratio,llr)密度c可以通过以下等式给出:
[0039][0040]
其中,x表示输入到二进制对称传输信道的值,δ表示狄拉克得尔塔函数,在值x=0时的概率质量为“1”。
[0041]
考虑双输入二进制非对称传输信道,比特值0的交叉概率(错误转移概率)为p,并
且比特值1的交叉概率(错误转移概率)为q。例如,当比特值0被传输时,转移概率pr可以是:
[0042]
pr(y=1|x=0)=p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0043]
以及
[0044]
pr(y=0|x=0)=1-p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0045]
其中,x表示输入到二进制非对称传输信道的值,y表示由二进制非对称传输信道输出的值。
[0046]
类似地,当比特值1被传输时,转移概率pr可以是:
[0047]
pr(y=1|x=1)=1-q
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0048]
以及
[0049]
pr(y=0|x=1)=q
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0050]
因此,针对双输入的二进制非对称传输信道,存在针对起作用的两个可能输入值的两个信道密度c0和c1:
[0051][0052][0053]
信道密度c0表示非对称传输信道针对可能输入值0的信道密度,而信道密度c1表示非对称传输信道针对可能输入值1的信道密度。换言之,针对非对称传输信道的每个可能输入值,非对称传输信道的相应信道密度是基于针对相应可能输入值的非对称传输信道的相应错误转移概率的。
[0054]
由于假设ldpc的码字在实践中具有均匀的零和一,所以信道密度c0和c1可以被如下组合为均匀混合对称信道密度:
[0055][0056]
信道密度被组合以翻转比特值1的符号。也就是说,针对双输入二进制非对称传输信道,均匀混合对称信道密度由以下等式给出:
[0057][0058]
均匀混合对称信道密度c(x;p,q)允许执行de并且获得输出误比特率,从而可以优化de演化阈值,因此优化ldpc码。
[0059]
这种方法可以推广到具有针对非对称传输信道的两个可能输入值的信道密度c0和c1的任意非对称传输信道:
[0060][0061]
其中,c(x)表示非对称传输信道的均匀混合对称信道密度。
[0062]
换言之,如果可能输入值的数量是两个,则均匀混合对称信道密度是以下项之和:非对称传输信道针对两个可能输入值之一的信道密度、和非对称传输信道针对两个可能输入值中的另一个的信道密度。在非对称传输信道的均匀混合对称信道密度中,非对称传输
信道针对两个可能输入值的信道密度都被加权0.5的加权因子。
[0063]
均匀混合对称信道密度在de中被用于确定输出错误率,输出错误率本身被用于ldpc码的度分布优化,类似于对称传输信道的已知情况。
[0064]
例如,在第一次迭代中,对初始ldpc码执行de阈值优化可包括:修改初始ldpc码的列度分布和行度分布中的至少一个,以获得第一次迭代修改ldpc码。根据一些示例,初始ldpc码的列度分布和行度分布两者可以被修改,以获得第一次迭代修改ldpc码(爬坡或模拟退火可用于对初始ldpc码的修改)。随后,在第一次迭代中,对初始ldpc码执行de阈值优化可包括:使用均匀混合对称信道密度,确定针对第一次迭代修改ldpc码的de阈值。如果针对第一次迭代修改ldpc码的de阈值满足质量标准,则第一次迭代修改ldpc码可被选择为第一次迭代中的优化ldpc码。否则,初始ldpc码可被选择为第一次迭代中的优化ldpc码。
[0065]
对于后续的第i次迭代,1《i(i为整数),对初始ldpc码执行de阈值优化可包括:修改优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码。此外,在第i次迭代中对初始ldpc码执行de阈值优化可包括:使用均匀混合对称信道密度,确定针对第i次迭代修改ldpc码的de阈值。如果针对第i次迭代修改ldpc码的de阈值满足质量标准,则第i次迭代修改ldpc码可被选择为优化ldpc码。否则,维持当前的最优(优化)ldpc码。
[0066]
下面将参考图3和图4强调根据方法100优化的ldpc码的性能。特别地,假设以下变量节点分布l
sym
(x)作为参考,该变量节点分布l
sym
(x)通过对对称加性白高斯噪声(additive white gaussian noise,awgn)信道进行de阈值优化而获得:
[0067]
l
sym
(x)=262x3 x6 16x8 6x
10
2x
11
4x
12
x
12
x
14
2x
15
2x
16
x
19
x
20
x
34
ꢀꢀꢀꢀ
(11)
[0068]
另外,假设以下变量节点分布l
asy
(x),该变量节点分布l
asy
(x)通过根据方法100对非对称与非(nand)传输信道进行de阈值优化而获得:
[0069]
l
asy
(x)=270x3 5x
10
10x
11
6x
12
5x
13
4x
14
ꢀꢀꢀꢀ
(12)
[0070]
从de阈值优化而得到的度分布针对对称信道和非对称信道具有独有的特性。
[0071]
图3示出了针对非对称传输信道的随输入误比特率(ber)变化的输出ber历程的示例性比较。特别地,线310示出了根据方法100针对非对称传输信道优化的ldpc码的输出ber历程。线320示出了针对对称传输信道优化的ldpc码的输出ber的历程。作为参考,图3中示出了针对非对称nand传输信道的de演化阈值330和针对对称awgn信道的de演化阈值340。
[0072]
从图3可以看出,在非对称nand传输信道上,与根据方法100专门针对非对称nand传输信道优化的ldpc码相比,针对对称awgn传输信道优化的ldpc码的性能更差。这也反映在容量缺口上,与变量节点分布l
asy
(x)相比,变量节点分布l
sym
(x)在nand信道上的容量缺口较小。
[0073]
另一方面,图4示出了针对对称传输信道的随输入ber变化的输出ber历程的示例性比较。特别地,线410示出了根据方法100针对非对称传输信道优化的ldpc码的输出ber的历程。线420示出了针对对称传输信道优化的ldpc码的输出ber的历程。作为参考,图4中示出了针对非对称nand传输信道的de演化阈值430和针对对称awgn信道的de演化阈值440。
[0074]
从图4可以看出,在对称awgn传输信道上,与根据方法100专门针对非对称nand传输信道优化的ldpc码相比,针对对称awgn传输信道优化的ldpc码的性能更好。
[0075]
方法100是一种实现起来简单、且能够针对非对称传输信道获得良好ldpc码的机制。方法100通过利用在实际系统中ldpc码的码字通常具有均匀的零和一(即,50%的0和
50%的1)这个事实,而涉及对de的近似,这对于在实践中看到的非对称传输信道非常好用。所提出的技术允许针对非对称传输信道设计出具有更高的纠正强度的优秀ldpc码。
[0076]
所提出的技术可以促进基于具有优秀的可纠正性的ldpc码的纠错方案,这可以最终有助于向客户提供更便宜且更好的产品。所提出的技术不是把非对称性看作是一个缺点,而是可以将这一点作为优势来利用,并且设计出支持高输入错误率减小的纠错码,这直接转化为成本降低和更快的上市时间。
[0077]
不是仅存在针对非对称传输信道来优化ldpc码的期望。在一些实际的系统中,传输信道可能变化。例如,在无线系统中,传输信道可能依赖于相干时间而迅速变化。在存储系统中,虽然第一次读取可能仅提供比特的硬信息,但额外的软信息可能会根据需要而被请求。因此,存在对以下ldpc码的期望:该ldpc码针对不同的传输信道同时是良好的。图5示出了用于生成针对多个传输信道而优化的优化ldpc码的方法的示例的流程图。在下文中,还将参考图6来描述方法500,图6示出了用于生成针对多个传输信道而优化的优化ldpc码的装置的示例。
[0078]
方法500包括接收502初始ldpc码。相应地,装置600包括被配置为接收初始ldpc码601的输入电路610。初始ldpc码是待针对多个传输信道进行优化的ldpc码。换言之,初始ldpc码用作以下码优化过程的基础。
[0079]
方法500还包括对初始ldpc码执行504de阈值优化,以获得优化ldpc码。装置600包括相应的处理电路620,处理电路620用于对初始ldpc码执行de阈值优化。例如,处理电路620可以是单个专用处理器、单个共享处理器、或者多个单独的处理器,多个单独的处理器中的一些或者全部的多个单独的处理器可以是共享的dsp硬件、asic或者fpga。处理电路620可以可选地耦接到例如用于存储软件的rom、ram和/或非易失性存储器。由处理电路620确定的优化ldpc码602由装置600的输出电路630输出。
[0080]
优化变量节点和校验节点度分布以优化de阈值,通常是ldpc码构造的第一步。该优化传统上仅针对固定的一类信道进行,例如,二进制对称信道(binary symmetric channel,bsc)、awgn信道、量化软信道等。
[0081]
为了考虑多个传输信道,在de阈值优化的每次迭代中,针对多个传输信道的多个de阈值迭代地优化初始ldpc码的列度分布和行度分布中的至少一个。例如,在de阈值优化的每次迭代中,针对多个传输信道的多个de阈值迭代地优化初始ldpc码的列度分布和行度分布两者。也就是说,在方法500中,阈值优化不是针对一类传输信道、而是针对多类传输信道来执行的。由这种优化产生的优化ldpc码在宽广范围的信道上带来了良好的性能。方法500促进了基于具有优秀的可纠正性的ldpc码的纠错方案,这可以最终有助于向客户提供更便宜且更好的产品。方法500通过同时关注不同的信道,而促进了支持高输入错误率减小的多功能纠错码的设计,这直接转化为成本降低和更快的上市时间。
[0082]
ldpc码的度分布优化通过以下方式进行:从给定的一对变量节点和校验节点度分布开始,通过小的扰动和围绕当前分布的随机搜索来迭代地选择下一个分布。方法500不是评估和优化针对固定信道的de阈值,而是在优化期间针对每个变量节点和校验节点度分布,评估针对感兴趣的不同信道的de阈值。由于对于下一次迭代,分布会发生变化,因此对于一些信道,阈值会改善,而对于其他信道,阈值可能会恶化。基于对不同信道选择的性能标准,方法500可允许接受新的度分布或者拒绝它,以便以后可能有更好的选择。
[0083]
例如,在de阈值优化中,初始ldpc码可以被初始设置为优化ldpc码。然后,在第i次迭代中,i≥1(i为整数),对初始ldpc码执行504de阈值优化包括:修改优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码。例如,优化ldpc码的列度分布和行度分布两者可以被修改,以获得第i次迭代修改ldpc码。诸如爬坡、模拟退火等之类的技术可被用于在第i次迭代中修改优化ldpc码的列度分布和/或行度分布。此外,当在第i次迭代中对初始ldpc码执行504de阈值优化时,针对多个传输信道中的每个,确定相应的针对第i次迭代修改ldpc码的de阈值。如果针对第i次迭代修改ldpc码的de阈值满足质量标准,则对初始ldpc码执行504de阈值优化包括:在第i次迭代中,将当前的优化ldpc码更新为第i次迭代修改ldpc码。另一方面,如果针对第i次迭代修改ldpc码的de阈值不满足质量标准,则对初始ldpc码执行504de阈值优化包括:在第i次迭代中拒绝第i次迭代修改ldpc码。换言之,在每次迭代中,基于对多个传输信道选择的质量标准,接受或拒绝(一个或多个)修改的度分布。
[0084]
各种质量标准可被用于评估每次迭代中的(一个或多个)修改的度分布。在下文中,描述了两个示例性质量标准。然而,应注意,方法500不限于此。
[0085]
例如,可以使用加权优化。在这种方法中,不是优化关于给定信道的de阈值,而是优化与不同信道相对应的阈值的加权组合。就数学表达式而言,这可以被表述如下:
[0086]
最大化w1θ1 w2θ2

wkθkꢀꢀꢀꢀꢀ
(13)
[0087]
其中,θ
l
表示与多个传输信道(l=1

k)之中的传输信道“l”相对应的de阈值,0《w
l
《1表示在优化中与传输信道“l”相关联的相对权重。
[0088]
换言之,将优化ldpc码更新为第i次迭代修改ldpc码包括:确定针对第i次迭代修改ldpc码的所确定的de阈值的加权和。如果针对第i迭代修改ldpc码的所确定的de阈值的加权和大于针对当前的优化ldpc码的de阈值的加权和,则当前的优化ldpc码被更新为第i次迭代修改ldpc码。
[0089]
根据其他的示例,可以使用约束优化。在这种方法中,给定信道上的性能被优化,而其他信道上的性能具有一定的最小值。就数学表达式而言,这可以被表述如下:
[0090][0091]
其中,θ
l
表示与多个传输信道(l=1

k)之中的传输信道“l”相对应的de阈值,t
l
表示在优化中对各传输信道“l”所要求的最小de阈值。
[0092]
换言之,将优化ldpc码更新为第i次迭代修改ldpc码包括将以下项进行比较:针对多个传输信道之一的、针对第i次迭代修改ldpc码的所确定的de阈值,以及针对多个传输信道之一的、针对当前的优化ldpc码的de阈值。如果a)针对多个传输信道之一的、针对第i次迭代修改ldpc码的所确定的de阈值大于针对多个传输信道之一的、针对当前优化ldpc码的de阈值,并且b)针对多个传输信道中的其他传输信道的、针对第i次迭代修改ldpc码的所确定的de阈值高于各自的阈值,则当前的优化ldpc码被更新为第i次迭代修改ldpc码。
[0093]
例如,通过使用约束优化根据方法500来优化初始ldpc码,同时最大化awgn传输信道的阈值,可以实现针对awgn传输信道的大约5%的容量缺口,而针对二进制对称传输信道
的容量缺口可以最多为20%。
[0094]
方法500允许生成针对不同信道同时良好的ldpc码。
[0095]
如上所述,低错误平层是ldpc码的另一个期望特性。错误平层现象的特征在于,与高输入错误率状态相比,输出错误率曲线在低输入错误率状态中的斜率显著降低。当ldpc码的块长度较小时(例如,最高达几千比特)——这在许多通信技术(例如,5g新无线电或g.mgfast)或存储器技术中普遍存在,错误平层现象尤其严重。
[0096]
图7示出了用于优化ldpc码以实现极低错误平层的方法700的示例的流程图。在下文中,还将参考图8来描述方法700,图8示出了用于优化ldpc码的示例性装置800。
[0097]
ldpc码由(例如,随机的)二进制奇偶校验矩阵指定,该矩阵具有预定的(固定的)列重和行重配置,即,预定列度分布和预定行度分布。ldpc码的奇偶校验矩阵由多个子矩阵形成。子矩阵是由各自的指数q表示的循环置换矩阵。每个子矩阵的相应指数指示相应子矩阵相对于单位矩阵的相应循环(例如,右或左)移位、或者指示相应子矩阵等于零矩阵。换言之,该ldpc码是准循环ldpc码。子矩阵的大小为q
×
q,即,每个子矩阵包括q行和q列。也就是说,准循环ldpc码具有固定的列重和行重配置,并且其奇偶校验矩阵可以被分割成q
×
q循环置换子矩阵的块。q和q是整数。
[0098]
例如,为了指示子矩阵之一从q
×
q单位矩阵的循环右移(以列的方式),指数q可以针对相应子矩阵被设置为单个非负数,以使得0≤q《q。为了指示子矩阵等于零矩阵,指数q可被设置为-1。然而,应注意,这些值只是示例性的,以便于描述所提出的技术。根据本公开的各方面,其他值可以用于指数矩阵。
[0099]
例如,对于q=4,单位矩阵为
[0100][0101]
并且零矩阵为
[0102][0103]
换言之,单位矩阵是大小为q
×
q的矩阵,其在主对角线上包含一,并且在其他位置包含零。零矩阵是大小为q
×
q的矩阵,其条目全部为零。
[0104]
例如,对于q=4,指数q=2的循环置换子矩阵是:
[0105][0106]
方法700包括设置702ldpc码的指数矩阵。指数矩阵中的每个条目被配属于多个子矩阵中的相应一个子矩阵,并且指示相应指数的值。换言之,ldpc码的大小为r
×
n的奇偶校验矩阵由大小为(r/q)
×
(n/q)的指数矩阵表示。r和n是q的整数倍,以使得(r/q)和(n/q)是
整数。
[0107]
此外,方法700包括迭代地扰动ldpc码的指数矩阵,以增大ldpc码的围长。换言之,ldpc码的指数矩阵在一次或多次迭代中的每次迭代中被(轻微)修改,以增大ldpc码的围长。ldpc码的围长表示在ldpc码的坦纳图表示中出现的最短(最小)环。例如,围长为6指示在ldpc码的坦纳图表示中出现的最短环的长度为6。也就是说,在ldpc码的坦纳图表示中不会出现长度n《6的环。
[0108]
ldpc码的坦纳图表示中的短(小)环会导致所谓的“陷阱集”(trapping set)。陷阱集是ldpc码的坦纳图表示中的如下变量节点的集合:这些变量节点在解码中未收敛到正确值。陷阱集是导致ldpc码中的错误平层的主要原因之一。方法700通过迭代地改善ldpc码以逐步减小小的环的数量(即,ldpc码的坦纳图表示中的最小/最短环的数量)、并且因此减小ldpc码的小的围长的数量,而允许改善ldpc码中的错误平层。因此,方法700允许生成与传统构造的ldpc码相比更优秀的ldpc码。根据方法700生成的ldpc码可以在诸如通信技术(例如,g.mgfast)或存储器技术之类的许多应用中实现改善的编码和解码。
[0109]
装置800包括相应的处理电路810,处理电路810用于提供ldpc码的指数矩阵以及用于迭代地扰动ldpc码的指数矩阵,如针对方法700所描述。例如,处理电路810可以是单个专用处理器、单个共享处理器或者多个单独的处理器,多个单独的处理器中的一些或者全部的多个单独的处理器可以是共享的dsp硬件、asic或者fpga。处理电路810可以可选地耦接到例如用于存储软件的rom、ram和/或非易失性存储器。由处理电路810确定的优化ldpc码801由装置800的输出电路820输出。
[0110]
虽然各种扰动技术可被用于迭代地扰动ldpc码的指数矩阵,但以下将针对图9和图10描述两种示例性的扰动技术。特别地,将参考图9描述可被理解为“指数扰动”的第一扰动技术,并且将参考图10描述可被理解为“列扰动”的第二扰动技术。
[0111]
对于要使用两种技术中的哪一种的选择可能取决于各种参数,例如,待优化的ldpc码的期望(目标)应用、或者ldpc码的参数。例如,对于具有小的q值的固定基矩阵,列扰动可能会给出更好的ldpc码,而对于更大的q值,指数扰动可能会给出更好的ldpc码。ldpc的基矩阵是大小为(r/q)
×
(n/q)的二进制矩阵,其条目表示ldpc码的指数矩阵中的条目。例如,ldpc码的指数矩阵中的各个非负指数(例如,范围从0≤q《q)可以由基矩阵中的一来表示,并且指数矩阵中的表示等于零矩阵的子矩阵的各个负指数(例如,如上述示例中那样为-1)可以由基矩阵中的零来表示。因此,准循环ldpc码可以被看作是从其投影的基矩阵“提升”来的矩阵。因此,准循环ldpc可以用基矩阵来表示,并且对于基矩阵中的每个“1”条目,指数的取值在0到q-1之间。然而,应注意,这些值仅是示例性的,以便于描述所提出的技术。根据本公开的各方面,其他值可以用于基矩阵的条目。换言之,ldpc码的基矩阵中的每个条目被配属于多个子矩阵中的相应一个子矩阵,并且指示相应的子矩阵是等于零矩阵还是单位矩阵的循环移位副本。基矩阵可以被图形表示为基图,基图有时也被表示为ldpc码的原模图或投影图。
[0112]
指数扰动旨在去除长度为n的环,其有时被表示为n环。在ldpc码的指数矩阵中,给定的n环伴随(或连接到)n个指数,给定的指数可能伴随几个n环。指数扰动的根本是关注“最坏”的指数(即,伴随有最多n环的指数),替换该指数,并且可选地重复该过程。
[0113]
因此,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括,针对ldpc码的
指数矩阵中的指示相应子矩阵相对于单位矩阵的相应循环移位的每个指数,确定ldpc码的坦纳图表示中的以下长度为n的环的数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点。例如,参考上述示例,针对ldpc码的指数矩阵中的满足0≤q《q的每个指数,确定ldpc码的坦纳图表示中的以下长度为n的环的数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点。换言之,可以列举基矩阵中的所有非零条目所伴随的n环,并且对于指示基矩阵中的相应非零条目的每个指数,可以确定其所伴随的n环的数量。
[0114]
图9中示出了针对长度为n的环的示例性环数配置900。图9示出了示例性的6
×
8指数矩阵。针对6
×
8指数矩阵中的每个条目,相应的颜色/阴影表示ldpc码的坦纳图表示中的以下长度为n的环的数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点。颜色/阴影901表示配属于相应指数的子矩阵是零矩阵,因此不涉及任何长度为n的环。颜色/阴影902表示配属于相应指数的子矩阵伴随(涉及)ldpc码的坦纳图表示中较小数量的长度为n的环。颜色/阴影903表示配属于相应指数的子矩阵伴随(涉及)ldpc码的坦纳图表示中中等数量的长度为n的环。颜色/阴影904表示配属于相应指数的子矩阵伴随(涉及)ldpc码的坦纳图表示中较大数量的长度为n的环。颜色/阴影905表示配属于相应指数的子矩阵伴随(涉及)ldpc码的坦纳图表示中极大数量的长度为n的环。
[0115]
此外,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括,在以下一些指数之中随机选择一个指数:这些指数为ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的指数。值“a”是阈值并且可以依据ldpc码优化的各种参数(例如,范围)来调节和选择。例如,值“a”可以至少为10且最大为50。根据一些示例,值“a”可以是20。例如,图9中以颜色/阴影905示出的所有指数可以是ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的指数。因此,根据所提出的方法,图9中以颜色/阴影905示出的指数之一被随机选择。ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的指数是“最坏”的指数,因为它们涉及最多的长度为n的环。换言之,可以按指数伴随的n环数从大到小对指数进行排序,并且可以随机选择最坏的指数(例如20百分比)中的一个指数。
[0116]
随后,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括,在假设随机选择的指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对该值范围内的每个值,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的指数的子矩阵表示的节点。随机选择的指数被改变为从0到q-1的值范围内的各个值,并且针对这些值中的每个值,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的指数的子矩阵表示的节点。例如,针对q=4,随机选择的指数被改变为0、1、2和3。针对0、1、2和3中的每个,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的指数的子矩阵表示的节点。出于处理的原因,在将随机选择的指数的当前值改变为从0到q-1的值范围内的各个值之前,可以可选地将随机选择的指数的当前值改变为-1。
[0117]
然后,随机选择的指数的当前值被更新为以下一些值之中的一个值:这些值为该值范围内的导致i%的最小数量的长度为n的环的值。值“i”是阈值并且可根据ldpc码优化的各种参数来调节和选择。例如,值“i”可以最大为25。该值范围内的导致i%的最小数量的
长度为n的环的值是针对随机选择的指数的“最佳”值,因为其使得随机选择的指数涉及最小数量的长度为n的环。
[0118]
换言之,对于所选的指数,针对0到q-1之间每个值计算伴随的n环。然后,选择0到q-1之间的最佳值之一,并且将该选择值设置为该指数的新值。
[0119]
例如,随机选择的指数的当前值可以被更新为以下值:该值为该值范围内的导致最小数量的长度为n的环的值。也就是说,最佳选择值可被设置为该指数的新值。可替换地,随机选择的指数的当前值可以被更新为以下一些值之中的一个随机选择的值:这些值为该值范围内的导致i%的最小数量的长度为n的环的值。也就是说,最佳选择值之中的一个均匀随机值可被设置为该指数的新值。随机选择可允许打破关联。
[0120]
在用于去除(减少)ldpc码的坦纳图表示中的长度为n的环的至少一次迭代中,执行以上处理。根据示例,可以在多次迭代中迭代地执行以上处理。例如,可以迭代地重复以上处理,直到达到(预定的)最大迭代数为止,或者直到在ldpc码的坦纳图表示中不再存在长度为n的环为止。
[0121]
可以类似地重复上述处理,以去除(减少)ldpc码的坦纳图表示中的长度为m》n的环(n和m为整数)。也就是说,在另外的至少一次迭代中,迭代地扰动704ldpc码的指数矩阵可包括,针对ldpc码的指数矩阵中的指示相应子矩阵相对于单位矩阵的相应循环移位的每个指数,确定ldpc码的坦纳图表示中的以下长度为m的环的数量:在该长度为m的环中,出现了ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点。此外,可以在以下一些指数之中随机选择一个指数:这些指数为ldpc码的指数矩阵中呈现b%的最大数量的长度为m的环的指数。值“b”是与以上值“a”类似的阈值。例如,值“b”可以至少为10且最大为50。根据一些示例,值“b”可以是20。值“b”可以与值“a”相同或不同。
[0122]
此外,在另外的至少一次迭代中,迭代地扰动704ldpc码的指数矩阵可包括,在假设随机选择的指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对该值范围内的每个值,确定以下长度为m的环的假设数量:在该长度为m的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的指数的子矩阵表示的节点。此外,随机选择的指数的当前值可以被更新为以下一些值之中的一个值:这些值为该值范围内的导致j%的最小数量的长度为m的环的值。值“j”是与以上值“i”类似的阈值。例如,值“j”可以最大为25。值“j”可以与值“i”相同或不同。
[0123]
在以上过程中,给定的指数是基于对其余指数的选择而被优化的。因此,为了优化,在用于优化的整个扰动过程中,基矩阵/指数矩阵中的给定条目可以被选择多次。
[0124]
在列扰动技术中,与指数扰动不同,它一次关注指数/基矩阵的整个列(及其所有指数),而不是一次只关注一个指数。给定的n环将伴随(或连接到)指数/基矩阵中的n/2列(包括重复项),指数/基矩阵中的给定列可能伴随几个n环。与关注最坏指数的指数扰动类似,列扰动关注最坏的列(伴随有最多n环的列)。最坏列被扰动(即,指数被重构以减少环),并且该过程可以被迭代地重复。主要的是,在列扰动中,不仅指数的值被改变,甚至基矩阵中的“1”条目(即,指示相应配属的子矩阵是单位矩阵的循环移位复本的条目)的位置也被改变。因此,ldpc码的坦纳图表示中的小环被去除/减少。
[0125]
在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括,针对ldpc码的指数矩阵中的每列,确定ldpc码的坦纳图表示中的以下长度为n的环的数量:在该长度为n的环中,
出现了ldpc码的坦纳图表示中由配属于相应列的子矩阵表示的节点。与指数扰动不同,长度为n的环的数量是针对ldpc码的指数矩阵中的各个列确定的,而不是针对ldpc码的指数矩阵中的各个指数确定的。换言之,可以列举全部的n环,并且针对基矩阵中的每列,可以确定其所伴随的n环的数量。
[0126]
图10中示出了长度为n的环的示例性环数配置1000。图10示出了示例性的6
×
8指数矩阵。对于6
×
8指数矩阵的每个条目,相应的颜色/阴影表示ldpc码的坦纳图表示中的以下长度为n的环的数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于6
×
8指数矩阵的相应列的子矩阵表示的节点。颜色/阴影1001表示配属于相应列的子矩阵伴随(涉及)ldpc码的坦纳图表示中较小数量的长度为n的环。颜色/阴影1002表示配属于相应列的子矩阵伴随(涉及)ldpc码的坦纳图表示中中等数量的长度为n的环。颜色/阴影1003表示配属于相应列的子矩阵伴随(涉及)ldpc码的坦纳图表示中较大数量的长度为n的环。
[0127]
此外,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括,在以下一些列之中随机选择一列:这些列为ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的列。值“a”是与以上针对指数扰动所描述的阈值类似的阈值。关于值“a”的进一步细节可在上文针对指数扰动的描述中找到。例如,图10中以颜色/阴影1003示出的所有列可以是ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的列。因此,根据所提出的方法,图10中以颜色/阴影1003示出的列之一被随机选择。ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的列是“最坏”的列,因为它们涉及最多的长度为n的环。换言之,可以按列所伴随的n环数从大到小对列进行排序,并且可以随机选择最坏的列(例如,20百分比)中的一列。
[0128]
随后,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括:对ldpc码的基矩阵中的与随机选择的列对应的条目进行置换。也就是说,ldpc码的基矩阵中的与随机选择的列对应的条目被置换。例如,ldpc码的基矩阵中的指示1的一个或多个条目可以被改变为0,反之亦然。任何约束都可用于对ldpc码的基矩阵中的与随机选择的列对应的条目进行置换。
[0129]
随后,在至少一次迭代中,迭代地扰动704ldpc码的指数矩阵包括:随机将以下一些条目之中的总共g个条目设置为用于指示各自配属的子矩阵是单位矩阵的循环移位副本:这些条目为ldpc码的基矩阵中与随机选择的列相对应的条目。值“g”是随机选择的列的预定列度。例如,参考以上示例,ldpc码的基矩阵中与随机选择的列相对应的条目之中的g个条目可以被设置为“1”,以用于指示各自配属的子矩阵是单位矩阵的循环移位副本。因此,随机选择的列的列度可以被保留。换言之,可以随机生成列中的g个位置,并且这些条目在基矩阵中可以被设置为1,其中,g是被生成的列的列重。出于处理的原因,在随机设置ldpc码的基矩阵中的g个条目之前,可以可选地将随机选择的指数中的指数的当前值在指数矩阵中改变为-1。
[0130]
此外,在指数矩阵的迭代扰动的至少一次迭代中,针对基矩阵中的随机设置的g个条目中的每个执行以下内容:
[0131]
在假设随机选择的列中的相应指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对该值范围内的每个值,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的列中的相应指数的子矩阵表示的节点。随机选择的列中的相应指数对应于基矩阵中的相应随机设置的条目。也就是说,对
于ldpc码的基矩阵中的随机选择的列中的每个随机设置的条目,ldpc码的指数矩阵中的相应指数被改变为从0到q-1的值范围内的各个值。此外,针对这些值中的每个值,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的列中的相应指数的子矩阵表示的节点。例如,针对q=4,随机选择的列中的相应指数被改变为0、1、2和3。针对0、1、2和3中的每个,确定以下长度为n的环的假设数量:在该长度为n的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的列中的相应指数的子矩阵表示的节点。
[0132]
然后,随机选择的列中的相应指数的当前值被更新为以下一些值之中的一个值:这些值为该值范围内的针对随机选择的列中的相应指数导致i%的最小数量的长度为n的环的值。值“i”是与以上针对指数扰动所描述的阈值类似的阈值。关于值“i”的进一步细节可在上文针对指数扰动的描述中找到。该值范围内的导致i%的最小数量的长度为n的环的值是针对随机选择的列中的相应指数的“最佳”值,因为其使得随机选择的列中的相应指数涉及最小数量的长度为n的环。
[0133]
例如,可以针对基矩阵中的随机设置的g个条目中的每个,从列的顶部到底部执行以上处理,从而针对基矩阵中的例如为“1”的每个条目从列的顶部到底部执行以上处理。对于所选的指数,针对0到q-1之间每个值计算伴随的n环。然后,选择0到q-1之间的最佳值之一,并且将该选择值设置为该指数的新值。
[0134]
例如,随机选择的列中的相应指数的当前值可以被更新为以下值:该值为该值范围内的针对该相应指数导致最小数量的长度为n的环的值。也就是说,最佳选择值可被设置为该相应指数的新值。可替换地,随机选择的列中的相应指数的当前值可以被更新为以下一些值之中的一个随机选择的值:这些值为该值范围内的针对该相应指数导致i%的最小数量的长度为n的环的值。也就是说,最佳选择值之中的一个均匀随机值可被设置为该指数的新值。随机选择可允许打破关联。
[0135]
一旦针对基矩阵中的g个随机设置的条目中的每个执行了以上处理,则可以决定是否接受这些改变。与指数扰动中不同,列扰动的迭代可能会导致更高的n环数,因此需要作出接受/拒绝决定。对于随机选择的列的基矩阵和指数矩阵的条目的改变,仅在这些改变不增大针对随机选择的列的长度为n的环的总数的情况下,其才会在对应迭代中被接受。
[0136]
在用于去除(减少)ldpc码的坦纳图表示中的长度为n的环的至少一次迭代中,执行以上处理。根据示例,可以在多次迭代中迭代地执行以上处理。例如,可以迭代地重复以上处理,直到达到(预定的)最大迭代数为止,或者直到在ldpc码的坦纳图表示中不再存在长度为n的环为止。
[0137]
可以类似地重复上述处理,以去除(减少)ldpc码的坦纳图表示中的长度为m》n的环(n和m为整数)。也就是说,在另外的至少一次迭代中,迭代地扰动704ldpc码的指数矩阵可包括,针对ldpc码的指数矩阵中的每列,确定ldpc码的坦纳图表示中的以下长度为m的环的数量:在该长度为m的环中,出现了ldpc码的坦纳图表示中由配属于相应列的子矩阵表示的节点。此外,可以在以下一些列之中随机选择一列:这些列为ldpc码的指数矩阵中呈现b%的最大数量的长度为m的环的列。值“b”是与以上值“a”类似的阈值。例如,值“b”可以至少为10且最大为50。根据一些示例,值“b”可以是20。值“b”可以与值“a”相同或不同。
[0138]
此外,在另外的至少一次迭代中,迭代地扰动704ldpc码的指数矩阵可包括:对
ldpc码的基矩阵中的与随机选择的列对应的条目进行置换,随机选择的列是ldpc码的指数矩阵中呈现b%的最大数量的长度为m的环的列之中的列。
[0139]
随后,在另外的至少一次迭代中,迭代地扰动704ldpc码的指数矩阵可包括:随机将以下一些条目之中的总共h个条目设置为用于指示各自配属的子矩阵是单位矩阵的循环移位副本:这些条目为ldpc码的基矩阵中与随机选择的列相对应的条目。值“h”是随机选择的列的预定列度,随机选择的列是ldpc码的指数矩阵中呈现b%的最大数量的长度为m的环的列之中的列。
[0140]
此外,针对基矩阵中的随机设置的h个条目中的每个执行以下内容:
[0141]
在假设随机选择的列中的相应指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对该值范围内的每个值,确定以下长度为m的环的假设数量:在该长度为m的环中,出现了ldpc码的坦纳图表示中由配属于随机选择的列中的相应指数的子矩阵表示的节点。随机选择的列中的相应指数对应于基矩阵中的相应随机设置的条目。
[0142]
此外,随机选择的列中的相应指数的当前值被更新为以下一些值之中的一个值:这些值为该值范围内的针对随机选择的列中的相应指数导致j%的最小数量的长度为m的环的值。值“j”是与以上值“i”类似的阈值。例如,值“j”可以最大为25。值“j”可以与值“i”相同或不同。
[0143]
与上文针对减少n环所描述的内容类似,对于随机选择的列的基矩阵和指数矩阵的条目的改变,仅在这些改变不增大随机选择的列的长度为m的环的总数的情况下,其才会在对应迭代中被接受。
[0144]
如上所述,可以针对不同长度的环连续多次执行迭代地扰动ldpc码的指数矩阵。例如,迭代地扰动ldpc码的指数矩阵以增大ldpc码的围长可以按以下顺序包括:迭代地扰动ldpc码的指数矩阵,以最小化ldpc码的坦纳图表示中的长度为n的环;迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的长度为m的环。如上所述,n《m。
[0145]
以上描述的两种扰动技术允许迭代地优化(减少)针对给定数字“n”的n环的数量。为了促进对ldpc码的扰动,可以将ldpc码的指数矩阵设置为使得ldpc码的围长大于四。
[0146]
虽然可以使用各种技术来设置702ldpc码的指数矩阵,但以下将描述两种示例性技术。然而,应注意,方法700不限于此。
[0147]
例如,设置702ldpc码的指数矩阵可包括:通过渐进式边缘增长(progressive edge growth,peg)或其变体(例如,近似循环外消息度ace、受约束的peg),基于ldpc码的预定列度和行度分布,生成ldpc码的指数矩阵和ldpc码的基矩阵,直到ldpc码的围长大于四为止。
[0148]
图11中示出了设置702ldpc码的指数矩阵的可替换的技术。图11示出了用于生成优化ldpc码的过程流程,该过程流程示出了设置ldpc码的指数矩阵的进一步细节。图11的示例仅是以上描述的方法700的详细示例。
[0149]
设置1110ldpc码的指数矩阵包括多个过程/步骤。给定(输入)ldpc码的预定列度和行度分布1111。然后,设置1110ldpc码的指数矩阵包括:基于ldpc码的预定列度和行度分布,生成1112ldpc码的(例如,随机)基矩阵。换言之,在给定目标(期望)ldpc码的列度和行度的情况下,可以生成满足列度和行度配置的随机基矩阵。例如,如果由于打孔(如一些通信标准中那样,例如,5g、无源光网络、g.mgfast等)的原因、或是为了针对故障管芯进行保
护(存储器技术中的限制性故障模式),而使得ldpc码将要具有擦除的比特,则可恢复性约束或其他约束可被施加于基矩阵构造。
[0150]
此外,提供1110ldpc码的指数矩阵包括:通过以下方式来生成1113ldpc码的指数矩阵:将0到q-1之间的值随机配属于多个子矩阵中的每个以下子矩阵的相应指数直到ldpc码的围长大于四为止:对于该子矩阵,ldpc码的基矩阵指示该子矩阵是单位矩阵的循环移位复本。例如,参考以上示例,可以向指数矩阵中的每个以下指数/条目配属0到q-1之间的值:针对该指数/条目,相应的基矩阵条目是“1”。类似地,可以向指数矩阵中的每个以下指数/条目指派值
“‑
1”:针对该指数/条目,相应的基矩阵条目是“0”。
[0151]
换言之,在图11的示例中,指数被随机选择,但仅是那些产生围长大于4的坦纳图的指数被随机选择。也就是说,针对基图中的每个条目“1”,通过放弃选择任何产生4环的指数,来随机选择0到q-1之间的指数。在ldpc码构造的这个阶段,虽然已生成了有效的准循环ldpc码,但这个ldpc码遭受了早期错误平层。这是因为,虽然对于构造的ldpc码已确保了围长6,但还没有减少6环的数量。
[0152]
因此,该过程流程随后包括根据上述技术对ldpc码进行迭代扰动1120,以改进在第一指数填充之后获得的ldpc码。因此,获得了ldpc码的优化奇偶校验矩阵1130。这样优化的ldpc码可以超越传统的ldpc码。换言之,一旦生成了基图,指数起初被随机填充,然后通过扰动被进行后处理。
[0153]
以上说明关注的是迭代扰动的不同技术的基本原理。以下将参考图12至图14描述一些具体的扰动方案。然而,应注意,本技术不限于此。例如,在关于图11描述的第一指数填充中,仅避免了4环。因此,在第一指数填充之后,ldpc码有可能具有6环、8环和10环以及更高的环。扰动技术可被用于以任何期望的(目标)顺序优化这些环中任何一个。总体原则是减少长度等于码的当前围长的环。例如,如果存在6环,则应用扰动来使6环最少化。之后,如果不再有6环了,则应用扰动来使8环最少化等。这种优化顺序还随码中存在的列度的性质而变化。图12至14示出了基于ldpc码中存在的最小列重来使ldpc码中的错误平层最小化的示例性优化顺序。
[0154]
图12中示出的优化顺序1200是指所提供的ldpc码的最小列度为四或更大的情形(即,经历迭代扰动的ldpc码表现出四或更大的最小列度)。因此,迭代地扰动704ldpc码的指数矩阵以增大ldpc码的围长按以下顺序包括:
[0155]
首先,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有长度为4的环。第二,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的长度为6的环。第三,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的长度为8的环。第四,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的长度为10的环。
[0156]
图13中示出的优化顺序1300是指所提供的ldpc码的最小列度为三的情形(即,经历迭代扰动的ldpc码表现出最小列度三)。因此,迭代地扰动704ldpc码的指数矩阵以增大ldpc码的围长按以下顺序包括:
[0157]
首先,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有以下长度为4的环:在该长度为4的环中,出现了ldpc码的坦纳图表示中由配属于列度为四或更大的指数矩阵的任何列的子矩阵表示的节点。第二,迭代地扰动ldpc码的指数矩阵,以去除
ldpc码的坦纳图表示中的所有以下长度为6的环:在该长度为6的环中,出现了ldpc码的坦纳图表示中由配属于列度为三的指数矩阵的任何列的子矩阵表示的节点。第三,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的以下长度为8的环:在该长度为8的环中,出现了ldpc码的坦纳图表示中由配属于列度为三的指数矩阵的任何列的子矩阵表示的节点。第四,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的以下长度为10的环:在该长度为10的环中,出现了ldpc码的坦纳图表示中由配属于列度为三的指数矩阵的任何列的子矩阵表示的节点。
[0158]
图14中示出的优化顺序1400是指所提供的ldpc码的最小列度为二的情形(即,经历迭代扰动的ldpc码表现出最小列度二)。因此,迭代地扰动704ldpc码的指数矩阵以增大ldpc码的围长按以下顺序包括:
[0159]
首先,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有以下长度为4的环:在该长度为4的环中,出现了ldpc码的坦纳图表示中由配属于列度为四或更大的指数矩阵的任何列的子矩阵表示的节点。第二,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有以下长度为6的环:在该长度为6的环中,出现了ldpc码的坦纳图表示中由配属于列度为二或三的指数矩阵的任何列的子矩阵表示的节点。第三,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有以下长度为6的环:在该长度为6的环中,出现了ldpc码的坦纳图表示中由配属于列度为三的指数矩阵的任何列的子矩阵表示的节点。第四,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的以下长度为6的环:在该长度为6的环中,出现了ldpc码的坦纳图表示中由配属于列度为二或更大的指数矩阵的任何列的子矩阵表示的节点。第五,迭代地扰动ldpc码的指数矩阵,以去除ldpc码的坦纳图表示中的所有以下长度为8的环:在该长度为8的环中,出现了ldpc码的坦纳图表示中由配属于列度为二或三的指数矩阵的任何列的子矩阵表示的节点。第六,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的以下长度为8的环:在该长度为8的环中,出现了ldpc码的坦纳图表示中由配属于列度为三的指数矩阵的任何列的子矩阵表示的节点。第七,迭代地扰动ldpc码的指数矩阵,以最少化ldpc码的坦纳图表示中的以下长度为10的环:在该长度为10的环中,出现了ldpc码的坦纳图表示中由配属于列度为二或三的指数矩阵的任何列的子矩阵表示的节点。第八,迭代地扰动ldpc码的指数矩阵,最少化ldpc码的坦纳图表示中的以下长度为8的环:在该长度为8的环中,出现了ldpc码的坦纳图表示中由配属于列度为二或更大的指数矩阵的任何列的子矩阵表示的节点。
[0160]
在图13和图14的示例中,没有迭代地扰动ldpc码,来去除ldpc码的坦纳图表示中的其中出现了ldpc码的坦纳图表示中由图13和图14中标有
“‑”
的任何列的子矩阵表示的节点的环。
[0161]
在图13和图14的示例中,不需要迭代地扰动ldpc码,来去除ldpc码的坦纳图表示中的其中出现了ldpc码的坦纳图表示中由图13和图14中标有“x”的任何列的子矩阵表示的节点的环。然而,可以可选地迭代扰动ldpc码,以去除这种节点的环。
[0162]
图15示出了根据方法700优化的ldpc码与使用传统方法生成的参考ldpc码之间的示例性性能比较。两个ldpc码都是4kb(千字节)长。特别地,线1520示出了根据方法700优化的ldpc码的输出ber相对于输入ber的历程。作为参考,线1510示出了参考ldpc码的输出ber相对于输入ber的历程。根据方法700优化的ldpc码和参考ldpc码都表现出8的围长。然而,
根据方法700优化的ldpc码的长度为8的环的数量显著低于参考ldpc码的长度为8的环的数量(80个长度为8的环相对140个长度为8的环)。
[0163]
从图15可以看出,针对较低的输入ber,与参考ldpc码相比,根据方法700优化的ldpc码的输出ber显著更低。换言之,根据方法700进行的ldpc码优化产生了在错误平层区域中的ldpc码的改善的纠正强度。
[0164]
图16示出了根据方法700优化的两个ldpc码之间的示例性性能比较。两个ldpc码都是128字节长。特别地,线1610示出了根据方法700使用指数扰动优化的ldpc码的输出ber相对于输入ber的历程。线1620示出了根据方法700使用列扰动优化的ldpc码的输出ber相对于输入ber的历程。两个ldpc码都表现出6的围长。在这个示例中,使用列扰动优化的ldpc码的长度为6的环的数量显著低于使用指数扰动优化的ldpc码的长度为6的环的数量(451长度为8的环相对851个长度为8的环)。
[0165]
从图16可以看出,在输入ber的整个范围上,与使用指数扰动优化的ldpc码相比,使用列扰动优化的ldpc码的输出ber显著更低。换言之,在这个示例中,使用列扰动的ldpc码优化产生了ldpc码的改善的纠正强度。
[0166]
图17进一步示出了不同围长的两个ldpc码之间的示例性性能比较。两个ldpc码都是200字节长。特别地,线1720示出了根据方法700使用指数扰动优化的ldpc码的输出ber相对于输入ber的历程。作为参考,线1710示出了使用传统方法生成的参考ldpc码的输出ber相对于输入ber的历程。参考ldpc码表现出为6的围长,而根据方法700使用指数扰动优化的ldpc码实现了为8的围长。参考ldpc导致14个长度为8的环,这些环涉及列度(列重)为2的列。根据方法700使用指数扰动优化的ldpc码导致0个长度为8的涉及列度为2的列的环。
[0167]
ldpc码的坦纳图表示中的与列度为2的列相关的节点是最脆弱的。因此,期望减少伴随列度为2的列的环的数量。使用指数扰动,不仅去除了伴随列度为2的列的所有8环,而且还将ldpc码的围长从6增大到8。从图17可以看出,在输入ber的整个范围上,与参考ldpc码相比,根据方法700使用指数扰动优化的ldpc码的输出ber显著更低。
[0168]
从图15至图17明显可见,方法700是一种构造具有非常低的错误平层的ldpc码的高效技术。特别地,方法700可允许获得用于要求高可靠性的应用中的ldpc码。上述扰动技术允许了获得具有更少的环并且因此具有低错误平层的ldpc码。所提出的扰动技术允许在ldpc码的坦纳图中逐步且有效地消除小环。取决于例如准循环对称性和基图/矩阵的大小,这些技术中的任何一种都可以被用于构造优秀的ldpc码。
[0169]
本文描述的示例可被总结如下:
[0170]
示例1是一种用于生成用于非对称传输信道的优化低密度奇偶校验ldpc码的方法,所述方法包括:接收用于所述非对称传输信道的初始ldpc码;对所述初始ldpc码执行密度演化阈值优化,以获得用于所述非对称传输信道的优化ldpc码,其中,在所述密度演化阈值优化中使用所述非对称传输信道的均匀混合对称信道密度。
[0171]
示例2是如示例1所述的方法,其中,所述均匀混合对称信道密度是均匀加权的以下通道密度的组合:所述通道密度为所述非对称传输信道的针对非对称传输信道的各个可能输入值的信道密度。
[0172]
示例3是如示例2所述的方法,其中,所述可能输入值的数量是两个,其中,所述均匀混合对称信道密度是以下项之和:所述非对称传输信道针对两个可能输入值之一的信道
密度、和所述非对称传输信道针对两个可能输入值中的另一个的信道密度,其中,在所述非对称传输信道的所述均匀混合对称信道密度中,所述非对称传输信道的针对两个可能输入值的信道密度都被加权0.5的加权因子。
[0173]
示例4是如示例3所述的方法,其中,所述均匀混合对称信道密度c(x)由与以下等式数学上对应的表达式给出:
[0174][0175]
其中,x表示输入到所述非对称传输信道的值,c0(x)表示所述非对称传输信道针对两个可能输入值之一的信道密度,c1(-x)表示所述非对称传输信道针对两个可能输入值中的另一个的信道密度。
[0176]
示例5是如示例2至4中的任一项所述的方法,其中,针对所述非对称传输信道的每个可能输入值,所述非对称传输信道的相应信道密度是基于所述非对称传输信道针对相应可能输入值的相应错误转移概率的。
[0177]
示例6是如示例5所述的方法,其中,所述可能输入值的数目是两个,其中,所述非对称传输信道针对两个可能输入值之一的信道密度c0由与以下等式数学上对应的表达式给出:
[0178][0179]
其中,x表示输入到所述非对称传输信道的值,p表示所述非对称传输信道针对两个可能输入值之一的错误转移概率。
[0180]
示例7是如示例6所述的方法,其中,所述非对称传输信道针对两个可能输入值中的另一个的信道密度c1由与以下等式数学上对应的表达式给出:
[0181][0182]
其中,q表示所述非对称传输信道针对两个可能输入值中的另一个的错误转移概率。
[0183]
示例8是如示例1至7中的任一项所述的方法,其中,对所述初始ldpc码执行密度演化阈值优化包括在第一次迭代中:修改所述初始ldpc码的列度分布和行度分布中的至少一个,以获得第一次迭代修改ldpc码;使用所述均匀混合对称信道密度,确定针对所述第一次迭代修改ldpc码的密度演化阈值;如果针对所述第一次迭代修改ldpc码的密度演化阈值满足质量标准,则选择所述第一次迭代修改ldpc码作为所述优化ldpc码;如果针对所述第一次迭代修改ldpc码的密度演化阈值不满足质量标准,则选择所述初始ldpc码作为所述优化ldpc码。
[0184]
示例9是如示例8所述的方法,其中,对所述初始ldpc码执行密度演化阈值优化包括在1《i的情况下在第i次迭代中:修改所述优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码;使用所述均匀混合对称信道密度,确定针对所述第i次迭代修改ldpc码的密度演化阈值;如果针对所述第i次迭代修改ldpc码的密度演化阈值满足所述质量标准,则选择所述第i次迭代修改ldpc码作为所述优化ldpc码。
[0185]
示例10是一种存储有程序的计算机可读存储介质,所述程序具有程序代码,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码用于执行如示例1至9中的任一项所述的方法。
[0186]
示例11是一种具有程序代码的计算机程序,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码被配置为执行如示例1至9中的任一项所述的方法。
[0187]
示例12是一种用于生成用于非对称传输信道的优化低密度奇偶校验ldpc码的装置,所述装置包括:输入电路,被配置为接收用于所述非对称传输信道的初始ldpc码;处理电路,被配置为对所述初始ldpc码执行密度演化阈值优化,以获得用于所述非对称传输信道的优化ldpc码,其中,在所述密度演化阈值优化中使用所述非对称传输信道的均匀混合对称信道密度。
[0188]
示例13是如示例12所述的装置,其中,所述均匀混合对称信道密度是均匀加权的以下通道密度的组合:所述通道密度为所述非对称传输信道针对非对称传输信道的各个可能输入值的信道密度。
[0189]
示例14是如示例13所述的装置,其中,所述可能输入值的数量是两个,其中,所述均匀混合对称信道密度是以下项之和:所述非对称传输信道针对两个可能输入值之一的信道密度、和所述非对称传输信道针对两个可能输入值中的另一个的信道密度,其中,在所述均匀混合对称信道密度中,所述非对称传输信道针对两个可能输入值的信道密度都被加权0.5的加权因子。
[0190]
示例15是如示例14所述的装置,其中,所述均匀混合对称信道密度c(x)由与以下等式数学上对应的表达式给出:
[0191][0192]
其中,x表示输入到所述非对称传输信道的值,c0(x)表示所述非对称传输信道针对两个可能输入值之一的信道密度,c1(-x)表示所述非对称传输信道针对两个可能输入值中的另一个的信道密度。
[0193]
示例16是如示例13至15中的任一项所述的装置,其中,针对所述非对称传输信道的每个可能输入值,所述非对称传输信道的相应信道密度是基于所述非对称传输信道针对相应可能输入值的相应错误转移概率的。
[0194]
示例17是如示例16所述的装置,其中,所述可能输入值的数目是两个,其中,所述非对称传输信道针对两个可能输入值之一的信道密度c0由与以下等式数学上对应的表达式给出:
[0195][0196]
其中,x表示输入到所述非对称传输信道的值,p表示所述非对称传输信道针对两个可能输入值之一的错误转移概率。
[0197]
示例18是如示例17所述的装置,其中,所述非对称传输信道针对两个可能输入值中的另一个的信道密度c1由与以下等式数学上对应的表达式给出:
[0198][0199]
其中,q表示所述非对称传输信道针对两个可能输入值中的另一个的错误转移概率。
[0200]
示例19是如示例12至18中的任一项所述的装置,其中,当对所述初始ldpc码执行密度演化阈值优化时,所述处理电路在第一次迭代中被配置为:修改所述初始ldpc码的列度分布和行度分布中的至少一个,以获得第一次迭代修改ldpc码;使用所述均匀混合对称信道密度,确定针对所述第一次迭代修改ldpc码的密度演化阈值;如果针对所述第一次迭代修改ldpc码的密度演化阈值满足质量标准,则选择所述第一次迭代修改ldpc码作为所述优化ldpc码;如果针对所述第一次迭代修改ldpc码的密度演化阈值不满足质量标准,则选择所述初始ldpc码作为所述优化ldpc码。
[0201]
示例20是如示例19所述的装置,其中,当对所述初始ldpc码执行密度演化阈值优化时,所述处理电路在1《i的情况下在第i次迭代中被配置为:修改所述优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码;使用所述均匀混合对称信道密度,确定针对所述第i次迭代修改ldpc码的密度演化阈值;如果针对所述第i次迭代修改ldpc码的密度演化阈值满足所述质量标准,则选择所述第i次迭代修改ldpc码作为所述优化ldpc码。
[0202]
示例21是一种用于生成针对多个传输信道优化的优化低密度奇偶校验ldpc码的方法,所述方法包括:接收初始ldpc码;对所述初始ldpc码执行密度演化阈值优化,以获得优化ldpc码,其中,在所述密度演化阈值优化的每次迭代中,针对所述多个传输信道的多个密度演化阈值,迭代地优化所述初始ldpc码的列度分布和行度分布中的至少一个。
[0203]
示例22是如示例21所述的方法,其中,在所述密度演化阈值优化中,所述初始ldpc码被初始设置为所述优化ldpc码,其中,对所述初始ldpc码执行密度演化阈值优化包括在i≥1的情况下在第i次迭代中:修改所述优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码;针对所述多个传输信道中的每个,确定针对所述第i次迭代修改ldpc码的相应密度演化阈值;如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将当前的优化ldpc码更新为所述第i次迭代修改ldpc码。
[0204]
示例23是如示例22所述的方法,其中,如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将优化ldpc码更新为所述第i次迭代修改ldpc码包括:确定针对所述第i次迭代修改ldpc码的所确定的密度演化阈值的加权和;如果针对所述第i次迭代修改ldpc码的所确定的密度演化阈值的加权和大于针对当前的优化ldpc码的密度演化阈值的加权和,则将当前的优化ldpc码更新为所述第i次迭代修改ldpc码。
[0205]
示例24是如示例22所述的方法,其中,如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将优化ldpc码更新为所述第i次迭代修改ldpc码包括:将针对所述多个传输信道之一的所述第i次迭代修改ldpc码的所确定的密度演化阈值与针对所述多个传输信道之一的当前的优化ldpc码的密度演化阈值进行比较;如果针对所述多个传输信道之一的所述第i次迭代修改ldpc码的所确定的密度演化阈值大于针对所述多个传输信道之一的当前的优化ldpc码的密度演化阈值,并且针对所述多个传输信道中的其他传输信道的所述第i次迭代修改ldpc码的所确定的密度演化阈值高于各自的阈值,则将当前的优化
ldpc码更新为所述第i次迭代修改ldpc码。
[0206]
示例25是如示例22至24中的任一项所述的方法,其中,对所述初始ldpc码执行密度演化阈值优化还包括在第i次迭代中:如果针对所述第i次迭代修改ldpc码的密度演化阈值不满足所述质量标准,则拒绝所述第i次迭代修改ldpc码。
[0207]
示例26是一种存储有程序的计算机可读存储介质,所述程序具有程序代码,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码用于执行如示例21至25中的任一项所述的方法。
[0208]
示例27是一种具有程序代码的计算机程序,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码被配置为执行如示例21至25中的任一项所述的方法。
[0209]
示例28是一种用于生成针对多个传输信道优化的优化低密度奇偶校验ldpc码的装置,所述装置包括:输入电路,被配置为接收初始ldpc码;处理电路,被配置为对所述初始ldpc码执行密度演化阈值优化,以获得优化ldpc码,其中,在所述密度演化阈值优化的每次迭代中,针对所述多个传输信道的多个密度演化阈值,迭代地优化所述初始ldpc码的列度分布和行度分布中的至少一个。
[0210]
示例29是如示例28所述的装置,其中,在所述密度演化阈值优化中,所述初始ldpc码被初始设置为所述优化ldpc码,其中,当对所述初始ldpc码执行密度演化阈值优化时,所述处理电路在i≥1的情况下在第i次迭代中被配置为:修改所述优化ldpc码的列度分布和行度分布中的至少一个,以获得第i次迭代修改ldpc码;针对所述多个传输信道中的每个,确定针对所述第i次迭代修改ldpc码的相应密度演化阈值;如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将当前的优化ldpc码更新为所述第i次迭代修改ldpc码。
[0211]
示例30是如示例29所述的装置,其中,在如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将优化ldpc码更新为所述第i次迭代修改ldpc码时,所述处理电路被配置为:确定针对所述第i次迭代修改ldpc码的所确定的密度演化阈值的加权和;如果针对所述第i次迭代修改ldpc码的所确定的密度演化阈值的加权和大于针对当前的优化ldpc码的密度演化阈值的加权和,则将当前的优化ldpc码更新为所述第i次迭代修改ldpc码。
[0212]
示例31是如示例29所述的装置,其中,在如果针对所述第i次迭代修改ldpc码的密度演化阈值满足质量标准,则将优化ldpc码更新为所述第i次迭代修改ldpc码时,所述处理电路被配置为:将针对所述多个传输信道之一的所述第i次迭代修改ldpc码的所确定的密度演化阈值与针对所述多个传输信道之一的当前的优化ldpc码的密度演化阈值进行比较;如果针对所述多个传输信道之一的所述第i次迭代修改ldpc码的所确定的密度演化阈值大于针对所述多个传输信道之一的当前的优化ldpc码的密度演化阈值,并且针对所述多个传输信道中的其他传输信道的所述第i次迭代修改ldpc码的所确定的密度演化阈值高于各自的阈值,则将当前的优化ldpc码更新为所述第i次迭代修改ldpc码。
[0213]
示例32是如示例29至31中的任一项所述的装置,其中,当对所述初始ldpc码执行密度演化阈值优化时,所述处理电路在第i迭代中还被配置为:如果针对所述第i次迭代修改ldpc码的密度演化阈值不满足所述质量标准,则拒绝所述第i次迭代修改ldpc码。
[0214]
示例33是一种用于优化低密度奇偶校验ldpc码的方法,其中,所述ldpc码的奇偶
校验矩阵由多个子矩阵形成,其中,所述子矩阵是由各自的指数表示的循环置换矩阵,其中,相应指数指示相应子矩阵相对于单位矩阵的相应循环移位、或者指示相应子矩阵等于零矩阵,所述方法包括:设置所述ldpc码的指数矩阵,其中,所述指数矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵并且指示相应指数的值;迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长。
[0215]
示例34是如示例33所述的方法,其中,所述子矩阵的大小是q
×
q,其中,迭代地扰动所述ldpc码的指数矩阵包括在至少一次迭代中:针对所述ldpc码的指数矩阵中的指示相应子矩阵相对于单位矩阵的相应循环移位的每个指数,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点的长度为n的环的数量;在所述ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的指数之中,随机选择一个指数;在假设随机选择的指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定出现了所述ldpc码的坦纳图表示中由配属于所述随机选择的指数的子矩阵表示的节点的长度为n的环的相应假设数量;将所述随机选择的指数的当前值更新为所述值范围内的导致i%的最小数量的所述长度为n的环的值之中的一个值。
[0216]
示例35是如示例34所述的方法,其中,将所述随机选择的指数的当前值更新为所述值范围内的导致最小数量的长度为n的环的值。
[0217]
示例36是如示例34所述的方法,其中,将所述随机选择的指数的当前值更新为所述值范围内的导致i%的最小数量的长度为n的环的值之中的一个随机选择的值。
[0218]
示例37是如示例34至36中的任一项所述的方法,其中,迭代地扰动所述ldpc码的指数矩阵包括在另外的至少一次迭代中:针对所述ldpc码的指数矩阵中的指示相应子矩阵相对于单位矩阵的相应循环移位的每个指数,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点的长度为m的环的数量,其中,n《m;在所述ldpc码的指数矩阵中呈现b%的最大数量的长度为m的环的指数之中,随机选择一个指数;在假设随机选择的指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定出现了所述ldpc码的坦纳图表示中由配属于所述随机选择的指数的子矩阵表示的节点的长度为m的环的相应假设数量;将所述随机选择的指数的当前值更新为所述值范围内的导致j%的最小数量的所述长度为m的环的值之中的一个值。
[0219]
示例38是如示例33所述的方法,其中,所述子矩阵的大小是q
×
q,其中,所述ldpc码的基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本,其中,迭代地扰动所述ldpc码的指数矩阵包括在至少一次迭代中:针对所述ldpc码的指数矩阵中的每一列,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应列的子矩阵表示的节点的长度为n的环的数量;在所述ldpc码的指数矩阵中的呈现a%的的最大数量的长度为n的环的列之中,随机选择一列;对所述ldpc码的基矩阵中的与随机选择的列相对应的条目进行置换;随机将所述ldpc码的基矩阵中的与所述随机选择的列相对应的条目之中的总共g个条目,设置为用于指示相应配属的子矩阵是单位矩阵的循环移位副本,其中,g是所述随机选择的列的预定列度;针对所述基矩阵中的每个随机设置的条目执行以下内容:在假设所
述随机选择的列中的相应指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于所述随机选择的列中的相应指数的子矩阵表示的节点的长度为n的环的相应假设数目,其中,随机选择的列中相应指数对应于基矩阵中的相应随机设置的条目;将所述随机选择的列中的相应指数的当前值更新为所述值范围内的针对所述随机选择的列中的相应指数导致i%的最小数量的长度为n的环的值之中的一个值;仅在对所述随机选择的列的所述基矩阵和所述指数矩阵的条目的改变不增大所述随机选择的列的长度为n的环的总数的情况下,才接受所述改变。
[0220]
示例39是如示例38所述的方法,其中,将所述随机选择的列中的相应指数的当前值更新为所述值范围内的针对相应指数导致最小数量的长度为n的环的值。
[0221]
示例40是如示例38所述的方法,其中,将所述随机选择的列中的相应指数的当前值更新为所述值范围内的针对相应指数导致i%的最小数量的长度为n的环的值之中的一个随机选择的值。
[0222]
示例41是如示例38至40中的任一项所述的方法,其中,迭代地扰动所述ldpc码的指数矩阵包括在另外的至少一次迭代中:针对所述ldpc码的指数矩阵中的每一列,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应列的子矩阵表示的节点的长度为m的环的数量,其中,n《m;在所述ldpc码的指数矩阵中的呈现b%的最大数量的长度为m的环的列之中,随机选择一列;对所述ldpc码的基矩阵中的与随机选择的列对应的条目进行置换;随机将所述ldpc码的基矩阵中的与所述随机选择的列对应的条目之中的总共h个条目,设置为用于指示相应配属的子矩阵是单位矩阵的循环移位副本,其中,h是所述随机选择的列的预定列度;针对所述基矩阵中的每个随机设置的条目执行以下内容:在假设所述随机选择的列中的相应指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由指派给所述随机选择的列中的相应指数的子矩阵表示的节点的长度为m的环的相应假设数目,其中,所述随机选择的列中的相应指数对应于所述基矩阵中的相应随机设置的条目;将所述随机选择的列中的相应指数的当前值更新为所述值范围内的针对所述随机选择的列中的相应指数导致j%的最小数量的长度为m的环的值之中的一个值;仅在对所述随机选择的列的所述基矩阵和所述指数矩阵的条目的改变不增大所述随机选择的列的长度为m的环的总数的情况下,才接受所述改变。
[0223]
示例42是如示例33至41中的任一项所述的方法,其中,将所述ldpc码的指数矩阵设置为使得所述ldpc码的围长大于四。
[0224]
示例43是如示例33至42中的任一项所述的方法,其中,所述子矩阵的大小是q
×
q,其中,设置所述ldpc码的指数矩阵包括:基于所述ldpc码的预定列度和行度分布生成所述ldpc码的基矩阵,其中,所述基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本;通过以下方式来生成所述ldpc码的指数矩阵:将0到q-1之间的值随机配属于所述多个子矩阵中的每个以下子矩阵的相应指数直到ldpc码的围长大于四为止:对于所述子矩阵,所述ldpc码的基矩阵指示所述子矩阵是单位矩阵的循环移位复本。
[0225]
示例44是如示例33至42中的任一项所述的方法,其中,设置所述ldpc码的指数矩
阵包括:基于所述ldpc码的预定列度和行度分布通过渐进式边缘增长,生成所述ldpc码的指数矩阵和所述ldpc码的基矩阵,直到所述ldpc码的围长大于四为止,其中,所述基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本。
[0226]
示例45是如示例33至44中的任一项所述的方法,其中,所述ldpc码是准循环ldpc码。
[0227]
示例46是如示例33至45中的任一项所述的方法,其中,迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长按以下顺序包括:迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的长度为n的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的长度为m的环,其中,n《m。
[0228]
示例47是如示例33至46中的任一项所述的方法,其中,如果所提供的ldpc码的最小列度是四或更大,则迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长按以下顺序包括:迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有长度为4的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的长度为6的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的长度为8的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的长度为10的环。
[0229]
示例48是如示例33至46中的任一项所述的方法,其中,如果所提供的ldpc码的最小列度是三,则迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长按以下顺序包括:迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有出现了所述ldpc码的坦纳图表示中由配属于列度为四或更大的所述指数矩阵的任何列的子矩阵表示的节点的长度为4的环;迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为三的所述指数矩阵的任何列的子矩阵表示的节点的长度为6的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为三的所述指数矩阵的任何列的子矩阵表示的节点的长度为8的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为三的所述指数矩阵的任何列的子矩阵表示的节点的长度为10的环。
[0230]
示例49是如示例33至46中的任一项所述的方法,其中,如果所提供的ldpc码的最小列度是二,则迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长按以下顺序包括:迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有出现了所述ldpc码的坦纳图表示中由配属于列度为四或更大的所述指数矩阵的任何列的子矩阵表示的节点的长度为4的如下环;迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有出现了所述ldpc码的坦纳图表示中由配属于列度为二或三的所述指数矩阵的任何列的子矩阵表示的节点的长度为6的环;迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有出现了所述ldpc码的坦纳图表示中由配属于列度为三的所述指数矩阵的任何列的子矩阵表示的节点的长度为6的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为二或更大的所述指数矩阵的任何列的子矩阵表示的节点的长度为6的
环;迭代地扰动所述ldpc码的指数矩阵,以去除所述ldpc码的坦纳图表示中的所有出现了所述ldpc码的坦纳图表示中由配属于列度为二或三的所述指数矩阵的任何列的子矩阵表示的节点的长度为8的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为三的所述指数矩阵的任何列的子矩阵表示的节点的长度为8的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为二或三的所述指数矩阵的任何列的子矩阵表示的节点的长度为10的环;迭代地扰动所述ldpc码的指数矩阵,以最少化所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于列度为二或更大的所述指数矩阵的任何列的子矩阵表示的节点的长度为8的环。
[0231]
示例50是一种存储有程序的计算机可读存储介质,所述程序具有程序代码,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码用于执行如示例33至49中的任一项所述的方法。
[0232]
示例51是一种具有程序代码的计算机程序,当所述程序在处理器或可编程硬件组件上被执行时,所述程序代码被配置为执行如示例33至49中的任一项所述的方法。
[0233]
示例52是一种用于优化低密度奇偶校验ldpc码的装置,其中,所述ldpc码的奇偶校验矩阵由多个子矩阵形成,其中,所述子矩阵是由各自的指数表示的循环置换矩阵,其中,相应指数指示相应子矩阵相对于单位矩阵的相应循环移位、或者指示相应子矩阵等于零矩阵,所述装置包括处理电路,所述处理电路被配置为:设置所述ldpc码的指数矩阵,其中,所述指数矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵并且指示相应指数的值;迭代地扰动所述ldpc码的指数矩阵以增大所述ldpc码的围长。
[0234]
示例53是如示例52所述的装置,其中,所述子矩阵的大小是q
×
q,其中,当迭代地扰动所述ldpc码的指数矩阵时,所述处理电路在至少一次迭代中被配置为:针对所述ldpc码的指数矩阵中的指示相应子矩阵相对于单位矩阵的相应循环移位的每个指数,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应指数的子矩阵表示的节点的长度为n的环的数量;在所述ldpc码的指数矩阵中呈现a%的最大数量的长度为n的环的指数之中,随机选择一个指数;在假设随机选择的指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定出现了所述ldpc码的坦纳图表示中由配属于所述随机选择的指数的子矩阵表示的节点的长度为n的环的相应假设数量;将所述随机选择的指数的当前值更新为所述值范围内的导致i%的最小数量的所述长度为n的环的值之中的一个值。
[0235]
示例54是如示例52所述的装置,其中,所述子矩阵的大小是q
×
q,其中,所述ldpc码的基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本,其中,当迭代地扰动所述ldpc码的指数矩阵时,所述处理电路在至少一次迭代中被配置为:针对所述ldpc码的指数矩阵中的每一列,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于相应列的子矩阵表示的节点的长度为n的环;在所述ldpc码的指数矩阵中的呈现a%的最大数量的长度为n的环的列之中,随机选择一列;对所述ldpc码的基矩阵中的与随机选择的列相对应的条目进行置换;随机将所述ldpc码的基矩阵中的与所述随机选择的列相对应的条目之中的总共g个条目,设置为用于指示相应配属的子矩阵是单位矩阵的循环移位副本,其中,g是
所述随机选择的列的预定列度;针对所述基矩阵中的每个随机设置的条目执行以下内容:在假设所述随机选择的列中的相应指数的当前值被改变为从0到q-1的值范围内的各个值的情况下,针对所述值范围内的每个值,确定所述ldpc码的坦纳图表示中的出现了所述ldpc码的坦纳图表示中由配属于所述随机选择的列的相应指数的子矩阵表示的节点的长度为n的环的相应假设数目,其中,随机选择的列中相应指数对应于基矩阵中的相应随机设置的条目;将所述随机选择的列中的相应指数的当前值更新为所述值范围内的针对所述随机选择的列中的相应指数导致i%的最小数量的长度为n的环的值之中的一个值;仅在对所述随机选择的列的所述基矩阵和所述指数矩阵的条目的改变不增大所述随机选择的列的长度为n的环的总数的情况下,才接受所述改变。
[0236]
示例55是如示例52至54中的任一项所述的装置,其中,所述处理电路被配置为将所述ldpc码的指数矩阵设置为使得所述ldpc码的围长大于四。
[0237]
示例56是如示例52至55中的任一项所述的装置,其中,所述子矩阵的大小是q
×
q,并且其中,当提供所述ldpc码的指数矩阵时,所述处理电路被配置为:基于所述ldpc码的预定列度和行度分布生成所述ldpc码的基矩阵,其中,所述基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本;通过以下方式来生成所述ldpc码的指数矩阵:将0到q-1之间的值随机配属于所述多个子矩阵中的每个以下子矩阵的相应指数直到ldpc码的围长大于四为止:对于所述子矩阵,所述ldpc码的基矩阵指示所述子矩阵是单位矩阵的循环移位复本。
[0238]
示例57是如示例52至55中的任一项所述的装置,其中,当提供所述ldpc码的指数矩阵时,所述处理电路被配置为:基于所述ldpc码的预定列度和行度分布通过渐进式边缘增长,生成所述ldpc码的指数矩阵和所述ldpc码的基矩阵,直到所述ldpc码的围长大于四为止,其中,所述基矩阵中的每个条目被配属于所述多个子矩阵中的相应一个子矩阵,并且指示相应子矩阵是等于零矩阵还是单位矩阵的循环移位副本。
[0239]
本文关于先前示例中的特定一个示例描述的方面和特征也可与一个或多个另外的示例相组合以替代该另外示例的相同或相似的特征或者将特征额外地引入到该另外示例中。
[0240]
示例还可以是或者可涉及(计算机)程序,该程序包括程序代码,以在该程序在计算机、处理器或其他可编程硬件组件上被执行时执行上述方法中的一个或多个。从而,上文描述的不同方法的步骤、操作或过程也可由编程的计算机、处理器或其他可编程硬件组件来执行。示例也可覆盖程序存储设备,例如数字数据存储介质,它们是机器、处理器或计算机可读的并且编码和/或包含机器可执行、处理器可执行或者计算机可执行的指令和程序。程序存储设备可包括或者可以是例如数字存储设备、诸如磁盘和磁带之类的磁存储介质、硬盘驱动器、或者光可读数字数据存储介质。其他示例也可包括被编程为执行上述方法的步骤的计算机、处理器、控制单元、(现场)可编程逻辑阵列((field)programmable logic array,(f)pla)、(现场)可编程门阵列((field)programmable gate array,(f)pga)、图形处理器单元(graphics processor unit,gpu)、asic、集成电路(integrated circuit,ic)或者片上系统(system-on-a-chip,soc)系统。
[0241]
还应理解,对说明书或权利要求中公开的若干个步骤、过程、操作或功能的公开不应被解释为暗示着这些操作一定要依从于所描述的顺序,除非在个体情况中明确地声明或
者出于技术原因是必要的。因此,先前描述不将若干个步骤或功能的执行限制到一定的顺序。此外,在另外的示例中,单个步骤、功能、过程或操作可包括和/或被分解成若干个子步骤、子功能、子过程或子操作。
[0242]
如果已关联某个设备或系统描述了一些方面,则这些方面也应当被理解为对相应方法的描述。例如,该设备或系统的块、设备或功能方面可对应于相应方法的特征,例如,方法步骤。因此,关联某个方法描述的方面也应被理解为对相应设备或相应系统的相应块、相应元件、属性或功能特征的描述。
[0243]
在此将所附权利要求并入在详细描述中,其中,每个权利要求可独立作为一个单独的示例。还应当注意,虽然在权利要求中,从属权利要求引用了与一个或多个其他权利要求的特定组合,但其他示例也可包括该从属权利要求与任何其他从属或独立权利要求的主题的组合。这种组合在此被明确提出,除非在个体情况中声明特定的组合是不想要的。此外,一权利要求的特征也应当被包括用于任何其他独立权利要求,即使该权利要求不被直接定义为从属于该其他独立权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献