CN109586732B - 中短码ldpc编解码系统和方法 - Google Patents

中短码ldpc编解码系统和方法 Download PDF

Info

Publication number
CN109586732B
CN109586732B CN201811212535.XA CN201811212535A CN109586732B CN 109586732 B CN109586732 B CN 109586732B CN 201811212535 A CN201811212535 A CN 201811212535A CN 109586732 B CN109586732 B CN 109586732B
Authority
CN
China
Prior art keywords
matrix
check
data
decoding
information
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
Application number
CN201811212535.XA
Other languages
English (en)
Other versions
CN109586732A (zh
Inventor
汪清
王顺福
杨杭
朱啸天
王娴
王昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201811212535.XA priority Critical patent/CN109586732B/zh
Publication of CN109586732A publication Critical patent/CN109586732A/zh
Application granted granted Critical
Publication of CN109586732B publication Critical patent/CN109586732B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及通信系统中编解码技术,为提出中短码LDPC的编译码系统,具备描述简单、解码复杂度低、实用灵活以及强大纠错能力。为此,本发明,中短码LDPC编解码方法,具体如下:编码步骤:①计算As和CsT;②计算F‑1(AsT)和E(F‑1(AsT));③计算得到
Figure DDA0001832755150000011
④计算
Figure DDA0001832755150000012
⑤计算
Figure DDA0001832755150000013
⑥计算得到
Figure DDA0001832755150000014
最后,把信息比特序列s,校验序列p1和p2拼接得到编码序列x;采用UMP BP‑based(uniformly most powerful belief‑propagation‑based)方法进行解码。本发明主要应用于通信过程中的编解码设计。

Description

中短码LDPC编解码系统和方法
技术领域
本发明涉及通信系统中编解码技术,具体在硬件实现一套中短码LDPC的编解码,是一种LDPC编译码方案及FPGA实现架构。
背景技术
近年来,LDPC码和通信系统中的其他关键技术的结合成为一个新的研究热点,包括LDPC码与Turbo码以及空时码的结合使用,LDPC码编码与调制,LDPC码的编译码与多输入多输出(Multiple Input Multiple Output,MIMO)技术的结合,基于LDPC码的正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术以及基于LDPC码的码分多址(Code Division Multiple Access,CDMA)技术等。同时,由于LDPC码译码采用迭代译码算法,复杂度相对较低并且硬件水平在不断提高。LDPC码所具有的巨大应用潜力,使其在深空通信、光纤通信、卫星数字视频以及固定无线通信和数字用户线等领域都得到了广泛的应用。因此LDPC码编译码器的硬件实现已成为纠错编码领域一个新的研究热点。
本发明提出一种以KINTEX-7为硬件实现平台,采用MATLAB和ISE14.4为仿真软件,设计实现一种中短码LDPC的编译码。
发明内容
为克服现有技术的不足,本发明旨在提出中短码LDPC的编译码系统,具备描述简单、解码复杂度低、实用灵活以及强大纠错能力。为此,本发明采用的技术方案是,中短码LDPC编解码方法,具体如下:
编码步骤:
对于校验矩阵H,一个m×n的近似下三角矩阵,g表示扩展因子,表示为:
Figure GDA0003340319570000011
其中A是(m-g)×(n-m)基矩阵,B是(m-g)×g基矩阵,F是(m-g)×(m-g)的下三角矩阵,C是g×(n-m)基矩阵,D是g×g基方阵,E是g×(m-g)基矩阵,在H左边乘上
Figure GDA0003340319570000012
便可得到
Figure GDA0003340319570000013
x=(s,p1,p2),s表示信息比特序列,p1、p2合起来表示校验比特序列,x表示编码码流,p1长度为g,符号T表示矩阵转置运算,p2长度为(m-g);
①计算As和CsT
②计算F-1(AsT)和E(F-1(AsT));
③计算得到
Figure GDA0003340319570000014
④计算
Figure GDA0003340319570000015
⑤计算
Figure GDA0003340319570000021
⑥计算得到
Figure GDA0003340319570000022
最后,把信息比特序列s,校验序列p1和p2拼接得到编码序列x;
解码步骤:
采用UMP BP-based(uniformly most powerful belief-propagation-based)算法进行解码,描述如下:
1)初始化:对每个m,n,令zmn=yn
2)迭代译码
(a)第一步校验节点更新:
对每个m,n计算
Figure GDA0003340319570000023
定义
Figure GDA0003340319570000024
表示除了比特n的m校验节点的所有比特的硬判决值的模2和;
(b)第二步变量节点更新:
对每个m,n计算
Figure GDA0003340319570000025
对每个n计算
Figure GDA0003340319570000026
(c)第三步判决:
如果zn>0,则
Figure GDA0003340319570000027
否则
Figure GDA0003340319570000028
如果
Figure GDA0003340319570000029
或者迭代次数达到最大迭代次数,则停止迭代,
Figure GDA00033403195700000210
便为译码结果,否则返回第一步继续迭代。
对于二进制LDPC码,信息的表示用对数似然比形式,有关符号定义:
yn表示编码码流加噪声干扰后的量化数据;
zmn表示从变量节点n传向校验节点m的比特n的对数似然比,zmn从先验信息yn和信息集合{Lm′n:m′∈M(n)\m}中获得;
N(m)={n:Hmn=1}表示与校验节点m相连的所有变量节点n的集合,当不包括n时,记为N(m)\n;
M(n)={m:Hmn=1}表示将与变量节点n相连的所有校验节点m的集合,当不包括m时,记为M(n)\m;
Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,Lmn从信息集合{zmn′:n′∈N(m)\n}中获得;
zn表示每次迭代计算的比特n的后验概率的对数似然比,zn从先验信息Fn和信息集合{Lm′n:m′∈M(n)\m}中获得。
在一个实例中,g×(n-m)矩阵,D是g×g矩阵,E是g×(m-g)矩阵,在H左边乘上
Figure GDA0003340319570000031
便可得到
Figure GDA0003340319570000032
令x=(s,p1,p2),s表示信息比特序列,p1、p2合起来表示校验比特序列,x表示编码码流,p1长度为g,p2长度为(m-g),由Hx=0可以得到这两个等式:
Figure GDA0003340319570000033
(-EF-1A+C)sT+(-EF-1B+D)P1 T=0 (2)
定义f=-EF-1B+D,为单位矩阵,则
P1 T=(-EF-1A+C)sT (3)
Figure GDA0003340319570000034
计算p1的复杂度为O(n+g2),而计算p2的复杂度为O(n),码长为576,码率为1/2,扩展因子为24,实现(576,288)中短码的编译码。
中短码LDPC编解码系统,包括编码、解码两部分,编码部分按照前述①-⑥进行编码,并包含矩阵乘法模块、前向置换模块和矢量加法模块,具体地:
(1)矩阵乘法器模块
由循环移位寄存器和模二加法器组成,如图4,信息序列u与矩阵a的每一行进行相乘运算时,首先从ROM取出第一个非零列号相对应的信息位,并对该信息位进行循环右移,循环右移的次数就是奇校验矩阵中的数字来控制的,然后把这一行中所有的非零元素和信息位相乘所得结果做一次异或相加操作,就得到矩阵一行与信息位相乘的结果,以此完成矩阵乘法运算;
(2)矩阵求逆运算
前向置换其实就是矩阵求逆运算的简化过程,假设矩阵M=(x1,x2,...,xn),求逆运算得N=(y1,y2,...,yn)T,其原理如下:
M=(x1,x2,...,xn)
N=(y1,y2,...,yn)T
则N=F-1M=>FN=M,展开
Figure GDA0003340319570000035
利用上式来计算乘矩阵逆的运算,以此来完成第②和⑥中的运算;
(3)矢量加法模块
矢量加法,这里采用模2相加的方法,异或相加完成;
译码部分:
编码器中主要包含校量化信号寄存器模块、变量节点寄存器模块、校验节点处理器模块、校验矩阵寄存器模块、变量节点处理器模块和译码判决模块,如图图6,具体地:
(1)量化信号寄存器
需要先对yn进行量化,量化为14比特的定点数,其中从左往右第1位为符号位,第2至第5位为整数位,其余为小数位,负数用补码表示;
(2)校验矩阵寄存器
用于存储校验矩阵,考虑到矩阵是固定的且只有读矩阵信息的操作,用只读存储器ROM来实现;
(3)变量节点寄存器
用于RAM存储变量节点信息zmn,大小都与矩阵中非零元素相同,当校验节点更新时,每次更新需要zmn矩阵一行的数据,所以,只要按顺序读zmn_ram的数据,同时控制每次读的个数,确保正好是一行的数据,数据交给校验节点处理器处理完后,需要存入Lmn_ram中,存的地址与读zmn_ram的地址保持一致,同样地,将Lmn_ram的存储单元用矩阵的形式来表示,以后称为Lmn矩阵,但这也不表示Lmn_ram实际存储结构,只是说明了它与校验矩阵的对应联系;
(4)校验节点处理器
用于节点信息处理,采用并行输入输出结构,读取变量节点传来的信息,进行处理,然后写入校验节点寄存器。校验矩阵最大行重为7,所以数据输入输出口都是7个,每当开始更新一个校验节点时,输入数据时,数据进入串并转换模块,并记数,同时,读取该校验节点对应行的行重,当数据个数等于行重时,并行数据进入校验节点处理器中,输出数据时过程类似,由校验节点更新公式
Figure GDA0003340319570000041
其中,Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,
Figure GDA0003340319570000042
表示除了比特n的m校验节点的所有比特的硬判决值的模2和,
Figure GDA0003340319570000043
表示
Figure GDA0003340319570000044
的逻辑取反,zmn’表示根据除了m外所有校验节点给出的信息;
(5)校验节点寄存器
用RAM存储校验节点的信息Lmn,大小都与矩阵中非零元素相同,当变量节点更新时,每次更新需要矩阵Lmn一列的数据,由于的存储是按行的顺序,要准确地直接读取一列的数是难以实现的,所以,首先将原始校验矩阵非零元素按行顺序编号,然后利用MATLAB按列重排,得到的序列COE文件存入ROM。变量节点更新时,按顺序读取这个ROM,读出的数据作为读Lmn_ram的地址,每更新一列时读出相应列重的个数,这样,就能依次读出Lmn矩阵每一列的数了。数据交给变量节点处理器处理完后,需要存入zmn_ram中,存的地址与读Lmn_ram的地址保持一致;
(6)变量节点处理器
读取校验节点传来的信息,进行处理,然后写入变量节点寄存器,校验矩阵列重为2、3或6,所以数据输入输出口都是6个,每当开始更新一个变量节点时,输入数据时,数据进入串并转换模块,并记数,当数据个数等于列重时,并行数据进入校验节点处理器中,输出数据时过程类似,由变量节点更新公式
Figure GDA0003340319570000051
Figure GDA0003340319570000052
只有加法运算,因此可以用4个并行加法器实现,每个加法器有6个输入,一个输出。其中一个加法器用于计算
Figure GDA0003340319570000053
得到的结果再与yn相加得到zn
(7)译码判决模块
根据算法,数据在校验节点处理器和变量节点处理器之间不断迭代更新处理,判断迭代是否结束的条件是
Figure GDA0003340319570000054
是否成立或者是否达到最大迭代次数,zn>0时,判决为1,否则为0,所以,只要将zn的符号位取反直接输出即可。
本发明的特点及有益效果是:
本发明实现了LDPC编译码,LDPC码译码采用迭代译码算法,较好地挖掘了LDPC码所具有的巨大应用潜力,为其在深空通信、光纤通信、卫星数字视频以及固定无线通信和数字用户线等领域得到广泛的应用提供了便利。
附图说明:
图1硬件编译码实现系统架构。
图2RU分解法矩阵分解模块。
图3LDPC编码器总体结构图。
图4矩阵乘法器算法结构示意图。
图5校验矩阵Tanner图。
图6 LDPC译码器总体结构图。
图7校验节点处理器结构。
图8变量节点处理器结构。
图9编码顶层模块的仿真图。
具体实施方式
LDPC码具有描述简单、解码复杂度低、实用灵活以及强大纠错能力等特点,而LDPC码和通信系统中的其他关键技术的结合更是成为一个新的研究热点,本发明的目的在于采用MATLAB和ISE14.4为仿真软件,设计实现了一种中短码LDPC的编译码。
本发明的技术方案如下:
1总体技术方案架构
Richardson和Urbanke提出了RU分解法来解决传统LDPC的通用快速编码,RU分解法,只进行行置换和列置换,从而得到近似下三角形式如图2,由于变换过程中只有行列置换操作,所以矩阵仍然是稀疏的。LDPC译码算法主要研究了基于概率测度的BP(beliefpropagation)译码算法、基于LLR BP(log likelihood ratio,LLR)和UMP BP-based(uniformly most powerful belief-propagation-based)的译码算法。BP算法是一种工作在二分图上的信息传递算法。但BP算法每次迭代都需要进行乘法运算,对数和指数运算,这对于硬件的实现是非常困难的,而UMP BP-based可用于高斯信道上的快速迭代译码,只有实数加法运算,极大地简化了译码复杂度,并且不需要知道信道的特性。这里采用UMP BP-based算法作为译码算法。
首先,整个LDPC编译码系统在MATLAB仿真实现,这里信息比特先经过LDPC编码器后,再进行BPSK调制,加噪声干扰后,作为译码器码流输入,最后通过LDPC译码器完成译码,以此产生的数据文件作为验证硬件仿真的标准。整个硬件编译码实现过程如图1,步骤如下:
第一步:在MATLAB中利用RU分解算法把校验矩阵分解成各个子矩阵,统计矩阵中相应非零位置的存储信息,产生作为RAM中固定的COE文件;
第二步:在ISE中通过矩阵乘法计算与前向置换操作,完成LDPC编码器的仿真实现,再与MATLAB编码结果对比,验证编码设计,编码仿真如图9;
第三步:在MATLAB仿真实现的LDPC编译码系统中,通过BPSK调制并加高斯白噪声(3dB)作为干扰,产生译码码流的输入;
第四步:在ISE完成LDPC译码器的仿真实现,通过校验节点处理器和变量节点处理器不断迭代译码,最后与MATLAB结果对比验证,实现译码设计。
2具体设计方案
2.1 LDPC编码器设计
2.1.1 LDPC编码算法
对于校验矩阵H,一个m×n的近似下三角矩阵,g表示扩展因子,表示为:
Figure GDA0003340319570000061
其中A是(m-g)×(n-m)基矩阵,B是(m-g)×g基矩阵,F是(m-g)×(m-g)的下三角矩阵,C是g×(n-m)基矩阵,D是g×g基方阵,E是g×(m-g)基矩阵,在H左边乘上
Figure GDA0003340319570000062
便可得到
Figure GDA0003340319570000063
令x=(s,p1,p2),s表示信息比特序列,p1、p2合起来表示校验比特序列,x表示编码码流,p1长度为g,p2长度为(m-g),由Hx=0可以得到这两个等式:
Figure GDA0003340319570000064
(-EF-1A+C)sT+(-EF-1B+D)P1 T=0 (2)
定义f=-EF-1B+D,为单位矩阵,则
P1 T=(-EF-1A+C)sT (3)
Figure GDA0003340319570000065
计算p1的复杂度为O(n+g2),而计算p2的复杂度为O(n),因此,该方法具有线性编码复杂度,这里采用IEEE802.16e标准校验矩阵,码长为576,码率为1/2,扩展因子为24,实现(576,288)中短码的编译码方案设计。
2.1.2 LDPC编码硬件实现
根据上述计算步骤可以得到编码器的硬件结构,实现流程如图3所示,主要包含矩阵乘法模块、前向置换模块和矢量加法模块。可以把编码过程分成6步来逐步完成:
①计算AsT和CsT
②计算F-1(AsT)和E(F-1(AsT));
③计算得到
Figure GDA0003340319570000071
④计算
Figure GDA0003340319570000072
⑤计算
Figure GDA0003340319570000073
⑥计算得到
Figure GDA0003340319570000074
最后,把信息比特序列s,校验序列p1和p2拼接得到编码序列x。
(1)矩阵乘法器模块
主要是有循环移位寄存器和模二加法器组成。由于FPGA运算的并行特点,编码器在计算矩阵乘法器是可以按照并行操作。例如,如图4,信息序列u与矩阵a的每一行进行相乘运算时,首先从ROM取出第一个非零列号相对应的信息位,并对该信息位进行循环右移,循环右移的次数就是奇校验矩阵中的数字来控制的,然后把这一行中所有的非零元素和信息位相乘所得结果做一次异或相加操作,就得到矩阵一行与信息位相乘的结果。以此完成上述6步中的矩阵乘法运算。
(2)矩阵求逆运算
前向置换其实就是矩阵求逆运算的简化过程,在IEEE802.16e标准中,构造的奇校验矩阵分块的F是双对角矩阵,对这种特殊的乘矩阵F的逆操作采用前向置换的方法,假设矩阵M=(x1,x2,...,xn),求逆运算得N=(y1,y2,...,yn)T,其原理如下:
M=(x1,x2,...,xn)
N=(y1,y2,...,yn)T
则N=F-1M=>FN=M,展开
Figure GDA0003340319570000075
利用上式来计算乘矩阵逆的运算,就不必进行求逆和相乘的运算,仅用异或就能完成,方便了硬件实现矩阵求逆运算。以此来完成第②和⑥中的运算。
(3)矢量加法模块
矢量加法,这里采用模2相加的方法,异或相加完成。
2.2 LDPC译码器设计
2.2.1 LDPC译码算法
本发明采用一种基于Tanner图如图5的信息传递译码算法且易于硬件实现的UMPBP-based(uniformly most powerful belief-propagation-based)算法,译码的目的是找到最接近的向量
Figure GDA0003340319570000081
使得
Figure GDA0003340319570000082
而校验矩阵可以用Tanner图表示,将编码后的比特用一个顶点集来表示,个数等于码长n,也等于校验矩阵列数,每个比特对应其中一个顶点,称为变量节点。校验约束用另一个顶点集表示,其个数等于校验矩阵行数,每个校验约束对应一个顶点,称为校验节点。如果校验矩阵第i行,第j列的元素非零,则在校验节点Ci和变量节点Vj之间连接一条边,因此,Tanner图中的边数与校验矩阵中的非零元素个数相等。而每个变量节点的连线表示该变量节点参与这几个校验式的校验运算,通过这个过程,该变量节点把信息传递给这几个校验节点;同样,从每个校验节点到几个变量节点的连线表示该校验节点需要这几个变量节点参与,通过校验的结果该校验节点把信息反馈给这些变量节点。具体描述如下:
1.初始化:对每个m,n,令zmn=yn
2.迭代译码
(a)第一步(校验节点更新):
对每个m,n计算
Figure GDA0003340319570000083
定义
Figure GDA0003340319570000084
表示除了比特n的m校验节点的所有比特的硬判决值的模2和。
(b)第二步(变量节点更新):
对每个m,n计算
Figure GDA0003340319570000085
对每个n计算
Figure GDA0003340319570000086
(c)第三步(判决):
如果zn>0,则
Figure GDA0003340319570000087
否则
Figure GDA0003340319570000088
如果
Figure GDA0003340319570000089
或者迭代次数达到最大迭代次数,则停止迭代,
Figure GDA00033403195700000810
便为译码结果,否则返回第一步继续迭代。
对于二进制LDPC码,信息的表示用对数似然比形式,有关符号定义:
yn表示编码码流加噪声干扰后的量化数据;
zmn表示从变量节点n传向校验节点m的比特n的对数似然比,zmn从先验信息yn和信息集合{Lm′n:m′∈M(n)\m}中获得;
N(m)={n:Hmn=1}表示与校验节点m相连的所有变量节点n的集合,当不包括n时,记为N(m)\n;
M(n)={m:Hmn=1}表示将与变量节点n相连的所有校验节点m的集合,当不包括m时,记为M(n)\m;
Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,Lmn从信息集合{zmn′:n′∈N(m)\n}中获得;
zn表示每次迭代计算的比特n的后验概率的对数似然比,zn从先验信息Fn和信息集合{Lm′n:m′∈M(n)\m}中获得。
2.2.2 LDPC译码硬件实现
LDPC译码器实现流程如图6所示,译码器中主要包含校量化信号寄存器模块、变量节点寄存器模块、校验节点处理器模块、校验矩阵寄存器模块、变量节点处理器模块和译码判决模块,可以把译码过程分成4步来逐步完成:
①数据初始化zmn=yn
②校验节点更新,分4小步,包括符号生成
Figure GDA0003340319570000091
取绝对值|zmn'|,计算最小值
Figure GDA0003340319570000092
最后,数据生成
Figure GDA0003340319570000093
③变量节点更新,使用并行加法器实现
Figure GDA0003340319570000094
④如果
Figure GDA0003340319570000095
或者迭代次数达到最大迭代次数,则停止迭代,
Figure GDA0003340319570000096
便为译码结果,如果zn>0,否则
Figure GDA0003340319570000097
否则返回第②步继续迭代。
(1)量化信号寄存器
存储量化后的数据yn,用于初始化每个节点的数据。由于yn有读写操作,因此用随机存储器RAM来实现,大小等于码长。由于FPGA处理的都是二进制信号,而接收到的信号yn是有噪声的BPSK信号,因此需要先对yn进行量化,量化为14比特的定点数,其中从左往右第1位为符号位,第2至第5位为整数位,其余为小数位,负数用补码表示,此过程利用MATLAB产生译码所需的输入码流。
(2)校验矩阵寄存器
用于存储校验矩阵,考虑到矩阵是固定的且只有读矩阵信息的操作,用只读存储器ROM来实现,具体实现方法是,将已经确定的(576,288)矩阵转化为其中非零元素的位置信息,位置信息包括行号与列号,将行号用9位比特表示,列号用10位比特表示,行在前列在后合并为19比特的二进制数表示的位置信息,每个存储单元存一个非零元素的位置信息,利用MATLAB产生COE文件,逐行依次存入ROM中。
(3)变量节点寄存器
用于RAM存储变量节点信息zmn,大小都与矩阵中非零元素相同。当校验节点更新时,每次更新需要zmn矩阵一行的数据,所以,只要按顺序读zmn_ram的数据,同时控制每次读的个数,确保正好是一行的数据。我们可以事先将矩阵各行的行重算出来,利用MATLAB产生COE文件,存入ROM中,每更新一行,读取该行的行重,这样就能控制读zmn_ram的个数了。数据交给校验节点处理器处理完后,需要存入Lmn_ram中,存的地址与读zmn_ram的地址保持一致。同样地,将Lmn_ram的存储单元用矩阵的形式来表示,以后称为Lmn矩阵,但这也不表示Lmn_ram实际存储结构,只是说明了它与校验矩阵的对应联系。
(4)校验节点处理器
用于节点信息处理,采用并行输入输出结构,读取变量节点传来的信息,进行处理,然后写入校验节点寄存器。校验矩阵最大行重为7,所以数据输入输出口都是7个。每当开始更新一个校验节点时,输入数据时,数据进入串并转换模块,并记数,同时,读取该校验节点对应行的行重,当数据个数等于行重时,并行数据进入校验节点处理器中。输出数据时过程类似,由校验节点更新公式
Figure GDA0003340319570000101
可以大致将该模块分为符号生成、去绝对值、计算最小值和数据生成这四个子模块。其中,Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,
Figure GDA0003340319570000102
表示除了比特n的m校验节点的所有比特的硬判决值的模2和,
Figure GDA0003340319570000103
表示
Figure GDA0003340319570000104
的逻辑取反,zmn’表示根据除了m外所有校验节点给出的信息,具体包括四步,符号生成
Figure GDA0003340319570000105
取绝对值|zmn'|,计算最小值
Figure GDA0003340319570000106
数据生成
Figure GDA0003340319570000107
校验节点处理器结构如图7。
(5)校验节点寄存器
用RAM存储校验节点的信息Lmn,大小都与矩阵中非零元素相同。当变量节点更新时,每次更新需要矩阵Lmn一列的数据,由于的存储是按行的顺序,要准确地直接读取一列的数是难以实现的,所以,首先将原始校验矩阵非零元素按行顺序编号,然后利用MATLAB按列重排,得到的序列COE文件存入ROM。变量节点更新时,按顺序读取这个ROM,读出的数据作为读Lmn_ram的地址,每更新一列时读出相应列重的个数,这样,就能依次读出Lmn矩阵每一列的数了。数据交给变量节点处理器处理完后,需要存入zmn_ram中,存的地址与读Lmn_ram的地址保持一致。
(6)变量节点处理器
读取校验节点传来的信息,进行处理,然后写入变量节点寄存器。校验矩阵列重为2、3或6,所以数据输入输出口都是6个。每当开始更新一个变量节点时,输入数据时,数据进入串并转换模块,并记数,当数据个数等于列重时,并行数据进入校验节点处理器中。输出数据时过程类似。
由变量节点更新公式
Figure GDA0003340319570000111
Figure GDA0003340319570000112
只有加法运算,因此可以用4个并行加法器实现,每个加法器有6个输入,一个输出。其中一个加法器用于计算
Figure GDA0003340319570000113
得到的结果再与yn相加得到zn,变量节点处理器结构如图8。
(7)译码判决模块
根据算法,数据在校验节点处理器和变量节点处理器之间不断迭代更新处理,判断迭代是否结束的条件是
Figure GDA0003340319570000114
是否成立或者是否达到最大迭代次数。zn>0时,判决为1,否则为0,所以,只要将zn的符号位取反直接输出即可。

