CN102437857A - 一种ira-ldpc码的构造方法及其编码器 - Google Patents
一种ira-ldpc码的构造方法及其编码器 Download PDFInfo
- Publication number
- CN102437857A CN102437857A CN2011104114811A CN201110411481A CN102437857A CN 102437857 A CN102437857 A CN 102437857A CN 2011104114811 A CN2011104114811 A CN 2011104114811A CN 201110411481 A CN201110411481 A CN 201110411481A CN 102437857 A CN102437857 A CN 102437857A
- Authority
- CN
- China
- Prior art keywords
- bit
- signal
- input
- check digit
- 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.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明属于无线通信信道编码技术领域,具体涉及一种高性能IRA-LDPC码的代数构造方法和相应的低复杂度快速编码器。代数构造方法包括步骤:构造剩余类数对阵列的方法和表达式;设计剩余类数对的第一个参数的方法和表达式;设计剩余类数对的第二个参数的方法和表达式;计算奇偶校验矩阵中每个“1”元素所在位置的行坐标的方法和表达式。编码器包括:编码器总体结构模块和电路;编码使能信号生成模块和电路;可并行执行的校验位选择信号发生器子模块和电路;可并行执行的校验位计算与存储子模块和电路;编码数据输出模块和电路。
Description
技术领域
本发明属于无线通信信道编码技术领域,具体涉及一种高性能IRA-LDPC码的代数构造方法及相应的编码器结构。本发明可作为移动通信、固定无线通信、卫星通信和空间通信的长期演进(LTE)工业标准中物理层前向纠错码的最佳选择方案之一。
背景技术
信道纠错码技术主要用于解决传输可靠性问题,本发明所涉及的IRA-LDPC码是一种性能接近香农限,并能高速运行的信道纠错编码技术。
LDPC码本质上是一种线性分组码,它是由稀疏奇偶校验矩阵H来定义的,LDPC码的码字序列与H矩阵互为零空间,即这个方程也称为校验方程,由此可知,对LDPC码的结构设计主要是对稀疏奇偶校验矩阵H的结构设计。LDPC码是利用置信传播(Belief Propagation)迭代解码算法进行解码的,BP解码算法是在H矩阵确定的Tanner图上传递置信信息来进行迭代计算的。初期,LDPC码没有特定的编码方法,通常情况下,特别是前期在性能仿真实验过程中,是将LDPC码的H矩阵经行列变换转换成生成矩阵,然后用生成矩阵进行编码。从H矩阵到生成矩阵的变换计算量大约为码长的平方,并且虽然H矩阵是一个稀疏矩阵(即矩阵中的元素大部分是‘0’,为‘1’的元素数量非常少),但经过行列变换得到的生成矩阵却不一定是稀疏矩阵,因此利用生成矩阵编码效率极低。为了降低编码器的复杂度,在设计实用的LDPC码时,都是将H矩阵设计成有利于编码的形式,这样可以不通过生成矩阵,而是直接利用H矩阵进行编码。目前在工业标准中采纳的LDPC码有下列两种结构特征:一种是IRA-LDPC码;另一种是QC-LDPC码。它们都可以直接利用H矩阵进行编码,而不用求出对应的生成矩阵,并且可以做到编码算法为码长的线性复杂度。
2001年,Hui Jin在其博士论文《Analysis and design of turbo-like codes》中提出不规则重复积累(Irregular Repeat-Accumulate,)码,简称IRA码。他从理论上证明了在删余信道上,IRA码是迄今为止唯一的香农信道容量可达码类,而且在高斯白噪声(AWGN)信道上,IRA码也显示出逼近香农容量限的优良性能。IRA码的编码器可以看作由一个低密度生成(LDGM)矩阵和一个重复累加器级联而成,由编码器的结构可以写出对应的H矩阵。这个H矩阵的系统形式为H=[Hd Hp],其中Hp矩阵具有确定的双对角线结构:
表达式(1)的Hp矩阵对应于IRA码编码器中的重复累加器;而信息码位对应的Hd矩阵中‘1’元素的分布是不确定的,对应于IRA码编码器中的低密度生成矩阵。因此,设计实用IRA码的主要任务就是设计Hd矩阵的结构。IRA码可以看作LDPC码的一个子类,本发明中把由双对角线Hp矩阵构成的H矩阵所定义的IRA码,称为IRA-LDPC码。
在应用方面,2005年,欧洲卫星通信标准《Digital Video Broadcasting(DVB);Second generation framing structure,channel coding and modulation systems forBroadcasting,Interactive Services,News Gathering and other broadbandsatellite applications》(简称DVB-S2标准)采纳了IRA-LDPC码作为前向纠错码的主要方案。标准中没有给出IRA-LDPC码的Hd矩阵结构,只给出了编码表和相应的编码算法,而且标准中没有介绍编码表是如何产生,因此构造编码器时必须消耗大量的ROM空间来存储编码表中的每一个数字。
发明内容
为克服DVB-S2标准中采纳的IRA-LDPC码需要大量ROM空间来存储编码表的缺点,本发明提供了一种IRA-LDPC码的构造方法,本发明解决了IRA-LDPC码Hd矩阵的存储空间问题,而且对应的编码器硬件复杂度更低,运行速度更快,仿真性能也略有优势,能更好的在无线通信的实际工程中得到应用。
本发明提供的一种IRA-LDPC码的构造方法,若所构造的IRA-LDPC码信息位长度为A、校验位长度为B,所构造的Hd矩阵的尺寸为B×A,所述Hd矩阵设定的约束条件为:(一)信息位长度A和校验位长度B存在大于1的公因数L;(二)Hd矩阵被分解为k个子矩阵每个子矩阵的尺寸是B×L,其中k=A/L;(三)Hd矩阵的行重量只有一种,用u表示;(四)Hd矩阵的列重量最多有k种,最少是两种,分别用v0,v1,...,vk-1表示;(五)每个子矩阵的第一列循环下移m位,得到第二列,作依次循环下移m位操作,得到整个Hd矩阵,其中m=B/L,要求m+1是素数,这个操作等效于计算每个子矩阵的第ρ列第ψ个“1”元素的行坐标(六)Hd矩阵采用其紧凑形式的剩余类数对阵列表示,剩余类数对阵列的存储形式为阵列,其特征在于和结构形式如(I)和(I’)式:
表达式(I)中每一列剩余类数对的数量是不等的,由各个子矩阵的列重量v0,v1,...,vk-1确定;表达式(I)中每一行剩余类数对的数量是相等的,均为行重量u;阵列的尺寸为m×k,阵列中剩余类数对的总数为由于k>u,所以阵列是稀疏的,阵列中每一个位置的元素为一个整数对(rθ,δ qθ,δ),其中(rθ,δ qθ,δ)∈{Φ}∪{(rψ,γ qψ,γ)|ψ=0,1,...,vδ-1,γ=0,1,...,u-1}表示阵列中的一个元素,(rψ,γ qψ,γ)是剩余类数对,Φ是空集;表达式(I’)中的是阵列的存储结构;
构造剩余类数对阵列需要设计剩余类数对中的第一个参数rθ,γ=rψ,γ,设计rθ,γ=rψ,γ的方法是:对于m=B/L且满足m+1是素数,基于有限域GF(m+1)上的有限循环乘群至少有u个生成元g0,g1,...,gu-1,利用u生成元的1,2,...,m次幂,生成m×u个rθ,γ=rψ,γ元素,计算表达式如(II)式:
rθ,γ=rψ,γ=[(gγ)θ+1-1](mod(m+1)) (II)
根据剩余类数对阵列能够计算Hd矩阵中每一个“1”元素所在位置的行坐标,设Hd矩阵的第δ(δ=0,1,...,k-1)个子矩阵的第ρ(ρ=0,1,...,L-1)列第ψ(ψ=0,1,...,vδ-1)个“1”元素的行坐标的计算表达式为(IV)式:
最后,利用上述构成的Hd矩阵,即可得到系统形式H矩阵H=[Hd Hp],其中Hp矩阵具有确定的双对角线结构。
本发明提供一种IRA-LDPC码的编码器,其特征在于,在可编程逻辑器件(包括CPLD和FPGA)环境下的编码器硬件电路结构设计,包括:附图2的IRA-LDPC码编码器的总体电路结构、附图3的编码器使能信号生成模块ECEN、附图4的校验位选择信号发生器子模块PCθ、附图5的校验位计算与储存子模块PSθ和附图6的编码数据输出模块DATA-OUT、主时钟输入端口、信息位数据串行输入端口、R/W控制信号输入端口和编码数据串行输出端口;
编码使能信号生成模块ECEN用于将阵列中每个数对(rθ,δqθ,δ)的第一个元素rθ,δ值,离线转换成m×k个二进制值,将这m×k个使能信号分成k个分组,每个分组m位使能信号并行输出至校验位选择信号发生器子模块和校验位计算与存储子模块,为它们提供使能控制信号E;
校验位选择信号发生器模块由m个并行的校验位选择信号发生器子模块PCθ构成,θ=0,1,...,m-1;校验位选择信号发生器子模块PCθ用于计算出qθ,γ元素的值,并由qθ,γ元素的值确定位的选择信号ch输出,选通校验位计算与存储子模块PSθ的L个1位寄存器阵列中的某一个寄存器参与的计算与储存;
校验位计算与存储模块由m个并行的校验位计算与存储子模块PSθ构成,θ=0,1,...,m-1;m个PSθ中的L个1位寄存器阵列用来完成B位校验位的中间结果的计算与储存;m个PSθ向编码数据输出模块输出
yθ~yθ+(L-1)m,θ=0,1,...,m-1;
编码数据输出模块DATA-OUT根据m个子模块PSθ传来的 完成校验位的迭代累加计算,即p0=y0,p1=p0+y1,p2=p1+y2,...,pB-1=pB-2+yB-1,并由编码数据串行输出端口d-out输出编码码字;
一个主时钟周期输入端口CLK,产生两个分频时钟,L分频时钟CLK1和m分频时钟CLK2;
一个1比特的信息位数据串行输入端口d-in,每个CLK周期输入一个信息位;
一个1比特的R/W控制信号输入端口,每个CLK周期产生一个R/W信号,有信息序列输入时,设置R/W=0;无信息序列输入时,设置R/W=1;
一个1比特的编码数据串行输出端口d-out,每个CLK周期输出一个编码位。
本发明的主要目的是提供一种基于剩余类数对代数结构的IRA-LDPC码Hd矩阵的构造方法,及其相应的编码器硬件结构,并将这种码称为基于剩余类数对的IRA-LAPC码。与DVB-S2标准中使用的IRA-LDPC码(需要存储整个编码表)不一样的特征是,由本发明提供的方法构造出来的IRA-LDPC码其Hd矩阵中每个‘1’元素的位置坐标均可以由代数表达式计算得到。本发明所设计的IRA-LDPC码与现有工业标准中的LDPC码(包括DVB-S2标准中的IRA-LDPC码和IEEE802.16e标准中的不规则QC-LDPC码)相比性能相当,甚至更好,占用的存储器容量更少,编码器的硬件实现复杂度更低,所占用的芯片面积更小。
附图说明
附图1为本发明方法的流程图;
附图2为本发明设计的IRA-LDPC码编码器的总体电路结构示意图;
附图3为本发明设计的IRA-LDPC码编码使能信号生成模块ECEN;
附图4为本发明设计的IRA-LDPC码校验位选择信号发生器子模块PCθ;
附图5为本发明设计的IRA-LDPC码校验位计算与储存子模块PSθ;
附图6为本发明设计的IRA-LDPC码编码数据输出模块DATA-OUT。
具体实施方式
本发明的IRA-LDPC编码器的构造方法包括两部分:第一部分是构造Hd矩阵,以及根据Hd完成H=[Hd Hp]的构造;第二部分是根据Hd矩阵的结构特征设计IRA-LDPC码的编码器的电路结构。下面我们首先介绍本发明要用到的数学概念;接着描述第一部分Hd(或H)矩阵的结构特征和构造方法;然后描述第二部分编码器的基本工作原理、构造方法、电路结构和工作过程;最后给出一个实例。
构造Hd矩阵时使用了剩余类和有限循环乘群等数学原理,其基本概念描述如下:
剩余类:由同余概念可将全体整数加以分类,把余数相同的归为一类。设n表示模数,r和q为二个变量,0≤r<n,q为整数,即由f=qn+r定义余数同为r的整数构成一个集合所有整数可划分为n个这样的集合,也称为n个剩余类。显然,任意整数必属于n个剩余类中的一个。
定义[剩余类数对]:从表达式f=qn+r中提取两个数r和q,构成数偶对(r q),称为剩余类数对,表示以模n划分剩余类,在剩余类中的第q个元素是f。例如,设模数为n=5,(r q)=(23)表示剩余类中的第3个元素为f=17=3×5+2,(r q)=(30)表示剩余类中的第0个元素为f=3=0×5+3。
有限循环乘群:由一个单独元素的一切幂次所构成的群称为循环群,该元素称为循环群的生成元。若GF(n)有限域中除0外的所有元素都可以由域中的某个元素g的幂次构成,则称GF(n)域中除0外的元素构成一个有限循环乘群,g称为这个有限循环乘群的生成元。
本发明申请书中所使用的符号规定如下:结构描述符号如码长、信息位长度等用26个英文字母表示,下标、上标和索引用希腊字母表示。H=[Hd Hp]表示IRA-LDPC码的稀疏奇偶校验矩阵,其中Hd表示本发明要构造的信息位所对应的稀疏奇偶校验矩阵,Hp表示校验位所对应的双对角线矩阵。A表示信息位长度或Hd的列数,B表示校验位长度或Hd的行数,N表示码长,N=A+B,R表示码率,R=A/N。δ=0,1,...,k-1表示Hd所分解的子矩阵的数量索引,表示Hd所分解的第δ个子矩阵,即L表示A和B的某个大于1的公因数,也表示的列数,ρ=0,1,...,L-1表示列数的索引。是Hd的一种紧凑表示形式,称为剩余类数对阵列,表示阵列的存储结构。k=A/L表示Hd所分解的子矩阵的数量或的列数,δ=0,1,...,k-1亦表示列数的索引;m=B/L表示的行数或表示被并行执行的使能信号的数量,θ=0,1,...,m-1表示的行索引或并行输出m个使能信号的索引。表示信息序列(或矢量),其中dη表示信息位的值,η=0,1,...,A-1表示信息位索引或Hd的列索引;表示校验位序列(或矢量),其中表示校验位的值,表示校验位索引或Hd的行索引;表示码位序列(或码矢量)。u表示Hd的行重量,γ=0,1,...,u-1表示Hd每一行中“1”元素的数量索引或的每一行中剩余类数对的数量索引;vδ表示的列重量,ψ=0,1,...,vδ-1表示的每一列中“1”元素的数量索引,vmin和vmax分别表示Hd的最小列重量和最大列重量。表示中第δ个列矢量,T表示阵列、矢量或矩阵的转置。(rθ,δqθ,δ)表示中第θ行第δ列的元素,(rψ,γqψ,γ)表示阵列中的某一个剩余类数对,Φ表示不包含剩余类数对的空集。令表示不大于x的最大整数)表示Hd的第η列位于的第κ个子矩阵中,令σ=η(modL)表示Hd的第η列位于子矩阵的第σ列。(rψ,γqψ,γ),(rψ,κqψ,κ),(rψ,δqψ,δ)和(rθ,γqθ,γ)均表示中的同一个剩余类数对。g0,g1,...,gγ,...,gu-1表示基于有限域GF(m+1)的循环乘群的u个生成元;表示以1,2,3,...,m为幂次由u个生成元所生成的m×u个元素。表示每个生成元的m+1次幂是它本身。eψ,δ表示子矩阵中第1列第ψ个“1”元素的行坐标,表示由剩余类数对(rψ,δqψ,δ)计算出来的第δ个子矩阵第ρ列第ψ个“1”元素的行坐标。表示Hd中第η列(位于第κ个子矩阵中)第ψ个“1”元素的行坐标。表示Hd中第行第η列的元素值;表示Hd中第行第η列的元素值与第η个输入信息位dη的乘积;表示Hd中第行的所有乘积项的和,即
本发明第一部分所构造的Hd矩阵结构特点如下:Hd矩阵的维数为B×A,信息位长度A和校验位长度B存在大于1的公因数L(若不存在,则不属于本发明考虑的范围之内)。Hd矩阵可分解为k(k=A/L)个子矩阵,即 每个子矩阵的维数是B×L。本发明规定Hd矩阵是等行重量的,行重量为u。Hd矩阵最多有k个不同的列重量,最少有2个不同的列重量,设vδ(δ=0,1,...,k-1)表示Hd的列重量,Hd矩阵的最小列重量为vmin=3,最大列重量为3<vmax≤m。vδ也表示矩阵第一列中‘1’元素的个数。对矩阵,除了第一列外,其余各列都是将前一列循环下移m次得到的,则矩阵中各列的重量相同(即每列中‘1’元素的个数相同)。因此只用设计每个矩阵第一列‘1’元素所在行坐标,就能得到整个Hd矩阵。本发明规定每个矩阵第一列‘1’元素的行坐标用一个剩余类数对(rψ,γqψ,γ)来计算。为此,本发明构造了下列Hd矩阵的紧凑表示形式,称为剩余类数对阵列
其中(rθ,δqθ,δ)∈{Φ}∪{(rψ,γqψ,γ)|ψ=0,1,...,vδ-1,γ=0,1,...,u-1}。的尺寸是m×k维,规定m+1必须是素数。阵列中剩余类数对的数量可以推导如下:Hd矩阵中“1”元素的总数为消去L得到每个子矩阵中第一列“1”元素的总数为这也是中剩余类数对的总数。显然,中每一列剩余类数对的数量不一定相等,由各个子矩阵的列重量v0,v1,...,vδ,...,vk-1确定;中每一行剩余类数对的数量是相等的,均为Hd矩阵的行重量u,通常k>u,所以阵列是稀疏的。需要强调的是表达式(2)的阵列不是数学意义上的矩阵,它是本专利所发明的专门用来表示Hd矩阵的一种紧凑的阵列结构。
阵列还可以写成更紧凑的形式 其中表示剩余类数对列矢量 这里Rθ,δ∈{(rψδqψ,δ),Φ}。中剩余类数对(rψ,δqψ,δ)的数量由列重量vδ确定,子矩阵中第一列的第ψ(ψ=0,1,...,vδ-1)个1元素的行坐标,也是中第ψ(ψ=0,1,...,vδ-1)个剩余类数对所决定的‘1’元素的行坐标的计算表达式为:
eψ,δ=(rψ,δ+m×qψ,δ)(mod B) (3)
我们将剩余类数对的表示方法扩展到整个Hd矩阵中的每个“1”元素,也就是计算Hd矩阵的第δ(δ=0,1,...,k-1)个子矩阵的第ρ(ρ=0,1,...,L-1)列第ψ(ψ=0,1,...,vδ-1)个“1”元素的行索引(行坐标),表达式(3)扩展如下:
Hd矩阵中每个“1”元素的位置坐标还有另一种表示方法。由于等效于δ=0,1,...,k-1,Hd矩阵中第η列等效于第κ个子矩阵的第σ列中,那么Hd矩阵第η列第ψ个“1”元素的行坐标值由剩余类数对(rψ,κqψ,κ)计算如下:
本发明第一部分Hd(或H)矩阵的构造方法主要包括阵列中剩余类数对(rψ,γqψ,γ)每个元素rψ,γ和qψ,γ的设计、剩余类数对阵列和的排列结构设计、根据剩余类数对阵列和计算Hd矩阵中‘1’元素位置坐标eψ,δ或如图1所示,具体包括以下步骤:
第1步,设计剩余类数对中的第一个元素rθ,γ(rψ,γ),θ=0,1,...,m-1,γ=0,1,...,u-1。rθ,γ以剩余类数对第一个元素的形式分布在m×k的阵列中。在阵列中一共有m×u个rθ,γ,其中共有m个不同的rθ,γ值,rθ,γ∈{0,1,2,...,m-1}。同一行的rθ,γ值是相同的,或者说一共有m组,每一组u个值是相同的,相同的rθ,γ值放在同一行中。本发明采用由u个生成元g0,g1,...,gu-1经乘法群结构计算产生m×u个rθ,γ值。设rθ,γ的m×u个值用表示,以u个生成元g0,g1,...,gu-1的m次幂来计算rθ,γ的表达式定义为:
rθ,γ=rψ,γ=[(gγ)θ+1-1](mod(m+1)) (6)
将(6)式计算出来的m×u个rθ,γ值按θ行索引γ列索引的方式排列得到如下的[rθ,γ]m×u:
在[rθ,γ]m×u中,元素值的特点是:对大于m的值取mod(m+1),一共有m个不同元素,每个元素从序列0,1,...,m-1中取值,每个元素值出现u次。
第2步,设计剩余类数对中的第二个元素qθ,γ。若剩余类数对中的rθ,γ值按上述(7)的方式计算和排列,则该剩余类数对中的m×u个qθ,γ的值由下列表达式计算得到:
(7)式中取出一个rθ,γ值,就能由(8)式计算出一个qθ,γ值。
第3步,设计剩余类数对阵列的存储结构为了便于描述,以Hd矩阵中存在两种列重量为例,最小列重量vmin=3,最大列重量vmax可以是大于3不大于m的任意正整数,即3<vmax≤m。设阵列中每列有vmin=3个剩余类数对的列数为j列(或Hd矩阵中每列有vmin=3个“1”元素的列为j×L列),阵列中每列有vmax个剩余类数对的列数为k-j列(或Hd矩阵中每列有vmax个“1”元素的列为(k-j)×L列)。的结构如下:
式(9)的剩余类数对阵列的存储结构具体描述如下:首先,是计算机软件搜索最优的存储结构,在阵列中按列放置的所有剩余类数对在中按行放置,如阵列中的第一列(包括剩余类数对和空集Φ)在中为第一行,并且是连续放置,每个剩余类数对之间没有空格或空集元素Φ。其次,式(7)中计算出的rθ,γ值与式(9)中剩余类数对的位置关系是:在(7)中按列取值,每次取一列m个元素,在(9)的阵列中按行顺序放置在剩余类数对的第一个位置上。最后,本发明在搜索得到后,也可将其转换为(2)式的剩余类数对阵列的定义结构形式,其转化方式如下:取的第一行的vmin(或vmax)个剩余类数对放到阵列的第一列中,每个剩余类数对在阵列中各列的行索引由剩余类数对的第一个元素的值确定,在阵列的各列中,没有剩余类数对的位置上放置空集元素Φ。
第4步,根据阵列可以确定每个子矩阵第一列的每个‘1’元素的行坐标,具体操作如下:取第一行的vmin(或vmax)个剩余类数对,利用(3)式计算第一个子矩阵第一列的每个‘1’元素的行坐标;用同样的方法,计算每个子矩阵第一列的每个‘1’元素的行坐标。对每个子矩阵从第一列开始到第L列依次作循环下移m位操作,就能得到整个Hd矩阵。也可以直接利用(4)或(5)式计算Hd矩阵中每一列的每个‘1’元素的行坐标。
第5步,利用上述构成的Hd矩阵,即可得到系统形式H矩阵H=[Hd Hp],其中Hp矩阵具有确定的双对角线结构。
综上所述,只用存储A、B、L、u、vδ(δ=0,1,...,k-1)、gγ(γ=0,1,...,u-1)这几个结构参数就能表示Hd矩阵,存储这些结构参数需要的空间远少于DVB-S2标准中存储一个编码表所需要的空间。
本发明第二部分IRA-LDPC码编码器的工作原理描述如下:LDPC码编码的目的是由信息序列计算出校验序列从而得到码字序列 本发明提供的基于剩余类数对的IRA-LDPC码的编码算法基本原理与许多文献中发表的IRA-LDPC码编码算法基本原理是相似的,区别在于Hd矩阵的结构设计不同,导致了不同的编码器硬件电路的设计差别。根据将奇偶校验矩阵H和码字矢量分解为信息位对应的部分和校验位对应的部分,即:
则IRA-LDPC码编码算法的一般递归计算表达式如下:
由于(1)式的Hp矩阵设计成了双对角线形式,在求解(11)式时,不需要对Hp矩阵求逆,而是根据(12)式,先求得第一行对应的校验位p0,然后采用回代和递推的方式求得p1,p2,...,pB-1。从(12)的递归表达式可以看出,第一,IRA-LDPC码的编码算法是串行算法;第二,主要的计算任务是完成求和运算构造Hd矩阵的方法不同,决定了实现的硬件电路的不同,编码器的硬件实现复杂度也不同,本发明采用剩余类数对构造Hd矩阵给出了到目前为止最简单的计算的硬件电路结构。
本发明第二部分IRA-LDPC码编码器的构造方法描述如下。编码器的主要功能是:拥有B=m×L个寄存器组形成的阵列,对Hd矩阵每一行编码器能计算的值,并存入到B个寄存器阵列中。在硬件执行过程中,我们将(12)式分解成两个过程,先完成累加求和再完成递归求和p0=y0,p1=p0+y1,...,pB-1=pB-2+yB-1。累加计算过程由输入信息序列控制,每输入一个信息位dη,就计算这个dη所对应的Hd矩阵第η列的vδ个二进制乘法ψ=0,1,...,vδ-1;这vδ个乘法在B个寄存器阵列中的位置由行坐标确定;对于Hd矩阵的每一行而言,每计算一个就累加一次,直到所有信息位输入完后,每一行所对应的B个寄存器阵列中的每一个寄存器均完成了u个乘积项sψ,γ的求和,即
编码器硬件执行具体操作步骤如下:
1)初始化,令
2)依次读入信息位dη(η=0,1,...,A-1),用表达式(5)计算Hd矩阵第η列中‘1’元素所在行坐标,所得到的行坐标的值分别记为(其中),作为B=m×L个寄存器阵列的指针,由行坐标所对应的vδ个寄存器中均保存dη的值,用来完成乘积项的操作。当dη=1时,将B个寄存器中以寻址的vδ个位置中的值取反;当dη=0时,这vδ个位置中的值不变。当dη(η=0,1,...,A-1)信息位输入完成后,B个寄存器的每一个就完成了乘积项的累加求和操作。
3)计算校验位p0=y0,p1=p0+y1,p2=p1+y2,...,pB-1=pB-2+yB-1,编码后的输出码字为
本发明第二部分的基于可编程逻辑器件(包括CPLD和FPGA)的IRA-LDPC码编码器硬件电路结构和工作过程描述如下。IRA-LDPC码编码器的总体结构如图2所示,包括如下四种功能处理模块和四个端口:
一个编码使能信号生成模块,用ECEN表示;
校验位选择信号发生器模块由m个并行的校验位选择信号发生器子模块构成,每个子模块由PCθ(θ=0,1,...,m-1)表示;
校验位计算与存储模块由m个并行的校验位计算与存储子模块构成,每个子模块由PSθ(θ=0,1,...,m-1)表示;
一个编码数据输出模块,用DATA-OUT表示;
主时钟信号输入端口CLK,产生两个分频时钟信号,即L分频时钟信号输入端口CLK1和m分频时钟信号输入端口CLK2;
一个1比特的信息位数据串行输入端口,用d-in表示,每个CLK周期输入一个信息位;
一个1比特的R/W控制信号输入端口,每个CLK周期产生一个R/W信号。有信息序列输入时,设置R/W=0;无信息序列输入时,设置R/W=1;
一个1比特的编码数据串行输出端口,用d-out表示,每个CLK周期输出一个编码位。
在图2的编码器总体结构中,各模块与端口之间的相互关系和工作过程描述如下:信息序列按顺序从d-in端口输入,每个CLK周期输入一位信息位dη,η=0,1,...,A-1。编码使能信号生成模块ECEN事先将阵列中每个数对(rθ,δqθ,δ)的第一个元素rθ,δ值,离线转换成m×k个二进制值,存于尺寸为m×k的ROM中,完成表达式(2)中所有rθ,δ值的硬件实现。ECEN将存于ROM中的m×k个二进制值作为其它功能模块的使能信号使用,并将这m×k个使能信号分成k个分组,每个分组m位并行输出。当R/W=0时,m位使能信号并行输出,为m个并行的校验位选择信号发生器子模块PCθ(θ=0,1,...,m-1)和m个并行的校验位计算与存储子模块PSθ(θ=0,1,...,m-1)提供使能控制信号E。当E=1时,PCθ和PSθ工作;当E=0时,PCθ和PSθ不工作。当输入信号为dη时,如果dη对应于Hd矩阵第δ个子矩阵的第ρ列,那么在编码使能控制信号E作用下,m个并行的PCθ同时计算Hd矩阵第δ个子矩阵中第ρ列的vδ个‘1’元素所在的行坐标值(其中δ=0,1,...,k-1,ρ=0,1,...,L-1,见(4)式),以这些行坐标值作为地址,选通m个并行的PSθ中的vδ个寄存器进行的累加求和操作。在这个过程中,PCθ输出表示不小于x的最小整数)位地址选择信号,m个并行的PSθ在使能信号E=1、R/W=0作用下,用vδ个位地址信号去索引在m个PSθ所联合形成的B=m×L个寄存器阵列中的vδ个寄存器,对这vδ个位置的值进行更新,即完成编码步骤2)中的计算。同时信息位dη也被输入到编码数据输出模块DATA-OUT,该模块在下一个信息位dη+1输入时将dη从编码数据串行输出端口ch输出,每个CLK周期输出一个比特数据,从A个比特信息位输入到A个比特信息位输出,一共需要A+1个CLK周期。与此同时,在A+1个CLK周期内,m个并行的PSθ也完成了的运算,使m个并行的PSθ中B=m×L个寄存器的最终存储内容是在A个信息位输入完成后,使R/W=1,m个并行的PSθ依次输出B个计算值到DATA-OUT。DATA-OUT完成编码步骤3)里校验位的累加计算p0=y0,p1=p0+y1,p2=p1+y2,...,pB-1=pB-2+yB-1,并将计算出的校验位p0,p1,...,pB-1从编码数据串行输出端口d-out输出。在信息序列输入完成后的第A+2个CLK周期,输出第一个校验位比特,一共需要B个CLK周期完成校验位的输出。在输出端口,首先完成A个比特信息位输出,再执行B个比特校验位的输出,从第一个信息位输入到最后一个校验位输出,一共需要A+B+1=N+1个CLK周期。
编码使能信号生成模块ECEN的结构如图3所示,包括一个模k自加器(用具有自加1功能的寄存器构成,每个CLK周期自加1,加到k时,做mod k运算返回到0值,用self-k表示),一个尺寸为k×m位的ROM,一个反相器,一个1位的R/W信号输入端口,一个分组(m比特)的并行输出端口,用于并行输出m个使能信号E。ROM共有k个分组,每个分组的数据长度为m比特,ROM由k×m位单元的存储阵列构成,它的每一位存储的值可由m×k阵列确定。规定如下:中的数对(rθ,δqθ,δ)如果是空集,则由0元素取代;如果是剩余类数对(rψ,γqψ,γ),则由1元素取代。对得到的m×k位的0-1矩阵做转置,再做镜像(在ROM中存储时,要求高位在左边),将得到的k×m位0-1矩阵中的元素依次输入ROM中,即完成了ROM中存储内容的设计。由于阵列中每一列有vδ(δ=0,1,...,k-1)个剩余类数对,因此k×m的ROM中每一个分组有vδ(δ=0,1,...,k-1)个“1”元素。self-k的工作原理是:当R/W=1时,经反相器取反后,self-k的使能端en输入为0,不工作;当R/W=0时,经反相器取反后,self-k的使能端en输入为1,self-k内寄存的值每CLK1周期增加1,加到k时值变为0。self-k的作用是产生控制k×m个ROM阵列的地址索引adrs,保证在CLK1周期之内(也即L个CLK周期持续时间内)并行输出同一组m个使能信号E,下一个CLK1周期到来时,并行输出下一组m个使能信号E。ECEN并行输出的m个使能信号E用于控制m个PCθ和m个PSθ的工作状态。当m个使能信号的第θ位E=1时,PCθ和PSθ都工作;当第θ位E=0时,PCθ和PSθ都不工作。在所有信息位串行输入的A个CLK周期内,每个PCθ和PSθ工作u次;在当前CLK1周期内的每一个CLK周期,均有vδ(δ=0,1,...,k-1)个PCθ和PSθ并行工作;当下一次CLK1周期来到时,self-k自加1,指向ROM的下一个分组,输出新的m个使能信号E,又开始下一次CLK1周期的执行;ECEN模块每CLK1个周期,输出一次m个使能信号E。
校验位选择信号发生器模块,由m个校验位选择信号发生器子模块PCθ(θ=0,1,...,m-1)构成。每个PCθ的结构如图4所示,包括self-L、sum、adder-L和chos-L4个单元。每个PCθ有5个输入端口:一个1比特的使能信号E输入端口和一个1比特的R/W读写控制信号输入端口,三个时钟信号输入端口,即主时钟CLK,L分频时钟CLK1和m分频时钟CLK2。位并行的校验位选择信号输出端口,用ch表示。该模块的作用是计算出qθ,γ元素的值,并由qθ,γ元素的值确定[log2 L]位的选择信号输出,选通PSθ中L个寄存器组中的某一个寄存器参与的计算与储存。一个PCθ中每一个单元的结构和工作原理描述如下:
1、self-L中有一个位的寄存器,该寄存器具有自加1功能和modL计算功能。self-L有一个使能信号E输入端口和一个时钟输入端口CLK1。有根的并行输出线连接到adder-L的一个位的并行输入端口。self-L中位寄存器设初值为[1+θ+3](modL)(即式(8)求解qθ,γ元素的第二个表达式增量部分的计算值,取γ=1)。self-L的工作模式描述如下,如果E=0,self-L不工作;如果E=1,CLK1(即L整数倍主频CLK)边沿(上升沿或下降沿)到达时,self-L的位寄存器中的值自加1(相当于式(8)中第二个表达式的γ值递增),当CLK1不工作在边沿(即不为L整数倍CLK)时,self-L的位寄存器中的值保持不变。
2、sum是一个位的寄存器,sum有一个使能E输入端和一个时钟信号CLK1输入端,有根并行输出线连接到adder-L的另一个位的并行输入端口,还有根并行输入线连接到adder-L的位并行输出端。sum中位寄存器的初值设为[u+(θ+3)(θ+2)/2](modL)(即式(8)求解qθ,γ元素的第一个表达式的计算值)。当使能信号E=0时,sum不工作;当E=1时,CLK1工作在边沿时,sum将寄存器中的值输出到adder-L,并从adder-L的输出端接收新的值;当CLK1不工作在边沿时,sum寄存器中的值保持不变。
3、adder-L加法器是无进位的、具有modL运算功能的、两组位输入的二进制加法器,一个使能控制E输入端和一个时钟信号CLK1输入端。adder-L的工作原理是:当E=0时,adder-L不工作;当E=1,且CLK1工作在边沿时,adder-L将self-L输入的位与sum输入的位对应相加,得到的位求和结果输出给sum和chos-L。当CLK1不工作在边沿时,adder-L的输出值保持不变。adder-L的目的是将从self-L和sum传入到两个输入端口的位值对应求和,将计算结果qθ,γ值输出到sum中保存,以备下一个CLK1周期到达时,求和运算使用,同时将计算结果传递到chos-L中。
4、chos-L单元包含一个位的寄存器,具有自加1功能和modL计算功能,modL主要完成自加到L回0的任务。chos-L有位并行输入端口和位并行输出端口ch;两个输入控制信号,即使能控制信号E和读写控制信号R/W;三个时钟信号输入端,即主频CLK、L分频CLK1和m分频CLK2。chos-L的位寄存器需设初值[u+(θ+3)(θ+2)/2](modL),以保证第一个位选通地址不丢失。chos-L的工作原理是:当有信息序列输入时,R/W=0,在E=1时,CLK和CLK1同时工作,当CLK1边沿到达时,位寄存器的初值变为adder-L的输出结果,当CLK1不为边沿时,每来一个CLK,chos-L的位寄存器自加1,并输出位的地址信号ch,当位寄存器加到L时,自动回0,准备下一次接收adder-L的传来的初值,并累加到L。当R/W=0,E=0时,chos-L不工作。当无信息序列输入时,R/W=1,这时不管E的值是什么,位寄存器的初值设为0,每来一个CLK2,chos-L的位寄存器自加1,从0一直加到L-1,同时在每个CLK2周期时输出位地址信号ch。chos-L的目的是:有信息位输入时(R/W=0),为每一个并行子模块PSθ中L个1位长的寄存器阵列提供位的位选择地址信号ch,使m个PSθ子模块完成(12)式中运算,这时如果CLK1边沿到达,chos-L从adder-L输出端接收计算好的qθ,γ值,如果CLK1不工作在边沿处,则对每一个CLK周期,位寄存器所做的L次加1操作,等效于完成将子矩阵中的后面L-1列的每一列进行循环下移m次操作;无信息位输入时(R/W=1),每一个CLK2周期,chos-L的位寄存器从0开始自加1,直到L-1,提供一个位的地址信号ch,依次寻址PSθ中L个的1位寄存器中的某一个,依次输出值。
校验位计算与储存模块由m个校验位计算与储存子模块PSθ(θ=0,1,...,m-1)构成,每个子模块PSθ的结构如图5所示。一个PSθ包括一个有L个1位寄存器的阵列FPS(θ)和一个两输入异或门。有5种类型的输入端口:一个1位的使能信号E输入端口、一个1位的R/W控制信号输入端口、一个时钟信号CLK输入端口、一个位的校验位选择信号输入端口ch和一个1位的信息位数据串行输入端口d-in,总的输入端口为个。一个1位的校验位数据串行输出端口。m个PSθ的作用是计算并存储编码递归算法(12)式中的B个的中间值和最后计算结果。L个1位寄存器阵列中存储的内容表示如下,PSθ中L个1位寄存器的存储内容依次为y0,ym,y2m,...,y(L-1)m,……,PSθ中L个1位寄存器的存储内容依次为yθ,yθ+m,yθ+2m,...,yθ+(L-1)m,……,PSm-1中L个1位寄存器的存储内容依次为ym-1,y2m-1,y3m-1,...,ymL-1。m个PSθ的基本工作原理是:当R/W=0时,PSθ的L个1位寄存器执行yθ~yθ+(L-1)m的计算与存储工作;当R/W=1时,m个PSθ依次将B=m×L个1位寄存器中存储的最后计算结果值输出到数据输出模块DATA-OUT。具体工作过程是:当R/W=0,E=0时,m个PSθ不工作;当E=1时,m个PSθ工作,每来一个CLK时钟,在位选择信号ch到来时,m个PSθ的B=m×L个1位寄存器中有vδ个1位寄存器进行的求和运算,针对一个PSθ而言,在图4中chos-L输出的位选择信号ch的控制下,图5中PSθ的1位寄存器与输入的信息位dη通过异或门进行异或操作,将计算结果仍然存入PSθ中L个1位寄存器的第ρ个位置上,相当于完成编码步骤2)的取反操作,当所有信息位dη(η=0,1,...,A-1)输入完后,m个PSθ子模块就完成了的计算与存储工作;当R/W=1时,无论使能信号E是何值,chos-L中的位寄存器依次从0加到L-1,提供一个位的地址信号,依次并行寻址m个PSθ中L个1位寄存器阵列中的一个寄存器,依次将B个的计算结果按m个并行提供给图6的DATA-OUT模块。
编码数据输出模块DATA-OUT的结构如图6所示,包括具有一个m+1个输入端的多路数据选择器MUL、一个模m+1的自加器self-(m+1)(结构为寄存器,具有自加1功能和mod(m+1)计算功能,mod(m+1)计算功能是为了完成当寄存器自加1到m+1时,能返回到初始值1)、一个异或门和一个D触发器。有m+3个输入端口:一个1比特的R/W控制信号输入端口、一个CLK信号输入端口、一个1比特的信息位数据输入端口d-in和m个来自并行PSθ的数据输入端口。一个1比特的编码数据串行输出端口d-out。该模块的作用是完成编码步骤3)中的校验位迭代累加计算p0=y0,p1=p0+y1,p2=p1+y2,...,pB-1=pB-2+yB-1,并输出编码码字。其工作过程如下:当R/W=0时,self-(m+1)的输出始终为‘0’,多路数据选择器选择信息位数据输入端口输入的数据,并从编码数据串行输出端口输出;当A个CLK周期后,信息序列输入完毕,从第A+1个CLK周期开始,使R/W=1。在R/W=1的控制下,self-(m+1)的工作原理是:从1依次自增到m,当加到m+1时又从1开始循环自加1。self-(m+1)的作用是:每一个CLK周期自增一次,控制多路数据选择器依次选择来自PS0,PS1,…,PSm-1数据y0,y1,...,ym-1到多路数据选择器的输出端。在R/W=1时,MUL、self-(m+1)、D触发器和异或门的联合工作过程是:当第A+1个CLK周期到来时,self-(m+1)单元自加1,控制MUL输出y0,DATA-OUT输出最后一个信息位dA-1;当第A+2个CLK周期到来时,self-(m+1)自加1,控制MUL输出y1,同时D触发器将p0=y0反馈到异或门输入端,完成累加计算p1=p0+y1,并存入D寄存器,DATA-OUT输出p0=y0;当第A+3个CLK周期到来时,self-(m+1)自加1,控制MUL输出y2,这时异或门完成的累加计算p2=p1+y2,并存入D寄存器,DATA-OUT输出p1=p0+y1。……;当第m个CLK周期后,第A+m+1个CLK周期到来时,图5的m个PSθ又将下一组ym,ym+1,...,y2m-1送到图6的多路数据选择器的输入端,……,一直这样操作下去,直到第A+B+1-m个CLK周期到来,图5的m个PSθ将最后一组y(L-1)m,y1+(L-1)m,...,ymL-1送到图6的多路数据选择器的输入端,在第A+B+1个CLK周期时,输出最后一个校验位pB-1=pB-2+yB-1。
应用举例
假设要构造一个码长为288,码率为1/2的IRA-LDPC码编码器,这个码的结构参数为:A=144;B=144;L=8;行重量u=4;列重量v0~v8为5,v9~v17为3;优化搜索得到4个生成元为g0=2,g1=6,g2=7,g3=11。计算可得m=B/L=18,k=A/L=18。
步骤2:构造编码使能控制模块ROM中的数据。剩余类数对阵列存储结构的第一行为其中r元素的值为1,3,7,12,15,因此在编码使能控制模块地址为0的ROM中所存储的m=18个数据为001001000010001010(左边是高位)。以此类推,其中r元素的值为0,2,8,地址为17的ROM中所存储的最后一组数据为000000000100000101。由此,可以构造出ROM中的18组数据。
步骤3:设置各模块中的初值,主要是确定各子模块中L、m和k的值。编码使能控制模块ECEN的self-k需要设初值0(self-k自加到k=18时回到0),ROM中每个分组的数据长度设为m=18位,共有k=18个分组,并行输出端口设为一个分组(m=18位)长度。校验位选择信号发生器模块要在self-L和chos-L中设置递增初值L=8,chos-L中寄存器的长度设为位。每个校验位计算与储存单元有L=8个1位的寄存器阵列,校验位选择信号输入端口ch长度设为比特。编码数据输出单元中的多路数据选择器有m+1=19个输入端、self-(m+1)的初值设为1(self-(m+1)自加到m+1=19时回到1)。
步骤4:设置m个PCθ(θ=0,1,...,m-1)的初始值。在m个PCθ(θ=0,1,...,m-1)中,chos-L和sum中位寄存器的初值分别为[4+(θ+3)(θ+2)/2](modL),self-L中位寄存器的初值分别为[1+θ+3](modL)。
本发明适用于任意码长N=A+B和码率R=A/N,只要k×m只读ROM、B=m×L个1位寄存器设计成实际要求的最大尺寸即可。以上举例仅用于说明本发明,而非对本发明的限制,有关技术领域的人员,在不脱离本发明的精神和范围的情况下,还可以做各种变化和变型,因此,所有基于剩余类数对的Hd矩阵构造方法和编码器结构均属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (9)
1.一种IRA-LDPC码的构造方法,若所构造的IRA-LDPC码信息位长度为A、校验位长度为B,所构造的Hd矩阵的尺寸为B×A,所述Hd矩阵设定的约束条件为:(一)信息位长度A和校验位长度B存在大于1的公因数L;(二)Hd矩阵被分解为k个子矩阵每个子矩阵的尺寸是B×L,其中k=A/L;(三)Hd矩阵的行重量只有一种,用u表示;(四)Hd矩阵的列重量最多有k种,最少是两种,分别用v0,v1,...,vk-1表示;(五)每个子矩阵的第一列循环下移m位,得到第二列,作依次循环下移m位操作,得到整个Hd矩阵,其中m=B/L,要求m+1是素数,这个操作等效于计算每个子矩阵的第ρ列第ψ个“1”元素的行坐标(六)Hd矩阵采用其紧凑形式的剩余类数对阵列表示,剩余类数对阵列的存储形式为阵列,其特征在于和结构形式如(I)和(I’)式:
表达式(I)中每一列剩余类数对的数量是不等的,由各个子矩阵的列重量v0,v1,...,vk-1确定;表达式(I)中每一行剩余类数对的数量是相等的,均为行重量u;阵列的尺寸为m×k,阵列中剩余类数对的总数为由于k>u,所以阵列是稀疏的,阵列中每一个位置的元素为一个整数对(rθ,δqθδ),其中(rθ,δqθ,δ)∈{Φ}∪{(rψ,γqψ,γ)|ψ=0,1,...,vδ-1,γ=0,1,...,u-1}表示阵列中的一个元素,(rψ,γqψ,γ)是剩余类数对,Φ是空集;表达式(I’)中的是阵列的存储结构;构造剩余类数对阵列需要设计剩余类数对中的第一个参数rθ,γ=rψ,γ,设计rθ,γ=rψ,γ的方法是:对于m=B/L且满足m+1是素数,基于有限域GF(m+1)上的有限循环乘群至少有u个生成元g0,g1,...,gu-1,利用u生成元的1,2,...,m次幂,生成m×u个rθ,γ=rψ,γ元素,计算表达式如(II)式:
rθ,γ=rψ,γ=[(gγ)θ+1-1](mod(m+1)) (II)
根据剩余类数对阵列能够计算Hd矩阵中每一个“1”元素所在位置的行坐标,设Hd矩阵的第δ(δ=0,1,...,k-1)个子矩阵的第ρ(ρ=0,1,...,L-1)列第ψ(ψ=0,1,...,vδ-1)个“1”元素的行坐标的计算表达式为(IV)式:
最后,利用上述构成的Hd矩阵,即可得到系统形式H矩阵H=[Hd Hp],其中Hp矩阵具有确定的双对角线结构。
2.一种IRA-LDPC码的编码器,其特征在于,在包括CPLD和FPGA在内的可编程逻辑器件环境下的编码器硬件电路包括:编码使能信号生成模块、校验位选择信号发生器模块、校验位计算与存储模块、编码数据输出模块、主时钟输入端口、信息位数据串行输入端口、R/W控制信号输入端口和编码数据串行输出端口;
编码使能信号生成模块ECEN用于将阵列中每个数对(rθ,δqθ,δ)的第一个元素rθ,δ值,离线转换成m×k个二进制值,将这m×k个使能信号分成k个分组,每个分组m位使能信号并行输出至校验位选择信号发生器子模块和校验位计算与存储子模块,为它们提供使能控制信号E;
校验位选择信号发生器模块由m个并行的校验位选择信号发生器子模块PCθ构成,θ=0,1,...,m-1;校验位选择信号发生器子模块PCθ用于计算出qθ,γ元素的值,并由qθ,γ元素的值确定位的选择信号ch输出,选通校验位计算与存储子模块PSθ的L个1位寄存器阵列中的某一个寄存器参与的计算与储存;
校验位计算与存储模块由m个并行的校验位计算与存储子模块PSθ构成,θ=0,1,...,m-1;m个PSθ中的L个1位寄存器阵列用来完成B位校验位的中间结果的计算与储存;m个PSθ向编码数据输出模块输出yθ~yθ+(L-1)m,θ=0,1,...,m-1;
编码数据输出模块DATA-OUT根据m个子模块PSθ传来的 完成校验位的迭代累加计算,即p0=y0,p1=p0+y1,p2=p1+y2,...,pB-1=pB-2+yB-1,并由编码数据串行输出端口d-out输出编码码字;
一个主时钟周期输入端口CLK,产生两个分频时钟,L分频时钟CLK1和m分频时钟CLK2;
一个1比特的信息位数据串行输入端口d-in,每个CLK周期输入一个信息位;
一个1比特的R/W控制信号输入端口,每个CLK周期产生一个R/W信号,有信息序列输入时,设置R/W=0;无信息序列输入时,设置R/W=1;
一个1比特的编码数据串行输出端口d-out,每个CLK周期输出一个编码位。
3.根据权利要求2所述的IRA-LDPC码的编码器,其特征在于,所述编码使能信号生成模块ECEN包括一个反相器,一个模k自加器self-k,一个ROM存储器,一个R/W控制信号输入端口,一个CLK1时钟输入端口,一个m位的并行输出端口;反相器将输入的R/W控制信号取反后作为self-k的使能端en输入;使能端en为0,self-k不工作,使能端en为1,self-k内的位寄存器的值每CLK1周期自增1,作为ROM存储器的地址索引adrs;ROM存储器的尺寸为k×m,用于存储k×m阵列中数对元素的状态,存储规则是:如果数对元素(rθ,δqθ,δ)是空集Φ,ROM中相应位置存0,如果(rθ,δqθ,δ)是剩余类数对,则相应位置存1,根据输入的地址索引adrs,ROM存储器并行输出m个使能信号E,作为校验位选择信号发生器子模块和校验位计算与存储子模块的使能信号。
4.根据权利要求2或3所述的IRA-LDPC码的编码器,其特征在于,所述校验位选择信号发生器子模块PCθ(θ=0,1,...,m-1)包括两个modL的自加器self-L和chos-L、一个寄存器sum和一个modL加法器adder-L,五个输入端口和一个校验位选择信号输出端口;五个输入端口分别是一个1比特的使能信号E输入端口和一个1比特的R/W读写控制信号输入端口以及三个时钟输入端口,CLK,CLK1和CLK2;校验位选择信号输出端口为位并行的输出端口;
self-L中有一个设有初值的位寄存器,该寄存器具有自加1功能和modL计算功能;self-L有一个使能信号E输入端口、一个时钟输入端口CLK1和一个连接到加法器adder-L的位的并行输出端口,self-L中位寄存器的初值设为[1+θ+3](modL);
寄存器sum是一个设有初值的位寄存器;sum有一个使能E输入端和一个时钟信号CLK1输入端,有一个连接到加法器adder-L的位的并行输入端口,以及一个连接到加法器adder-L的位的并行输出端口,sum的位寄存器设初值为[u+(θ+3)(θ+2)/2](modL);当使能信号E=0时,sum不工作;当E=1,CLK1工作在边沿时,sum将寄存器中的值输出到adder-L,并从adder-L的输出端接收新的值;当CLK1不工作在边沿时,sum寄存器中的值保持不变;
7.根据权利要求2或3所述的IRA-LDPC码的编码器,其特征在于,所述编码数据输出模块DATA-OUT包括一个具有m+1个输入端的多路数据选择器MUL、一个模m+1的自加器self-(m+1)、一个异或门和一个D触发器;有m+3个输入端口:一个1比特的R/W控制信号输入端口、一个CLK信号输入端口、一个1比特的信息位数据输入端口d-in和m个来自PSθ的并行数据输入端口;一个1比特的编码数据串行输出端口d-out。
8.根据权利要求4所述的IRA-LDPC码的编码器,其特征在于,所述编码数据输出模块DATA-OUT包括一个具有m+1个输入端的多路数据选择器MUL、一个模m+1的自加器self-(m+1)、一个异或门和一个D触发器;有m+3个输入端口:一个1比特的R/W控制信号输入端口、一个CLK信号输入端口、一个1比特的信息位数据输入端口d-in和m个来自PSθ的并行数据输入端口;一个1比特的编码数据串行输出端口d-out。
9.根据权利要求5所述的IRA-LDPC码的编码器,其特征在于,所述编码数据输出模块DATA-OUT包括一个具有m+1个输入端的多路数据选择器MUL、一个模m+1的自加器self-(m+1)、一个异或门和一个D触发器;有m+3个输入端口:一个1比特的R/W控制信号输入端口、一个CLK信号输入端口、一个1比特的信息位数据输入端口d-in和m个来自PSθ的并行数据输入端口;一个1比特的编码数据串行输出端口d-out。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110411481 CN102437857B (zh) | 2011-12-12 | 2011-12-12 | 一种ira-ldpc码的构造方法及其编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110411481 CN102437857B (zh) | 2011-12-12 | 2011-12-12 | 一种ira-ldpc码的构造方法及其编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102437857A true CN102437857A (zh) | 2012-05-02 |
CN102437857B CN102437857B (zh) | 2013-06-05 |
Family
ID=45985752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110411481 Expired - Fee Related CN102437857B (zh) | 2011-12-12 | 2011-12-12 | 一种ira-ldpc码的构造方法及其编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102437857B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634014A (zh) * | 2012-08-24 | 2014-03-12 | 中兴通讯股份有限公司 | 一种ldpc编码方法及装置 |
CN104168030A (zh) * | 2014-07-14 | 2014-11-26 | 北京邮电大学 | 一种基于本原域循环群两个生成元的ldpc码构造方法 |
CN104779961A (zh) * | 2014-01-09 | 2015-07-15 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN104821830A (zh) * | 2014-02-05 | 2015-08-05 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN105024703A (zh) * | 2014-04-30 | 2015-11-04 | 上海数字电视国家工程研究中心有限公司 | 基于准循环的中短码长ldpc及编解码器和编码方法 |
CN105281784A (zh) * | 2014-07-23 | 2016-01-27 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN105306071A (zh) * | 2014-06-11 | 2016-02-03 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN105337618A (zh) * | 2014-08-06 | 2016-02-17 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN105471440A (zh) * | 2014-09-05 | 2016-04-06 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN107078747A (zh) * | 2014-09-04 | 2017-08-18 | 美国国家仪器有限公司 | 具有预配置的存储器仲裁的流水线分层ldpc解码 |
CN107786211A (zh) * | 2017-09-26 | 2018-03-09 | 华中科技大学 | 一种ira‑qc‑ldpc码的代数结构获取方法、编码方法和编码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800627A (zh) * | 2010-03-16 | 2010-08-11 | 北京海格神舟通信科技有限公司 | 一种多码率兼容的高速ldpc编码器的硬件实现 |
CN102006085A (zh) * | 2010-11-04 | 2011-04-06 | 北京理工大学 | 类eIRA准循环低密度奇偶校验码的校验矩阵构造方法 |
-
2011
- 2011-12-12 CN CN 201110411481 patent/CN102437857B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800627A (zh) * | 2010-03-16 | 2010-08-11 | 北京海格神舟通信科技有限公司 | 一种多码率兼容的高速ldpc编码器的硬件实现 |
CN102006085A (zh) * | 2010-11-04 | 2011-04-06 | 北京理工大学 | 类eIRA准循环低密度奇偶校验码的校验矩阵构造方法 |
Non-Patent Citations (1)
Title |
---|
黄秋元: "DVB-S2标准IRA-LDPC译码算法研究与改进", 《电视技术》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634014A (zh) * | 2012-08-24 | 2014-03-12 | 中兴通讯股份有限公司 | 一种ldpc编码方法及装置 |
CN104779961A (zh) * | 2014-01-09 | 2015-07-15 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN104779961B (zh) * | 2014-01-09 | 2019-02-26 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN104821830A (zh) * | 2014-02-05 | 2015-08-05 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN104821830B (zh) * | 2014-02-05 | 2019-02-26 | 上海数字电视国家工程研究中心有限公司 | 一种ldpc结构、码字及对应的编码器、解码器和编码方法 |
CN105024703A (zh) * | 2014-04-30 | 2015-11-04 | 上海数字电视国家工程研究中心有限公司 | 基于准循环的中短码长ldpc及编解码器和编码方法 |
CN105024703B (zh) * | 2014-04-30 | 2018-12-18 | 上海数字电视国家工程研究中心有限公司 | 基于准循环的中短码长ldpc及编解码器和编码方法 |
CN105306071A (zh) * | 2014-06-11 | 2016-02-03 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN104168030A (zh) * | 2014-07-14 | 2014-11-26 | 北京邮电大学 | 一种基于本原域循环群两个生成元的ldpc码构造方法 |
CN104168030B (zh) * | 2014-07-14 | 2017-11-14 | 北京邮电大学 | 一种基于本原域循环群两个生成元的ldpc码构造方法 |
CN105281784A (zh) * | 2014-07-23 | 2016-01-27 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN105281784B (zh) * | 2014-07-23 | 2018-12-18 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN105337618B (zh) * | 2014-08-06 | 2018-11-20 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN105337618A (zh) * | 2014-08-06 | 2016-02-17 | 上海明波通信技术股份有限公司 | 并行向下兼容的多模ira_ldpc译码器及其译码方法 |
CN107078747A (zh) * | 2014-09-04 | 2017-08-18 | 美国国家仪器有限公司 | 具有预配置的存储器仲裁的流水线分层ldpc解码 |
CN107078747B (zh) * | 2014-09-04 | 2020-10-27 | 美国国家仪器有限公司 | 具有预配置的存储器仲裁的流水线分层ldpc解码 |
CN105471440A (zh) * | 2014-09-05 | 2016-04-06 | 上海数字电视国家工程研究中心有限公司 | 针对下一代无线广播的ldpc码字及编码方法和编解码器 |
CN107786211A (zh) * | 2017-09-26 | 2018-03-09 | 华中科技大学 | 一种ira‑qc‑ldpc码的代数结构获取方法、编码方法和编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN102437857B (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102437857B (zh) | 一种ira-ldpc码的构造方法及其编码器 | |
CN101192833B (zh) | 一种低密度校验码ldpc并行编码的装置及方法 | |
CN101902228B (zh) | 快速循环冗余校验编码方法及装置 | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
CN102870330B (zh) | 编码设备、纠错码配置方法及其程序 | |
CN103197912B (zh) | 一种用于深空通信协议编码的均匀随机数生成方法 | |
CN106533452B (zh) | 一种多进制ldpc编码方法及编码器 | |
CN102739259A (zh) | 一种用于cmmb激励器中的基于fpga的ldpc编码方法 | |
Kanchetla et al. | Multi‐standard high‐throughput and low‐power quasi‐cyclic low density parity check decoder for worldwide interoperability for microwave access and wireless fidelity standards | |
CN103475379B (zh) | 一种ldpc编码方法 | |
CN103036577A (zh) | 一种低复杂度的低密度奇偶校验ldpc码编码电路结构 | |
CN103236858A (zh) | 基于循环左移的cmmb中准循环ldpc串行编码器 | |
CN100586029C (zh) | 一种结构化奇偶校验码的编码方法及其编码器 | |
Namin et al. | Digit-level serial-in parallel-out multiplier using redundant representation for a class of finite fields | |
Raviv | Asymptotically optimal regenerating codes over any field | |
CN103236852B (zh) | 无乘法运算的dtmb中准循环矩阵串行乘法器 | |
CN103929191A (zh) | 深空通信中部分并行输入的累加左移准循环矩阵乘法器 | |
CN103905059A (zh) | Cdr中部分并行输入的右移累加qc-ldpc编码器 | |
CN103236849B (zh) | 基于共享存储机制的dtmb中准循环矩阵串行乘法器 | |
CN103236851A (zh) | 基于查找表的cmmb中准循环矩阵高速乘法器 | |
CN103929200A (zh) | Cdr中全并行输入的循环左移qc-ldpc编码器 | |
CN103905055A (zh) | 部分并行输入的右移累加qc-ldpc编码器 | |
CN103929207A (zh) | Cmmb中部分并行输入的右移累加qc-ldpc编码器 | |
CN103929196A (zh) | Wpan中全并行输入的循环左移qc-ldpc编码器 | |
Kourani et al. | Locally Recoverable Codes over Zp s |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130605 Termination date: 20201212 |