准循环低密度奇偶校验编码设计方法及装置与流程

文档序号:16462392发布日期:2019-01-02 22:37阅读:252来源:国知局
准循环低密度奇偶校验编码设计方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种准循环低密度奇偶校验编码设计方法及装置。



背景技术:

在相关技术的数字通信系统中,一般包括三个部分:发送端、信道和接收端。发送端可对信息序列进行信道编码从而获取编码码字,对编码码字进行交织,并将交织后的比特映射成调制符号,然后可以根据通信信道信息来处理和发送调制符号。在信道中,由于多径、移动等因素导致特定的信道响应,这些都会使数据传输失真,同时由于噪声和干扰也会进一步恶化数据传输。接收端接收通过信道后的调制符号数据,此时的调制符号数据已经失真,需要进行特定处理才能恢复原始信息序列。

根据发送端对信息序列的编码方法,接收端可以对接收数据进行相应处理从而可靠地恢复原始信息序列。所述的编码方法必须是收发两端都是可见的。一般地,所述编码处理方法是基于前向纠错(forwarderrorcorrection,fec)编码,其中,前向纠错编码在信息序列中添加一些冗余信息。接收端可以利用该冗余信息来可靠地恢复原始信息序列。

一些常见的fec编码包括:卷积码、turbo码和低密度奇偶校验(lowdensityparitycheck,ldpc)码。fec编码过程中,对比特数目为k的信息序列进行fec编码获得n比特的fec编码码字(冗余比特为n-k),fec编码码率为k/n。ldpc码是一种可以用非常稀疏的奇偶校验矩阵或者二分图定义的线性分组码,正是利用它的校验矩阵的稀疏性,才能实现低复杂度的编译码,从而使得ldpc走向实用化。经过各种实践和理论证明,ldpc码是在加性高斯白噪声(additivewhitegaussiannoise,awgn)信道下性能最为优良的信道编码,性能非常靠近香农极限。ldpc码的奇偶校验矩阵中,每一行都是一个奇偶校验码,每一行中如果某一索引位置元素值等于1则说明该比特参与到该奇偶校验码中,如果等于0,则说明该位置比特不参与该奇偶校验码。

准循环ldpc码由于具有结构化特征,逐渐成为主流应用,如在ieee802.11ac、ieee802.11ad、ieee802.11aj、ieee802.16e、ieee802.11n、dvb、微波通信以及光纤通信等中获得大量应用。准循环ldpc码的奇偶校验矩阵h为m×z行和n×z列的矩阵,它是由m×n个子矩阵构成,每个子矩阵都是大小为z×z的基本置换矩阵的不同幂次,也就是大小为z×z单位阵的循环移位若干值所获得的子矩阵。为了从数学上更容易描述单位阵的循环移位,准循环ldpc码的奇偶校验矩阵可以描述为有如下的数学公式形式:

如果hbij==-1,则有是大小为z×z的全零矩阵;否则,是对标准置换矩阵p的非负整数次幂,所述的标准置换矩阵p如下所示:

通过这样定义,z和幂次hbij可以唯一标识每一个分块矩阵,如果某一分块矩阵为全0矩阵,可以用“-1”来表示或者空值表示或者其他形式表示;而如果是单位阵的循环移位s获得,则等于s。所有hbij可以构成一个准循环ldpc编码的基础矩阵hb,进而ldpc码的基础矩阵hb可以表示如下:

基础矩阵hb中包含2种元素:1.指示全零方阵的元素;2.指示单位阵循环移位大小的元素,一般采用0-(z-1)的整数表示。可以将所述基础矩阵hb称为基础校验矩阵或者移位值矩阵或者置换值矩阵,所述基础矩阵hb中,如果将表示为全零矩阵的元素替换为“0”元素,并且将其他元素替换为“1”元素,可以获得准循环ldpc编码的模板矩阵。所以可以根据准循环ldpc码的模板矩阵和一组移位值(或系数)可以确定准循环ldpc编码的基础矩阵。以及,可以将所述基本置换矩阵或全零方阵的维数z定义为提升值(shiftsize或者liftsize)或者扩展因子。

在实际准循环ldpc编码过程中,由于需要多个提升值来支持灵活码长设计,而如果每个提升值对应一个基础矩阵,那么需要存储的基础矩阵会非常多,所以,在准循环ldpc编码过程中,存在一个基础矩阵系数来支持多个提升值所对应的基础矩阵。例如,存在一个基础矩阵系数为hb0,以及所支持的提升值为z0、z1、z2和z3。那么对应于第i个提升值zi的准循环ldpc编码的基础矩阵可以通过对基础矩阵系数的所有非“-1”元素值进行对zi求余或者按比例向下取整获得,使得基础矩阵的非“-1”元素值小于提升值。当获得了对应于zi的基础矩阵后,就可以对待编码的信息比特序列进行准循环ldpc编码。

所以,结构化ldpc码完全可以由基础校验矩阵hb和提升值z唯一确定。例如,基础矩阵hb(2行4列)如下且对应的提升值z等于4。

则对应的模板矩阵为:

则根据基础矩阵hb和提升值z获得奇偶校验矩阵h为:

对于准循环ldpc编码来说,为了使得ldpc译码性能良好,需要引入girth和短圈的概念,其中,短圈为4的定义为:存在4个正整数值{a0,a1,b0,b1},其中对应于基础矩阵中元素为hb(a0,b0)、hb(a0,b1)、hb(a1,b0)和hb(a1,b1)都是非“-1”元素,则定义为短圈为4;以及类似地,存在6个正整数值{a0,a1,a2,b0,b1,b2},其中对应于基础矩阵中元素为hb(a0,b0)、hb(a0,b1)、hb(a1,b1)、hb(a1,b2)、hb(a2,b2)和hb(a2,b0)都是非“-1”元素,则定义为短圈为6;同理,存在8个正整数值{a0,a1,a2,a3,b0,b1,b2,b3},其中对应于基础矩阵中元素为hb(a0,b0)、hb(a0,b1)、hb(a1,b1)、hb(a1,b2)、hb(a2,b2)、hb(a2,b3)、hb(a3,b3)、和hb(a3,b0)都是非“-1”元素,则定义为短圈为8;依次类推,可以定义短圈为10、12等短圈。以及,对应于girth的定义为,如果基础矩阵中所有为4的短圈中只要存在一个短圈不满足mod(hb(a0,b0)-hb(a0,b1)+hb(a1,b0)-hb(a1,b1),z)==0,则认为是girth为4;如果为4的短圈满足mod(hb(a0,b0)-hb(a0,b1)+hb(a1,b0)-hb(a1,b1),z)==0,并且存在至少1个短圈为6的短圈不满足mod(hb(a0,b0)-hb(a0,b1)+hb(a1,b1)-hb(a1,b2)+hb(a2,b2)-hb(a2,b0),z)==0,则定义为girth为6;以及同理girth为8的定义为:不存在girth为4和6的短圈,并且存在至少1个短圈为8的短圈不满足mod(hb(a0,b0)-hb(a0,b1)+hb(a1,b1)-hb(a1,b2)+hb(a2,b2)-hb(a2,b3)+hb(a3,b3)+hb(a3,b0),z)==0,则定义为girth为8。如上示例中的基础矩阵,可以看出是girth为4的矩阵,因为存在短圈为4的girth,如{a0,a1,b0,b1}={1,2,1,3}所确定的4个元素满足mod(hb(a0,b0)-hb(a0,b1)+hb(a1,b0)-hb(a1,b1),z)==0。对于准循环ldpc编码来说,如果girth越大,说明ldpc码字特性越随机,性能越好,而且最小码距越大,从而就越不容易出现错误平层。所以在ldpc码的设计过程中,非常看重准循环ldpc码基础矩阵的girth特性,以及从基础矩阵的girth特性基本可以初步判断所述准循环ldpc编码的性能好坏。但是,对于girth越大的准循环ldpc码基础矩阵的设计难度也越高。

从以上所述的ldpc码奇偶校验矩阵来看,可以知道,奇偶校验矩阵的第1行等于1的元素索引为[169],说明在该结构化ldpc码中,第1比特、第6比特和第9比特构成一个奇偶校验码;同理,第2行中等于1的索引为[2710],则第2比特、第7比特和第10比特构成一个奇偶校验码;依此类推,可以知道ldpc码其实就是很多歌奇偶校验码堆积起来的码字。根据以上所述的准循环ldpc编码定义,由于奇偶校验矩阵的每一行对应一个奇偶校验编码,所以奇偶校验矩阵的行数必然等于奇偶校验矩阵的列数,这样才可以进行有效编码。如上所述的奇偶校验矩阵,前8(2×z=2×4)列为奇偶校验矩阵的系统列,后8(2×z=2×4)列为奇偶校验矩阵的校验列。同理,在基础矩阵中,基础矩阵的行数等于基础矩阵的校验列数,如上所述示例的准循环ldpc码的基础矩阵,前2列是系统列,后2列是校验列,基础矩阵的行数正好等于基础矩阵的校验列数。在准循环ldpc编码过程中,可以直接根据由基础矩阵hb和提升值z确定的奇偶校验矩阵进行编码,根据ldpc码的定义,h×c=0,而h包括[hshp],其中hs是奇偶校验矩阵的系统列部分矩阵,hp是奇偶校验矩阵的校验列部分矩阵,以及c可以包括[cscp],其中cs是ldpc码的系统比特序列(信息比特,已知比特),cp是ldpc码的校验比特序列(未知比特),ldpc编码过程即是计算校验比特序列的过程;进而,hs×cs=hp×cp;然后,可以计算获得校验比特序列为cp=hp-1×hs×cs,所以奇偶校验矩阵的校验列部分矩阵必须是方阵而且是二进制可逆;从而可以获得准循环ldpc编码序列为[cscp]。当然,也可以根据每个z比特块的循环移位进行处理计算获得。

ldpc码在译码时,一般采用分层译码,即采用行并行译码方法,相比于全并行译码可以大大降低迭代次数(约只要一般迭代次数)。如上所述的结构化ldpc码的奇偶校验矩阵有8行(扩展因子z=4,有2行和4列),说明有8个奇偶校验码或者说8个校验方程,在译码时,需要每个奇偶校验码分别译码,如果所有8个奇偶校验码都更新数据完则为一个迭代。而在如果采用分层译码的行或者部分并行中,每次迭代过程中,如并行度为p,即有p个奇偶校验码同时更新,则迭代中当前和下一个p个奇偶校验码运行都是采用同一个更新模块(奇偶校验码更新模块),则译码器的复杂度要低很多,而且分层译码中下一层的数据更新可以采用当前已经更新好的数据,所以需要的迭代次数更低,译码吞吐量要高一些。如以上所示的h,如果并行度为2,则奇偶校验矩阵的每4行(对应于基础校验矩阵的一行)有2个并行度的奇偶校验码同时更新。

因此,准循环ldpc编码设计中,基础矩阵设计非常重要,如果设计不好,会使得准循环ldpc编码的性能非常差以及出现错误平层(errorfloor),针对相关技术中的准循环ldpc码的出现性能较差等设计困难问题,目前对基础矩阵的设计,尚未存在有效的解决方案。



技术实现要素:

本发明实施例提供了一种准循环低密度奇偶校验编码设计方法及装置,以至少解决相关技术中的准循环ldpc码的性能较差问题。

根据本发明的一个实施例,提供了一种准循环低密度奇偶校验编码设计方法,包括:依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列;其中,所述奇偶校验矩阵由基础矩阵和提升值z确定,并且所述基础矩阵由所述提升值z和系数矩阵确定,所述k是正整数,n是大于k的整数,z是正整数。

可选地,存在一个提升值集合zset,其中所述提升值z是所述提升值集合zset的一个元素;存在a个提升值子集合,分别为zseti,i=1,2,3,…,a,其中,所述a个提升值子集合的所有元素构成所述提升值集合zset,所述a个提升值子集合之间无交集;存在一个系数矩阵集合,其中所述系数矩阵是所述系数矩阵集合的一个系数矩阵,所述系数矩阵集合中第i个系数矩阵所支持的所有提升值构成所述第i个提升值子集合zseti;

其中,所述系数矩阵集合包括a个系数矩阵,所述a是大于1的整数,所述a个系数矩阵具有相同的行数目和相同的列数目,所述a个系数矩阵中都具有相同的非“-1”元素位置,所述提升值集合zset中所有元素都是正整数。

可选地,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有基础矩阵的奇偶校验矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0seti,所述集合z0seti中属于第i个提升值子集合zseti的元素个数为l0i,所述集合z0seti中不属于第i个提升值子集合zseti的元素个数为l1i,其中,所述l0i是小于或等于li的正整数,li是所述第i个提升值子集合zseti的元素个数,其中,l1i≥2,或l1i≥3,或l1i≥4,或l1i≥5,或l1i≥6,或l1i≥7,或l1i≥8,或l1i≥9,或l1i≥10,或l1i≥11。

可选地,存在一个第一系数矩阵集合,所述第一系数矩阵集合中的所有系数矩阵具有相同的行数目和相同的列数目,并且所述第一系数矩阵集合中的任一系数矩阵与所述系数矩阵集合的系数矩阵具有相同的行数目和相同的列数目。

可选地,所述系数矩阵集合中至少包括所述第一系数矩阵集合中的一个系数矩阵。

可选地,所述系数矩阵集合中至少包括所述第一系数矩阵集合中一个调整后的系数矩阵。

可选地,所述调整后的系数矩阵的第s行从第1元素到第kb+m元素中所有非“-1”元素值等于调整前的系数矩阵的从第s行第1元素到第kb+m元素中所有非“-1”元素值加上rs后并对zmax求余所获得的所有整数值,其中,s=1,2,3,…,row,rs是对应于第s行所加的整数值,r0,r1,…,r(row)中至少存在一个非零整数;或者,

所述调整后的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值等于调整前的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值加上ct后并对zmax求余所获得的所有整数值,其中,t=1,2,3,…,col,ct是对应于第t列所加的整数值,c0,c1,…,c(col)中至少存在一个非零整数;

其中,row是所述系数矩阵的行数,col是所述系数矩阵的列数,kb等于col与row的差值,m是小于10的非负整数,所述zmax是所述调整后的系数矩阵所支持的最大提升值,zmax是正整数。

可选地,所述调整后的系数矩阵中第s行第t列元素值等于调整前的系数矩阵的第s行第t列元素值加上(xs+yt)后并对zmax求余所获得的整数值;

其中,所述调整前的系数矩阵中第s行第t列元素值是非“-1”元素,s=1,2,3,…,row,t=1,2,3,…,kb+m,kb等于col与row的差值,所述row是所述系数矩阵的行数,所述col是所述系数矩阵的列数,m是小于10的非负整数,xs和yt都是整数,并且,x0,x1,…,x(row)和y0,y1,…,y(kb+m)中至少存在一个非零整数。

可选地,所述a等于8,并且所述8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192}、zset3={5,10,20,40,80,160}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144}、zset6={11,22,44,88,176}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选地,所述集合z0seti分别为:z0set1={56,80,104,112,120,128,160,176,192,208,224,240,256},z0set2={44,48,72,88,96,144,160,176,192,208,224,240,256},z0set3={60,80,120,128,160,208,224,240,256},z0set4={56,60,104,112,120,128,192,208,224,240,256},z0set5={72,128,144,160,176,192,224,240,256},z0set6={88,96,104,128,176,192,208,224,240,256},z0set7={26,52,80,104,144,160,176,192,208,224,240},z0set8={30,60,112,120,144,160,208,224,240,256}。

可选地,所述a等于8,并且所述8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选地,所述集合z0seti分别为:z0set1={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,288,320,352,384},z0set2={12,24,36,48,60,72,96,120,144,192,240,256,288,352,384},z0set3={20,40,60,80,120,160,240,320,352},z0set4={56,112,224,288,352,384},z0set5={18,36,72,144,176,192,288,352,384},z0set6={22,44,88,176,256,320,352,384},z0set7={13,26,52,104,176,208,224,240,256,288,320,352,384},z0set8={30,60,120,240,320,352}。

可选地,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有对应于准循环ldpc编码码率为rate0的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set0i,对应于准循环ldpc编码码率为rate1的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set1i,其中,rate0小于rate1,存在所述集合z0set0i的元素数目小于或等于所述集合z0set1i的元素数目,rate0和rate1都是大于0小于1的实数,所述集合z0set0i和所述集合z0set1i是非空集合。

可选地,所述第一系数矩阵集合中至少包括以下42行52列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

可选地,所述第一系数矩阵集合中至少包括以下46行68列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

根据本发明的另一个实施例,提供了一种准循环低密度奇偶校验编码设计装置,包括:准循环低密度奇偶校验ldpc编码模块,用于依据准循环ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列;其中,所述奇偶校验矩阵由基础矩阵和提升值z确定,并且所述基础矩阵由所述提升值z和系数矩阵确定,所述k是正整数,n是大于k的整数,z是正整数。

可选的,所述装置还包括:第一存储模块,用于存储一个提升值集合zset,其中所述提升值z是所述提升值集合zset的一个元素;存在a个提升值子集合,分别为zseti,i=1,2,3,…,a,其中,所述a个提升值子集合的所有元素构成所述提升值集合zset,所述a个提升值子集合之间无交集;第二存储模块,用于存储一个系数矩阵集合,其中所述系数矩阵是所述系数矩阵集合的一个系数矩阵,所述系数矩阵集合中第i个系数矩阵所支持的所有提升值构成所述第i个提升值子集合zseti;其中,所述系数矩阵集合包括a个系数矩阵,所述a是大于1的整数,所述a个系数矩阵具有相同的行数目和相同的列数目,所述a个系数矩阵中都具有相同的非“-1”元素位置,所述提升值集合zset中所有元素都是正整数。

可选的,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有基础矩阵的奇偶校验矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0seti,所述集合z0seti中属于第i个提升值子集合zseti的元素个数为l0i,所述集合z0seti中不属于第i个提升值子集合zseti的元素个数为l1i,其中,所述l0i是小于或等于li的正整数,li是所述第i个提升值子集合zseti的元素个数,其中,l1i≥2,或l1i≥3,或l1i≥4,或l1i≥5,或l1i≥6,或l1i≥7,或l1i≥8,或l1i≥9,或l1i≥10,或l1i≥11。