Claims (3)

1.一种中短码LDPC编解码方法,其特征是,编码步骤:
对于校验矩阵H,一个m×n的近似下三角矩阵,g表示扩展因子,表示为:
Figure FDA0003340319560000011
其中A是(m-g)×(n-m)基矩阵,B是(m-g)×g基矩阵,F是(m-g)×(m-g)的下三角矩阵,C是g×(n-m)基矩阵,D是g×g基方阵,E是g×(m-g)基矩阵,在H左边乘上
Figure FDA0003340319560000012
便可得到
Figure FDA0003340319560000013
x=(s,p1,p2),s表示信息比特序列,p1、p2合起来表示校验比特序列,x表示编码码流,p1长度为g,符号T表示矩阵转置运算,p2长度为(m-g);
①计算As和CsT
②计算F-1(AsT)和E(F-1(AsT));
③计算得到
Figure FDA0003340319560000014
④计算
Figure FDA0003340319560000015
⑤计算
Figure FDA0003340319560000016
⑥计算得到
Figure FDA0003340319560000017
最后,把信息比特序列s,校验序列p1和p2拼接得到编码序列x;
解码步骤:
与校验节点m相连的所有变量节点n的集合记为N(m)={n:Hmn=1},当不包括n时,记为N(m)\n;类似地,将与变量节点n相连的所有校验节点m的集合记为M(n)={m:Hmn=1},当不包括m时,记为M(n)\m,yn表示编码码流加噪声干扰后的量化数据,迭代译码过程中,zmn和Lmn两个量交替变化,都和校验矩阵H中的非零元素对应,Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,Lmn从消息集合{zmn′:n′∈N(m)\n}中获得,zmn表示从变量节点n传向校验节点m的比特n的对数似然比,zmn从先验信息Fn和消息集合{Lm′n:m′∈M(n)\m}中获得,zn表示每次迭代计算的比特n的后验概率的对数似然比,zn从先验信息Fn和消息集合{Lm′n:m′∈M(n)\m}中获得;UMP BP-based(uniformly most powerful belief-propagation-based)算法描述如下:
1.初始化:对每个m,n,令zmn=yn
2.迭代译码
(a)第一步校验节点更新:
对每个m,n计算
Figure FDA0003340319560000021
定义
Figure FDA0003340319560000022
表示除了比特n的m校验节点的所有比特的硬判决值的模2和;
(b)第二步变量节点更新:
对每个m,n计算
Figure FDA0003340319560000023
对每个n计算
Figure FDA0003340319560000024
(c)第三步判决:
如果zn>0,则
Figure FDA0003340319560000025
否则
Figure FDA0003340319560000026
如果
Figure FDA0003340319560000027
或者迭代次数达到最大迭代次数,则停止迭代,
Figure FDA0003340319560000028
便为译码结果,否则返回第一步继续迭代。
2.如权利要求1所述的中短码LDPC编解码方法,其特征是,g×(n-m)矩阵,D是g×g矩阵,E是g×(m-g)矩阵,在H左边乘上
Figure FDA0003340319560000029
便可得到
Figure FDA00033403195600000210
令x=(s,p1,p2),s表示信息比特序列,p1、p2合起来表示校验比特序列,x表示编码码流,p1长度为g,p2长度为(m-g),由Hx=0可以得到这两个等式:
Figure FDA00033403195600000211
(-EF-1A+C)sT+(-EF-1B+D)P1 T=0 (2)
定义f=-EF-1B+D,为单位矩阵,则
P1 T=(-EF-1A+C)sT (3)
Figure FDA00033403195600000212
计算p1的复杂度为O(n+g2),而计算p2的复杂度为O(n),码长为576,码率为1/2,扩展因子为24,实现(576,288)中短码的编译码。
3.一种中短码LDPC编解码系统,其特征是,包括编码、解码两部分,编码部分按照权利要求1所述步骤①-⑥进行编码,包含矩阵乘法模块、前向置换模块和矢量加法模块,具体地:
(1)矩阵乘法器模块
由循环移位寄存器和模二加法器组成,信息序列u与矩阵a的每一行进行相乘运算时,首先从ROM取出第一个非零列号相对应的信息位,并对该信息位进行循环右移,循环右移的次数就是奇校验矩阵中的数字来控制的,然后把这一行中所有的非零元素和信息位相乘所得结果做一次异或相加操作,就得到矩阵一行与信息位相乘的结果,以此完成矩阵乘法运算;
(2)矩阵求逆运算
前向置换其实就是矩阵求逆运算的简化过程,假设矩阵M=(x1,x2,...,xn),求逆运算得N=(y1,y2,...,yn)T,其原理如下:
M=(x1,x2,...,xn)
N=(y1,y2,...,yn)T
则N=F-1M=>FN=M,展开
Figure FDA0003340319560000031
利用上式来计算乘矩阵逆的运算,以此来完成第②和⑥中的运算;
(3)矢量加法模块
矢量加法,这里采用模2相加的方法,异或相加完成;
译码部分:
编码器中包含校量化信号寄存器模块、变量节点寄存器模块、校验节点处理器模块、校验矩阵寄存器模块、变量节点处理器模块和译码判决模块,具体地:
(1)量化信号寄存器
需要先对yn进行量化,量化为14比特的定点数,其中从左往右第1位为符号位,第2至第5位为整数位,其余为小数位,负数用补码表示;
(2)校验矩阵寄存器
用于存储校验矩阵,考虑到矩阵是固定的且只有读矩阵信息的操作,用只读存储器ROM来实现;
(3)变量节点寄存器
用于RAM存储变量节点信息zmn,大小都与矩阵中非零元素相同,当校验节点更新时,每次更新需要zmn矩阵一行的数据,所以,只要按顺序读zmn_ram的数据,同时控制每次读的个数,确保正好是一行的数据,数据交给校验节点处理器处理完后,需要存入Lmn_ram中,存的地址与读zmn_ram的地址保持一致,同样地,将Lmn_ram的存储单元用矩阵的形式来表示,以后称为Lmn矩阵,但这也不表示Lmn_ram实际存储结构,只是说明了它与校验矩阵的对应联系;
(4)校验节点处理器
用于节点信息处理,采用并行输入输出结构,读取变量节点传来的信息,进行处理,然后写入校验节点寄存器,校验矩阵最大行重为7,所以数据输入输出口都是7个,每当开始更新一个校验节点时,输入数据时,数据进入串并转换模块,并记数,同时,读取该校验节点对应行的行重,当数据个数等于行重时,并行数据进入校验节点处理器中,输出数据时过程类似,由校验节点更新公式
Figure FDA0003340319560000041
其中,Lmn表示从校验节点m传向变量节点n的比特n的对数似然比,
Figure FDA0003340319560000042
表示除了比特n的m校验节点的所有比特的硬判决值的模2和,
Figure FDA0003340319560000043
表示
Figure FDA0003340319560000044
的逻辑取反,zmn,表示根据除了m外所有校验节点给出的信息;
(5)校验节点寄存器
用RAM存储校验节点的信息Lmn,大小都与矩阵中非零元素相同,当变量节点更新时,每次更新需要矩阵Lmn一列的数据,由于的存储是按行的顺序,要准确地直接读取一列的数是难以实现的,所以,首先将原始校验矩阵非零元素按行顺序编号,然后利用MATLAB按列重排,得到的序列COE文件存入ROM,变量节点更新时,按顺序读取这个ROM,读出的数据作为读Lmn_ram的地址,每更新一列时读出相应列重的个数,这样,就能依次读出Lmn矩阵每一列的数了,数据交给变量节点处理器处理完后,需要存入zmn_ram中,存的地址与读Lmn_ram的地址保持一致;
(6)变量节点处理器
读取校验节点传来的信息,进行处理,然后写入变量节点寄存器,校验矩阵列重为2、3或6,所以数据输入输出口都是6个,每当开始更新一个变量节点时,输入数据时,数据进入串并转换模块,并记数,当数据个数等于列重时,并行数据进入校验节点处理器中,输出数据时过程类似,由变量节点更新公式
Figure FDA0003340319560000045
Figure FDA0003340319560000046
只有加法运算,因此用4个并行加法器实现,每个加法器有6个输入,一个输出,其中一个加法器用于计算
Figure FDA0003340319560000047
得到的结果再与yn相加得到zn
(7)译码判决模块
根据算法,数据在校验节点处理器和变量节点处理器之间不断迭代更新处理,判断迭代是否结束的条件是
Figure FDA0003340319560000048
是否成立或者是否达到最大迭代次数,zn>0时,判决为1,否则为0,所以,只要将zn的符号位取反直接输出。
CN201811212535.XA 2018-10-18 2018-10-18 中短码ldpc编解码系统和方法 Active CN109586732B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811212535.XA CN109586732B (zh) 2018-10-18 2018-10-18 中短码ldpc编解码系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811212535.XA CN109586732B (zh) 2018-10-18 2018-10-18 中短码ldpc编解码系统和方法

