首页> 中国专利> 一种IRA-LDPC码的构造方法及其编码器

一种IRA-LDPC码的构造方法及其编码器

摘要

本发明属于无线通信信道编码技术领域,具体涉及一种高性能IRA-LDPC码的代数构造方法和相应的低复杂度快速编码器。代数构造方法包括步骤:构造剩余类数对阵列的方法和表达式;设计剩余类数对的第一个参数的方法和表达式;设计剩余类数对的第二个参数的方法和表达式;计算奇偶校验矩阵中每个“1”元素所在位置的行坐标的方法和表达式。编码器包括:编码器总体结构模块和电路;编码使能信号生成模块和电路;可并行执行的校验位选择信号发生器子模块和电路;可并行执行的校验位计算与存储子模块和电路;编码数据输出模块和电路。

著录项

  • 公开/公告号CN102437857A

    专利类型发明专利

  • 公开/公告日2012-05-02

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201110411481.1

  • 发明设计人 彭立;张琦;陈涛;王渤;

    申请日2011-12-12

  • 分类号H03M13/11(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人曹葆青

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 05:04:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-06-05

    授权

    授权

  • 2012-06-27

    实质审查的生效 IPC(主分类):H03M13/11 申请日:20111212

    实质审查的生效

  • 2012-05-02

    公开

    公开

说明书

技术领域

本发明属于无线通信信道编码技术领域,具体涉及一种高性能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 for  Broadcasting,Interactive Services,News Gathering and other broadband  satellite 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’)式:

R~=(r1,0,q1,0)(r2,0,q2,0)(r3,0,q3,0)(r4,0,q4,0)(r5,0,q5,0)(r6,0,q6,0)···(rm-vmax+1,u-1,qm-vmax+1,u-1)···(rm-3,u-1,qm-3,u-1)(rm-2,u-1,qm-2,u-1)(rm-1,u-1,qm-1,u-1)(rm,u-1,qm,u-1)

=(g01,q1,0)(g02,q2,0)(g03,q3,0)(g04,q4,0)(g05,q5,0)(g06,q6,0)···(gu-1m-vmax+1,qm-vmax+1,u-1)···(gu-1m-3,qm-3,u-1)(gu-1m-2,qm-2,u-1)(gu-1m-1,qm-1,u-1)(gu-1m,qm,u-1)---(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)

构造剩余类数对阵列需要设计剩余类数对中的第二个参数qθ,γ=qψ,γ,可以利用式 (II)rθ,γ=rψ,γ来设计qθ,γ=qψ,γ,qθ,γ=qψ,γ的计算方法如(III)式:

[qθ,γ]m×u=[u+(rθ,γ+3)(rθ,γ+2)/2](modL)γ=0,θ=0,1,...,m-1[qθ,γ-1+γ+rθ,γ+3](modL)γ=1,2,...,u-1,θ=0,1,...,m-1---(III)

根据剩余类数对阵列能够计算Hd矩阵中每一个“1”元素所在位置的行坐标,设 Hd矩阵的第δ(δ=0,1,...,k-1)个子矩阵的第ρ(ρ=0,1,...,L-1)列第 ψ(ψ=0,1,...,vδ-1)个“1”元素的行坐标的计算表达式为(IV)式:

eψ,δρ=(rψ,δ+m×qψ,δ+m×ρ)(modB)---(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)个子矩阵,即 Hd=H0dH1d···Hδd···Hk-2dHk-1d,每个子矩阵的维数是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=R0R1···Rδ···Rk-1,其中表示剩余 类数对列矢量Rδ=R0,δR1,δ···Rm-1,δT,这里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)扩展如下:

eψ,δρ=(rψ,δ+m×qψ,δ+m×ρ)(modB)---(4)

Hd矩阵中每个“1”元素的位置坐标还有另一种表示方法。由于等效于 δ=0,1,...,k-1,Hd矩阵中第η列等效于第κ个子矩阵的第σ列中,那么Hd矩阵第η 列第ψ个“1”元素的行坐标值由剩余类数对(rψ,κqψ,κ)计算如下:

eψη=(rψ,κ+m×qψ,κ+m×σ)(modB)---(5)

本发明第一部分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θ,γ的值由下列表达式计算得到:

[qθ,γ]m×u=[u+(rθ,γ+3)(rθ,γ+2)/2](modL)γ=0,θ=0,1,...,m-1[qθ,γ-1+γ+rθ,γ+3](modL)γ=1,2,...,u-1,θ=0,1,...,m-1---(8)

(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列)。的结构如下:

R~=(r1,0,q1,0)(r2,0,q2,0)(r3,0,q3,0)(r4,0,q4,0)(r5,0,q5,0)(r6,0,q6,0)···(rm-vmax+1,u-1,qm-vmax+1,u-1)···(rm-3,u-1,qm-3,u-1)(rm-2,u-1,qm-2,u-1)(rm-1,u-1,qm-1,u-1)(rm,u-1,qm,u-1)

=(g01,q1,0)(g02,q2,0)(g03,q3,0)(g04,q4,0)(g05,q5,0)(g06,q6,0)···(gu-1m-vmax+1,qm-vmax+1,u-1)···(gu-1m-3,qm-3,u-1)(gu-1m-2,qm-2,u-1)(gu-1m-1,qm-1,u-1)(gu-1m,qm,u-1)---(9)

式(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码编码的目的是由 信息序列计算出校验序列从而得到码字序列 c=dp=[d0,d1,...,dA-1,p0,p1,...,pB-1].本发明提供的基于剩余类数对的IRA-LDPC码 的编码算法基本原理与许多文献中发表的IRA-LDPC码编码算法基本原理是相似的,区 别在于Hd矩阵的结构设计不同,导致了不同的编码器硬件电路的设计差别。根据 将奇偶校验矩阵H和码字矢量分解为信息位对应的部分和校验位对应的部 分,即:

HcT=HdHpdpT=HddT+HppT=0---(10)

给定二进制信息矢量由于Hd和Hp都是定义在二进制有限域 GF(2)上的矩阵,在二进制运算规则下,根据(1)和(10)式,可得

HppT=HddT---(11)

则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)初始化,令p=[p0,p1,...,pB-1]=0.

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,编码后的输出 码字为c=[d0,d1,...,dA-1,p0,p1,...,pB-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。

步骤1:构造剩余类数对阵列利用用7)式和8)式计算出剩余类数对第一个参 数rθ,γ和第二个参数qθ,γ,将剩余类数对按照(2)排列,构成如下阵列:。

也可以由计算机搜索得到,搜索程序中的存储结构为

步骤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矩阵构造方法和编码器结构均属于本 发明的范畴,本发明的专利保护范围应由权利要求限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号