构建基矩阵的方法及处理装置、存储介质与流程

文档序号:31635639发布日期:2022-09-24 03:46阅读:159来源:国知局
构建基矩阵的方法及处理装置、存储介质与流程

1.本公开的实施例涉及一种构建用于qc-ldpc码的置换矩阵的基矩阵的方法及处理装置、存储介质


背景技术:

2.在通信系统中,为了对抗信道带来的干扰,提高信息传输的可靠性,往往会采用前向纠错码(fec)技术,即在发送端增加信息的冗余度,接收端利用这些冗余信息进行纠错。
3.如图1所示,一个典型的编译码过程包括信源、信源编码、信道编码、调制、信道、解调、信道译码、信源译码和信宿,其中信道编译码可以采用前向纠错技术。当前信道编译码技术主要有分组码、卷积码、turbo码、ldpc码等。
4.信道编译码的基本原理以二进制编码为例,如图2所示,在信息比特序列u的尾部添加一些冗余比特序列p,得到码字序列c=[u,p]。然后,将码字序列调制、发送到信道。在接收端,利用接收到的冗余信息p对信息比特序列部分u进行纠错检错,这个纠错检错的操作称为译码。
[0005]
ldpc码以其接近香农极限的性能和并行译码所带来的高吞吐,被广泛应用于各种通信系统,比如5g nr(第五代移动通信网络空口标准)、wifi(无线保真)、dvb(数字视频广播)或光通信系统中。


技术实现要素:

[0006]
本公开的至少一个实施例提供了一种构建用于qc-ldpc码的置换矩阵的基矩阵的方法,该方法包括:根据所述置换矩阵的码率确定所述基矩阵中系统比特对应的列数ns以及所述基矩阵的行数nrow;确定所述基矩阵的最大行重dc以及所述基矩阵的总重范围,其中,所述基矩阵中每一行的行重为dc或dc-1;根据所述基矩阵的总重范围以及所述基矩阵的行数nrow,确定所述基矩阵中行重为dc-1的行数的第一范围,行重为dc的行数的第二范围;根据所述基矩阵的行数nrow、所述总重范围、所述第一范围和所述第二范围,在对应于所述基矩阵的初始基矩阵中每一行的系统比特部分进行填充处理以得到中间基矩阵;对所述中间基矩阵进行收敛计算以确定所述中间基矩阵是否收敛,响应于所述中间基矩阵收敛,确定所述中间基矩阵为所述基矩阵。
[0007]
本公开的至少一个实施例提供了一种构建用于qc-ldpc码的置换矩阵的基矩阵的处理装置,该处理装置包括处理单元和存储器,该存储器上存储有一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被配置为由所述处理单元执行时,如上述方法被实现。
[0008]
本公开的至少一个实施例提供了一种非瞬时可读存储介质,其中,所述非瞬时可读存储介质上存储有计算机指令,其中,所述计算机指令被处理器执行时上述方法被实现。
附图说明
[0009]
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0010]
图1为一个示例性的编译码过程的示意图;
[0011]
图2为通过信息比特序列u和冗余比特序列p得到码字序列c的示意图;
[0012]
图3为一个示例性校验矩阵的tanner图的示意图;
[0013]
图4为一个示例性基矩阵的原模图的示意图;
[0014]
图5a为一个置换矩阵的tanner图的示意图;
[0015]
图5b为原模图进行交织置换的示意图;
[0016]
图6a、图6b和图6c分别为1/6、1/4和1/3码率的置换矩阵形式;
[0017]
图7为根据本公开一实施例的构建用于qc-ldpc码的置换矩阵的基矩阵的方法的示意图;
[0018]
图8为根据本公开一实施例的设计基矩阵的流程的示意图;
[0019]
图9为根据本公开一实施例的构建用于qc-ldpc码的置换矩阵的方法的示意图;
[0020]
图10为一示例性的置换矩阵的tanner图中的短环的示意图;
[0021]
图11为一示例性的置换矩阵的tanner图中的短环的示意图;
[0022]
图12为示例性的以基矩阵的变量节点为根节点展开的一棵树的示意图;
[0023]
图13为进行树形搜索的流程示意图;
[0024]
图14示出了1/6码率的三种码长的置换矩阵对应的性能的示意图;
[0025]
图15示出了1/4码率的三种码长的置换矩阵对应的性能的示意图;
[0026]
图16示出了1/3码率的三种码长的置换矩阵对应的性能的示意图;
[0027]
图17示出了根据本公开至少一个实施例提供的处理装置的示意图;
[0028]
图18为本公开至少一个实施例提供的一种电子装置的示意框图。
具体实施方式
[0029]
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0030]
除非另作定义,此处使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0031]
ldpc码本质上是一种线性分组码,只不过校验矩阵中“1”的比例相对比较低。每个ldpc码可以用一个生成矩阵g来标识,码字可以通过信息比特与生成矩阵的乘积来生成,即
c=u*g。另一方面,ldpc码可以不用生成矩阵g来表示,而是采用校验矩阵h来表示,校验矩阵与生成矩阵的关系为:g*h
t
=0。假设校验矩阵可以写成:h=[hu,h
p
],其中hu对应校验矩阵中信息比特部分,h
p
对应校验矩阵中校验比特部分。那么,生成矩阵可以写成
[0032]
校验矩阵中某个行中1的个数称为这个行的行重,对应地,某个列中1的个数称为这个列的列重。如果所有的行的行重相同,所有的列的列重相同,就称这个ldpc码为规则码,否则为不规则码。也可以用行重和列重的分布来分析ldpc码,dv表示列重的个数,dc表示行重的个数,λd表示列重为d在dv个列重中的比例,ρd表示列重为d在dc个行重中的比例,则列重和行重的分布可用下面公式表示:
[0033][0034]
在密度进化理论中列重和行重决定了ldpc码的性能。
[0035]
ldpc码的另一种表示方式为tanner图,tanner图是一种二分图。以如下简单的校验矩阵h所表示的码为例:
[0036][0037]
其对应的tanner图如图3所示。tanner图中,将矩阵h的行所对应的节点称为校验节点(check nodes),h的列所对应的节点称为变量节点(variable nodes),矩阵h中行列交汇所对应的值如果是1,则在图中就有一根连线,这根连线称为边。在图3所示的tanner图中,共有10个变量节点和5个校验节点。
[0038]
tanner图对于研究ldpc码非常有帮助,比如tanner图中的环、周长。tanner图中的环是指从一个节点s出发,沿着连线前进,当又回到本节点s时所经过的线组成一个环,该环的大小就是线或者边的个数。在图3中的加粗的连线构成一个环。tanner图的周长指的是最小的环的大小。另外,tanner图中还有外信息自由度的概念,只有一条边连接到某个环中的校验节点的个数称为外信息自由度。
[0039]
结构化ldpc码也被称为准循环(quasi-cyclic)ldpc码(qc-ldpc码),其结构易于硬件的并行处理,能够获得高的吞吐量而被很多系统采用。如下矩阵p是一个qc-ldpc码的置换矩阵,矩阵里面的每个数值代表了一个z*z的子矩阵,z称为提升因子。
[0040][0041]
当矩阵p里面的值为-1表示的是z*z的全零矩阵。其他值x则代表了一个z*z的单位矩阵循环右移x所得到的矩阵,参考下面的例子。真正的校验矩阵则是p的展开,以z=8为例可以得到如下循环矩阵,
[0042][0043]
与置换矩阵相对应的基矩阵则定义为,置换矩阵中大于等于零的元素为1,其他为0,即如下b矩阵为上面的置换矩阵的基矩阵:
[0044][0045]
在设计qc-ldpc码时,可以先设计基矩阵,然后再对基矩阵进行提升(即确定基矩阵中为1的位置的循环值)得到置换矩阵。基于基矩阵所得到的tanner图称为原模图(protograph)。例如上述b矩阵的原模图如图4所示。
[0046]
对于基矩阵的提升就是对原模图的置换,该过程是将原模图负责z(提升因子)份,z为正整数。例如,以z=8为例,首先将上述原模图复制8份,得到如下如图5a所示的tanner图。以p(1,1)=1为例,
[0047][0048]
这表示循环右移1位所得到的矩阵,因此对原模图进行交织置换,得到如图5b所示的tanner图。同理,将基矩阵所有大于等于0的元素都进行交织置换,就能得到对应的校验矩阵的tanner图。
[0049]
turbo码和ldpc码的编译码器的最佳译码器都是采用迭代译码方法,迭代译码器在迭代的过程中进行着消息的传递,这个时候所传递的消息的概率密度在迭代的过程中也是不断地变化着的,概率密度进化(de:density evolution)理论就是基于这个原理来预测一个ldpc码的性能的。具体地,概率密度进化理论根据行重和列重的分布来计算消息的概率密度。密度进化工具在进行ldpc码的构建时可以用来确定最佳的行重和列重的分布,以如下列重和行重的分布为例:
[0050]
[0051]
假设校验节点传递给变量节点的信息的概率为p
(c)
,变量节点传递给校验节点的信息的概率为p
(v)
,则变量节点和校验节点之间传递信息的概率变化关系如下,其中为迭代次数,函数γ-1
(x)为译码计算中ф-1
(x)函数的操作而引入的概率的变化。
[0052][0053][0054]
对于基于基矩阵而生成qc-ldpc码,可以使用密度进化方法对基矩阵进行计算而得到。例如,密度进化方法可以使用原模图外信息传递(pexit:protograph extrinsic-information-transfer)算法来对基矩阵进行计算,得到所传递信息的概率,例如,该算法的步骤如下:
[0055]
(1)初始化:选择一个eb/no,初始化σ
ch
=(σ
ch,0
,


ch,n-1
),
[0056]
r为码率
[0057]
(2)变量节点到校验节点:b
ij
为变量节点j与校验节点i之间的边的数量,当c=i时δ
ci
=1,否则δ
ci
=0,
[0058][0059]
(3)校验节点到变量节点:当v=j时δ
vj
=1,否则δ
vj
=0,
[0060][0061]
(4)累积互信息计算:
[0062][0063]
(5)停止迭代的准则,如果接近1,则停止,否则转到步骤(2)继续迭代。
[0064]
在上面的步骤中,函数j(x)为:
[0065][0066]
j(x)与j-1
(x)可以采用下面的简化算法计算:
[0067][0068]aj,1
=-0.0421061,b
j,1
=0.209252
[0069]cj,1
=-0.00640081
[0070]aj,2
=0.00181491,b
j,2
=-0.142675
[0071]cj,2
=-0.0822054,d
j,2
=0.0549608.
[0072][0073]aσ,1
=1.09542,b
σ
,1=0.214217,cσ,1=2.33727
[0074]aσ,2
=0.706692,b
σ,2
=0.386013,c
σ,2
=-1.75017.
[0075]
wifi作为一种无线局域网技术,以其方便易用、价格便宜而风靡全世界。wifi在802.11n标准中引入了结构化的qc-ldpc码,用于提高wifi网络的吞吐。但是,802.11n标准的qc-ldpc只有1/2、2/3、3/4、5/6这样几种码率,缺少低码率的ldpc码。wifi的qc-ldpc采用了非规则码的重复累积(irregular repeat-accumulate)结构,这种结构的ldpc码,在保证性能符合要求的情况下,其编码器易于硬件实现。
[0076]
以1/2码率为例,如下面的置换矩阵所示,该置换矩阵的大小为12*24,提升因子z=27/54/81,其中虚线范围内为校验比特所对应的部分为12*12大小,这部分有着固定的结构,这种结构易于编码器的实现。前面红色虚线框外的部分是需要设计的部分。上述wifi的802.11n标准的qc-ldpc的各个码率下的基矩阵的各个行的行重最多差1,基矩阵中1的总个数在79~88之间。比如以1/2码率为例,基矩阵中各行的行重为{7,8}两个数值,基矩阵的总重为88。
[0077][0078]
802.11n标准的qc-ldpc只有1/2、2/3、3/4、5/6这几种码率,缺少低码率的ldpc码。本公开的至少一个实施例在可以复用已有编译码器结构的情况下,提供了适用于802.11n标准的低码率的ldpc码,这些码率包括1/6、1/4、1/3码率,可以用于低信噪比、远距离传输环境。
[0079]
在本公开的至少一个实施例中,对于1/6、1/4和1/3码率的置换矩阵可采用与1/2、2/3、3/4、5/6这几种码率类似的结构,复用前述802.11n标准的qc-ldpc的1/2、2/3、3/4、5/6这几种码率的ldpc编译码器,例如,图6a、图6b和图6c分别为1/6、1/4和1/3码率的置换矩阵形式,各个矩阵中x为待设计的循环值。这些置换矩阵的大小分别为20*24、18*24和16*24。
[0080]
本本公开的多个提供一种设计qc-ldpc码的方法以及所获得的qc-ldpc码,这些方法包括设计基矩阵、通过基矩阵设计置换矩阵等的方法。下面对这些方法以及由此获得的ldpc码及置换矩阵进行说明。
[0081]
本公开的至少一个实施例提供了一种构建用于qc-ldpc码的置换矩阵的基矩阵的方法,参见图7的示意图,该方法包括:
[0082]
步骤710,获取置换矩阵的码率,根据码率确定基矩阵中系统比特对应的列数ns以及基矩阵的行数nrow;
[0083]
步骤720,确定基矩阵的最大行重dc以及基矩阵的总重范围,其中,基矩阵中每一行的行重为dc或dc-1;
[0084]
步骤730,根据基矩阵的总重范围以及基矩阵的行数nrow,确定基矩阵中行重为dc-1的行数的第一范围,行重为dc的行数的第二范围;
[0085]
步骤740,根据基矩阵的行数nrow、总重范围、第一范围和第二范围,在对应于基矩阵的初始基矩阵中每一行的系统比特部分进行填充处理以得到中间基矩阵;
[0086]
步骤750,对中间基矩阵进行收敛计算以确定中间基矩阵是否收敛,响应于中间基矩阵收敛,确定中间基矩阵为基矩阵。
[0087]
例如,初始基矩阵的系统比特部分为完全空白的或至少部分元素已被填充。
[0088]
本公开实施例的上述构建用于qc-ldpc码的置换矩阵的基矩阵的方法可以方便地构建符合性能要求的基矩阵,以用于进一步构建对应的置换矩阵,特别是用于上述1/6、1/4和1/3码率的置换矩阵。
[0089]
例如,在本公开的至少一个实施例中,上述的构建用于qc-ldpc码的置换矩阵的基矩阵的方法还包括:响应于中间基矩阵不收敛,重置中间基矩阵的至少部分参数,对重置后的中间基矩阵的每一行的系统比特重新进行填充处理以得到新的中间基矩阵,对新的中间基矩阵再进行收敛计算,响应于新的中间基矩阵收敛,确定新的中间基矩阵为基矩阵。
[0090]
例如,在本公开的至少一个实施例中,在步骤750的一个示例中,进行收敛计算包括:获取信号噪声比(snr)和迭代次数,根据信号噪声比和迭代次数,采用密度进化工具(例如,原模图外信息传递(pexit))进行收敛计算。
[0091]
需要指出的是上述步骤710~750并非限制于按照上述顺序执行,各个步骤只要不冲突也可以交换执行或同时并行执行,例如,步骤710和步骤720可以交换执行或同时并行执行。
[0092]
在至少一个实施例中,待设计的置换矩阵的码率为1/6、1/4或1/3。例如,对应的基矩阵的总重范围为79~88;对于1/6码率,最大行重dc=5或者4;对于1/4码率,最大行重dc=5;对于1/3码率,最大行重dc=6或者5。如此,可以与1/2~5/6码率的ldpc码的编译码器复用,在可以用于低信噪比、远距离传输环境的同时,还降低了开发成本、制造成本。
[0093]
在本公开的至少一实施例中,编译码器基于置换矩阵进行编码或译码,按照置换矩阵的行进行处理,例如,一个时钟周期处理置换矩阵中一个元素,设置例如两个处理单元以流水的方式依次(例如逐行)处理置换矩阵中的元素。此时,发明人注意到,如果置换矩阵(例如相邻两行)的行重相差比较大的话,则这两个处理单元的速度会不匹配,这个时候需要比较多的额外时钟周期进行等待,那么译码器硬件的实现会比较麻烦,而且影响译码速度。所以,在设计基矩阵时,在本公开的至少一个实施例中,相邻两行的行重最多相差1(与
wifi高码率qc-ldpc码具有同样的策略)。此外,总的译码速度取决于基矩阵中1的个数,所以选择将基矩阵的总重限制在79~88内,复用用于例如1/2~5/6码率的ldpc码的编译码器的时钟频率或者时钟频率随带宽等比例缩放。此外,根据基矩阵的总重设置编译码器的存储单元,因此使得总重在79~88相对于例如1/2~5/6码率的ldpc码的编译码器不会额外增加存储单元。另外,同时上述行重可使得ldpc码相对于较小的行重更好的性能。
[0094]
下面以码率为1/6、1/4或1/3为例,对于设计基矩阵的流程进行说明,该流程如图8所示。此外,对于码率为1/6、1/4和1/3,置换矩阵的大小分别为20*24、18*24和16*24,对应的置换矩阵形式分别为图6a、图6b和图6c所示,在各个待设计的置换矩阵中x为待设计的循环值。
[0095]
如图8所示,在步骤810中,确定待设计的基矩阵的最大行重dc,例如,该基矩阵每一行的行重在{dc,dc-1}里面随机选择,例如:
[0096]
a)对于1/6码率,最大行重dc=5或者4;
[0097]
b)对于1/4码率,最大行重dc=5;
[0098]
c)对于1/3码率,最大行重dc=6或者5。
[0099]
将待设计的基矩阵总重设置在79~88范围内,在步骤820中,确定该基矩阵中行重为dc-1的行数范围,例如最多为m个,确定行重为dc的行数的行数范围,例如最多为n个,例如:
[0100]
a)对于1/6码率,dc=5:m=20,n=8/7/6/5/4/3/2/1/0;
[0101]
b)对于1/6码率,dc=4:m=1,n=20;
[0102]
c)对于1/4码率,dc=5:m=18,n=16/15/14/13/12/11/10/9/8/7;
[0103]
d)对于1/3码率,dc=6:m=16,n=8/7/6/5/4/3/2/1/0;
[0104]
e)对于1/3码率,dc=5:m=1,n=16。
[0105]
上述取值方式仅为示例,例如,也可以固定n值,而给出m的取值范围,例如,对于1/6码率,dc=5:n=8,m=12~20。
[0106]
在步骤830中,设定基矩阵中系统比特对应的列数ns,用于随机产生基矩阵元素位置时使用,并且确定该基矩阵的行数nrow,对此可以例如进一步参考图6a~图6c:
[0107]
a)对于1/6码率,ns=4,nrow=20;
[0108]
b)对于1/4码率,ns=6,nrow=18;
[0109]
c)对于1/3码率,ns=8,nrow=16。
[0110]
在步骤840中,设定用于pexit工具的信噪比(snr)和迭代次数。
[0111]
在设定了上述参数之后,从待设计的基矩阵的第一行开始到最后一行进行处理,例如依序逐行处理每一行。在每次处理中,需要记录待设计的基矩阵中当前行重为dc的行的数量以及和行重为dc-1的行的数量,分别记为ndc和ndc1,这两个示例的初始值均为0。在步骤850中,将ndc和ndc1初始化为0,且初始化当前行的索引rowindex为0(对应于第0行)。
[0112]
对于当前行,如果ndc《n且ndc1《m,则在{dc,dc-1}中随机选择一个作为这个行的行重,假设该行重为d,同时将ndc或者ndc1相应加1;如果ndc≥n,则选择dc-1作为这个行的行重d;ndc1≥m,则选择dc作为这个行的行重d。需要指出的是,不会存在ndc≥n且同时ndc1≥m的情形。进一步地,确定当前行当前的行重(例如除了待设计的循环值x之外已经有元素为非零(例如1),则当前行的当前行重大于1),将其记为dcurr,则需要补充的行重为ds=d

dcurr,然后在上述基矩阵中当前行中标注x位置中随机选择ds个位置填充非零数值,例如1,而且其余位置填充0。
[0113]
当待设计的基矩阵中所有行都进行了上述处理,得到一个系统比特为随机配置的基矩阵,该基矩阵可以称为中间基矩阵,根据该基矩阵的码率(例如为1/6、1/4或者1/3),选择(例如在前设定的)信噪比(snr)以及迭代次数,然后对此中间基矩阵使用密度进化工具(例如pexit工具)进行计算,如果计算收敛,则认为找到一个合适的备选基矩阵;如果计算没有收敛,则放弃当前获得的中间基矩阵,重置该待设计的基矩阵的所有参数,例如,重置如图6a~图6c中的基矩阵中循环值x对应的系统比特,重置ndc和ndc1,从待设计的基矩阵的第一行开始处理,例如依序处理每一行,再次得到一个系统比特为重新随机配置的新的中间基矩阵。对于该新的基矩阵仍然使用密度进化工具判断是否在计算中收敛。通过上述流程,对于同一码率可以获得多个合适的备选基矩阵。
[0114]
具体地参考图8所示的示例,在步骤860中,确定当前行(即rowindex指向的行)中校验比特部分的行重dp;在步骤870中,先判断ndc《n是否成立,如果不成立(n),则将当前行的行重d设置为dc-1,即d=dc-1,否则(y)继续判断ndc1《m是否成立,如果不成立(n),则将当前行的行重d设置为dc,即d=dc,否则(y)在dc和dc-1中随机选择对d赋值,如果选择的是dc,那么ndc加1,如果选的是dc-1,那么ndc1加1;在步骤880中,从{0,1,

,ns-1}集合中随机选择d-dp个不同的值作为基矩阵b当前行中为系统比特中d-dp个位置赋值;在步骤890中,将参数rowindex加1,之后判断rowindex是否小于nrow,如果是,则表明尚未处理基矩阵的全部行,因此返回到步骤860对递增后的rowindex指向的行进行处理,否则已经完成对基矩阵的全部行的处理,使用pexit工具计算基矩阵,如果收敛,则基矩阵搜索完成,如果不收敛,则回到步骤850重新开始新的基矩阵搜索。
[0115]
本公开的至少一个实施例还提供了一种构建用于qc-ldpc码的置换矩阵的方法,如图9所示,该方法包括:
[0116]
步骤910,获取用于置换矩阵的基矩阵;
[0117]
步骤920,对基矩阵进行提升以得到置换矩阵。
[0118]
在上述方法中,步骤910中的基矩阵不限于根据上述例如图7所示的实施例获得基矩阵,也可以是通过其他方式获得的基矩阵。该基矩阵在步骤920中被提升以得到所需要的置换矩阵。
[0119]
例如,步骤920包括:获取基矩阵的原模图,获取原模图中的每个宏环,且对于原模图中的每个宏环,由宏环的等效循环值ecs确定置换矩阵对应的校验矩阵的tanner图中对应于宏环的短环的大小,根据短环的大小的确定是否需要对宏环中至少一个循环值进行设置。在步骤920中得到的置换矩阵可以用于得到qc-ldpc码的校验矩阵。
[0120]
本公开实施例的构建用于qc-ldpc码的置换矩阵的方法可以方便、快捷地获取备选的置换矩阵,且有利于判断置换矩阵的性能。
[0121]
在本公开的实施例中,“宏环”是指原模图中出现的环,而“短环”是指在对应的校验矩阵中出现的环。如上所述,对于原模图中的一个宏环,则在对应的校验矩阵中存在至少一个短环。
[0122]
在本公开的至少一个实施例中,上述步骤920还可以包括:使得原模图中的所有宏环的ecs都满足校验矩阵的tanner图对于最小短环的要求和外信息自由度的要求。
[0123]
对基矩阵的提升就是确定基矩阵中为1的位置的循环值,而基矩阵中为0的位置则例如被赋值为-1(这表示全0子矩阵)。该提升过程包括对原模图进行交织置换,生成对应的校验矩阵的tanner图(即真正的tanner图)的过程。tanner图的环对ldpc码的性能有比较大的影响。ldpc码的信息传递译码算法假定变量节点是相互独立的,但是对应的校验矩阵的tanner图中存在短环则必然破坏了独立性假设,这使得译码性能下降。通常,对应的校验矩阵的tanner图中最短环的长度越长,则译码性能越接近最优算法。例如,在本公开的实施例中可以选择最短环的长度为6或更大,即最小环门限为6或更大。对于校验矩阵的tanner图而言,外信息自由度越大,所对应的ldpc码的性能越好,特别是误码率曲线越陡峭,因此在判断一个环满足长度约束之后,还要判断外信息自由度是否大于某个值。
[0124]
发明人在研究中发现了原模图上的环与对应的校验矩阵的tanner图上的环的数量关系,依据这个数量关系可以通过基矩阵的搜索就能得到对应的校验矩阵的tanner图上的环的信息。
[0125]
在本公开的至少一个实施例中,步骤920还包括:获得宏环的等效循环值(ecs),其中,假设在原模图上2*l大小的宏环由循环值{p(i0,j0),p(i0,j1),p(i1,j1),p(i1,j2),

,p(i
(l-1)
,j
l
)}构成,j
l
=j0,l为正整数,则等效循环值(ecs)由下面的公式确定:
[0126][0127]
那么,有如下结论:
[0128]
如果原模图中一个宏环的ecs与提升因子z的最大公约数为q,那么与原模图中的宏环所对应的校验矩阵的tanner图的短环的大小为2*l*z/q,所对应的校验矩阵的tanner图中与原模图这个宏环所对应而产生大小为2*l*z/q的短环的个数为q。
[0129]
在一个例子中,假设z=8,置换矩阵如下p,因此p所对应的原模图上有个大小为4(2*l,l=2)的宏环,
[0130][0131]
ecs=-3+5-2+1=1,则ecs与z的最大公约数为q=1,那么原模图所对应的校验矩阵的tanner图的短环的大小为2*2*8/1=32,对应的校验矩阵的tanner图中32大小的短环的个数为1个。如下图10所示,可以通过置换矩阵画出图形来说明在tanner图中只有一个32的短环,图中的数字就是循环值,图中的黑点表示循环值所对应的循环单位阵,从h(6,1)出发,依次连接相邻的节点,最后又回到h(6,1),说明只有一个短环。
[0132]
在另一个例子中,假设z=8,置换矩阵如下p,因此p所对应的原模图上有个大小为4(2*l,l=2)的宏环,
[0133][0134]
ecs=-3+6-2+1=2,则ecs与z的最大公约数为q=2,那么原模图所对应的校验矩阵的tanner图的短环的大小为2*2*8/2=16,tanner图中16大小的短环的个数为2个。如图11所示,可以看出有两个大小为16的短环。
[0135]
在本公开的至少一个实施例中,对基矩阵进行提升采用递归调用树形搜索的方法。在该实施例中,以基矩阵的原模图中的每个变量节点为根节点展开成一棵树,对该树进
行树形搜索以检查是否存在对应于树的宏环。
[0136]
图12示出了以基矩阵的变量节点为根节点展开的一棵树,以用于进行树形搜索。基矩阵的每个变量节点都将展开成一棵树,这棵树上可能存在一个或多个宏环,如图12所示,虚线部分指示所形成的一个宏环。对于每个宏环,按照上面所述的等效循环值ecs与短环之间的关系,对宏环中的每个循环值进行合适的分配,以满足设定的校验矩阵的tanner图上的最小环门限。
[0137]
在本公开的至少一个实施例中,在树形搜索中,采用递归调用的方式,整个搜索分为两种节点的处理:变量节点处理函数和校验节点处理函数。初始时候从根节点调用变量节点处理函数开始处理,因为在树中变量节点的邻居节点是校验节点,在变量节点处理函数里面继续调用校验节点处理函数去处理这个变量节点的邻居节点,而校验节点的邻居节点又是另一个变量节点,因此在校验节点处理函数里面再继续调用变量节点处理函数去处理这个校验节点的邻居节点。如此往复,直到所有源于根节点的宏环都被找到,并对每个宏环分配循环值而形成置换矩阵p,并且使得所有宏环的ecs都满足tanner图上的最小环的需求和外信息自由度的需求。
[0138]
例如,在至少一个示例中,如图13所示的示意图,以基矩阵的原模图中的每个变量节点为根节点展开成一棵树,对该树进行树形搜索以检查是否存在对应于树的宏环,包括:
[0139]
步骤1310,根据基矩阵,建立基矩阵的原模图的变量节点信息和校验节点信息;
[0140]
步骤1320,基于变量节点信息和校验节点信息,建立树形搜索时用于在各个节点之间传递的传递信息组合;
[0141]
步骤1330,设置传递信息组合的初始值,对树进行递归调用以进行树形搜索以检查是否存在对应于树的宏环。
[0142]
例如,变量节点信息和校验节点信息每个包括节点索引、邻居节点的个数以及邻居节点的索引数组。
[0143]
例如,传递信息组合包括根节点索引、父节点索引、当前搜索深度、环节点索引,环节点索引用于记录组成一个环的所有节点的节点索引。再例如,传递信息组合还可以包括校验矩阵的tanner图的最小环门限和校验矩阵的tanner图的外信息自由度的最小门限。
[0144]
例如,在所述树形搜索的过程中,对树中每个当前搜索到的变量节点:如果当前搜索深度已经满足所述校验矩阵的tanner图的最小环门限,则停止所述树形搜索,返回成功标志;如果所述当前搜索深度没有达到所述最小环门限,但是已经在所述树形搜索中发现第一宏环,则使用所述第一宏环的等效循环值ecs对组成所述第一宏环的各个循环值进行检查或者分配,以使得所述校验矩阵的tanner图上的短环满足大于等于所述最小环门限;或者,如果所述当前搜索深度没有达到所述最小环门限,并且在所述树形搜索中发现任何宏环,则继续进行所述树形搜索。
[0145]
例如,在树形搜索的过程中,对树中每个当前搜索到的校验节点:如果当前搜索深度已经满足校验矩阵的tanner图的最小环门限,则停止树形搜索,返回成功标志;如果当前搜索深度没有达到最小环门限,但是已经在树形搜索中发现第二宏环,则使用第二宏环的等效循环值ecs对组成第二宏环的各个循环值进行检查或者分配,以使得校验矩阵的tanner图上的短环满足大于等于最小环门限;或者如果当前搜索深度没有达到最小环门限,并且在树形搜索中发现任何宏环,则继续进行树形搜索。
[0146]
例如,在树形搜索的过程中,对所述树中每个当前搜索到的变量节点还检查是否出现死锁,如果出现死锁,则停止所述树形搜索。
[0147]
使用第一宏环或第二宏环的等效循环值ecs相应地对组成第一宏环或第二宏环的各个循环值进行检查或者分配,包括:如果组成第一宏环或第二宏环的某个循环值还没有分配,则随机在[0,z-1]内选择一个值,如果之后第一宏环或第二宏环的ecs满足最小环门限,则停止树形搜索,返回成功标志;或者,如果组成第一宏环或第二宏环的所有的循环值都已经分配,但是第一宏环的ecs不满足最小环门限,则在第一宏环或第二宏环中选择可被更改的循环值加1并且模z得到新的循环值,然后从根节点开始新一轮搜索,其中,z为提升因子。
[0148]
下面结合具体示例上述码率为1/6、1/4和1/3的情形,对本公开实施例的示例性方法进行说明。
[0149]
获取基矩阵及其原模图,如上所述当码率为1/6、1/4和1/3时,基矩阵的大小分别为20*24、18*24和16*24,遍历该基矩阵,对该基矩阵建立变量节点信息vnode[24]和校验节点信息cnode[nrow],其中,nrow为20、18和16。这里,以下假设基矩阵b为m
×
n维,每个节点(以下以“当前节点”指代)的节点信息nodeinf可以包括如下内容:
[0150][0151]
其中,nodeid表示当前节点的索引,例如,对变量节点而言,索引值取值于[0,n-1],对校验节点而言,索引值取值于[0,m-1];size表示当前节点的邻居节点的个数,也就是原模图中一个节点与其连接的节点个数;index[24]表示当前节点的邻居节点的索引数组,如上所述基矩阵的行列个数最大值为24,所以数组中元素数量最大为24。
[0152]
为了便于进行树形搜索,建立树形搜索时(相邻)节点之间传递的传递信息,该传递信息可以包括如下内容:
[0153][0154]
在原模图中一个宏环(cycle)为从变量节点出发,经搜索前进后又回到这个变量节点,所以树形搜索过程中的初始根节点都是变量节点。反之,以基矩阵的原模图中的每个变量节点为根节点展开成一棵树,对该树进行树形搜索以检查是否存在对应于树的宏环。在进行树形搜索时,在根节点之上的每一级节点需要知道根节点的索引,这样才知道是否已经形成宏环。这里,origvnid表示根节点的索引。
[0155]
parent表示当前节点的父节点,因为在这个节点的邻居节点列表中是有该父节点的,因此在搜索时不再搜索该父节点,这样可以使得搜索方向是单向前进的,同时也避免形成死锁。
[0156]
depth表示当前节点位于树的搜索深度,以确定是否已经达成搜索目标,如果搜索
深度超过下面定义的最小环门限,则可以不再搜索,节约搜索资源,减少搜索时间。
[0157]
cyclethresh表示目标校验矩阵的tanner图的最小环门限,即最短环的长度。如上所述,最短环的长度越长,则译码性能越接近最优算法,可以根据需要的译码性能选择最小环门限以实现译码性能和上述搜索资源与时间的平衡,例如,最小环门限可以为6或更大。
[0158]
emdthresh表示外信息自由度的最小门限。
[0159]
idsincycle例如为长度大于cyclethresh的数组,用于记录组成一个环的所有的节点索引。
[0160]
在另一个示例中,cyclethresh和emdthresh可以作为系统参数被保存和调用,而无需作为传递信息的一部分。例如,cyclethresh可以选择为大于等于6,emdthresh可以选择为大于等于3。
[0161]
在树形搜索的递归调用前,首先设置传递信息的初始值,例如:
[0162][0163]
当以基矩阵的变量节点为根节点进行树形搜索,每个变量节点都会展开成一棵树,所得到的示例性树例如参见图12。在该树中,沿着根节点向上搜索的过程中,在每个节点处通过节点信息可以获知该节点是变量节点还是校验节点,其邻居节点的数量以及具体有哪些节点,同时通过传递信息可以得知当前搜索进行的历史信息。例如,在图12中,根节点与4个校验节点相邻,例如在搜索中采用从右侧邻居节点的开始搜索的方式,则首先搜索右侧第一个校验节点cnx,该校验节点有两个相邻的变量节点vna和vnb,则进一步先搜索右侧的变量节点vna,但该支路到此终止,因此结束该支路的搜索,再返回搜索左侧的变量vnb,但该支路到此终止,因此结束该支路的搜索,此时对于第一个校验节点cnx已经搜索完毕,则再进一步返回对根节点的右侧第二个校验节点cny进行如上所述的方式检查。
[0164]
对每个变量节点(以下以“当前变量节点”指代)的处理如下所述。
[0165]
首先,判断当前变量节点对应的搜索深度depth是否已经满足最小环门限,如果满足depth》cyclethresh,则停止到达该当前变量节点的这条支路的搜索,且返回成功标志。
[0166]
如果搜索深度没有达到最小环门限,即不满足depth》cyclethresh,但是已经通过搜索发现一个宏环(例如这里以“第一宏环”指代),即当前变量节点的索引与根节点的索引origvnid相同,则应用上述等效循环值(ecs)对组成这个宏环的各个节点的循环值进行检查或者分配,以确保对应的校验矩阵的tanner图上的短环满足大于等于cyclethresh。如上所述,这个宏环的各个节点可以通过idsincycle数组获得。接下来对该宏环上的各个循环值进行分配(赋值),如果某个循环值还没有分配,则随机在[0,z-1]内选择一个值,如果在对各个循环值进行分配之后所得到的宏环的ecs满足对应的校验矩阵的tanner图上的最小环的条件,即depth*z/q≥cyclethresh,则停止这条支路搜索,返回成功标志;如果所有的循环值都已经分配,但是所得到的宏环的ecs不满足tanner图上的最小环的条件,即depth*z/q《cyclethresh,则选择将这个宏环中可以更改(校验比特对应的循环值是不能更改的,
而系统比特对应的循环值是可以更改的)的循环值加1并且模z得到新的循环值,例如,将最深搜索深度depth且可以更改的循环值加1并且模z得到新的循环值,然后从第一个变量节点开始新一轮搜索。对于满足对应的校验矩阵的tanner图上的最小环的条件的宏环,则检查对应于该宏环的校验矩阵的tanner图是否满足设定的外信息自由度的最小门限这一条件,即该校验矩阵的tanner图的外信息自由度是否》emdthresh,如果满足,则继续后续操作以保留该对应的置换矩阵,否则例如结束搜索,并且例如可以获取下一个备选的基矩阵并对其进行提升以得到置换矩阵。
[0167]
如果搜索深度没有达到最小环门限,即depth≤cyclethresh,并且没有发现宏环,则将当前变量节点的nodeid加到idsincycle数组中,即idsincycle[depth]=nodeid,将depth加1,对当前变量节点的邻居节点中除了id为parent之外的校验节点逐一进行调用处理,对于校验节点的处理将如下所述。
[0168]
由于在树形搜索过程中会出现死锁的现象,如图13所示,在depth=2时候的变量节点5(vn5)本身存在一个大小为4的宏环(图中虚线所示,依次从节点vn5、节点cn5、节点vn3、节点cn4,在回到节点vn5)。如果在搜索深度depth=6的时候又到达变量节点5时没有将这个宏环剔除掉,则继续搜索将会形成搜索死锁。因此,在每个变量节点都要检查是否已经死锁,如果出现死锁,需要停止树中这一支路的搜索。因为idsincycle已经存储了所有的祖先节点,所以检查死锁变得容易,只要将祖先节点中除了第一个变量节点的变量节点id与当前变量节点id比较即可判断是否存在死锁。
[0169]
对每个校验节点(以下以“当前校验节点”指代)的处理如下所述。
[0170]
首先,判断当前校验节点对应的搜索深度depth是否已经满足最小环门限,如果满足depth》cyclethresh,则停止到达该当前校验节点的这条支路的搜索,且返回成功标志。
[0171]
如果搜索深度没有达到最小环门限,即不满足depth》cyclethresh,但是已经通过搜索发现一个宏环(例如这里以“第二宏环”指代),即当前校验节点的索引与根节点的索引origvnid相同,则应用上述等效循环值(ecs)对组成这个宏环的各个节点的循环值进行检查或者分配,以确保对应的校验矩阵的tanner图上的短环满足大于等于cyclethresh。如上所述,这个宏环的各个节点可以通过idsincycle数组获得。接下来对该宏环上的各个循环值进行分配(赋值),如果某个循环值还没有分配,则随机在[0,z-1]内选择一个值,如果在对各个循环值进行分配之后所得到的宏环的ecs满足对应的校验矩阵的tanner图上的最小环的条件,即depth*z/q≥cyclethresh,则停止这条支路搜索,返回成功标志;如果所有的循环值都已经分配,但是所得到的宏环的ecs不满足tanner图上的最小环的条件,即depth*z/q《cyclethresh,则选择将这个宏环中可以更改(校验比特对应的循环值是不能更改的,而系统比特对应的循环值是可以更改的)的循环值加1并且模z得到新的循环值,例如,将最深搜索深度depth且可以更改的循环值加1并且模z得到新的循环值,然后从第一个变量节点开始新一轮搜索。同样地,对于满足对应的校验矩阵的tanner图上的最小环的条件的宏环,则检查对应于该宏环的校验矩阵的tanner图是否满足设定的外信息自由度的最小门限这一条件,即该校验矩阵的tanner图的外信息自由度是否》emdthresh,如果满足,则继续后续操作以保留该对应的置换矩阵,否则例如结束搜索,并且例如可以获取下一个备选的基矩阵并对其进行提升以得到置换矩阵。
[0172]
如果搜索深度没有达到最小环门限,即depth≤cyclethresh,并且没有发现宏环,
则将当前校验节点的nodeid加到idsincycle数组中,即idsincycle[depth]=nodeid,将depth加1,对当前校验节点的邻居节点中除了id为parent之外的变量节点逐一进行调用处理,对于校验节点的处理如上所述。
[0173]
同样地,在每个校核节点都要检查是否已经死锁,如果出现死锁,需要停止树中这一支路的搜索。因为idsincycle已经存储了所有的祖先节点,所以检查死锁变得容易,只要将祖先节点中除了第一个校核节点的校核节点id与当前校核节点id比较即可判断是否存在死锁。
[0174]
通过如上所述的方式对基矩阵提升后得到符合要求的一个或多个(备选)置换矩阵。
[0175]
在本公开的至少一个实施例中,提供一个或多个置换矩阵,其中,对于1/6码率的置换矩阵,其中,1944码长的置换矩阵如下:
[0176][0177]
1296码长的置换矩阵如下:
[0178]
[0179]
或者,648码长的置换矩阵如下:
[0180][0181]
图14示出了1/6码率上述三种码长的置换矩阵对应的性能,如图所示这三种码长的qc-ldpc码具有优良的性能,例如,可以复用5/6码率的ldpc码的编译码器,具有较低的开发成本。
[0182]
对于1/4码率的置换矩阵,其中,1944码长的置换矩阵如下:
[0183][0184]
1296码长的置换矩阵如下:
[0185][0186]
或者,648码长的置换矩阵如下:
[0187]
图15示出了1/4码率上述三种码长的置换矩阵对应的性能。如图所示这三种码长的qc-ldpc码具有优良的性能,例如,可以复用3/4码率的ldpc码的编译码器,具有较低的开发成本
[0188]
对于1/3码率的置换矩阵,其中,1944码长的置换矩阵如下:
[0189][0190]
1296码长的置换矩阵如下:
[0191][0192]
或者,648码长的置换矩阵如下:
[0193][0194]
图16示出了1/3码率上述三种码长的置换矩阵对应的性能。如图所示这三种码长的qc-ldpc码具有优良的性能,例如,可以复用2/3码率的ldpc码的编译码器,具有较低的开发成本
[0195]
本公开的至少一个实施例提供了一种信道编译码方法,该方法包括:使用qc-ldpc
码的生成矩阵或校验矩阵对码流进行信道编码或信道译码,其中,生成矩阵或校验矩阵的码率为1/6、1/4或1/3。参考图1所示,对于信源编码得到的码流进行信道编码,得到将被进一步调制的码流,或者对解调得到的码流进行信道译码,得到将被进一步信源译码的码流。例如,这些码流包括对象数据和/或控制信令。也即,本公开的至少一实施例相应地提供了一种信道编码方法;本公开的至少一实施例相应地还提供了一种信道译码方法。例如,该方法可以用于无线通信系统中,该无线通信系统可以包括彼此通信的收发装置,这些收发装置例如包括基站、ue等(例如对于移动通信系统),或者这些收发装置包括接入设备(例如无线路由器)和客户端(例如手机、电脑等),这收发装置可以执行上述信道编码方法和/或信道解码方法。例如,该方法使用如上任一实施例所述的构建校验矩阵的方法获取的qc-ldpc码的校验矩阵对码流进行信道编码或信道译码。
[0196]
本公开的至少一个实施例还提供了一种通信方法,该方法包括使用上述信道编译码方法以进行信道编码或信道译码。
[0197]
本公开的至少一个实施例还提供了一种用于信道编译码的处理装置,该装置包括:接收单元和处理单元。该接收单元配置为接收码流;处理单元配置为使用qc-ldpc码的生成矩阵或校验矩阵对码流进行信道编码或信道译码,其中,生成矩阵或校验矩阵的码率为1/6、1/4或1/3。该接收单元和处理单元例如可以通过软件、硬件、固件或这些方式的任意组合实现,例如,通过模拟/数字电路实现。参考图1所示,对于信源编码得到的码流进行信道编码,得到将被进一步调制的码流,或者对解调得到的码流进行信道译码,得到将被进一步信源译码的码流;例如,这些码流包括对象数据和/或控制信令。也即,本公开的至少一实施例相应地提供了一种信道编码装置;本公开的至少一实施例相应地还提供了一种信道译码装置。例如,该用于信道编译码的处理装置可以用于无线通信系统中,该无线通信系统可以包括彼此通信的收发装置,这些收发装置例如包括基站、ue等(例如对于移动通信系统),或者这些收发装置包括接入设备(例如无线路由器)和客户端(例如手机、电脑等),这收发装置可以执行上述信道编码装置和/或信道解码装置。
[0198]
本公开的至少一个实施例还提供了一种通信装置,该装置包括上述信道编译码装置以进行信道编码或信道译码;根据需要,该通信装置还可以进一步包括信源译码装置或信源解码装置,例如包括射频装置等。
[0199]
例如,该信道编译码方法及装置可以用于例如5g nr、wifi、dvb和光通信系统中,本公开的实施例对此不作限制。
[0200]
例如,在生成矩阵或校验矩阵对应的置换矩阵中的系统比特对应的列数为ns,置换矩阵的行数为nrow,
[0201]
对于1/6码率,ns=4,nrow=20;
[0202]
对于1/4码率,ns=6,nrow=18;
[0203]
对于1/3码率,ns=8,nrow=16。
[0204]
例如,置换矩阵的总重范围为79~88;
[0205]
对于1/6码率,基矩阵中每行的行重=5或者4;
[0206]
对于1/4码率,基矩阵中每行的行重=5;
[0207]
对于1/3码率,基矩阵中每行的行重=6或者5。
[0208]
更进一步地,可以使用上述示例性的置换矩阵。
[0209]
本公开的至少一个实施例还提供了用于执行上述基矩阵构建方法、置换矩阵构建方法或编译码方法的处理装置,例如图17示出了根据本公开至少一个实施例提供的处理装置的示意图。
[0210]
如图17所示,该指令流水线的处理装置600包括处理单元610和存储器620,该存储器620上存储有一个或多个计算机程序模块621,每个计算机程序模块包括计算机可执行指令;计算机程序模块621由处理单元610执行时,用于执行上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法,上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法被实现。
[0211]
本公开至少一个实施例提供了一种非瞬时可读存储介质,该非瞬时可读存储介质上存储有计算机指令,该计算机指令被处理器执行时用于执行上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法,上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法被实现。
[0212]
例如,该非瞬时可读存储介质实现为存储器,例如易失性存储器和/或非易失性存储器。上述实施例中存储器可以为易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓存等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。该存储器中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
[0213]
本公开至少一个实施例提供了一种电子装置,该电子装置包括如上任一实施例的用于执行上述基矩阵构建方法、置换矩阵构建方法或编译码方法的处理装置,上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法被实现。
[0214]
例如,在至少一个示例中,该电子装置为处理器。例如,该处理器可以是单核处理器或多核处理器,处理器核包括上述指令流水线的处理装置;例如,该处理器可以是标量处理器或超标量处理器等,本公开的实施例对此不作限制。
[0215]
图18为本公开至少一个实施例提供的一种电子装置700的示意框图。本公开实施例中的电子装置可以包括但不限于诸如无线通信基站、无线接入设备(例如接入点设备)、无线路由器、移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图18示出的电子装置700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0216]
例如,如图18所示,在一些示例中,电子装置700包括处理器(例如中央处理器)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储装置708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理,用于执行上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法等,实现上述任一实施例的基矩阵构建方法、置换矩阵构建方法或编译码方法。在ram 703中,还存储有计算机系统操作所需的各种程序和数据。处理器701、rom 702以及ram 703通过总线704被此相连。输入/输出(i/o)接口705也连接至总线704。
[0217]
例如,以下部件可以连接至i/o接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括诸如液晶显示器(lcd)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;例如还可以包括诸如lan卡、
调制解调器等的网络接口卡的通信装置709。通信装置709可以允许电子装置700与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储装置708。虽然图18示出了包括各种装置的电子装置700,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
[0218]
例如,该电子装置700还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为usb接口、闪电(lighting)接口等。该通信装置709可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(lan)和/或城域网(man)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(gsm)、增强型数据gsm环境(edge)、宽带码分多址(w-cdma)、码分多址(cdma)、时分多址(tdma)、蓝牙、wi-fi(例如基于ieee 802.11a、ieee 802.11b、ieee 802.11g和/或ieee 802.11n标准)、基于因特网协议的语音传输(voip)、wi-max,用于电子邮件、即时消息传递和/或短消息服务(sms)的协议,或任何其他合适的通信协议。
[0219]
例如,电子装置700可以为无线通信基站、无线接入设备(例如接入点设备)、无线路由器、手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
[0220]
对于本公开,还有以下几点需要说明:
[0221]
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
[0222]
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0223]
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1