CN102377437A - 一种准循环低密度奇偶校验码编码方法和装置 - Google Patents
一种准循环低密度奇偶校验码编码方法和装置 Download PDFInfo
- Publication number
- CN102377437A CN102377437A CN2010102645239A CN201010264523A CN102377437A CN 102377437 A CN102377437 A CN 102377437A CN 2010102645239 A CN2010102645239 A CN 2010102645239A CN 201010264523 A CN201010264523 A CN 201010264523A CN 102377437 A CN102377437 A CN 102377437A
- Authority
- CN
- China
- Prior art keywords
- ram
- address
- bit
- sequence
- read
- 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.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种准循环低密度奇偶校验码编码方法和装置,所述方法包括:比特预处理步骤,该步骤将输入编码器的信息比特序列一路作为码字的信息比特输出,另一路计算得到编码所需中间序列后存入编码器RAM阵列中;校验序列v(0)计算步骤,该步骤用于对在所述RAM阵列中相应RAM中读取的存储值进行模2和运算,得到v(0)后一路写入所述RAM阵列,另一路作为校验比特输出;剩余校验序列计算步骤,该步骤用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。本发明所述方法可以对传输的信息比特进行实时编码,不需要先存储一部分后再进行计算,编码速度快。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种准循环低密度奇偶校验码(Quasi-Cyclic Low Density Parity Check,QC-LDPC)编码方法和装置。
背景技术
LDPC码是1962年由Gallager提出的一种基于稀疏校验矩阵的线性分组码;1996年,MacKay和Neal对LDPC码进行了再发现,证明其具有接近香农限的性能。现有的一些通信系统,如DVB、WiMAX等系统中都采用了LDPC码作为信道编码。对于LDPC码校验矩阵H本身自有的结构特点,可以将LDPC码分为准循环矩阵构造的LDPC(QC-LDPC)码和普通矩阵构造的LDPC码。QC-LDPC码的校验矩阵H可以看作是由一个基础矩阵Hb扩展得到,Hb中的元素值代表一个z*z的单位阵的循环移位阵,如果元素为-1则表示为一z*z的全零阵。QC-LDPC码的基础矩阵Hb还具有一些特殊的结构,设Hb矩阵的行数为mb,列数为kb+mb,其中kb*z代表编码前输入的信息比特的长度,Hb可以表示为Hb2还可以进一步分为两部分Hb2=[hb|H′b2],即:
其中,hb为一列向量,其中hb(0)=hb(mb-1)和中间某一位置hb(x)为非负值。由于QC-LDPC码的校验矩阵的这种特殊结构,其编码过程可以通过一系列的递推式得到最终的校验比特。
目前QC-LDPC码的编码实现往往是一种半离线式的过程,即在运算时先要接收一部分数据存储,然后再对存储的数据序列进行二进制的移位加运算,这种实现方式使编码时延大大增加。使得在高速通信系统中,当前的编码方式不能使数据流得到实时的处理。
发明内容
本发明提供一种准循环低密度奇偶校验码编码方法和装置,用以解决现有技术中存在的编码时延大的问题。
具体的,本发明提供一种准循环低密度奇偶校验码编码方法,包括:
比特预处理步骤,该步骤用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
校验序列v(0)计算步骤,该步骤用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
剩余校验序列计算步骤,该步骤用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
其中,所述编码器RAM阵列中包含mb+1个大小为z比特的RAM单元RAM(0),RAM(1),...,RAM(mb);所述mb为QC-LDPC码基础矩阵Hb的行数。
进一步地,所述比特预处理步骤中:
对于所述信息比特序列中的某信息比特组u(i),i=0,1,...,kb-1的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;
对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
其中,所述比特预处理步骤中在Hb(j,i)=-1时对RAM(j)不进行读写操作。
进一步地,所述校验序列v(0)计算步骤中计算v(0)中首比特值v0(0)的RAM读写地址为:addr(v0(0))=(z-hb(x))modz;计算v(0)中剩余比特值vi(0)的RAM读写地址为:addr(vi(0))=(addr(v0(0))+i)modz;其中,i=1,2,...,z-1,z为校验序列v(0)的大小。
其中,所述校验序列v(0)计算步骤具体包括:
v(0)首比特值计算步骤,该步骤用于将所述RAM阵列前mb个RAM的同一地址addr(v0(0))中读取的mb个存储值进行模2和运算得到v(0)首比特值;
v(0)剩余比特值计算步骤,该步骤用于将所述RAM阵列前mb个RAM的同一地址addr(vi(0)),i=1,2,...,z-1中读取的mb个存储值进行模2和运算得到v(0)剩余比特值。
其中,所述校验序列v(0)计算步骤中将计算得到的v(0)写入所述RAM阵列具体为:将计算得到的v(0)中各值一路从RAM(mb)的首地址顺序写入,另一路按原RAM读写地址存入RAM(mb-1)中。
进一步地,所述剩余校验序列计算步骤具体包括:
校验序列v(1)计算步骤,该步骤用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,...,mb-2计算步骤,该步骤用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值。
本发明还提供一种准循环低密度奇偶校验码QC-LDPC编码器,包括:
比特预处理模块,用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
校验序列v(0)计算模块,用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
剩余校验序列计算模块,用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
其中,所述编码器RAM阵列中包含mb+1个大小为z比特的RAM单元RAM(0),RAM(1),...,RAM(mb);所述mb为QC-LDPC码基础矩阵Hb的行数。
进一步地,本发明所述编码器还包括:
地址生成模块,用于生成所述比特预处理模块处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址;其中,对于所述信息比特序列中的某信息比特分组u(i),i=0,1,...,kb-1,的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
其中,所述比特预处理模块在Hb(j,i)=-1时对RAM(j)不进行读写操作。
进一步地,所述校验序列v(0)计算模块包括:
v(0)首比特值计算子模块,用于将所述RAM阵列前mb个RAM的同一地址addr(v0(0))=(z-hb(x))modz中读取的mb个存储值进行模2和运算得到v(0)首比特值;
v(0)剩余比特值计算子模块,用于将所述RAM阵列前mb个RAM的同一地址addr(vi(0))=(addr(v0(0))+i)modz,i=1,2,...,z-1中读取的mb个存储值进行模2和运算得到v(0)剩余比特值,其中,z为校验序列v(0)的大小。
其中,所述校验序列v(0)计算模块中将计算得到的v(0)写入所述RAM阵列具体为:将计算得到的v(0)中各值一路从RAM(mb)的首地址顺序写入,另一路按原RAM读写地址存入RAM(mb-1)中。
进一步地,所述剩余校验序列计算模块包括:
校验序列v(1)计算子模块,用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,...,mb-2计算子模块,用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值。
与现有技术相比,本发明有益效果如下:
本发明所述方法可以对传输的信息比特进行实时编码,不需要先存储一部分后再进行计算,编码速度快。
另外,本发明所述编码方法实现简单,不需要做序列移位等复杂操作,同时存储空间得到有效的复用,占用资源较少,为降低芯片面积和制作成本提供了技术支持。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种准循环低密度奇偶校验码编码方法流程图;
图2为本发明提供的一种准循环低密度奇偶校验码编码器结构图;
图3为本发明实施例提供的一种准循环低密度奇偶校验码编码器结构图;
图4为本发明实施例中比特预处理的结构框图;
图5为本发明实施例中计算校验序列v(0)的结构框图;
图6为本发明实施例中计算剩余校验序列的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中编码时延大的问题,本发明提供一种准循环低密度奇偶校验码编码方法和装置。
如图1所示,为本发明提供的一种准循环低密度奇偶校验码编码方法,具体包括:
步骤S101、比特预处理步骤,该步骤用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
其中,编码器RAM阵列中包含mb+1个大小为z比特的RAM单元RAM(0),RAM(1),...,RAM(mb);所述mb为QC-LDPC码基础矩阵Hb的行数。
该比特预处理步骤中:
对于所述信息比特序列中的某信息比特分组u(i),i=0,1,...,kb-1的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;
对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
步骤S102、校验序列v(0)计算步骤,该步骤用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
该步骤中,计算v(0)中首比特值v0(0)的RAM读写地址为:addr(v0(0))=(z-hb(x))mod z;计算v(0)中剩余比特值vi(0)的RAM读写地址为:addr(vi(0))=(addr(v0(0))+i)mod z;其中,i=1,2,...,z-1,z为校验序列v(0)的大小。
步骤S103、剩余校验序列计算步骤,该步骤用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
该剩余校验序列计算步骤具体包括:
校验序列v(1)计算步骤,该步骤用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,...,mb-2计算步骤,该步骤用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值。
如图2所示,本发明还提供一种准循环低密度奇偶校验码QC-LDPC编码器,包括:
比特预处理模块210,用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
其中,对于所述信息比特序列中的某信息比特分组u(i),i=0,1,...,kb-1,的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;
对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
校验序列v(0)计算模块220,用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
该校验序列v(0)计算模块具体包括:
v(0)首比特值计算子模块221,用于将所述RAM阵列前mb个RAM的同一地址addr(v0(0))=(z-hb(x))mod z中读取的mb个存储值进行模2和运算得到v(0)首比特值;
v(0)剩余比特值计算子模块222,用于将所述RAM阵列前mb个RAM的同一地址addr(vi(0))=(addr(v0(0))+i)modz,i=1,2,...,z-1中读取的mb个存储值进行模2和运算得到v(0)剩余比特值,其中,z为校验序列v(0)的大小。
剩余校验序列计算模块230,用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
该剩余校验序列计算模块230具体包括:
校验序列v(1)计算子模块231,用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,...,mb-2计算子模块232,用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值。
下面根据图3~图6给出本发明一个较佳的实施例,并结合对实施例的描述,进一步给出本发明的技术细节,使其能够更好地说明本发明所述技术方案的具体实现过程。
对于给定的输入信息序列s,QC-LDPC编码是确定校验比特向量p,得到QC-LDPC编码后的码字为c=[s p];
其中,输入信息序列s分成kb个z比特组:u=[u(0)u(1)...u(kb-1)]T,其中每个元素u表示如下比特向量:u(i)=[sizsi(z+1)...s(i+1)(z-1)]T,i=0,1,2,..,kb-1;
校验比特向量p分成mb个z比特组:v=[v(0)v(1)...v(mb-1)]T,其中每个元素v表示为列向量:v(i)=[pizpi(z+1)...p(i+1)(z-1)]T,i=0,1,2,..,mb-1。
具体的,本发明提供一种QC-LDPC编码器,如图3所示,包括:RAM阵列、地址生成模块、比特预处理模块、校验序列v(0)计算模块和剩余校验序列计算模块,其中:
RAM阵列,包含mb+1个大小为z比特的RAM,RAM(0),RAM(1),...,RAM(mb),用来存储编码过程中的中间序列;该模块在编码前将各RAM初始化为全0。
地址生成模块,用于根据QC-LDPC码的基础校验矩阵中各元素值生成RAM阵列中每个RAM的读写地址;
具体的,该地址生成模块在u(i),i=0,1,...,kb-1,信息比特组输入比特预处理模块时,读取QC-LDPC码的基础校验矩阵Hb的第i列的mb个元素值Hb(j,i),j=0,1,…,mb-1,则生成比特预处理模块处理所述u(i)的首信息比特si0的mb个RAM读取地址addr(j)为:addr(j)=(z-Hb(j,i))modz;生成比特预处理模块处理所述u(i)除首信息比特si0外的其他信息比特sik的mb个RAM读取地址为:
(addr(j)+k)modz,其中k=1,2,...,z-1。
其中,如果Hb(j,i)的值为-1,则随后的z个比特输入时对RAM(j)不进行读写操作。
需要说明的是,该地址生成模块生成比特预处理模块的RAM读写地址只是一种较佳的实现方式,对于RAM读写地址也可以通过比特预处理模块自行完成。
比特预处理模块,用于将输入的信息比特序列s一路输出,另一路在计算得到编码所需的中间序列后存储到RAM阵列中。
其中,计算中间序列的过程具体为:每个信息比特sk输入时刻,该模块根据地址生成模块为处理该信息比特生成的mb个地址同时从RAM阵列中前mb个RAM中读出mb个存储的比特值,sk分别与这mb个比特值进行模2和运算,得到的mb个结果再按读取存储值的原地址存入RAM阵列中。
也就是说,若输入的信息比特sk为在u(i)信息比特组中的首比特值,则比特预处理模块根据地址生成模块基于基础校验矩阵Hb的第i列的mb个元素值生成的mb个RAM地址addr(j)=(z-Hb(j,i))modz,从这mb个RAM地址中同时读出mb个存储的比特值,将首信息比特sk分别与读取的mb个存储的比特值进行模2和运算,将得到的mb个结果按原址存入对应的RAM阵列中;
若输入的信息比特sk(k=1,2,...,z-1)为u(i)信息比特组中的非首比特值,则比特预处理模块根据地址生成模块生成的mb个RAM地址(addr(j)+k)modz,从这mb个RAM地址中同时读出mb个存储的比特值,将输入的信息比特sk分别与读取的mb个存储的比特值进行模2和运算,将得到的mb个结果按原址存入对应的RAM阵列中。
校验序列v(0)计算模块,用于计算校验序列最开始的z比特值,即v(0);
具体实现过程为:对于初始校验序列v(0)内的首比特值:
校验序列v(0)计算模块,从RAM阵列前mb个RAM的同一地址(z-hb(x))modz中读出mb个存储的比特值,然后对这mb个比特值进行模2和运算,结果即为v(0)首比特值v0(0);
对于v(0)内的剩余比特值vk(0),k=1,2,...,z-1,校验序列v(0)计算模块从RAM阵列前mb个RAM的同一地址addr(vk(0))=(addr(v0(0))+k)modz中读出mb个存储的比特值,然后对这mb个比特值进行模2和运算,结果即为v(0)内剩余比特值vk(0)。
得到初始校验序列v(0)后分三路输出,一路从RAM(mb)的首地址顺序写入;另一路按原读取地址写入RAM(mb-1)中;第三路作为v(0)的校验比特直接输出。其中,所述的原读取地址是指从RAM阵列中读比特值对应的地址。
需要说明的是,上述RAM读写地址可以通过地址生成模块生成,优选地通过校验序列v(0)计算模块自行生成。
剩余校验序列计算模块,用于计算剩余的校验位比特序列v(1),v(2),...,v(mb-1)后输出。
具体实现过程为:
对于v(1)中首比特值v0(1)的计算:从RAM(0)的首地址读出一比特数据,同时从RAM(mb)的地址(z-hb(0))modz读出一比特数据进行模2和运算,得到的结果即为v(1)的首比特值;
对于v(1)中剩余比特值vk(1),k=1,2,...,z-1,则将计算v0(1)比特值时的读取RAM地址做模z加k操作,获取计算vk(1)比特值的读取地址,将在所述读取地址中获取的比特值进行模2和运算,得到的结果即为vk(1)的比特值。
对于v(i+1)中首比特值v0(i+1),i=1,2,...,mb-2的计算:
在i+1≠x(hb(x)非负)时,则在得到v(i)的首比特值后再从RAM(i)的首地址读出一比特数据与v(i)首比特值进行模2和运算,得到的结果即为v(i+1)的首比特值;
在i+1=x(hb(x)非负)时,则在得到v(i)的首比特值后再从RAM(i)和RAM(mb-1)的首地址分别读出一比特数据与v(i)首比特值进行三个数据的模2和运算,得到的结果即为v0(i+1)的首比特值。
对于v(i+1)中剩余比特值vk(i+1),k=1,2,...,z-1的计算:
将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值。
举例说明如下:计算v(i+1)次比特v1(i+1)时,将RAM(i)和RAM(mb-1)的首地址进行模z加1操作得到RAM读写地址,从RAM阵列中读取相应存储值后与v(i)的次比特进行模2和运算,得到v(i+1)次比特;计算v2(i+1)时,将RAM(i)和RAM(mb-1)的首地址进行模z加2操作得到RAM读写地址,从RAM阵列中读取相应存储值后与v(i)的第三比特值v2(i)进行模2和运算,得到v2(i+1);而对于v(i+1)的剩余比特值按此方法递推得到。
需要说明的是,上述各校验序列中的首比特值和剩余比特值是按流水线方式并行计算的,其中所述的流水线方式是本领域技术人员的公知方式。
下面对剩余校验序列计算模块计算剩余校验序列的原理进行说明:
公知的,对于剩余校验序列的计算算法如下:
本发明计算剩余校验序列就是基于上述递推公式,到相应RAM中读取相应的数据,求取剩余校验序列的各值。
下面通过一具体示例来说明本发明的具体实现过程。
本示例以下面给出的大小为4行24列的基础矩阵为例来描述编码器的具体实现过程,即mb=4,并假设z值为256。
由上述描述的技术方案可知,该编码器中需要使用5块大小为256比特的RAM,编码前初始化为全0状态。
步骤一、比特预处理阶段,如图4所示,为比特预处理的结构框图。
编码开始时,对于第一个输入的信息比特s0,地址生成模块根据Hb的第一列的4个值得到4个RAM的读写方式。由于Hb(1,0)=-1,所以对RAM(1)不进行读写操作;然后通过addr(j)=(z-Hb(j,i))modz计算得到另外三个RAM的初始读写地址:addr(0)=255,addr(2)=205,addr(3)=206。比特s0分两路,一路作为码字的信息位直接输出;另一路与从三个RAM中读出的比特值进行模2和运算,得到的结果再原址写入三个RAM中。
然后地址生成模块再把三个RAM的读写地址做模256加1运算得到:
addr(0)=(255+1)mod256=0
addr(2)=(205+1)mod256=206
addr(3)=(206+1)mod256=257
基于上述运算得到的读写地址,再对第二个输入比特s1进行同样的处理。直到在输入第257个比特时(第257个比特值是u(1)的首比特值),地址生成模块根据Hb的第二列的4个值重新得到4个RAM的读写方式,然后对输入比特做相同处理。重复以上过程直到所有信息比特都输入完毕。
步骤二、校验序列v(0)计算阶段,如图5所示,为计算校验序列v(0)的结构框图;
从基础矩阵中可以得到hb(1)=0,首先从RAM(0),RAM(1),RAM(2),RAM(3)的同一地址(256-hb(1))mod256=0中读出4个存储的比特值,然后对这4个比特值进行模2和运算,得到v(0)首比特值,然后对该地址进行模256加1操作,即得到地址为(0+1)mod 256,从RAM(0),RAM(1),RAM(2),RAM(3)的同一地址(0+1)mod 256中读出4个存储的比特值,然后对这4个比特值进行模2和运算,得到v(0)的第二比特值;对于v(0)内的第三比特值,同样是对第二比特值的获取地址进行模256加1操作,按上述方式顺序计算出v(0)内的所有比特值。
在计算得到v(0)后,将计算得到的结果v(0)分成三路输出,其中,一路从RAM(4)的首地址顺序写入;另一路原址写入RAM(3)中;第三路作为v(0)的校验比特直接输出。
步骤三、剩余校验序列计算阶段,如图6所示,为计算剩余校验序列的结构框图。
从RAM(0)的首地址开始依次读出1比特数据,同时从RAM(4)的地址(256-hb(0))mod256=176开始对地址按模256加1的方式依次读出一比特数据,然后依次将这两个比特值进行模2和运算,从而得到校验序列v(1)的值。v(1)序列分为两路一路作为码字的校验位输出,另一路输入计算v(2)对应的模2求和计算单元。由于hb(1)=0,所以从RAM(1)和RAM(3)的首地址开始依次读出1比特数据与v(1)序列中的对应比特值进行三个数据的模2和运算,得到的结果即为v(2),并将其原址存入RAM(1)中。从RAM(2)的首地址开始依次读出1比特数据与v(2)序列中的对应比特值进行模2和运算,得到的结果即为v(3),并将其原址存入RAM(2)中。由于本阶段使用了流水线的操作,在v(1)计算完后的两个时钟节拍内v(2)和v(3)也相继计算完成,这样在v(1)输出后,v(2)和v(3)可以连续输出,使整个编码过程具有很高的实时性。
本发明所提供的方法和装置,可以对传输的信息比特进行实时编码,不需要先存储一部分后再进行计算,编码速度快;
另外,本发明所述编码方法实现简单,不需要做序列移位等复杂操作,同时存储空间得到有效的复用,占用资源较少,为降低芯片面积和制作成本提供了技术支持。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种准循环低密度奇偶校验码QC-LDPC编码方法,其特征在于,包括:
比特预处理步骤,该步骤用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
校验序列v(0)计算步骤,该步骤用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
剩余校验序列计算步骤,该步骤用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
2.如权利要求1所述的编码方法,其特征在于,所述编码器RAM阵列中包含mb+1个大小为z比特的RAM单元RAM(0),RAM(1),...,RAM(mb);所述mb为QC-LDPC码基础矩阵Hb的行数。
3.如权利要求2所述的编码方法,其特征在于,所述比特预处理步骤中:
对于所述信息比特序列中的某信息比特组u(i),i=0,1,...,kb-1的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;
对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
4.如权利要求3所述的编码方法,其特征在于,所述比特预处理步骤中在Hb(j,i)=-1时对RAM(j)不进行读写操作。
5.如权利要求2所述的编码方法,其特征在于,所述校验序列v(0)计算步骤中计算v(0)中首比特值v0(0)的RAM读写地址为:addr(v0(0))=(z-hb(x))modz;计算v(0)中剩余比特值vi(0)的RAM读写地址为:addr(vi(0))=(addr(v0(0))+i)modz;其中,i=1,2,...,z-1,z为校验序列v(0)的大小。
6.如权利要求5所述的编码方法,其特征在于,所述校验序列v(0)计算步骤具体包括:
v(0)首比特值计算步骤,该步骤用于将所述RAM阵列前mb个RAM的同一地址addr(v0(0))中读取的mb个存储值进行模2和运算得到v(0)首比特值;
v(0)剩余比特值计算步骤,该步骤用于将所述RAM阵列前mb个RAM的同一地址addr(vi(0))中读取的mb个存储值进行模2和运算得到v(0)剩余比特值。
7.如权利要求2或5或6所述的编码方法,其特征在于,所述校验序列v(0)计算步骤中将计算得到的v(0)写入所述RAM阵列具体为:将计算得到的v(0)中各值一路从RAM(mb)的首地址顺序写入,另一路按原RAM读写地址存入RAM(mb-1)中。
8.如权利要求2所述的编码方法,其特征在于,所述剩余校验序列计算步骤具体包括:
校验序列v(1)计算步骤,该步骤用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,..,mb-2计算步骤,该步骤用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值,k=1,2,..,z-1。
9.一种准循环低密度奇偶校验码QC-LDPC编码器,其特征在于,包括:
比特预处理模块,用于在信息比特序列输入编码器时,一路作为码字的信息比特输出,另一路则基于处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址,将每个输入的信息比特值与在所述RAM阵列中读取的存储值进行模2和运算,得到中间序列后按原读写地址存入所述RAM阵列中;
校验序列v(0)计算模块,用于基于计算v(0)所需的RAM阵列中RAM的读写地址,在所述RAM阵列中读取存储的中间序列,并利用模2和运算计算得到v(0)后,一路写入所述RAM阵列,另一路作为校验比特输出;
剩余校验序列计算模块,用于基于剩余校验序列递推公式,读取所述RAM阵列中存储的中间序列和v(0),通过流水线方式并行计算出剩余的校验序列后输出。
10.如权利要求9所述的编码器,其特征在于,所述编码器RAM阵列中包含mb+1个大小为z比特的RAM单元RAM(0),RAM(1),...,RAM(mb);所述mb为QC-LDPC码基础矩阵Hb的行数。
11.如权利要求10所述的编码器,其特征在于,还包括:
地址生成模块,用于生成所述比特预处理模块处理各信息比特值所需的编码器RAM阵列中各RAM的读写地址;其中,对于所述信息比特序列中的某信息比特组u(i),i=0,1,...,kb-1,的首信息比特值si0,所述RAM阵列的读写地址为addr(j)=(z-Hb(j,i))modz;对于信息比特分组u(i)中剩余信息比特值sik,k=1,2,...,z-1,,所述RAM阵列的读写地址为(addr(j)+k)modz;
其中,所述Hb(j,i),j=0,1,...,mb-1,为所述基础矩阵Hb中的元素;kb为信息比特序列的分组数,z为每个信息比特分组u(i)的大小。
12.如权利要求11所述的编码器,其特征在于,所述比特预处理模块在Hb(j,i)=-1时对RAM(j)不进行读写操作。
13.如权利要求10所述的编码器,其特征在于,所述校验序列v(0)计算模块包括:
v(0)首比特值计算子模块,用于将所述RAM阵列前mb个RAM的同一地址addr(v0(0))=(z-hb(x))modz中读取的mb个存储值进行模2和运算得到v(0)首比特值;
v(0)剩余比特值计算子模块,用于将所述RAM阵列前mb个RAM的同一地址addr(vi(0))=(addr(v0(0))+i)modz,i=1,2,...,z-1中读取的mb个存储值进行模2和运算得到v(0)剩余比特值,其中,z为校验序列v(0)的大小。
14.如权利要求10或13所述的编码器,其特征在于,所述校验序列v(0)计算模块中将计算得到的v(0)写入所述RAM阵列具体为:将计算得到的v(0)中各值一路从RAM(mb)的首地址顺序写入,另一路按原RAM读写地址存入RAM(mb-1)中。
15.如权利要求10所述的编码器,其特征在于,所述剩余校验序列计算模块包括:
校验序列v(1)计算子模块,用于将从RAM(0)的首地址和RAM(mb)的(z-hb(0))modz地址中分别读出的一比特值进行模2和运算后得到v(1)首比特值;再将上述读取地址进行模z加k操作,分别得到v(1)中剩余比特值,k=1,2,..,z-1;
校验序列v(i+1),i=1,2,...,mb-2计算子模块,用于将v(i)的首比特值、从RAM(mb-1)首地址读取的比特值,以及从RAM(i)首地址读取的比特值进行模2和运算,得到v(i+1)的首比特值;再将上述读取地址进行模z加k操作得到RAM读取地址,将基于该读取地址获取的比特值与v(i)的第k个比特值进行模2和运算,得到v(i+1)中剩余比特值,k=1,2,..,z-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010264523.9A CN102377437B (zh) | 2010-08-27 | 2010-08-27 | 一种准循环低密度奇偶校验码编码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010264523.9A CN102377437B (zh) | 2010-08-27 | 2010-08-27 | 一种准循环低密度奇偶校验码编码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102377437A true CN102377437A (zh) | 2012-03-14 |
CN102377437B CN102377437B (zh) | 2014-12-10 |
Family
ID=45795515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010264523.9A Active CN102377437B (zh) | 2010-08-27 | 2010-08-27 | 一种准循环低密度奇偶校验码编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102377437B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843146A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的深空通信中ldpc并行编码器和编码方法 |
CN102843151A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的cmmb中ldpc并行编码器和编码方法 |
CN103391104A (zh) * | 2012-05-10 | 2013-11-13 | 中兴通讯股份有限公司 | 低密度奇偶校验码ldpc编码处理方法及装置 |
CN103634014A (zh) * | 2012-08-24 | 2014-03-12 | 中兴通讯股份有限公司 | 一种ldpc编码方法及装置 |
CN105099467A (zh) * | 2014-04-21 | 2015-11-25 | 华为技术有限公司 | Qc-ldpc码的编码方法及编码装置 |
CN107959501A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc编码器 |
CN107959502A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc编码方法 |
CN107959500A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | Ldpc编码器的构造方法 |
WO2018171043A1 (zh) * | 2017-03-24 | 2018-09-27 | 中兴通讯股份有限公司 | 一种准循环低密度奇偶校验编码处理方法及装置 |
US11477065B2 (en) | 2015-04-15 | 2022-10-18 | Zte Corporation | Method and apparatus for code block division |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862971A (zh) * | 2005-05-11 | 2006-11-15 | 电子科技大学 | 一种低密度校验码高速编码方法 |
CN101093999A (zh) * | 2007-07-24 | 2007-12-26 | 厦门大学 | 基于流水线工作方式的ldpc码译码器 |
CN101212277A (zh) * | 2006-12-29 | 2008-07-02 | 中兴通讯股份有限公司 | 支持多协议标准的ldpc码译码装置 |
-
2010
- 2010-08-27 CN CN201010264523.9A patent/CN102377437B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862971A (zh) * | 2005-05-11 | 2006-11-15 | 电子科技大学 | 一种低密度校验码高速编码方法 |
CN101212277A (zh) * | 2006-12-29 | 2008-07-02 | 中兴通讯股份有限公司 | 支持多协议标准的ldpc码译码装置 |
CN101093999A (zh) * | 2007-07-24 | 2007-12-26 | 厦门大学 | 基于流水线工作方式的ldpc码译码器 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391104A (zh) * | 2012-05-10 | 2013-11-13 | 中兴通讯股份有限公司 | 低密度奇偶校验码ldpc编码处理方法及装置 |
CN103634014A (zh) * | 2012-08-24 | 2014-03-12 | 中兴通讯股份有限公司 | 一种ldpc编码方法及装置 |
CN102843146A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的深空通信中ldpc并行编码器和编码方法 |
CN102843151A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的cmmb中ldpc并行编码器和编码方法 |
CN105099467B (zh) * | 2014-04-21 | 2019-02-01 | 华为技术有限公司 | Qc-ldpc码的编码方法及编码装置 |
CN105099467A (zh) * | 2014-04-21 | 2015-11-25 | 华为技术有限公司 | Qc-ldpc码的编码方法及编码装置 |
US11477065B2 (en) | 2015-04-15 | 2022-10-18 | Zte Corporation | Method and apparatus for code block division |
CN107959501A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc编码器 |
CN107959502A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc编码方法 |
CN107959500A (zh) * | 2016-10-17 | 2018-04-24 | 上海数字电视国家工程研究中心有限公司 | Ldpc编码器的构造方法 |
WO2018171043A1 (zh) * | 2017-03-24 | 2018-09-27 | 中兴通讯股份有限公司 | 一种准循环低密度奇偶校验编码处理方法及装置 |
US11368169B2 (en) | 2017-03-24 | 2022-06-21 | Zte Corporation | Processing method and device for quasi-cyclic low density parity check coding |
US11843394B2 (en) | 2017-03-24 | 2023-12-12 | Zte Corporation | Processing method and device for quasi-cyclic low density parity check coding |
Also Published As
Publication number | Publication date |
---|---|
CN102377437B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377437B (zh) | 一种准循环低密度奇偶校验码编码方法和装置 | |
CN101227194B (zh) | 用于并行bch编码的电路、编码器及方法 | |
CN101192833B (zh) | 一种低密度校验码ldpc并行编码的装置及方法 | |
US10536169B2 (en) | Encoder and decoder for LDPC code | |
CN102437857B (zh) | 一种ira-ldpc码的构造方法及其编码器 | |
CN101902228B (zh) | 快速循环冗余校验编码方法及装置 | |
CN101699770B (zh) | 一种高速ldpc码编码器及其编码方法 | |
CN101489135B (zh) | 一种方便ldpc长码在fpga实现的编码器及编码方法 | |
CN102751995A (zh) | 一种基于fpga的抗多位错误翻转rs码检错纠错系统 | |
CN100546207C (zh) | 一种基于DVB-RCS标准的双二元Turbo码译码方法 | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN102412844B (zh) | 一种ira类ldpc码的译码方法及译码装置 | |
CN101800627A (zh) | 一种多码率兼容的高速ldpc编码器的硬件实现 | |
Park et al. | Irregular product coded computation for high-dimensional matrix multiplication | |
CN103259544A (zh) | 共享存储机制的dtmb中准循环ldpc串行编码器 | |
CN102725964A (zh) | 一种编码方法、译码方法及编码装置、译码装置 | |
CN102761340A (zh) | 一种bch并行编码电路 | |
CN110166060A (zh) | 高吞吐流水线型极化码bp译码器及其实现方法 | |
CN102611465B (zh) | 结构化多元非规则重复累积码的编码器与编码方法 | |
WO2007082626A2 (en) | Method and apparatus for error correction decoding | |
CN103036577B (zh) | 一种低复杂度的低密度奇偶校验ldpc码编码电路结构 | |
CN103634014A (zh) | 一种ldpc编码方法及装置 | |
CN202856718U (zh) | 一种基于fpga的抗多位错误翻转rs码检错纠错系统 | |
CN103269228B (zh) | 共享存储机制的cmmb中准循环ldpc串行编码器 | |
CN108347250A (zh) | 适用于少量冗余里德-所罗门码的快速编码方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151125 Address after: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice Patentee after: ZTE Corporation Patentee after: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD. Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice Patentee before: ZTE Corporation |