CN100521553C - Decoding device and decoding method - Google Patents

Decoding device and decoding method Download PDF

Info

Publication number
CN100521553C
CN100521553C CNB2004800006017A CN200480000601A CN100521553C CN 100521553 C CN100521553 C CN 100521553C CN B2004800006017 A CNB2004800006017 A CN B2004800006017A CN 200480000601 A CN200480000601 A CN 200480000601A CN 100521553 C CN100521553 C CN 100521553C
Authority
CN
China
Prior art keywords
matrix
decoding
data
check
object program
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
Application number
CNB2004800006017A
Other languages
Chinese (zh)
Other versions
CN1698271A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN1698271A publication Critical patent/CN1698271A/en
Application granted granted Critical
Publication of CN100521553C publication Critical patent/CN100521553C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

The present invention relates to a decoding apparatus and a decoding method for realizing the decoding of LDPC codes, in which, while the circuit scale is suppressed, the operating frequency can be suppressed within a sufficiently feasible range, and control of memory access can be performed easily, and to a program therefor. A check matrix of LDPC codes is formed by a combination of a (PxP) unit matrix, a matrix in which one to several 1s of the unit matrix are substituted with 0, a matrix in which they are cyclically shifted, a matrix, which is the sum of two or more of them, and a (PxP) 0-matrix. A check node calculator 313 simultaneously performs p check node calculations. A variable node calculator 319 simultaneously performs p variable node calculations.

Description

Decoding device and coding/decoding method
Technical field
The present invention relates to a kind of decoding device, coding/decoding method and program.More specifically, the present invention relates to a kind of decoding device and coding/decoding method and program thereof that is used for to use the code decoding that low density parity check code (LDPC sign indicating number) encodes.
Background technology
In recent years, for example, such as the communications field of mobile communication and deep space communication and remarkable such as the research progress in the broadcast world of land ripple or satellite digital broadcasting.What situation occurred together therewith is to have carried out energetically being used to make error correction coding and the research of coding theory efficiently of decoding.
As the theoretical limit of code performance, the Shannon limit of being represented by so-called Shannon (C.E.Shannon) channel coding theorem is well-known.Demonstrate purpose for exploitation, carried out research coding theory near the code of the performance of this Shannon limit.For example, in recent years,, developed the technology that is commonly called " strengthening coding ", as Parallel Concatenated Convolutional Code (PCCC) and Serial Concatenated Convolutional Code (SCCC) as the coding method that demonstrates near the performance of the Shannon limit.In addition, strengthen coding although developed this, known long coding method as people, low density parity check code (hereinafter referred to as " LDPC sign indicating number ") has attracted attentiveness.
In " Low Density Parity Check Codes (low density parity check code) " (Cambridge, Massachusetts:M.I.T.Press, 1963) of R.G.Gallager, the LDPC sign indicating number has been proposed first.Subsequently, " Good error correcting codes based on very sparsematrices (based on the good error correcting code of utmost point sparse matrix) " at D.J.C.Mackay (submits to IEEE Trans.Inf.Theory, IT-45, pp.399-431,1999) and M.G.Luby, M.Mitzenmacher, " Analysis of low density codes and improved designs usingirregular graphs (the improvement design of the analysis of low-density code and use irregular figure) " (Proceedingsof ACM Symposium on Theory of Computing of M.A.Shokrollachi and D.A.Spielman, pp.249-258,1998) in, LDPC has attracted attentiveness once more.
According to this research recently, people acquaint oneself of, and for the LDPC sign indicating number, coding is similar to strengthening, and when code length increases, can obtain the performance near the Shannon limit.In addition, because the LDPC sign indicating number has minimum length and the proportional character of code length, therefore, they have such advantage: piece error probability characteristic is good, and observed so-called mistake flat (error floor) phenomenon occurs hardly in the decoding characteristics that strengthens coding.
Now, will be discussed in more detail below such LDPC sign indicating number.The LDPC sign indicating number is a linear code, and always is not two-dimentional, but, supposes that LDPC is the description that provides of two dimension here.
The maximum feature of LDPC sign indicating number is: the parity matrix of definition LDPC sign indicating number is sparse.Here, form sparse matrix in 1 the very little such mode of number in the matrix element.If sparse check matrix is expressed as H, then its example comprises such check matrix, wherein, as shown in Figure 1, the Hamming of every row (Hamming) weight (1 number; Weight) be " 3 ", and the Hamming weight of every row is " 6 ".
As mentioned above, the LDPC sign indicating number by the fixing check matrix H definition of the Hamming weight of every row and every row is called as " regular LDPC sign indicating number ".On the other hand, the LDPC sign indicating number by the unfixed check matrix H definition of the Hamming weight of every row and every row is called as " abnormal LDPC code ".
Generate (generation) matrix G by on the basis of check matrix H, producing, and this generator matrix G be multiply by two-dimensional signal message and generated codeword, realize utilizing the coding of this LDPC sign indicating number.More particularly, the encoding device that is used to utilize the LDPC sign indicating number to encode calculates generator matrix G, wherein, and for the transposed matrix H of check matrix H T, equation GH T=0 sets up.Here, when generator matrix G was k * n matrix, encoding device multiply by k position informational message (vectorial u) with generator matrix G, and generate n bit word c (=uG).Be mapped to the sign indicating number position that "+1 " will be worth for " 1 " and be mapped under the situation of " 1 " will being worth sign indicating number position for " 0 ", transmit the code word that encoding device thus generates, and, it received by the scheduled communication channel at receiver side.
On the other hand, can be by the message pass-algorithm, utilize conviction on the so-called Tanner figure to propagate (beliefpropagation) to carry out the decoding of LDPC sign indicating number, wherein, described Tanner figure is by variable node (being also referred to as information node) and check-node formation; This message pass-algorithm is proposed by Gallager, and as " probabilistic decoding " and known.Hereinafter, variable node and check-node also are called node for short in suitable place.
Yet, in probabilistic decoding,, therefore,, be necessary to find out the probability distribution of the message of taking successive value between node in order to find analytic solutions because the message that exchanges is real number value.This makes and comprises that the analysis of big difficulty necessitates.Therefore, Gallager has proposed algorithm A or algorithm B as the algorithm that is used for the decoding of LDPC sign indicating number.
Usually, carry out the decoding of LDPC sign indicating number according to the process shown in Fig. 2.Here, will receive value representation is U 0(u 0i), will be shown u from the message table of check-node output j, and will be shown v from the message table of variable node output iHere, described message is real number value, feasible " 0 " similitude (likeness) of recently representing this value with so-called log-likelihood.
In the decoding of LDPC sign indicating number, initial, as shown in Figure 2, and in step S11, reception value U 0(u 0i) be received message u jBe initialized to 0, and, integer is initialized to 0 as the variable k of the counter of iterative process.Then, process proceeds to step S12.At step S12, based on the reception value U of institute 0(u 0i), determine message v by carrying out the calculating shown in the formula (1) iIn addition, based on this message v i, determine message u by carrying out the calculating shown in the formula (2) j
v i = u 0 i + Σ j = 1 d v - 1 u j - - - ( 1 )
tanh ( u j 2 ) = Π i = 1 d c - 1 tanh ( v i 2 ) - - - ( 2 )
Here, the d in formula (1) and (2) vAnd d cBe respectively the parameter of the number of 1 on the vertical direction (row direction) of indication check matrix H and the horizontal direction (directions of row), and, can select them according to desirable.For example, in the situation of (3,6) sign indicating number, d v=3 and d c=6.
In each calculating of formula (1) and (2) and since from the message of rib (edge) input of output message be not used as and or long-pending parameters calculated, therefore and or the long-pending scope of calculating be to d from 1 v-1 or from 1 to d c-1.In fact, by the function R (v shown in the prior establishment formula 3 1, v 2) table, and as shown in Figure 4 continuously (recursively) use this table, carry out the calculating shown in the formula (2), wherein, described function R (v 1, v 2) by importing v about two 1And v 2An output define.
x=2tanh -1{tanh(v 1/2)tanh(v 2/2)}=R(v 1,v 2) (3)
u j = R ( v 1 , R ( v 2 , R ( v 3 , . . . R ( v d c - 2 , v d c - 1 ) ) ) ) - - - ( 4 )
In addition, at step S12, variable k is increased by 1, then, process proceeds to step S13.At step S13, determine that variable k is whether more than or equal to the predetermined number N of iterative decoding.When step S13 determines that variable k is not greater than or equal to N, process is returned step S12, and carries out same processing once more.
When step S13 determines variable k more than or equal to N, process proceeds to step S14, and at this place, definite and output conduct is carried out the result calculated shown in the formula (5) and message v last output, that serve as decoded result.This has finished the decode procedure of LDPC sign indicating number.
v j = u 0 i + Σ j = 1 d v u j - - - ( 5 )
Here, different with the calculating of formula (1), use and carry out the calculating of formula (5) from the input message of all ribs that are connected to variable node.
In such LDPC sign indicating number decode procedure, for example, in the situation of (3,6) sign indicating number, as shown in Figure 3, between node, exchange messages.In the node (variable node) by "=" expression in Fig. 3, carry out the calculating shown in the formula (1).In node (check-node), carry out the calculating shown in the formula (2) by "+" expression.Specifically, in algorithm A, message is formed two dimension; In node, carry out d by "+" expression cThe XOR of-1 input message calculates; And in the node by "=" expression, for the reception value R of institute, as all d vWhen-1 input message was different place value, symbol was by negate and be output.
In addition, in recent years, carried out research to the implementation method of LDPC sign indicating number decoding.Before describing implementation method, the decoding of LDPC sign indicating number is described with the form of signal.
Fig. 4 shows the parity matrix example of (3,6) LDPC sign indicating number (encoding rate is 1/2, and code length is 12).Can write out the parity matrix of LDPC sign indicating number by use Tanner figure, as shown in Figure 5.In Fig. 5, the node of being represented by "+" is a check-node, and the node of being represented by "=" is a variable node.Check-node and variable node correspond respectively to the row and column of parity matrix.Connecting line between check-node and the variable node is a rib, and corresponding to " 1 " of check matrix.That is to say, when elements capable as the j of check matrix and the i row are 1, in Fig. 5, from the top i variable node (node of "=") and from the top j check-node (node of "+") is connected to each other by rib.Rib represents that the sign bit corresponding to variable node has the constraints corresponding to check-node.Fig. 5 shows the Tanner figure of the check matrix of Fig. 4.
In sum-product algorithm, repeat the calculating of variable node and the calculating of check-node as the method that the LDPC sign indicating number is decoded.
In variable node, as shown in Figure 6, carry out the calculating of formula (1).That is to say, in Fig. 6, by using message u from all the other ribs that are connected to variable node 1And u 2, and received information u 0i, calculate message v corresponding to the rib that will calculate 1Message corresponding to other rib is also calculated similarly.
Before describing check node calculation, by use formula a * b=exp{ln (| a|)+ln (| b|) } * sign (a) * sign (b) comes rewriting formula (2), as the formula (6), wherein, sign (x) is 10 o'clock of x, and o'clock is-1 in x<0.
u j = 2 tanh - 1 ( Π i = 1 d c - 1 tanh ( v i 2 ) )
= 2 tanh - 1 [ exp { Σ i = 1 d c - 1 ln ( | tanh ( v i 2 ) | ) } × Π i = 1 d c - 1 sign ( tanh ( v i 2 ) ) ] - - - ( 6 )
= 2 tanh - 1 [ exp { - ( Σ i = 1 d c - 1 - ln ( tanh ( | v i | 2 ) ) ) } ] × Π i = 1 d c - 1 sign ( v i )
In addition, in the situation of x 〉=0, when making definition
Figure C200480000601D00164
The time, because
Figure C200480000601D00171
Therefore, formula (6) can be written as formula (7).
u j = Φ - 1 ( Σ i = 1 d c - 1 Φ ( | v i | ) ) × Π i = 1 d c - 1 sign ( v i ) - - - ( 7 )
In check-node, as shown in Figure 7, carry out the calculating of formula (7).That is to say, in Fig. 7, by using message v from all the other ribs that are connected to check-node 1, v 2, v 3, v 4And v 5, calculate message u corresponding to the rib that will calculate for it jMessage corresponding to other rib is also calculated similarly.
Function Also can be represented as
Figure C200480000601D00174
And, as x〉and 0 the time,
Figure C200480000601D00175
Work as function
Figure C200480000601D00176
With
Figure C200480000601D00177
When being used as the hardware realization, there is such situation, wherein, use LUT (look-up table) to realize them, and both is identical LUT for they.
When sum-product algorithm is used as the hardware realization, is necessary to utilize suitable circuit scale and, repeats variable node calculating of representing by formula (1) and the check node calculation of representing by formula (7) with suitable frequency of operation.
As the example that realizes decoding device, at first provide description in such a case implementation method, wherein, by the calculating of carrying out each node simply in order successively decode (continuous decoding fully).
Here, for example, suppose and to decode by the sign indicating number (encoding rate is 2/3, and code length is 90) that 30 (OK) * 90 (row) check matrixes of Fig. 8 are represented.1 number of the check matrix of Fig. 8 is 269; Therefore, in Tanner figure, the number of rib becomes 269.Here, in the check matrix of Fig. 8, utilize ". " to represent 0.
Fig. 9 shows the topology example that is used for LDPC sign indicating number decoding decoding device once.
In the decoding device of Fig. 9,, calculate message corresponding to a rib for this equipment each clock (clock) with its operation.
More particularly, the decoding device of Fig. 9 comprises two memories 100 that are used for rib and 102, check node calculation devices 101, variable node calculator 103, a memory that is used to receive 104 and a control assembly 105.
In the decoding device of Fig. 9, read message data successively from the memory 100 or 102 that is used for rib, and, by using this message data, calculate message data corresponding to desirable rib.Then, will be stored in the memory that is used for rib 100 or 102 of back level by the message data that this calculating is determined successively.In the time that iterative decoding will be carried out, realize iterative decoding with the decoding device of LDPC sign indicating number decoding Fig. 9 once or by reusing the decoding device of Fig. 9 by continuous cascade a plurality of being used for.Here, for example, suppose to connect the decoding device of a plurality of Fig. 9.
The message D100 that provides from variable node calculator 103 (not shown) of prime decoding device is provided the memory 100 that is used for rib in a certain order, and this is that the check node calculation device 101 of back level reads their order in proper order.Then, in the check node calculation stage, the memory 100 that is used for rib offers check node calculation device 101 as message output D101 with their stored orders with message D100.
Based on the control signal D106 that provides from control assembly 105, check node calculation device 101 is by the message D101 that provides from the memory 100 that is used for rib being provided, calculating according to formula (7), and will offer the memory that is used for rib 102 of back grade by the message D102 that this calculatings is determined.
The message D102 that provides from the check node calculation device 101 of prime is provided the memory 102 that is used for rib in a certain order, and this is that the variable node calculator 103 of back level reads their order in proper order.Then, in the variable node calculation stages, the memory 102 that is used for rib offers variable node calculator 103 with message D102 as message D103 and with the order of storing them.
In addition, control signal D107 is offered variable node calculator 103 from control assembly 105, and, received data D104 is offered variable node calculator 103 from the memory 104 that is used to receive.Based on control signal D107, variable node calculator 103 is by message D103 that provides from the memory 100 that is used for rib and the received data D104 that provides from the memory 100 that is used to receive are provided, calculate according to formula (1), and the message D105 that will obtain as result of calculation offers the memory that is used for rib 100 (not shown) of the decoding device of back level.
At the memory 104 that is used for receiving, the data that are converted into the LDPC sign indicating number (LDPC sign indicating number) that storage is received.The control signal D107 that control assembly 105 will be used to control the control signal D106 that variable node calculates and be used to control check node calculation offers check node calculation device 101 and variable node calculator 103 respectively.When the message of all ribs all is stored in the memory 100 that is used for rib, control assembly 105 offers check node calculation device 101 with control signal D106, and when the message of all ribs all was stored in the memory 102 that is used for rib, control assembly 105 offered variable node calculator 103 with control signal D107.
Figure 10 shows the topology example of check node calculation device 101 that is used for carrying out successively check node calculation of Fig. 9.
In Figure 10, be quantified as 6 altogether together by supposing each message and sign bit, check node calculation device 101 is shown.In addition, in Figure 10, carry out check node calculation by the LDPC sign indicating number of the check matrix of Fig. 8 representative.In addition, clock ck is offered the check node calculation device 101 of Figure 10, this clock ck is provided for necessary piece.Each piece and clock ck synchronously handle.
For example, based on 1 the control signal D106 that provides from control assembly 105, the message D101 that the check node calculation device 101 of Figure 10 reads from the memory 100 that is used for rib successively by use carries out the calculating according to formula (7).
More particularly, in check node calculation device 101, read successively from 6 message D101 (message v corresponding to the variable node of each row of check matrix i), as the absolute value D122 of its lower-order (lower-order) position (| v i|) be provided for LUT 121, and offered EXOR circuit 129 and FIFO (first-in first-out) memory 133 respectively as the sign bit D121 of its highest order.In addition, control signal D106 is offered check node calculation device 101 from control assembly 105, and, this control signal D106 is offered selector 124 and selector 131.
LUT 121 read to absolute value D122 (| v i|) carry out in the formula (7)
Figure C200480000601D00191
5 result of calculation D123 of calculating gained
Figure C200480000601D00192
And provide it to adder 122 and FIFO memory 127.
Adder 122 is passed through result of calculation D123 Be added to accumulative total (integrate) the result of calculation D123 that comes together with the 9 place value D124 that are stored in the register 123
Figure C200480000601D00194
And thus obtained 9 aggregate-values are stored in the register 123 once more.When added up from the message D101 of all ribs in the check matrix delegation absolute value D122 (| v i|) result of calculation the time, register 123 is reset.
As the message D101 that reads successively in the check matrix delegation, and in the time of will being stored in the register 123 for the aggregate-value of the result of calculation D123 of delegation, the control signal D106 that provides from control assembly 105 changes into 1 from 0.For example, when row weight when being " 9 ", control signal D106 is " 0 " at the 1st to the 8th clock, and is " 1 " at the 9th clock.
When control signal D106 was " 1 ", selector 124 selected to be stored in the value in the register 123, i.e. message D101 (the message v of all ribs in the self checking matrix delegation always i) determine
Figure C200480000601D00195
9 place value D124 of gained
Figure C200480000601D00196
From i=1 to i=d c), and should value output to register 125 as value D125, store it thus.Register 125 offers selector 124 and adder 126 with the value D125 that is stored as 9 place value D126.When control signal D106 was " 0 ", the value D126 that provides from register 125 was provided for selector 124, and this value is outputed to selector 124, came to store once more it thus.That is to say that register 125 will before add up
Figure C200480000601D00197
Offer selector 124 and adder 126, up to message D101 (the message v that has added up all ribs in the self checking matrix delegation always i) determine
Figure C200480000601D00198
Till.
On the other hand, FIFO memory 127 is with the result of calculation D123 of LUT 121 outputs
Figure C200480000601D00199
Postpone, up to newly being worth D126 from register 125 outputs
Figure C200480000601D001910
From i=1 to i=d c) till, and result of calculation D123 offered subtracter 126 as 5 place value D127.Subtracter 126 deducts the value D127 that provides from FIFO memory 127 from the value D126 that register 125 provides, and subtraction result is offered LUT 128 as 5 subtraction value D128.That is to say message D101 (the message v of subtracter 126 all ribs from the origin self checking matrix delegation i) determined Aggregate-value in, deduct by message D101 (message v from the rib that will determine i) determined And with subtraction value
Figure C200480000601D00203
From i=1 to i=d c-1) offers LUT 128 as subtraction value D128.
LUT 128 outputs are to subtraction value D128
Figure C200480000601D00204
From i=1 to i=d c-1) carries out in the formula (7)
Figure C200480000601D00205
5 result of calculation D129 of calculating gained
Figure C200480000601D00206
When carrying out above-mentioned processing, EXOR circuit 129 is stored in 1 place value D131 in the register 130 and the XOR of sign bit D121 by calculating, carries out the multiplication of sign bit, and 1 multiplication result D130 is stored in the register 130 once more.The sign bit D121 of the message D101 of all ribs is all taken advantage of fashionablely on from check matrix delegation, and register 130 is reset.
As the multiply each other multiplication result D130 (∏ sign (v of gained of the sign bit D121 that has stored the message D101 of all ribs in the matrix of the self checking in the future delegation i), from i=1 to i=d c) time, the control signal D106 that provides from control assembly 105 changes into " 1 " from " 0 ".
When control signal D106 was " 1 ", selector 131 selected to be stored in the value in the register 130, that is, and and the sign bit D121 of the message D101 of all ribs value D131 (∏ sign (v of gained that multiplies each other in the matrix of the self checking in the future delegation i), from i=1 to i=d c), and should value output to register 132 as 1 place value D133, store it thus.Register 132 offers selector 131 and EXOR circuit 134 with the value D132 that is stored as 1 place value D132.When control signal D106 was " 0 ", the value D133 that provides from register 132 was provided for selector 131, and this value is outputed to register 132, came to store once more it thus.That is to say that register 132 offers selector 131 and EXOR circuit 134 with previously stored value, message D101 (the message v of all ribs on from check matrix delegation i) sign bit D121 taken advantage of till.
On the other hand, FIFO memory 133 postpones sign bit D121, up to new value D133 (∏ sign (v i), from i=1 to i=d c) offered EXOR circuit 134 from register 132 till, and it offers EXOR circuit 134 with this result as 1 place value D134.EXOR circuit 134 will be worth D133 divided by value D134, and 1 result of division will be exported as the value D135 that is divided by by the XOR of the value D134 that the value D133 that provides from register 132 is provided and provides from FIFO memory 133.That is to say, the sign bit D121 of the message D101 of all ribs in EXOR circuit 134 matrix of the self checking in the future delegation (sign (| v i|)) multiply each other value divided by from the sign bit D121 of the message D101 of the rib that will determine (sign (| v i|)), and the value of will being divided by (∏ sign (v i), from i=1 to i=d c-1) as the value D135 output of being divided by.
In check node calculation device 101, will be altogether 6 as message D102 (message u j) output, wherein, be 5 of lower-order, and be high-order positions from 1 value D135 that is divided by of EXOR circuit 134 outputs from 5 result of calculation D129 of LUT 128 output.
As mentioned above, in check node calculation device 101, carry out the calculating of formula (7), and definite message u j
Because the capable weight maximum of the check matrix of Fig. 8 is 9, that is to say, owing to the maximum number that offers the message of check-node is 9, therefore, check node calculation device 101 have be used for 9 message (
Figure C200480000601D0021173157QIETU
FIFO memory 127 and FIFO memory 133 that (| vj|)) postpones.In the time will calculating weight less than the message of 9 row, the retardation in FIFO memory 127 and the FIFO memory 133 is reduced to the value of capable weight.
Figure 11 shows the topology example that is used for carrying out successively the variable node calculator 103 that variable node calculates of Fig. 9.
In Figure 11, by supposing that each message and sign bit are quantified as altogether 6 together variable node calculator 103 is shown.In Figure 11, carry out calculating by the variable node of the LDPC sign indicating number of the check matrix of Fig. 8 representative.In addition, clock ck is offered the variable node calculator 103 of Figure 11, and this clock ck is provided for the piece of necessity.Each piece and clock ck synchronously handle.
For example, based on 1 the control signal D107 that provides from control assembly 105, the variable node calculator 103 of Figure 11 is by using the message D103 that reads successively from the memory 102 that is used for rib and from the reception data D104 that the memory 104 that is used to receive reads, carrying out the calculating according to formula (1).
More particularly, in variable node calculator 103, read successively from 6 message D103 (message u corresponding to each check-node of going of check matrix j), and message D103 offered adder 151 and FIFO memory 155.In addition, in variable node calculator 103, read 6 successively from the memory 104 that is used to receive and receive data D104, and provide it to adder 156.In addition, control signal D107 is offered variable node calculator 103 from control assembly 105, and this control signal D107 is offered selector 153.
Adder 151 is passed through message D103 (message u j) and be stored in 9 place value D151 in the register 152 and be added to the accumulative total message D103 that comes together, and 9 aggregate-values are stored in the register 152 once more.During the message D103 of all ribs, register 152 is reset on having added up from check matrix delegation.
When the message D103 of all ribs and the value of message D103 gained that will add up row were stored in the register 152 on reading from check matrix delegation successively, the control signal D107 that provides from control assembly 105 changed into " 1 " from " 0 ".For example, when the row weight was " 5 ", control signal D107 was " 0 " at the 1st clock to the 4 clocks, and was " 0 " at the 5th clock.
When control signal D107 was " 1 ", selector 153 selected to be stored in the value in the register 152, that is, accumulative total is from message D103 (the message u of all ribs in the check matrix delegation j) 9 place value D151 (∑ u of gained j, from j=1 to j=d v), and this value outputed to register 154, store it thus.Register 154 offers selector 153 and adder-subtracter 156 with the value D151 that is stored as 9 place value D152.When control signal D107 was " 0 ", the value D152 that provides from register 154 was provided for selector 153, and this value is outputed to register 154, came to store once more it thus.That is to say that the value that register 154 will before add up offers selector 153 and adder-subtracter 156, message D103 (the message u of all ribs on having added up from check matrix delegation j) till.
On the other hand, the message D103 of FIFO memory 155 nodes of self checking in the future postpones, up to newly being worth D152 (∑ u from register 154 outputs j, from j=1 to j=d v) till, and message D103 offered adder-subtracter 156 as 6 place value D153.Adder-subtracter 156 deducts the value D153 that provides from FIFO memory 155 from the value D152 that register 154 provides.That is to say that adder-subtracter 156 is message D103 (the message u of all ribs in the self checking matrix delegation always j) aggregate-value in deduct message u from the rib that will determine j, and definite subtraction value (∑ u j, from j=1 to j=d v-1).In addition, the adder-subtracter 156 reception data D104 that will provide from the memory 104 that is used to receive is added to subtraction value (∑ u j, from j=1 to d v-1) on, and with thus obtained 6 place values as message D105 (message v i) output.
As mentioned above, in variable node calculator 103, carry out the calculating of formula (1), and definite message v i
Because the row weight maximum of the check matrix of Fig. 8 is 5, that is to say, be 5 owing to offer the maximum number of the message of variable node, therefore, variable node calculator 103 has and is used to postpone 5 message (u j) FIFO memory 155.In the time will calculating weight less than the message of 5 row, the retardation in the FIFO memory 155 is reduced to the value of row weight.
In the decoding device of Fig. 9, come to provide control signal from control assembly 105 according to the weight of check matrix.Decoding device according to Fig. 9, as long as be used for rib memory 100 and 102 and the capacity of the FIFO memory 127,133 of check node calculation device 101 and variable node calculator 103 and 155 enough, just can be by only changing the LDPC sign indicating number decoding of control signal with various check matrixes.
Although not shown in the decoding device of Fig. 9,, carry out the calculating of formula (5) rather than the variable node of formula (1) and calculate, and result of calculation is exported as final decoded result at the afterbody of decoding.
When by the decoding device of reusing Fig. 9 the LDPC sign indicating number being decoded, the check node calculation that hockets and variable node calculate.That is to say, in the decoding device of Fig. 9, variable node calculator 103 carries out variable node by the check node calculation result who uses check node calculation device 101 and calculates, and check node calculation device 101 carries out check node calculation by the variable node result of calculation of using variable node calculator 103.
Therefore, once decode, need 269 * 2=538 clock for the check matrix that uses Fig. 8 with 269 ribs.For example, in order to carry out iterative decoding 50 times, when receiving when 90 sign indicating numbers (reception data) are made as frame of a frame, 538 * 50=26900 clock operation is essential, a wherein said frame is a code length, thereby it is essential that the doubly high high speed operation in about 300 (≈ 26900/90) that is approximately receive frequency becomes.If supposing receive frequency is tens of MHz, then need the operation of GHz or more speed.
In addition, for example, the decoding device of 50 Fig. 9 of cascade with situation with the decoding of LDPC sign indicating number in, can carry out a plurality of variable nodes simultaneously and calculate and check node calculation.For example, when the variable node that carries out first frame calculates, carry out the check node calculation of second frame, and carry out the variable node calculating of the 3rd frame.In this case, when receiving 90 sign indicating numbers, owing to need to calculate 269 ribs, so decoding device need operate with the doubly high frequency in 3 (≈ 269/90) that is approximately receive frequency, thereby very possible the realization.Yet in this case, briefly, circuit scale becomes 50 times of decoding device big of Fig. 9.
Next, provide description to decoding device implementation method in the situation of calculating and decode (parallel decoding fully) by carrying out all nodes simultaneously.
For example, in " Parallel Decoing Architectures forLow Density Parity Check Codes (the parallel decoding framework of low density parity check code) " (Symposium on Circuits and Systems, 2001) of C.Howland and A.Blanksby, this implementation method has been described.
Figure 12 A to 12C shows that be used for will be by the structure of the decoding device example of sign indicating number (encoding rate is 2/3, and code length the is 90) decoding of the check matrix of Fig. 8 representative.Figure 12 A shows the general structure of decoding device.Figure 12 B show Figure 12 A decoding device by dotted line B around the detailed structure of figure middle and upper part.Figure 12 C show Figure 12 A decoding device by dotted line C around the detailed structure of figure middle and lower part.
The decoding device of Figure 12 A to 12C comprise a memory that is used to receive 205, two rib device for interchanging 200 and 203, two be used for the memory 202 and 206 of rib, by 30 check node calculation devices 201 1To 201 30The check node calculation device of forming 201 and by 90 variable node calculators 204 1To 204 90The variable node calculator of forming 204.
In the decoding device of Figure 12 A to 12C, read all message datas simultaneously from the memory 202 or 206 that is used for rib corresponding to 269 ribs, and, by using this message data, calculate new information data corresponding to these 269 ribs.In addition, will be stored in the memory that is used for rib 206 or 202 of back level as all new information data that result of calculation is determined simultaneously.By reusing the decoding device of Figure 12 A to 12C, realized iterative decoding.Now, will be discussed in more detail below each parts.
The memory 206 that is used for rib is stored the variable node calculator 204 from prime simultaneously 1To 204 90All message D206 1To D206 90, read message D206 at next clock (moment of next clock) 1To D206 90As message D207 1To D207 90, and with them as message D200 (D200 1To D200 90) offer the rib device for interchanging 200 of back level.Rib device for interchanging 200 rearranges the message D200 that (exchange) provides from the memory 206 that is used for rib according to the check matrix of Fig. 8 1To D200 90Order, and with them as D201 1To D201 30Offer check node calculation device 201 1To 201 30
Check node calculation device 201 1To 201 30By the message D201 that provides from rib device for interchanging 200 is provided 1To D201 30Carry out calculating according to formula (7), and the message D202 that will obtain as result of calculation 1To D202 30Offer the memory 202 that is used for rib.
The memory 202 that is used for rib is stored the check node calculation device 201 from prime simultaneously 1To 201 30All message D202 that provide 1To D202 30, and at the next one constantly with all message D202 1To D202 30As message D203 1To D203 30Offer the rib device for interchanging 203 of back level.
Rib device for interchanging 203 rearranges the message D203 that provides from the memory 202 that is used for rib according to the check matrix of Fig. 8 1To D203 30Order, and with them as message D204 1To D204 90Offer variable node calculator 204 1To 204 90
Variable node calculator 204 1To 204 90By the message D204 that provides from rib device for interchanging 203 is provided 1To D204 90, and the reception data D205 that provides from the memory 205 that is used to receive 1To D205 90, carry out calculating according to formula (1), and the message D206 that will obtain as result of calculation 1To D206 90Offer the memory that is used for rib 206 of back level.
Figure 13 shows the check node calculation device 201 that is used for carrying out simultaneously check node calculation of Figure 12 A to Figure 12 C m(m=1,2 ..., 30) topology example.
Check node calculation device 201 at Figure 13 mIn, similar to the check node calculation device 101 of Figure 10, carry out the check node calculation of formula (7), and simultaneously all ribs are carried out check node calculation.
More particularly, at the check node calculation device 201 of Figure 13 mIn, read simultaneously 200 that provide from the rib device for interchanging, from all message D221 corresponding to the variable node of each row of check matrix of Fig. 8 1To D221 9(v i), and, will be as the absolute value D222 of 5 of its lower-orders separately 1To D222 9(| v i|) offer LUT 221 respectively 1To 221 9Will be as message D221 1To D221 9(v i) 1 bit sign position D223 of high-order position 1To D223 9Offer EXOR circuit 226 respectively 1To 226 9, and provide it to EXOR circuit 225.
LUT 221 1To 221 9Read respectively to absolute value D222 1To D222 9(| v i|) carry out respectively in the formula (7)
Figure C200480000601D00251
Calculate 5 result of calculation D224 of gained 1To D224 9
Figure C200480000601D00252
And they are offered each adder 223 1To 223 9LUT 221 1To 221 9With result of calculation D224 1To D224 9
Figure C200480000601D00253
Offer adder 222.
222 couples of result of calculation D224 of adder 1To D224 9
Figure C200480000601D00254
The summation (for the summation of the result of calculation of delegation) of value calculate, and with 9 result of calculation D225 From i=1 to i=9) offer subtracter 223 1To 223 9Subtracter 223 1To 223 9From result of calculation D225, deduct result of calculation D224 respectively 1To D224 9
Figure C200480000601D00256
And with 5 subtraction value D227 1To D227 9Offer LUT224 1To 224 9That is to say subtracter 223 1To 223 9From determined by message vi from all ribs
Figure C200480000601D00257
Aggregate-value in deduct from by message v from the rib that will determine iDetermined
Figure C200480000601D00258
And with subtraction value D227 1To D227 9
Figure C200480000601D00259
From i=1 to i=8) offer LUT 224 respectively 1To 224 9LUT 224 1To 224 9Read subtraction value D227 1To D227 9Carry out in the formula (7) Calculate 5 result of calculation D228 of gained 1To D228 9, and export them.
On the other hand, EXOR circuit 225 is by calculating all sign bit D223 1To D223 9XOR, carry out sign bit D223 1To D223 9Multiply each other, and with 1 value D226 that multiplies each other (for the value that the multiplies each other (∏ sign (v of the sign bit of delegation i), from i=1 to i=9)) offer each EXOR circuit 226 1To 226 9By calculating multiply each other value D226 and sign bit D223 respectively 1To D223 9XOR, EXOR circuit 226 1To 226 9Determine to multiply each other value D226 respectively divided by sign bit D223 1To D223 91 value D229 that is divided by of gained 1To D229 9(∏ sign (v i), from i=1 to i=8), and export them.
At check node calculation device 201 mIn, with altogether 6 be output as the message D230 that obtains as the check node calculation result 1To D230 9, wherein, make from LUT 224 1To 224 95 result of calculation D228 of output 1To D228 9Become 5 lower-order positions separately, and make from EXOR circuit 226 1To 226 9The value D229 that is divided by of output 1To D229 9Become high-order position separately.
In the above described manner, at check node calculation device 201 mIn, carry out the calculating of formula (7), and definite message u j
In Figure 13, by hypothesis each message and sign bit are quantified as altogether 6 together check node calculation device 201 is shown mThe circuit of Figure 13 is corresponding to a check-node.For the check matrix that will here handle among Fig. 8, owing to have the check-node of 30 row, so the decoding device of Figure 12 A to 12C has 30 check node calculation devices 201 shown in Figure 13 m, wherein, the 30th, the number of the row of check matrix.
Check node calculation device 201 at Figure 13 mIn, can calculate 9 message simultaneously.For the capable weight of the check matrix that will here handle among Fig. 8, the weight of first row is 8, and the weight of second row is 9, that is to say, having a kind of message number that offers check-node is 8 situation, is 9 situation and there are 9 kinds of message numbers.Therefore, the check node calculation device 201 1Have the circuit that can be similar to Figure 13 and the circuit structure that calculates 8 message simultaneously, and, remaining check node calculation device 201 disposed according to the mode identical with the circuit of Figure 13 2To 201 30
Figure 14 shows the variable node calculator 204 that is used for carrying out simultaneously variable node calculating of Figure 12 A to 12C p(p=1,2 ..., 90) topology example.
Variable node calculator 204 at Figure 14 pIn, similar to the variable node calculator 103 of Figure 11, the variable node that carries out formula (1) calculates, and simultaneously all ribs is carried out variable node and calculate.
More particularly, at the variable node calculator 204 of Figure 14 pIn, read simultaneously 203 that provide from the rib device for interchanging, from all 6 message D251 corresponding to the check-node of each row of check matrix 1To D251 5(message u j), and these message are offered each adder 252 1To 252 5, and provide it to adder 251.In addition, offer variable node calculator 204 with receiving data D271 from the memory 205 that is used to receive p, and will receive data D271 and offer adder-subtracter 252 1To 252 5
Adder 251 all message D251 of accumulative total 1To D251 5(message u j), and with 9 aggregate-value D252 (for total value (the ∑ u of the message of delegation j, from j=1 to j=5)) offer adder-subtracter 252 1To 252 5Adder-subtracter 252 1To 252 5From additive value D252, deduct message D251 respectively 1To D251 5(message u j).That is to say adder-subtracter 252 1To 252 5Respectively from message u from all ribs jAggregate-value D252 in, deduct message D251 from the rib that will determine 1To D251 5(message u j), and definite subtraction value (∑ u j, from j=1 to j=4).
In addition, adder-subtracter 252 1To 252 5To receive data D271 (u Oi) be added to subtraction value (∑ u j, from j=1 to j=4) on, and with 6 additive value D253 1To 253 5Export as variable node result of calculation.
In the above described manner, at variable node calculator 204 pIn carry out the calculating of formula (1) and definite message v i
In Figure 14, by hypothesis each message and sign bit are quantified as 6 together variable node calculator 204 is shown pThe circuit of Figure 14 is corresponding to a variable node.For the check matrix among the Fig. 8 that will here handle, owing to there are the variable nodes of 90 row, so the decoding device of Figure 12 A to 12C has 90 circuit shown in Figure 14, and wherein, 90 is the number of the row of check matrix.
Variable node calculator 204 at Figure 14 pIn, might calculate 5 message simultaneously.With herein the reason Fig. 8 in check matrix have weight be respectively 5,3,2 and 1 15,45,29 and 1 row.Therefore, the variable node calculator 204 1To 204 90In 15 variable node calculators have the circuit structure identical with the circuit structure of Figure 14.Remaining 45,29 and 1 variable node calculator has the circuit that can be similar to Figure 14 and the circuit structure that calculates 3,2 and 1 message simultaneously.
Although do not have shown in the decoding device in Figure 12 A to 12C yet,, similar to the situation of Fig. 9, in the final stage of decoding, carry out the calculating of formula (5) rather than the variable node of formula (1) and calculate, and result of calculation is exported as final decoded result.
According to the decoding device of Figure 12 A to 12C, might calculate all message simultaneously at a clock corresponding to 269 ribs.
When decoding by the decoding device of reusing Figure 12 A to 12C, the check node calculation that hockets and variable node calculate, and can once decode with two clocks.Therefore, for example, in order to carry out 50 decodings, be 90 sign indicating number when being the reception data of a frame when receiving code length wherein, decoding device need like this, can use and the approximately uniform frequency of operation of receive frequency with 2 * 50=100 clock operation.Generally speaking and since the code length of LDPC sign indicating number up to thousands of to tens thousand of, therefore,, then can enlarge markedly the decoding number, and can expect to improve error-correcting performance if use the decoding device of Figure 12 A to 12C.
Yet, in the decoding device of Figure 12 A to 12C, because the parallel message calculating of carrying out corresponding to all ribs of Tanner figure, so circuit scale and the proportional increase of code length.When the decoding device of Figure 12 A to 12C was configured to be used to have the equipment of the LDPC sign indicating number decoding particular verified matrix, special code length and specific coding rate, this decoding device was difficult to have the decoding of LDPC sign indicating number another check matrix, another code length and another encoding rate.That is to say that different with the decoding device of Fig. 9, the decoding device of Figure 12 A to 12C is difficult to deal with the decoding of various sign indicating numbers, also is so even only change control signal, and, to the dependence height of sign indicating number.
Except the decoding device of Fig. 9 and Figure 12 A to 12C, for example, at E.Yeo, P Pakzad, B.Nikolic and V.Anantharam " VLSI Architectures for Iterative Decoders inMagnetic Recording Channels (the VLSI framework that is used for the iterative decoder of magnetic recording channel) " (IEEE Transactions on Magnetics, Vol.37, No.2, March calendar year 2001) in, described that to be used for 4 message rather than 1 message or entire message be the implementation method that unit calculates message simultaneously.In this case, usually, there is such problem: read when being difficult for avoiding or write to the different address of memory the time from the different address of memory, and, memory access control difficulty.
In addition, also proposed by approaching the method that sum-product algorithm is realized.Yet, in the method, cause mis-behave to occur.For sum-product algorithm is realized as hardware, as mentioned above, there is following method: the method for carrying out calculating (check node calculation and position node calculate) successively continuously corresponding to the message of rib; Parallel (parallel fully) carries out the Calculation Method of all message; And with some units of being calculated as walk abreast (walking abreast) carries out the message Calculation Method.
Yet, in the message Calculation Method of carrying out successively, need high frequency of operation corresponding to rib.Correspondingly, as the method that is used to increase throughput, it is known being used for coming the method for advancing equipment with pipeline (pipeline) structure.In this case, circuit scale, specifically, memory (capacity) increases.
Carry out in the Calculation Method of all message parallel, the circuit scale that is used for logic increases, and to the dependence height of sign indicating number.
Carry out in the Calculation Method of message memory access control difficulty walking abreast with some units of being calculated as.
Summary of the invention
Consider such situation and formed the present invention.The objective of the invention is frequency of operation is limited in the enough feasible scope, restriction simultaneously is used for the circuit scale of logic and memory, and control storage visit easily.
When following matrix when the submatrix, utilize the combination of a plurality of submatrixs to represent the check matrix of LDPC sign indicating number, described matrix is: (the unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein unit matrix or accurate unit matrix are recycled displacement; And matrix, its be the two or more of unit matrix, accurate unit matrix and shift matrix and; Or (0 matrix of P * P), decoding device of the present invention comprises: first calculating unit is used for being used for simultaneously p check node calculation with the decoding of LDPC sign indicating number; First rearranges parts, is used to rearrange as the result of a described P check node calculation and the message that obtains; First storage component is used to store the result of the described P of the conduct that a rearranges check node calculation and the message data corresponding to P bar rib of the message that obtains; Second calculating unit is used for the message data that rearranges that provides from described first storage component is used for p variable node of LDPC sign indicating number decoding calculated simultaneously; Second rearranges parts, is used to rearrange the message that obtains as described P variable node result calculated; And second storage component, be used to store the described P of the conduct that rearranges a variable node result calculated and the message data that obtains, and be used for this message data is offered described first calculating unit corresponding to P bar rib.
First calculating unit can have p the check node calculation device that is used to carry out check node calculation, and second calculating unit can have p the variable node calculator that is used to carry out variable node calculating.
Second storage component can be stored in during the check node calculation with on the direction of being expert at 1 filling (pack) of check matrix the more tight message data that reads of such mode corresponding to rib.
First storage component can be stored in the variable node computing interval 1 filling of check matrix got the message data corresponding to rib that more tight such mode reads on the direction of row.
When with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent weight in the submatrix of check matrix be 2 or during bigger submatrix, first and second memory units can be in the message data of identical address place storage corresponding to p bar rib, wherein, to belong to weight be 1 unit matrix, accurate unit matrix or shift matrix to described p bar rib.
Second and first storage component can comprise line number/P FIFO and columns/P FIFO, and described line number/P FIFO and columns/P FIFO have a plurality of words corresponding to the capable weight and the row weight of check matrix separately respectively.
First and second memory units can comprise RAM (random access memory), and this RAM can be according to the message data filling being got more closely such mode according to reading sequential storage message data, and call over this message data according to the memory location.
Decoding device can also comprise reception information stores parts, the information that is used to store the LDPC sign indicating number that is received, and read p described received information simultaneously.
Receive the information stores parts and can store received information in such a manner, this mode is: can read received information according to calculate necessary order for variable node.
First and second rearrange parts can comprise barrel shifter (barrel shifter).
First calculating unit and second calculating unit can be determined the message corresponding to p bar rib.
The invention provides a kind of decoding device that is used for the decoding of LDPC (low-density checksum) sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: (the unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps (0 matrix of P * P), described decoding device comprises: first calculating unit is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding; First rearranges parts, is used to rearrange the result of the described part calculated as P variable node and a described P check node calculation and the data that obtain; First storage component is used to store the result of the described part of calculating as P variable node that rearranges and a described P check node calculation and the data corresponding to P bar rib that obtain; Second calculating unit is used for the data that provide from described first storage component that rearrange are used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously; Second rearranges parts, is used to rearrange the result of described other parts of calculating as P variable node and the data that obtain; Second storage component is used to store the result of described other parts calculated as P variable node that rearrange and the data corresponding to P bar rib that obtain, and is used for these data are offered described first calculating unit; With the 3rd calculating unit, be used for based on the final result of check node calculation and export final decoded result.
First calculating unit can comprise and be used to carry out described part that p variable node calculate and p calculator of a described p check node calculation, and second calculating unit can comprise p calculator of described other parts that are used to carry out described p variable node calculating.
First storage component can be stored described data corresponding to rib according to the more tight such mode of on line direction 1 filling of check matrix being got, and wherein, reads described data when carrying out described other parts of described p variable node calculating.
First storage component can be two single port RAM (random access memory).
Described two single port RAM can alternately store the described data from described first calculating unit with the unit corresponding to the capable rib of the P of described check matrix.
Each can read the described data that are stored in the identical address place described two single port RAM (random access memory).
When with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent weight in the submatrix of check matrix be 2 or during bigger submatrix, first storage component can be in the described data of identical address place storage corresponding to p bar rib, wherein, to belong to weight be 1 unit matrix, accurate unit matrix or shift matrix to described p bar rib.
Decoding device can also comprise reception information stores parts, the information that is used to store the LDPC sign indicating number that is received, and read p described received information simultaneously.
Receive the information stores parts and can store received information in such a manner, this mode is: can read received information according to the necessary order of calculating for described p variable node of described other parts.
First and second rearrange parts can comprise barrel shifter.
The invention provides a kind of decoding device that is used for the decoding of LDPC (low-density checksum) sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: (the unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps (0 matrix of P * P), described decoding device comprises: first calculating unit is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding; First rearranges parts, is used to rearrange as the result of the described part of P check node calculation and the data that obtain; First storage component, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib; Second calculating unit is used for the data that provide from described first storage component that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding; Second rearranges parts, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain; Second storage component, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculating unit; With the 3rd calculating unit, be used for based on the final result of check node calculation and export final decoded result.
First calculating unit can comprise p calculator of the described part that is used to carry out a described p check node calculation, and second calculating unit can comprise described other parts and p p the calculator that variable node calculates that is used to carry out a described p check node calculation.
Second storage component can be stored the described data corresponding to rib, wherein, when described other parts of carrying out a described p check node calculation and p variable node calculated, such mode read described data according to getting 1 filling of check matrix more closely on column direction.
Second storage component can be two single port RAM (random access memory).
Described two single port RAM can alternately store the described data from described second calculating unit with the unit corresponding to the P bar rib of described check matrix.
Each can read second data that are stored in the identical address place described two single port RAM (random access memory).
When with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent weight in the submatrix of check matrix be 2 or during bigger submatrix, second storage component can be in the described data of identical address place storage corresponding to p bar rib, wherein, to belong to weight be 1 unit matrix, accurate unit matrix or shift matrix to described p bar rib.
Decoding device can also comprise reception information stores parts, is used to store the LDPC sign indicating number information that is received, and reads p reception information simultaneously.
In decoding device according to the present invention, receive the information stores parts and can store received information in such a manner, this mode is: can read received information according to calculating necessary order for other parts of a described p check node calculation and p variable node.
First and second rearrange parts can comprise barrel shifter.
The invention provides a kind of decoding device that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described decoding device comprises: first calculating unit is used for being used for simultaneously P check node calculation with described LDPC sign indicating number decoding; First storage component is used to store as the result of a described P check node calculation and the message data corresponding to P bar rib that obtains; First rearranges parts, is used to rearrange the message data that receives from first storage component; Second calculating unit is used for being used for simultaneously P variable node of described LDPC sign indicating number decoding calculated from first message data that rearranges the parts reception; Second storage component is used to store the message data that receives from second calculating unit, and is used for that this message data is offered second and rearranges parts; Second rearranges parts, is used to rearrange the message data that receives from second storage component, and the message data that rearranges is offered described first calculating unit; With the 3rd calculating unit, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of decoding device that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described decoding device comprises: first calculating unit is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding; First storage component is used to store the result of the described part calculated as P variable node and a described P check node calculation and the data corresponding to P bar rib that obtain; First rearranges parts, is used to rearrange the data that receive from first storage component; Second calculating unit is used for be used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously from first data that rearrange the parts reception; Second storage component is used to store the data that receive from second calculating unit, and is used for that these data are offered second and rearranges parts; Second rearranges parts, is used to rearrange the data that receive from second storage component, and the message data that rearranges is offered described first calculating unit; With the 3rd calculating unit, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of decoding device that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described decoding device comprises: first calculating unit is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding; First storage component is used to store as the result of the described part of P check node calculation and the data corresponding to P bar rib that obtain; First rearranges parts, is used to rearrange the data that receive from first storage component; Second calculating unit is used for carrying out other parts of a described P check node calculation simultaneously from first data that rearrange the parts reception and being used for P variable node of described LDPC sign indicating number decoding calculated; Second storage component is used to store the data that receive from second calculating unit, and is used for that these data are offered second and rearranges parts; Second rearranges parts, is used to rearrange the data that receive from second storage component, and the message data that rearranges is offered described first calculating unit; With the 3rd calculating unit, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding; First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain; First storing step, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib; Second calculation procedure is used for the data that provide from described first storing step that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding; Second rearranges step, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain; Second storing step, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculation procedure; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding; First rearranges step, is used to rearrange the result of the described part calculated as P variable node and a described P check node calculation and the data that obtain; First storing step is used to store the result of the described part of calculating as P variable node that rearranges and a described P check node calculation and the data corresponding to P bar rib that obtain; Second calculation procedure is used for the data that provide from described first storing step that rearrange are used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously; Second rearranges step, is used to rearrange the result of described other parts of calculating as P variable node and the data that obtain; With second storing step, be used to store the result of described other parts calculated as P variable node that rearrange and the data that obtain, and be used for these data are offered described first calculation procedure corresponding to P bar rib; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding; First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain; First storing step, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib; Second calculation procedure is used for the data that provide from described first storing step that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding; Second rearranges step, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain; Second storing step, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculation procedure; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for being used for simultaneously P check node calculation with described LDPC sign indicating number decoding; First storing step is used to store as the result of a described P check node calculation and the message data corresponding to P bar rib that obtains; First rearranges step, is used to rearrange the message data from the output of first storing step; Second calculation procedure is used for being used for simultaneously P variable node of described LDPC sign indicating number decoding calculated from first message data that rearranges step output; Second storing step is used to store from the message data of second calculation procedure output, and is used for that this message data is offered second and rearranges step; Second rearranges step, is used to rearrange the message data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding; First storing step is used to store the result of the described part calculated as P variable node and a described P check node calculation and the data corresponding to P bar rib that obtain; First rearranges step, is used to rearrange the data from the output of first storing step; Second calculation procedure is used for be used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously from first data that rearrange step output; Second storing step is used to store from the data of second calculation procedure output, and is used for that these data are offered second and rearranges step; Second rearranges step, is used to rearrange the data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
The invention provides a kind of coding/decoding method that is used for the decoding of low-density checksum LDPC sign indicating number, when using following matrix as submatrix, represent the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P 0 matrix, described coding/decoding method comprises: first calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding; First storing step is used to store as the result of the described part of P check node calculation and the data corresponding to P bar rib that obtain; First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain; Second calculation procedure is used for carrying out other parts of a described P check node calculation simultaneously from first data that rearrange step output and being used for P variable node of described LDPC sign indicating number decoding calculated; Second storing step is used to store from the data of second calculation procedure output, and is used for that these data are offered second and rearranges step; Second rearranges step, is used to rearrange the data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With the 3rd calculation procedure, be used for based on the final result of check node calculation and export final decoded result.
In the present invention, when following matrix when the submatrix, utilize the combination of a plurality of submatrixs to represent the check matrix of LDPC sign indicating number, wherein said matrix is: (the unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein unit matrix or accurate unit matrix are recycled displacement; And matrix, its be the two or more of unit matrix, accurate unit matrix and shift matrix and; Or (0 matrix of P * P) carries out p check node calculation that is used for the decoding of LDPC sign indicating number simultaneously, and carries out p simultaneously and be used for the variable node of LDPC sign indicating number decoding is calculated.
Description of drawings
Fig. 1 illustrates the check matrix H of LDPC sign indicating number.
Fig. 2 is that diagram is used for the flow chart with the process of LDPC sign indicating number decoding.
Fig. 3 illustrates message flow.
Fig. 4 illustrates the check matrix example of LDPC sign indicating number.
Fig. 5 illustrates the Tanner figure of check matrix.
Fig. 6 illustrates variable node.
Fig. 7 illustrates check-node.
Fig. 8 illustrates the check matrix example of LDPC sign indicating number.
Fig. 9 is the block diagram that the topology example that is used for carrying out successively the LDPC sign indicating number decoding device that node calculates is shown.
Figure 10 is the block diagram that the topology example of the check node calculation device that is used for calculating successively message is shown.
Figure 11 is the block diagram that the topology example of the variable node calculator that is used for calculating successively message is shown.
Figure 12 A is the block diagram that the topology example that is used for carrying out simultaneously the LDPC sign indicating number decoding device that all nodes calculate is shown.
Figure 12 B is the block diagram that the topology example that is used for carrying out simultaneously the LDPC sign indicating number decoding device that all nodes calculate is shown.
Figure 12 C is the block diagram that the topology example that is used for carrying out simultaneously the LDPC sign indicating number decoding device that all nodes calculate is shown.
Figure 13 is the block diagram that the topology example of the check node calculation device that is used for calculating simultaneously message is shown.
Figure 14 is the block diagram that the topology example of the variable node calculator that is used for calculating simultaneously message is shown.
Figure 15 illustrates the matrix that is divided into Unit 5 * 5.
Figure 16 A is the block diagram that the topology example of using decoding device embodiment of the present invention is shown.
Figure 16 B is the block diagram that the topology example of using decoding device embodiment of the present invention is shown.
Figure 16 C is the block diagram that the topology example of using decoding device embodiment of the present invention is shown.
Figure 17 is the flow chart of decode procedure of the decoding device of pictorial image 16A to 16C.
Figure 18 is the block diagram that the topology example of using decoding device embodiment of the present invention is shown.
Figure 19 is the block diagram that the topology example of check node calculation device is shown.
Figure 20 is the block diagram that the topology example of variable node calculator is shown.
Figure 21 is the block diagram that the calculator structure example of Figure 18 is shown.
Figure 22 is the block diagram that the calculator structure example of Figure 18 is shown.
Figure 23 is the block diagram of memory construction example that is used to store decoding intermediate object program that Figure 18 is shown.
Figure 24 is the sequential chart of RAM operation that is used to store decoding intermediate object program of diagram Figure 18.
Figure 25 is the flow chart of decode procedure of the decoding device of diagram Figure 18.
Figure 26 is the block diagram that the topology example of using decoding device embodiment of the present invention is shown.
Figure 27 is the block diagram that the topology example of check node calculation device is shown.
Figure 28 is the block diagram that the topology example of variable node calculator is shown.
Figure 29 is the block diagram of topology example that the calculator of Figure 26 is shown.
Figure 30 is the block diagram of topology example that the calculator of Figure 26 is shown.
Figure 31 is the block diagram of memory construction example that is used to store decoding intermediate object program that Figure 26 is shown.
Figure 32 is the sequential chart of RAM operation that is used to store decoding intermediate object program of diagram Figure 31.
Figure 33 is the flow chart of decode procedure of the decoding device of diagram Figure 26.
Figure 34 is the block diagram that the topology example of using computer-implemented example of the present invention is shown.
Embodiment
Below, will describe in detail with reference to the accompanying drawings and use specific embodiment of the present invention.
Figure 15 shows the example of 30 * 9 check matrixes that are divided into 5 * 5 matrix units.The check matrix of Figure 15 is identical with the check matrix shown in Fig. 8.
In Figure 15, represent check matrix: 5 * 5 unit matrixs with following combinations of matrices; With 0 matrix (hereinafter, being called " accurate unit matrix " in suitable place) that has replaced the element-one or more 1 of unit matrix; Unit matrix or accurate unit matrix are recycled the matrix (hereinafter, being called " shift matrix " in suitable place) of displacement; Two or more (a plurality of) of unit matrix, accurate unit matrix and shift matrix and (hereinafter, being called " and matrix ") in suitable place; With 5 * 50 matrix.Having 2/3 encoding rate and value by the LDPC sign indicating number of the check matrix of Figure 15 representative is 9 code length.
We can say that the check matrix of Figure 15 is formed by 5 * 5 matrixes, accurate unit matrix, shift matrix and matrix and 0 matrix.Therefore, hereinafter, will call " submatrix " to these 5 * 5 matrixes that form check matrix in suitable place.
Figure 16 A to 16C shows that be used for will be by the topology example of the decoding device embodiment of the LDPC sign indicating number decoding of the check matrix of Figure 15 representative.Figure 16 A to 16C is the block diagram that the topology example of this decoding device embodiment is shown.Figure 16 A shows the general structure of decoding device.Figure 16 B show Figure 16 A decoding device by dotted line B around figure in the detailed structure of left part.Figure 16 C show Figure 16 A decoding device by dotted line C around figure in the detailed structure of right part.
The decoding device 300 of Figure 16 A to 16C comprises: switch 310 and 315, by 6 FIFO 311 1To 311 6The rib data storage of forming 311, selector 312, by 5 check node calculation devices 313 1To 313 5The check node calculation device formed 313, two cyclic shift circuits 314 and 320, by 18 FIFO316 1To 316 18 Rib data storage 316, selector 317, the reception data storage 318 that is used to store received information, variable node calculator 319 and the control assembly 321 formed.
Before each parts of describing decoding device 300 in detail, at first will describe the method for storage in rib data storage 311 and 316.
Rib data storage 311 comprises 6 FIFO 311 1To 311 6, this number is that line number order 30 with check matrix is divided by line number order 5 gained.FIFO 311 y(y=1,2 ..., 6) form by this way: can read or write the message corresponding to 5 ribs simultaneously, wherein, 5 is the number of the row and column of submatrix.Its length (level number) is 9, and this is the maximum number (Hamming weight) of 1 on the line direction of check matrix.
At FIFO 311 1In, with for each row, (on column direction) gets more closely such mode (to ignore 0 mode) with 1 filling and stores data corresponding to 1 the position of walking to the 5th row from the 1st of the check matrix of Figure 15 in the horizontal direction.That is to say, if the capable i tabulation of j is shown (j, i), then at FIFO 311 1The 1st element (first order) in, storage is corresponding to the data from 1 position of 5 * 5 unit matrixs of (1,1) to (5,5) of check matrix.In the 2nd element, storage is corresponding to the data from 1 position of the shift matrix of (1,21) to (5,25) of check matrix (circulate to the right move 3 shift matrix with 5 * 5 unit matrixs), and this shift matrix is the submatrix of check matrix.In addition, in the 3rd to the 8th element, similarly, store data in such a manner, so that corresponding to the submatrix of check matrix.In the 9th element, storage corresponding to from the shift matrix of (1,86) to (5,90) of check matrix (with 0 replaced first row in 5 * 5 unit matrixs 1, and with circulate left mobile 1 shift matrix of this unit matrix) the data of 1 position.Here, from (1,86) of check matrix to the shift matrix of (5,90), owing to do not have 1 in first row, therefore only to FIFO 311 1First the row, element number becomes 8, and for remaining the row, element number becomes 9.
At FIFO 311 2In, storage is corresponding to the data of 1 the position of walking to the 10th row from the 6th of the check matrix of Figure 15.That is to say, at FIFO 311 2The 1st element in, storage corresponding to form check matrix from (6,1) to (10,5) and matrix (should and matrix be first shift matrix and second shift matrix and, wherein, in first shift matrix, 5 * 5 unit matrixs are moved 1 by circulation to the right, in second shift matrix, 5 * 5 unit matrixs are moved 2 by circulation to the right) the data of 1 position of first shift matrix.In second element, storage is corresponding to the data of 1 position of from (6,1) to (10,5) and second shift matrix matrix that forms check matrix.
More particularly, for weight is 2 or bigger submatrix, when with the two or more of following matrix and form when representing submatrix, will be that the data (corresponding to the message of the rib that belongs to unit matrix and matrix or shift matrix) of 1 position of 1 unit matrix, accurate unit matrix or shift matrix are stored in identical address (FIFO 311 corresponding to weight 1To 311 6In identical FIFO) locate, wherein, described matrix is: weight is the 1 (unit matrix of P * P); Accurate unit matrix wherein, has replaced as one or more 1 of the element of unit matrix with 0; And shift matrix, wherein, unit matrix or accurate unit matrix are recycled displacement.
Subsequently, for the 3rd to the 9th element, store data by this way, so that corresponding to check matrix.For all row, FIFO 311 2Element number be 9.
Similarly, for FIFO 311 3To 311 6, store data by this way, so that corresponding to check matrix, and FIFO 311 3To 311 6Each length be 9.
Be used to store rib memory of data 316 by 18 FIFO 316 1To 316 18Constitute, this number is line number order 5 gained of the line number order 90 of check matrix divided by submatrix.Constitute FIFO 316 by this way x(x=1,2 ..., 18), this mode is: can read or write the message corresponding to 5 ribs simultaneously, this number is the line number order and the column number of submatrix.
At FIFO 316 1In, with for each row, in vertical direction (at line direction) go up 1 filling got the data that more closely such mode (to ignore 0 mode) is stored check matrix corresponding to Figure 15 1 position from the 1st row to the 5th row.That is to say, at FIFO 316 1First element (first order) in, storage is corresponding to the data of 1 position of 5 * 5 unit matrixs of check matrix from (1,1) to (5,5).In second element, storage is corresponding to forming (6 of check matrix, 1) to (10,5) and matrix (should and matrix be first shift matrix and second shift matrix and, wherein, in first shift matrix, 5 * 5 unit matrixs are moved 1 by circulation to the right, in second shift matrix, 5 * 5 unit matrixs are moved 2 by circulation to the right) the data of 1 position of first shift matrix.In the 3rd element, storage is corresponding to the data of 1 position of (6,1) to (10,5) and second shift matrix matrix that forms check matrix.
More particularly, for weight is 2 or bigger submatrix, when with the two or more of following matrix and form when representing submatrix, will be that the data (corresponding to the message of the rib that belongs to unit matrix, accurate unit matrix or shift matrix) of 1 position of 1 unit matrix, accurate unit matrix or shift matrix are stored in identical address (FIFO 316 corresponding to weight 1To 316 18In identical FIFO) locate, wherein, described matrix is: weight is the 1 (unit matrix of P * P); Accurate unit matrix, wherein, with 0 element 1 that has replaced unit matrix; And shift matrix, wherein, unit matrix or accurate unit matrix are recycled displacement.
Subsequently, for the 4th and the 5th element, store data equally by this way, so that corresponding to check matrix.FIFO 316 1Element number (level number) be 5, this number is the maximum number (Hamming weight) of check matrix 1 on from the 1st row to the line direction of the 5th row.
In addition, for FIFO 316 2With 316 3, similarly, store data by this way, so that corresponding to check matrix, and each of its length (number of level) is 5.In addition, for FIFO316 4To 316 12, similarly, store data by this way, so that corresponding to check matrix, and each of its length is 3.In addition, for FIFO 316 13To 316 18, similarly, store data by this way, so that corresponding to check matrix, and each of its length is 2.Yet, because FIFO 316 18The 1st element corresponding to (1,86) of check matrix to (5,90), and in the 5th row ((1,90) of check matrix is to (5,90)), do not have 1, therefore, do not store data.
Now, with the description that provides in detail below the operation of each parts of the decoding device 300 of Figure 16 A to 16C.D319 offers switch 310 from cyclic shift circuits 320 with 5 message (data).In addition, control signal D320 is offered switch 310 from control assembly 321, wherein, control signal D320 indication belongs to which information (matrix data) of check matrix about message (data).Based on control signal D320, from FIFO 311 1To 311 6In select to be used to store the FIFO of 5 message (data) D319, and with these 5 message data D319 in order collective be stored among the selected FIFO.
Rib data storage 311 comprises 6 FIFO 311 1To 311 6 FIFO 311 at rib data storage 311 1To 311 6In, from switch 310 in order collective provide 5 message D319, and FIFO311 1To 311 6(simultaneously) collective stores this 5 message D319 in order.In addition, when wanting reading of data, rib data storage 311 is from FIFO 311 1In read these 5 message (data) D311 in turn 1, and they are offered the selector 312 of back level.From FIFO 311 1Read message D311 1After finishing, rib data storage 311 is also respectively from FIFO 311 1To 311 6Read message D311 in turn 1To D311 6, and they are offered selector 312.
To select signal D321 to offer selector 312 from control assembly 321, and, also with 5 message (data) D311 1To D311 6Offer selector 312 from rib data storage 311, wherein, select signal D321 indication from FIFO 311 1To 311 6The FIFO (the current FIFO that therefrom reads data) of message data is therefrom read in middle selection.Selector 312 is according to selection signal D321 and from FIFO 311 1To 311 6The current FIFO that therefrom reads data of middle selection, and will offer check node calculation parts 313 as message D312 from 5 message datas that selected FIFO provides.
Check node calculation parts 313 comprise 5 check node calculation devices 313 1To 313 55 message D312 are offered check node calculation parts 313 by selector 312, and message D312 is offered check node calculation device 313 separately 1To 313 5Each.In addition, control signal D322 is offered check node calculation device 313 from control assembly 321, and control signal D322 is offered check node calculation device 313 1To 313 5Check node calculation device 313 1To 313 5By using message D312 to carry out calculating simultaneously according to formula (7), and, determine message D313 corresponding to 5 ribs as result of calculation.Check node calculation parts 313 are by check node calculation device 313 1To 313 5To offer cyclic shift circuits 314 as 5 message D313 that result of calculation obtains.
Offer the control signal D106 of the control signal D322 of check node calculation device 313 from control assembly 321 corresponding to Figure 10.Check node calculation parts 313 1To 313 5Disposed according to the mode identical separately with the check node calculation device 101 shown in Figure 10.
5 message D313 that will calculate in check node calculation parts 313 offer cyclic shift circuits 314.In addition, control signal D323 is offered cyclic shift circuits 314 from control assembly 321, wherein, control signal D323 indication is about the information (matrix data) of such fact, and this fact is: connect rib corresponding to message D313 as the result of the unit matrix cyclic shift how many times that for example will form the check matrix basis.Cyclic shift circuits 314 with 5 message D313 cyclic shifts, and offers switch 315 with the result as message D314 according to control signal D323.
Control signal D324 is offered switch 315, and message D314 offered switch 315 from cyclic shift circuits 314, wherein, the information of which row of check matrix is provided about 5 message (data) D314 that provides from cyclic shift circuits 314 in control signal D324 indication.Based on control signal D324, switch 315 is from FIFO 316 1To 316 18The middle FIFO that selects to be used for storing message D314, and collective provides this 5 message D314 in order.
Rib data storage 316 comprises 18 FIFO 316 1To 316 18With 5 message D314 in order (simultaneously) offer the FIFO 316 of rib data storage 316 from switch 315 collectives 1To 316 18, and FIFO 316 1To 316 18Collective stores this 5 message D314 in order.In addition, when wanting reading of data, be used to store rib memory of data 316 from FIFO 316 1In read 5 message D315 in turn 1, and they are offered the selector 317 of back level.From FIFO 316 1After reading of data is finished, be used to store rib memory of data 316 also from FIFO 316 1To 316 18Read message D315 in turn 2To D313 18, and they are offered selector 317.
To select signal D325 to offer selector 317 from control assembly 321, and, also with message data D315 1To D313 18Offer selector 317 from rib data storage 316, wherein, select signal D325 indication from FIFO316 1To 316 18The middle FIFO (the current FIFO that therefrom reads data) that selects to be used to read message data.Based on selecting signal D325, selector 317 is from FIFO 316 1To 316 18In select the current FIFO that therefrom reads data, and 5 message datas that will provide from selected FIFO offer variable node calculating unit 319 and the above-mentioned piece (not shown) that is used to carry out the calculating of formula (5) as message D316.
On the other hand, the memory 318 that is used for received data from the information calculations that receives by communication channel reception LLR (log-likelihood ratio).5 reception LLR that calculated are offered variable node calculating unit 319 and the piece (not shown) that is used for the calculating of receiving type (5) as received data D317 (LDPC sign indicating number) collective (simultaneously).The memory 318 that is used for received data calculates necessary order according to the variable node for variable node calculating unit 319 and reads received data D317.
Variable node calculating unit 319 comprises 5 variable node calculators 319 1To 319 55 message D316 are offered variable node calculating unit 319 by selector 317, and message D316 is offered variable node calculator 319 separately 1To 319 5Each.In addition, 5 received data D317 are offered variable node calculating unit 319 from the memory 318 that is used for received data, and received data D317 is offered variable node calculator 319 separately 1To 319 5Each.In addition, control signal D326 is offered variable node calculating unit 319 from control assembly 321, and control signal D326 is offered variable node calculator 3191 to 3195.
Variable node calculator 319 1To 319 5By using message D316 and received data D317 to carry out calculating according to formula (1), and, determine message D318 corresponding to 5 ribs as result of calculation.Variable node calculating unit 319 will be as variable node calculator 319 1To 319 55 message D318 obtaining of result offer cyclic shift circuits 320.
Here, offer the control signal D107 of the control signal D326 of variable node calculating unit 319 corresponding to Figure 11 from control assembly 521, and, variable node calculator 319 1To 319 5Disposed according to the mode identical separately with the variable node calculator 103 of Figure 11.
5 message D318 are offered cyclic shift circuits 320 from variable node calculating unit 319.In addition, control signal D327 is offered cyclic shift circuits 320 from control assembly 321, this control signal D327 indication is about the information (matrix data) of such fact, and this fact is: connect rib corresponding to message D318 as the result of the unit matrix cyclic shift how many times that for example will form the check matrix basis.Based on control signal D327, cyclic shift circuits 320 rearranges the cyclic shift of message D327, and the result is offered switch 310 as message D319.
Control assembly 321 will select signal D320 to offer switch 320, and will select signal D321 to offer selector 312, so that control them respectively.Control assembly 321 offers check node calculation parts 313 with control signal D322, and control signal D323 is offered cyclic shift circuits 314, and control signal D324 is offered switch 315, so that control them respectively.In addition, control assembly 321 will select signal D325 to offer selector 317, and control signal D326 is offered variable node calculating unit 319, and control signal D327 is offered cyclic shift circuits 320, so that control them respectively.
As result, can carry out the decoding of a LDPC sign indicating number with the aforesaid operations circulation primary.After the decoding device of Figure 16 A to 16C had been decoded the LDPC sign indicating number pre-determined number, decoding device 300 was determined final decoded result (not shown) according to formula (5), and exports it.
For the part that lacks rib data (corresponding to the message of rib), in being stored in memory during (when storage in rib data storage 311 and 316 time), not storing message.In node computing interval (during the check node calculation at check node calculation parts 313 places and), do not calculate in variable node computing interval at variable node calculating unit 319 places.
Figure 17 is the flow chart of decode procedure of the decoding device 300 of pictorial image 16A to 16C.When the storage that will decode that is received when being used for the memory 318 of received data, begin this process.
In step S31, variable node calculating unit 319 carries out variable node and calculates.
More particularly, with 5 message D316 (message u j) offer variable node calculating unit 319 by selector 317.That is to say that rib data storage 316 is from FIFO 316 1In read in 5 message D316 of step S39 (will describe afterwards) storage in turn 1, and, subsequently, also from FIFO 316 2To 316 18Read message D316 in turn 2To D316 18, and they are offered selector 317.
To select signal D307 to offer selector 317, and wherein, select signal D307 indication from FIFO 316 from control assembly 321 1To 316 18The FIFO (the current FIFO that therefrom reads data) of message (data) will be therefrom read in middle selection, in addition, and with message data D316 1To D316 18Offer selector 317 from rib data storage 316.Based on selecting signal D307, selector 317 is from FIFO 316 1To 316 18The current FIFO that therefrom reads data of middle selection, and will offer variable node calculating unit 319 as message D316 from 5 message datas that selected FIFO provides.
When the received data D309 that provides from memory 306 not being carried out check node calculation and message D304 when not being stored in the rib data storage 316 as yet, variable node calculating unit 319 is with message u jBe set to be used for the initial value that variable node calculates.
With 5 received data D309 (reception value u of institute 0i) offer variable node calculating unit 319 from the memory 318 that is used for received data, and, received data D309 is offered variable node calculator 319 separately 1To 319 5Each.In addition, control signal D315 is offered variable node calculating unit 319 from control assembly 321, and control signal D315 is offered variable node calculator 319 1To 319 5
Based on control signal D315, variable node calculator 319 1To 319 5By using message D316 and received data D309 to carry out calculating simultaneously, and determine 5 message D319 as result of calculation according to formula (1).
That is to say that the control signal D315 that is offered variable node calculating unit 319 by control assembly 321 is corresponding to the control signal D107 that describes with reference to above-mentioned Figure 11.Variable node calculator 319 1To 319 5Each read an essential message D314 (D316) by selector 317 from rib data storage 316 according to control signal D309, and, 5 received data D309 that provide from the memory 318 that is used for received data also are provided respectively, carry out variable node and calculate, and determine 5 message D319 simultaneously as result of calculation.
After the processing of step S31, this process proceeds to step S32, and at this step place, variable node calculating unit 319 will be as variable node calculator 319 1To 319 5Variable node result of calculation and 5 message D319 (message v obtaining i) offer cyclic shift circuits 320.Then, this process proceeds to step S33.
At step S33,5 message D318 cyclic shifts (rearranging) that cyclic shift circuits 320 will provide from variable node calculating unit 319.
More particularly, message D318 is offered cyclic shift circuits 320 from variable node calculating unit 319.In addition, control signal D327 is offered cyclic shift circuits 320 from control assembly 321, wherein, control signal D327 indication is about the information (matrix data) of such fact, and this fact is: as the unit matrix cyclic shift that for example will form the check matrix basis result of how many times connect the rib that connects corresponding to message D318.Based on control signal D327, cyclic shift circuits 320 is 5 message D327 cyclic shifts, and the result is offered switch 310 as message D319.
After the processing of step S33, this process proceeds to step S34, and at this step place, switch 310 will offer rib data storage 311 from 5 message D319 that cyclic shift circuits 320 provides.
More particularly, message (data) 304 are offered switch 310 from cyclic shift circuits 320, in addition, control signal D312 is offered switch 310, wherein, control signal D312 indication belongs to which information of check matrix about message D304.Based on control signal D312, switch 310 is from FIFO300 1To 300 6The middle selection is used for the FIFO of storing message D304, and in turn 5 message data D304 collectives is stored among the selected FIFO.
Then, the FIFO 300 of rib data storage 311 1To 300 185 message data D304 that provide from switch 310 are provided in collective in order.
After the processing of step S34, this process proceeds to step S35, and at this step place, control assembly 321 determines whether variable node calculating unit 319 has calculated the message of the total number of rib.When the message of the total number of determining not calculate rib, this process is returned step S31, and carries out above-mentioned processing once more.
On the other hand, when determining that at step S35 variable node calculating unit 319 has calculated the message of total number of rib, this process proceeds to step S36, and at this step place, check node calculation parts 313 carry out check node calculation.
More particularly, 5 message D302 are offered check node calculation parts 313 by selector 312.That is to say that rib data storage 311 is from FIFO 311 1Read in 5 message D311 of step S34 storage in turn 1(message v i), subsequently, also from FIFO 311 2To 311 6Read message data D311 in turn 2To D311 6, and it is offered selector 312.
To select signal D321 to offer selector 312 from control assembly 321, this control signal D321 indicates from FIFO 311 1To 311 6The middle FIFO (the current FIFO that therefrom reads data) that selects to be used to read message data, in addition, with message data D311 1To D311 6Offer selector 312 from rib data storage 311.Based on selecting signal D321, selector 301 is selected the current FIFO that therefrom reads data, and will offer check node calculation parts 313 as message D311 from 5 message datas that selected FIFO provides.
In addition, control signal D322 is offered check node calculation parts 313 from control assembly 321.Based on control signal D322, the check node calculation device 313 of check node calculation parts 313 1To 313 5Carry out check node calculation simultaneously according to formula (7) by using message D302, and, determine 5 message D303 (message u as result of calculation j).
More particularly, offer the control signal D322 of check node calculation parts 313 corresponding to the control signal D106 among above-mentioned Figure 10 by control assembly 321.Based on control signal D322, when check node calculation device 313 1To 313 5By selector 312 when rib data storage 311 reads an essential message D311 (D312), they each all carry out check node calculation, and determine 5 message D313 simultaneously as result calculated.
After the processing of step S37, this process proceeds to step S38, and at this step place, check node calculation parts 313 will output to cyclic shift circuits 314 as 5 message D313 that the check node calculation result obtains.Then, this process proceeds to step S38.
At step S38,5 message D313 cyclic shifts that cyclic shift circuits 314 will provide from check node calculation parts 313.
More particularly, message D313 is offered cyclic shift circuits 314 from check node calculation parts 313.In addition, control signal D314 is offered cyclic shift circuits 314 from control assembly 321, this control signal D314 indication is about the information (matrix data) of such fact, and this fact is: connect rib corresponding to message D313 as the result of the unit matrix cyclic shift how many times that for example will form the check matrix basis.Based on control signal D314, cyclic shift circuits 314 is 5 message D313 cyclic shifts, and the result is offered switch 315 as message D304.
After the processing of step S38, this process proceeds to step S39, and in this step, switch 315 will be stored in the rib data storage 316 from 5 message D304 that cyclic shift circuits 314 provides.
More particularly, D304 offers switch 316 from cyclic shift circuits 314 with 5 message (data), in addition, control signal D324 is offered switch 316 from cyclic shift circuits 314, this control signal D324 indication belongs to which information of check matrix about message (data) D304.Based on control signal D324, switch 316 is from the FIFO 316 of rib data storage 316 1To 316 1Select in 8 to be used for the FIFO of storing message D304, and in order 5 message data D304 collectives are offered selected FIFO.
Then, the FIFO 316 of rib data storage 316 1To 316 185 message data D304 that provide from switch 316 are provided in collective in order.
After the processing of step S39, this process proceeds to step S40, and in this step, control assembly 321 determines whether check node calculation parts 313 have calculated the message of the total number of rib.When the message of the total number of determining also not calculate rib, this process is returned step S36, and carries out above-mentioned processing once more.
On the other hand, when the message of total number of rib of having determined check node calculation parts 313 as calculated at step S40 control assembly 321, this process is finished.
Carry out the terminal check node when calculating when decoding device 300 repeats described decoding number and check node calculation parts 313 with the decode procedure of Figure 17, the message D304 that will obtain as the check node calculation result offers the above-mentioned piece (not shown) that is used to carry out the calculating of formula (5) from rib data storage 316 by selector 317.Also received data D309 is offered described (not shown) from the memory 306 that is used for received data.Described (not shown) carries out the calculating of formula (5) by using message D304 and received data D309, and result of calculation is exported as final decoded result.
In the superincumbent description,, can use RAM to replace FIFO although use FIFO to store rib data (although utilizing FIFO to form rib data storage 311 and 316).In this case, for RAM, need to read the bit width of p rib information (corresponding to the message of rib) and total number/p word of rib simultaneously.For being written among the RAM, determining when reading the data that will write, which position to read this data on the basis of check matrix information next time, and writing data into that position in.For reading, from the beginning of this address reading of data in turn from RAM.That is to say, in RAM, come the storing message data in this order, wherein, such mode reads this message data the message data filling is got more closely, and, read message data according to the memory location order.If use RAM to replace FIFO, then selector 312 and 317 is not indispensable.
When the physical bit width of FIFO and RAM is not enough, provide identical control signal by using a plurality of RAM, these logically can be assumed to be a RAM.
In the decoding device 300 of Figure 16 A to 16C, by using the message u that obtains as the check node calculation result jCarry out variable node and calculate, and, by using the message v that obtains as this result of calculation iCarry out check node calculation.Therefore, need be used to store all message u jWith all message v i Rib data storage 311 and rib data storage 316, wherein, message u jCorresponding to the rib that obtains as the check node calculation result, and message v iCorresponding to the rib that obtains as variable node result of calculation.That is to say, in decoding device, need the nearly memory of the required capacity of 2 times message of 1 number of check matrix H of storage.
Therefore, in order further to reduce the circuit scale of decoding device, the decoding device that memory span is further reduced when comparing with the decoding device 300 of Figure 16 A to 16C is described below.
Figure 18 be illustrate use of the present invention, being used for will be by the block diagram of the topology example of another embodiment of the decoding device of the LDPC sign indicating number decoding of the check matrix representative of Figure 15.
In the decoding device 400 of Figure 18, the rib data storage 311 of Figure 16 A and 16B is formed the memory 40 that is used to store decoding intermediate object program, and it has the capacity littler than the capacity of rib data storage 311.
Decoding device 400 comprises: be used to store the memory 400, cyclic shift circuits 411 of decoding intermediate object program, by 5 calculators 412 1To 412 5The calculating unit of forming 412, the memory 413 that is used to store decoding intermediate object program, cyclic shift circuits 414, by 5 calculators 415 1To 415 5 Calculating unit 415, the memory 416 that is used to receive and the control assembly 417 formed.
Below, will provide calculator 412 referring to figures 19 through Figure 22 to the calculating unit 412 of Figure 18 1To 412 5 Calculator 415 with calculating unit 415 1To 415 5, the check node calculation device 101 of Figure 10 and Figure 11 variable node calculator 103 between the description of relation.
Figure 19 is identical with Figure 11 that variable node calculator 103 is shown with Figure 10 that check node calculation device 101 is shown respectively with Figure 20.Figure 21 shows calculating unit 412 k(k=1,2 ..., 5) topology example.Figure 22 shows calculating unit 415 k(k=1,2 ..., 5) topology example.
In the decoding device 400 of Figure 18, calculator 412 kCarry out some and variable node calculating of check node calculation, and calculating unit 415 kSome other that carries out that variable node calculates, rather than calculator 412 kCarry out check node calculation, and calculating unit 415 kCarrying out variable node calculates.
More particularly, the calculator 412 of Figure 21 kConstitute by piece A ' and piece B '.Piece A ' by according to the check node calculation device 101 of Figure 19 be used to carry out the identical mode of the piece A of check node calculation and dispose.Piece B ' is by being disposed according to the mode identical with piece B, and wherein, piece B is the part of the variable node calculator 103 of Figure 20, is used for from the message u corresponding to all ribs of each row of check matrix jAggregate-value in deduct message u corresponding to the rib that will determine jOn the other hand, the calculator 415 of Figure 22 kConstitute by piece C '.Piece C ' is disposed according to the mode identical with piece C, and wherein, piece C is another part of the variable node calculator 103 of Figure 20, is used for the message u of accumulative total corresponding to the rib of each row of check matrix j, and with the reception value u of institute 0iBe added on the aggregate-value.
The calculator 412 of Figure 21 kWith the result of calculation of piece A and piece B, promptly carry out the decoding intermediate object program u of some gained of check node calculation and variable node calculating j, offer the memory 413 that is used to store decoding intermediate object program.The calculator 415 of Figure 22 kThe decoding intermediate object program v that will carry out some other gained of variable node calculating offers the memory 410 that is used to store decoding intermediate object program.
Therefore, the decoding device 400 of Figure 18 might be by the calculator 412 that hockets kCalculating and calculator 415 kCalculating carry out check node calculation and variable node and calculate so that decode.
Calculator 412 at Figure 22 kIn, owing to from the decoding intermediate object program v that is stored in the memory 413 that is used for storing decoding intermediate object program, deduct decoding intermediate object program u corresponding to the rib that will determine j, wherein, as calculator 415 among the piece B kBy using decoding intermediate object program u corresponding to the rib that will determine jAnd the result calculated of carrying out obtains described decoding intermediate object program v, therefore, does not need the FIFO memory 155 of Figure 20.
Next, provide passing through to use a plurality of equatioies by calculator 412 kThe calculating of carrying out and by calculator 415 kThe description of the calculating of carrying out.
More particularly, calculating unit 412 carries out first according to above-described formula (7) and the formula (8) that describes below and calculates, and will be as the decoding intermediate object program u of first result calculated jOffer the memory 410 that is used to store decoding intermediate object program, store them thus.Calculating unit 415 carries out second according to above-mentioned formula (5) and calculates, and will offer the memory 410 that is used to store decoding intermediate object program as the decoding intermediate object program v of second result of calculation, stores them thus.
v i=v-u dv ......(8)
The u of formula (8) DvRepresentative wherein, will be determined the message of the i row of check matrix H to described rib from the intermediate object program (, being meant check node calculation result itself here) of the check node calculation of such rib.That is to say u DvBe decoding intermediate object program corresponding to the rib that will determine.
In particular, the decoding intermediate object program v that obtains as second result calculated according to above-mentioned formula (5) is such: with the value u that is received 0iDecoding intermediate object program u with check node calculation jTake together, wherein, described decoding intermediate object program u jFrom all ribs of 1 corresponding to each row of check matrix H i row.The value v that is used for above-mentioned formula (7) iBecome such: from the decoding intermediate object program v that obtains as second result of calculation, deduct the decoding intermediate object program u of check node calculation according to formula (5) jIn the decoding intermediate object program u of check node calculation Dv, wherein, decoding intermediate object program u jFrom 1 rib corresponding to each row of the i of check matrix H row, and decoding intermediate object program u DvFrom the rib that will determine its message.That is to say, be used for the value v of calculating of the formula that is identified for (7) iThe calculating of formula (1) be the calculating that combines above-mentioned formula (5) and formula (8).
Therefore, in decoding device 400, hocket by calculating and by calculating that calculating unit 415 carries out that calculating unit 412 carries out according to second of formula (5) according to first of formula (7) and formula (8), and, calculating unit 415 is exported the second last result calculated as decoded result, the feasible repeat decoding that might carry out the LDPC sign indicating number.
Here, the intermediate object program u that will be described as decoding according to first result of calculation of formula (7) and formula (8) j, and, these decoding intermediate object program u jThe check node calculation that equals formula (7) is u as a result j
Owing to obtain like this: from the check node calculation of the rib that will determine its message u as a result from the v of second formula of calculate determining (5) jBe added to the variable node result of calculation v of formula (1) iOn, therefore,, only determine a v for row (variable node) of check matrix H.
In decoding device 400, calculating unit 412 carries out first calculating by using the decoding intermediate object program v (the second decoding intermediate object program) corresponding to the row of check matrix H, wherein, described decoding intermediate object program v is second result calculated of being undertaken by calculating unit 415, and, the decoding intermediate object program u of the check node calculation that obtains as result of calculation j(the first decoding intermediate object program) is stored in the memory 413 that is used for storing decoding intermediate object program, wherein, and described decoding intermediate object program u jFrom rib corresponding to the message (outputing to the message of each rib by each check-node) of 1 rib of each row of the i of check matrix H row.Therefore, the capacity that is used to store the memory 413 of decoding intermediate object program becomes such value, and it is similar to takes 1 the number (total number of rib) and the number of quantization of check matrix together.On the other hand, calculating unit 415 is by using 1 decoding intermediate object program u corresponding to each row of the i row of check matrix H j, and the reception value u of institute 0iCarry out second and calculate, and will be stored in the memory 410 that is used for storing decoding intermediate object program as the decoding intermediate object program v that result of calculation obtains corresponding to the i row, wherein, described decoding intermediate object program u jIt is first result calculated of being undertaken by calculating unit 412.Therefore, the memory 410 necessary capacity that are used to store decoding intermediate object program become such value, this value is that the number of the quantization of the number of the number of verification matrix column and quantization is taken together, wherein, the number of check matrix column is less than 1 number of check matrix, the i.e. code length of LDPC sign indicating number.
Therefore, 1 of check matrix carried out in the decoding device 400 of sparse LDPC sign indicating number decoding being used for, when comparing with the rib data storage 311 of Figure 16 A and 16B, the memory capacity that is used to store the memory 410 of decoding intermediate object program can be reduced.Therefore, can reduce the circuit scale of decoding device 400.
In addition, in decoding device 400, because calculating unit 415 carries out calculating according to second of formula (5), so decoding device 400 does not need to have the piece (not shown) of the calculating that is used to carry out formula (5) in the decoding device 300 of Figure 16 A to 16C, wherein, formula (5) is used to calculate final decoded result.Thereby when comparing with the decoding device 300 of Figure 16 A to 16C, the circuit scale of the decoding device of Figure 18 can be reduced.
Now, with the description that at length provides each operation of components of the decoding device 400 of Figure 18.
To offer the memory 410 that is used to store decoding intermediate object program from calculating unit 415 corresponding to 5 decoding intermediate object program D415 that 5 of check matrix is listed as, wherein, these 5 decoding intermediate object programs are second result calculated of being undertaken by calculating unit 415.These 5 decoding intermediate object program D415 that provide from calculating unit 415 are provided since first address memory 410 that is used to store decoding intermediate object program in order.
More particularly, at the place, first address of the memory 410 that is used to store decoding intermediate object program, storage is corresponding to the decoding intermediate object program v from the 1st row to the 5th row in the decoding intermediate object program of the row of check matrix.Similarly, at place, second address, the decoding intermediate object program v of storage from the 6th row to the 10th row, and at the three-address place, the decoding intermediate object program of storage from the 11st row to the 15th row.Subsequently, similarly, the decoding intermediate object program from the 16th row to the 90th row will be stored in 18 addresses, the 4th address to the with 5 results' unit, and, 90 decoding intermediate object program v altogether are stored in are used for storing the memory 410 of intermediate object program of decoding.Therefore, the number of word that is used to store the memory 410 of decoding intermediate object program becomes 18, that is, and and the number of the row of the check matrix H of Figure 15 (code length of LDPC sign indicating number) 90 numbers 5 divided by the decoding intermediate object program that is read simultaneously and write.
The memory 410 that is used for storing decoding intermediate object program reads the decoding intermediate object program u that determines by the calculating unit 412 of back level simultaneously from stored decoding intermediate object program D415 j5 decoding intermediate object program v, and they are offered cyclic shift circuits 411 as decoding intermediate object program D410, wherein, " 1 " in the corresponding row that described 5 decoding intermediate object program v are check matrix H.
The memory 410 that is used to store decoding intermediate object program is made of the single port RAM that for example can read and write 5 decoding intermediate object programs simultaneously.Owing to be used for storing the decoding intermediate object program v of memory 410 storages of decoding intermediate object program corresponding to such row, wherein, the calculating of these row is carried out in second calculating by calculating unit 415, therefore, be stored in the data volume of the memory 410 that is used for storing decoding intermediate object program, that is, being used to store the memory 410 necessary memory capacity of decoding intermediate object program, is the value that multiplies each other of the column number (code length of LDPC sign indicating number) of the quantization number of decoding intermediate object program and check matrix H.
5 decoding intermediate object program D410 are offered cyclic shift circuits 411 from the memory 410 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 411 from control assembly 417 corresponding to the control signal D619 of decoding intermediate object program D410, wherein, control signal D619 indication is about the information (matrix data) of such fact, and this fact is: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Cyclic shift circuits 611 is about to described 5 cyclic shifts that decoded result D410 rearranges control signal D619 basic enterprising, and the result is offered calculating unit 412 as decoding intermediate object program D411.
Calculating unit 412 comprises 5 calculators 412 1To 412 55 decoding intermediate object program D411 (the second decoding intermediate object program) v that will obtain as second result of calculation of calculating unit 415 offers calculating unit 412 from cyclic shift circuits 411.In addition, will be before as calculator 412 1To 412 5First result calculated of carrying out and obtain 5 decoding intermediate object program D413 (the first decoding intermediate object program) uj offer calculating unit 412 from the memory 413 that is used to store decoding intermediate object program.Described 5 decoding intermediate object program D411 and 5 decoding intermediate object program D413 are offered calculator 412 1To 412 5Each.In addition, control signal D419 is offered calculating unit 412 from control assembly 417, and control signal D419 is offered calculator 412 1To 412 5Control signal D419 is 5 calculators 412 1To 412 5Total signal.
Calculator 412 1To 412 5Undertaken calculating by use decoding intermediate object program D411 and decoding intermediate object program D413, and definite decoding intermediate object program D412 (vi) according to first of formula (7) and formula (8).Calculating unit 412 will offer the memory 413 that is used to store decoding intermediate object program corresponding to 5 decoding intermediate object program D412 of 51 of check matrix, wherein, and as calculator 412 1To 412 5The result of calculation of carrying out and obtain described 5 decoding intermediate object program D412.
The memory 413 that is used to store decoding intermediate object program is made of two single port RAM that for example can read and write 5 decoding intermediate object programs simultaneously.5 decoding intermediate object program D412 are offered the memory 413 that is used to store decoding intermediate object program from calculating unit 412, and in addition, the control signal D420 that reads and write that will be used to control decoding intermediate object program 413 offers memory 413 from control assembly 417.
Based on control signal D420,5 decoding intermediate object program D412 that provide from calculating unit 412 collectively are provided the memory 413 that is used to store decoding intermediate object program, and read stored 5 decoding intermediate object program D412 simultaneously, and, they are offered calculating unit 412 and cyclic shift circuits 414 as decoding intermediate object program D413.That is to say that the memory 413 that is used to store decoding intermediate object program carries out simultaneously and will be provided for the writing of the decoding intermediate object program D412 that reads and provide from calculating unit 412 of the decoding intermediate object program D413 of calculating unit 412 and cyclic shift circuits 414.
At the memory 413 that is used for storing decoding intermediate object program, storage is by the decoding intermediate object program u of first check node calculation of calculating of calculating unit 412 j, wherein, this decoding intermediate object program u jFrom 1 rib corresponding to each row of the i of check matrix H row.Therefore, be stored in the data volume of the memory 413 that is used to store decoding intermediate object program, that is, be used to store the memory 413 necessary memory capacity of decoding intermediate object program, become the value that multiplies each other of 1 number of the quantization number of decoding intermediate object program and check matrix.
With 5 decoding intermediate object program D413 (decoding intermediate object program u j) offer cyclic shift circuits 414 from the memory 413 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 414 from control assembly 417 corresponding to the control signal D421 of decoding intermediate object program D413, wherein, control signal D421 indication is about the information (matrix data) of such fact, and this fact is: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Cyclic shift circuits 414 rearranges the cyclic shift of these 5 decoding intermediate object program D413 on the basis of control signal D421, and the result is offered calculating unit 415 as decoding intermediate object program D414.
Calculating unit 415 comprises 5 calculators 415 1To 415 55 decoding intermediate object program D414 are offered calculating unit 415 from cyclic shift circuits 414, and the intermediate object program D414 that will decode offers each calculator 415 1To 415 5In addition, 5 received data D417 (LDPC sign indicating number) are offered calculating unit 415 from the memory 417 that is used to receive, and received data D417 is offered each calculator 415 1To 415 5In addition, control signal D422 is offered calculating unit 417 from control assembly 417, and control signal D422 is offered calculator 415 1To 415 5Control signal D422 is 5 calculators 417 1To 417 5Total signal.
Calculator 415 1To 415 5Each is all undertaken calculating according to second of formula (5) by use decoding intermediate object program D414 and received data D417, and determines decoding intermediate object program D415.Calculating unit 415 will be as calculator 415 1To 415 5Second result calculated of carrying out and obtain 5 decoding intermediate object program D415 (v) offer the memory 410 that is used to store decoding intermediate object program.In addition, current ongoing calculating be last second calculate in, calculating unit 415 will be exported as final decoded results as 5 decoding intermediate object program D415 that result of calculation obtains.
The memory 416 that is used to receive will be stored as received data D417 from the reception LLR (log-likelihood ratio) that the reception value (sign bit) that receives by communication channel is calculated, and this receives 0 similarity of LLR is-symbol position.
That is to say that at the place, the 1st address of the memory 416 that is used to receive, storage is corresponding to being listed as to the received data D417 of the 5th row corresponding to check matrix the 1st among the received data D417 of the row of check matrix.Then, at place, the 2nd address, storage is corresponding to the received data D417 of check matrix the 6th row to the 10th row, and at place, the 3rd address, storage is corresponding to the received data D417 of check matrix the 11st row to the 16th row.Subsequently, similarly, at 18 addresses, the 4th address to the places, with the unit storage of 5 data corresponding to the received data D417 of the 17th row to the 90th row.
Then, the memory 616 that is used to receive with the unit of 5 data, calculate necessary order according to variable node and read stored received data D417, and they are offered calculating unit 415.
The memory 416 that is used to receive is made of the single port RAM that for example can read and write 5 received data simultaneously.Be stored in the data volume of the memory 416 that is used for receiving, that is, the memory 315 necessary memory capacity that are used to receive are the values that multiply each other of number of the quantization of the code length of LDPC sign indicating number and received data.The number of the word of the memory 416 that is used to receive is 18, and it is the code length of LDPC sign indicating number, i.e. the number 90 of the row of check matrix is divided by the value of number 5 gained of the received data D417 that will be read simultaneously.
Control assembly 417 offers cyclic shift memory 411 with control signal D418, and control signal D419 is offered calculating unit 412, so that control them respectively.Control assembly 417 offers the memory 413 that is used to store decoding intermediate object program with control signal D420, control signal D421 is offered cyclic shift circuits 414, and control signal D421 is offered calculating unit 415, so that control them respectively.
As according to the memory 410, cyclic shift circuits 411, the calculating unit 412 that are used to store decoding intermediate object program, be used to store the result of data of sequential loop of memory 413, cyclic shift circuits 414 and the calculating unit 415 of decoding intermediate object program, decoding device 400 can once be decoded.In decoding device 400, after decoding is repeated pre-determined number, will be as the decoding intermediate object program D415 of second result calculated of calculating unit 415 as final decoded result output.
Figure 21 is the calculator 412 that the calculating unit 412 of Figure 18 is shown 1The block diagram of topology example.
In Figure 21, provide calculator 412 1Description, and, calculator 412 2To calculator 412 5Also disposed in an identical manner.
In Figure 21, by the decoding intermediate object program (u that supposes that previous first result of calculation of carrying out as calculating unit 412 obtains Dv) each and sign bit be quantified as altogether 6 and second result calculated of carrying out as calculator 415 together and the decoding intermediate object program that obtains (v) each is quantified as 9, and calculator 412 is shown 1In addition, clock ck is offered the calculator 412 of Figure 21 1, and this clock ck offered necessary piece.Then, each piece and clock ck synchronously handle.
Based on the control signal D419 that provides from control assembly 417, the calculator 412 of Figure 21 1By using the decoding intermediate object program D413 (u that reads successively from the memory 413 that is used to store decoding intermediate object program Dv) and the decoding intermediate object program D411 that reads successively from cyclic shift circuits 411 (v), carry out calculating, wherein, before obtained described decoding intermediate object program D413 (u as first result calculated of calculating unit 412 according to first of formula (7) and formula (8) Dv).
More particularly, (1 decoding intermediate object program D411 v) offers calculator 412 to 59 the decoding intermediate object program D411 that will provide from cyclic shift circuits 411 156 the decoding intermediate object program D413 (u that will provide in addition, from the memory 413 that is used to store decoding intermediate object program j) in 1 decoding intermediate object program D413 from offering calculator 412 1, wherein, described 56 decoding intermediate object program D413 (u j) be the result of calculation of before being undertaken by calculating unit 412, described 1 decoding intermediate object program D413 is the result calculated of before being undertaken by calculating unit 412.With 9 decoding intermediate object program D411 (v) with 6 decoding intermediate object program D413 (u Dv) offer subtracter D431.In addition, control signal D419 is offered calculator 412 from control assembly 417 1, and control signal D419 offered selector 435 and selector 442.
Subtracter 431 (deducts 6 decoding intermediate object program D413 (u from 9 decoding intermediate object program D411 v) j), and export 6 subtraction value D431.That is to say, the calculating that subtracter 431 carries out according to formula (8), and output is as the subtraction value D431 (v of result of calculation i).
Will be from the sign bit D432 (sign (v 6 subtraction value D431 of subtracter 431 outputs i)) offer EXOR circuit 440, wherein, this sign bit D432 indicates the plus or minus symbol of high-order position, and, with the absolute value D433 of 5 lower-order positions (| v i|) offer LUT 432.
LUT 432 read to absolute value D433 (| v i|) carry out in the formula (7) 5 result of calculation D434 of calculating gained
Figure C200480000601D00562
And it is offered adder 433 and FIFO memory 438.
Adder 433 is passed through result of calculation D434
Figure C200480000601D00563
Be added to the cumulative calculation D434 as a result that comes together with the 9 place value D435 that are stored in the register 434, and 9 aggregate-values that will as a result of obtain are stored in once more in the register 434.When added up the absolute value D433 that all decoding intermediate object program D411 of 1 determine on corresponding to check matrix delegation (| v i|) result of calculation the time, register 433 is reset.
When decoding intermediate object program D411 on reading check matrix delegation successively and accumulative total were stored in the register 434 for the aggregate-value of the result of calculation D434 gained of delegation, the control signal D419 that provides from control assembly 417 changed into 1 from 0.For example, when row weight when being " 9 ", control signal D419 is " 0 " at the 1st to the 8th clock, and is " 1 " at the 9th clock.
When control signal D419 was " 1 ", selector 435 selected to be stored in the value in the register 434, that is, (v) determine by decoding intermediate object program from decoding intermediate object program D411 for accumulative total
Figure C200480000601D00564
9 place value D435 of gained
Figure C200480000601D00565
From i=1 to i=d c), and should value output to register 436 as value D436, store it thus, wherein, described decoding intermediate object program D411 corresponding in the check matrix delegation all 1.Register 436 offers selector 435 and adder 437 with the value D436 that is stored as 9 place value D437.When control signal D419 was " 0 ", the value D437 that provides from register 436 was provided for selector 435, and this value is outputed to register 436, came to store once more it thus.That is to say that register 436 will before add up
Figure C200480000601D00566
Offer selector 435 and adder 437, (decoding intermediate object program is v) determined up to having added up all decoding intermediate object program D411 of 1 on corresponding to check matrix delegation
Figure C200480000601D00567
Till.
On the other hand, FIFO memory 438 is with the result of calculation D434 of LUT 432 outputs
Figure C200480000601D00568
Postpone, up to having exported new value D437 from register 436
Figure C200480000601D00569
From i=1 to i=d c) till, and it is offered subtracter 437 as 5 place value D438.Subtracter 437 deducts the value D438 that provides from FIFO memory 438 from the value D437 that register 436 provides, and subtraction result is offered LUT 439 as 5 subtraction value D439.That is to say that subtracter 437 is from according to corresponding to (the aggregate-value that decoding intermediate object program is v) determined of all decoding intermediate object program D411 of 1 in the check matrix delegation
Figure C200480000601D005610
In, deduct decoding intermediate object program corresponding to the rib that will determine, that is, (decoding intermediate object program is v) determined according to 1 decoding intermediate object program D411 corresponding to predetermined check matrix
Figure C200480000601D00571
And with subtraction value
Figure C200480000601D00572
From i=1 to i=d c-1) offers LUT 439 as subtraction value D439.
LUT 439 outputs are to subtraction value D439
Figure C200480000601D00573
From i=1 to i=d c-1) carries out in the formula (7) Calculate 5 result of calculation D440 of gained
Figure C200480000601D00575
When handling on carry out, EXOR circuit 440 is stored in 1 place value D442 in the register 441 and the XOR of sign bit D432 by calculating, carries out sign bit and multiplies each other, and 1 multiplication result D441 is stored in the register 441 once more.The sign bit D432 that determines as all decoding intermediate object program D411 of 1 on corresponding to check matrix delegation is all taken advantage of fashionable, and register 441 is reset.
As the multiply each other multiplication result D441 (∏ sign (v of gained of the sign bit D432 that all decoding intermediate object program D411 of 1 on corresponding to check matrix delegation are determined i), from i=1 to i=d c) when being stored in the register 441, the control signal D419 that provides from control assembly 417 changes into " 1 " from " 0 ".
When control signal D419 was " 1 ", selector 442 selected to be stored in the value in the register 441, that is, and and the value D442 (∏ sign (v of the gained that multiplies each other from the sign bit D432 that determines corresponding to all decoding intermediate object program D411 of 1 in the check matrix delegation i), from i=1 to i=d c), and should value output to register 443 as 1 place value D443.Register 443 offers selector 442 and EXOR circuit 445 with the value D443 that is stored as 1 place value D444.When control signal D419 was " 0 ", the value D444 that provides from register 443 was provided for selector 442, and this value is outputed to register 443, came to store once more it thus.That is to say that register 443 offers selector 442 and EXOR circuit 445 with previously stored value, up to all decoding intermediate object program D411 of 1 on corresponding to check matrix delegation (till the sign bit D432 that v) determines of decoding intermediate object program all taken advantage of.
On the other hand, FIFO memory 444 postpones sign bit D432, up to new value D444 (∏ sign (v i), from i=1 to i=d c) offered EXOR circuit 445 from register 443 till, and it is offered EXOR circuit 445 as 1 place value D445.EXOR circuit 445 is by the XOR of the value D445 that the value D444 that provides from register 443 is provided and provides from FIFO memory 444, and will be worth D444 divided by value D445, and 1 value of being divided by is exported as the value D446 that is divided by.That is to say that EXOR circuit 445 will be from the sign bit D432 (sign (v that determines corresponding to all decoding intermediate object program D411 of 1 in the check matrix delegation i)) the value that multiplies each other divided by the sign bit D432 (sign (v that determines from 1 decoding intermediate object program D411 corresponding to predetermined check matrix i)), and the value of will being divided by (∏ sign (v i), from i=1 to i=d c-1) as the value D446 output of being divided by.
At calculator 412 1In, incite somebody to action 6 conduct decoding intermediate object program D412 (decoding intermediate object program u altogether j) output, wherein, be 5 lower-order positions, and be high-order positions from 1 value D446 that is divided by of EXOR circuit 445 outputs from 5 result of calculation D440 of LUT 439 output.
As mentioned above, at calculator 412 1In, carry out the calculating of formula (7) and formula (8), and determine decoding intermediate object program u j
Because the capable weight maximum of the check matrix of Figure 15 is 9, that is to say, owing to offer calculator 412 1Decoding intermediate object program D411 (v) with decoding intermediate object program D413 (u Dv) maximum number be 9, therefore, calculator 412 1Have: FIFO memory 438 is used to postpone from 99 definite result of calculation D434 of decoding intermediate object program D411
Figure C200480000601D00581
With FIFO memory 444, be used to postpone 9 sign bit D432.In the time will calculating weight less than the message of 9 row, the retardation in FIFO memory 438 and the FIFO memory 444 is reduced to the weighted value of this row.
Figure 22 is the calculator 415 that calculating unit 415 is shown 1The block diagram of topology example.
In Figure 22, provide calculator 415 1Description, and, calculator 415 2To calculator 415 5Also disposed in an identical manner.
In Figure 22, each decoding intermediate object program (u that first result of calculation of carrying out as calculator 412 by hypothesis obtains j) and sign bit be quantified as altogether 6 together calculator 415 be shown 1In addition, clock ck is offered the calculator 415 of Figure 22 1, and, this clock ck is offered necessary piece.Each piece and clock ck synchronously handle.
Based on the control signal D422 that provides from control assembly 417, the calculator 415 of Figure 22 1By using received data D417 (the reception value u of institute that reads successively from the memory 416 that is used to receive 0i) and the decoding intermediate object program D414 (u that reads successively from cyclic shift circuits 414 j), carry out calculating according to second of formula (5).
More particularly, at calculator 415 1In, read 16 decoding intermediate object program D414 (decoding intermediate object program u successively from cyclic shift circuits 414 corresponding to each row of check matrix j), and the intermediate object program D414 that will decode offers adder 417.In addition, at calculator 415 1In, read 6 received data D417 successively from the memory 416 that is used to receive, and provide it to adder 475.In addition, control signal D422 is offered calculator 415 from control assembly 417 1, and control signal D422 offered selector 473.
Adder 471 is by the intermediate object program D414 that will decode (decoding intermediate object program u j) and 9 aggregate-value D471 that are stored in the register 472 be added to together, come the accumulative total intermediate object program D414 that decodes, and 9 aggregate-values be stored in the register 472 once more.During all decoding intermediate object program D414 of 1, register 472 is reset on having added up corresponding to check matrix delegation.
When the value of decoding intermediate object program D414 gained of decoding intermediate object program D414 that reads check matrix delegation successively and accumulative total delegation was stored in the register 472, the control signal D422 that provides from control assembly 417 changed into " 1 " from " 0 ".For example, when the weight of row when being " 5 ", control signal D422 is " 0 " at the 1st clock to the 4 clocks, and is " 1 " at the 5th clock.
When control signal D422 was " 1 ", selector 473 selected to be stored in the value in the register 472, that is, accumulative total is from decoding intermediate object program D414 (the decoding intermediate object program u of all ribs in the check matrix delegation j) 9 place value 471 (∑ u of gained j, from j=1 to i=d v), and this value outputed to register 474, store it thus.Register 474 offers selector 471 and adder 475 with the value D471 that is stored as 9 place value D472.When control signal D422 was " 0 ", the value D472 that provides from register 474 was provided for selector 473, and this value is outputed to register 474, came to store once more it thus.That is to say that the value that register 474 will before add up offers selector 473 and adder 475, (the decoding intermediate object program u of the decoding intermediate object program D414 of all ribs on having added up from check matrix delegation j) till.
Adder 475 is added to together with 9 place value D472 with from 6 received data D417 that the memory 416 that is used to receive provides, and (decoding intermediate object program is v) exported as decoding intermediate object program D415 with thus obtained 6 place values.
As mentioned above, at calculator 415 1In, carry out the calculating of formula (5), and determine decoding intermediate object program v.
Because the maximum of the row weight of the check matrix of Fig. 8 is 5, that is to say, owing to offer calculator 415 1Decoding intermediate object program u jMaximum number be 5, so calculator 415 1With 56 decoding intermediate object program u jMaximum be added to together.So, calculator 415 1Output be 9 place values.
Figure 23 is the block diagram of topology example of memory 413 that is used to store decoding intermediate object program that Figure 18 is shown.
The memory 413 that is used to store decoding intermediate object program comprises switch 501 and 504 and two RAM 502 and 503 that are used to store decoding intermediate object program, and wherein, described RAM is single port RAM.
Be used to store in detailed description before each parts of memory 413 of decoding intermediate object program, at first will describe storage is being used for storing the decode RAM 502 of intermediate object program and 503 method.
Be used to store the RAM 502 of decoding intermediate object program and 503 storages by the decoding intermediate object program D412 that switch 501 provides, wherein, obtain described decoding intermediate object program D412 as first result calculated.
More particularly, place, 9 addresses, the 1st address to the at the RAM 502 that is used to store decoding intermediate object program, according to for each row, in the horizontal direction (on column direction) check matrix H of Figure 15 is got more closely such mode (according to the mode of ignoring 0) from the 1st 1 filling of walking to the 5th row, storage is corresponding to their decoding intermediate object program D412 (D501).
More particularly, when the capable i tabulation of j is shown (j, i) time, place, the 1st address at the RAM 502 that is used to store decoding intermediate object program, storage is corresponding to 1 data of 5 * 5 unit matrixs of from (1,1) to (5,5), wherein, described 5 * 5 unit matrixs submatrix that is check matrixes of Figure 15.At the 2nd address place, storage is corresponding to 1 data of the shift matrix from (1,21) to (5,25) (5 * 5 unit matrixs are moved 3 shift matrix by circulation to the right), and wherein, described shift matrix is the submatrix of the check matrix of Figure 15.Similarly,, store data equally by this way, so that corresponding to the submatrix of the check matrix of Figure 15 at the 3rd to the 8th address place.Then, at the 9th address place, storage corresponding to from the shift matrix of (1,86) to (5,90) of check matrix (with 0 replaced 5 * 5 unit matrixs first row 1, and with circulate left mobile 1 shift matrix of this unit matrix) 1 data.Here, in the shift matrix of check matrix of Figure 15,, therefore do not store data at place, the 9th address owing in the 1st row, do not have 1 from (1,86) to (5,90).
At the place, 18 addresses, the 10th address to the of the RAM 502 that is used to store decoding intermediate object program, storage corresponding to the check matrix of Figure 15 from the 11st 1 the data that walk to the 15th row.That is to say that at the 10th address place, storage is corresponding to 1 data of such matrix, in this matrix, 5 * 5 unit matrixs of check matrix from (11,6) to (15,10) are circulated to the right move 3.At the 11st address place, storage corresponding to form check matrix from (11,11) to (15,15) and matrix (should and matrix be 5 * 5 unit matrixs with 5 * 5 unit matrixs moved by circulation to the right 3 shift matrix with) 1 data of shift matrix.At the 12nd address place, 1 the data of check matrix from (11,6) to (15,10) and unit matrix matrix are formed in storage.Subsequently, same, at place, 18 addresses, the 13rd address to the, store data by this way, so that corresponding to check matrix.
More particularly, for weight is 2 or bigger submatrix, when with the two or more of following matrix and form when representing submatrix, in identical address place storage is the data (corresponding to the decoding intermediate object program of the message of the rib that belongs to unit matrix, accurate unit matrix or shift matrix) of 1 position of 1 unit matrix, accurate unit matrix or shift matrix corresponding to weight, wherein, described matrix is: weight is the 1 (unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of the element of unit matrix with 0; And shift matrix, wherein unit matrix or accurate unit matrix are recycled displacement.
Similarly,, store by this way corresponding to from the 21st 1 the data that walk to the 25th row, so that corresponding to the check matrix of Figure 15 at the place, 27 addresses, the 19th address to the of the RAM 502 that is used to store decoding intermediate object program.That is to say that the number of word that is used to store the RAM 502 of decoding intermediate object program is 27.
Place, 9 addresses, the 1st address to the at the RAM 503 that is used to store decoding intermediate object program, according to for each row, in the horizontal direction (on column direction) check matrix H of Figure 15 is got more closely such mode (wherein ignoring 0 mode) from the 6th 1 filling of walking to the 10th row, storage is corresponding to their decoding intermediate object program D412 (D502).
In particular, place, the 1st address at the RAM 503 that is used to store decoding intermediate object program, storage corresponding to form from (6,1) to (10,5) and matrix (should and matrix be first shift matrix and second shift matrix and, in first shift matrix, 5 * 5 unit matrixs are moved 1 by circulation to the right, and in second shift matrix, described unit matrix is moved 2 by circulation to the right) 1 data of first shift matrix, wherein, described first shift matrix submatrix that is check matrix.At the 2nd address place, storage is corresponding to 1 the data of forming from (6,1) to (10,5) and second shift matrix matrix, and wherein, described second shift matrix is the submatrix of check matrix.Subsequently, same, at place, 9 addresses, the 3rd address to the, store data by this way, so that corresponding to the submatrix of check matrix.
Similarly,, store by this way corresponding to the check matrix of Figure 15, so that corresponding to the check matrix of Figure 15 from the 16th 1 the data that walk to the 20th row at the place, the 10th to the 18th address of the RAM 503 that is used to store decoding intermediate object program.At 27 addresses, the 19th address to the places, store by this way corresponding to the check matrix of Figure 15 from the 26th 1 the data that walk to the 30th row, so that corresponding to the check matrix of Figure 15.That is to say that the number of word that is used to store the RAM 503 of decoding intermediate object program is 27.
In the manner described above, being used to store the RAM 502 of decoding intermediate object program and the number of 503 word is 27.That is to say, the number of word becomes such value: the capable weight 9 of check matrix be multiply by capable number 30, with the number 5 of multiplied result (check matrix 1 number) divided by the decoding intermediate object program D501 that is read simultaneously, and further with the number 2 of result divided by the RAM 502 that is used to store decoding intermediate object program, wherein, the memory 413 that is used to store decoding intermediate object program has described decoding intermediate object program.
Now, with the description of operation of each parts of memory 413 that is used to store decoding intermediate object program that provides in detail Figure 23.
When calculating unit 412 carries out first calculating, will be as the decoding intermediate object program D412 (u of first result of calculation acquisition j) offer the memory 413 that is used to store decoding intermediate object program from calculating unit 412, and, decoding intermediate object program D412 is write the presumptive address place that is used to store the RAM 502 of decoding intermediate object program and is used to store one of the RAM 503 of decoding intermediate object program.Simultaneously, read the decoding intermediate object program D412 (u that obtains as first result calculated of before having been undertaken by calculating unit 412 from other RAM j), and it is outputed to calculating unit 412.On the other hand, when calculating unit 415 carries out second calculating, the memory 413 that is used to store decoding intermediate object program does not carry out to being used to store the RAM 502 of decoding intermediate object program or being used to store the writing of RAM 503 of decoding intermediate object program, its presumptive address from one of described RAM reads decoding intermediate object program, and they are offered cyclic shift circuits 414.
5 decoding intermediate object program D412 are offered switch 501 from calculating unit 412, in addition, with control signal D420 1Offer switch 501 from control assembly 417, wherein, control signal D420 1Indication is selected to be used to store the RAM 502 of decoding intermediate object program and to be used to one of RAM 503 that stores decoding intermediate object program, as the memory that is used to store decoding intermediate object program D412.Based on control signal D420 1, switch 501 is selected to be used to store the RAM 502 of decoding intermediate object program and to be used to one of RAM 503 that stores decoding intermediate object program, and 5 decoding intermediate object program D412 are offered selected RAM.
5 decoding intermediate object program D412 are offered the RAM 502 that is used to store decoding intermediate object program as decoding intermediate object program D501 from switch 501, in addition, with the control signal D420 of indication address 2Offer RAM 502 from control assembly 417.The RAM 502 that is used to store decoding intermediate object program reads and is stored in by control signal D402 25 decoding intermediate object program D501 at the address place of indication, and they are offered switch 504 as decoding intermediate object program D503 wherein, obtain described 5 decoding intermediate object program D501 as first result calculated of before having been undertaken by calculating unit 412.In addition, be used to store 5 decoding intermediate object program D501 storages (writing) that the RAM 502 of decoding intermediate object program will provide from switch 501 to by control signal D402 2The place, address of indication.
5 decoding intermediate object program D412 are offered the RAM 503 that is used to store decoding intermediate object program as decoding intermediate object program D502 from switch 501, in addition, with the control signal D420 of indication address 3Offer RAM 503 from control assembly 417.The RAM 503 that is used to store decoding intermediate object program reads and is stored in by control signal D420 35 decoding intermediate object program D502 at the address place of indication, and they are offered switch 504 as decoding intermediate object program D504 wherein, obtain described 5 decoding intermediate object program D502 as first result calculated of before having been undertaken by calculating unit 412.In addition, be used to store 5 decoding intermediate object program D502 storages (writing) that the RAM 502 of decoding intermediate object program will provide from switch 501 to by control signal D420 3The place, address of indication.
Decoding intermediate object program D503 is offered switch 504 from the RAM 502 that is used to store decoding intermediate object program, and the intermediate object program D504 that perhaps will decode offers switch 504 from being used to store the decode RAM 503 of intermediate object program.In addition, with control signal D 420 4Offer switch 504 from control assembly 417, wherein, control signal D420 4Indication is selected to be used to store the RAM 502 of decoding intermediate object program and to be used to one of RAM 503 that stores decoding intermediate object program.Based on control signal D420 1Switch 504 is selected to be used to store the RAM 502 of decoding intermediate object program and to be used to one of RAM503 that stores decoding intermediate object program, and will offer calculating unit 412 and cyclic shift circuits 414 as 5 decoding intermediate object program D413 from 5 decoding intermediate object programs that selected RAM provides.
Figure 24 be the diagram memory 413 that is used to store decoding intermediate object program be used to store the RAM 502 of decoding intermediate object program and be used to store decoding intermediate object program RAM 503 read sequential chart with write operation.
In Figure 24, trunnion axis express time (t).
At the memory 413 that is used for storing decoding intermediate object program, when calculating unit 412 will carry out first calculating, based on control signal D420 2Be used to store the unit of the RAM 502 of decoding intermediate object program with 5 results, from the decoding intermediate object program D501 that has stored, will be stored in identical address, read 9 times from the 1st 1 the decoding intermediate object program D501 that walks to the 5th row corresponding to check matrix, and they are offered calculating unit 412 by switch 504, wherein, obtain described decoding intermediate object program D501 as first result calculated of before having been undertaken by calculating unit 412.That is to say, because the capable weight of the check matrix of Figure 15 is 9, therefore there are 9 decoding intermediate object programs of 1 corresponding to each row of check matrix H, and, be used to store the RAM 502 of decoding intermediate object program with 5 results' unit, will be corresponding to reading 9 times from the 1st 15 the decoding intermediate object program D501 that walk to the 5th row.
Next, based on control signal D420 3Be used for storing the RAM 503 of decoding intermediate object program with 5 results' unit, from the decoding intermediate object program D502 that has stored will be stored in identical address, corresponding to reading continuously 9 times from the 6th 1 the decoding intermediate object program D502 that walks to the 10th row, and they are offered calculating unit 412 by switch 504, wherein, obtain described decoding intermediate object program D502 as first result calculated of before having been undertaken by calculating unit 412.Simultaneously, to walk to the 5th 5 decoding intermediate object program D412 that go corresponding to the 1st of check matrix and offer the RAM 502 that is used to store decoding intermediate object program as decoding intermediate object program D501 and by switch 501, wherein, obtain described 5 decoding intermediate object program D412 as current first result calculated of just being undertaken by calculating unit 412.Based on control signal D420 2, the intermediate object program D501 that will decode of the place, address of the decoding intermediate object program D503 that the RAM 502 that is used to store decoding intermediate object program has read in storage stores 9 times.
Subsequently, based on control signal D420 2Be used to store the unit of the RAM 502 of decoding intermediate object program with 5 results, from the decoding intermediate object program D501 that has stored, will be stored in identical address, reading 9 times corresponding to check matrix from the 11st 1 the decoding intermediate object program D501 that walks to the 15th row, and they are offered calculating unit 412 by switch 504, wherein, obtain described decoding intermediate object program D501 as first result calculated of before having been undertaken by calculating unit 412.Simultaneously, will be corresponding to check matrix offer the RAM 503 that is used to store decoding intermediate object program as decoding intermediate object program D502 and by switch 501 from the 6th 15 decoding intermediate object program D412 that walk to the 10th row, wherein, obtain described 5 decoding intermediate object program D412 as current first result calculated of just being undertaken by calculating unit 412.Based on control signal D420 3, the intermediate object program D502 that will decode of the place, address of the decoding intermediate object program D504 that the RAM 503 that is used to store decoding intermediate object program has read in storage stores 9 times continuously.
Subsequently, similarly, the RAM 503 that is used to store the RAM 502 of decoding intermediate object program and is used to store decoding intermediate object program is being for 9 times that unit hockets and reads or write, till will being stored in the RAM502 that is used for storing decoding intermediate object program corresponding to all decoding intermediate object programs of 1 of check matrix or being used to store the RAM 503 of decoding intermediate object program, wherein, first result calculated of carrying out as calculating unit 412 and obtain described decoding intermediate object program.
At the memory 413 that is used for storing decoding intermediate object program, when calculating unit 415 carries out second calculating, based on control signal D420 2, read the decoding intermediate object program D503 that has stored, obtain as first result of calculation from the RAM 502 that is used for storing decoding intermediate object program, perhaps based on control signal D420 3, read the decoding intermediate object program D504 that has stored, obtain as first result of calculation from the RAM 503 that is used to store decoding intermediate object program, and the decoding intermediate object program that will read offers cyclic shift circuits 414 by switch 504.
Figure 25 is the flow chart of decode procedure of the decoding device 400 of diagram Figure 18.For example, when the data that will decode that received are stored in the memory 416 that is used for receiving, begin this process.
In step S50, cyclic shift circuits 414 413 that provide from the memory that is used to store decoding intermediate object program, will be in 5 decoding intermediate object program D413 cyclic shifts of step S56 (will describe afterwards) storage, and they are offered calculating unit 415.
More particularly, 5 decoding intermediate object program D413 are offered cyclic shift circuits 414 from the memory 413 that is used to store decoding intermediate object program, in addition, to offer cyclic shift circuits 414 from control assembly 417 corresponding to the control signal D421 of decoding intermediate object program D413, wherein, control signal D421 indication is about the information (matrix data) of such fact, and this fact is: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D421, cyclic shift circuits 414 is these 5 decoding intermediate object program D413 cyclic shifts (rearranging), and the result is offered calculating unit 415 as decoding intermediate object program D414.
Calculate and decoding intermediate object program D413 is not stored in when being used to store the memory 413 of decoding intermediate object program the calculating unit 415 intermediate object program u that will decode when the received data D417 that offers the memory 416 that is used for receiving not being carried out first as yet jBe set to initial value.
In step S51, calculating unit 415 carries out second and calculates, and will offer the memory 410 that is used to store decoding intermediate object program as the decoding intermediate object program D415 of result of calculation.
More particularly, in step S50,5 decoding intermediate object program D414 are offered calculating unit 415 from cyclic shift circuits 414, in addition, 5 received data D417 are offered calculating unit 415 from the memory 416 that is used for received data.Decode intermediate object program D415 and received data D417 are offered the calculator 415 of calculating unit 415 separately 1To 415 5Each.In addition, control signal D422 is offered calculating unit 415 from control assembly 417, and control signal D422 is offered calculator 415 1To 415 5
Based on control signal D422, calculator 415 1To 415 5Each is all by using decoding intermediate object program D414 and received data D417 to carry out calculating according to formula (5), and will obtain as result of calculation, (v) offer and be used to store the memory 410 of intermediate object program of decoding corresponding to the decoding intermediate object program D415 of the row of check matrix.
After the processing of step S51, this process proceeds to step S52, and at this step place, the memory 410 that is used to store decoding intermediate object program will be stored in identical address from the decoding intermediate object program D415 that calculating unit 415 provides at step S51, then, this process proceeds to step S53.
At step S53, control assembly 417 determines whether calculating unit 415 has calculated all the decoding intermediate object program D415 corresponding to the row of check matrix.When determining not calculate all decoding intermediate object program D415, this process is returned step S50, and carries out above-mentioned processing once more.
On the other hand, when determining that at step S53 control assembly 417 calculating units 415 have calculated all decoding intermediate object program D415 corresponding to the row of check matrix, this process proceeds to step S54, at this step place, the decoding intermediate object program D410 that cyclic shift circuits 411 will provide from the memory 410 that is used to store decoding intermediate object program (v) cyclic shift.
More particularly, 5 decoding intermediate object program D410 are offered cyclic shift circuits 411 from the memory 410 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 411 from control assembly 417 corresponding to the control signal D418 of decoding intermediate object program D410, wherein, control signal D418 indication is about the information (matrix data) of such fact, and this fact is: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D418, cyclic shift circuits 411 is 5 decoding intermediate object program D410 cyclic shifts (rearranging), and they are offered calculating unit 412 as decoding intermediate object program D411.
After the processing of step S54, this process proceeds to step S55, and at this step place, calculating unit 412 carries out first and calculates, and will offer cyclic shift circuits 414 as the decoding intermediate object program D412 of result of calculation.
More particularly, at step S54,5 decoding intermediate object program D411 (are v) offered calculating unit 412 from cyclic shift circuits 411.In addition, 5 decoding intermediate object program D412 (D413) (u that will store at step S56 (will describe afterwards) j) offer calculating unit 412, wherein, obtain these 5 decoding intermediate object program D412 (D413) (u as first result calculated of before having been undertaken by calculating unit 412 j).Decoding intermediate object program D411 and decoding intermediate object program D413 are offered the calculator 412 of calculating unit 412 separately 1To 412 5Each.In addition, control signal D419 is offered calculating unit 412 from control assembly 417, and control signal D419 is offered calculator 412 1To 412 5
Based on control signal D419, calculator 412 1To 412 5Each is all by using decoding intermediate object program D411 and decoding intermediate object program D413 to carry out calculating according to formula (7) and formula (8), and the decoding intermediate object program D412 (u that will obtain as result of calculation j) offer the memory 413 that is used to store decoding intermediate object program.
After the processing of step S55, this process proceeds to step S56, and at this step place, the memory 413 that is used to store decoding intermediate object program will be stored in identical address from 5 decoding intermediate object program D412 that calculating unit 412 provides at step S55, then, this process proceeds to step S57.
At step S57, control assembly 417 determines whether calculating unit 412 has calculated all 1 the decoding intermediate object program D412 corresponding to check matrix.When determine not have the calculation check matrix all 1 the time, this process is returned step S54, and carries out above-mentioned processing once more.
On the other hand, when when step S57 control assembly 417 determines that calculating unit 412 has calculated corresponding to all decoding intermediate object program D412 of 1, this process is finished.
Decoding device 400 repeats described decoding number with the decode procedure of Figure 25, and will export as final decoded result as the message D415 that the second last result calculated obtains.
In the superincumbent description, constitute by two single port RAM although be used to store the memory 413 of decoding intermediate object program,, if reading and write of a RAM taken place simultaneously, then memory 413 can be made of three or more RAM.When the physical bit width of RAM is not enough, provide identical control signal by using a plurality of RAM, these RAM logically can be assumed to be a RAM.
For the part that lacks rib data (corresponding to the message of rib), during in memory, storing (when storage during) in the memory 410 that is used for storing decoding intermediate object program and 413, storing message not, and, do not calculate in the computing interval (in first computing interval at calculating unit 412 places with in second computing interval at calculating unit 415 places).
Figure 26 be illustrate use of the present invention, being used for will be by the block diagram of the topology example of another embodiment of the decoding device of the LDPC sign indicating number decoding of the check matrix representative of Figure 15.
In the decoding device 600 of Figure 26, the rib data storage 316 of Figure 16 A to 16C is formed the memory 613 that is used to store decoding intermediate object program, and it has the capacity less than the capacity of rib data storage 316.
Decoding device 600 comprises: be used to store the memory 610, cyclic shift circuits 611 of decoding intermediate object program, by 5 calculators 612 1To 612 5The calculating unit of forming 612, the memory 613 that is used to store decoding intermediate object program, cyclic shift circuits 614, by 5 calculators 615 1To 615 5 Calculating unit 615, the memory 616 that is used to receive and the control assembly 617 formed.
With reference to Figure 27 to Figure 30, provide calculator 612 to the calculating unit 612 of Figure 26 1To calculator 612 5, Figure 30 the calculator 615 of calculating unit 615 1To calculator 615 5, the check node calculation device 101 of Figure 10 and Figure 11 variable node calculator 103 between the description of relation.
Figure 27 is identical with above-mentioned Figure 11 that variable node calculator 103 is shown with above-mentioned Figure 10 that check node calculation device 101 is shown respectively with Figure 28.Figure 29 shows calculator 612 k(k=1,2 ..., 5) topology example.Figure 30 shows calculator 615 k(k=1,2 ..., 5) topology example.
In the decoding device 600 of Figure 26, calculator 612 kCarry out some of check node calculation and calculator 615 kCarry out some that some other and variable node of check node calculation calculate, rather than calculator 612 kCarry out check node calculation and calculating unit 615 kCarrying out variable node calculates.
More particularly, the calculator 612 of Figure 29 kConstitute by piece D ' and piece E '.Piece D ' is by being disposed according to the mode identical with piece D, wherein, piece D be used for accumulative total to the corresponding message v of all ribs of each row of check matrix iAbsolute value carry out
Figure C200480000601D00671
Calculate the value of gained, piece D is the part of the check node calculation device 101 of Figure 27.Piece E ' is by being disposed according to the mode identical with piece E, and wherein, piece E is used for the message v corresponding to all ribs of each row of check matrix iSign bit multiply each other.
On the other hand, the calculator 615 of Figure 30 kConstitute by piece F ', G ' and H '.Piece F ' is disposed according to the mode identical with piece F, and wherein, piece F is used for: will each be listed as the message v of all ribs corresponding to check matrix iThe value that multiplies each other of sign bit divided by message v corresponding to the rib that will determine iSign bit; And, by to each is listed as the corresponding message v of all ribs with check matrix iAbsolute value calculate
Figure C200480000601D00672
In the aggregate-value of the value of gained, deduct to the corresponding message v of the rib that will determine iAbsolute value carry out
Figure C200480000601D00673
Calculate the value of gained, the value that is obtained is carried out
Figure C200480000601D00674
Calculate, piece F ' is another part of the check node calculation device 101 of Figure 19.Piece G ' by according to be used for message v iAbsolute value carry out
Figure C200480000601D00675
The identical mode of calculating of piece G disposes.Piece H ' is disposed according to the identical mode of the piece H that calculates with the variable node of the variable node calculator 103 that is used to carry out Figure 20.
The calculator 612 of Figure 29 kWith the result of calculation of piece A and piece B, that is, the decoding intermediate object program w that carries out some gained of check node calculation offers the memory 613 that is used to store decoding intermediate object program.The calculator 615 of Figure 30 kSome other and the variable node that will carry out check node calculation calculate the decoding intermediate object program v of gained i' offer the memory 610 that is used to store decoding intermediate object program.
Therefore, the decoding device 600 of Figure 26 might be by the calculator 612 that hockets kCalculating and calculator 615 kCalculating carry out check node calculation and variable node and calculate so that decode.
Calculator 615 at Figure 30 kIn, be stored in by use the memory 610 that is used for storing decoding intermediate object program, corresponding to the decoding intermediate object program v of the rib that will determine i', piece C is from as calculator 612 kThe absolute value of the decoding intermediate object program w that obtains of result of calculation in, deduct decoding intermediate object program v corresponding to the rib that will determine i', and the sign bit of the intermediate object program w that will decode multiply by the decoding intermediate object program v corresponding to the rib that will determine i' sign bit.Therefore, the memory 127 and the FIFO memory 133 that do not need Figure 27.
Next, by using equation, provide calculator 612 to calculating unit 612 1To calculator 612 5The calculator 615 of calculating of carrying out and calculating unit 615 1To calculator 615 5The description of the calculating of carrying out.
Calculating unit 612 carries out calculating according to first of formula (9), and will offer the memory 613 that is used to store decoding intermediate object program as the decoding intermediate object program w of first result calculated, stores them thus.Calculating unit 615 carries out above-mentioned formula (1) and calculates according to second of formula (9) and formula (11), and will be as the decoding intermediate object program v of second result calculated i' offer the memory 610 that is used to store decoding intermediate object program, store them thus.
w = Σ i = 1 d c | v i ′ | × Π i = 1 d c sign ( v i ′ ) - - - ( 9 )
u j=Φ -1(|w|-|v i′|)×sign(v i′)×sign(w) (10)
v i′=Φ(|v i|)×sign(v i) (11)
More particularly, the decoding intermediate object program w that obtains as first result of calculation according to formula (9) is such: with the decoding intermediate object program v of check node calculation i' absolute value | v i' | summation and sign bit (v i') take together, wherein, obtain described decoding intermediate object program v as second result of calculation according to formula (1), formula (10) and formula (11) i', and it is corresponding to capable all of the j of check matrix H 1.Therefore, as the formula (10), can represent the u that the check node calculation of through type (7) obtains by using such value j: from the absolute value of conduct according to the decoding intermediate object program w of first result of calculation acquisition of formula (9) | the w|, deduct (a plurality of) decoding intermediate object program v corresponding to " 1 " (rib) of each capable row of the j of check matrix H i' in, corresponding to the decoding intermediate object program v of the rib that will determine i' absolute value | v i' |.
In decoding device 600, hocket and calculate and calculate according to first of formula (9) according to second of formula (1), formula (10) and formula (11) by what calculating unit 612 carried out, and, calculating unit 615 is undertaken calculating according to first of formula (5) by using the first last result of calculation, and result of calculation exported as decoded result, carry out the iterative decoding of LDPC sign indicating number thus.
More particularly, in decoding device 600, calculating unit 612 is by using corresponding to capable all 1 the decoding intermediate object program v of check matrix H j i' carry out first and calculate, and will obtain as result of calculation, be stored in corresponding to decoding intermediate object program w of each row of check matrix and be used for storing the memory 613 of intermediate object program of decoding, wherein, described decoding intermediate object program v i' be second result calculated that calculating unit 615 carries out.Therefore, the capacity that is used to store the memory 613 of decoding intermediate object program becomes takes the value of gained together with the line number order of check matrix and the quantization number of decoding intermediate object program w, wherein, the line number order of described check matrix is less than the number of " 1 " of check matrix.Calculating unit 615 is by using the decoding intermediate object program w and the reception value u of institute of first result calculated of carrying out as calculating unit 612 0i, carry out second and calculate, and the decoding intermediate object program v of the check node calculation that will obtain as result of calculation i' be stored in the memory 610 that is used for storing decoding intermediate object program, wherein, described decoding intermediate object program w is corresponding to each row of the i row of check matrix H, the intermediate object program of decoding v i' corresponding to 1 (rib) of check matrix i row.Therefore, the memory 610 necessary capacity that are used to store decoding intermediate object program become the value that obtains like this: be similar to the rib data storage 311 that is used to store variable node result of calculation of Figure 16 A and 16B, with 1 number and decoding intermediate object program v of check matrix i' the quantization number take together.
Therefore, in coding/decoding method 600, when comparing with the rib data storage 311 of Figure 16 A and 16B, the memory capacity that is used to store the memory 610 of decoding intermediate object program can be reduced.This feasible circuit scale that might reduce decoding device 600.
To describe the operation of each parts of the decoding device 600 of Figure 26 below in detail.
Based on control signal D618,5 decoding intermediate object program D615 that provide from calculating unit 615 collectively are provided the memory 610 that is used to store decoding intermediate object program, simultaneously, read 5 stored decoding intermediate object program D615, and they are offered cyclic shift circuits 611 and calculating unit 615 as decoding intermediate object program D610.That is to say that the writing of the decoding intermediate object program D615 that reads and provide from calculating unit 615 of the decoding intermediate object program D610 of cyclic shift circuits 611 is provided the memory 610 that is used to store decoding intermediate object program simultaneously.
At the memory 610 that is used for storing decoding intermediate object program, storage is calculated the decoding intermediate object program v that is calculated by calculating unit 615 by second i' (the second decoding intermediate object program), it is corresponding to 1 (rib) of check matrix.Therefore, be stored in the data volume of the memory 610 that is used for storing decoding intermediate object program, that is, be used to store the required memory capacity of memory 610 of decoding intermediate object program, become the value that multiplies each other of the quantization number and 1 the number (sum of rib) of decoding intermediate object program.
For example, the memory 610 that is used to store decoding intermediate object program comprises two single port RAM that can read and write 5 decoding intermediate object programs simultaneously.5 decoding intermediate object program D615 are offered the memory 610 that is used to store decoding intermediate object program from calculating unit 615, and in addition, the control signal D618 that reads and write that will be used to control decoding intermediate object program D615 offers memory 610 from control assembly 617.
5 decoding intermediate object program D610 are offered cyclic shift circuits 611 from the memory 610 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 611 from control assembly 617 corresponding to the control signal D619 of decoding intermediate object program D610, wherein, control signal D619 indicates the information (matrix data) about such fact: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D619, cyclic shift circuits 611 rearranges the cyclic shift of 5 decoded result D610, and the result is offered calculating unit 612 as decoding intermediate object program D611.
Calculating unit 612 comprises 5 calculators 612 1With 612 5With 5 decoding intermediate object program D611 (the second decoding intermediate object program) (v i') offer calculating unit 612 from cyclic shift circuits 611, and 5 decoding intermediate object programs 611 (first decoding intermediate object program) (w) are offered calculator 612 respectively 1To 612 5Control signal D620 is offered calculating unit 612 from control assembly 617, and control signal D620 is offered calculator 612 1To 612 5Control signal D620 is 5 calculators 612 1To 612 5Total signal.
Calculator 612 1To 612 5Each all passes through to use decoding intermediate object program D611 and carries out first according to formula (9) and calculate, so that determine decoding intermediate object program D612 (w).Calculating unit 612 will be as calculator 612 1To 612 5The result of calculation of carrying out and obtain 5 decoding intermediate object program D612 offer the memory 613 that is used to store decoding intermediate object program.
To offer the memory 613 that is used to store decoding intermediate object program from calculating unit 612 corresponding to 5 decoding intermediate object program D612 of the row of check matrix, wherein, described 5 decoding intermediate object program D612 are first result calculated that calculating unit 612 carries out.These 5 decoding intermediate object program D612 that provide from calculating unit 612 are provided since first address memory 613 that is used to store decoding intermediate object program in order.
More particularly, at the place, the 1st address of the memory 613 that is used to store decoding intermediate object program, storage corresponding in the decoding intermediate object program of the row of check matrix from the 1st decoding intermediate object program w that walks to the 5th row.Similarly, at the 2nd address place, storage is from the 6th decoding intermediate object program that walks to the 10th row, and at place, the 3rd address, and storage is from the 11st decoding intermediate object program w that walks to the 15th row.Subsequently, similarly, with 5 results' unit in the storage of place, 6 addresses, the 4th address to the from the 16th decoding intermediate object program w that walks to the 30th row, and, 60 decoding intermediate object program w altogether are stored in the memory 613 that is used for storing decoding intermediate object program.Therefore, the number of word that is used to store the memory 610 of decoding intermediate object program becomes 6, and this number is for the line number order 30 of the check matrix H of Figure 15 number 5 divided by the decoding intermediate object program that is read simultaneously and write.
The memory 613 that is used for storing decoding intermediate object program reads 5 decoding intermediate object program w simultaneously from 5 stored decoding intermediate object program D613, and they are offered cyclic shift circuits 614 as decoding intermediate object program D613, wherein, described 5 decoding intermediate object program w are the decoding intermediate object program v that determine by calculating unit 615 i' " 1 " in the row of pairing check matrix H.
For example, the memory 613 that is used to store decoding intermediate object program comprises the single port RAM that can read and write 5 decoding intermediate object programs simultaneously.Since by first of calculating unit 612 calculate calculated, be stored in the memory 613 that is used for storing decoding intermediate object program corresponding to the decoding intermediate object program w of row, therefore, be stored in the data volume of the memory 613 that is used for storing decoding intermediate object program, promptly, be used to store the required memory capacity of memory 613 of decoding intermediate object program, the line number purpose that becomes the quantization number of decoding intermediate object program and the check matrix H value that multiplies each other.
5 decoding intermediate object program D613 (decoding intermediate object program w) are offered cyclic shift circuits 614 from the memory 613 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 614 from control assembly 617 corresponding to the control signal D621 of decoding intermediate object program D613, wherein, control signal D621 indicates the information (matrix data) about such fact: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D621, cyclic shift circuits 614 rearranges the cyclic shift of 5 decoding intermediate object program D613, and the result is offered calculating unit 615 as decoding intermediate object program D614.
Calculating unit 615 comprises 5 calculators 615 1To 615 55 decoding intermediate object program D614 (w) are offered variable node calculating unit 615 from cyclic shift circuits 614, in addition, with 5 decoding intermediate object program D610 (v i') offer variable node calculating unit 615 from the memory 610 that is used to store decoding intermediate object program.The intermediate object program of will decoding D614 and decoding intermediate object program D610 offer calculator 615 1To 615 5Each.5 received data D617 are offered calculating unit 615 from the memory 617 that is used to receive, and received data D617 is offered calculator 615 separately 1To 615 5Each.In addition, control signal D622 is offered calculating unit 617 from control assembly 617, and control signal D622 is offered calculator 615 1To 615 5Control signal D622 is 5 calculators 617 1To 617 5Total signal.
Calculator 615 1To 615 5Each all passes through to use decoding intermediate object program D614 and D611 and received data D617 (LDPC sign indicating number) and carries out second according to formula (1), formula (10) and formula (11) and calculate, so that determine 5 intermediate object program (v that decode of 1 corresponding to each row of check matrix i').Calculating unit 615 will be as calculator 615 1To 615 55 decoding intermediate object program D615 that carry out second result calculated and obtain offer the memory 610 that is used to store decoding intermediate object program.
The memory 616 that is used to receive will be stored as received data D617 from the reception LLR (log-likelihood ratio) that the institute's reception value (sign bit) that receives by communication channel is calculated, and wherein, receives 0 similarity of LLR is-symbol position.
More particularly, at place, first address of the memory 616 that is used to receive, storage corresponding among the received data D617 of the row of check matrix, corresponding to the 1st row of check matrix received data D617 to the 5th row.At place, the 2nd address, store corresponding to the 6th of check matrix and be listed as the received data D617 that is listed as to the 10th, and at place, the 3rd address, storage is listed as the received data D617 that is listed as to the 16th corresponding to the 11st of check matrix.Subsequently, similarly, at 18 addresses, the 4th address to the places, with the unit storage of 5 data corresponding to the received data D617 of the 17th row to the 90th row.
Then, the memory 616 that is used to receive with the unit of 5 data, carry out second according to calculating unit 615 and calculate necessary order and read stored received data D617 simultaneously, and they are offered calculating unit 615.
For example, the memory 616 that is used to receive comprises single port RAM.Be stored in the data volume of the memory 616 that is used for receiving, that is, the memory 616 necessary memory capacity that are used to receive are the quantization digit purpose of the code length of LDPC sign indicating number and the received data values that multiply each other.In addition, the number of the word of the memory 616 that is used to receive is 18, and this number is the code length with the LDPC sign indicating number, and promptly the column number 90 of check matrix is divided by the number of the received data D617 that is read simultaneously.
Control assembly 617 offers the memory 610 that is used to store decoding intermediate object program with control signal D618, and control signal D619 is offered cyclic shift circuits 611, so that control them respectively.In addition, control assembly 617 offers calculating unit 612 with control signal D620, and control signal D621 is offered cyclic shift circuits 614, so that control them respectively.
As according to the memory 610, cyclic shift circuits 611, the calculating unit 612 that are used to store decoding intermediate object program, be used to store the result of data of sequential loop of memory 613, cyclic shift circuits 614 and the calculating unit 615 of decoding intermediate object program, decoding device 600 can once be decoded.In decoding device 600, after decoding is repeated pre-determined number, the calculating that calculating unit 615 carries out according to formula (5), and, this result of calculation is exported as final decoded result.
Figure 29 is the calculator 612 that the calculating unit 612 of Figure 26 is shown 1The block diagram of topology example.
Calculator 612 has been described in Figure 29 1, and, calculator 612 2To calculator 612 5Also disposed in the same way.
In addition, in Figure 29, each decoding intermediate object program (v that second result calculated of carrying out as calculator 615 by hypothesis obtains i') be quantified as 6 calculator 612 is shown 1Clock ck is offered the calculator 612 of Figure 29 1, and clock ck offered necessary piece.Each piece and clock ck synchronously handle.
Based on the control signal D620 that provides from control assembly 617, the calculator 612 of Figure 29 1By using the decoding intermediate object program D611 (v that reads successively from cyclic shift circuits 611 i') carry out calculating according to first of formula (9).
56 the decoding intermediate object program D611 (v that more particularly, will provide from cyclic shift circuits 611 i') in a decoding intermediate object program D611 offer calculator 612 1, will offer EXOR circuit 635 as the sign bit D631 of high-order position, and will be as 6 decoding intermediate object program D611 (v i') 5 lower-order positions absolute value D632 (| v i' |) offer adder 631.In addition, control signal D620 is offered calculator 612 from control assembly 617 1, and control signal D620 offered selector 633 and selector 637.
Adder 631 by with absolute value D632 (| v i' |) and be stored in 9 place value D633 in the register 632 be added to the accumulative total absolute value D632 that comes together (| v i' |), and 9 aggregate-values that will as a result of obtain are stored in the register 632 once more.When added up the absolute value D632 that all decoding intermediate object program D611 of 1 determine on corresponding to check matrix delegation (| v i' |) time, register 632 is reset.
When the aggregate-value of the absolute value D632 gained of decoding intermediate object program D611 on reading check matrix delegation successively and accumulative total delegation was stored in the register 632, the control signal D620 that provides from control assembly 617 changed into 1 from 0.For example, when row weight when being " 9 ", control signal D620 is " 0 " at the 1st to the 8th clock, and is " 1 " at the 9th clock.
When control signal D620 was " 1 ", register 632 selected to be stored in the value in the selector 633, that is, accumulative total is corresponding to (the decoding intermediate object program v of all decoding intermediate object program D611 of 1 in the check matrix delegation i') absolute value D632 (| v i' |) 9 place value D633 of gained (∑ | v i' |, from i=1 to i=d c), and should value output to register 634 as value D634, store it thus.Register 634 offers selector 633 with the value D634 that is stored as 9 place value D635, and with its output.When control signal D620 was " 0 ", the value D635 that provides from register 634 was provided for selector 633, and this value is outputed to register 634, came to store once more it thus.That is to say that register 634 will before add up | v i' | offer selector 633, and with its output, (the decoding intermediate object program v of all decoding intermediate object program D611 of 1 on having added up corresponding to check matrix delegation i') absolute value D632 (| v i' |) till.
When carrying out above-mentioned processing, EXOR circuit 635 is stored in 1 place value D637 in the register 636 and the XOR of sign bit D631 by calculating, carries out multiplying each other of sign bit, and 1 multiplied result D636 is stored in the register 636 once more.The sign bit D631 of all decoding intermediate object program D611 of 1 is all taken advantage of fashionablely on corresponding to check matrix delegation, and register 636 is reset.
As multiplied result D636 (∏ sign (v i'), from i=1 to dc) when being stored in the register 636, the control signal D620 that provides from control assembly 617 changes into " 1 " from " 0 ", wherein, will be from multiplying each other corresponding to all determined sign bit D631 of decoding intermediate object program D611 of 1 in the check matrix delegation and obtaining described multiplied result D636 (∏ sign (v i'), from i=1 to d c).
When control signal D620 was " 1 ", selector 637 selected to be stored in the value in the register 636, that is, and and the value D637 (∏ sign (v of the gained that will multiply each other corresponding to the sign bit D631 of all decoding intermediate object program D611 of 1 in the check matrix delegation i'), from i=1 to i=d c), and should value output to register 638 as 1 place value D638, store it thus.Register 638 offers selector 637 with the value D638 that is stored as 1 place value D639, and exports it.When control signal D620 was " 0 ", the value D639 that provides from register 638 was provided for selector 637, and this value is outputed to register 638, came to store once more it thus.That is to say that register 638 offers selector 637 with previously stored value, and exports it, (the decoding intermediate object program v of all decoding intermediate object program D611 of 1 on corresponding to check matrix delegation i') sign bit D631 all taken advantage of till.
At calculator 612 1In, will be altogether 10 as decoding intermediate object program D612 (decoding intermediate object program w) output, wherein, make 9 place value D635 from register 634 outputs (∑ | v i' |, from i=1 to i=d c) become 9 lower-order positions, and make from 1 place value D639 (sign (v of register 638 outputs i')) become high-order position.
As mentioned above, at calculator 612 1In, carry out the calculating of formula (9), and determine decoding intermediate object program w.
Figure 30 is the calculator 615 that the calculating unit 615 of Figure 26 is shown 1The block diagram of topology example.
Calculator 615 has been described in Figure 30 1, and calculator 615 2To 615 5Also disposed in an identical manner.
In addition, in Figure 30, each decoding intermediate object program (w) that first result calculated of carrying out as calculator 612 by hypothesis obtains and sign bit are quantified as 10 and previous each decoding intermediate object program (u that had obtained as second result of calculation altogether together j) and sign bit be quantified as 6 altogether together, calculator 6151 is shown, wherein, provide described decoding intermediate object program (u from the memory 610 that is used to store decoding intermediate object program j).In addition, clock ck is offered the calculator 615 of Figure 30 1, and clock ck offered necessary piece.Each piece and clock ck synchronously handle.
Based on the control signal D622 that provides from control assembly 617, the calculator 615 of Figure 30 1By using the following to carry out second calculating: received data D617 (the reception value u of institute that reads successively from the memory 616 that is used to receive according to formula (1), formula (10) and formula (11) 0i); The decoding intermediate object program D614 (w) that reads successively from cyclic shift circuits 614; The decoding intermediate object program D610 (v that reads successively from the memory 610 that is used to store decoding intermediate object program i'), wherein, before obtained this decoding intermediate object program as second result calculated of being undertaken by calculating unit 615.
More particularly, at calculator 615 1In, read 10 decoding intermediate object program D614 (decoding intermediate object program w) successively from cyclic shift circuits 614 corresponding to the row of check matrix.Read before second result calculated of carrying out successively and 6 decoding intermediate object program D610 (decoding intermediate object program v that obtain from the memory 610 that is used to store decoding intermediate object program as calculating unit 615 i').Sign bit D653 (sign (u with the high-order position of the sign bit D651 (sign (w)) of the high-order position of decoding intermediate object program D614 and decoding intermediate object program D610 j)) offer EXOR circuit 653.With the absolute value D652 of 9 lower-order positions of decoding intermediate object program D614 (| w|) and the sign bit D653 of 9 lower-order positions of decoding intermediate object program D610 (| v i' |) offer subtracter 651.In addition, at calculator 615 1In, read 6 received data D617 successively from the memory 616 that is used for receiving, and provide it to adder 658.In addition, at calculator 615 1In, provide control signal D622 from control assembly 617, and control signal D622 is offered selector 656.
Subtracter 651 deducts absolute value D654 from absolute value D652, and 5 subtraction value D655 are offered LUT 652.LUT 652 outputs are carried out subtraction value D655 Calculate 5 result of calculation D656 of gained
On the other hand, EXOR circuit 653 is by compute sign position D651 (sign (w)) and sign bit D653 (sign (v i')) XOR sign bit D651 and sign bit D653 are taken together, and with 1 multiplied result as multiplying each other value D657 output.Then, 6 place value D658 are offered adder 654, and provide it to FIFO memory 659, wherein, in described 6 place value D658, make 5 result of calculation D656 that provide from LUT652 become 5 lower-order positions
Figure C200480000601D00753
And make the 1 place value D657 (sign (w) * sign (v that provides from EXOR circuit 653 i')) become high-order position.
In the above described manner, carry out calculating according to formula (10), and will be as 6 place value D658 (u of result of calculation j) offer adder 654, and provide it to FIFO memory 659.
Adder 659 is passed through 6 place value D658 (u j) and the 9 place value D659 that are stored in the register 655 be added to the aggregate-value D658 that comes together, and 9 aggregate-values that will as a result of obtain are stored in the register 655 once more.When having added up to list all value D658 of 1 corresponding to check matrix one, register 655 is reset.
When reading the value D658 that check matrix one lists successively, and the value of the value D658 gained of accumulative total one row is when being stored in the register 655, and the control signal D622 that provides from control assembly 617 changes into " 1 " from " 0 ".For example, when the row weight was " 5 ", control signal D622 was " 0 " at the 1st to the 4th clock, and was " 1 " at the 5th clock.
When control signal D622 was " 1 ", selector 656 selected to be stored in the value in the register 655, that is, and and 1 the value D658 (u that accumulative total lists corresponding to check matrix one j) 9 place value D659 (∑ u of gained j, from j=1 to j=d v), and this value outputed to register 657, store it thus.Register 657 offers selector 471 and adder 658 with the value D659 that is stored as 9 place value D660.When control signal D622 was " 0 ", the value D660 that provides from register 657 was provided for selector 656, and this value is outputed to register 657, came to store once more it thus.That is to say that the value that register 657 will before add up offers selector 656 and adder 658, till 1 the value D658 that has added up to list corresponding to check matrix one.
Adder 658 is added to together with 9 place value D660 with from 6 received data D617 that the memory 616 that is used to receive provides, and the 9 place value D661 that as a result of obtain are provided.
In calculator 615, in the time will carrying out last calculating, adder 658 is exported 9 place value D661 as final decoded result.That is to say the calculating that calculating unit 615 carries out according to formula (5).
On the other hand, FIFO memory 659 postpones 6 place value D658 (u j), up to newly being worth D660 (∑ u from register 665 outputs j, from j=1 to j=d v) till, and should value offer subtracter 660 as 6 place value D662.Subtracter 660 deducts 6 place value D662 from 9 place value D660, and output subtraction value D663.That is to say that subtracter 660 deducts the value corresponding to the rib that will determine from the aggregate-value of 1 the value D658 that lists corresponding to check matrix one, that is, and corresponding to 1 value D658 (u of predetermined check matrix j), and with subtraction value (∑ u j, from i=1 to i=d v-1) as 6 subtraction value D663 output.
In the above described manner, carry out calculating, and output is as 6 subtraction value D663 (v of result of calculation according to formula (1) i).Then, will from the absolute value of 5 lower-order positions of 6 subtraction value D663 of subtracter 660 output (| v i|) offer LUT 661, and sign bit (sign (v that will high-order position i)) as value D665 output.
LUT 661 output to absolute value (| v i|) carry out
Figure C200480000601D00761
5 result of calculation D666 of calculating gained
Figure C200480000601D00762
Then, LUT 661 incites somebody to action 6 conduct decoding intermediate object program (v altogether i') offer the memory 610 that is used to store decoding intermediate object program, wherein, make from 5 result of calculation D666 of LUT 661 outputs
Figure C200480000601D00763
Become 5 lower-order positions, and the value of making D665 (sign (v i)) become high-order position.
As mentioned above, at calculator 615 1In, carry out the calculating of formula (1), formula (10) and formula (11), and determine decoding intermediate object program v i'.
The maximum of the row weight of the check matrix of Figure 15 is 5, that is to say, offers calculator 615 1Decoding intermediate object program D614 (w) and decoding intermediate object program D610 (v i') maximum number be 5.Therefore, calculator 615 1Have FIFO memory 659, be used to 5 result of calculation D658 (u that postpone 5 decoding intermediate object program D614 and determine from decoding intermediate object program D610 j).When wanting the calculated column weight less than 5 message, the retardation in the FIFO memory 659 is reduced to the value of row weight.
Figure 31 is the block diagram of topology example of memory 610 that is used to store decoding intermediate object program that Figure 26 is shown.
The memory 610 that is used to store decoding intermediate object program comprises switch 701 and 704 and the RAM 702 and 703 that is used to store decoding intermediate object program, and wherein, RAM 702 and 703 is two single port RAM.
Be used to store in detailed description before each parts of memory 610 of decoding intermediate object program, at first description be used for storage is being used for storing the RAM 702 of decoding intermediate object program and 703 method.
Be used to store the RAM 702 of decoding intermediate object program and the decoding intermediate object program D615 that 703 storages provide by switch 701, wherein, first result calculated of carrying out as calculating unit 612 and obtain described decoding intermediate object program D615.
More particularly, place, 5 addresses, the 1st address to the at the RAM 702 that is used to store decoding intermediate object program, according to for each row, in the horizontal direction (at column direction) the 1st row of the check matrix H of Figure 15 to 1 filling of the 5th row is got mode (according to the mode of ignoring 0) more closely, store decoding intermediate object program D615 (D701) corresponding to them.
More particularly, (j, in the time of i), at the place, the 1st address of the RAM 702 that is used to store decoding intermediate object program, storage is corresponding to 1 data of 5 * 5 unit matrixs of the check matrix from (1,1) to (5,5) of Figure 15 when the capable i of j tabulation is shown.Locate in the 2nd address, storage corresponding to the check matrix that forms Figure 15 from (6,1) to (10,5) and matrix (should and matrix be first shift matrix and second shift matrix and, wherein, in first shift matrix, 5 * 5 unit matrixs are moved 1 by circulation to the right, and in second shift matrix, 5 * 5 unit matrixs are moved 2 by circulation to the right) the data of 1 position of first shift matrix.In addition, at the 3rd address place, storage is corresponding to the data that form check matrix 1 positions with second shift matrix matrix from (6,1) to (10,5).Subsequently, same, at the 4th address and place, the 5th address, store data by this way, so that corresponding to the check matrix of Figure 15.
At the place, 10 addresses, the 6th address to the of the RAM 702 that is used to store decoding intermediate object program, storage is corresponding to the check matrix of Figure 15 1 data from the 11st row to the 15th row.That is to say, at the 6th address place, storage corresponding to form check matrix from (11,11) to (15,15) and matrix (should and matrix be 5 * 5 unit matrixs and first shift matrix and, wherein, in first shift matrix, 5 * 5 unit matrixs are moved 3 by circulation to the right) the data of 1 position of first shift matrix, and locate in the 7th address, storage is corresponding to (11,11) that form check matrix 1 data to (15,15) and unit matrix matrix.Subsequently, same, at place, 10 addresses, the 8th address to the, store data by this way, so that corresponding to check matrix.
Similarly, place, 28 addresses, the 10th address to the at the RAM 702 that is used to store decoding intermediate object program, according to corresponding to the such mode of the check matrix of Figure 15, storage is corresponding to 1 data from the 21st row to the 25th row, from the 31st row to the 35th row, from the 41st row to the 45th row, from the 51st row to the 55th row, from the 61st row to the 65th row, from the 71st row to the 75th row, from the 81st row to the 85th row.That is to say that the number of word that is used to store the RAM 702 of decoding intermediate object program is 28.
Place, 5 addresses, the 1st address to the at the RAM 703 that is used to store decoding intermediate object program, according to for each row, in the horizontal direction (on column direction) the 6th row of the check matrix H of Figure 15 to 1 filling of the 10th row is got mode (according to the mode of ignoring 0) more closely, store decoding intermediate object program D615 (D702) corresponding to them.
More particularly, at the place, the 1st address of the RAM 703 that is used to store decoding intermediate object program, storage corresponding to form check matrix from (6,1) to (10,5) and matrix (should and matrix be first shift matrix and first shift matrix and, wherein, in first shift matrix, 5 * 5 unit matrixs are moved 1 by circulation to the right, and in second shift matrix, unit matrix is moved 2 by circulation to the right) 1 data of first shift matrix, wherein, first shift matrix is the submatrix of check matrix.At the 2nd address place, storage is corresponding to 1 the data that form from (6,1) to (10,5) and second shift matrix matrix, and wherein, second shift matrix is the submatrix of check matrix.Subsequently, same at 5 addresses, the 3rd address to the places similarly, store data by this way, so that corresponding to the submatrix of check matrix.
Similarly, at the place, 26 addresses, the 6th address to the of the RAM 703 that is used to store decoding intermediate object program, storage is corresponding to the check matrix of Figure 15 1 data from the 16th row to the 20th row, from the 26th row to the 30th row, from the 36th row to the 40th row, from the 46th row to the 50th row, from the 56th row to the 60th row, from the 66th row to the 70th row, from the 76th row to the 80th row and from the 86th row to the 90th row.That is to say that the number of word that is used to store the RAM 703 of decoding intermediate object program is 26.
As mentioned above, the number of word that is used to store the RAM 702 of decoding intermediate object program is 28, and the number of word that is used to store the RAM 703 of decoding intermediate object program is 26.
Figure 32 be the diagram memory 610 that is used to store decoding intermediate object program be used to store the RAM 702 of decoding intermediate object program and be used to store decoding intermediate object program RAM 703 read sequential chart with write operation.
In Figure 32, trunnion axis express time (t).
At the memory 610 that is used for storing decoding intermediate object program, when calculating unit 612 will carry out first calculating, based on the control signal D720 that provides from control assembly 617 2, read the stored decoding intermediate object program D703 that obtains as second result of calculation from the RAM 702 that is used to store decoding intermediate object program, perhaps based on the control signal D720 that provides from control assembly 617 3, read the stored decoding intermediate object program D704 that obtains as second result of calculation from the RAM 703 that is used to store decoding intermediate object program.The decoding intermediate object program that is read is offered cyclic shift circuits 614 by switch 704.
When calculating unit 615 will carry out second calculating, the decoding intermediate object program D615 (v that will obtain as second result of calculation i') offer the memory 610 that is used to store decoding intermediate object program from calculating unit 615.When the intermediate object program D615 that will decode is written to the RAM 702 that is used to store decoding intermediate object program and is used to store the presumptive address place of one of RAM 703 of decoding intermediate object program, read before second result calculated of carrying out and the decoding intermediate object program D610 (v that obtains as calculating unit 615 from other RAM i'), and it is outputed to calculating unit 615 by cyclic shift circuits 614.
5 decoding intermediate object program D615 are offered switch 701 from calculating unit 615, in addition, with control signal D720 1Offer switch 701, wherein, control signal D720 1Indication is selected to be used to store the RAM 702 of decoding intermediate object program and to be used to one of RAM 703 that stores decoding intermediate object program, as the memory that is used to store decoding intermediate object program D615.Based on control signal D720 1, switch 701 is selected to be used to store the RAM 702 of decoding intermediate object program and to be used to one of RAM 703 that stores decoding intermediate object program, and 5 decoding intermediate object program D612 are offered selected in them one.
5 decoding intermediate object program D612 are offered the RAM 702 that is used to store decoding intermediate object program as decoding intermediate object program D701 from switch 701, in addition, with the control signal D702 of indication address 2Offer RAM 702 from control assembly 617.The RAM 702 that is used to store decoding intermediate object program reads and is stored in by control signal D720 25 decoding intermediate object program D701 at the address place of indication, and they are offered switch 704 as decoding intermediate object program D703, wherein, previous second result calculated of carrying out as calculating unit 615 and obtain described 5 decoding intermediate object program D701.In addition, be used to store 5 decoding intermediate object program D702 storages (writing) that the RAM 702 of decoding intermediate object program will provide from switch 701 to by control signal D720 2The place, address of indication.
5 decoding intermediate object program D615 are offered the RAM 703 that is used to store decoding intermediate object program as decoding intermediate object program D702 from switch 701, in addition, with the control signal D720 of indication address 3Offer RAM 703 from control assembly 617.The RAM 703 that is used to store decoding intermediate object program reads and is stored in by control signal D720 35 decoding intermediate object program D702 at the address place of indication, and they are offered switch 704 as decoding intermediate object program D704, wherein, previous second result calculated of carrying out as calculating unit 615 and obtain described 5 decoding intermediate object program D702.In addition, be used to store 5 decoding intermediate object program D702 storages (writing) that the RAM 702 of decoding intermediate object program will provide from switch 701 to by control signal D720 3The place, address of indication.
Decoding intermediate object program D703 is offered switch 704 from the RAM 702 that is used to store decoding intermediate object program, and the intermediate object program D704 that perhaps will decode offers switch 704 from being used to store the decode RAM 703 of intermediate object program.In addition, with control signal D720 4Offer switch 704 from control assembly 617, this control signal D720 4Indication is selected to be used to store the RAM 702 of decoding intermediate object program and to be used to one of RAM 703 that stores decoding intermediate object program.Based on control signal D720 4, switch 704 is selected to be used to store the RAM 702 of decoding intermediate object program and to be used to one of RAM 703 that stores decoding intermediate object program, and will offer calculating unit 615 as 5 decoding intermediate object program D610 from 5 decoding intermediate object programs that selected RAM provides.
At the memory 610 that is used for storing decoding intermediate object program, when calculating unit 615 will carry out second calculating, based on control signal D720 2Be used to store the unit of the RAM 702 of decoding intermediate object program with 5 results, before previous crops is among the stored decoding intermediate object program D701 that obtains of second result calculated that calculating unit 615 carries out, with be stored in the identical address place, read 5 times corresponding to 1 the decoding intermediate object program D701 of check matrix from the 1st row to the 5th row, and they are offered calculating unit 615 by switch 704.That is to say, because the row weight of the check matrix H of Figure 15 is 5, therefore, there are 5 decoding intermediate object programs of 1 corresponding to each row of check matrix H, and the RAM 702 that is used to store decoding intermediate object program is unit, will reads 5 times corresponding to 1 decoding intermediate object program D701 from the 1st row to the 5th row with 5 results.
Next, based on control signal D720 3The RAM 703 before previous crops that are used for storing decoding intermediate object program are that second result calculated that calculating unit 615 carries out obtains, stored decoding intermediate object program D702, read continuously 5 times being stored in 15 the decoding intermediate object program D702 identical address place,, and they are offered calculating unit 615 by switch 704 and cyclic shift circuits 614 corresponding to check matrix from the 6th row to the 10th row.Simultaneously, to offer the RAM 702 that is used to store decoding intermediate object program by switch 701 as decoding intermediate object program D701 by 15 decoding intermediate object program D615 from the 1st row to the 5th row corresponding to check matrix, wherein, as current second result calculated of just being undertaken by calculating unit 615 and obtain described decoding intermediate object program D615.Based on control signal D720 2, the RAM 702 that is used to store decoding intermediate object program stores 5 times continuously at will the decode place, address of the decoding intermediate object program D703 that intermediate object program D701 read in storage.
Subsequently, based on control signal D720 2The RAM 702 that is used to store decoding intermediate object program is a unit with 5 results, before previous crops is that second result calculated that calculating unit 615 carries out obtains, among the stored decoding intermediate object program D701, with be stored in the identical address place, read continuously 5 times corresponding to 1 the decoding intermediate object program D701 of check matrix from the 11st row to the 15th row, and they are offered calculating unit 615 by switch 704.Simultaneously, to offer the RAM 703 that is used to store decoding intermediate object program by switch 701 as decoding intermediate object program D702 by 15 decoding intermediate object program D612 from the 6th row to the 10th row corresponding to check matrix, wherein, as current second result calculated of just being undertaken by calculating unit 615 and obtain described decoding intermediate object program D612.Based on control signal D720 3, be used to store decoding intermediate object program D702 that the RAM 703 of decoding intermediate object program will read storage 5 times continuously at the place, address of storage decoding intermediate object program D704.
Subsequently, similarly, the RAM 703 that is used to store the RAM 702 of decoding intermediate object program and is used to store decoding intermediate object program hockets and reads and write for 5 times, up to second result calculated of carrying out as calculating unit 615 obtain, be stored in corresponding to all decoding intermediate object programs of 1 be used for storing the RAM 702 of decoding intermediate object program or be used to store the RAM 703 of decoding intermediate object program till.
Figure 33 is the flow chart of decode procedure of the decoding device 600 of diagram Figure 26.For example, when the received data that will decode is stored in the memory 616 that is used for receiving, begin this process.
At step S70, the cyclic shift of 5 decoding intermediate object program D613 that cyclic shift circuits 614 rearranges in step S76 (will describe afterwards) storage, and they are offered calculating unit 615, wherein, provide described 5 decoding intermediate object program D613 from the memory 613 that is used to store decoding intermediate object program.
More particularly, 5 decoding intermediate object program D613 are offered cyclic shift circuits 614 from the memory 613 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 614 from control assembly 617 corresponding to the control signal D621 of decoding intermediate object program D613, wherein, this control signal D621 indicates the information (matrix data) about such fact: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D621, cyclic shift circuits 614 is 5 decoding intermediate object program D613 cyclic shifts (rearranging), and they are offered calculating unit 615 as decoding intermediate object program D614.
Calculate and decoding intermediate object program D612 also is not stored in when being used to store the memory 613 of decoding intermediate object program when also not the received data D617 that provides from the memory 616 that is used for receiving not being carried out first, calculating unit 615 results are set to initial value.
At step S71, calculating unit 615 carries out second and calculates, and will offer the memory 610 that is used to store decoding intermediate object program as the decoding intermediate object program D615 of result of calculation.
More particularly, at step S70,5 decoding intermediate object program D614 are offered calculating unit 615 from cyclic shift circuits 614, and, step S72 (will describe afterwards), previous decoding intermediate object program D610 is offered calculating unit 615 from the memory 610 that is used to store decoding intermediate object program.Provide 5 received data D617 from the memory 616 that is used for received data, and 5 decode intermediate object program D615 and D610 and received data D617 are offered the calculator 615 of calculating unit 615 separately 1To 615 5Each.In addition, control signal D622 is offered calculating unit 615 from control assembly 617, and control signal D622 is offered calculator 615 1To 615 5
Based on control signal D622, calculator 615 1To 615 5Each is all by using decoding intermediate object program D614 and D610 and received data D617 to carry out calculating according to formula (1), formula (10) and formula (11), and will obtain as result of calculation, corresponding to 1 decoding intermediate object program D615 (v of each row of check matrix i') offer the memory 610 that is used to store decoding intermediate object program.
After the processing of step S71, this process proceeds to step S72, at this step place, the memory 610 that is used to store decoding intermediate object program will be stored in identical address from the decoding intermediate object program D615 that calculating unit 615 provides at step S71, read the decoding intermediate object program D615 (D610) that has stored, and they are offered cyclic shift circuits 611 and calculating unit 615.
After the processing of step S72, this process proceeds to step S73, and at this step place, control assembly 617 determines whether calculating units 615 have calculated all decoding intermediate object program D615 of 1 corresponding to each row of check matrix.When control assembly 617 determined not calculate all decoding intermediate object program D615, this process was returned step S70, and carries out above-mentioned processing once more.
On the other hand, when control assembly in step S73 617 determines that calculating unit 615 has calculated all decoding intermediate object program D615, this process proceeds to step S74, at this step place, the decoding intermediate object program D610 (v that cyclic shift circuits 611 will provide from the memory 610 that is used to store decoding intermediate object program i') cyclic shift.
More particularly, 5 decoding intermediate object program D610 are offered cyclic shift circuits 611 from the memory 610 that is used to store decoding intermediate object program.In addition, to offer cyclic shift circuits 611 from control assembly 617 corresponding to the control signal D619 of decoding intermediate object program D610, wherein, control signal D619 indicates the information (matrix data) about such fact: the result as the unit matrix cyclic shift how many times that for example will form the check matrix basis arranges 1 of check matrix.Based on control signal D619, cyclic shift circuits 611 is 5 decoding intermediate object program D610 cyclic shifts (rearranging), and they are offered calculating unit 612 as decoding intermediate object program D611.
After the processing of step S74, this process proceeds to step S75, and at this step place, calculating unit 612 carries out first and calculates, and will offer cyclic shift circuits 614 as the decoding intermediate object program D612 of result of calculation.
More particularly, at step S74, with 5 decoding intermediate object program D611 (v i') offer calculating unit 612 from cyclic shift circuits 611, and the intermediate object program D611 that will decode offers the calculator 612 of calculating unit 612 separately 1To 612 5Each.In addition, control signal D621 is offered calculating unit 612 from control assembly 617, and control signal D621 is offered calculator 612 1To 612 5
Based on control signal D619, calculator 612 1To 612 5Each is all by using decoding intermediate object program D611 to carry out calculating according to formula (9), and will obtain as result of calculation, offer corresponding to the decoding intermediate object program D612 (w) of the row of check matrix and to be used to store the memory 613 of intermediate object program of decoding.
After the processing of step S75, this process proceeds to step S76, and at this step place, the memory 613 that is used to store decoding intermediate object program will be stored in identical address from the decoding intermediate object program D612 that calculating unit 612 provides at step S75, then, this process proceeds to step S77.
At step S77, control assembly 617 determines whether calculating unit 612 has calculated the decoding intermediate object program D612 corresponding to all row of check matrix.When control assembly 617 determined not calculate all decoding intermediate object programs, this process was returned step S74, and carries out above-mentioned processing once more.
On the other hand, when control assembly in step S77 617 determined that calculating unit 612 has calculated corresponding to all decoding intermediate object program D612 that go, this process was finished.
Decoding device 600 repeats described decoding number with the decode procedure of Figure 33, and just as the value D661 that obtains according to the result of calculation of above-mentioned formula (5) and by calculating unit 621 as final decoded result output.
In the superincumbent description, constitute by two single port RAM although be used to store the memory 610 of decoding intermediate object program,, if reading and write of a RAM taken place simultaneously, then it can be made of 3 or more RAM.When the physical bit width of RAM is not enough, provide identical control signal by using a plurality of RAM, these RAM logically can be assumed to be a RAM.
For the part that lacks rib data (corresponding to the message of rib), be stored in during the memory (when data are stored in the memory 610 that is used for storing decoding intermediate object program and 613), storing message not, and, do not calculate in the computing interval (in first computing interval at calculating unit 612 places with in second computing interval at calculating unit 615 places).
If bucket formula (barrel) shift unit is used for the cyclic shift circuits 411 and 414 and the cyclic shift circuits 611 and 614 of Figure 26 of cyclic shift circuits 314 and 320, Figure 18 of Figure 16 A and 16B, then can when reducing circuit scale, realizes desired procedure.
In above-mentioned situation, for describing simple reason, be 5 with p, promptly form the line number order of submatrix of check matrix and calculating number and be 5 situation as example.The line number order of submatrix and column number differ and are decided to be 5, and can get different values according to check matrix.For example, p can be 360 or 392.
In addition, in the present embodiment, used code length be 90 and encoding rate be 2/3 LDPC sign indicating number.Yet code length and encoding rate can be arbitrary values.For example, when the line number order of submatrix and column number p are 5, if the total number of rib is less than or equal to 5, then can be by only changing control signal, the decoding device 600 of the decoding device 300 of use Figure 16 A to 16C, the decoding device 400 of Figure 18 and Figure 26 is incited somebody to action or even the LDPC sign indicating number of any code length and encoding rate is decoded.
In addition, the decoding device that is used to satisfy certain LDPC sign indicating number of certain condition can satisfy desirable any encoding rate of this condition and the LDPC sign indicating number decoding of code length arbitrarily, wherein, described condition is that the line number order and the column number p of submatrix is predetermined value, and the total number of rib is less than or equal to particular value.
When check matrix is not the multiple of row and column number p of submatrix, can be by will being that 0 element is assigned to outside the part (fraction) of check matrix and supposes that check matrix is the multiple of p, uses the present invention entirely.
Next, can utilize hardware to carry out the said process sequence, and, also can utilize software to carry out this process sequence.When utilizing software to carry out this process sequence, the program that forms this software is installed in the all-purpose computer etc.
Correspondingly, Figure 34 illustrates the topology example of the embodiment of the computer that the program that is used to carry out the said process sequence has been installed.
Program can be recorded in advance in the hard disk that serves as recording medium 905 and RAM903 that is incorporated in the computer.
Replacedly, can be with program interim or permanent storage (record) in removable recording medium 911 such as floppy disk, CD-ROM (compact disk read-only memory), MO (magneto-optic) dish, DVD (digital multi-purpose disk), disk or semiconductor memory.Can be used as so-called software packaging so removable recording medium 911 is provided.
Except from being installed to the computer such as removable recording medium 911 recited above, can wirelessly program be delivered to computer from the download website by the artificial satellite that is used for digital satellite broadcasting, perhaps program can be delivered to computer by the network such as LAN (local area network (LAN)) or internet wiredly.In computer, can receive the program of transmitting by this way at communication component 908 places, and attach it in the hard disk 905 that wherein comprises.
Computer has merged CPU (CPU) 902.Input/output interface 910 is connected to CPU 902 by bus 901.When the user comprises the input block 907 of keyboard, mouse, microphone etc. by operation and during via input/output interface 910 input instructions, CPU 902 carries out the program that is stored among the ROM (read-only memory) 903 according to this instruction.Replacedly, CPU 902 is loaded into following program among the RAM (random access memory) 904, and CPU 902 these programs of execution, and wherein, described program is: be stored in the program in the hard disk 905; From satellite or network delivery, receive and be installed to program the hard disk 905 by communication component 908; Perhaps the removable recording medium 911 from be loaded in driver 909 reads and is installed to the program in the hard disk 905.Therefore, CPU 902 carries out according to the processing of above-mentioned flow chart or according to the processing of above-mentioned block diagram.Then, for example, CPU 902 transmits results from the output block 906 that comprises LCD (LCD), loud speaker etc., by input/output interface 910 output results from communication component 908, and according to required and further it is recorded in the hard disk 905.
In this manual, do not need to be used to make computer can carry out the treatment step of the program of various processing according to next the writing of the order of writing out as flow chart with the time sequencing execution.In addition, can simultaneously or carry out their (for example, parallel processing or object-based processing) individually.
Described program can be utilized a Computer Processing, perhaps can be handled by many distributed computers.In addition, program can be delivered to remote computer and can handle there.
Can adopt the framework that is used for carrying out simultaneously p check node calculation and p variable node calculating by the LDPC sign indicating number decoding of the check matrix of following combinations of matrices representative for having, wherein, described matrix is: (the unit matrix of P * P); Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein unit matrix or accurate unit matrix are recycled displacement; And matrix, its be the two or more of unit matrix, accurate unit matrix and shift matrix and; And (0 matrix of P * P).Therefore, calculate, frequency of operation can be limited in the feasible scope by carrying out p node simultaneously.Like this, although can carry out a large amount of iterative decodings,, might prevent during memory (FIFO and RAM) reads and writes to memory (FIFO and RAM) to different addresses in visit take place.
In the time will decoding by the LDPC sign indicating number that the check matrix of Figure 15 is represented by the decoding device 300 of reusing Figure 16 A to 16C, might be so that the mode of each check-node and per 5 ribs of each variable node be calculated 269 ribs.Therefore, for once decoding, decoding device need carry out 108 clock operations of 269/5 * 2 ≈.Therefore, in order to carry out 50 decodings, when receiving 90 sign indicating number information, decoding device need carry out 108 * 50=5400 time clock operation, thereby can use and be approximately 60 times of high frequency of operation of receive frequency.Therefore, according to the decoding device of Figure 16 A to 16C, when with Fig. 9 be used for carry out decoding device that node calculates successively when comparing, only need 1/5 frequency of operation.When the aspect of circuit scale is seen,, therefore,, also be little to the influence of integral body even logical circuit becomes greatly a little because memory size is identical.
The decoding device 400 of Figure 18 and the decoding device 600 of Figure 26 have the memory capacity less than the memory capacity of the decoding device 300 of Figure 16 A to 16C.
For example, when the check matrix of LDPC sign indicating number is 6 for the quantization number of the check matrix of Figure 15 and LDPC sign indicating number, in the decoding device 300 of Figure 16 A to 16C, the rib data storage needs two RAM with capacity of 269 (total number of rib) * 6=1614 positions, promptly, for two RAM, need the capacity of 1614 * 2=3228 position.As a comparison, for example, when the quantization number of decoding intermediate object program v is 9, in the decoding device 400 of Figure 18, the RAM of 1614 bit capacities of the total number with rib is provided need for the memory 413 that is used to store decoding intermediate object program, and such RAM is provided need for the memory 410 that is used to store decoding intermediate object program, its quantization digit purpose the multiply each other capacity of value, the i.e. capacity of 90 * 9=810 position with the code length (column number of check matrix) of LDPC sign indicating number and decoding intermediate object program v.Like this, can reduce the circuit scale of decoding device.In addition, in the decoding device 400 of Figure 18, there is no need to have the FIFO memory, therefore, can reduce the circuit scale of logic owing to be used to carry out second calculating unit 415 that calculates.
In addition, for example, when the check matrix of LDPC sign indicating number is that the quantization number of the check matrix of Figure 15 and decoding intermediate object program v is when being 10, in the decoding device 600 of Figure 26, the RAM of 1614 bit capacities of the total number with rib is provided need for the memory 610 that is used to store decoding intermediate object program, and such RAM is provided need for the memory 613 that is used to store decoding intermediate object program, it has the capacity of the value that multiplies each other of the line number order of check matrix and the intermediate object program v that decodes, the i.e. capacity of 30 * 10=300 position.Like this, can reduce the circuit scale of decoding device.In addition, in the decoding device 600 of Figure 26, there is no need to have the FIFO memory, therefore, can reduce the circuit scale of logic owing to be used to carry out first calculating unit 612 that calculates.
Generally speaking, because therefore the code length of LDPC sign indicating number uses p value size to be hundreds of LDPC sign indicating numbers greatly to thousands of extremely tens thousand of.In this case, use advantage to increase according to decoding device of the present invention.
In addition, owing to realize sum-product algorithm faithfully according to decoding device of the present invention, therefore the decoding loss except that message quantizes can not appear.
Industrial usability
According to above-mentioned viewpoint, by using according to decoding device of the present invention, the high-performance decoding has become can Energy.

Claims (40)

1. decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, and wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for being used for simultaneously P check node calculation with described LDPC sign indicating number decoding;
First rearranges parts, is used to rearrange as the result of a described P check node calculation and the message that obtains;
First storage component is used to store the result of the described P of the conduct that a rearranges check node calculation and the message data corresponding to P bar rib that obtains;
Second calculating unit is used for the message data that rearranges that provides from described first storage component is used for P variable node of described LDPC sign indicating number decoding calculated simultaneously;
Second rearranges parts, is used to rearrange the message that obtains as described P variable node result calculated;
Second storage component is used to store the described P of the conduct that rearranges a variable node result calculated and the message data corresponding to P bar rib that obtains, and is used for this message data is offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
2. according to the decoding device of claim 1, wherein, described first calculating unit has P the check node calculation device that is used to carry out check node calculation, and
Described second calculating unit has P the variable node calculator that is used to carry out variable node calculating.
3. according to the decoding device of claim 1, wherein, described second storage component is stored in during the check node calculation 1 filling of check matrix got the message data corresponding to rib that more tight such mode reads on line direction.
4. according to the decoding device of claim 1, wherein, described first storage component is stored in the variable node computing interval 1 filling of check matrix got the message data corresponding to rib that more tight such mode reads on column direction.
5. according to the decoding device of claim 1, wherein, when with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent in the submatrix of described check matrix weight be 2 or during more submatrix, described first and second memory units will be stored in the identical address place corresponding to the message data of P bar rib, and it is 1 unit matrix, accurate unit matrix or shift matrix that wherein said P bar rib belongs to weight.
6. according to the decoding device of claim 1, wherein, described second and first storage component comprise line number/P FIFO and columns/P FIFO, and
Each has the capable weight that corresponds respectively to described check matrix and a plurality of words of row weight described line number/P FIFO and described columns/P FIFO.
7. according to the decoding device of claim 1, wherein, described first and second memory units comprise RAM, and
Described RAM according to described message data filling is got more closely such mode, reading the described message data of sequential storage, and read described message data with the memory location order.
8. according to the decoding device of claim 1, also comprise:
Receive the information stores parts, the information that is used to store the LDPC sign indicating number that is received, and read P described received information simultaneously.
9. decoding device according to Claim 8, wherein, described reception information stores parts are stored described reception information in such a manner, and this mode is: can calculate necessary order according to described variable node and read received information.
10. according to the decoding device of claim 1, wherein, described first and second rearrange parts comprises barrel shifter.
11. according to the decoding device of claim 1, wherein, described first calculating unit and described second calculating unit are determined the message corresponding to P bar rib.
12. a decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding;
First rearranges parts, is used to rearrange the result of the described part calculated as P variable node and a described P check node calculation and the data that obtain;
First storage component is used to store the result of the described part of calculating as P variable node that rearranges and a described P check node calculation and the data corresponding to P bar rib that obtain;
Second calculating unit is used for the data that provide from described first storage component that rearrange are used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously;
Second rearranges parts, is used to rearrange the result of described other parts of calculating as P variable node and the data that obtain;
Second storage component is used to store the result of described other parts calculated as P variable node that rearrange and the data corresponding to P bar rib that obtain, and is used for these data are offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
13. according to the decoding device of claim 12, wherein, described first calculating unit comprises and is used to carry out described part that described P variable node calculate and P calculator of a described P check node calculation, and
Described second calculating unit comprises P the calculator that is used to carry out described other parts that described P variable node calculate.
14. decoding device according to claim 12, wherein, described first storage component is according to 1 filling of check matrix being got more closely such mode on line direction, store described data corresponding to rib, wherein when described other parts of carrying out that described P variable node calculate, read described data.
15. according to the decoding device of claim 12, wherein, described first storage component is two single port RAM.
16. according to the decoding device of claim 15, wherein, described two single port RAM are with the unit corresponding to the capable rib of the P of described check matrix, alternately storage is from the described data of described first calculating unit.
17. according to the decoding device of claim 15, wherein, each reads the described data that are stored in the identical address place described two single port RAM.
18. decoding device according to claim 12, wherein, when with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent in the submatrix of described check matrix weight be 2 or during more submatrix, described first storage component will be corresponding to the described storage of P bar rib at the identical address place, and it is 1 unit matrix, accurate unit matrix or shift matrix that wherein said P bar rib belongs to weight.
19. the decoding device according to claim 12 also comprises:
Receive the information stores parts, the information that is used to store the LDPC sign indicating number that is received, and read P described received information simultaneously.
20. decoding device according to claim 19, wherein, described reception information stores parts are stored described received information in such a manner, and this mode is: can read described reception information according to the necessary order of described other parts that described P variable node calculates.
21. according to the decoding device of claim 12, wherein, described first and second rearrange parts comprises barrel shifter.
22. a decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding;
First rearranges parts, is used to rearrange as the result of the described part of P check node calculation and the data that obtain;
First storage component, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib;
Second calculating unit is used for the data that provide from described first storage component that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding;
Second rearranges parts, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain;
Second storage component, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
23. according to the decoding device of claim 22, wherein, described first calculating unit comprises P calculator of the described part that is used to carry out a described P check node calculation, and
Described second calculating unit comprises described other parts and described P P the calculator that variable node calculates that is used to carry out a described P check node calculation.
24. decoding device according to claim 22, wherein, described second storage component is according to 1 filling of check matrix being got more closely such mode on column direction, storage is corresponding to the described data of rib, wherein, when carrying out the described part of a described P check node calculation, read described data.
25. according to the decoding device of claim 22, wherein, described second storage component is two single port RAM.
26. according to the decoding device of claim 25, wherein, described single port RAM is with the unit corresponding to the P bar rib of described check matrix, alternately storage is from the described data of described second calculating unit.
27. according to the decoding device of claim 25, wherein, each of described two single port RAM all reads the described data that are stored in the identical address place.
28. decoding device according to claim 22, wherein, when with weight be 1 unit matrix, accurate unit matrix or shift matrix and form to represent to represent in the submatrix of described check matrix weight be 2 or during more submatrix, described second storage component will be corresponding to the described storage of P bar rib at the identical address place, wherein, to belong to weight be 1 unit matrix, accurate unit matrix or shift matrix to described P bar rib.
29. the decoding device according to claim 22 also comprises:
Receive the information stores parts, be used to store the LDPC sign indicating number information that is received, and read P described received information simultaneously.
30. decoding device according to claim 29, wherein, described reception information stores parts are stored described reception information in such a manner, and this mode is: can read described reception information according to calculating necessary order for described other parts of a described P check node calculation and a described P variable node.
31. according to the decoding device of claim 22, wherein, described first and second rearrange parts comprises barrel shifter.
32. a decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for being used for simultaneously P check node calculation with described LDPC sign indicating number decoding;
First storage component is used to store as the result of a described P check node calculation and the message data corresponding to P bar rib that obtains;
First rearranges parts, is used to rearrange the message data that receives from first storage component;
Second calculating unit is used for being used for simultaneously P variable node of described LDPC sign indicating number decoding calculated from first message data that rearranges the parts reception;
Second storage component is used to store the message data that receives from second calculating unit, and is used for that this message data is offered second and rearranges parts;
Second rearranges parts, is used to rearrange the message data that receives from second storage component, and the message data that rearranges is offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
33. a decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding;
First storage component is used to store the result of the described part calculated as P variable node and a described P check node calculation and the data corresponding to P bar rib that obtain;
First rearranges parts, is used to rearrange the data that receive from first storage component;
Second calculating unit is used for be used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously from first data that rearrange the parts reception;
Second storage component is used to store the data that receive from second calculating unit, and is used for that these data are offered second and rearranges parts;
Second rearranges parts, is used to rearrange the data that receive from second storage component, and the message data that rearranges is offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
34. a decoding device that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described decoding device comprises:
First calculating unit is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding;
First storage component is used to store as the result of the described part of P check node calculation and the data corresponding to P bar rib that obtain;
First rearranges parts, is used to rearrange the data that receive from first storage component;
Second calculating unit is used for carrying out other parts of a described P check node calculation simultaneously from first data that rearrange the parts reception and being used for P variable node of described LDPC sign indicating number decoding calculated;
Second storage component is used to store the data that receive from second calculating unit, and is used for that these data are offered second and rearranges parts;
Second rearranges parts, is used to rearrange the data that receive from second storage component, and the message data that rearranges is offered described first calculating unit; With
The 3rd calculating unit is used for based on the final result of check node calculation and exports final decoded result.
35. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding;
First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain;
First storing step, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib;
Second calculation procedure is used for the data that provide from described first storing step that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding;
Second rearranges step, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain;
Second storing step, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
36. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding;
First rearranges step, is used to rearrange the result of the described part calculated as P variable node and a described P check node calculation and the data that obtain;
First storing step is used to store the result of the described part of calculating as P variable node that rearranges and a described P check node calculation and the data corresponding to P bar rib that obtain;
Second calculation procedure is used for the data that provide from described first storing step that rearrange are used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously;
Second rearranges step, is used to rearrange the result of described other parts of calculating as P variable node and the data that obtain;
Second storing step is used to store the result of described other parts calculated as P variable node that rearrange and the data corresponding to P bar rib that obtain, and is used for these data are offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
37. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding;
First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain;
First storing step, be used to store rearrange as the result of the described part of P check node calculation and the data that obtain corresponding to P bar rib;
Second calculation procedure is used for the data that provide from described first storing step that rearrange are carried out other parts of a described P check node calculation simultaneously and are used for P variable node calculating with described LDPC sign indicating number decoding;
Second rearranges step, is used to rearrange as described other parts of a described P check node calculation and P variable node result calculated and the data that obtain;
Second storing step, be used to store rearrange as described other parts of P check node calculation and described P variable node result calculated and the data that obtain corresponding to P bar rib and be used for these data are offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
38. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for being used for simultaneously P check node calculation with described LDPC sign indicating number decoding;
First storing step is used to store as the result of a described P check node calculation and the message data corresponding to P bar rib that obtains;
First rearranges step, is used to rearrange the message data from the output of first storing step;
Second calculation procedure is used for being used for simultaneously P variable node of described LDPC sign indicating number decoding calculated from first message data that rearranges step output;
Second storing step is used to store from the message data of second calculation procedure output, and is used for that this message data is offered second and rearranges step;
Second rearranges step, is used to rearrange the message data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
39. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for carrying out simultaneously a part that P variable node calculate and P check node calculation in order to the described LDPC sign indicating number of decoding;
First storing step is used to store the result of the described part calculated as P variable node and a described P check node calculation and the data corresponding to P bar rib that obtain;
First rearranges step, is used to rearrange the data from the output of first storing step;
Second calculation procedure is used for be used for other parts with described P variable node calculating of described LDPC sign indicating number decoding simultaneously from first data that rearrange step output;
Second storing step is used to store from the data of second calculation procedure output, and is used for that these data are offered second and rearranges step;
Second rearranges step, is used to rearrange the data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
40. a coding/decoding method that is used for LDPC sign indicating number decoding when using following matrix as submatrix, is represented the check matrix of described LDPC sign indicating number by the combination of a plurality of described submatrixs, wherein said matrix is: P * P unit matrix; Accurate unit matrix has wherein replaced as one or more 1 of unit matrix element with 0; Shift matrix, wherein said unit matrix or described accurate unit matrix are recycled displacement; And matrix, its be the two or more of described unit matrix, described accurate unit matrix and described shift matrix and; Perhaps P * P0 matrix, described coding/decoding method comprises:
First calculation procedure is used for being used for simultaneously the part with P check node calculation of described LDPC sign indicating number decoding;
First storing step is used to store as the result of the described part of P check node calculation and the data corresponding to P bar rib that obtain;
First rearranges step, is used to rearrange as the result of the described part of P check node calculation and the data that obtain;
Second calculation procedure is used for carrying out other parts of a described P check node calculation simultaneously from first data that rearrange step output and being used for P variable node of described LDPC sign indicating number decoding calculated;
Second storing step is used to store from the data of second calculation procedure output, and is used for that these data are offered second and rearranges step;
Second rearranges step, is used to rearrange the data from the output of second storing step, and the message data that rearranges is offered described first calculation procedure; With
The 3rd calculation procedure is used for based on the final result of check node calculation and exports final decoded result.
CNB2004800006017A 2003-05-13 2004-04-19 Decoding device and decoding method Expired - Fee Related CN100521553C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP133941/2003 2003-05-13
JP2003133941 2003-05-13
JP294383/2003 2003-08-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN 200910147019 Division CN101567699B (en) 2003-05-13 2004-04-19 Decoding device

Publications (2)

Publication Number Publication Date
CN1698271A CN1698271A (en) 2005-11-16
CN100521553C true CN100521553C (en) 2009-07-29

Family

ID=35350210

Family Applications (2)

Application Number Title Priority Date Filing Date
CN 200910147019 Expired - Fee Related CN101567699B (en) 2003-05-13 2004-04-19 Decoding device
CNB2004800006017A Expired - Fee Related CN100521553C (en) 2003-05-13 2004-04-19 Decoding device and decoding method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN 200910147019 Expired - Fee Related CN101567699B (en) 2003-05-13 2004-04-19 Decoding device

Country Status (1)

Country Link
CN (2) CN101567699B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4807063B2 (en) * 2005-12-20 2011-11-02 ソニー株式会社 Decoding device, control method, and program
US7647548B2 (en) * 2006-07-31 2010-01-12 Agere Systems Inc. Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture
CN101106382B (en) * 2007-07-31 2010-07-07 重庆盖尔乐普科技发展有限公司 High-speed LDPC code decoder based on category routing technology
JP5445828B2 (en) * 2009-05-29 2014-03-19 ソニー株式会社 Receiving apparatus, receiving method, program, and receiving system
CN104424045B (en) * 2013-09-09 2017-07-28 群联电子股份有限公司 Coding/decoding method, memorizer memory devices and non-volatile memory module
KR102589918B1 (en) * 2016-07-19 2023-10-18 삼성전자주식회사 Low density parity check decoder and storage device having the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
EP1407555A1 (en) * 2001-05-09 2004-04-14 Comtech Telecommunications Corp. Low density parity check codes and low density turbo product codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
CN1185796C (en) * 2002-11-15 2005-01-19 清华大学 Improved correcting decoding method for non-regular low-density parity-check code

Also Published As

Publication number Publication date
CN1698271A (en) 2005-11-16
CN101567699B (en) 2013-10-30
CN101567699A (en) 2009-10-28

Similar Documents

Publication Publication Date Title
EP1624581B1 (en) Decoding device, decoding method, and program
CN100472971C (en) Decoding method, decoding device, and program
CN101208864B (en) Decoding apparatus and decoding method
JP4487213B2 (en) Decoding apparatus and method, and program
CN101442317B (en) Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, and data receiving method
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
CN100521553C (en) Decoding device and decoding method
Kanchetla et al. Multi‐standard high‐throughput and low‐power quasi‐cyclic low density parity check decoder for worldwide interoperability for microwave access and wireless fidelity standards
JP4285148B2 (en) Decoding device, decoding method, and program
JP4729964B2 (en) Decoding device and decoding method
JP4284600B2 (en) Decoding device
JP2007020068A (en) Decoding equipment and decoding method
Kim et al. Design of a high-throughput IDPC decoder for DVB-S2 using local memory banks
JP2009027302A (en) Decoder and decoding method

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090729

Termination date: 20200419