This application claims priority under 35 U.S.C. §119 to an application filed in the Korean Intellectual Property Office on Feb. 7, 2006 and assigned Serial No. 2006-11664, the contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates generally to a Low Density Parity Check (LDPC) code, and in particular, to a method for puncturing an LDPC code.
2. Description of the Related Art
LDPC codes are attracting great interest in a coding scheme suitable for Fourth-Generation (4G) mobile communication systems, because they have a superior performance and lower decoding complexity than turbo codes and can be processed in parallel at a high rate.
In 1962 Gallager first defined the LDPC codes as linear block codes using a parity check matrix H with a large number of 0's. Herein, the ‘0’ represents a zero element. The implementation technology has not been made due to code complexity, and the LDPC codes have been almost forgotten for a long time. Mackay and Neal have rediscovered the LDPC codes and have verified that they have a superior performance using a simple probabilistic decoding method of Gallager.
A sparse random parity check matrix H with a small number of 1's defines the LDPC code. Herein, the ‘1’ represents an example of a non-zero element. The parity check matrix H is used for determining whether a received encoded signal has been decoded normally. An error has not occurred, if a product of the received encoded signal and the parity check matrix H is 0 . After a predetermined parity check matrix is designed to produce zero when the LDPC codes are multiplied by all received encoded signals, an encoding operation in an encoder of a transmitting side is performed on the basis of the designed parity check matrix.
The parity check matrix H is randomly generated, in which overlapping between any two columns is not greater than 1. Herein, the weight indicates the number of non-zero elements, i.e., the number of 1's. The overlap between two columns is their inner product. The weight of a row or column is less than a code length. The parity check matrix H is constructed by LDPC codes for this reason.
Techniques capable of generating LDPC codes at various code rates are divided into two methods. The first method is designed in a manner such that parity check matrices with various code rates can be included in one main parity check matrix. This method generates the parity check matrices based on the various code rates suitable for constraints while generating the main parity check matrix. The LDPC codes generated from the above-described method can have the superior performance, and a performance at each code rate can be predicted. However, this method can neither obtain various code rates nor can it be applied to full Incremental Redundancy (IR) scheme or partial IR scheme of an Hybrid Automatic Repeat Request (H-ARQ) system requiring the technology of combining code bits due to a mismatch between code bit streams at code rates.
The second method performs a puncturing process suitable for a code rate after an encoding process. After a transmitting stage performs the puncturing process in a regular pattern, a decoder of a receiving stage inserts a Log Likelihood ratio (LLR) value of 0 and a probability value of 0.5 into a punctured bit node, such that a decoding process is possible. The puncturing process can easily generate a desired code rate and does not increase additional complexity in the encoding process. Moreover, the puncturing process can be applied to the H-ARQ technology as in a conventional Rate Compatible Punctured Turbo (RCPT) scheme. However, a performance of the second method is inferior to that of the first method based on LDPC codes with an optimal parity check matrix at each code rate. Various schemes are being provided in order to improve performance degradation due to puncturing of an LDPC code. Specifically, a block LDPC code puncturing scheme exhibits an improved performance close to a channel capacity limit.
Because the block LDPC code puncturing scheme is performed in a block unit, a desired performance can be expected at a particular code rate. However, the puncturing scheme cannot be applied at other code rates.
Accordingly, the present invention has been designed to solve the above and other problems occurring in the conventional art. Therefore, it is an aspect of the present invention to provide a puncturing method that can minimize performance degradation when a Low Density Parity Check (LDPC) code is punctured which is generated from an LDPC matrix with an almost zigzag parity pattern.
It is another aspect of the present invention to provide a method for puncturing a Low Density Parity Check (LDPC) code that can be applied at any code rate by applying puncturing processes in both block and bit units.
In accordance with an aspect of the present invention, there is provided a method for puncturing a Low Density Parity Check (LDPC) code that is expressed in a factor graph configured by a bit node and a check node connected to an edge and is decoded by a parity check matrix with a parity region configured by one column with a weight of 3 and columns with a weight of 2 forming a dual-diagonal matrix, including generating a mother code with a code rate; grouping bit nodes configuring the parity region in a block unit corresponding to z bit nodes; determining a transmission code rate for a data transmission and the number of bits to be punctured, P, in the mother code according to the transmission code rate; and performing a puncturing process in either the block unit or a bit unit or a dual puncturing process in both the block unit and the bit unit according to the transmission code rate for the data transmission.
Preferably, the code rate of the mother code is ⅓.
Preferably, when the transmission code rate is less than ½, the puncturing process in the bit unit is performed for
bits in each of (2n+1)th blocks where n=0, 1, . . . , 31.
Preferably, when the transmission code rate is ½, (2n+1)th blocks are punctured where n=0, 1, . . . , 31.
Preferably, when the transmission code rate is more than ½ and less than ⅔, the puncturing process in the block unit is performed for (4n+1)th and (4n+3)th blocks where n=0, 1, . . . , 15 and the puncturing process in the bit unit is performed for
bits in each of (4n+2)th blocks where n=0, 1, . . . , 15.
Preferably, when the transmission code rate is ⅔, (4n+1)th, (4n+2)th, and (4n+3)th blocks are punctured where n=0, 1, . . . , 15.
Preferably, when the transmission code rate is more than ⅔ and less than ⅘, the puncturing process in the block unit is performed for (8n+1)th, (8n+2)th, (8n+3)th, (8n+5)th, (8n+6)th, and (8n+7)th blocks where n=0, 1, . . . , 7 and the puncturing process in the bit unit is performed for
bits in each of (8n+4)th blocks where n=0, 1, . . ., 7.
Preferably, when the transmission code rate is ⅘, the puncturing process in the block unit is performed for (8n+1)th, (8n+2)th, (8n+3)th, (8n+5)th, (8n+6)th, and (8n+7)th blocks where n=0, 1, . . . , 7.
Preferably, when the transmission code rate is more than ⅘ and less than 8/9, the puncturing process in the block unit is performed for (16n+j)th blocks where n=0, 1, . . . , 7 and j=1, 2, 3, 4, 5, 6, 7, 9, . . . , 15 and the puncturing process in the bit unit is performed for
bits in each of (16n+8)th blocks where n=0, 1, . . . , 7.
Preferably, when the transmission code rate is 8/9, the puncturing process in the block unit is performed for (16n+j)th blocks where n=0, 1, . . . , 7and j=1, 2, 3, 4, 5, 6, 7, 9, . . . , 15.
The above and other aspects and aspects of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
A Low Density Parity Check (LDPC) code puncturing method in accordance with the present invention will be described in detail herein below with reference to the accompanying drawings.
The base matrix is divided into a pattern Hb, mapped to systematic bits and a pattern Hb2 mapped to parity check bits. Hb=└(Hb1)mb×kb:(Hb2)mb×nb┘. Hb2 is divided into a vector hb with a weight 3 and H′b2 with a dual-diagonal structure.
Hb2=└hb:H′b2┘.
The base matrix includes hb(0)=1, hb(mb−1)=1, and hb(j)=1(0<j<(mb−1)).
When step-by-step recoverable nodes are generalized and defined, a punctured bit node connected to at least one SC node that is connected to at least one (k-1)-SR node and m-SR nodes (0≦m≦k−1) is a k-SR node.
In accordance with the present invention, a puncturing method performs a puncturing process in a block unit with respect to particular code rates ⅓, ½, ⅔, and so on, and punctures some of bits configuring specific blocks after the puncturing process in the block unit, thereby obtaining a desired code rate incapable of being acquired in only the puncturing process in the block unit.
For convenience of explanation, there will be described an example of a mother code with a code rate R (=⅓) in 64 rows×96 columns based on an information part configured by blocks of 32 columns and a parity part configured by blocks of 64 columns in the present invention.
In order to obtain a code rate V2 from the mother code, one bit node block connected to all check node blocks can be punctured. In other words, when 1st, 3rd, 5th, 7th, . . . , 61st, and 63rd block columns of the parity part are punctured, the code rate ½ is obtained because 32 block columns are punctured.
On the other hand, a code rate ⅔ can be obtained because 16 block columns are additionally punctured when even block columns placed between the block columns punctured in the puncturing pattern based on the code rate ½ of the parity part are alternately punctured such that the number of 2-SR nodes is maximal in the puncturing pattern based on the code rate ½.
As illustrated in
To generate a code with the code rate of ¾, (53+⅓)z bits are to be punctured among 64z parity bits. Herein, z is the number of bit nodes configuring a block.
The code with the code rate of ¾ can be obtained when (5+⅓)z (=( 16/3)z) bit nodes are additionally punctured in the code with the code rate ⅔. Accordingly, a puncturing process in a bit unit is to be performed for the remaining unpunctured bit node blocks. Candidate blocks to be additionally punctured become (b (=8n+4))th blocks where n=0, 1, . . . , 7.
The puncturing process in the bit unit can consider a scheme for puncturing all bit nodes to be punctured in one block or performing the puncturing process in the bit unit for puncturing target bit nodes distributed over many candidate blocks. This process applies the scheme for performing the puncturing process in the bit unit for many candidate blocks.
In
When R=⅜, 32*(z/3) bits are to be punctured. In the puncturing pattern of
If the number of bits to be punctured, P, is 32z (R<½) when the puncturing pattern is generalized according to a code rate, b (=2n) blocks are transferred where n=0, 1, . . . , 31 and
bits are punctured in each of the b (=2n+1) blocks where n=0, 1, . . . , 31.
Alternatively, if P=32z (R=½), (b=(2n))th blocks are transferred where n=0, 1, . . . , 31, and (b=(2n+1))th blocks are punctured where n=0, 1, . . . , 31.
If 32z<P<48z (½<R<⅔), b (=4n) blocks are transferred where n=0, 1, . . . , 15 and
bits are punctured in each of the (b=(4n+1))th, (b=(4n+3))th, and (b=(4n+2))th blocks where n=0, 1, . . . , 15.
If P=60z (R= 8/9), (b=(16n))th blocks are transferred where n=0, 1, . . . , 7, and (b=(16n+j))th blocks are punctured where n=0, 1, . . . , 31 and j =1, 2, . . . , 15.
As described above, loss due to puncturing can be minimized when an improved puncturing pattern is designed and applied with respect to a zigzag parity region (or a dual-diagonal region with a single 3-weight column) in which coding is possible at coding complexity of 0(N).
In an LDPC code puncturing method of the present invention, puncturing processes are applied in both block and bit units. Therefore, all codes with required code rates can be obtained. The LDPC code puncturing method can be flexibly applied to Hybrid Automatic Repeat Request (H-ARQ) and Incremental Redundancy (IR) systems.
Number | Date | Country | Kind |
---|---|---|---|
2006-11664 | Feb 2006 | KR | national |