可选的,存在一个第一系数矩阵集合,所述第一系数矩阵集合中的所有系数矩阵具有相同的行数目和相同的列数目,并且所述第一系数矩阵集合中的任一系数矩阵与所述第二存储模块中所存储的系数矩阵集合的系数矩阵具有相同的行数目和相同的列数目。

可选的,所述第二存储模块中所存储的系数矩阵集合中至少包括所述第一系数矩阵集合中的一个系数矩阵。

可选的,所述第二存储模块中所存储的系数矩阵集合中至少包括所述第一系数矩阵集合中一个调整后的系数矩阵。

可选的,所述调整后的系数矩阵的第s行从第1元素到第kb+m元素中所有非“-1”元素值等于调整前的系数矩阵的从第s行第1元素到第kb+m元素中所有非“-1”元素值加上rs后并对zmax求余所获得的所有整数值,其中,s=1,2,3,…,row,rs是对应于第s行所加的整数值,r0,r1,…,r(row)中至少存在一个非零整数;或者,所述调整后的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值等于调整前的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值加上ct后并对zmax求余所获得的所有整数值,其中,t=1,2,3,…,col,ct是对应于第t列所加的整数值,c0,c1,…,c(col)中至少存在一个非零整数;其中,row是所述系数矩阵的行数,col是所述系数矩阵的列数,kb等于col与row的差值,m是小于10的非负整数,所述zmax是所述调整后的系数矩阵所支持的最大提升值,zmax是正整数。

可选的,所述调整后的系数矩阵中第s行第t列元素值等于调整前的系数矩阵的第s行第t列元素值加上(xs+yt)后并对zmax求余所获得的整数值;其中,所述调整前的系数矩阵中第s行第t列元素值是非“-1”元素,s=1,2,3,…,row,t=1,2,3,…,kb+m,kb等于col与row的差值,所述row是所述系数矩阵的行数,所述col是所述系数矩阵的列数,m是小于10的非负整数,xs和yt都是整数,并且,x0,x1,…,x(row)和y0,y1,…,y(kb+m)中至少存在一个非零整数。

可选的,所述a等于8,并且所述8个提升值子集合分别为:

zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192}、zset3={5,10,20,40,80,160}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144}、zset6={11,22,44,88,176}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选的,所述集合z0seti分别为:z0set1={56,80,104,112,120,128,160,176,192,208,224,240,256},z0set2={44,48,72,88,96,144,160,176,192,208,224,240,256},z0set3={60,80,120,128,160,208,224,240,256},z0set4={56,60,104,112,120,128,192,208,224,240,256},z0set5={72,128,144,160,176,192,224,240,256},z0set6={88,96,104,128,176,192,208,224,240,256},z0set7={26,52,80,104,144,160,176,192,208,224,240},z0set8={30,60,112,120,144,160,208,224,240,256}。

可选的,所述a等于8,并且所述8个提升值子集合分别为:

zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选的,所述集合z0seti分别为:z0set1={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,288,320,352,384},z0set2={12,24,36,48,60,72,96,120,144,192,240,256,288,352,384},z0set3={20,40,60,80,120,160,240,320,352},z0set4={56,112,224,288,352,384},z0set5={18,36,72,144,176,192,288,352,384},z0set6={22,44,88,176,256,320,352,384},z0set7={13,26,52,104,176,208,224,240,256,288,320,352,384},z0set8={30,60,120,240,320,352}。

可选的,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有对应于编码码率为rate0的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set0i,并且对应于编码码率为rate1的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set1i,其中,rate0小于rate1,存在所述集合z0set0i的元素数目小于或等于所述集合z0set1i的元素数目,rate0和rate1都是大于0且小于1的实数,所述集合z0set0i和所述集合z0set1i都是非空集合。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:

依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列;

其中,所述奇偶校验矩阵由基础矩阵和提升值z确定,并且所述基础矩阵由所述提升值z和系数矩阵确定,所述k是正整数,n是大于k的整数,z是正整数。

通过本发明,依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,解决了相关技术中的准循环ldpc码的性能较差问题,从而有效提高准循环ldpc编码性能。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的准循环低密度奇偶校验编码设计方法的流程图;

图2是根据本发明实施例的准循环低密度奇偶校验编码设计装置的结构框图;

图3是发明示例1的准循环低密度奇偶校验编码设计方法流程图;

图4是发明示例2的准循环低密度奇偶校验编码设计装置的结构图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

在本实施例中提供了一种准循环低密度奇偶校验编码设计方法,图1是根据本发明实施例的准循环低密度奇偶校验编码设计方法的流程图,如图1所示,该流程包括如下步骤:

步骤s102,由基础矩阵系数和提升值z确定奇偶校验矩阵;

步骤s104,依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列;

其中,k是正整数,n是大于k的整数,z是正整数。

通过上述步骤,依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,解决了相关技术中的准循环ldpc码的性能较差问题,从而有效提高准循环ldpc编码性能。

可选地,本实施例还存在一个提升值集合zset,其中所述提升值z是所述提升值集合zset的一个元素;存在a个提升值子集合,分别为zseti,i=1,2,3,…,a,其中,所述a个提升值子集合的所有元素构成所述提升值集合zset,所述a个提升值子集合之间无交集;存在一个系数矩阵集合,其中所述系数矩阵是所述系数矩阵集合的一个系数矩阵,所述系数矩阵集合中第i个系数矩阵所支持的所有提升值构成所述第i个提升值子集合zseti;其中,所述系数矩阵集合包括a个系数矩阵,所述a是大于1的整数,所述a个系数矩阵具有相同的行数目和相同的列数目,所述a个系数矩阵中都具有相同的非“-1”元素位置,所述提升值集合zset中所有元素都是正整数。

可选地,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有基础矩阵的奇偶校验矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0seti,所述集合z0seti中属于第i个提升值子集合zseti的元素个数为l0i,所述集合z0seti中不属于第i个提升值子集合zseti的元素个数为l1i,其中,所述l0i是小于或等于li的正整数,li是所述第i个提升值子集合zseti的元素个数,其中,l1i≥2,或l1i≥3,或l1i≥4,或l1i≥5,或l1i≥6,或l1i≥7,或l1i≥8,或l1i≥9,或l1i≥10,或l1i≥11。

可选地,存在一个第一系数矩阵集合,所述第一系数矩阵集合中的所有系数矩阵具有相同的行数目和相同的列数目,并且所述第一系数矩阵集合中的任一系数矩阵与所述系数矩阵集合的系数矩阵具有相同的行数目和相同的列数目。

可选地,所述系数矩阵集合中至少包括所述第一系数矩阵集合中的一个系数矩阵。

可选地,所述系数矩阵集合中至少包括所述第一系数矩阵集合中一个调整后的系数矩阵。

可选地,所述调整后的系数矩阵的第s行从第1元素到第kb+m元素中所有非“-1”元素值等于调整前的系数矩阵的从第s行第1元素到第kb+m元素中所有非“-1”元素值加上rs后并对zmax求余所获得的所有整数值,其中,s=1,2,3,…,row,rs是对应于第s行所加的整数值,r0,r1,…,r(row)中至少存在一个非零整数;或者,所述调整后的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值等于调整前的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值加上ct后并对zmax求余所获得的所有整数值,其中,t=1,2,3,…,col,ct是对应于第t列所加的整数值,c0,c1,…,c(col)中至少存在一个非零整数;其中,row是所述系数矩阵的行数,col是所述系数矩阵的列数,kb等于col与row的差值,m是小于10的非负整数,所述zmax是所述调整后的系数矩阵所支持的最大提升值,zmax是正整数。

可选地,所述调整后的系数矩阵中第s行第t列元素值等于调整前的系数矩阵的第s行第t列元素值加上(xs+yt)后并对zmax求余所获得的整数值;其中,所述调整前的系数矩阵中第s行第t列元素值是非“-1”元素,s=1,2,3,…,row,t=1,2,3,…,kb+m,kb等于col与row的差值,所述row是所述系数矩阵的行数,所述col是所述系数矩阵的列数,m是小于10的非负整数,xs和yt都是整数,并且,x0,x1,…,x(row)和y0,y1,…,y(kb+m)中至少存在一个非零整数。所述对系数矩阵同一行中所有非“-1”元素加相同整数和/或同一列中所有非“-1”元素加相同整数,相当于对准循环ldpc码进行交织,不影响准循环ldpc编码的girth特性和码距特性,所以不影响准循环ldpc码的性能;而所述行或列上所有非“-1”元素同时加相同整数的有益效果在于:可以使得准循环ldpc码的基础矩阵具有一定特性,如“0”元素比较多,由于其相当于没有进行循环移位,所以可以减少编码和译码的复杂度,并且不影响译码性能;而且在特定情况下,可能会提高准循环ldpc码的性能,如进行比特选择中没有完全选择提升值z的整数倍的ldpc编码序列时,可以根据不同交织情况选择性能较好的所述相同整数进行调整。

可选地,所述a等于8,并且所述8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192}、zset3={5,10,20,40,80,160}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144}、zset6={11,22,44,88,176}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选地,所述集合z0seti分别为:z0set1={56,80,104,112,120,128,160,176,192,208,224,240,256},z0set2={44,48,72,88,96,144,160,176,192,208,224,240,256},z0set3={60,80,120,128,160,208,224,240,256},z0set4={56,60,104,112,120,128,192,208,224,240,256},z0set5={72,128,144,160,176,192,224,240,256},z0set6={88,96,104,128,176,192,208,224,240,256},z0set7={26,52,80,104,144,160,176,192,208,224,240},z0set8={30,60,112,120,144,160,208,224,240,256}。

可选地,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有对应于准循环ldpc编码码率为rate0的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set0i,对应于准循环ldpc编码码率为rate1的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set1i,其中,rate0小于rate1,存在所述集合z0set0i的元素数目小于或等于所述集合z0set1i的元素数目,rate0和rate1都是大于0小于1的实数,所述集合z0set0i和所述集合z0set1i是非空集合。

可选地,在一个实施方式中,所述第一系数矩阵集合中至少包括以下42行52列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

其中,所述系数矩阵i所支持的所有提升值对应于所述提升值子集合zseti,i=1,2,3,…,8;并且,所述第i个集合z0seti所对应的系数矩阵为系数矩阵i,i=1,2,3,…,8。

另外一个可选实施方式中,所述第一系数矩阵集合中至少包括以下42行52列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

其中,所述系数矩阵i所支持的所有提升值对应于所述提升值子集合zseti,i=1,2,3,…,8;并且,所述第i个集合z0seti所对应的系数矩阵为系数矩阵i,i=1,2,3,…,8。所述的8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192}、zset3={5,10,20,40,80,160}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144}、zset6={11,22,44,88,176}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

在另外一个实施方式中,可选地,所述a等于8,并且所述8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选地,所述集合z0seti分别为:z0set1={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,288,320,352,384},z0set2={12,24,36,48,60,72,96,120,144,192,240,256,288,352,384},z0set3={20,40,60,80,120,160,240,320,352},z0set4={56,112,224,288,352,384},z0set5={18,36,72,144,176,192,288,352,384},z0set6={22,44,88,176,256,320,352,384},z0set7={13,26,52,104,176,208,224,240,256,288,320,352,384},z0set8={30,60,120,240,320,352}。

所述第一系数矩阵集合中至少包括以下46行68列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

其中,所述系数矩阵i所支持的所有提升值对应于所述提升值子集合zseti,i=1,2,3,…,8;并且,所述第i个集合z0seti所对应的系数矩阵为系数矩阵i,i=1,2,3,…,8。

另外一个可选实施方式中,所述第一系数矩阵集合中至少包括以下46行68列的系数矩阵之一:

系数矩阵1:

系数矩阵2:

系数矩阵3:

系数矩阵4:

系数矩阵5:

系数矩阵6:

系数矩阵7:

系数矩阵8:

其中,所述系数矩阵i所支持的所有提升值对应于所述提升值子集合zseti,i=1,2,3,…,8;并且,所述第i个集合z0seti所对应的系数矩阵为系数矩阵i,i=1,2,3,…,8。所述8个提升值子集合分别为:zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种准循环低密度奇偶校验编码设计装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本发明实施例的准循环低密度奇偶校验编码设计装置的结构框图,如图2所示,该装置包括:

准循环ldpc编码模块20,用于依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列;

其中,所述奇偶校验矩阵由基础矩阵系数和提升值z确定,k是正整数,n是大于k的整数,z是正整数。

可选的,所述装置还包括:第一存储模块,用于存储一个提升值集合zset,其中所述提升值z是所述提升值集合zset的一个元素;存在a个提升值子集合,分别为zseti,i=1,2,3,…,a,其中,所述a个提升值子集合的所有元素构成所述提升值集合zset,所述a个提升值子集合之间无交集;第二存储模块,用于存储一个系数矩阵集合,其中所述系数矩阵是所述系数矩阵集合的一个系数矩阵,所述系数矩阵集合中第i个系数矩阵所支持的所有提升值构成所述第i个提升值子集合zseti;

其中,所述系数矩阵集合包括a个系数矩阵,所述a是大于1的整数,所述a个系数矩阵具有相同的行数目和相同的列数目,所述a个系数矩阵中都具有相同的非“-1”元素位置,所述提升值集合zset中所有元素都是正整数。

可选的,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有基础矩阵的奇偶校验矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0seti,所述集合z0seti中属于第i个提升值子集合zseti的元素个数为l0i,所述集合z0seti中不属于第i个提升值子集合zseti的元素个数为l1i,其中,所述l0i是小于或等于li的正整数,li是所述第i个提升值子集合zseti的元素个数,其中,l1i≥2,或l1i≥3,或l1i≥4,或l1i≥5,或l1i≥6,或l1i≥7,或l1i≥8,或l1i≥9,或l1i≥10,或l1i≥11。

可选的,存在一个第一系数矩阵集合,所述第一系数矩阵集合中的所有系数矩阵具有相同的行数目和相同的列数目,并且所述第一系数矩阵集合中的任一系数矩阵与所述第二存储模块中所存储的系数矩阵集合的系数矩阵具有相同的行数目和相同的列数目。

可选的,所述第二存储模块中所存储的系数矩阵集合中至少包括所述第一系数矩阵集合中的一个系数矩阵。

可选的,所述第二存储模块中所存储的系数矩阵集合中至少包括所述第一系数矩阵集合中一个调整后的系数矩阵。

可选的,所述调整后的系数矩阵的第s行从第1元素到第kb+m元素中所有非“-1”元素值等于调整前的系数矩阵的从第s行第1元素到第kb+m元素中所有非“-1”元素值加上rs后并对zmax求余所获得的所有整数值,其中,s=1,2,3,…,row,rs是对应于第s行所加的整数值,r0,r1,…,r(row)中至少存在一个非零整数;或者,所述调整后的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值等于调整前的系数矩阵的第t列从第1元素到第row元素中所有非“-1”元素值加上ct后并对zmax求余所获得的所有整数值,其中,t=1,2,3,…,col,ct是对应于第t列所加的整数值,c0,c1,…,c(col)中至少存在一个非零整数;其中,row是所述系数矩阵的行数,col是所述系数矩阵的列数,kb等于col与row的差值,m是小于10的非负整数,所述zmax是所述调整后的系数矩阵所支持的最大提升值,zmax是正整数。

可选的,所述调整后的系数矩阵中第s行第t列元素值等于调整前的系数矩阵的第s行第t列元素值加上(xs+yt)后并对zmax求余所获得的整数值;其中,所述调整前的系数矩阵中第s行第t列元素值是非“-1”元素,s=1,2,3,…,row,t=1,2,3,…,kb+m,kb等于col与row的差值,所述row是所述系数矩阵的行数,所述col是所述系数矩阵的列数,m是小于10的非负整数,xs和yt都是整数,并且,x0,x1,…,x(row)和y0,y1,…,y(kb+m)中至少存在一个非零整数。

可选的,所述a等于8,并且所述8个提升值子集合分别为:

zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192}、zset3={5,10,20,40,80,160}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144}、zset6={11,22,44,88,176}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选的,所述集合z0seti分别为:z0set1={56,80,104,112,120,128,160,176,192,208,224,240,256},z0set2={44,48,72,88,96,144,160,176,192,208,224,240,256},z0set3={60,80,120,128,160,208,224,240,256},z0set4={56,60,104,112,120,128,192,208,224,240,256},z0set5={72,128,144,160,176,192,224,240,256},z0set6={88,96,104,128,176,192,208,224,240,256},z0set7={26,52,80,104,144,160,176,192,208,224,240},z0set8={30,60,112,120,144,160,208,224,240,256}。

可选的,所述a等于8,并且所述8个提升值子集合分别为:

zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。

可选的,所述集合z0seti分别为:z0set1={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,288,320,352,384},z0set2={12,24,36,48,60,72,96,120,144,192,240,256,288,352,384},z0set3={20,40,60,80,120,160,240,320,352},z0set4={56,112,224,288,352,384},z0set5={18,36,72,144,176,192,288,352,384},z0set6={22,44,88,176,256,320,352,384},z0set7={13,26,52,104,176,208,224,240,256,288,320,352,384},z0set8={30,60,120,240,320,352}。

可选的,所述提升值集合zset中所有提升值分别与所述系数矩阵集合中第i个系数矩阵所确定的所有对应于编码码率为rate0的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set0i,并且对应于编码码率为rate1的基础矩阵中满足girth大于或等于6所对应的所有提升值构成集合z0set1i,其中,rate0小于rate1,存在所述集合z0set0i的元素数目小于或等于所述集合z0set1i的元素数目,rate0和rate1都是大于0且小于1的实数,所述集合z0set0i和所述集合z0set1i都是非空集合。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本实施例是根据本发明的可选实施例,用于对本申请进行补充和详细说明,包括以下示例:

示例1

根据本发明实施例,提供了一种准循环低密度奇偶校验编码设计方法的示例,图3是发明示例1的准循环低密度奇偶校验编码设计方法流程图,如图3所示,包括:

步骤302,由待编码信息序列的长度k确定准循环ldpc编码的提升值z;

步骤304,由确定好的提升值z从系数矩阵集合中选择准循环ldpc编码使用的系数矩阵;

步骤306,依据所述提升值z和所述确定好的系数矩阵获得对应于所述提升值z的基础矩阵,所属基础矩阵是一个mb行nb列的矩阵,并且所述基础矩阵的最大系统列为kbmax=nb-mb;

步骤308,依据所述基础矩阵和所述提升值z获取准循环ldpc编码的奇偶校验矩阵,依据所述奇偶校验矩阵对待编码信息序列进行编码,获得n比特的ldpc编码序列,其中,k是正整数,n是大于k的整数,z是正整数。

具体地,所述步骤302中,由待编码信息序列的长度k确定准循环ldpc编码的提升值z,包括:在提升值集合zset中选择大于或等于k/kb的一个最小提升值作为当前准循环ldpc编码所用的提升值,其中,kb是对应于所述待编码信息序列长度k的所确定的最大系统列,其中kb小于或等于所述基础矩阵的最大系统列为kbmax;如此操作的有益效果在于,可以使得准循环ldpc编码填充比特最少,从可以确保性能不损失。

所述步骤304中,系数矩阵集合包括a=8个系数矩阵,并且所述8个系数矩阵各自所支持的提升值无交集,所以根据以上所确定的提升值z即可确定需要的系数矩阵对应于其在系数矩阵集合中的索引,从而可以根据所属索引从系数矩阵集合中确定当前ldpc编码所使用的系数矩阵。

所述步骤306中,依据确定好的系数矩阵,以及结合所确定提升值z,可以通过计算获得对应于提升值z的基础矩阵,优选地,所述计算方法可以采用如下所述的计算公式获得:kb,其中,vi,j是对应于提升值z的系数矩阵中第i行第j列元素值,并且所述的vi,j是非“-1”元素,pi,j是对应于提升值z的基础矩阵中第i行第j列元素值,函数f(a,b)是求余(或求模)操作,即整数值a对整数值b求余,例如,a=5,b=10,则f(a,b)=5;a=39,b=32,则f(a,b)=7。

另外所述计算公式也可以是向下取整操作,例如:pi,j=f(vi,j,z,zmax)=floor(vi,j×z/zmax),此时pi,j与3个变量有关:vi,j,z和zmax。所以可以发现,所述获取的系数矩阵其实就是对应于zmax的基础矩阵,所述的zmax是对应系数矩阵所支持的最大提升值。

所述步骤308中,根据以上所述获取的基础矩阵和提升值z即可以获得准循环ldpc编码的奇偶校验矩阵,根据奇偶校验矩阵即可对长度为k的待编码信息比特序列进行编码获取ldpc编码序列。在准循环ldpc编码之前,需要对所述待编码信息序列填充kb×z-k比特的亚元比特,使得待编码信息序列长度达到kb×z比特,然后对所述kb×z比特的填充后的信息序列进行准循环ldpc编码,可以获得长度为nb×z比特的原始ldpc编码序列,然后对所述原始ldpc编码序列进行比特选择,获取对应码率的长度为n比特的ldpc编码序列,其中比特选择方法为从从第z×2+1比特开始进行选择,当碰到填充比特跳过,循环选择出n比特的ldpc编码序列。其中,所述填充的kb×z-k比特的亚元比特是用于辅助编码,对于首发两端都是已知信息,所以不需要发送这些比特。所述编码过程中不一定要通过奇偶校验矩阵来进行准循环ldpc编码,由于准循环ldpc编码构造非常有规律,结构性很强,所以可以直接通过基础矩阵和提升值对待编码序列进行编码。

更为具体地例子,系数矩阵集合如实施例1中的46行68列的8个系数矩阵,对应所支持的提升值子集合分别为zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。所有提升值子集合的所有元素构成提升值集合zset={zset1,zset2,zset3,zset4,zset5,zset6,zset7,zset8}。其中系数矩阵1所对应的提升值子集合为zset1,系数矩阵2所对应的提升值子集合为zset2,系数矩阵3所对应的提升值子集合为zset3,…,系数矩阵8所对应的提升值子集合为zset8。根据系数矩阵的行数目mb=46和列数目nb=68,可以知道kbmax=68-46=22,本例子中kb=kbmax=22。

如对待编码信息序列长度为k=6000比特的进行ldpc编码,编码输出长度为n=12000比特的ldpc编码序列。具体包括如下步骤:

1、从提升值集合zset中选择大于或等于k/kb=6000/22的最小提升值,可以发现满足条件的是z=288;

2、由以上所确定提升值z=288,可以知道其属于zset5,其对应于系数矩阵索引为5,从所述系数矩阵集合中选择第5个系数矩阵作为对应于提升值z的系数矩阵;

3、依据所述提升值z和所述确定好的系数矩阵获得对应于所述提升值z的基础矩阵,其中,通过以上所述的求余计算公式获得对应z=288的基础矩阵,由于提升值z=288已经是所述第5个提升值子集合的最大值,所以所述基础矩阵等于所述系数矩阵,所述基础矩阵是一个mb=46行nb=68列的矩阵;

4、由于以上所获取的基础矩阵的系统列数目为22列,即在进行准循环ldpc编码时需要填充22×288-6000=336比特的亚元比特,使得待编码信息序列长度变为22×288=6336比特。依据所述基础矩阵和所述提升值z=288获取准循环ldpc编码的奇偶校验矩阵,依据所述奇偶校验矩阵对待编码信息序列进行编码获得nb×z=19584比特的原始ldpc编码序列,从所述原始ldpc编码序列中选择n=12000比特的ldpc编码序列。

示例2

根据本发明实施例,提供了一种准循环低密度奇偶校验编码设计装置的示例,图4是发明示例2的准循环低密度奇偶校验编码设计装置的结构图,如图,4所示,包括:

确定模块40,用于由待编码信息序列的长度k确定准循环ldpc编码的提升值z;

选择模块42,用于由确定好的提升值z从系数矩阵集合中选择准循环ldpc编码使用的系数矩阵;

