CN104143992B - 一种基于比特填充的ldpc编码方法 - Google Patents
一种基于比特填充的ldpc编码方法 Download PDFInfo
- Publication number
- CN104143992B CN104143992B CN201410352740.1A CN201410352740A CN104143992B CN 104143992 B CN104143992 B CN 104143992B CN 201410352740 A CN201410352740 A CN 201410352740A CN 104143992 B CN104143992 B CN 104143992B
- Authority
- CN
- China
- Prior art keywords
- data
- depositor
- information bits
- circulating register
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种基于比特填充的LDPC编码方法,其特征在于包括:(1)对接收到的AOS标准帧的数据,提取同步头和信息位,并经过信息位整理和比特填充得到能够进行并行编码的n bit并行的信息位数据流;(2)扩展生成矩阵,(3)LDPC并行编码生成校验位;(4)整理为AOS标准帧格式数据流输出。本发明提出的基于比特填充LDPC编码方法,具有硬件开销较少,处理速率高的特点,且适用性强,易于工程实现,稳定可靠,该设计方法在航天领域的应用方面优势明显。
Description
技术领域
本发明属于卫星遥感技术领域,特别涉及一种基于比特填充的LDPC编码方法。
背景技术
随着卫星遥感技术的高速发展,LDPC编码器必须实时完成各类有效载荷海量数据的处理与传输,为此开展了新一代星载高速LDPC编码器的研制,新一代星载高速LDPC编码器要求可以完成的数据速率为5Gbps,而传统的串行处理的LDPC编码器已不能满足如此高速数据的处理要求。
纠错码是保证遥感卫星数传分***可靠性的一个关键设备,目前通信卫星中主要采用的纠错码是CCSDS131.1-O-2标准推荐的7/8码率(8176,7154)码的缩短码形式LDPC(8160,7136)码,该纠错码具有资源占用率较低、编译码相对简单且纠错能力较强的优点。
CCSDS推荐的该种LDPC码是按照AOS标准帧格式对前方载荷数据进行编码的。AOS的标准帧为1024字节(8192比特,除去32比特帧头后剩余8160比特),详细参数参见CCSDS标准。
LDPC(8176,7154)是线性分组码,最基本的编码方法是用单bit的串行方式实现的,其编码过程可表示为如下矩阵乘法:
C1×n=m1×kGk×n
其中,C1×n为LDPC编码后的码字,m1×k为信息比特,Gk×n为生成矩阵。
该LDPC码的生成矩阵Gqc形式如下:
其中,Bi,j是大小为511×511的循环矩阵,矩阵P7154×1022按Bi,j循环方阵分块,共有r=14行,c=2列,块长用L=511来表示。那么,校验位可写为:
将信息比特分为14个长为511的子块,即,m1×7154=(M1 M2…M14),则校验位为:
利用矩阵的分块特性,长向量(1×7154)与大矩阵(7154×1022)的乘法可被分解为14×2次511bit向量与511×511矩阵的乘法和14×2次向量加法。至此,运算被进一步分解为两个511bits向量的内积,从而得到进一步简化。
早期的遥感卫星由于载荷种类单一,数据速率较低,与之相对应,早期LDPC编码器的设计方法较为简单。接收到单bit串行的AOS标准帧格式后,采用LDPC基本的串行编码结构,该种编码方式在这里称为编码方式一。
在编码方式一中,前方送入编码处理器的数据流一般为单bit的串行的AOS标准帧格式数据流,具体形式如图4所示,编码方式一的数据处理流程如图5所示。这种单bit串行编码方法用于实际的FPGA实现中,时钟频率最高可实现200MHz左右,最大实时编码速率为200Mbps。
随着卫星遥感器的发展,早期的LDPC编码器设计方法已经无法满足新一代遥感卫星的需求,新一代遥感器的数据输出速率在5Gbps以上,无法实时编码处理;为了提高编码器的处理速率,现有的常规解决办法是:在编码方式一的基础上采用FIFO缓存数据的方式,用单路数据流缓存为n路,然后用n路串行LDPC编码器同时工作,编码完成后,再用FIFO缓存数据将n路数据再缓存回原来的单路数据流,将该种处理方式称之编码方式二。
在高速数据处理下,前方送入编码处理器的数据流一般为n bit(n=2,4,8,16,32.。。。)并行的AOS标准帧格式数据流,具体形式如图6所示,编码方式二的处理流程如图7所示,该设计方法,虽然满足了实时编码速率要求,理论上可将编码速率提高为原来的n倍。但该设计方式具有几个明显的不足之处:第一,处理流程繁杂,大大增加了编码的复杂性;第二,引入FIFO进行数据缓存,既添加FIFO的读写控制逻辑,还大大提高了在分通道过程中数据处理的出错概率。第三,要对输入数据进行并串变换,这样会引入跨时钟域的问题,增加亚稳态的风险与不必要的时钟和资源浪费;第四,资源占用较多,使用了大量的FIFO资源,且n个单bit串行编码器同时工作,使用的逻辑资源至少是单bit串行编码器的n倍。
发明内容
本发明的目的在于克服两种常见编码方式的不足,提供一种基于比特填充的LDPC编码方法,该方法采用并行LDPC编码实现,能够满足高速数据处理且实现简单,以达到硬件资源少,设计复杂性低、实现简单,可靠性高的特点。
本发明的上述目的通过下述技术方案予以实现:
一种基于比特填充的LDPC编码方法,包括下列步骤:
(1)对接收到的8192bit的AOS标准帧的数据,提取32bit同步头,并经过信息位整理和比特填充得到7168bit的信息位,具体实现方法如下:
(a)在8192bit的AOS标准帧中,分别提取32bit同步头和缩短码形式的7136bit信息位;
(b)在步骤(a)提取得到的7136bit信息位前填充18bit的数据0,将所述信息位整理为标准码形式的7154bit信息位;
(c)将步骤(b)得到的7154bit信息位分为14区段,每个所述区段内包含511bit数据,分别在所述14个区段内最后一bit数据后填充1bit的数据0,将所述7154bit信息位填充为7168bit信息位;
(2)扩展LDPC(8176,7154)码生成矩阵,即将7154*1022维矩阵P扩展为7168*1022维矩阵P′,具体实现方法如下:
CCSDS标准中的LDPC(8176,7154)码生成矩阵G=[I P],其中I为7154*7154维的单位矩阵,P为由28个循环矩阵组成的7154*1022维矩阵:
其中,Bi,j为511*511维循环矩阵,即矩阵Bi,j的第二行到最后一行的数据,为其前一行数据向右循环1位得到:
i=1~14为正整数,j=1、2
将所述循环矩阵Bi,j的最后一行数据向右循环一位得到一行数据,将所述一行数据添加在矩阵Bi,j的最后一行后,形成512*511维扩展矩阵B′i,j:
i=1~14为正整数,j=1、2
由所述扩展矩阵B′i,j组成7168*1022维矩阵P′:
(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位采用n位并行输入方式输入,与所述矩阵P′相乘,生成1022bit的校验位,并将生成的1022bit校验位后面填充2bit数据0,得到1024bit校验位,n为编码器位宽且n=2k,k为1~9的自然数;
(4)利用步骤(1)得到的7168bit信息位和步骤(3)得到的1024bit校验位,以及步骤(1)中直接从AOS标准帧中提取的32bit同步头,得到8192bit的AOS标准帧格式的LDPC编码器输出帧,具体实现方法如下:
(a)将步骤(1)得到的7168bit信息位平均划分为14个区段,每个区段内包含512bit数据,分别将所述14个区段内最后一bit数据0删除,将所述7168bit信息为还原为7154bit信息位;
(b)将步骤(a)还原得到的7154bit信息位最前面18bit的数据0删除,将所述信息位还原为缩短码形式的7136bit信息位;
(c)将步骤(1)中直接从AOS标准帧提取的32bit同步头填充在所述7136bit信息位之前,并将步骤(3)得到的1024bit校验位填充在所述7136bit信息位之后,得到8192bit的AOS标准帧,并将所述标准帧采用nbit并行方式输出。
上述的基于比特填充的LDPC编码方法中,步骤(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位=[c1、c2、c3、…、c7168]采用n位并行输入方式输入,与所述矩阵P′相乘,生成1022bit的校验位,所述计算过程通过中采用两个循环移位寄存器组B1、B2和两个寄存器a1、a2存放数据:
其中,两个循环移位寄存器组B1、B2,每个循环移位寄存器组包括n个循环移位寄存器,所述循环移位寄存器的长度为511bit,循环移位寄存器组B1中的n个循环移位寄存器保存的数据分别标示为:[η1,1、η1,2、…、η1,511]、[η2,1、η2,2、…、η2,511]、…、[ηn,1、ηn,2、…、ηn,511];循环移位寄存器组B2中的n个循环移位寄存器保存的数据分别标示为:[γ1,1、γ1,2、…、γ1,511]、[γ2,1、γ2,2、…、γ2,511]、…、[γn,1、γn,2、…、γn,511];
两个寄存器a1和a2,其中每个所述移位寄存器的长度为511bit;寄存器a1中保存的数据标示为:[α1、α2、…、α511];寄存器a2中保存的数据标示为:[β1、β2、…、β511];
所述计算过程的具体实现方法如下:
(1)第一个时钟周期时,并行输入nbit信息位:[c1、c2、…、cn];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第1行~第n行,并将所述寄存器a1和a2中的保存数据初始化为零,即αl=0,βl=0,其中l=1~511为正整数;
(2)将步骤(1)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加存入寄存器a1:其中寄存器a1的第l位保存数据为l=1,2,…,511为正整数;
将所述并行输入的nbit信息位分别与循环移位寄存器组B2中存储的数据相乘并累加存入寄存器a2:其中寄存器a2的第l位保存数据为l=1,2,…,511为正整数;
(3)第二个时钟周期时,并行输入nbit信息位:[cn+1、cn+2、…、c2n];
并将循环移位寄存器组B1中的n个循环移位寄存器分别向右循环移位n位,即B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第n+1行~第2n行,更新ηi,j(i=1~n,j=1~511)的取值;
并将循环移位寄存器组B2中的n个循环移位寄存器分别向右循环移位n位,循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第n+1行~第2n行,更新γi,j(i=1~n,j=1~511)的取值;
(4)将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加,所述累加结果与寄存器a1中存储数据相加后更新寄存器a1中的保存数据:其中寄存器a1的第l位保存数据为(l=1,2,…,511为正整数);
将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B2的存储数据相乘并累加,所述累加结果与寄存器a2中存储数据相加后更新寄存器a2中的保存数据:其中寄存器a2的第l位保存数据为(l=1,2,…,511为正整数);
(5)依次类推,第512/n个时钟周期后,寄存器a1中保存的数据矢量为[c1、c2、c3、…、c512]B′1,1,寄存器a2中保存的数据矢量为[c1、c2、c3、…、c512]B′1,2;
(6)第512/n+1个时钟周期时,并行输入nbit信息位:[c512+1、c512+2、…、c512+n];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′2,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′2,2的第1行~第n行;
按照步骤(1)~(5)的计算过程,第1024/n个时钟周期后,寄存器a1中保存的数据为[c1、c2、c3、…、c512]B′1,1+[c512+1、c512+2、c512+3、…、c1024]B′2,1;寄存器a2中保存的数据为:[c1、c2、c3、…、c512]B′1,2+[c512+1、c512+2、c512+3、…、c1024]B′2,2;
(7)依次类推,第7168/n个时钟周期后,寄存器a1中保存的数据为寄存器a2中保存的数据为其中:
Mi=[c(i-1)*512+1,c(i-1)*512+2,…,c(i-1)*512+512],i=1~14为正整数;
(8)寄存器a1保存的511bit数据后连接寄存器a2保存的511bit数据,得到1022bit的校验位。
本发明与现有技术相比具有如下优点:
(1)本发明的LDPC编码方法,采用nbit并行编码方式,与单bit的串行编码方式相比,能够大大提高数据的实时处理速率,将数据处理速率提高了n倍,能够满足目前卫星通信中大容量、高速率数据传输的任务需求,顺应实时数据处理的发展趋势。
(2)本发明的LDPC编码方法,在并行编码中无需对前方输入并行数据格式进行变化,可直接调用编码器模块,完成并行编码处理。处理流程简单,易实现,大大降低了使用编码器的复杂度。
(3)本发明的LDPC编码方法,不需要对数据进行缓存,降低了数据处理过程中的出错概率,避免了在使用FIFO/RAM缓存数据过程中出现错帧、倒帧现象。
(4)本发明的LDPC编码方法,能够实时处理数据,没有实时数据缓存过程,避免了现有技术编码方式二(记载在背景技术中)中将部分数据滞留在缓存中的弊端。
(5)本发明的LDPC编码方法,整个编码过程中只需要一种时钟频率,避免了数据串并变化和分路过程中引入的多个时钟频率导致的跨时钟域问题,降低了亚稳态的风险与不必要的时钟资源浪费。
(6)本发明的LDPC编码方法,节约了资源使用,相对于现有技术编码方式二,本方法可降低FIFO资源使用量,并减少逻辑资源的使用量,其中,编码器字宽n越大节约资源效果越明显。
附图说明
图1.为本发明LDPC编码方法的具体实现处理流程图;
图2.为本发明LDPC编码方法的处理流程图;
图3.为本发明LDPC并行编码实现的SRAA电路图;
图4.为编码方式一中编码处理器AOS标准帧格式数据流形式;
图5.为编码方式一的数据处理流程图;
图6.为编码方式二并行的AOS标准帧格式数据流形式;
图7.为编码方式二的数据处理流程图;
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
在本方法中LDPC编码是按帧进行,对数据流中的每一帧数据均做同的处理,因此在发明只对一帧数据的处理过程做说明,在后续阐述中不再做特殊说明,如图2所示,并行输入nbit AOS标准帧格式数据流,采用本发明的基于比特填充的LDPC编码方法,可以并行输出nbit编码后的AOS标准帧格式数据流。
本发明基于比特填充的LDPC编码方法,具体实现处理流程图如图1所示,具体包括下列步骤:
(1)对8192bit的AOS标准帧的数据,提取32bit同步头,并经过信息位整理和比特填充得到7168bit的信息位,具体实现方法如下:
(a)在8192bit的AOS标准帧中,分别提取32bit同步头和缩短码形式的7136bit信息位;
本实施例中,编码器位宽n=4,8192bit的AOS标准帧为:
从所述标准帧数据中提取到的7136bit信息位为:
从所述标准帧数据中提取到的32bit同步头为:
(b)在步骤(a)提取得到的7136bit信息位前填充18bit的数据0,将所述信息位整理为标准码形式的7154bit信息位;
在编码器位宽n=4的实施例中,所述7154bit信息位为:
(c)如果编码器位宽n=2k,k为1~9的自然数,当k>1时,步骤(b)得到的7154bit信息位长度不是n的整数倍,为了编码方便需要对该信息位进行比特填充,即将步骤(b)得到的7154bit信息位分为14区段,每个所述区段内包含511bit数据,分别在所述14个区段内最后一bit数据后填充1bit的数据0,将所述7154bit信息位填充为7168bit信息位,其中,7168为编码器位宽n=2k(k为1~9的自然数)的整数倍;
在编码器位宽n=4的实施例中,所述7168bit信息位为:
(2)为了与比特填充后的信息位相对应,需要对扩展LDPC(8176,7154)码生成矩阵,即将7154*1022维矩阵P扩展为7168*1022维矩阵P′,具体实现方法如下:
CCSDS标准中的LDPC(8176,7154)码生成矩阵G=[I P],其中I为7154*7154维的单位矩阵,P为由28个循环矩阵组成的7154*1022维矩阵:
其中,Bi,j为511*511维循环矩阵,即矩阵Bi,j的第二行到最后一行的数据,为其前一行数据向右循环1位得到:
i=1~14为正整数,j=1、2
将所述循环矩阵Bi,j的最后一行数据向右循环一位得到一行数据,将所述一行数据添加在矩阵Bi,j的最后一行后,形成512*511维扩展矩阵B′i,j:
i=1~14为正整数,j=1、2
由所述扩展矩阵B′i,j组成7168*1022维矩阵P′:
(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位采用n位并行方式输入,与所述矩阵P′相乘,生成1022bit的校验位,并将生成的1022bit校验位后面填充2bit数据0,得到1024bit校验位,n为编码器位宽且n=2k,k为1~9的自然数;
在本实施例中,4位并行输出的1024bit校验位为:
(4)利用步骤(1)得到的7168bit信息位和步骤(3)得到的1024bit校验位,以及步骤(1)中直接从AOS标准帧中提取的32bit同步头,得到8192bit的AOS标准帧格式的LDPC编码器输出帧,具体实现方法如下:
(a)将步骤(1)得到的7168bit信息位平均划分为14个区段,每个区段内包含512bit数据,分别将所述14个区段内最后一bit数据0删除,将所述7168bit信息为还原为7154bit信息位;
(b)将步骤(a)还原得到的7154bit信息位最前面18bit的数据0删除,将所述信息位还原为缩短码形式的7136bit信息位;
(c)将步骤(1)中直接从AOS标准帧提取的32bit同步头填充在所述7136bit信息位之前,并将步骤(3)得到的1024bit校验位填充在所述7136bit信息位之后,得到8192bit的AOS标准帧,并将所述标准帧采用nbit并行方式输出。
本实施例中,编码输出的标准帧为:
本发明的基于比特填充的LDPC编码方法中,步骤(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位=[c1、c2、c3、…、c7168]采用n位并行输入方式输入,与所述矩阵P′相乘,生成1022bit的校验位,其具体实现的并行SRAA电路如图3所示。
其中,两个循环移位寄存器组B1、B2,其中每个所述循环移位寄存器组包括n个循环移位寄存器,所述循环移位寄存器的长度为511bit;
其中,循环移位寄存器组B1中的n个循环移位寄存器保存的数据分别标示为:[η1,1、η1,2、…、η1,511]、[η2,1、η2,2、…、η2,511]、…、[ηn,1、ηn,2、…、ηn,511];
其中,循环移位寄存器组B2中的n个循环移位寄存器保存的数据分别标示为:[γ1,1、γ1,2、…、γ1,511]、[γ2,1、γ2,2、…、γ2,511]、…、[γn,1、γn,2、…、γn,511];
两个寄存器a1和a2,其中每个所述移位寄存器的长度为511bit;
其中,寄存器a1中保存的数据标示为:[α1、α2、…、α511];
其中,寄存器a2中保存的数据标示为:[β1、β2、…、β511];
具体实现方法如下:
(1)第一个时钟周期时,并行输入nbit信息位:[c1、c2、…、cn];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第1行~第n行,并将所述寄存器a1和a2中的保存数据初始化为零,即αl=0,βl=0,其中l=1~511为正整数;
(2)将步骤(1)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加存入寄存器a1:其中寄存器a1的第l位保存数据为l=1,2,…,511为正整数;
将所述并行输入的nbit信息位分别与循环移位寄存器组B2中存储的数据相乘并累加存入寄存器a2:其中寄存器a2的第l位保存数据为l=1,2,…,511为正整数;
(3)第二个时钟周期时,并行输入nbit信息位:[cn+1、cn+2、…、c2n];
并将循环移位寄存器组B1中的n个循环移位寄存器分别向右循环移位n位,即B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第n+1行~第2n行,更新ηi,j(i=1~n,j=1~511)的取值;
并将循环移位寄存器组B2中的n个循环移位寄存器分别向右循环移位n位,循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第n+1行~第2n行,更新γi,j(i=1~n,j=1~511)的取值;
(4)将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加,所述累加结果与寄存器a1中存储数据相加后更新寄存器a1中的保存数据:其中寄存器a1的第l位保存数据为(l=1,2,…,511为正整数);
将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B2的存储数据相乘并累加,所述累加结果与寄存器a2中存储数据相加后更新寄存器a2中的保存数据:其中寄存器a2的第l位保存数据为(l=1,2,…,511为正整数);
(5)依次类推,第512/n个时钟周期后,寄存器a1中保存的数据矢量为[c1、c2、c3、…、c512]B′1,1,寄存器a2中保存的数据矢量为[c1、c2、c3、…、c512]B′1,2;
(6)第512/n+1个时钟周期时,并行输入nbit信息位:[c512+1、c512+2、…、c512+n];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′2,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′2,2的第1行~第n行;
按照步骤(1)~(5)的计算过程,第1024/n个时钟周期后,寄存器a1中保存的数据为[c1、c2、c3、…、c512]B′1,1+[c512+1、c512+2、c512+3、…、c1024]B′2,1;寄存器a2中保存的数据为:[c1、c2、c3、…、c512]B′1,2+[c512+1、c512+2、c512+3、…、c1024]B′2,2;
(7)依次类推,第7168/n个时钟周期后,寄存器a1中保存的数据为寄存器a2中保存的数据为其中:
Mi=[c(i-1)*512+1,c(i-1)*512+2,…,c(i-1)*512+512],i=1~14为正整数;
(8)寄存器a1保存的511bit数据后连接寄存器a2保存的511bit数据,得到1022bit的校验位。
下表为编码器位宽n=4的情况下,用xilinx公司5vfx130tff1738-1的FPGA产品实现时,现有技术编码方式二与本发明的资源使用情况:
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (2)
1.一种基于比特填充的LDPC编码方法,其特征在于包括下列步骤:
(1)对8192bit的AOS标准帧的数据,提取32bit同步头,并经过信息位整理和比特填充得到7168bit的信息位,具体实现方法如下:
(a)在8192bit的AOS标准帧中,分别提取32bit同步头和缩短码形式的7136bit信息位;
(b)在步骤(a)提取得到的7136bit信息位前填充18bit的数据0,将所述信息位整理为标准码形式的7154bit信息位;
(c)将步骤(b)得到的7154bit信息位分为14区段,每个所述区段内包含511bit数据,分别在所述14个区段内最后一bit数据后填充1bit的数据0,将所述7154bit信息位填充为7168bit信息位;
(2)扩展LDPC(8176,7154)码生成矩阵,即将7154*1022维矩阵P扩展为7168*1022维矩阵P′,具体实现方法如下:
CCSDS标准中的LDPC(8176,7154)码生成矩阵G=[I P],其中I为7154*7154维的单位矩阵,P为由28个循环矩阵组成的7154*1022维矩阵:
其中,Bi,j为511*511维循环矩阵,即矩阵Bi,j的第二行到最后一行的数据,为其前一行数据向右循环1位得到:
i=1~14为正整数,j=1、2
将所述循环矩阵Bi,j的最后一行数据向右循环一位得到一行数据,将所述一行数据添加在矩阵Bi,j的最后一行后,形成512*511维扩展矩阵B′i,j:
i=1~14为正整数,j=1、2
由所述扩展矩阵B′i,j组成7168*1022维矩阵P′:
(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位采用n位并行方式输入,与所述矩阵P′相乘,生成1022bit的校验位,并将生成的1022bit校验位后面填充2bit数据0,得到1024bit校验位,n为编码器位宽且n=2k,k为1~9的自然数;
(4)利用步骤(1)得到的7168bit信息位和步骤(3)得到的1024bit校验位,以及步骤(1)中直接从AOS标准帧中提取的32bit同步头,得到8192bit的AOS标准帧格式的LDPC编码器输出帧,具体实现方法如下:
(a)将步骤(1)得到的7168bit信息位平均划分为14个区段,每个区段内包含512bit数据,分别将所述14个区段内最后一bit数据0删除,将所述7168bit信息位还原为7154bit信息位;
(b)将步骤(a)还原得到的7154bit信息位最前面18bit的数据0删除,将所述信息位还原为缩短码形式的7136bit信息位;
(c)将步骤(1)中直接从AOS标准帧提取的32bit同步头填充在所述7136bit信息位之前,并将步骤(3)得到的1024bit校验位填充在所述7136bit信息位之后,得到8192bit的AOS标准帧,并将所述标准帧采用nbit并行方式输出。
2.根据权利要求1所述的一种基于比特填充的LDPC编码方法,其特征在于:步骤(3)进行LDPC并行编码,即将步骤(1)经整理和填充得到的7168bit信息位=[c1、c2、c3、…、c7168]采用n位并行输入方式输入,与所述矩阵P′相乘,生成1022bit的校验位,计算过程中采用两个循环移位寄存器组B1、B2和两个寄存器a1、a2存放数据:
其中,两个循环移位寄存器组B1、B2,每个循环移位寄存器组包括n个循环移位寄存器,所述循环移位寄存器的长度为511bit,循环移位寄存器组B1中的n个循环移位寄存器保存的数据分别标示为:[η1,1、η1,2、…、η1,511]、[η2,1、η2,2、…、η2,511]、…、[ηn,1、ηn,2、…、ηn,511];循环移位寄存器组B2中的n个循环移位寄存器保存的数据分别标示为:[γ1,1、γ1,2、…、γ1,511]、[γ2,1、γ2,2、…、γ2,511]、…、[γn,1、γn,2、…、γn,511];
两个寄存器a1和a2,其中每个所述移位寄存器的长度为511bit;寄存器a1中保存的数据标示为:[α1、α2、…、α511];寄存器a2中保存的数据标示为:[β1、β2、…、β511];
所述计算过程的具体实现方法如下:
(1)第一个时钟周期时,并行输入nbit信息位:[c1、c2、…、cn];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第1行~第n行,并将所述寄存器a1和a2中的保存数据初始化为零,即αl=0,βl=0,其中l=1~511为正整数;
(2)将步骤(1)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加存入寄存器a1:其中寄存器a1的第l位保存数据为l=1,2,…,511为正整数;
将所述并行输入的nbit信息位分别与循环移位寄存器组B2中存储的数据相乘并累加存入寄存器a2:其中寄存器a2的第l位保存数据为l=1,2,…,511为正整数;
(3)第二个时钟周期时,并行输入nbit信息位:[cn+1、cn+2、…、c2n];
并将循环移位寄存器组B1中的n个循环移位寄存器分别向右循环移位n位,即B1中的n个循环移位寄存器分别存储扩展矩阵B′1,1的第n+1行~第2n行,更新ηi,j(i=1~n,j=1~511)的取值;
并将循环移位寄存器组B2中的n个循环移位寄存器分别向右循环移位n位,循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′1,2的第n+1行~第2n行,更新γi,j(i=1~n,j=1~511)的取值;
(4)将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B1的存储数据相乘并累加,所述累加结果与寄存器a1中存储数据相加后更新寄存器a1中的保存数据:其中寄存器a1的第l位保存数据为(l=1,2,…,511为正整数);
将步骤(3)并行输入的nbit信息位分别与循环移位寄存器组B2的存储数据相乘并累加,所述累加结果与寄存器a2中存储数据相加后更新寄存器a2中的保存数据:其中寄存器a2的第l位保存数据为(l=1,2,…,511为正整数);
(5)依次类推,第512/n个时钟周期后,寄存器a1中保存的数据矢量为[c1、c2、c3、…、c512]B′1,1,寄存器a2中保存的数据矢量为[c1、c2、c3、…、c512]B′1,2;
(6)第512/n+1个时钟周期时,并行输入nbit信息位:[c512+1、c512+2、…、c512+n];
用所述循环移位寄存器组B1中的n个循环移位寄存器分别存储扩展矩阵B′2,1的第1行~第n行,所述循环移位寄存器组B2中的n个循环移位寄存器分别存储扩展矩阵B′2,2的第1行~第n行;
按照步骤(1)~(5)的计算过程,第1024/n个时钟周期后,寄存器a1中保存的数据为[c1、c2、c3、…、c512]B′1,1+[c512+1、c512+2、c512+3、…、c1024]B′2,1;寄存器a2中保存的数据为:[c1、c2、c3、…、c512]B′1,2+[c512+1、c512+2、c512+3、…、c1024]B′2,2;
(7)依次类推,第7168/n个时钟周期后,寄存器a1中保存的数据为寄存器a2中保存的数据为其中:
Mi=[c(i-1)*512+1,c(i-1)*512+2,…,c(i-1)*512+512],i=1~14为正整数;
(8)寄存器a1保存的511bit数据后连接寄存器a2保存的511bit数据,得到1022bit的校验位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410352740.1A CN104143992B (zh) | 2014-07-23 | 2014-07-23 | 一种基于比特填充的ldpc编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410352740.1A CN104143992B (zh) | 2014-07-23 | 2014-07-23 | 一种基于比特填充的ldpc编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104143992A CN104143992A (zh) | 2014-11-12 |
CN104143992B true CN104143992B (zh) | 2017-05-10 |
Family
ID=51853072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410352740.1A Active CN104143992B (zh) | 2014-07-23 | 2014-07-23 | 一种基于比特填充的ldpc编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104143992B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347298B (zh) * | 2017-01-24 | 2021-01-15 | 华为技术有限公司 | 一种编码的方法和通信装置 |
CN109217879B (zh) * | 2018-08-06 | 2020-07-31 | 中国科学院计算技术研究所 | 一种多速率低密度校验码的构造方法和装置 |
CN112039535B (zh) * | 2020-08-17 | 2023-11-10 | 西安空间无线电技术研究所 | 一种基于准循环生成矩阵的码率兼容ldpc编码器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764621A (zh) * | 2009-12-30 | 2010-06-30 | 西安空间无线电技术研究所 | 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法 |
CN102315911A (zh) * | 2011-09-29 | 2012-01-11 | 中兴通讯股份有限公司 | 一种低密度奇偶校验码编码方法及装置 |
US8539304B1 (en) * | 2010-04-27 | 2013-09-17 | Marvell International Ltd. | Parallel encoder for low-density parity-check (LDPC) codes |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7581157B2 (en) * | 2004-06-24 | 2009-08-25 | Lg Electronics Inc. | Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system |
-
2014
- 2014-07-23 CN CN201410352740.1A patent/CN104143992B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764621A (zh) * | 2009-12-30 | 2010-06-30 | 西安空间无线电技术研究所 | 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法 |
US8539304B1 (en) * | 2010-04-27 | 2013-09-17 | Marvell International Ltd. | Parallel encoder for low-density parity-check (LDPC) codes |
CN102315911A (zh) * | 2011-09-29 | 2012-01-11 | 中兴通讯股份有限公司 | 一种低密度奇偶校验码编码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104143992A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101902228B (zh) | 快速循环冗余校验编码方法及装置 | |
CN104143992B (zh) | 一种基于比特填充的ldpc编码方法 | |
CN103248372A (zh) | 基于循环左移的准循环ldpc串行编码器 | |
WO2016127357A1 (zh) | 一种基于fpga的时间数字变换器 | |
CN103369326B (zh) | 适于高性能视频编码标准hevc的变换编码器 | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
CN103199873A (zh) | 两级分块crc运算的快速配置方法 | |
CN106603082A (zh) | 通用型高速ldpc码编码方法及编码器 | |
CN103986475A (zh) | 里德-所罗门伞型代码的并行分解 | |
CN101969358B (zh) | 一种用于空间通信的高速并行rs译码方法 | |
CN113222159A (zh) | 一种量子态的确定方法及装置 | |
CN101764621B (zh) | 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法 | |
CN102468902B (zh) | LTE***Turbo编码速率匹配/解速率匹配的方法 | |
US10771089B2 (en) | Method of input data compression, associated computer program product, computer system and extraction method | |
US20200412479A1 (en) | Polar coding system and parallel computation method for polar coding system | |
CN103236855A (zh) | 基于循环左移的近地通信中准循环ldpc串行编码器 | |
DE3856035T2 (de) | Schaltung mit grosser bandbreite und verfahren zur reed-solomon-kodierung, dekodierung und fehlerkorrektur | |
CN104796158A (zh) | 一种针对固定信息长度的ldpc编译码***平台 | |
CN103236858A (zh) | 基于循环左移的cmmb中准循环ldpc串行编码器 | |
CN103236856A (zh) | 基于循环左移的dtmb中准循环ldpc串行编码器 | |
US10216567B1 (en) | Direct parity encoder | |
CN102769506A (zh) | 一种解速率匹配的解交织方法和装置 | |
CN105703783A (zh) | 一种准并行结构的ldpc编码器 | |
CN110474649A (zh) | 基于FPGA的宽带电力线载波通信Turbo编码方法 | |
Ce et al. | Design and implementation of lossless compression encoding for high-speed data acquisition and storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |