CN104410427A - 一种ldpc编码器及其校验位生成单元 - Google Patents
一种ldpc编码器及其校验位生成单元 Download PDFInfo
- Publication number
- CN104410427A CN104410427A CN201410837627.2A CN201410837627A CN104410427A CN 104410427 A CN104410427 A CN 104410427A CN 201410837627 A CN201410837627 A CN 201410837627A CN 104410427 A CN104410427 A CN 104410427A
- Authority
- CN
- China
- Prior art keywords
- arithmetic element
- unit
- matrix
- memory
- output
- 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
Abstract
本发明公开了一种LDPC编码器及其校验位生成单元,涉及数字信息传输领域,旨在提供一种LDPC码编码器及其中的校验位生成单元的逻辑电路,以更快的速度、更少的资源兼容实现多种LDPC编码。本发明技术要点:处理突发数据进入的编码信息缓存单元、校验位生成单元以及信息位与校验位选通单元;其中编码信息缓存单元用于接收编码信息;编码信息缓存单元与校验位生成单元的输入端连接,同时与信息位与校验位选通单元的第一输入端连接;校验位生成单元的输出端与信息位与校验位选通单元的第二输入端连接;信息位与校验位选通单元用于将编码信息与校验位生成单元的输出信息组合输出。
Description
技术领域
本发明涉及数字信息传输领域,尤其涉及到CDR(中国数字音频广播)系统的发射端调制器的LDPC编码技术。
背景技术
在CDR系统的发射端调制中,需要对待发送数据进行LDPC编码。将待发送信息与其LDPC编码结果组合发送。
LDPC码传统编码算法和一般的线性分组码十分类似,只需根据校验矩阵求出生成矩阵,然后利用生成矩阵进行编码。若已知长度为n的信息序列s,G为变换生成矩阵,则校验码字 P中的每个小G矩阵为256×256的小矩阵。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种LDPC码编码器及其中的校验位生成单元的逻辑电路,以更快的速度、更少的资源实现LDPC编码。
本发明提供的LDPC编码器,包括编码信息缓存单元、校验位生成单元以及信息位与校验位选通单元;
其中编码信息缓存单元用于接收编码信息;
编码信息缓存单元与校验位生成单元的输入端连接,同时与信息位与校验位选通单元的第一输入端连接;
校验位生成单元的输出端与信息位与校验位选通单元的第二输入端连接;信息位与校验位选通单元用于将编码信息与校验位生成单元的输出信息组合输出。
其中,校验位生成单元,包括第一存储器、第二存储器、M+1个运算单元、控制单元及选通输出单元;
所述第一存储器与M+1个运算单元均具有信号连接,第一存储器用于存储生成矩阵中的非特殊矩阵;
所述第二存储器与M+1个运算单元均具有信号连接,第二存储器用于存储生成矩阵中的特殊矩阵;
M+1分别用于并行计算
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接;
所述编码信息输出线用于根据控制时钟逐位输出编码信息;
所述选通输出单元用于控制第一运算单元、第二运算单元、…、第m+1运算单元依次输出其运算结果;
所述控制单元用于根据控制时钟控制第一存储器或第二存储器同时向所述m+1个运算单元输出矩阵系数;
其中,生成矩阵为 G(0 0)、…、G(0 k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)均为256×256的小矩阵; 为256×(n-1)位编码信息,s0、s1、…、sn-1均为256维列向量;M、m、n均为正整数,且m+1为在不同码率下实际参与运算工作的运算单元个数,m≤M。
进一步,所述运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收第一存储器或第二存储器输出的256位矩阵系数;各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在的运算单元的编码信号输入端连接;各异或单元的第一输入端与各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。
进一步,第一存储器用于存储所述生成矩阵中所有非特殊小矩阵的第一列元素以及用于存储所述生成矩阵中具有特殊列的特殊小矩阵的第一列元素与该特殊小矩阵中的特殊列后的第一列元素;第二存储器用于存储所述特殊小矩阵的第一列特殊列元素。一般说来将生成矩阵全部存储是十分耗费存储资源的,实际上几乎不能实现,本发明利用生成矩阵是稀疏矩阵的特点,采用此种存储方法,有效减少了存储空间。
进一步,当n为9,m为26时或者n为12,m为23时:所述控制单元根据控制时钟控制第一存储器向所述m+1个运算单元输出矩阵系数的步骤为:
步骤1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、…、G(m 0)的第一列元素;每个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;m+1个运算单元各自完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各元算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元各自将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、…、G(m 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、…、G(m 1)与s1的运算,…,G(0 n-1)、G(1 n-1)、…、G(m n-1)与sn-1的运算。
进一步,当n为18,m为17时或者n为27,m为8时:生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列构成特殊矩阵,0<k<n-1,0<j<n-1,a为大于或等于1的整数;所述控制单元根据控制时钟控制第一存储器同时向所述m+1个运算单元输出矩阵系数的步骤为:
步骤1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、…、G(m 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;m+1个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、…、G(m 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、…、G(m 1)与s1的运算,…,G(0 j-1)、G(1 j-1)、…、G(m j-1)与sj-1的运算;
步骤3:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、…、G(m k)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第一个元素;m+1个运算单元完成一次运算;
步骤4:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
将步骤4循环j-1个控制时钟;
步骤5:控制第二存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、…、G(m k)的第j列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤6:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤6循环a个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 k)、G(1 k)、…、G(m k)与sk的运算;
最后再按照步骤1、步骤2及对步骤2的重复完成G(0 j+a+1)、G(1 j+a+1)、…、G(m j+a+1)与sj+a+1的运算;…;G(0 n-1)、G(1 n-1)、…、G(m n-1)与sn-1的运算。本发明采用这样的存储结构及运算方式,兼容了在1/2码率与3/4码率下生成矩阵中存在特殊矩阵的情况,具有良好的兼容性。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.每个运算单元以及各个运算单元内部均采用并行结构完成相关运算,大大提高了运算速度。
2.采用两片存储器分别存储非特殊矩阵与特殊矩阵的第一列元素,既能满足矩阵系数的读取时序要求,又能简化编码架构。3.本发明能完成4种码率的编码过程,具有良好的兼容性。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为LDPC编码器的一个具体实施例。
图2为非特殊小矩阵。
图3为特殊小矩阵。
图4为3/4码率下生成矩阵的结构。
图5为校验码生成单元的一个具体实施例。
图6为运算单元的一个具体实施例。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
根据“中华人民共和国广播电影电视行业标准GY/T 268.1-2013”规定,LDPC码(低密度奇偶校验码)采用表一所示的四种不同码率:
表一 LDPC编码规格表
编号 | 块长【比特】 | 信息【比特】 | 对应的编码效率 |
码率1 | 9216 | 2304 | 1/4 |
码率2 | 9216 | 3072 | 1/3 |
码率3 | 9216 | 4608 | 1/2 |
码率4 | 9216 | 6912 | 3/4 |
。
假设输入编码信息为m={m0,m1,…,mk-1},对编码信息进行LDPC编码得到校验位p={p0,p1,...,p9215-k},其中编码信息码率为码率1时k为2304,编码信息码率为码率2时k为3072,编码信息码率为码率3时k为4608,编码信息码率为码率4时k为6912。那么LDPC编码器的输出码字为c={c0,c1,…,c9215}={m0,m1,…mk-1,p0,p1,…p9215-k}。
上述校验位p={p0,p1,...,p9215-K}由校验矩阵H求解如下方程得出:
H×cT=0 式1
式中:
0——(9216-K)行1列的全0列矢量;
H——LDPC奇偶校验矩阵。
LDPC码传统编码算法和一般的线性分组码十分类似,只需根据校验矩阵求出生成矩阵G,然后利用生成矩阵G对编码信息s进行编码。若已知长度为n的信息序列s,G为变换生成矩阵,则校验位码字P=G×s。G矩阵是否为稀疏矩阵及循环矩阵对硬件实现的可能性影响很大,因为我们编码是通过:G×s得到的,所以必须把构成G的分块小矩阵系数存在ROM模块中,对于不是稀疏的G矩阵,把其中的内容存在ROM中显然是不现实的。
不同码率下G矩阵是不同的,但是均是行业已知的。其中,在码率1及码率2时,G矩阵分为若干256×256小矩阵(小矩阵为256行、256列的矩阵),且每个小矩阵都有规律可循,即是图2所示的非特殊小矩阵,每个非特殊小矩阵以第0行为高位,第1列为第0列循环左移1位得到,第2列为第1列循环左移1位得到,以此类推,第255列为第254列循环左移1位得到,第255列循环左移1位得第0列。对于这样的G矩阵,我们只需要将其每个小矩阵的第0列元素存储即可,本发明将非特殊小矩阵的第0列元素存储在第一存储器ROM中(包括4种码率的矩阵系数)。如无特别说明,本发明中的行、列、位等序号均为从0开始编号。
在码率3或码率4时,G矩阵同样分为若干256×256小矩阵(小矩阵为256行、256列的矩阵),但是有些小矩阵为非特殊小矩阵,而小矩阵G(0 k)、G(1 k)、…、G(m k)为特殊小矩阵。以码率4为例,G矩阵为图4所示,其中G(0 13)、G(1 13)、…、G(8 13)为特殊小矩阵。
特殊小矩阵不同于非特殊小矩阵,该小矩阵有一段连续部分有新的循环系数,本发明中将其称为特殊列,如图3的特殊小矩阵,其第46~61列。所以我们将该小矩阵分为起始列分别为第0列、第46列、第62列的3个部分,并将循环矩阵系数,即第0列,第62列存储在第一存储器ROM中,将第46列存储在另一片存储器ROM_SP中。特殊小矩阵G(0 k)、G(1 k)、…、G(m k)都按照此规律存储矩阵系数。其它非特殊小矩阵将按照前述方式,仅将每个小矩阵的第0列系数存储在第一存储器ROM中,存储规律为从上到下,从左到右。在其它实施例中,也可以按照其它规律存储。
本领域技术人员知晓LPDC编码校验位p的由下式生成:
其中G矩阵为已知,且已经按照上述方式存储在第一存储器与第二存储器中,而s为编码信息或输入信息,将其分为n个256维列向量s0、s1、…、sn-1。
下面将详细介绍上述运算的电路实现。
如图1本发明提供的LDPC编码器,包括编码信息缓存单元、校验位生成单元以及信息位与校验位选通单元。
其中编码信息缓存单元用于接收编码信息,这里设置编码信息缓存单元主要是为了处理突发数据进入;编码信息缓存单元与校验位生成单元的输入端连接,同时与信息位与校验位选通单元的第一输入端连接;校验位生成单元的输出端与信息位与校验位选通单元的第二输入端连接;信息位与校验位选通单元用于将编码信息与校验位生成单元的输出信息依次输出。
实际工作时,由于编码信息缓存单元是同时将编码信息输出到信息位与校验位选通单元与校验位生成单元的,由于校验位生成单元进行校验位生成需要时间,因此必然是编码信息较校验位生成单元输出的信息先进入信息位与校验位选通单元,信息位与校验位选通单元也必然是先输出编码信息后输出校验位生成单元的输出信息。
如图5,校验位生成单元包括第一存储器ROM、第二存储器ROM_SP、M+1个运算单元、控制单元及选通输出单元。
所述第一存储器ROM与M+1个运算单元均具有信号连接,所述第二存储器ROM_SP与M+1个运算单元均具有信号连接。
运算单元0计算
运算单元1计算
以此类推,运算单元m计算
这样的并行结构大大提高了运算速度,其中M为26,即是说这里校验位生成单元中具有27个运算单元,m+1为不同码率下实际参与并行运算工作的运算单元个数,m≤M。如在码率1时当m为26,此时27个运算单元全部参与运算;码率2时m为23,此时只有24个运算单元参与运算;码率3时m为17,此时有18个运算单元参与运算;码率4时,m为8;,此时只有9个运算单元参与运算。
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接。
所述编码信息输出线从编码信息缓存单元引出,用于根据控制时钟逐位输出编码信息。
所述选通输出单元用于控制第一运算单元、第二运算单元、…、第M+1运算单元依次输出其运算结果。
所述控制单元用于根据控制时钟控制第一存储器或第二存储器同时向所述M+1个运算单元输出矩阵系数;
其中,生成矩阵为 G(0 0)、…、G(0 k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)均为256×256的小矩阵; 为256×(n-1)位编码信息,s0、s1、…、sn-1均为256维列向量。m、n均为正整数。在码率1时当m为26,n为9,此时27个运算单元全部参与运算,码率2时m为23,n为12,此时只有24个运算单元参与运算,码率3时m为17,n为18,此时有18个运算单元参与运算,码率4时,m为8,n为27,此时只有9个运算单元参与运算。这样的设计目的在于使编码器能兼容不同码率的编码运算。
27个运算单元内部结构完全一样。如图6,运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收第一存储器或第二存储器输出的256位矩阵系数或者说小矩阵的第某列。各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在运算单元的编码信息输入端连接;各异或单元的第一输入端和各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。采用这样的运算单元结构,实现了在一个时钟周期内并行处理256次异或运算。
下面分别详细说明四种码率下运算单元的工作原理:
1、码率1或码率2情况:
步骤1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、…、G(m 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;m+1个运算单元完成一次运算;结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;结果存储在第二寄存器中;
将步骤2循环255个控制时钟,结果存储在第二寄存器中。
步骤3:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 1)、G(1 1)、…、G(m 1)的第一列元素;各个运算单元编码信息输出线上按照控制时钟依次出现s1的第一个元素;m+1个运算单元同时完成一次运算;结果存储在第二寄存器中;
步骤4:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s1中的下一个元素,各运算单元完成一次运算;结果存储在第二寄存器中;
将步骤4循环255个控制时钟,结果存储在第二寄存器中。
如此类推,直到
步骤2n-1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 n-1)、G(1 n-1)、…、G(m n-1)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sn-1的第一个元素;m+1个运算单元完成一次运算;结果存储在第二寄存器中;
步骤2n:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sn-1中的下一个元素,各运算单元完成一次运算;结果存储在第二寄存器中;
将步骤2n循环255个控制时钟,结果存储在第二寄存器中。
因为矩阵系数是顺序读取时,这将和各个运算单元的并发工作是一对矛盾。所以基本运算单元在其移位寄存器得到矩阵系数后开始编码工作,其后的运算单元将因为得到由前一运算单元输出的编码信息位而延迟一拍工作,最后一个运算单元将延迟m拍。这样可以解决矩阵系数顺序读取和并发工作的矛盾。
如在第一控制时钟内,s0的第一个元素与ROM输出的G(0 0)的第0列矩阵系数同时到达运算单元0,运算单元0将s0的第一个元素与256位数据寄存器的数(G(0 0)的第0列矩阵系数)进行异或运算,结果存储在运算单元0的第二寄存器中。第二控制时钟到来时,运算单元0的第一寄存器将矩阵系数循环左移一位后存储在第一寄存器中,s0的第二个元素到达运算单元0,同时运算单元0将s0的第一个元素输出到运算单元1。此时,ROM输出的矩阵G(1 0)的第0列到达运算单元1,运算单元1进行和运算单元0同样的运算和存储。其它的运算单元工作与此类似,不同的是最后一个运算单元编码信息位,其不用将编码信息位输出。运算单元对每次进入的数据进行异或运算后进行缓存,第256次运算完成后,矩阵系数由ROM进行输入更新。
2、码率3或码率4情况:
此时,生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列构成特殊矩阵,0<k<n-1,0<j<n-1,a为大于或等于1的整数。如码率4情况下,j为46,a为15,即这m+1个小矩阵的第46~61列具有新的循环系数。
在这种情况下,对非特殊矩阵,即G(0 k)、G(1 k)…G(m k)以外的矩阵的处理方式与前面描述的相同,遇到特殊矩阵G(0 k)、G(1 k)…G(m k)时,需要做特殊处理,以码率4为例:在ROM矩阵系数进行第14次输入更新后,其在内部寄存器完成45次循环移位(46次异或运算)后,ROM_SP进行第15次矩阵系数输入更新,其在内部寄存器完成15次循环移位(16次异或运算)后由ROM矩阵系数进行第16输入更新,完成193次循环移位(255-61=194次异或运算)。由此完成编码信息与特殊矩阵的运算。码率3的运算步骤与此类似。
码率3或码率4情况下的编码步骤同样适用于上述码率1或码率2的各运算单元依次延迟的处理方式。即基本运算单元在其移位寄存器得到矩阵系数后开始编码工作,其后的运算单元将得到由前一运算单元输出的数据信息而延迟一拍工作。
特殊矩阵系数存储的设计是为了解决矩阵系数顺序读取与运算单元并发工作的矛盾。考虑到码率3情况下,一共有18个运算单元并行工作,而特殊小矩阵中的特殊列有16列(第132~147列为特殊列)。若将非特殊小矩阵与特殊小矩阵的特殊列存在一个存储器中,就会出现第1个运算单元的特殊矩阵系数已经移位循环完毕需要从存储器读取普通矩阵的循环移位起始列时,第16个运算单元及后续的运算单元还没更新到特殊小矩阵的起始列,这时需要同时从存储器中读取第1个运算单元需要的非特殊小矩阵系数及第16个运算单元及后续运算单元需要的特殊小矩阵系数,进而发生冲突,为此本发明设置了两块存储器分别存储非特殊小矩阵的起始列及特殊小矩阵的起始列。
码率4情况下,虽然也存在特殊小矩阵,但是码率4下,一共有9个运算单元并行工作,而特殊小矩阵中的特殊列有16列(第46~61列为特殊列)。即使将非特殊小矩阵与特殊小矩阵的特殊列存在一个存储器中,也不会出现码率3那样的矩阵系数读取冲突问题,因此在码率4情况下,也可以像在码率1、2情况下那样不设置特殊矩阵存储器ROM_SP,也就是说本发明设置特殊存储器ROM_SP是为了兼容码率3增加的。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (10)
1.一种LDPC编码器,其特征在于,包括编码信息缓存单元、校验位生成单元以及信息位与校验位选通单元;
其中编码信息缓存单元用于接收编码信息;
编码信息缓存单元与校验位生成单元的输入端连接,同时与信息位与校验位选通单元的第一输入端连接;
校验位生成单元的输出端与信息位与校验位选通单元的第二输入端连接;信息位与校验位选通单元用于将编码信息与校验位生成单元的输出信息依次输出。
2.根据权利要求1所述的一种LDPC编码器,其特征在于,所述校验位生成单元包括第一存储器、第二存储器、M+1个运算单元、控制单元及选通输出单元;
所述第一存储器与M+1个运算单元均具有信号连接,第一存储器用于存储生成矩阵中的非特殊矩阵;
所述第二存储器与M+1个运算单元均具有信号连接,第二存储器用于存储生成矩阵中的特殊矩阵;
M+1个运算单元分别用于并行计算
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接;
所述编码信息输出线用于根据控制时钟逐位输出编码信息;
所述选通输出单元用于控制第一运算单元、第二运算单元、…、第m+1运算单元依次输出其运算结果;
所述控制单元用于根据控制时钟控制第一存储器或第二存储器向所述m+1个运算单元输出矩阵系数;
其中,生成矩阵为 G(00)、…、G(0 k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)均为256×256的小矩阵; 为256×(n-1)位编码信息,s0、s1、…、sn-1均为256维列向量;M、m、n均为正整数,且m+1为在不同码率下实际参与运算工作的运算单元个数,m≤M。
3.根据权利要求2所述的一种LDPC编码器,其特征在于,所述运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收第一存储器或第二存储器输出的256位矩阵系数;各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在的运算单元的编码信号输入端连接;各异或单元的第一输入端与各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。
4.根据权利要求3所述的一种LDPC编码器,其特征在于,第一存储器用于存储所述生成矩阵中所有非特殊小矩阵的第一列元素以及用于存储所述生成矩阵中具有特殊列的特殊小矩阵的第一列元素与该特殊小矩阵中的特殊列后的第一列元素;第二存储器用于存储所述特殊小矩阵的第一列特殊列元素。
5.一种LDPC编码器的校验位生成单元,其特征在于,包括第一存储器、第二存储器、M+1个运算单元、控制单元及选通输出单元;
所述第一存储器与M+1个运算单元均具有信号连接,第一存储器用于存储生成矩阵中的非特殊矩阵;
所述第二存储器与M+1个运算单元均具有信号连接,第二存储器用于存储生成矩阵中的特殊矩阵;
M+1分别用于并行计算
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接;
所述编码信息输出线用于根据控制时钟逐位输出编码信息;
所述选通输出单元用于控制第一运算单元、第二运算单元、…、第m+1运算单元依次输出其运算结果;
所述控制单元用于根据控制时钟控制第一存储器或第二存储器向所述m+1个运算单元输出矩阵系数;
其中,生成矩阵为 G(0 0)、…、G(0 k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)均为256×256的小矩阵; 为256×(n-1)位编码信息,s0、s1、…、sn-1均为256维列向量;M、m、n均为正整数,且m+1为在不同码率下实际参与运算工作的运算单元个数,m≤M。
6.根据权利要求5所述的一种LDPC编码器的校验位生成单元,其特征在于,所述运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收第一存储器或第二存储器输出的256位矩阵系数;各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在的运算单元的编码信号输入端连接;各异或单元的第一输入端与各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。
7.根据权利要求6所述的一种LDPC编码器的校验位生成单元,其特征在于,第一存储器用于存储所述生成矩阵中所有非特殊小矩阵的第一列元素以及用于存储所述生成矩阵中具有特殊列的特殊小矩阵的第一列元素与该特殊小矩阵中的特殊列后的第一列元素;第二存储器用于存储所述特殊小矩阵的第一列特殊列元素。
8.根据权利要求7所述的一种LDPC编码器的校验位生成单元,其特征在于,当n为9,m为26时或者n为12,m为23时:所述控制单元根据控制时钟控制第一存储器向所述m+1个运算单元输出矩阵系数的步骤为:
步骤1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、…、G(m 0)的第一列元素;每个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;m+1个运算单元各自完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元各自将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、…、G(m 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、…、G(m 1)与s1的运算,…,G(0 n-1)、G(1 n-1)、…、G(m n-1)与sn-1的运算。
9.根据权利要求7所述的一种LDPC编码器的校验位生成单元,其特征在于,当n为18,m为17时或者n为27,m为8时:生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列构成特殊矩阵,0<k<n-1,0<j<n-1,a为大于或等于1的整数;所述控制单元根据控制时钟控制第一存储器同时向所述m+1个运算单元输出矩阵系数的步骤为:
步骤1:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、…、G(m 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;m+1个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、…、G(m 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、…、G(m 1)与s1的运算,…,G(0 j-1)、G(1 j-1)、…、G(m j-1)与sj-1的运算;
步骤3:控制第一存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、…、G(m k)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第一个元素;m+1个运算单元完成一次运算;
步骤4:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
将步骤4循环j-1个控制时钟;
步骤5:控制第二存储器按照控制时钟依次向m+1个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、…、G(m k)的第j列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤6:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤6循环a个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 k)、G(1 k)、…、G(m k)与sk的运算;
最后再按照步骤1、步骤2及对步骤2的重复完成G(0 j+a+1)、G(1 j+a+1)、…、G(m j+a+1)与sj+a+1的运算;…;G(0 n-1)、G(1 n-1)、…、G(m n-1)与sn-1的运算。
10.根据权利要求5所述的一种LDPC编码器的校验位生成单元,其特征在于,M为26。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837627.2A CN104410427B (zh) | 2014-12-30 | 2014-12-30 | 一种ldpc编码器及其校验位生成单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837627.2A CN104410427B (zh) | 2014-12-30 | 2014-12-30 | 一种ldpc编码器及其校验位生成单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104410427A true CN104410427A (zh) | 2015-03-11 |
CN104410427B CN104410427B (zh) | 2018-05-29 |
Family
ID=52648028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410837627.2A Active CN104410427B (zh) | 2014-12-30 | 2014-12-30 | 一种ldpc编码器及其校验位生成单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104410427B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703783A (zh) * | 2016-03-30 | 2016-06-22 | 成都凯腾四方数字广播电视设备有限公司 | 一种准并行结构的ldpc编码器 |
CN106844085A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 数据处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100077277A1 (en) * | 2008-09-22 | 2010-03-25 | Broadcom Corporation | Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes |
CN101699770A (zh) * | 2009-10-23 | 2010-04-28 | 山东大学 | 一种高速ldpc码编码器及其编码方法 |
CN101944916A (zh) * | 2008-10-17 | 2011-01-12 | 英特尔公司 | Ldpc码的编码 |
CN103259544A (zh) * | 2013-04-19 | 2013-08-21 | 荣成市鼎通电子信息科技有限公司 | 共享存储机制的dtmb中准循环ldpc串行编码器 |
-
2014
- 2014-12-30 CN CN201410837627.2A patent/CN104410427B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100077277A1 (en) * | 2008-09-22 | 2010-03-25 | Broadcom Corporation | Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes |
US8145986B2 (en) * | 2008-09-22 | 2012-03-27 | Broadcom Corporation | Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes |
CN101944916A (zh) * | 2008-10-17 | 2011-01-12 | 英特尔公司 | Ldpc码的编码 |
CN101699770A (zh) * | 2009-10-23 | 2010-04-28 | 山东大学 | 一种高速ldpc码编码器及其编码方法 |
CN103259544A (zh) * | 2013-04-19 | 2013-08-21 | 荣成市鼎通电子信息科技有限公司 | 共享存储机制的dtmb中准循环ldpc串行编码器 |
Non-Patent Citations (2)
Title |
---|
XIANG OUYANG ET AL.: "Implementation of LDPC Encoding to DTMB Standard Based on FPGA", 《COMPUTER AND INFORMATION SCIENCE(ICIS), 2011 10TH IEEE/ACIS INTERNATIONAL CONFERENCE ON》 * |
叶荣润: "高速并行LDPC编码的FPGA实现", 《无线电工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703783A (zh) * | 2016-03-30 | 2016-06-22 | 成都凯腾四方数字广播电视设备有限公司 | 一种准并行结构的ldpc编码器 |
CN105703783B (zh) * | 2016-03-30 | 2019-10-18 | 成都凯腾四方数字广播电视设备有限公司 | 一种准并行结构的ldpc编码器 |
CN106844085A (zh) * | 2016-12-30 | 2017-06-13 | 北京联想核芯科技有限公司 | 数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104410427B (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
CN105656604A (zh) | 一种比特交织极化编码调制方法及装置 | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
CN102377437B (zh) | 一种准循环低密度奇偶校验码编码方法和装置 | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
CN102142928A (zh) | 交织、解交织外码编码输出码字的方法和交织、解交织器 | |
CN105099467B (zh) | Qc-ldpc码的编码方法及编码装置 | |
CN101296053A (zh) | 计算循环冗余校验码之方法及系统 | |
CN102857238B (zh) | 基于求和阵列的深空通信中ldpc编码器和编码方法 | |
CN102820892A (zh) | 一种用于并行bch编码的电路、编码器及方法 | |
CN104410427A (zh) | 一种ldpc编码器及其校验位生成单元 | |
CN102739259A (zh) | 一种用于cmmb激励器中的基于fpga的ldpc编码方法 | |
CN101640543B (zh) | 一种ldpc码的编码装置及方法 | |
CN102868495B (zh) | 基于查找表的近地通信中ldpc串行编码器和编码方法 | |
CN109412606B (zh) | 基于生成矩阵的qc_ldpc码编码方法及编码器 | |
CN105703783A (zh) | 一种准并行结构的ldpc编码器 | |
CN110741559B (zh) | 极化编码器、通信单元、集成电路及其方法 | |
US20230037965A1 (en) | Layered semi parallel ldpc decoder system having single permutation network | |
CN103475379B (zh) | 一种ldpc编码方法 | |
CN105556852A (zh) | 用于共享公共硬件资源的不同的低密度奇偶校验(ldpc)码的低密度奇偶校验编码 | |
CN104811211A (zh) | Turbo码交织器的构造方法及装置 | |
CN102118225B (zh) | 基于多索引表的任意位多项式除法类型编码的编解码方法 | |
CN113285725A (zh) | 一种qc-ldpc编码方法及编码器 | |
CN102882531B (zh) | 基于求和阵列的dtmb中ldpc编码器和编码方法 | |
CN102857237B (zh) | 一种低延时的近地通信中ldpc并行编码器和编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |