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 PDF

Info

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
Application number
CN201510048099.7A
Other languages
Chinese (zh)
Other versions
CN104579365B (en
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.)
RONGCHENG DINGTONG ELECTRONIC INFORMATION TECHNOLOGY Co Ltd
Original Assignee
RONGCHENG DINGTONG ELECTRONIC INFORMATION TECHNOLOGY Co Ltd
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 RONGCHENG DINGTONG ELECTRONIC INFORMATION TECHNOLOGY Co Ltd filed Critical RONGCHENG DINGTONG ELECTRONIC INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510048099.7A priority Critical patent/CN104579365B/en
Publication of CN104579365A publication Critical patent/CN104579365A/en
Application granted granted Critical
Publication of CN104579365B publication Critical patent/CN104579365B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

High-speed QC-LDPC encoder based on four-stage production line
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:
f w T = A C a T = Fa T - - - ( 5 )
wherein,
F = A C - - - ( 6 )
qT=T–1fTand xT=EqT+wTThe following matrix equation can be constructed:
T 0 E I q x T = Q q x T = f w T - - - ( 7 )
wherein,
Q = T 0 E I - - - ( 8 )
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, respectively12,…,Φ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.
f j = H j , 1 a 1 T + H j , 2 a 2 T + . . . + H j , i a i T + . . . + H j , e a e T - - - ( 12 )
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
f j , n = g j , 1 rs ( n - 1 ) a 1 + g j , 2 rs ( n - 1 ) a 2 + . . . + g j , i rs ( n - 1 ) a i + . . . + g j , e rs ( n - 1 ) a e = g j , 1 a 1 ls ( n - 1 ) + g j , 2 a 2 ls ( n - 1 ) + . . . + g j , i a i ls ( n - 1 ) + . . . + g j , e a e ls ( n - 1 ) - - - ( 13 )
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,
q j = f j + I rs ( s j , k + 1 ) q k 1 + I rs ( s j , k 2 ) q k 2 + . . . + I rs ( s j , kN ) q kN = f j + q k 1 ls ( s j , k 1 ) + q k 2 ls ( s j , k 2 ) + . . . + q kN ls ( s j , kN ) - - - ( 14 )
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, H = A B T C D E , 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, Q = T 0 E I 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, respectively12,…,Φ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, H = A B T C D E , 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, Q = T 0 E I 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)。
CN201510048099.7A 2015-01-30 2015-01-30 High speed QC-LDPC encoders based on four level production lines Expired - Fee Related CN104579365B (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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