CN102122963B - 一种dtmb系统中qc-ldpc码的编码器和编码方法 - Google Patents
一种dtmb系统中qc-ldpc码的编码器和编码方法 Download PDFInfo
- Publication number
- CN102122963B CN102122963B CN2011100867484A CN201110086748A CN102122963B CN 102122963 B CN102122963 B CN 102122963B CN 2011100867484 A CN2011100867484 A CN 2011100867484A CN 201110086748 A CN201110086748 A CN 201110086748A CN 102122963 B CN102122963 B CN 102122963B
- Authority
- CN
- China
- Prior art keywords
- circuit
- register
- bit
- vectorial
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种解决数字地面电视广播(Digital Television Terrestrial Multimedia Broadcasting,DTMB)系统中3种不同码率QC-LDPC码编码的方案,其特征在于,所述系统的QC-LDPC码的编码器主要由任务调度模块、桶形移位累加电路、线性反馈移位寄存器电路、卷积和电路、修改的移位寄存器加累加电路和重新排序拼接电路六部分组成。
Description
技术领域
本发明涉及数字地面电视广播(Digital Television Terrestrial Multimedia Broadcasting,DTMB)技术,特别涉及一种DTMB系统中QC-LDPC码编码器的高效实现方法。
背景技术
由于在传输信道中存在的各种失真和噪声会对发送信号产生干扰,接收端不可避免地会出现数字信号产生误码的情况。为了降低误码率,需要采用信道编码技术。
低密度奇偶校验(Low-Density Parity-Check,LDPC)码以其逼近Shannon限的优异性能和可高速并行译码成为信道编码领域的研究热点。准循环LDPC码(Quasic-LDPC,QC-LDPC)码是一种特殊的LDPC码,其编码可采用移位寄存器加累加(Shift-Register-Adder-Accumulator,SRAA)方法,译码可部分并行实现。QC-LDPC码的编/译码器实现起来都比较简单,且允许在编/译码速度与资源消耗之间灵活折中,因此备受青睐。目前,QC-LDPC码已广泛应用于IEEE 802.11n,802.16e和中国的数字地面电视广播DTMB等标准。
SRAA编码方法是利用生成矩阵G进行编码。QC-LDPC码的生成矩阵G是由((t-c)×t)个(b×b)阶循环矩阵Gi,j(1≤i≤t-c,1≤j≤t)构成的阵列。与信息向量对应的一部分生成矩阵是单位矩阵,与校验向量对应的其余部分生成矩阵是高密度矩阵。SRAA法完成一次编码需要(t-c)b个时钟周期,需要2cb个触发器、cb个二输入与门和cb个二输入异或门。此外,还需要(t-c)cb比特ROM存储循环矩阵的首行。
DTMB标准采用了3种不同码率的QC-LDPC码,3种码率分别是η=0.4、η=0.6、η=0.8。对于这3种QC-LDPC码,均有t=59和b=127。3种码率对应的参数c分别是c0.4=35、c0.6=23、c0.8=11。如果采用SRAA编码方法,那么3种码率所需的编码时间分别是3048、4572和6096个时钟周期。逻辑资源需要8890个触发器、4445个二输入与门和4445个二输入异或门,这是由码率η=0.4对应的参数c0.4=35决定的。此外,3种码率共需278,892比特ROM存储循环矩阵的首行。
发明内容
本发明的主要目的在于,提供一种适合于DTMB标准采用的3种不同码率QC-LDPC码的编码器。该编码器实现简单,主要由任务调度模块、桶形移位累加电路、线性反馈移位寄存器电路、卷积和电路、修改的移位寄存器加累加电路和重新排序拼接电路六部分组成。除预处理外,整个编码过程分7步完成:第1步调用桶形移位累加电路执行稀疏矩阵与向量的乘法运算;第2步和第6步调用线性反馈移位寄存器电路执行后向代入运算;第3步和第5步调用卷积和电路执行卷积运算;第4步调用修改的移位寄存器加累加电路执行高密度矩阵与向量的乘法运算;第7步调用重新排序拼接电路,对校验向量p简单重新排序后与信息向量s拼接,组成并输出整个码字v。
该编码器能在明显提高编码速度的同时有效减少存储器和逻辑资源的需求,从而达到降低硬件成本和功耗的目的。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
附图说明
图1是本发明所述行列交换后校验矩阵H的近似下三角结构示意图;
图2是本发明所述行列交换后校验矩阵H中的下三角矩阵T的构成;
图3是DTMB标准中兼容3种码率的QC-LDPC码编码流程图;
图4是本发明所述桶形移位累加电路的原理框图;
图5是本发明所述桶形移位器的流水线结构;
图6是本发明所述线性反馈移位寄存器电路的结构框图;
图7是码率η=0.4时计算向量x的卷积和电路的功能框图;
图8是码率η=0.6时计算向量x的卷积和电路的功能框图;
图9是码率η=0.8时计算向量x的卷积和电路的功能框图;
图10是本发明所述修改的移位寄存器加累加电路的功能框图;
图11是本发明所述计算向量y的子向量y′时卷积和电路的功能框图;
图12是本发明所述复合型卷积和电路的功能框图;
图13是本发明所述DTMB标准中兼容3种码率的QC-LDPC码编码器整体结构;
图14是本发明所述编码器各组成部分以及整个电路的硬件资源消耗;
图15是各编码步骤以及整个编码过程所需的处理时间;
图16比较了传统SRAA编码方法与本发明的编码速度和资源消耗。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
QC-LDPC码是一类特殊的LDPC码,它的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分段循环特点,故被称为准循环LDPC码。从行的角度看,循环矩阵的每一行都是上一行(首行是末行)循环右移一位的结果;从列的角度看,循环矩阵的每一列都是前一列(首列是末列)循环下移一位的结果。循环矩阵的行向量构成的集合与列向量构成的集合完全相同,因此,循环矩阵完全可由它的首行(或首列)来表征。循环矩阵的行重和列重相同,记作w。如果w=0,那么该循环矩阵是全零矩阵。如果w=1,那么该循环矩阵是可置换的,称为置换矩阵,它可通过对单位矩阵I循环右移l位得到,记作Il。QC-LDPC码的校验矩阵H是由(c×t)个(b×b)阶循环矩阵Hi,j(1≤i≤c,1≤j≤t)构成的如下阵列:
对于DTMB标准,前c列循环矩阵对应的是校验向量p,后t-c列循环矩阵对应的是信息向量s。DTMB标准采用了3种不同码率的QC-LDPC码,3种码率分别是η=0.4、η=0.6、η=0.8。对于这3种QC-LDPC码,校验矩阵H中的所有循环矩阵要么是全零矩阵(w=0)要么是置换矩阵(w=1),且t=59和b=127。这3种QC-LDPC码的码字长度相同,删除了校验矩阵H前5列对应的5比特校验位,等于t×b-5=7488比特。3种码率对应的参数c分别是c0 4=35、c0.6=23、c0.8=11。
首先对校验矩阵H进行预处理,通过行列交换操作将其变换成近似下三角形状,如图1所示。注意,行列交换是以循环矩阵为基本单位,不改变每个循环矩阵的内部构成。行列交换的过程非常简单:首先将校验矩阵H的第c列循环矩阵放在首列(η=0.4无此操作),然后整体交换左边c列和右边t-c列循环矩阵,最后将最上面的u行循环矩阵放在最下面。u反映了校验矩阵H与下三角矩阵的接近程度,3种码率对应的参数u都是u=3。行列交换后,信息向量s在前,校验向量p在后,且校验向量内部稍作重排。
在图1中,所有矩阵的单位都是b比特而不是1比特。矩阵A的阶数是(c-3)b×(t-c)b,矩阵B的阶数是(c-3)b×3b,下三角矩阵T的阶数是(c-3)b×(c-3)b,矩阵C的阶数是3b×(t-c)b,矩阵D的阶数是3b×3b,矩阵E的阶数是3b×(c-3)b。
作为校验矩阵H的组成部分,既然校验矩阵H是稀疏的,那么矩阵A和C也是稀疏的。
对于这3种QC-LDPC码,校验矩阵H行列交换完毕后,其右上角的下三角矩阵T的构成都如图2所示。在下三角矩阵T中,主对角线上的循环矩阵都是相同的置换矩阵I1,主对角线下面第一条对角线上的循环矩阵都是相同的置换矩阵I32,主对角线下面第二条对角线上的循环矩阵都是相同的置换矩阵I104。除此之外,下三角矩阵T中的其它地方均为全零矩阵0。
对于码率η=0.4、η=0.6和η=0.8,矩阵E最后面3列循环矩阵构成的子矩阵E′分别是
而其余各列上的循环矩阵均为0。
对于码率η=0.4、η=0.6和η=0.8,矩阵B最上面3行循环矩阵构成的子矩阵B′完全相同,均为
当码率η=0.6和η=0.8时,矩阵B其余各行的所有循环矩阵均为0;当码率η=0.4时,在矩阵B其余各行的所有循环矩阵中,只有第1列上的4个循环矩阵非零,它们分别是
B7,1=I126 B15,1=I40 B18,1=I18 B32,1=I0 (6)
其中,下标的第一维和第二维分别表示循环矩阵在矩阵B中的行号和列号。
在图1所示的校验矩阵H对应的码字v中,信息向量s在前,校验向量p在后。以b比特为一段,信息向量s被等分为t-c段,即s=(s1,s2,...,st-c),校验向量p被等分为c段,即p=(p1,p2,...,pc)。信息段si(1≤i≤t-c)的b比特对应校验矩阵H的第i列循环矩阵的b列,校验段pj(1≤j≤c)的b比特对应校验矩阵H的第t-c+j列循环矩阵的b列。矩阵A和C对应信息向量s=(s1,s2,...,st-c),矩阵B和D对应部分校验向量px=(p1,p2,p3),矩阵T和E则对应余下的校验向量py=(p4,p5,...,pc)。p=(px,py),v=(s,p)。上述矩阵和向量满足如下关系:
px T=Φ(ET-1AsT+CsT) (7)
py T=T-1(AsT+Bpx T) (8)
其中,Φ=(ET-1B+D)-1,上标T和-1分别表示转置和逆。众所周知,循环矩阵的逆、乘积、和仍然是循环矩阵。因此,Φ也是由循环矩阵构成的阵列。然而,虽然矩阵E、T、B和D都是稀疏矩阵,但Φ不再稀疏而是高密度的。
根据式(7)和(8),图3给出了DTMB标准中QC-LDPC码的编码流程图,适用于3种码率。具体的编码过程主要由以下步骤组成:
第1步,计算向量fT=AsT和mT=CsT。
第2步,计算向量qT=T-1fT。
第3步,计算向量xT=EqT+mT。
第4步,计算向量px T=ΦxT。
第5步,计算向量yT=Bpx T+fT。
第6步,计算向量py T=T-1yT。
第7步,对校验向量p=(px,py)适当重新排序,并与信息向量s拼接,得到整个码字v并输出。
根据以上步骤,我们能观察到以下几点:
1.因为矩阵A和C都是稀疏校验矩阵H的一部分,继承了稀疏性,所以第1步涉及稀疏矩阵与向量的乘法运算。
2.矩阵T是下三角矩阵,故可采用后向代入的方法降低第2步和第6步的计算复杂度。
3.矩阵E和B都继承了校验矩阵H的稀疏性,第3步和第5步可采用稀疏矩阵与向量的乘法运算实现。此外,由式(2)、(3)、(4)和(5)可知,矩阵E和B还有很多特殊性和共性。这些性质决定了第3步和第5步可采用简单的卷积运算实现。
4.因为矩阵Φ是高密度矩阵,所以第4步是高密度矩阵与向量的乘法运算。
5.第7步根据预处理时校验矩阵H的列交换过程进行逆操作,恢复码字的正常顺序。
下面,详细介绍各步骤的具体实现方法以及关键运算对应的电路结构,并给出编码器的整体电路结构。
第1步,计算向量f=(f1,f2,...,fc-3)和m=(m1,m2,m3)。对于1≤i≤c-3,fi是向量f的第i段连续b比特。对于1≤i≤3,mi是向量m的第i段连续b比特。计算向量f的公式fT=AsT与计算向量m的公式mT=CsT可合并为
[fm]T=[ATCT]TsT (9)
令w=[fm],U=[ATCT]T,则有
wT=UsT (10)
向量f和m由上式一并求出。对于1≤i≤c,令Ui是由矩阵U第i行所有(t-c)个循环矩阵构成的子矩阵,wi是向量w的第i段连续b比特,则由上式推导可得
wi T=UisT (11)
因为矩阵Ui是校验矩阵H的一部分,位于校验矩阵H的最左边(t-c)b列,所以Ui=[Hi,1 Hi,2…Hi,i-c]。又因为校验矩阵H中的循环矩阵要么是全零矩阵要么是置换矩阵,所以矩阵Ui可表示为
我们先讨论式(12)中的所有循环右移位数都不等于∞,也就是所有循环矩阵都是置换矩阵的情况,在此基础上再给出有些循环矩阵是全零矩阵时的处理方法。将式(12)代入式(11)并展开
对于1≤j≤t-c,上式中的第j项表示对信息向量s的第j段sj循环右移li,j位。由式(13)可知,向量w的第i段wi可随着信息向量s的分段输入而逐步计算出来。对于1≤k<t-c,当第k步结束时,累加和被求出并被存储在一个寄存器中。在第(k+1)步,第(k+1)段信息sk+1被循环右移li,k+1位。移位结果与之前的累加和相加,得到新的累加和并被存储在同一个寄存器中。当第(t-c)步结束时,寄存器存储的累加和恰好就是向量w的第i段wi。
根据上述过程可知,向量w的第i段wi可用一个桶形移位累加(Barrel-Shifter-Accumulator,BSA)电路求出。图4是BSA电路的原理框图。BSA电路由1个b比特的桶形移位器、1个b比特的二输入异或门和1个b比特的累加寄存器组成。桶形移位器根据指定的循环右移位数对输入的b比特数据进行循环右移,二输入异或门对桶形移位器的b比特输出和累加寄存器的b比特内容进行模2加,累加寄存器存储二输入异或门的b比特输出。运算结束时,累加寄存器的内容即为运算结果。
在图4中,累加寄存器被初始化为全零。当第1段信息s1及相应的循环右移位数li,1被送入BSA电路时,桶形移位器会输出移位结果该移位结果与累加寄存器的内容(此时是0)相加,求和结果存储在累加寄存器中。当第2段信息s2及相应的循环右移位数li,2被送入BSA电路时,桶形移位器会输出移位结果该移位结果与累加寄存器的内容相加,求和结果存储在累加寄存器中。重复上述移位、加、存储的过程,直到整个信息向量s全部被送入BSA电路。此时,累加寄存器中存储的恰好就是向量w的第i段wi。通过时分复用机制,只需一个BSA电路就能求出向量w的所有段:w1,w2,...,wc,也就求出了向量f=(w1,w2,...,wc-3)和m=(wc-2,wc-1,wc)。
图5是图4中桶形移位器的流水线结构。对于1≤i≤c和1≤j≤t-c,0≤li,j≤b-1。循环右移位数li,j可写成如下二进制形式:
其中,li,j,k等于0或1,且
ε=ceil(log2b)=7 (15)
其中,函数ceil(x)表示不小于x的最小整数。该流水线桶形移位器共分ε=7级,固有延迟ε-1=6个时钟周期。
流水线桶形移位器主要由7个b比特的循环右移电路、7个b比特的二选一选择器和6个b比特的寄存器组成。循环右移电路S1~S7分别对输入的b比特的数据循环右移1、2、4、8、16、32和64位,二选一选择器M1~M7根据各自的控制信号是0还是1选通两路b比特数据中的一路,寄存器R1~R6分别存储二选一选择器M1~M6的b比特输出,二选一选择器M7的b比特输出为流水线桶形移位器的输出。
以计算式(13)中的第j项为例。在第1级,如果li,j,1=0,那么第j段信息sj被原封不动地送入寄存器R1;否则,它被循环右移1位后再被送入寄存器R1。对于1<k<7,在第k级,如果li,j,k=0,那么寄存器Rk-1的内容被原封不动地送入寄存器Rk;否则,它被循环右移2k-1位后再被送入寄存器Rk。在最后一级,如果li,j,7=0,那么寄存器R6的内容被输出;否则,它被循环右移26=64位后再被输出。桶形移位器的最终输出即为
上述讨论是基于所有循环右移位数都不等于∞的假设。实际上,如果li,j=∞,也就是说那么式(13)中的第j项就不参与累加。假设矩阵A和C中共有α个非零的置换矩阵,那么计算向量f和m共需α个时钟周期。对于码率η=0.4、η=0.6和η=0.8,参数α分别是α0.4=166、α0 6=227和α0 8=261。
那么如何存储矩阵A和C中置换矩阵的信息呢?既然作为校验矩阵H的一部分,矩阵A和C是稀疏的,那么节约存储器的经济做法是只存储每个置换矩阵的必要信息,包括1比特的标志位,置换矩阵的列地址及其循环右移位数。可省略置换矩阵的行地址的原因是,矩阵A和C中的置换矩阵是逐行使用的,每用完一行,行地址加1。因此,只需1比特的标志位标示出该置换矩阵是否是该行最后一个置换矩阵即可。标志位等于0和1分别表示该置换矩阵不是和是该行最后一个置换矩阵。当标志位等于0时,行地址保持不变;当标志位等于1时,行地址加1。从图1可看出,置换矩阵列地址的宽度等于ceil(log2(t-c))比特。由式(15)可知,循环右移位数占用了7比特。这3种必要信息有机地组织在一起,事先被存储于ROM中,每个置换矩阵使用了τ比特的ROM,其中
τ=1+ceil(log2(t-c))+7=8+ceil(log2(t-c)) (16)
对于码率η=0.4、η=0.6和η=0.8,参数τ分别是τ0 4=13、τ0.6=14和τ0 8=14。为便于存储在一起,码率η=0.4的列地址也取6比特,最高位补0。这样,3种码率统一取τ=14。
从图4和5可看出,一个完整的BSA电路主要由7b=7×127=889个触发器和b=127个二输入异或门组成。该电路完成了稀疏矩阵与向量的乘法。对于码率η=0.4、η=0.6和η=0.8,计算向量f和m分别共需α0.4=166、α0 6=227和α0 8=261个时钟周期。对于3种码率,计算向量f和m共需(α0.4+α0.6+α0 8)τ=654×14=9156比特的ROM。
第2步,计算向量q=(q1,q2,...,qc-3)。对于1≤i≤c-3,qi是向量q的第i段连续b比特。计算向量q的公式qT=T-1fT等价于
fT=TqT (17)
如图2所示,在下三角矩阵T中,主对角线上的循环矩阵都是相同的置换矩阵I1,主对角线下面第一条对角线上的循环矩阵都是相同的置换矩阵I32,主对角线下面第二条对角线上的循环矩阵都是相同的置换矩阵I104。除此之外,下三角矩阵T中的其它地方均为全零矩阵0。因此,式(17)具体为
上式可展开成如下方程组:
其中,I-1表示对单位矩阵I循环左移1位。式(19)中的任一等式都可写成如下迭代形式
其中,1≤i≤c-3,且
式(20)是一个典型的线性反馈系统,故可采用线性反馈移位寄存器(Linear Feedback ShiftRegister,LFSR)电路来计算向量q。图6是LFSR电路的功能框图。LFSR电路由1个b比特的循环左移电路、2个b比特的二输入异或门、2个b比特的循环右移电路和2个b比特的寄存器组成。循环左移电路对输入的b比特数据循环左移1位,二输入异或门X0对循环左移电路的b比特输出和寄存器R0的b比特内容进行模2加,二输入异或门X0的b比特输出一方面被输出LFSR电路,另一方面被反馈送入2个b比特的循环右移电路,循环右移电路S0对输入的b比特数据循环右移31位,循环右移电路S1对输入的b比特数据循环右移103位,二输入异或门X1对循环右移电路S0的b比特输出和寄存器R1的b比特内容进行模2加,寄存器R0存储二输入异或门X1的b比特输出,寄存器R1存储循环右移电路S1的b比特输出。
在图6中,所有的寄存器被初始化为全零。当向量f的第1段f1被送入LFSR电路时,它被循环左移1位,移位结果与寄存器R0的内容(此时是0)相加。求和结果恰恰就是式(19)中的第一个等式,即向量q的第1段q1被同时输出和反馈。q1被循环右移31位,移位结果与寄存器R1的内容(此时是0)相加,求和结果被存储在寄存器R0中。与此同时,q1还被循环右移103位,移位结果被存储在寄存器R1中。当向量f的第2段f2被送入LFSR电路时,它被循环左移1位,移位结果与寄存器R0的内容相加。求和结果恰恰就是式(19)中的第二个等式,即向量q的第2段q2被同时输出和反馈。q2被循环右移31位,移位结果与寄存器R1的内容相加,求和结果被存储在寄存器R0中。与此同时,q2还被循环右移103位,移位结果被存储在寄存器R1中。重复上述循环左移、加、反馈、循环右移、加、存储的过程,直到向量f的最后一段fc-3被送入LFSR电路。在每个时钟周期,LFSR电路顺序输出向量q的一段:q1,q2,...,qc-3。因此,计算向量q共需(c-3)个时钟周期。
从图6可看出,LFSR电路主要由2b=2×127=254个触发器和2b=2×127=254个二输入异或门组成。该电路完成了后向代入运算。对于码率η=0.4、η=0.6和η=0.8,计算向量q分别需要(c0.4-3)=(35-3)=32、(c0.6-3)=(23-3)=20和(c0.8-3)=(11-3)=8个时钟周期。
第3步,计算向量x=(x1,x2,x3)。对于1≤i≤3,xi是向量x的第i段连续b比特。计算向量x的公式是
xT=EqT+mT (21)
对于码率η=0.4、η=0.6和η=0.8,矩阵E最后3列循环矩阵构成的子矩阵E′分别如式(2)、(3)和(4)所示,而其余各列上的循环矩阵均为0。因为矩阵E的前c-6列循环矩阵全零,所以在用式(21)计算向量x时,只会用到矩阵E′和向量q的最后3b比特。令向量q的最后3b比特构成的向量是q′=(qc-5,qc-4,qc-3),则式(21)可简化为
xT=E′q′T+mT (22)
对于码率η=0.4,把式(2)、q′=(qc-5,qc-4,qc-3)和m=(m1,m2,m3)代入式(22),展开可得
将式(23)中的所有向量(包括矩阵中的行向量和列向量)按段逆序排列,整理可得
在上式中,下三角矩阵与向量的乘法运算可用卷积电路实现。因此,式(24)可用卷积和电路实现。图7是码率η=0.4时计算向量x的卷积和电路的功能框图。该卷积和电路由2个b比特的寄存器、3个b比特的循环右移电路和1个b比特的四输入异或门组成。寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S2对第一路输入的b比特数据循环右移67位,循环右移电路S1对寄存器R1的b比特内容循环右移41位,循环右移电路S0对寄存器R0的b比特内容循环右移21位,四输入异或门对3个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,四输入异或门的输出为该卷积和电路的输出。
在图7中,所有的寄存器被初始化为全零。当向量q的最后一段qc-3和向量m的第3段m3被送入卷积和电路时,向量q的最后一段qc-3被循环右移67位,寄存器R1的内容(此时是0)被循环右移41位,寄存器R0的内容(此时是0)被循环右移21位,这些移位结果与向量m的第3段m3相加,求和结果即为向量x的第3段x3,即与此同时,寄存器R1的内容(此时是0)被送入寄存器R0,向量q的最后一段qc-3被送入寄存器R1。当向量q的倒数第二段qc-4和向量m的第2段m2被送入卷积和电路时,向量q的倒数第二段qc-4被循环右移67位,寄存器R1的内容(此时是qc-3)被循环右移41位,寄存器R0的内容(此时是0)被循环右移21位,这些移位结果与向量m的第2段m2相加,求和结果即为向量x的第2段x2,即与此同时,寄存器R1的内容(此时是qc-3)被送入寄存器R0,向量q的倒数第二段qc-4被送入寄存器R1。当向量q的倒数第三段qc-5和向量m的第1段m1被送入卷积和电路时,向量q的倒数第三段qc-5被循环右移67位,寄存器R1的内容(此时是qc-4)被循环右移41位,寄存器R0的内容(此时是qc-3)被循环右移21位,这些移位结果与向量m的第1段m1相加,求和结果即为向量x的第1段x1,即对于码率η=0.4,倒序计算向量x需要3个时钟周期。
同理,对于码率η=0.6,把式(3)、q′=(qc-5,qc-4,qc-3)和m=(m1,m2,m3)代入式(22),展开后将所有向量按段逆序排列,整理可得
式(25)也可用卷积和电路实现。图8是码率η=0.6时计算向量x的卷积和电路的功能框图。该卷积和电路由2个b比特的寄存器、2个b比特的循环右移电路和1个b比特的三输入异或门组成。寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移24位,循环右移电路S0对寄存器R0的b比特内容循环右移116位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
在图8中,所有的寄存器被初始化为全零。当向量q的最后一段qc-3和向量m的第3段m3被送入卷积和电路时,寄存器R1的内容(此时是0)被循环右移24位,寄存器R0的内容(此时是0)被循环右移116位,这些移位结果与向量m的第3段m3相加,求和结果即为向量x的第3段x3,即与此同时,寄存器R1的内容(此时是0)被送入寄存器R0,向量q的最后一段qc-3被送入寄存器R1。当向量q的倒数第二段qc-4和向量m的第2段m2被送入卷积和电路时,寄存器R1的内容(此时是qc-3)被循环右移24位,寄存器R0的内容(此时是0)被循环右移116位,这些移位结果与向量m的第2段m2相加,求和结果即为向量x的第2段x2,即与此同时,寄存器R1的内容(此时是qc-3)被送入寄存器R0,向量q的倒数第二段qc-4被送入寄存器R1。当向量q的倒数第三段qc-5和向量m的第1段m1被送入卷积和电路时,寄存器R1的内容(此时是qc-4)被循环右移24位,寄存器R0的内容(此时是qc-3)被循环右移116位,这些移位结果与向量m的第1段m1相加,求和结果即为向量x的第1段x1,即对于码率η=0.6,倒序计算向量x需要3个时钟周期。
同理,对于码率η=0.8,把式(4)、q′=(qc-5,qc-4,qc-3)和m=(m1,m2,m3)代入式(22),展开后将所有向量按段逆序排列,整理可得
式(26)也可用卷积和电路实现。图9是码率η=0.8时计算向量x的卷积和电路的功能框图。该卷积和电路由2个b比特的寄存器、2个b比特的循环右移电路和1个b比特的三输入异或门组成。寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移83位,循环右移电路S0对寄存器R0的b比特内容循环右移5位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
在图9中,所有的寄存器被初始化为全零。当向量q的最后一段qc-3和向量m的第3段m3被送入卷积和电路时,寄存器R1的内容(此时是0)被循环右移83位,寄存器R0的内容(此时是0)被循环右移5位,这些移位结果与向量m的第3段m3相加,求和结果即为向量x的第3段x3,即与此同时,寄存器R1的内容(此时是0)被送入寄存器R0,向量q的最后一段qc-3被送入寄存器R1。当向量q的倒数第二段qc-4和向量m的第2段m2被送入卷积和电路时,寄存器R1的内容(此时是qc-3)被循环右移83位,寄存器R0的内容(此时是0)被循环右移5位,这些移位结果与向量m的第2段m2相加,求和结果即为向量x的第2段x2,即与此同时,寄存器R1的内容(此时是qc-3)被送入寄存器R0,向量q的倒数第二段qc-4被送入寄存器R1。当向量q的倒数第三段qc-5和向量m的第1段m1被送入卷积和电路时,寄存器R1的内容(此时是qc-4)被循环右移83位,寄存器R0的内容(此时是qc-3)被循环右移5位,这些移位结果与向量m的第1段m1相加,求和结果即为向量x的第1段x1,即对于码率η=0.8,倒序计算向量x需要3个时钟周期。
综上可见,对于3种码率,计算向量x都需要3个时钟周期。
第4步,计算向量px=(p1,p2,p3)。对于1≤i≤3,pi是向量p的第i段连续b比特。向量px的计算公式是px T=ΦxT。Φ是高密度矩阵,因此计算向量px是向量xT右乘高密度矩阵Φ。传统的移位寄存器加累加(Shift-Register-Adder-Accumulator,SRAA)电路完成的是信息向量s左乘高密度生成矩阵G,即sG。这两种乘法运算本质上相同,故可借鉴传统的SRAA电路来计算向量px。
图10是修改的SRAA电路的功能框图。该电路由3个b比特的移位寄存器、3个b比特的二输入与门、3个b比特的二输入异或门和3个b比特的累加寄存器组成。移位寄存器R1,1~R1,3加载循环矩阵的首列b比特并对各自的b比特内容循环右移,二输入与门A1~A3分别对输入的1比特数据和移位寄存器R1,1~R1,3的b比特内容进行模2乘,二输入异或门X1~X3分别对二输入与门A1~A3的b比特输出和累加寄存器R2,1~R2,3的b比特内容进行模2加,累加寄存器R2,1~R2,3分别存储二输入异或门X1~X3的b比特输出。运算结束时,累加寄存器R2,1~R2,3的内容即为运算结果。
与传统的SRAA电路不同的是,移位寄存器R1,1~R1,3加载的不再是循环矩阵的首行而是首列。对于1≤i,j≤3,令φi,j是矩阵Φ的循环矩阵Φi,j的首列。初始化时,寄存器R2,1~R2,3被清零,移位寄存器R1,1~R1,3分别加载第一组循环矩阵的首列φ1,1~φ3,1。移位寄存器R1,1~R1,3的内容与向量x的首位x1相乘,乘积分别与累加寄存器R2,1~R2,3的内容相加,求和结果分别存储在累加寄存器R2,1~R2,3中。下一个时钟周期到来时,移位寄存器R1,1~R1,3都被循环右移1位,与此同时,向量x的第2位x2被移入到电路中。移位寄存器R1,1~R1,3的内容与向量x的第2位x2相乘,乘积分别与寄存器累加R2,1~R2,3的内容相加,求和结果分别存储在寄存器累加R2,1~R2,3中。下一个时钟周期到来时,移位寄存器R1,1~R1,3都被循环右移1位,与此同时,向量x的第3位x3被移入到电路中。上述过程继续进行下去。注意,对于k=2或3,当第kb个时钟周期到来时,移位寄存器R1,1~R1,3分别重新加载第k组循环矩阵的首列φ1,k~φ3,k。重复上述过程,直到向量x的最后一位x3b被移入到电路中。此时,向量px的所有段p1~p3分别存储在累加寄存器R2,1~R2,3中。
从图10可看出,修改的SRAA电路主要由6b=6×127=762个触发器,3b=3×127=381个二输入异或门和3b=3×127=381个二输入与门组成。此外,对于每种码率,都需要32b=32×127=1143比特的ROM预先存储矩阵Φ的所有循环矩阵的首列。对于3种码率,共需332b=3×1143=3429比特的ROM。修改的SRAA电路完成了高密度矩阵与向量的乘法运算。计算向量px需要3b=3×127=381个时钟周期。
第5步,计算向量y=(y1,y2,...,yc-3)。对于1≤i≤c-3,yi是向量y的第i段连续b比特。计算向量y的公式是
yT=Bpx T+fT (27)
对于3种码率,矩阵B最上面3行循环矩阵构成的子矩阵B′完全相同,如式(5)所示。当码率η=0.6和η=0.8时,矩阵B其余各行的所有循环矩阵均为0;当码率η=0.4时,在矩阵B其余各行的所有循环矩阵中,只有第1列上的4个循环矩阵非零,如式(6)所示。因此,可分开计算向量y的两个子向量y′=(y1,y2,y3)和y″=(y4,y5,...,yc-3)。
先计算向量y的第二个子向量y″=(y4,y5,...,yc-3)。对于码率η=0.6和η=0.8,有y″=(f4,f5,...,fc-3),无需操作时间和硬件资源。对于码率η=0.4,可先令y″=(f4,f5,...,fc-3),再根据式(6)进行修正。修正方法非常简单:和可见,对于码率η=0.4,修正操作决定了计算向量y的第二个子向量y″=(y4,y5,...,yc-3)需要4个时钟周期。
当用式(27)计算向量y的第一个子向量y′=(y1,y2,y3)时,只会用到式(5)给出的矩阵B′和向量f的最前面3b比特。令向量f的最前面3b比特构成的向量是f′=(f1,f2,f3),则式(27)可简化为
y′T=B′px T+f′T (28)
把式(5)、px=(p1,p2,p3)和f′=(f1,f2,f3)代入式(28),展开可得
将式(29)中的所有向量(包括矩阵中的行向量和列向量)按段逆序排列,整理可得
显然上式也可用卷积和电路实现。图11是计算向量y的第一个子向量y′时卷积和电路的功能框图。该卷积和电路由2个b比特的寄存器、2个b比特的循环右移电路和1个b比特的三输入异或门组成。寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移104位,循环右移电路S0对寄存器R0的b比特内容循环右移32位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
在图11中,所有的寄存器被初始化为全零。当向量p的第3段p3和向量f的第3段f3被送入卷积和电路时,寄存器R1的内容(此时是0)被循环右移104位,寄存器R0的内容(此时是0)被循环右移32位,这些移位结果与向量f的第3段f3相加,求和结果即为向量y的第3段y3,即与此同时,寄存器R1的内容(此时是0)被送入寄存器R0,向量p的第3段p3被送入寄存器R1。当向量p的第2段p2和向量f的第2段f2被送入卷积和电路时,寄存器R1的内容(此时是p3)被循环右移104位,寄存器R0的内容(此时是0)被循环右移32位,这些移位结果与向量f的第2段f2相加,求和结果即为向量y的第2段y2,即与此同时,寄存器R1的内容(此时是p3)被送入寄存器R0,向量p的第2段p2被送入寄存器R1。当向量p的第1段p1和向量f的第1段f1被送入卷积和电路时,寄存器R1的内容(此时是p2)被循环右移104位,寄存器R0的内容(此时是p3)被循环右移32位,这些移位结果与向量f的第1段f1相加,求和结果即为向量y的第1段y1,即倒序计算向量y的第一个子向量y′=(y1,y2,y3)需要3个时钟周期。
综上可见,对于码率η=0.6和η=0.8,计算向量y需要3个时钟周期;对于码率η=0.4,计算向量y需要3+4=7个时钟周期。
在第3步和第5步都用到了卷积和电路。图7、8、9和11所示的功能框图非常类似,完全可以合并为一个卷积和电路。图12是复合型卷积和电路的功能框图。该复合型卷积和电路由2个b比特的寄存器、3个b比特的循环右移电路和1个b比特的四输入异或门组成。寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,对于码率η=0.4,当计算DTMB标准中QC-LDPC码编码流程中的向量q时,循环右移电路S2对第一路输入的b比特数据循环右移67位,对于码率η=0.6和η=0.8,当计算DTMB标准中QC-LDPC码编码流程中的向量q时,循环右移电路S2输出0,对于所有码率,当计算DTMB标准中QC-LDPC码编码流程中的向量px时,循环右移电路S2也输出0,对于码率η=0.4、η=0.6和η=0.8,当计算DTMB标准中QC-LDPC码编码流程中的向量q时,循环右移电路S1对寄存器R1的b比特内容分别循环右移41、24和83位,对于所有码率,当计算DTMB标准中QC-LDPC码编码流程中的向量px时,循环右移电路S1对寄存器R1的b比特内容循环右移104位,对于码率η=0.4、η=0.6和η=0.8,当计算DTMB标准中QC-LDPC码编码流程中的向量q时,循环右移电路S0对寄存器R0的b比特内容分别循环右移21、116和5位,对于所有码率,当计算DTMB标准中QC-LDPC码编码流程中的向量px时,循环右移电路S0对寄存器R0的b比特内容循环右移32位,四输入异或门对3个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,四输入异或门的输出为该卷积和电路的输出。
可见,卷积和电路主要由2b=2×127=254个触发器和3b=3×127=381个二输入异或门组成。卷积和电路完成了卷积运算。
第6步,计算向量py=(p4,p5,...,pc)。计算向量py的公式py T=T-1yT与第2步中计算向量q=(q1,q2,...,qc-3)的公式qT=T-1fT本质上完全相同,因此可复用图6所示的LFSR电路加以实现,具体操作参见第2步。
对于码率η=0.4、η=0.6和η=0.8,计算向量py分别需要(c0.4-3)=(35-3)=32、(c0.6-3)=(23-3)=20和(c0.8-3)=(11-3)=8个时钟周期。
第7步,输出码字v。由于校验矩阵H列交换预处理后,其对应信息向量和校验向量的顺序发生了变化,输出码字时必须调整输出顺序。对于码率η=0.4,先输出校验向量p=(p1,p2,...,pc),再输出信息向量s=(s1,s2,...,st-c)。对于码率η=0.6和η=0.8,先输出校验向量p的后c-1段(p2,p3,...,pc),再输出第1段p1,最后输出信息向量s=(s1,s2,...,st-c)。输出码字v共需t=59个时钟周期。
以上详细介绍了编码过程中各个步骤的具体实现方法,图13给出了DTMB标准中兼容3种码率的QC-LDPC码编码器整体结构。它主要由6个功能模块组成,包括:任务调度模块、桶形移位累加电路、线性反馈移位寄存器电路、卷积和电路、修改的移位寄存器加累加电路和重新排序拼接电路。
任务调度模块的具体任务调度流程如图3所示。第1步调用桶形移位累加电路执行稀疏矩阵与向量的乘法运算,根据信息向量s计算向量m、f;第2步调用线性反馈移位寄存器电路执行后向代入运算,根据第1步计算得出的向量f计算向量q;第3步调用卷积和电路执行卷积运算,根据第1步计算得出的向量m和第2步计算得出的向量q计算向量x;第4步调用修改的移位寄存器加累加电路执行高密度矩阵与向量的乘法运算,根据第3步计算得出的向量x计算向量px;第5步调用卷积和电路执行卷积运算,根据第1步计算得出的向量f和第4步计算得出的向量px计算向量y;第6步调用线性反馈移位寄存器电路执行后向代入运算,根据第5步计算得出的向量y计算向量py;第7步调用重新排序拼接电路,对第4步计算得出的向量px和第6步计算得出的向量py简单重新排序后与信息向量s拼接,输出整个码字v。其中,第2步和第6步时分复用了线性反馈移位寄存器电路,第3步和第5步时分复用了卷积和电路。
图14总结了编码器各组成部分以及整个电路的硬件资源消耗。
图15总结了各编码步骤以及整个编码过程所需的处理时间。
图16比较了传统SRAA编码方法与本发明的编码速度和资源消耗。从图中可以清楚看到,无论是编码速度,还是逻辑资源,尤其是存储器,本发明的性能都优于传统SRAA编码方法。本发明使用的ROM仅为传统SRAA编码方法的4.5%。本发明使用了较少的触发器、异或门和与门,耗费量分别大约是传统SRAA编码方法的24%、26%和9%。这两种方案的编码速度都与码率有关。对于η=0.4、η=0.6、η=0.8,本发明的编码速度分别大约是传统SRAA编码方法的4.5、6.4和8.4倍。综上可见,与传统SRAA编码方法相比,本发明具有编码速度快,资源消耗少,功耗小,成本低等优点。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (10)
1.一种适合于DTMB标准采用的3种不同码率QC-LDPC码的编码器,QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵Hi,j构成的阵列,其中,c、t和b皆为正整数,1≤i≤c,1≤j≤t,3种不同码率分别是η=0.4、η=0.6、η=0.8,对于这3种不同码率QC-LDPC码,均有t=59,3种不同码率对应的参数c分别是c0.4=35、c0.6=23、c0.8=11,其特征在于,所述编码器包括以下部件:
桶形移位累加电路,用于完成稀疏矩阵与向量的乘法,根据信息向量s计算DTMB标准中QC-LDPC码编码流程中的向量m、f;
线性反馈移位寄存器电路,用于完成后向代入计算,根据桶形移位累加电路输出的向量f计算DTMB标准中QC-LDPC码编码流程中的向量q,并且此电路被时分复用,它根据卷积和电路输出的向量y计算DTMB标准中QC-LDPC码编码流程中的向量py;
卷积和电路,用于完成卷积运算,根据桶形移位累加电路输出的向量m和线性反馈移位寄存器电路输出的向量q计算DTMB标准中QC-LDPC码编码流程中的向量x,并且此电路被时分复用,它根据桶形移位累加电路输出的向量f和修改的移位寄存器加累加电路输出的向量px计算DTMB标准中QC-LDPC码编码流程中的向量y;
修改的移位寄存器加累加电路,用于完成高密度矩阵与向量的乘法运算,根据卷积和电路输出的向量x计算DTMB标准中QC-LDPC码编码流程中的向量px;
重新排序拼接电路,把修改的移位寄存器加累加电路输出的向量px和线性反馈移位寄存器电路输出的向量py以及信息向量s重新排序并拼接,形成DTMB标准需要的码字,所述重新排序拼接电路对于码率η=0.4,先输出校验向量p=(p1,p2,...,pc),再输出信息向量s=(s1,s2,...,st-c),对于码率η=0.6和η=0.8,先输出校验向量p的后c-1段(p2,p3,...,pc),再输出第1段p1,最后输出信息向量s=(s1,s2,...,st-c),校验向量p=(p1,p2,...,pc)与向量px、py的关系为px=(p1,p2,p3),py=(p4,p5,...,pc);
任务调度模块,用于对编码器各个模块使用的调度,实现线性反馈移位寄存器电路和卷积和电路的时分复用。
2.如权利要求1所述的编码器,其特征在于,所述桶形移位累加电路由1个b=127比特的桶形移位器、1个b=127比特的二输入异或门和1个b=127比特的累加寄存器组成,桶形移位器根据指定的循环右移位数对输入的b比特数据进行循环右移,二输入异或门对桶形移位器的b比特输出和累加寄存器的b比特内容进行模2加,累加寄存器存储二输入异或门的b比特输出。
3.如权利要求2所述的编码器,其特征在于,所述桶形移位器采用7级流水线结构,该流水线桶形移位器由7个b=127比特的循环右移电路、7个b=127比特的二选一选择器和6个b=127比特的寄存器组成,循环右移电路S1~S7分别对输入的b比特的数据循环右移1、2、4、8、16、32和64位,二选一选择器M1~M7根据各自的控制信号是0还是1选通两路b比特数据中的一路,寄存器R1~R6分别存储二选一选择器M1~M6的b比特输出,二选一选择器M7的b比特输出为流水线桶形移位器的输出。
4.如权利要求1所述的编码器,其特征在于,所述线性反馈移位寄存器电路由1个b=127比特的循环左移电路、2个b=127比特的二输入异或门、2个b=127比特的循环右移电路和2个b=127比特的寄存器组成,循环左移电路对输入的b比特数据循环左移1位,二输入异或门X0对循环左移电路的b比特输出和寄存器R0的b比特内容进行模2加,二输入异或门X0的b比特输出一方面被输出线性反馈移位寄存器电路,另一方面被反馈送入2个b比特的循环右移电路,循环右移电路S0对输入的b比特数据循环右移31位,循环右移电路S1对输入的b比特数据循环右移103位,二输入异或门X1对循环右移电路S0的b比特输出和寄存器R1的b比特内容进行模2加,寄存器R0存储二输入异或门X1的b比特输出,寄存器R1存储循环右移电路S1的b比特输出。
5.如权利要求1所述的编码器,其特征在于,对于码率η=0.4,当计算DTMB标准中QC-LDPC码编码流程中的向量x时,采用卷积和电路,该卷积和电路由2个b=127比特的寄存器、3个b=127比特的循环右移电路和1个b=127比特的四输入异或门组成,寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S2对第一路输入的b比特数据循环右移67位,循环右移电路S1对寄存器R1的b比特内容循环右移41位,循环右移电路S0对寄存器R0的b比特内容循环右移21位,四输入异或门对3个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,四输入异或门的输出为该卷积和电路的输出。
6.如权利要求1所述的编码器,其特征在于,对于码率η=0.6,当计算DTMB标准中QC-LDPC码编码流程中的向量x时,采用卷积和电路,该卷积和电路由2个b=127比特的寄存器、2个b=127比特的循环右移电路和1个b=127比特的三输入异或门组成,寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移24位,循环右移电路S0对寄存器R0的b比特内容循环右移116位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
7.如权利要求1所述的编码器,其特征在于,对于码率η=0.8,当计算DTMB标准中QC-LDPC码编码流程中的向量x时,采用卷积和电路,该卷积和电路由2个b=127比特的寄存器、2个b=127比特的循环右移电路和1个b=127比特的三输入异或门组成,寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移83位,循环右移电路S0对寄存器R0的b比特内容循环右移5位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
8.如权利要求1所述的编码器,其特征在于,对于所有码率,当计算DTMB标准中QC-LDPC码编码流程中的向量y时,采用卷积和电路,该卷积和电路由2个b=127比特的寄存器、2个b=127比特的循环右移电路和1个b=127比特的三输入异或门组成,寄存器R1存储第一路输入的b比特数据,寄存器R0存储寄存器R1的b比特内容,循环右移电路S1对寄存器R1的b比特内容循环右移104位,循环右移电路S0对寄存器R0的b比特内容循环右移32位,三输入异或门对2个循环右移电路的b比特输出和第二路输入的b比特数据进行模2加,三输入异或门的输出为该卷积和电路的输出。
9.如权利要求1所述的编码器,其特征在于,所述修改的移位寄存器加累加电路的移位寄存器加载的不是循环矩阵的首行而是首列。
10.一种适合于DTMB标准采用的3种不同码率QC-LDPC码的编码方法,QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵Hi,j构成的阵列,其中,c、t和b皆为正整数,1≤i≤c,1≤j≤t,3种不同码率分别是η=0.4、η=0.6、η=0.8,对于这3种不同码率QC-LDPC码,均有t=59,3种不同码率对应的参数c分别是c0.4=35、c0.6=23、c0.8=11,其特征在于,所述编码方法包括以下步骤:
第1步,调用桶形移位累加电路执行稀疏矩阵与向量的乘法运算,根据信息向量s计算DTMB标准中QC-LDPC码编码流程中的向量m、f;
第2步,调用线性反馈移位寄存器电路执行后向代入运算,根据第1步计算得出的向量f计算DTMB标准中QC-LDPC码编码流程中的向量q;
第3步,调用卷积和电路实现卷积运算,利用第1步计算得出的向量m和第2步计算得出的向量q计算DTMB标准中QC-LDPC码编码流程中的向量x;
第4步,调用修改的移位寄存器加累加电路执行高密度矩阵与向量的乘法运算,根据第3步计算得出的向量x计算DTMB标准中QC-LDPC码编码流程中的向量px;
第5步,复用卷积和电路,根据第1步计算得出的向量f和第4步计算得出的向量px计算DTMB标准中QC-LDPC码编码流程中的向量y;
第6步,复用线性反馈移位寄存器电路,根据第5步计算得出的向量y计算DTMB标准中QC-LDPC码编码流程中的向量py;
第7步,调用重新排序拼接电路,对校验向量p=(px,py)重新排序后与信息向量s拼接,组成并输出整个码字v,所述重新排序拼接电路对于码率η=0.4,先输出校验向量p=(p1,p2,...,pc),再输出信息向量s=(s1,s2,...,st-c),对于码率η=0.6和η=0.8,先输出校验向量p的后c-1段(p2,p3,...,pc),再输出第1段p1,最后输出信息向量s=(s1,s2,...,st-c),校验向量p=(p1,p2,...,pc)与向量px、py的关系为px=(p1,p2,p3),py=(p4,p5,...,pc)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100867484A CN102122963B (zh) | 2011-04-08 | 2011-04-08 | 一种dtmb系统中qc-ldpc码的编码器和编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100867484A CN102122963B (zh) | 2011-04-08 | 2011-04-08 | 一种dtmb系统中qc-ldpc码的编码器和编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102122963A CN102122963A (zh) | 2011-07-13 |
CN102122963B true CN102122963B (zh) | 2012-11-07 |
Family
ID=44251433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100867484A Expired - Fee Related CN102122963B (zh) | 2011-04-08 | 2011-04-08 | 一种dtmb系统中qc-ldpc码的编码器和编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102122963B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843147B (zh) * | 2012-09-27 | 2016-06-22 | 中国传媒大学 | 循环右移累加基的dtmb中ldpc编码器和编码方法 |
CN102857240B (zh) * | 2012-09-27 | 2016-06-29 | 苏州威士达信息科技有限公司 | 循环右移累加基的深空通信中ldpc编码器和编码方法 |
CN103036577B (zh) * | 2012-12-28 | 2015-09-30 | 东南大学 | 一种低复杂度的低密度奇偶校验ldpc码编码电路结构 |
CN103236852B (zh) * | 2013-04-19 | 2016-02-10 | 荣成市鼎通电子信息科技有限公司 | 无乘法运算的dtmb中准循环矩阵串行乘法器 |
CN103268216A (zh) * | 2013-04-19 | 2013-08-28 | 荣成市鼎通电子信息科技有限公司 | 基于共享存储机制的准循环矩阵串行乘法器 |
CN103269227A (zh) * | 2013-04-19 | 2013-08-28 | 荣成市鼎通电子信息科技有限公司 | 基于循环左移的深空通信中准循环ldpc串行编码器 |
CN104539297B (zh) * | 2015-01-30 | 2018-06-19 | 荣成市鼎通电子信息科技有限公司 | Dtmb中基于四级流水线的高速qc-ldpc编码器 |
CN104579364B (zh) * | 2015-01-30 | 2018-05-08 | 荣成市鼎通电子信息科技有限公司 | Cdr中基于四级流水线的高速qc-ldpc编码器 |
CN104579365B (zh) * | 2015-01-30 | 2018-06-19 | 荣成市鼎通电子信息科技有限公司 | 基于四级流水线的高速qc-ldpc编码器 |
CN104518804A (zh) * | 2015-01-30 | 2015-04-15 | 荣成市鼎通电子信息科技有限公司 | 基于三级流水线的高速qc-ldpc编码器 |
CN107947801B (zh) * | 2017-11-24 | 2020-12-15 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多码率兼容ldpc码编码器 |
CN109687940A (zh) * | 2018-12-25 | 2019-04-26 | 中国电子科技集团公司第五十四研究所 | 一种多路复用的ldpc编码方法 |
CN111813447B (zh) * | 2019-04-12 | 2022-11-08 | 杭州中天微系统有限公司 | 一种数据拼接指令的处理方法和处理装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917251A (zh) * | 2010-08-04 | 2010-12-15 | 中国传媒大学 | 一种dtmb系统中频域交织器和频率交织方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201014200A (en) * | 2008-09-25 | 2010-04-01 | Sunplus Technology Co Ltd | Decoding system for LDPC code concatenated with 4QAM-NR code |
-
2011
- 2011-04-08 CN CN2011100867484A patent/CN102122963B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917251A (zh) * | 2010-08-04 | 2010-12-15 | 中国传媒大学 | 一种dtmb系统中频域交织器和频率交织方法 |
Non-Patent Citations (6)
Title |
---|
基于DTMB标准的新型LDPC译码器实现;苏凌杰 等;《福州大学学报》;20100430;第38卷(第2期);第231-236页 * |
基于SIMD结构的多标准LDPC译码器的VLSI实现;黄双渠 等;《计算机研究与发展》;20100731;第47卷(第7期);第1313-1319页 * |
基于TDMP优化算法的QC_LDPC译码器VLSI实现;鲍丹 等;《计算机研究与发展》;20090228;第46卷(第2期);第338-343页 * |
苏凌杰 等.基于DTMB标准的新型LDPC译码器实现.《福州大学学报》.2010,第38卷(第2期),第231-236页. |
鲍丹 等.基于TDMP优化算法的QC_LDPC译码器VLSI实现.《计算机研究与发展》.2009,第46卷(第2期),第338-343页. |
黄双渠 等.基于SIMD结构的多标准LDPC译码器的VLSI实现.《计算机研究与发展》.2010,第47卷(第7期),第1313-1319页. |
Also Published As
Publication number | Publication date |
---|---|
CN102122963A (zh) | 2011-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122963B (zh) | 一种dtmb系统中qc-ldpc码的编码器和编码方法 | |
CN102857235B (zh) | 基于共享寄存器的dtmb中ldpc编码器和编码方法 | |
CN102932009A (zh) | 基于查找表的dtmb中qc-ldpc并行编码方法 | |
CN103248372A (zh) | 基于循环左移的准循环ldpc串行编码器 | |
US9104589B1 (en) | Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions | |
CN102843152B (zh) | 基于并行滤波的cmmb中ldpc编码器和编码方法 | |
CN102843147A (zh) | 循环右移累加基的dtmb中ldpc编码器和编码方法 | |
CN103067025A (zh) | 基于块行循环的cmmb中ldpc编码器和编码方法 | |
CN102882532B (zh) | 循环右移累加基的cmmb中ldpc编码器和编码方法 | |
CN102843151A (zh) | 一种低延时的cmmb中ldpc并行编码器和编码方法 | |
CN102857236A (zh) | 基于求和阵列的cmmb中ldpc编码器和编码方法 | |
CN103023515B (zh) | 基于块列循环的cmmb中ldpc编码器和编码方法 | |
CN102932011A (zh) | 基于查找表的cmmb中qc-ldpc并行编码方法 | |
CN102857240A (zh) | 循环右移累加基的深空通信中ldpc编码器和编码方法 | |
CN102843146A (zh) | 一种低延时的深空通信中ldpc并行编码器和编码方法 | |
CN102916706A (zh) | 高度并行的cmmb中qc-ldpc编码器和编码方法 | |
CN102932008A (zh) | 基于查找表的深空通信中qc-ldpc并行编码方法 | |
CN103236858A (zh) | 基于循环左移的cmmb中准循环ldpc串行编码器 | |
CN103236856A (zh) | 基于循环左移的dtmb中准循环ldpc串行编码器 | |
CN102932013A (zh) | 基于查找表的近地通信中qc-ldpc并行编码方法 | |
CN102882531A (zh) | 基于求和阵列的dtmb中ldpc编码器和编码方法 | |
CN104539297B (zh) | Dtmb中基于四级流水线的高速qc-ldpc编码器 | |
CN103929189A (zh) | 近地通信中部分并行输入的累加左移qc-ldpc编码器 | |
CN107196663A (zh) | Cdr中二级部分并行输入累加左移的ldpc编码器 | |
CN103929207A (zh) | Cmmb中部分并行输入的右移累加qc-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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121107 Termination date: 20130408 |