Publications (2)

Publication Number Publication Date
CN109586732A CN109586732A (zh) 2019-04-05
CN109586732B true CN109586732B (zh) 2022-02-25

Family

ID=65920564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811212535.XA Active CN109586732B (zh) 2018-10-18 2018-10-18 中短码ldpc编解码系统和方法

Country Status (1)

Country Link
CN (1) CN109586732B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096384B (zh) * 2019-04-23 2021-06-25 西安电子科技大学 高可靠航天数据及中间变量的保护方法
CN111457947B (zh) * 2020-05-13 2021-11-19 新里程医用加速器(无锡)有限公司 位置编码系统及编码方法和装置、电子设备和存储介质
CN111817728B (zh) * 2020-08-03 2022-03-01 华中科技大学 一种基于硬件实现ldpc编译码的仿真系统及其工作方法
CN113411087B (zh) * 2021-06-30 2023-05-09 展讯半导体(成都)有限公司 解码q元LDPC的方法、电路及包括其的接收机
CN114513193B (zh) * 2022-02-15 2023-04-07 电子科技大学 基于概率计算和近似处理的fir滤波方法及滤波器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739259A (zh) * 2012-05-28 2012-10-17 奥维通信股份有限公司 一种用于cmmb激励器中的基于fpga的ldpc编码方法
CN104506278A (zh) * 2014-12-29 2015-04-08 河海大学 Ldpc调制系统的联合迭代接收机线性优化方法
CN104767536A (zh) * 2015-03-19 2015-07-08 深圳市力合微电子股份有限公司 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器
CN106997777A (zh) * 2015-09-18 2017-08-01 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534166B (zh) * 2008-03-10 2012-07-11 上海明波通信技术有限公司 准循环低密度奇偶校验码解码器及解码方法
KR102559925B1 (ko) * 2016-07-21 2023-07-26 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739259A (zh) * 2012-05-28 2012-10-17 奥维通信股份有限公司 一种用于cmmb激励器中的基于fpga的ldpc编码方法
CN104506278A (zh) * 2014-12-29 2015-04-08 河海大学 Ldpc调制系统的联合迭代接收机线性优化方法
CN104767536A (zh) * 2015-03-19 2015-07-08 深圳市力合微电子股份有限公司 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器
CN106997777A (zh) * 2015-09-18 2017-08-01 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"A new modified UMP BP decoding algorithm of quasi-cyclic LDPC codes based on oscillation estimation";Fa Xun Zhang等;《2013 Tenth International Conference on Wireless and Optical Communications Networks (WOCN)》;20131003;第1-5页 *
"LDPC码和GLD码的软判决迭代译码研究";郑贺;《中国优秀博硕士学位论文全文数据库(博士) 信息科技辑》;20070615(第06期);第I136-3页 *

Also Published As

Publication number Publication date
CN109586732A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
CN109586732B (zh) 中短码ldpc编解码系统和方法
US8196025B2 (en) Turbo LDPC decoding
CN101924565B (zh) Ldpc编码器、解码器、系统及方法
US7343548B2 (en) Method and apparatus for encoding and decoding data
US9075738B2 (en) Efficient LDPC codes
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
US7934147B2 (en) Turbo LDPC decoding
US20070089018A1 (en) Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values
US20180351585A1 (en) Non-concatenated fec codes for ultra-high speed optical transport networks
WO2007034870A1 (ja) 復号装置および受信装置
Thi et al. Basic-set trellis min–max decoder architecture for nonbinary ldpc codes with high-order galois fields
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
CN110730008A (zh) 一种基于深度学习的rs码置信传播译码方法
Khodaiemehr et al. Construction and encoding of QC-LDPC codes using group rings
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
CN1973440A (zh) Ldpc编码器、解码器、系统及方法
CN105871385B (zh) 一种ldpc卷积码构造方法
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
Chen et al. FPGA implementation and verification of LDPC minimum sum algorithm decoder with weight (3, 6) regular parity check matrix
JP5385944B2 (ja) 復号器
KR100849991B1 (ko) Ldpc 부호생성기법을 이용한 부호화 시스템 및 방법과이로부터의 복호화 시스템 및 방법
CN111181570A (zh) 基于fpga的编译码方法和装置
Huang et al. A Markov chain model for edge memories in stochastic decoding of LDPC codes
CN108736898B (zh) 一种适用于5g系统的ldpc码编解码器复用方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant