This application claims priority to an application filed in the Korean Industrial Property Office on Feb. 22, 2006 and assigned Ser. No. 2006-17360, the contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to an apparatus and a method for receiving a signal in a communication system, and in particular, to an apparatus and a method for receiving a signal in a communication system using a Low Density Parity Check (LDPC) code, which decodes the LDPC code using a horizontal shuffle scheduling algorithm whose sequence of check node operations is scheduled.
2. Description of the Related Art
Next-generation communication systems have evolved in the form of a packet service communication system for transmitting burst packet data to a plurality of Mobile Stations (MSs), and the packet service communication system has been designed suitable to be for mass data transmission. Further, next-generation communication systems are considering an LDPC code, together with a turbo code, as a channel code. The LDPC code is known to have an excellent performance gain at high-speed data transmission, and has an advantage in that it can enhance data transmission reliability by effectively correcting an error due to noise occurring in a transmission channel. Examples of next-generation communication systems considering the use of the LDPC code include the IEEE (Institute of Electrical and Electronics Engineers) 802.16e communication system, the IEEE 802.11n communication system, etc.
Reference will now be made to the structure of a signal transmission apparatus in a common communication system using a LDPC code, with reference to
Referring to
Next, reference will be made to the structure of a signal reception apparatus in a common communication system using an LDPC code, with reference to
Referring to
An LDPC code is a code defined by a parity check matrix in which most elements have a value of 0, but a small minority of other elements have a non-zero value, for example, a value of 1. Further, the LDPC code can be expressed using a bipartite graph which is represented by variable nodes, check nodes and edges connecting the variable nodes and the check nodes with each other. Reference will now be made to
The bipartite graph illustrated in
Next, a parity check matrix corresponding to the bipartite graph of an LDPC code, which is illustrated in
Referring to
If elements having a value of 0 are sequentially represented by “In” for the convenience of explanation, the parity check matrix shown in (a) can be expressed by a parity check matrix as shown in (b). That is, the parity check matrix shown in (b) includes twelve elements having a value of 1. That is, elements from I1, to I12 have a value of 1.
Further, the LDPC code can be decoded on the bipartite graph by using an iterative decoding algorithm based on a sum-product algorithm. Here, the sum-product algorithm is a type of message passing algorithm, and the message passing algorithm refers to an algorithm in which messages are exchanged on the bipartite graph through the edges, and an output message is calculated and updated from messages input into the variable nodes or the check nodes. Thus, since a decoder for decoding the LDPC code uses the iterative decoding algorithm based on the sum-product algorithm, it is less complex than a decoder for decoding a turbo code, and can be easily implemented as a parallel processing decoder.
How the message passing algorithm is implemented on the bipartite graph will now be described in detail.
An algorithm for implementing the message passing algorithm on the bipartite graph is largely classified into three algorithms, that is, a flooding algorithm, a horizontal shuffle scheduling algorithm and a vertical shuffle scheduling algorithm. Hereinafter, a description will be given for a procedure of updating a message in every iterative decoding when the respective three algorithms are used, with reference to
First, in using the flooding algorithm, check node operations for all the check nodes are simultaneously performed in every iterative decoding. That is, check node operations for the check node C1, the check node C2 and the check node C3 are simultaneously performed, so that edges connected with the respective check nodes, that is, (I1, I2, I3, I4), (I5, I6, I7, I8) and (I9, I10, I11, I12), are simultaneously and respectively message-updated. After the check node operations for all the check nodes are simultaneously performed in this way, variable node operations for all the variable operations are simultaneously performed. That is, variable node operations for the variable node V1, the variable node V2, the variable node V3, the variable node V4, the variable node V5 and the variable node V6 are simultaneously performed, so that edges connected with the respective variable nodes, that is, (I1, I5), (I2, I9), (I3, I6), (I7, I10), (I4, I11) and (I8, I12), are simultaneously and respectively message-updated.
Second, in using the horizontal shuffle scheduling algorithm, a check node operation for one check node is performed in every iterative decoding, and then variable node operations for all variable nodes connected with the check node, for which the check node operation has been performed, are simultaneously performed.
Specifically, if a check node operation for the check node C1 is performed first, edges connected with the check node C1, that is, (I1, I2, I3, I4), are message-updated. After the edges connected with the check node C1, that is, (I1, I2, I3, I4), are message-updated in this way, variable node operations for variable nodes connected with the check node C1, that is, the variable nodes V1, V2, V3 and V5, are simultaneously performed, so that edges connected with the respective variable nodes, that is, (I1, I5), (I2, I9), (I3, I,6) and (I4, I11), are simultaneously and respectively message-updated.
Next, if a check node operation for the check node C2 is performed, edges connected with the check node C2, that is, (I5, I6, I7, I8), are message-updated. After the edges connected with the check node C2, that is, (I5, I6, I7, I8), are message-updated in this way, variable node operations for variable nodes connected with the check node C2, that is, the variable nodes V1, V3, V4 and V6, are simultaneously performed, so that edges connected with the respective variable nodes, that is, (I1, I5), (I3, I6), (I7, I10) and (I8, I12), are simultaneously and respectively message-updated.
Finally, if a check node operation for the check node C3 is performed, edges connected with the check node C3, that is, (I9, I10, I11, I12), are message-updated. After the edges connected with the check node C3, that is, (I9, I10, I11, 112), are message-updated in this way, variable node operations for variable nodes connected with the check node C3, that is, the variable nodes V2, V4, V5 and V6, are simultaneously performed, so that edges connected with the respective variable nodes, that is, (I2, I9), (I7, I10), (I4, I11,) and (I8, I12), are simultaneously and respectively message-updated.
Third, in the case of using the vertical shuffle scheduling algorithm, a variable node operation for one variable node is performed in every iterative decoding, and then message updates for all check nodes connected with the variable node, for which the variable node operation has been performed, are simultaneously performed.
Specifically, if a variable node operation for the variable node V1 is performed first, edges connected with the variable node V1, that is, (I1, I5), are message-updated. After the edges connected with the variable node V1, that is, (I1, I5), are message-updated in this way, check node operations for check nodes connected with the variable node V1, that is, the check nodes C1 and C2, are performed, so that edges connected with the respective check nodes, that is, (I1, I2, I3, I4) and (I5, I6, I7, I8), are message-updated, respectively.
Next, if a variable node operation for the variable node V2 is performed, edges connected with the variable node V2, that is, (I2, I9), are message-updated. After the edges connected with the variable node V2, that is, (I2, I9), are message-updated in this way, check node operations for check nodes connected with the variable node V2, that is, the check nodes C1 and C3, are performed, so that edges connected with the respective check nodes, that is, (I1, I2, I3, I4) and (I9, I10, I11, I12), are message-updated, respectively.
Next, if a variable node operation for the variable node V3 is performed, edges connected with the variable node V3, that is, (I3, I6), are message-updated. After the edges connected with the variable node V3, that is, (I3, I6), are message-updated in this way, check node operations for check nodes connected with the variable node V3, that is, the check nodes C1 and C2, are performed, so that edges connected with the respective check nodes, that is, (I1, I2, I3, I4) and (I5, I6, I7, I8), are message-updated, respectively.
Next, if a variable node operation for the variable node V4 is performed, edges connected with the variable node V4, that is, (I7, I10), are message-updated. After the edges connected with the variable node V4, that is, (I7, I10), are message-updated in this way, check node operations for check nodes connected with the variable node V4, that is, the check nodes C2 and C3, are performed, so that edges connected with the respective check nodes, that is, (I5, I6, I7, I8) and (I9, i10, I11, i12), are message-updated, respectively.
Next, if a variable node operation for the variable node V5 is performed, edges connected with the variable node V5, that is, (I4, I11), are message-updated. After the edges connected with the variable node V4, that is, (I4, I11,), are message-updated in this way, check node operations for check nodes connected with the variable node V5, that is, the check nodes C1 and C3, are performed, so that edges connected with the respective check nodes, that is, (I1, I2, I3, I4) and (I9, I10, I11, I12), are message-updated, respectively.
Finally, if a variable node operation for the variable node V6 is performed, edges connected with the variable node V6, that is, (I8, I12), are message-updated. After the edges connected with the variable node V6, that is, (I8, I12), are message-updated in this way, check node operations for check nodes connected with the variable node V6, that is, the check nodes C2 and C3, are performed, so that edges connected with the respective check nodes, that is, (I5, I6, I7, I8) and (I9, I10, I11, I12), are message-updated, respectively.
As described above, in the case of using the flooding algorithm, check node operations for all check nodes are simultaneously performed, and variable node operations for all variable nodes are also simultaneously performed. Unlike the flooding algorithm, in the horizontal shuffle scheduling algorithm, check node operations for respective check nodes are sequentially performed. Therefore, there is a strong need for a scheme for scheduling the sequence of check node operations when a message passing algorithm is implemented using the horizontal shuffle scheduling algorithm, thereby improving the decoding performance of an LDPC code.
Accordingly, the present invention has been made to solve at least the above-mentioned problems occurring in the prior art, and one aspect of the present invention is to provide an apparatus and a method for receiving a signal in a communication system using an LDPC code.
Another aspect of the present invention is to provide an apparatus and a method for receiving a signal in a communication system using an LDPC code, which decodes the LDPC code by using a horizontal shuffle scheduling algorithm whose sequence of check node operations is scheduled.
In accordance with one aspect of the present invention, there is provided an apparatus for receiving a signal in a communication system. The apparatus includes a receiver for receiving the signal; and a decoder for decoding the received signal in a Low Density Parity Check (LDPC) decoding scheme in which a sequence of check node operations is scheduled.
In accordance with another aspect of the present invention, there is provided a method for receiving a signal in a communication system. The method includes receiving a signal; and decoding the received signal in a Low Density Parity Check (LDPC) decoding scheme in which a sequence of check node operations is scheduled.
The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that the similar components are designated by similar reference numerals although they are illustrated in different drawings. Also, in the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may obscure the subject matter of the present invention. Further, it should be noted that only parts essential for understanding the operations according to the present invention will be described and a description of parts other than the essential parts will be omitted in order not to obscure the gist of the present invention.
The present invention provides an apparatus and a method for receiving a signal in a communication system using an Low Density Parity Check (LDPC) code, which decodes the LDPC code while scheduling the sequence of check node operations when a message passing algorithm is implemented using a horizontal shuffle scheduling algorithm. Further, although separately described and illustrated herein, it is clear that when an LDPC code is decoded using the horizontal shuffle scheduling algorithm of the present invention, a procedure of scheduling the sequence of check node operations and decoding the LDPC code according thereto can be applied to a signal reception apparatus which has a structure as illustrated in
As noted above, check node operations for respective check nodes are sequentially performed when the horizontal shuffle scheduling algorithm is used. Therefore, if the sequence of check nodes for which a check node operation is performed is scheduled, the decoding performance of an LDPC code may become different. Thus, the present invention provides a scheme for improving the decoding performance of an LDPC code by scheduling the sequence of check node operations when the horizontal shuffle scheduling algorithm is used.
First, in the present invention, an LDPC code is decoded using an iterative decoding algorithm based on a sum-product algorithm which is an algorithm for decoding the LDPC code. Here, the sum-product algorithm is a type of message passing algorithm, and the message passing algorithm refers to an algorithm in which messages are exchanged on a bipartite graph through edges, and an output message is calculated and updated from messages input into variable nodes or check nodes.
In the present invention, the message passing algorithm is implemented using a horizontal shuffle scheduling algorithm on the bipartite graph, and particularly the message passing algorithm is implemented on the bipartite graph by using a horizontal shuffle scheduling algorithm whose sequence of check node operations is scheduled. Reference will now be made to a procedure of scheduling the sequence of check node operations of the horizontal shuffle scheduling algorithm.
First, in order to schedule the sequence of check node operations, the present invention defines the following three parameters which are defined on a bipartite graph.
(1) Girth According to Check Node
In general, girth refers to a minimum cycle on a bipartite graph corresponding to a parity check matrix of an LDPC code. The bipartite graph includes various sized cycles, among which a cycle having a minimum size is the girth. Now, since the present invention provides a scheme for scheduling the sequence of check node operations when the horizontal shuffle scheduling algorithm is used, it is necessary to consider the girth for every check node, and thus a minimum cycle according to each check node is defined as “girth according to check node”.
(2) Number of Girth
As mentioned above, girth according to check node is defined by a minimum cycle according to each check node. However, girth according to check node may exist in plural numbers, which is defined as “number of girth”. That is, a plural number of minimum cycles may exist according to each check node, and thus the number of minimum cycles according to a check node is defined as number of girth.
(3) Multi-Layer Degree (MLD)
Since the degree of the check node m is “1”, MLD in a first layer of the check node m is “1”, which can be expressed by Equation (1):
MLDm[1]=1 (1)
Further, in a second layer, the degree of a variable node connected with the check node m is “3”, one of which is the check node m. MLD in the second layer of the check node m can be expressed by Equation (2):
MLDm[2]=MLDm[1]+(3−1)=3 (2)
Further, MLD in a third layer of the check node m can be expressed by Equation (3):
MLDm[3]=MLDm[2]+(3−1)+(2−1)=6 (3)
MLDs in the respective layers of the check node m, as described above, can be summarized as Equation (4):
In Equation (4), degree(x) denotes the degree of a check node or variable node x, and N(k) denotes a set of all nodes belonging to a kth layer. In this embodiment of the present invention, layer depth must be predetermined for layers considered in using MLD. Here, the layer depth is a parameter indicating what number of layers in a check or variable node is a corresponding layer. As an example, if the layer depth is “1”, then it indicates that a corresponding layer is a first layer.
The above-defined three parameters, girth according to check node, number of girth and MLD, are arranged in increasing order and in decreasing order, respectively. Thus, by combining the priorities, increasing orders and decreasing orders of the respective three parameters with each other, various scenarios as shown below in Table 1 can be considered.
In Table 1, “i” denotes increasing order, “d” denotes decreasing order, “G” denotes girth, “NG” denoted number of girth, and “M” denotes MLD. Further, a symbol “_” connecting parameters indicates that when preceding parameter conditions are identical, the next parameter condition is to be applied. For example, “dG_iNG” in Table 1 represents that check nodes are primarily arranged in decreasing order of girth, and check nodes having the same girth are secondly arranged in increasing order of number of girth.
Therefore, simulations are performed for any parity check matrix by applying the various scenarios as defined in Table 1, and the sequence of check node operations is scheduled using a selected scenario that shows the best decoding performance as a result of the simulations. Thereby, when an LDPC code is decoded using a horizontal shuffle scheduling algorithm whose sequence of check node operations is scheduled, the decoding performance of the LDPC code is improved, which can also be easily confirmed through simulations.
Here, when an LDPC code is decoded using a horizontal shuffle scheduling algorithm in which check node operations are performed while being scheduled in sequence, it can be noted that the decoding performance of the LDPC code is improved as compared with that when the LDPC code is decoded using the horizontal shuffle scheduling algorithm as described above in the prior art section, in which check node operations are sequentially performed according to the sequence of check nodes of a parity check matrix. Also, it is clear that the decoding performance of the LDPC code may be different depending on the types, characteristics and generation schemes of the parity check matrix.
Thus, if a parity check matrix to be used in a communication system is determined and a message passing algorithm is determined to be implemented using the horizontal shuffle scheduling algorithm, simulations are performed by applying the respective scenarios as defined in Table 1 to the determined parity check matrix. From a result of the simulations, a scenario showing the best decoding performance of an LDPC code is selected, and the sequence of check node operations in the horizontal shuffle scheduling algorithm is scheduled.
In
The check node operation sequence scheduler 613 schedules the sequence of check node operations which are performed by the check node processor include in the node processing unit 611. Here, the check node operation sequence scheduler 613 performs a procedure of scheduling the sequence of check node operations in the same manner as described above, so a detailed description thereof will also be omitted.
According to the present invention as describe above, when a message passing algorithm is implemented using horizontal shuffle scheduling algorithm in a communication system, the decoding performance of an LDPC code can be improved by scheduling the sequence of check node operations.
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
17360/2006 | Feb 2006 | KR | national |