基于查找表的近地通信中LDPC串行编码器和编码方法
技术领域
本发明涉及近地太空数据通信领域,特别涉及一种CCSDS近地通信系统中QC-LDPC码编码器的串行实现方法。
背景技术
由于在传输信道中存在的各种失真和噪声会对发送信号产生干扰,接收端不可避免地会出现数字信号产生误码的情况。为了降低误码率,需要采用信道编码技术。
低密度奇偶校验(Low-Density Parity-Check,LDPC)码以其逼近Shannon限的优异性能成为信道编码领域的研究热点。准循环LDPC码(Quasic-LDPC,QC-LDPC)码是一种特殊的LDPC码,其编码可采用移位寄存器加累加器(Shift-Register-Adder-Accumulator,SRAA)加以实现。
SRAA法是利用生成矩阵G进行编码。QC-LDPC码的生成矩阵G是由a×t个b×b阶循环矩阵Gi,j(1≤i≤a,1≤j≤t)构成的阵列,t=a+c。与信息向量对应的一部分生成矩阵是单位矩阵,与校验向量对应的其余部分生成矩阵是高密度矩阵。串行SRAA法完成一次编码需要ab+t个时钟周期,需要(c+t)b个寄存器、cb个二输入与门和cb个二输入异或门。此外,还需要acb比特ROM存储循环矩阵的首行。
CCSDS近地通信系统推荐了一种QC-LDPC码,其中,a=14,c=2,t=16,b=511。
CCSDS近地通信系统中QC-LDPC低速编码的现有解决方案是采用串行SRAA法,所需的编码时间是7170个时钟周期,逻辑资源需要9198个寄存器、1022个二输入与门和1022个二输入异或门。此外,还需要14,308比特ROM存储循环矩阵的首行。当采用硬件实现时,需要较多的存储器和寄存器,势必会造成设备成本高,功耗大。
发明内容
针对CCSDS近地通信系统QC-LDPC码低速编码的现有实现方案中存在的资源需求量大缺点,本发明提供了一种基于查找表的串行编码方法,能在保持编码速度不变的前提下,减少资源需求。
如图1所示,CCSDS近地通信系统中QC-LDPC码的串行编码器主要由3种功能模块组成:寄存器、查找表和b位二输入异或门。整个编码过程分4步完成:第1步,清零寄存器Ra+1和Ra+2;第2步,输入信息比特ek(0≤k<ab),寄存器R1~Ra串行左移1次,缓冲信息向量s,查找表的块行号控制端输入ρ=[k/b]+1(符号[k/b]表示不大于k/b的最大整数),查找表根据ρ和ek的数值选择输出,b位二输入异或门Al(1≤l≤2)将查找表的第l个b位输出端与寄存器Ra+l串行循环左移1次的结果相加,和存回寄存器Ra+l;第3步,以1为步长递增改变k的取值,重复第2步ab次,直到整个信息向量s输入完毕;第4步,并行输出码字v=(s,p)。
本发明提供的QC-LDPC串行编码器,能在保持编码速度不变的前提下有效减少资源需求,从而达到降低硬件成本和功耗的目的。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
附图说明
图1是CCSDS近地通信系统中QC-LDPC码的串行编码器整体结构;
图2给出了查找表的输出与信息比特的数值和生成矩阵G的块行号ρ之间的关系;
图3比较了传统的串行SRAA法与本发明的资源消耗。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
QC-LDPC码是一类特殊的LDPC码,它的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分段循环特点,故被称为准循环LDPC码。从行的角度看,循环矩阵的每一行都是上一行(首行是末行)循环右移一位的结果;从列的角度看,循环矩阵的每一列都是前一列(首列是末列)循环下移一位的结果。循环矩阵的行向量构成的集合与列向量构成的集合完全相同,因此,循环矩阵完全可由它的首行或首列来表征。QC-LDPC码的生成矩阵G是由a×t个b×b阶循环矩阵Gi,j(1≤i≤a,1≤j≤t)构成的阵列:
G(或H)的连续b行和b列分别被称为块行和块列。
CCSDS近地通信系统推荐了一种QC-LDPC码,其中,a=14,c=2,t=16,b=511。对于CCSDS近地通信系统,生成矩阵G对应码字v=(s,p),G的前a块列对应的是信息向量s=(e0,e1,…,eab-1),后c块列对应的是校验向量p。以b比特为一段,信息向量s被等分为a段,即s=(s1,s2,…,sa);校验向量p被等分为c=2段,即p=(p1,p2)。
由式(1)和循环矩阵的特点,图1给出了适用于CCSDS近地通信系统中QC-LDPC码的串行编码器,它主要由寄存器、查找表和b位二输入异或门三种功能模块组成。寄存器R1~Ra用于缓存信息向量s=(s1,s2,…,sa),寄存器Ra+1和Ra+2用于计算和存储校验向量p=(p1,p2),b位二输入异或门A1和A2将查找表的两个b位输出值分别累加到寄存器Ra+1和Ra+2中。
查找表有两个控制量:信息比特的数值和生成矩阵G的块行号ρ(1≤ρ≤a),图2给出了查找表的输出与两个控制量之间的关系。如果当前输入的信息比特是0,那么查找表输出全零;否则,查找表的两个b位输出端分别输出生成矩阵第ρ块行中第a+1、a+2块列的两个循环矩阵的首行。
本发明提供了一种QC-LDPC码的串行编码方法,结合CCSDS近地通信系统中QC-LDPC码的串行编码器(如图1所示),其编码步骤描述如下:
第1步,清零寄存器Ra+1和Ra+2;
第2步,输入信息比特ek(0≤k<ab),寄存器R1~Ra串行左移1次,缓冲信息向量s,查找表的块行号控制端输入ρ=[k/b]+1(符号[k/b]表示不大于k/b的最大整数),查找表根据ρ和ek的数值选择输出,b位二输入异或门Al(1≤l≤2)将查找表的第l个b位输出端与寄存器Ra+l串行循环左移1次的结果相加,和存回寄存器Ra+l;
第3步,以1为步长递增改变k的取值,重复第2步ab次,直到整个信息向量s输入完毕,此时,寄存器R1~Ra存储的是信息向量s=(s1,s2,…,sa),寄存器Ra+1和Ra+2存储的是校验向量p=(p1,p2);
第4步,并行输出码字v=(s,p)。
从以上步骤不难看出,整个编码过程共需ab+t=7170个时钟周期,这与传统的串行SRAA法完全相同。
图3比较了传统的串行SRAA法与本发明的资源消耗。注意,这里将查找表的基本查找单元视为一个二输入与门。从图3可清楚看到,本发明使用的异或门和与门数量与串行SRAA法完全相同,本发明的优势是无需存储器,使用了较少的寄存器。综上可见,与传统的串行SRAA法相比,本发明保持了编码速度,具有控制简单、资源消耗少、功耗小、成本低等优点。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。