CN104579365A - High-speed QC-LDPC (quasi-cyclic low-density parity-check) encoder based on four-level assembly lines - Google Patents
High-speed QC-LDPC (quasi-cyclic low-density parity-check) encoder based on four-level assembly lines Download PDFInfo
- Publication number
- CN104579365A CN104579365A CN201510048099.7A CN201510048099A CN104579365A CN 104579365 A CN104579365 A CN 104579365A CN 201510048099 A CN201510048099 A CN 201510048099A CN 104579365 A CN104579365 A CN 104579365A
- Authority
- CN
- China
- Prior art keywords
- vector
- matrix
- equal
- cyclic
- check
- 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
- 239000013598 vector Substances 0.000 claims abstract description 146
- 238000000034 method Methods 0.000 claims abstract description 20
- 239000011159 matrix material Substances 0.000 claims description 114
- 125000004122 cyclic group Chemical group 0.000 claims description 44
- 230000015654 memory Effects 0.000 claims description 6
- 238000006386 neutralization reaction Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000017105 transposition Effects 0.000 claims 2
- 238000002474 experimental method Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Abstract
The invention provides a high-speed QC-LDPC (quasi-cyclic low-density parity-check) encoder based on four-level assembly lines. The encoder comprises a multiplier for sparse matrixes and vectors, an I-type backward iterative circuit, a multiplier for high-density matrixes and vectors and an II-type backward iterative circuit. The multiplier for the sparse matrixes and vectors is used for multiplication of the sparse matrixes and vectors, the multiplier for the high-density matrixes and vectors is used for multiplication of the high-density matrixes and vectors, and each of the I-type backward iterative circuit and the II-type backward iterative circuit is used for backward iterative operation. The whole encoding process is divided into the four-level assembly lines. The high-speed QC-LDPC encoder has the advantages of simple structure, low cost, high throughput capacity and the like.
Description
Technical Field
The invention relates to the field of channel coding, in particular to a high-speed QC-LDPC encoder based on a four-stage pipeline in a communication system.
Background
A Low-Density Parity-Check (LDPC) code is one of the efficient channel coding techniques, and a Quasi-Cyclic LDPC (Quasi-Cyclic LDPC, QC-LDPC) code is a special LDPC code. The generation matrix G and the check matrix H of the QC-LDPC code are both arrays formed by cyclic matrixes, have the characteristic of segmented circulation, and are called the QC-LDPC code. The first row of the circulant matrix is the result of the cyclic right shift of the last row by 1 bit, and the remaining rows are the result of the cyclic right shift of the last row by 1 bit, so that the circulant matrix is completely characterized by its first row. Typically, the first row of the circulant matrix is referred to as its generator polynomial.
The communication system usually adopts QC-LDPC code of system form, its left half of generating matrix G is a identity matrix, the right half is by e x c b x b rank cyclic matrix Gi,j(0≤i<e,e≤j<t, t ═ e + c), as follows:
where I is a b × b order identity matrix and 0 is a b × b order all-zero matrix. Successive b rows and b columns of G are referred to as block rows and block columns, respectively. From equation (1), G has e block rows and t block columns.
Currently, QC-LDPC codes widely employ a serial encoder based on c Type-I shift Register plus Accumulator (SRAA-I) circuits. The serial encoder composed of c SRAA-I circuits completes encoding within e multiplied by b clock cycles. This scheme requires 2 × c × b registers, c × b two-input and gates, and c × b two-input xor gates, and also requires an e × c × b bit ROM to store the generator polynomial of the circulant matrix. This solution has two drawbacks: firstly, a large amount of memory is needed, resulting in high circuit cost; and secondly, information bits are input serially, so that the encoding speed is low.
Disclosure of Invention
The invention provides a high-speed QC-LDPC encoder based on a four-level pipeline, aiming at the technical problems that the existing implementation scheme of the QC-LDPC encoder in a communication system has the defects of high cost and low encoding speed.
As shown in fig. 2, the high-speed QC-LDPC encoder based on four-stage pipeline in communication system mainly consists of 4 parts: the device comprises a sparse matrix and vector multiplier, a type I backward iteration circuit, a high-density matrix and vector multiplier and a type II backward iteration circuit. The encoding process is completed in 4 steps: step 1, using sparse matrices and vectorsThe multiplier calculates vectors f and w; step 2, calculating vectors q and x by using an I-type backward iteration circuit; step 3, calculating partial check vector p by using multiplier of high density matrix and vectorx(ii) a And 4, calculating the vector y by using a II type backward iterative circuit, and performing exclusive OR on the vector y and the vector q to obtain a partial check vector pySo as to obtain check vector p ═ p (p)x,py)。
The high-speed QC-LDPC encoder provided by the invention has a simple structure, and can reduce memories under the condition of obviously improving the encoding speed, thereby reducing the cost and improving the throughput.
The advantages and methods of the present invention will be further understood by reference to the following detailed description and drawings.
Drawings
FIG. 1 is a schematic diagram of an approximate lower triangular check matrix after row-column swapping;
FIG. 2 is a four-stage pipeline based QC-LDPC encoding process;
FIG. 3 is a functional block diagram of a loop left shift accumulator RLA circuit;
FIG. 4 is a high density matrix and vector multiplier consisting of u RLA circuits;
FIG. 5 is a sparse matrix and vector multiplier;
FIG. 6 is a type I backward iteration circuit;
FIG. 7 is a type II backward iteration circuit;
fig. 8 summarizes the hardware resources and processing time required for each encoding step of the encoder and the entire encoding process.
Detailed Description
The following detailed description of the preferred embodiments of the present invention, taken in conjunction with the accompanying drawings, will make the advantages and features of the invention easier to understand by those skilled in the art, and thus will clearly and clearly define the scope of the invention.
The row weight and column weight of the circulant matrix are the same and denoted as w. If w is 0, then the circulant matrix is an all-zero matrix. If w is 1, the circulant matrix is replaceable, called the permutation matrix, which can be obtained by right-shifting the identity matrix I cyclically by a few bits. The check matrix H of the QC-LDPC code is a cyclic matrix H of order b x b formed by c x tj,k(1. ltoreq. j. ltoreq. c, 1. ltoreq. k. ltoreq. t, t. e + c) in the following array:
in general, any cyclic matrix in the check matrix H is either an all-zero matrix (w ═ 0) or a permutation matrix (w ═ 1). Let the cyclic matrix Hj,kFirst line g ofj,k=(gj,k,1,gj,k,2,…,gj,k,b) Is its generator polynomial of which gj,k,m0 or 1 (1. ltoreq. m. ltoreq. b). Since H is sparse, gj,kThere are only 1 ' and even no ' 1 '.
The first e block column of H corresponds to the information vector a, and the last c block column corresponds to the check vector p. With b bits as one segment, the information vector a is equally divided into e segments, i.e. a ═ a1,a2,…,ae) (ii) a The check vector p is equally divided into c segments, i.e. p ═ p (p)1,p2,…,pc)。
Performing row exchange and column exchange operation on the check matrix H, and converting the check matrix H into an approximate lower triangular shape HALTAs shown in fig. 1. In fig. 1, the unit of all matrices is b bits instead of 1 bit. A is composed of (C-u). times.e circulant matrices of B × B order, B is composed of (C-u). times.0 u circulant matrices of B × 1B order, T is composed of (C-u). times.c-u circulant matrices of B × B order, C is composed of uxe.times.b order circulant matrices of B × B order, D is composed of uXu.times.b order circulant matrices of B × B order, E is composed of uX (C-u) circulant matrices of B × B orderAnd forming a cyclic matrix. T is a lower triangular matrix, u reflects a check matrix HALTProximity to the lower triangular matrix. In fig. 1, the matrices a and C correspond to the information vector a, and the matrices B and D correspond to a portion of the check vector px=(p1,p2,…,pu) The matrices T and E correspond to the remaining check vectors py=(pu+1,pu+2,…,pc)。p=(px,py). The matrix and the vector satisfy the following relations:
px Τ=Φ(ET-1AaΤ+CaΤ) (3)
py Τ=T-1(AaΤ+Bpx Τ) (4)
wherein Φ is (ET)-1B+D)-1Upper label ofΤAnd-1respectively representing transpose and inverse. As is well known, the inverse, product, and sum of the circulant matrix remains a circulant matrix. Thus, Φ is also an array consisting of a circulant matrix. Although both matrices E, T, B and D are sparse matrices, typically Φ is no longer sparse but rather high density.
Let fT=AaT,qT=T–1fT,wT=CaT,xT=EqT+wT,px T=ΦxT,yT=T–1Bpx TAnd py T=qT+yT. Vectors f and w can be calculated by:
wherein,
qT=T–1fTand xT=EqT+wTThe following matrix equation can be constructed:
wherein,
once p is calculatedx,yT=T–1Bpx TRewritable as follows:
[B T][pxy]Τ=Y[pxy]Τ=0 (9)
wherein,
Y=[B T](10)
since Q and Y are lower triangular matrices as well as T, both [ Q x ] in equation (7) and Y in equation (9) can be calculated in backward iteration.
Φ relates to the multiplication of the high density matrix with the vector, F relates to the multiplication of the sparse matrix with the vector, and Q and Y relate to backward iterative computations. From the above discussion, a four-stage pipeline based QC-LDPC encoding process can be presented, as shown in FIG. 2.
px T=ΦxTIs equivalent to px=xΦT. Let x be (x)1,x2,…,xu×b). Defining a u-bit vector sn=(xn,xn+b,…,xn+(u-1)×b) Wherein n is more than or equal to 1 and less than or equal to b. Let phij(1. ltoreq. j. ltoreq. u) is represented byTAll circulant matrix generator polynomials in block j of (1) to form a u x b order matrix. Then there is
pj=(…((0+s1Φj)ls(1)+s2Φj)ls(1)+…+sbΦj)ls(1)(11)
Wherein, the upper labells(1)Indicating a cycle left shift by 1 bit.
From equation (11), a round-shift-Left-Accumulator (RLA) circuit can be obtained, as shown in fig. 3. The index of the lookup table is a u-bit vector snLook-up table LjStoring variable u-bit vectors and fixed phi in advancejAll possible products of, therefore, 2ub-bit Read-Only Memory (ROM). b bit register R1,R2,…,RuVector segments x for buffer vectors x, respectively1,x2,…,xuB bit register Ru+jFor storing pxIs verified by the verification segment pj. 1 RLA circuit calculates the vector pjB clock cycles are required.
Since u is very small, p is calculated simultaneously using u RLA circuitsx=(p1,p2,…,pu) Is a reasonable scheme, such as the high-density matrix and vector multiplier shown in fig. 4. The high-density matrix and vector multiplier consists of u lookup tables L1,L2,…,Lu2u b-bit registers R3,1,R3,2,…,R3,2uAnd u b-bit two-input XOR gates X3,1,X3,2,…,X3,uAnd (4) forming. Look-up table L1,L2,…,LuStoring variable u-bit vectors and fixed matrices phi, respectively1,Φ2,…,ΦuAll possible products of, register R3,1,R3,2,…,R3,uVector segments x for buffer vectors x, respectively1,x2,…,xuRegister R3,u+1,R3,u+2,…,R3,2uRespectively for storing pxIs verified by the verification segment p1,p2,…,pu. u RLA circuits require the use of ub two-input XOR gates, 2uub bits of ROM and 2ub registers. u RLA circuits calculate the vector pxB clock cycles are required. Vector p is calculated using a high density matrix and vector multiplierxThe steps are as follows:
step 1, zero clearing register R3,u+1,R3,u+2,…,R3,2uInput vector segment x1,x2,…,xuStore them in the register R respectively3,1,R3,2,…,R3,uPerforming the following steps;
step 2, register R3,1,R3,2,…,R3,uSimultaneously circulating left for 1 time, XOR gate X3,1,X3,2,…,X3,uRespectively to the lookup table L1,L2,…,LuOutput of and register R3,u+1,R3,u+2,…,R3,2uThe contents of (A) are XOR-ed, and the XOR results are circularly left-shifted 1 time and then stored back to the register R respectively3,u+1,R3,u+2,…,R3,2u;
Step 3, repeating step 2 for b times, and after the step is completed, using a register R3,u+1,R3,u+2,…,R3,2uThe contents of the storage are respectively the check segment p1,p2,…,puWhich form part of a check vector px。
Let f be (f)1,f2,…,fc–u) And w ═ fc–u+1,fc–u+2,…,fc) Then [ f w ]]=(f1,f2,…,fc). According to formula (5), fjIs the jth block row of the matrix F and aTProduct of, i.e.
Wherein i is more than or equal to 1 and less than or equal to e, and j is more than or equal to 1 and less than or equal to c. f. ofjN bit f ofj,n(1. ltoreq. n. ltoreq. b) is
Wherein, the upper labelrs(n–1)Andls(n–1)respectively representing a cyclic right shift by n-1 bits and a cyclic left shift by n-1 bits. Since any circulant matrix generates a polynomial gj,iWith only a small number of '1's, or even all zeros, the inner product in equation (13) can be achieved by summing the taps of the circular left shift register, as shown in the sparse matrix and vector multiplier of fig. 5. The sparse matrix and vector multiplier is composed of t b-bit registers R1,1,R1,2,…,R1,tAnd c a plurality of multiple-input XOR gates X1,1,X1,2,…,X1,cAnd (4) forming. Register R1,1,R1,2,…,R1,eFor loading and looping left-shifting information segments a1,a2,…,aeRegister R1,e+1,R1,e+2,…,R1,tFor storing [ f w]Vector segment f of1,f2,…,fc. The sparse connection in fig. 5 depends on all circulant matrix generator polynomials in matrix F. If g isj,i,m1 (1. ltoreq. m. ltoreq. b), then the information section aiIs connected to the exclusive or gate X1,j. Thus, register R1,iDepends on the position of the non-zero elements of all circulant matrix generator polynomials in the ith block column of the matrix F, and a multi-input xor gate X1,jDepends on the position of the non-zero elements of all circulant matrix generator polynomials in the jth block row of the matrix F. If all circulant matrix generator polynomials in F have a total of α '1', then the sparse matrix and vector multiplier requires the simultaneous computation of F using (α -c) two-input XOR gates1,n,f2,n,…,fc,n. f and w may be counted over b clock cycles. The steps of calculating vectors f and w using a sparse matrix and vector multiplier are as follows:
step 1, input information segment a1,a2,…,aeStore them in the register R respectively1,1,R1,2,…,R1,ePerforming the following steps;
step 2, register R1,1,R1,2,…,R1,eSimultaneously circulating left for 1 time, XOR gate X1,1,X1,2,…,X1,cShift the XOR result to the left into register R, respectively1,e+1,R1,e+2,…,R1,tPerforming the following steps;
step 3, repeating step 2 for b times, and after the step is completed, using a register R1,e+1,R1,e+2,…,R1,tThe contents of the memory are respectively vector segments f1,f2,…,fcThey constitute vectors f and w.
Equation (7) implies a backward iterative operation, and the vectors q and x must be solved segment by segment. Definition [ q x]=(q1,q2,…,qc) And initialized to all zeros. First, q is1Exactly equal to f1. Secondly, q is2Is the 2 nd block row and vector [ Q x ] of the matrix Q]TProduct of f2And (2) of (1). Then, q3Is block 3 row and vector [ Q x ] of matrix Q]TProduct of f3And (2) of (1). Repeating the above process until q is calculatedcA type I backward iterative circuit as shown in fig. 6. The I-type backward iterative circuit is composed of c b-bit registers R2,1,R2,2,…,R2,cAnd c-1 multiple input modulo-2 adder A2,2,A2,3,…,A2,cAnd (4) forming.
To calculate qj(j is not less than 1 and not more than c) as an example. The non-zero circulant matrix in the check matrix H is typically a circularly right shifted version of the identity matrix. Suppose there are N non-zero circulants in the jth block row of the matrix Q, and their cyclic right shift numbers are s respectivelyj,k1,sj,k2,…,sj,kN(1≤k1,k2,…,kN<j) In that respect Then the process of the first step is carried out,
since N is small, equation (14) can be computed by a multiple input modulo-2 adder that shifts the input cycle to the left in 1 clock cycle. Therefore, c clock cycles are required to compute vector [ q x ]. Assuming that the matrix Q has β non-zero circulant matrices in common, then the type I backward iterative circuit needs to use (β -c) b two-input xor gates.
The matrix Q is a circulant matrix Q of order c × c b × cj,k(j is more than or equal to 1 and less than or equal to c, and k is more than or equal to 1 and less than or equal to c). Non-zero circulant matrix Qj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,k,0≤sj,k<b. For ease of description, an all-zero circulant matrix is relative to a b × b order circulant matrixThe cyclic right shift number of is denoted as sj,k'-'. In FIG. 6, a non-zero circulant matrix Qj,kCorresponding vector segment qkIs circularly moved to the left by sj,kBit-wise input to a multiple-input modulo-2 adder A2,jSegment f of the neutralization vectorjPerforming XOR operation, wherein the vector segment corresponding to the all-zero cyclic matrix does not participate in the XOR operation, A2,jIs calculated as qjIs stored in a register R2,jIn (1). The steps for computing the vectors q and x using a type I backward iterative circuit are as follows:
step 1, inputting vector segment f1Dividing the vector segment q1=f1Into a register R2,1Performing the following steps;
step 2, inputting vector segment fjNon-zero circulant matrix Qj,kCorresponding vector segment qkIs circularly moved to the left by sj,kBit-wise input to a multiple-input modulo-2 adder A2,jSegment f of the neutralization vectorjPerforming XOR operation to obtain result qjIs stored in a register R2,jWherein j is more than or equal to 2 and less than or equal to c, and k is more than or equal to 1<j,0≤sj,k<b;
Step 3, gradually changing the value of j by taking 1 as a step length, repeating the step 2 c-1 times, and finally, obtaining a register R2,1,R2,2,…,R2,cStored are respectively vector segments q1,q2,…,qcThey constitute vectors q and x.
Equation (9) also implies a backward iterative operation, and the vector y must be solved segment by segment. Definition y ═ (y)1,y2,…,yc–u) And initialized to all zeros. First, y1Is the 1 st block row of matrix Y and vector pxy]TThe product of the two. Second, y2Is the 2 nd block row of matrix Y and vector pxy]TThe product of the two. Repeating the above process until y is calculatedc–uUp to the type II backward iteration circuit as shown in fig. 7. The type II backward iterative circuit is composed of c b-bit registers R4,1,R4,2,…,R4,cAnd c-u multiple-input modulo-2 adder A4,1,A4,2,…,A4,c-uAnd (4) forming. Direction of calculationThe quantity y takes (c-u) clock cycles in total. Assuming that there are xi non-zero circulant matrices in the matrix Y, then the backward iterative circuit of type II needs to use (xi-2 c +2u) b two-input xor gates. The matrix Y is a cyclic matrix Y of order b × b consisting of (c-u) × cj,k(j is more than or equal to 1 and less than or equal to c-u, and k is more than or equal to 1 and less than or equal to c). Non-zero circulant matrix Yj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,k,0≤sj,k<b. The steps for computing the vector y using a type II backward iterative circuit are as follows:
step 1, inputting a check segment p1,p2,…,puStore them in the register R respectively4,c-u+1,R4,c-u+2,…,R4,cPerforming the following steps;
step 2, non-zero circulant matrix Yj,kCorresponding vector segment pkOr ykIs circularly moved to the left by sj,kBit-wise input to a multiple-input modulo-2 adder A4,jIn the process, an XOR operation is performed, and the result y of the XOR operationjIs stored in a register R4,jWherein j is more than or equal to 1 and less than or equal to c-u, and k is more than or equal to 1<u+j,0≤sj,k<b;
Step 3, gradually changing the value of j by taking 1 as a step length, repeating the step 2 for c-u times, and finally, obtaining a register R4,1,R4,2,…,R4,c-uStored are respectively vector segments y1,y2,…,yc-uThey constitute a vector y.
The invention provides a high-speed QC-LDPC coding method based on a four-level pipeline, which is suitable for QC-LDPC codes in a communication system, and the coding steps are described as follows:
step 1, calculating vectors f and w by using a sparse matrix and a vector multiplier;
step 2, calculating vectors q and x by using an I-type backward iteration circuit;
step 3, calculating partial check vector p by using multiplier of high density matrix and vectorx;
Step 4, calculating vectors by using a II type backward iteration circuitAnd xoring y and the vector q to obtain a partial check vector pySo as to obtain check vector p ═ p (p)x,py)。
Fig. 8 summarizes the hardware resource consumption and processing time required by each encoding step of the encoder and the entire encoding process.
As can be seen from FIG. 8, when the pipeline is full, the whole encoding process requires max (t-c + b, c, u + b) clock cycles, which is much smaller than e × b clock cycles required by the serial encoding method based on c SRAA-I circuits.
Existing solutions for QC-LDPC encoders in communication systems require e x c x b bit ROM, whereas the present invention requires 2uub bit ROM. Since u is usually small, so 2uub is much smaller than e × c × b.
In conclusion, compared with the conventional serial SRAA method, the method has the advantages of high coding speed, low memory consumption and the like.
The above description is only one embodiment of the present invention, but the scope of the present invention is not limited thereto, and any person skilled in the art can change or replace the present invention within the technical scope of the present invention without creative efforts, and the present invention shall be covered by the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope defined by the claims.
Claims (6)
1. A high-speed QC-LDPC encoder based on four-stage pipeline, the check matrix H of QC-LDPC code is an array formed by c x t b order cyclic matrixes, wherein c, t and b are positive integers, t is e + c, the check matrix H is transformed into an approximate lower triangular shape by row-column exchange and can be divided into 6 sub-matrixes, a is composed of (C-u) x E B × B cyclic matrices, B is composed of (C-u) x 0u B × 1B cyclic matrices, lower triangular matrix T is composed of (C-u) x (C-u) B × B cyclic matrices, C is composed of u × E B × B cyclic matrices, D is composed of u × u B cyclic matrices, E is composed of u × u (C-u) B × B cyclic matrices, where u is a positive integer, and Φ ═ ET-1B+D)-1Is composed of uXu b-order cyclic matrices, phijIs formed by phiTAll circulant matrix generator polynomials in the jth block column of (1), wherein superscriptΤAnd-1respectively representing transposition and inversion, j is more than or equal to 1 and less than or equal to u, is formed by c × c b-order cyclic matrixes Qj,kWherein I is an identity matrix, 0 is an all-zero matrix, 1 is more than or equal to j and less than or equal to c,1 is more than or equal to k and less than or equal to c, and a non-zero cyclic matrix Qj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,kWherein 0 is less than or equal to sj,k<b,Y=[B T]Is composed of (c-u) x c cyclic matrices of b x b orderj,kWherein j is more than or equal to 1 and less than or equal to c-u, k is more than or equal to 1 and less than or equal to c, and a non-zero cyclic matrix Yj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,kWherein 0 is less than or equal to sj,k<B, A and C correspond to the information vector a, and the matrixes B and D correspond to a part of the check vector pxThe matrices T and E correspond to the remaining correctionsVector of experiment pyCheck vector p ═ p (p)x,py) The information vector a is equally divided into e segments by b bits, i.e. a ═ a1,a2,…,ae) The check vector p is equally divided into c segments, i.e. p ═ p (p)1,p2,…,pc),px=(p1,p2,…,pu),py=(pu+1,pu+2,…,pc) The vector f is equally divided into segments c-u, i.e. f ═ f1,f2,…,fc–u) The vector w is divided equally into u segments, i.e. w ═ fc–u+1,fc–u+2,…,fc),[f w]=(f1,f2,…,fc) The vector q is equally divided into segments c-u, i.e. q ═ q (q)1,q2,…,qc–u) The vector x is equally divided into u segments, i.e. x ═ qc–u+1,qc–u+2,…,qc),[q x]=(q1,q2,…,qc) The vector y is equally divided into segments c-u, i.e. y ═ y1,y2,…,yc–u) Characterised in that the encoder comprises the following components:
a sparse matrix and vector multiplier consisting of t b-bit registers R1,1,R1,2,…,R1,tAnd c a plurality of multiple-input XOR gates X1,1,X1,2,…,X1,cA component for calculating vectors f and w;
the I-type backward iterative circuit consists of c b-bit registers R2,1,R2,2,…,R2,cAnd c-1 multiple input modulo-2 adder A2,2,A2,3,…,A2,cA component for computing vectors q and x;
the multiplier for high-density matrix and vector is composed of u lookup tables L1,L2,…,Lu2u b-bit registers R3,1,R3,2,…,R3,2uAnd u b-bit two-input XOR gates X3,1,X3,2,…,X3,uComposition for calculating partial check vector pxLook-up table L1,L2,…,LuStoring variable u-bit vectors and fixed matrices phi, respectively1,Φ2,…,ΦuAll possibilities ofMultiplying;
a type II backward iterative circuit consisting of c b-bit registers R4,1,R4,2,…,R4,cAnd c-u multiple-input modulo-2 adder A4,1,A4,2,…,A4,c-uComposition for calculating the XOR of the vector y, y and the vector q to obtain a partial check vector pySo as to obtain check vector p ═ p (p)x,py)。
2. The four-stage pipeline-based high-speed QC-LDPC encoder according to claim 1, wherein said sparse matrix and vector multiplier calculates vectors f and w as follows:
step 1, input information segment a1,a2,…,aeStore them in the register R respectively1,1,R1,2,…,R1,ePerforming the following steps;
step 2, register R1,1,R1,2,…,R1,eSimultaneously circulating left for 1 time, XOR gate X1,1,X1,2,…,X1,cShift the XOR result to the left into register R, respectively1,e+1,R1,e+2,…,R1,tPerforming the following steps;
step 3, repeating step 2 for b times, and after the step is completed, using a register R1,e+1,R1,e+2,…,R1,tThe contents of the memory are respectively vector segments f1,f2,…,fcThey constitute vectors f and w.
3. A four-stage pipeline-based high-speed QC-LDPC encoder according to claim 1, wherein the type I backward iterative circuit calculates the vectors q and x as follows:
step 1, inputting vector segment f1Dividing the vector segment q1=f1Into a register R2,1Performing the following steps;
step 2, inputting vector segment fjNon-zero circulant matrix Qj,kCorresponding vector segment qkIs circularly moved to the left by sj,kBit-wise input to a multiple-input modulo-2 adder A2,jSegment f of the neutralization vectorjTo carry out the differenceOR operation, XOR result qjIs stored in a register R2,jWherein j is more than or equal to 2 and less than or equal to c, and k is more than or equal to 1<j,0≤sj,k<b;
Step 3, gradually changing the value of j by taking 1 as a step length, repeating the step 2 c-1 times, and finally, obtaining a register R2,1,R2,2,…,R2,cStored are respectively vector segments q1,q2,…,qcThey constitute vectors q and x.
4. The four-stage pipeline-based high-speed QC-LDPC encoder according to claim 1, wherein the high density matrix and vector multiplier calculates vector pxThe steps are as follows:
step 1, zero clearing register R3,u+1,R3,u+2,…,R3,2uInput vector segment x1,x2,…,xuStore them in the register R respectively3,1,R3,2,…,R3,uPerforming the following steps;
step 2, register R3,1,R3,2,…,R3,uSimultaneously circulating left for 1 time, XOR gate X3,1,X3,2,…,X3,uRespectively to the lookup table L1,L2,…,LuOutput of and register R3,u+1,R3,u+2,…,R3,2uThe contents of (A) are XOR-ed, and the XOR results are circularly left-shifted 1 time and then stored back to the register R respectively3,u+1,R3,u+2,…,R3,2u;
Step 3, repeating step 2 for b times, and after the step is completed, using a register R3,u+1,R3,u+2,…,R3,2uThe contents of the storage are respectively the check segment p1,p2,…,puWhich form part of a check vector px。
5. The high-speed QC-LDPC encoder based on four-stage pipeline according to claim 1, wherein said type II backward iterative circuit calculates vector y as follows:
step 1, inputting a check segment p1,p2,…,puStore them in the register R respectively4,c-u+1,R4,c-u+2,…,R4,cPerforming the following steps;
step 2, non-zero circulant matrix Yj,kCorresponding vector segment pkOr ykIs circularly moved to the left by sj,kBit-wise input to a multiple-input modulo-2 adder A4,jIn the process, an XOR operation is performed, and the result y of the XOR operationjIs stored in a register R4,jWherein j is more than or equal to 1 and less than or equal to c-u, and k is more than or equal to 1<u+j,0≤sj,k<b;
Step 3, gradually changing the value of j by taking 1 as a step length, repeating the step 2 for c-u times, and finally, obtaining a register R4,1,R4,2,…,R4,c-uStored are respectively vector segments y1,y2,…,yc-uThey constitute a vector y.
6. A high-speed QC-LDPC coding method based on four-stage production line, the check matrix H of QC-LDPC code is an array formed by c x t b order cyclic matrixes, wherein c, t and b are positive integers, t is e + c, the check matrix H is transformed into an approximate lower triangular shape by row-column exchange and can be divided into 6 sub-matrixes, a is composed of (C-u) x E B × B cyclic matrices, B is composed of (C-u) x 0u B × 1B cyclic matrices, lower triangular matrix T is composed of (C-u) x (C-u) B × B cyclic matrices, C is composed of u × E B × B cyclic matrices, D is composed of u × u B cyclic matrices, E is composed of u × u (C-u) B × B cyclic matrices, where u is a positive integer, and Φ ═ ET-1B+D)-1Is composed of uXu b-order cyclic matrices, phijIs formed by phiTAll circulant matrix generator polynomials in the jth block column of (1), wherein superscriptΤAnd-1respectively representing transposition and inversion, j is more than or equal to 1 and less than or equal to u, is formed by c × c b-order cyclic matrixes Qj,kWherein I is an identity matrix, 0 is an all-zero matrix, 1 is more than or equal to j and less than or equal to c,1 is more than or equal to k and less than or equal to c, and a non-zero cyclic matrix Qj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,kWherein 0 is less than or equal to sj,k<b,Y=[B T]Is composed of (c-u) x c cyclic matrices of b x b orderj,kWherein j is more than or equal to 1 and less than or equal to c-u, k is more than or equal to 1 and less than or equal to c, and a non-zero cyclic matrix Yj,kThe number of cyclic right shifts relative to the b x b order identity matrix is sj,kWherein 0 is less than or equal to sj,k<B, A and C correspond to the information vector a, and the matrixes B and D correspond to a part of the check vector pxThe matrices T and E correspond to the remaining check vectors pyCheck vector p ═ p (p)x,py) The information vector a is equally divided into e segments by b bits, i.e. a ═ a1,a2,…,ae) The check vector p is equally divided into c segments, i.e. p ═ p (p)1,p2,…,pc),px=(p1,p2,…,pu),py=(pu+1,pu+2,…,pc) The vector f is equally divided into segments c-u, i.e. f ═ f1,f2,…,fc– u) The vector w is divided equally into u segments, i.e. w ═ fc–u+1,fc–u+2,…,fc),[f w]=(f1,f2,…,fc) The vector q is equally divided into cSegment-u, i.e. q ═ q (q)1,q2,…,qc–u) The vector x is equally divided into u segments, i.e. x ═ qc–u+1,qc–u+2,…,qc),[q x]=(q1,q2,…,qc) The vector y is equally divided into segments c-u, i.e. y ═ y1,y2,…,yc–u) Characterized in that said coding method comprises the following steps:
step 1, calculating vectors f and w by using a sparse matrix and a vector multiplier;
step 2, calculating vectors q and x by using an I-type backward iteration circuit;
step 3, calculating partial check vector p by using multiplier of high density matrix and vectorx;
And 4, calculating the vector y by using a II type backward iterative circuit, and performing exclusive OR on the vector y and the vector q to obtain a partial check vector pySo as to obtain check vector p ═ p (p)x,py)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510048099.7A CN104579365B (en) | 2015-01-30 | 2015-01-30 | High speed QC-LDPC encoders based on four level production lines |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510048099.7A CN104579365B (en) | 2015-01-30 | 2015-01-30 | High speed QC-LDPC encoders based on four level production lines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579365A true CN104579365A (en) | 2015-04-29 |
CN104579365B CN104579365B (en) | 2018-06-19 |
Family
ID=53094696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510048099.7A Expired - Fee Related CN104579365B (en) | 2015-01-30 | 2015-01-30 | High speed QC-LDPC encoders based on four level production lines |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579365B (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122963A (en) * | 2011-04-08 | 2011-07-13 | 中国传媒大学 | Encoder and encoding method for Quasic-low-density parity-check (QC-LDPC) codes in digital television terrestrial multimedia broadcasting (DTMB) system |
CN102843147A (en) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | LDPC (Low-Density Parity-Check) encoder and encoding method in DTMB (Digital Terrestrial Multimedia Broadcasting) based on cycle right shift accumulation |
CN102857235A (en) * | 2012-09-27 | 2013-01-02 | 苏州威士达信息科技有限公司 | LDPC (low-density parity-check) encoder and encoding method in DTMB (digital terrestrial multimedia broadcasting) system based on shared register |
CN102868412A (en) * | 2012-09-27 | 2013-01-09 | 苏州威士达信息科技有限公司 | Parallel filtering based LDPC (low-density parity-check) encoder and encoding method in deep space communication |
CN102932009A (en) * | 2012-11-21 | 2013-02-13 | 苏州威士达信息科技有限公司 | Lookup-table based method for parallel encoding of QC-LDPC (quasi-cyclic low-density parity-check) codes in DTMB system |
CN103929199A (en) * | 2014-04-23 | 2014-07-16 | 荣成市鼎通电子信息科技有限公司 | Full parallel input quasi-cyclic matrix multiplier based on ring shift left in DTMB |
-
2015
- 2015-01-30 CN CN201510048099.7A patent/CN104579365B/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122963A (en) * | 2011-04-08 | 2011-07-13 | 中国传媒大学 | Encoder and encoding method for Quasic-low-density parity-check (QC-LDPC) codes in digital television terrestrial multimedia broadcasting (DTMB) system |
CN102843147A (en) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | LDPC (Low-Density Parity-Check) encoder and encoding method in DTMB (Digital Terrestrial Multimedia Broadcasting) based on cycle right shift accumulation |
CN102857235A (en) * | 2012-09-27 | 2013-01-02 | 苏州威士达信息科技有限公司 | LDPC (low-density parity-check) encoder and encoding method in DTMB (digital terrestrial multimedia broadcasting) system based on shared register |
CN102868412A (en) * | 2012-09-27 | 2013-01-09 | 苏州威士达信息科技有限公司 | Parallel filtering based LDPC (low-density parity-check) encoder and encoding method in deep space communication |
CN102932009A (en) * | 2012-11-21 | 2013-02-13 | 苏州威士达信息科技有限公司 | Lookup-table based method for parallel encoding of QC-LDPC (quasi-cyclic low-density parity-check) codes in DTMB system |
CN103929199A (en) * | 2014-04-23 | 2014-07-16 | 荣成市鼎通电子信息科技有限公司 | Full parallel input quasi-cyclic matrix multiplier based on ring shift left in DTMB |
Also Published As
Publication number | Publication date |
---|---|
CN104579365B (en) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268217A (en) | Quasi-cyclic matrix serial multiplier based on rotate left | |
CN107786211A (en) | A kind of Algebraic Structure acquisition methods, coding method and the encoder of IRA QC LDPC codes | |
CN103236850A (en) | Rotate left-based quasi-cyclic (QC) matrix serial multiplier in deep space communication | |
CN105099467B (en) | The coding method of QC-LDPC code and code device | |
CN104579366B (en) | High speed QC-LDPC encoder in WPAN based on three class pipeline | |
CN103902509A (en) | ROL quasi-cyclic matrix multiplier for full parallel input in WPAN | |
CN103929199A (en) | Full parallel input quasi-cyclic matrix multiplier based on ring shift left in DTMB | |
CN104579365B (en) | High speed QC-LDPC encoders based on four level production lines | |
CN105141319A (en) | High-speed QC-LDPC encoder based on three-stage pipeline in deep space communication | |
CN104539297B (en) | High speed QC-LDPC encoders based on four level production lines in DTMB | |
CN104518803B (en) | High speed QC-LDPC encoders based on four level production lines in CMMB | |
CN104579364B (en) | High speed QC-LDPC encoders based on four level production lines in CDR | |
CN106953646A (en) | Quasi-cyclic LDPC encoder based on shared mechanism | |
CN106972864A (en) | Quasi-cyclic LDPC encoder based on check matrix in deep space communication | |
CN106982063A (en) | Quasi-cyclic LDPC encoder based on check matrix in WPAN | |
CN105099468A (en) | High-speed QC-LDPC (quasi-cyclic-low-density parity-check) encoder based on four-level flow lines and used for deep space communication | |
CN104518804A (en) | High-speed QC-LDPC encoder based on three-stage assembly line | |
CN105141320A (en) | High-speed QC-LDPC encoder based on three-stage pipeline | |
CN105245237A (en) | High-speed QC-LDPC encoder based on three-level pipeline in DTMB | |
CN105119608A (en) | High-speed QC-LDPC (quasi-cyclic low-density parity-check) encoder based on three-stage assembly line in CMMB (China mobile multimedia broadcasting) | |
CN105141321A (en) | High-speed QC-LDPC encoder based on two-stage pipeline | |
CN105356889A (en) | High-speed QC-LDPC (quasi-cyclic low-density parity check) encoder based on three-stage pipeline in CDR (China Digital Radio) | |
CN110324048A (en) | The coding method of RA-LDPC-CC and encoder in a kind of communication modulation systems | |
CN106982065A (en) | Quasi-cyclic LDPC encoder based on check matrix | |
CN106982062A (en) | Quasi-cyclic LDPC encoder based on shared mechanism in WPAN |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180619 Termination date: 20210130 |
|
CF01 | Termination of patent right due to non-payment of annual fee |