获得模块44,用于依据所述提升值z和所述确定好的系数矩阵获得对应于所述提升值z的基础矩阵,所属基础矩阵是一个mb行nb列的矩阵,并且所述基础矩阵的最大系统列为kbmax=nb-mb;

处理模块46,用于依据所述基础矩阵和所述提升值z获取准循环ldpc编码的奇偶校验矩阵,依据所述奇偶校验矩阵对待编码信息序列进行编码,获得n比特的ldpc编码序列,其中,k是正整数,n是大于k的整数,z是正整数。

具体地,所述确定模块40中,由待编码信息序列的长度k确定准循环ldpc编码的提升值z,包括:在提升值集合zset中选择大于或等于k/kb的一个最小提升值作为当前准循环ldpc编码所用的提升值,其中,kb是对应于所述待编码信息序列长度k的所确定的最大系统列,其中kb小于或等于所述基础矩阵的最大系统列为kbmax;如此操作的有益效果在于,可以使得准循环ldpc编码填充比特最少,从可以确保性能不损失。

所述选择模块42中,系数矩阵集合包括a=8个系数矩阵,并且所述8个系数矩阵各自所支持的提升值无交集,所以根据以上所确定的提升值z即可确定需要的系数矩阵对应于其在系数矩阵集合中的索引,从而可以根据所属索引从系数矩阵集合中确定当前ldpc编码所使用的系数矩阵。

所述获得模块44中,依据确定好的系数矩阵,以及结合所确定提升值z,可以通过计算获得对应于提升值z的基础矩阵,优选地,所述计算方法可以采用如下所述的计算公式获得:kb,其中,vi,j是对应于提升值z的系数矩阵中第i行第j列元素值,并且所述的vi,j是非“-1”元素,pi,j是对应于提升值z的基础矩阵中第i行第j列元素值,函数f(a,b)是求余(或求模)操作,即整数值a对整数值b求余,例如,a=5,b=10,则f(a,b)=5;a=39,b=32,则f(a,b)=7。

另外所述计算公式也可以是向下取整操作,例如:pi,j=f(vi,j,z,zmax)=floor(vi,j×z/zmax),此时pi,j与3个变量有关:vi,j,z和zmax。所以可以发现,所述获取的系数矩阵其实就是对应于zmax的基础矩阵,所述的zmax是对应系数矩阵所支持的最大提升值。

所述处理模块46中,根据以上所述获取的基础矩阵和提升值z即可以获得准循环ldpc编码的奇偶校验矩阵,根据奇偶校验矩阵即可对长度为k的待编码信息比特序列进行编码获取ldpc编码序列。在准循环ldpc编码之前,需要对所述待编码信息序列填充kb×z-k比特的亚元比特,使得待编码信息序列长度达到kb×z比特,然后对所述kb×z比特的填充后的信息序列进行准循环ldpc编码,可以获得长度为nb×z比特的原始ldpc编码序列,然后对所述原始ldpc编码序列进行比特选择,获取对应码率的长度为n比特的ldpc编码序列,其中比特选择方法为从从第z×2+1比特开始进行选择,当碰到填充比特跳过,循环选择出n比特的ldpc编码序列。其中,所述填充的kb×z-k比特的亚元比特是用于辅助编码,对于首发两端都是已知信息,所以不需要发送这些比特。所述编码过程中不一定要通过奇偶校验矩阵来进行准循环ldpc编码,由于准循环ldpc编码构造非常有规律,结构性很强,所以可以直接通过基础矩阵和提升值对待编码序列进行编码。

更为具体地例子,系数矩阵集合如实施例1中的46行68列的8个系数矩阵,对应所支持的提升值子集合分别为zset1={2,4,8,16,32,64,128,256}、zset2={3,6,12,24,48,96,192,384}、zset3={5,10,20,40,80,160,320}、zset4={7,14,28,56,112,224}、zset5={9,18,36,72,144,288}、zset6={11,22,44,88,176,352}、zset7={13,26,52,104,208}、zset8={15,30,60,120,240}。所有提升值子集合的所有元素构成提升值集合zset={zset1,zset2,zset3,zset4,zset5,zset6,zset7,zset8}。其中系数矩阵1所对应的提升值子集合为zset1,系数矩阵2所对应的提升值子集合为zset2,系数矩阵3所对应的提升值子集合为zset3,…,系数矩阵8所对应的提升值子集合为zset8。根据系数矩阵的行数目mb=46和列数目nb=68,可以知道kbmax=68-46=22,本例子中kb=kbmax=22。

如对待编码信息序列长度为k=6000比特的进行ldpc编码,编码输出长度为n=12000比特的ldpc编码序列。具体包括如下步骤:

1、从提升值集合zset中选择大于或等于k/kb=6000/22的最小提升值,可以发现满足条件的是z=288;

2、由以上所确定提升值z=288,可以知道其属于zset5,其对应于系数矩阵索引为5,从所述系数矩阵集合中选择第5个系数矩阵作为对应于提升值z的系数矩阵;

3、依据所述提升值z和所述确定好的系数矩阵获得对应于所述提升值z的基础矩阵,其中,通过以上所述的求余计算公式获得对应z=288的基础矩阵,由于提升值z=288已经是所述第5个提升值子集合的最大值,所以所述基础矩阵等于所述系数矩阵,所述基础矩阵是一个mb=46行nb=68列的矩阵;

4、由于以上所获取的基础矩阵的系统列数目为22列,即在进行准循环ldpc编码时需要填充22×288-6000=336比特的亚元比特,使得待编码信息序列长度变为22×288=6336比特。依据所述基础矩阵和所述提升值z=288获取准循环ldpc编码的奇偶校验矩阵,依据所述奇偶校验矩阵对待编码信息序列进行编码获得nb×z=19584比特的原始ldpc编码序列,从所述原始ldpc编码序列中选择n=12000比特的ldpc编码序列。

通过本实施例的方案,采用准循环ldpc编码设计方法以及相应的装置,可以有效解决了准循环ldpc码的性能较差问题,从而有效提高准循环ldpc编码性能。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行依据准循环低密度奇偶校验ldpc码的奇偶校验矩阵对长度为k比特的待编码信息序列进行ldpc编码,获得长度为n比特的ldpc编码序列。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1