The present invention relates to an error correction technique in digital communications. More particularly, it relates to a coding apparatus for and a coding method of generating a coded signal with an LDPC (Low-Density Parity Check: low-density parity check) code, a coding and decoding apparatus for generating a coded signal with an LDPC code, and for decoding a signal coded with an LDPC code, and a communication apparatus for generating a coded signal with an LDPC code, and for transmitting the coded signal and receiving the coded signal coded with an LDPC code.
An LDPC code is an error correcting code having a correcting capability which comes close to the capacity of a channel, and a sparse matrix of non-zero elements (in a case of a binary matrix, “1”) is used as a check matrix.
An LDPC code is called a regular LDPC code when the number of non-zero elements thereof in the direction of columns and the number of non-zero elements thereof in the direction of rows are uniform, whereas it is called a non-regular LDPC code when each weight is nonuniform. It is known that a non-regular LDPC code generally has high decoding performance.
An LDGM (Low Density Generation Matrix) structure is known as a code structure of making it easy to code an LDPC code.
An LDPC code having the LDGM structure is characterized in that non-zero elements of a generator matrix for generating redundant bits are arranged in the shape of steps, and generation of redundant bits in order enables the LDPC code to be processed within a linear time period.
Because a non-regular LDPC code having the LDGM structure is easy to code and has a high error correction capability, utilization of such a non-regular LDPC code having the LDGM structure for many communication fields has been studied.
Furthermore, in order to simplify the code structure and the coding, and to parallelize the coding and decoding processings, an LDPC code having a QC (Quasi-Cyclic) structure has been examined widely.
In the QC structure, a check matrix is formed by cyclicly permuting a unit matrix only the number of predefined times. By changing the size of the unit matrix according to the required number of information bits, various information bit lengths can be supported.
In the example of
For example, “0” shows a unit matrix I, and “2” shows a matrix I' which is obtained by performing a cyclic permutation on the unit matrix I twice.
In the example of
The check matrix has a size of (12×z) rows and (24×z) columns, and the 13th to 24th rows of the fundamental matrix are associated with the generation of redundant bits.
For digital communications, one important technology is to change the number of redundant bits in a coded bit sequence which is error-correction-coded with flexibility.
In the third generation mobile communications, an HARQ (Hybid Automatic ReQuest) technology is applied and there is provided a function IR (Incremental Redundancy) of not only changing the number of redundant bits with flexibility, but also adding redundant bits of one code block to transmission data to transmit this data.
In HARQ of Type II which is a technology of, in order to transmit data efficiently, carrying out communications using an error correcting code having a high coding rate if the state of the channel is good, whereas, if the state of the channel is bad, carrying out communications using an error correcting code having a low coding rate, and transmitting additional redundant bits when having failed in the data transmission, IR can be implemented and a high error correction capability needs to be shown at various coding rates.
As a technology of making the coding rate variable, there is a method of generating an error correcting code sequence having a low coding rate, and then carrying out puncturing according to required bits.
For example, by generating an error correcting code having a coding rate of 1/3, and then puncturing the half of the redundant bits of the error correcting code to transmit, a coded sequence having a coding rate of 1/2 is transmitted and received. The method of making the coding rate variable using puncturing is used for various error correcting codes.
The following nonpatent reference 1 discloses that the coding rate can be changed also for an LDPC code by using puncturing.
The simplest puncturing method is a method of puncturing redundant bits at equal intervals, and is used not only for an LDPC code but also for a turbo code.
[Nonpatent reference 1] Mostafa El-Khamy, Jilei Hou, Naga Bhushan, “H-ARQ Rate-Compatible Structured LDPC Codes”, http://www.its.caltech.edu/˜mostafa/pubs/isit LDPC9.pdf
Because the conventional coding apparatuses are constructed as mentioned above, they can generate a coded signal having a high coding rate easily by puncturing some redundant bits out of an LDPC code at equal intervals. A problem is, however, that when puncturing some redundant bits out of an LDPC code having a QC structure at equal intervals, a large degradation occurs in the code.
This problem will be concretely shown below.
For example,
In this case, it should be noted that redundant bits which are generated with an LDPC code having an LDGM structure are chained to one another when generated.
For example, in the case of the LDPC code shown in
In the example of
As mentioned above, redundant bits of LDGM structure are generated while they are chained to one another, and, when the size z of a unit matrix I of QC structure is an even number, all redundant bits which are chained to one another are erased if redundant bits are punctured out of the LDPC code at intervals of one bit.
In this case, information bits having no redundant bit or information bits having a part in which redundant bits are extremely few exist, and these information bits become a cause of causing performance degradation.
Until now, the example in which the size z of the unit matrix I of QC structure is an even number and puncturing is carried out at intervals of an odd number of bits is shown. Also in a case in which the size z of the unit matrix I is an odd number and puncturing is carried out at intervals of an even number of bits, redundant bits which are chained to one another are erased in the same way as that mentioned above.
As can be seen from the above description, in an LDPC code having a QC structure and an LDGM structure, puncturing of some redundant bits at equal intervals without taking into consideration the relationship between the size z of a unit matrix and the number of punctured bits results in a cause of causing large performance degradation.
For example, in a case in which the size z of the unit matrix is always defined as an even number in an LDPC code of
The present invention is made in order to solve the above-mentioned problems, and it is therefore an object of the present invention to provide a coding apparatus, a coding method, a coding and decoding apparatus, and a communication apparatus which can generate a coded signal of a high coding rate without causing any degradation in the error correction capability.
A coding apparatus in accordance with the present invention includes a puncture rule setting means for, when carrying out puncturing of some redundant bits in an LDPC code having a check matrix of LDGM structure, setting up a puncture rule for preventing redundant bits which are chained to one another from being punctured, and punctures redundant bits out of an LDPC-coded signal generated by an LDPC coding means according to the puncture rule set up by the puncture rule setting means.
Because the coding apparatus in accordance with the present invention includes the puncture rule setting means for, when carrying out puncturing of some redundant bits in an LDPC code having a check matrix of LDGM structure, setting up a puncture rule for preventing redundant bits which are chained to one another from being punctured, and is constructed in such a way as to puncture some redundant bits out of an LDPC-coded signal generated by the LDPC coding means according to the puncture rule set up by the puncture rule setting means, there is provided an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability.
Hereafter, in order to explain this invention in greater detail, the preferred embodiments of the present invention will be described with reference to the accompanying drawings.
A receiver 2 depunctures an LDPC-coded signal transmitted from a transmitter 1 according to a puncture rule, and carries out LDPC decoding of the depunctured LDPC-coded signal to output information bits (decoded bits).
When carrying out puncturing of some redundant bits in an LDPC code having a check matrix H of QC structure and LDGM structure, the coding controlling unit 11 sets up a puncture pattern (a puncture rule) of preventing redundant bits which are chained to one another from being punctured. More specifically, the coding controlling unit sets up a puncture pattern of preventing redundant bits which are chained to one another at intervals equal to the size z of a unit matrix I in the check matrix H of QC structure and LDGM structure from being punctured. The coding controlling unit 11 constructs a puncture rule setting means.
The LDPC coding unit 12 carries out a process of LDPC-coding information bits to generate an LDPC-coded signal. The LDPC coding unit 12 constructs an LDPC coding means.
The puncturing unit 13 punctures some redundant bits out of the LDPC-coded signal generated by the LDPC coding unit 12 according to the puncture pattern set up by the coding controlling unit 11 so as to adjust the coding rate of the LDPC-coded signal. The puncturing unit 13 constructs a puncturing means.
A signal transmitting unit 14 carries out a process of transmitting the LDPC-coded signal punctured by the puncturing unit 13 to a channel. The signal transmitting unit 14 constructs a transmitting means.
A decoding controlling unit 21 carries out a process of setting up the same puncture pattern as the puncture pattern set up by the coding controlling unit 11. The decoding controlling unit 21 constructs the puncture rule setting means.
A signal receiving unit 22 carries out a process of receiving an LDPC-coded signal which is a transmission signal transmitted by a signal transmitting unit 14 from a channel, and calculating a received LLR (Log Likelihood Ratio: log likelihood ratio) of the LDPC-coded signal. The signal receiving unit 22 constructs a receiving means.
A depuncturing unit 23 depunctures the LDPC-coded signal received by the signal receiving unit 22 according to the puncture pattern set up by the decoding controlling unit 21. More specifically, the depuncturing unit depunctures the LDPC-coded signal received by the signal receiving unit 22 by identifying the non-punctured bits according to the same processing procedure as that which the puncturing unit 13 of the transmitter 1 follows, and returning the received LLR calculated by the signal receiving unit 22 to a bit position at which it is located immediately after coded. However, because bits which are not transmitted and received because of puncturing do not have reliability information, it is assumed that the received LLR is 0. The depuncturing unit 23 constructs a depuncturing means.
The LDPC decoding unit 24 carries out LDPC decoding of the LDPC-coded signal depunctured by the depuncturing unit 23 to output information bits (decoded bits). The LDPC decoding unit 24 constructs an LDPC decoding means.
Next, the operation of the communication apparatus will be explained.
When carrying out puncturing of some redundant bits in an LDPC code having a check matrix H of QC structure and LDGM structure, the coding controlling unit 11 of the transmitter 1 sets up a puncture pattern of preventing redundant bits which are chained to one another from being a punctured. More specifically, the coding controlling unit sets up a puncture pattern of preventing redundant bits which are chained to one another at intervals equal to the size z of a unit matrix I in the check matrix H of QC structure and LDGM structure from being a punctured.
Concretely, the coding controlling unit carries out the process as follows.
The coding controlling unit 11 forms a puncture pattern which does not lose all redundant bits which are chained to one another for the LDPC code having the check matrix H of QC structure. Hereafter, the process will be explained assuming that the size of the fundamental matrix is M×N, the size of the unit matrix I is z, and the number of the redundant bits r is (M−N)×z.
The coding controlling unit 11 sets the number of bits which the coding controlling unit does not puncture to T, and forms a puncture pattern which enables the puncturing unit 13 to permute the redundant bits r={ri} (i=1, 2, . . . ) by using a replacement pattern c=c{(i)} (i=0, 1, 2, . . . ) as will be shown below so as to generate output bits r′={r′i} as the redundant bits which have been punctured.
where u is an integer prime to ((N−M)×z−1), and v is an integer (0≦v<(N−M)×z).
When generating the output bits r′ which are the punctured redundant bits, as will be mentioned later in detail, the puncturing unit 13 outputs the leading T bits of the output bits r′ as will be shown below.
The replacement pattern c=c{(i)} (i=1, 2, . . . ) can also be generated as will be shown below.
An integer which is prime to the number (M−N)×z of the redundant bits r has a relation of being also prime to the size z of the unit matrix I, and all of the redundant bits r which are chained to one another at the regular intervals of z are not lost.
Although the method of puncturing the redundant bits at intervals having a length which is prime to the interval length z implements puncturing having good performance as mentioned above, the method has to have the step of calculating the replacement pattern and therefore a more-simplified method can be alternatively used.
By changing the puncturing order in which the puncturing is performed within the unit matrix I according to the size z of the unit matrix I, a puncture pattern is formed in such a way that any of the redundant bits which are chained to one another are not lost continuously. For example, the redundant bits r are grouped by dividing the redundant bits r in units of the z-bit size of the unit matrix I, and a puncture pattern is formed for every group.
At that time, by setting up the interval length of each group according to the size z of the unit matrix I in such a way as will be mentioned below to form a puncture pattern, the puncture pattern can be formed to prevent any of the redundant bits which are chained to one another from being lost continuously.
(1) When the size z is a prime number ->at equal intervals of the same length in all the groups
(2) When the number of size z is an odd number and that of the puncturing intervals is an even number
->at equal intervals of the same length in all the groups
(3) When the number of size z is an odd number and that of the puncturing intervals is an odd number
->if the number of size z and that of the puncturing intervals are prime to each other, at equal intervals of the same length in all the groups
if the number of size z and that of the puncturing intervals are not prime to each other, at equal intervals of the same length in all the groups, but shifted by one bit between each group
(4) When the number of size z is an even number and that of the puncturing intervals is an odd number
->at equal intervals of the same length in all the groups
(5) When the number of size z is an even number and that of the puncturing intervals is an odd number
->at equal intervals of the same length in all the groups, but shifted by one bit between each group
“At equal intervals of the same length in all the groups, but shifted by one bit between each group” shows that the first z-bit group is punctured at equal intervals from the leading bit in the group, and the next z-bit group is punctured at equal intervals not from the leading bit but from the next bit.
Hereafter, “at equal intervals of the same length in all the groups, but shifted by one bit between each group” will be explained by taking, as an example, a case in which an LDPC code of a coding rate 1/2 shown in
When the half of the redundant bits generated with the coding rate of 1/2 is punctured, the punctured redundant bits have a coding rate of 2/3.
As shown in
Furthermore, even though in units of each z-bit group, all the bits of the leading group are transmitted and all the bits of the next group are punctured, redundant bits which are chained to one another can be left.
By puncturing an LDPC code having a QC structure in the above-mentioned way so as to generate an LDPC code having a high coding rate, there can be provided a high error correction capability even at various coding rates. In contrast with this, as long as the size z of the unit matrix I is defined by only a prime number, the redundant bits can be punctured at equal intervals.
The design guideline of the above-mentioned puncture method can be applied to not only an LDPC code designed for an additive noise channel, such as an additive Gaussian noise channel or a phasing channel, but also an LDPC code designed for an erasure channel.
The decoding controlling unit 21 of the receiver 2 also sets up the same puncture pattern as that set up by the coding controlling unit 11 in the same way that the coding controlling unit 11 does.
When accepting information bits, the LDPC coding unit 12 of the transmitter 1 LDPC-codes the information bits at a coding rate of, for example, 1/2 so as to generate an LDPC-coded signal (step ST1).
When the LDPC coding unit 12 generates the LDPC-coded signal, the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 11 so as to adjust the coding rate of the LDPC-coded signal (step ST2).
More specifically, the puncturing unit 13 reads the redundant bits according to the following procedure in order to puncture the redundant bits so that the LDPC-coded signal has a coded bit length which is required by the communication system.
Because this Embodiment 1 is predicated on an LDPC code as shown in
Furthermore, because this Embodiment is premised on puncturing of an LDPC-coded signal having a coding rate of 1/2, the length of the redundant bits which have not been punctured yet is the same as the information bit length.
Furthermore, the redundant bits generated through the LDPC coding are expressed as r={ri}, a buffer for primarily storing the redundant bits is expressed as pk,l, and the redundant bits which have been punctured are expressed as r′={r′i}.
In addition, in this Embodiment 1, assuming that the maximum coding rate is 8/9 and the size z of the unit matrix I is always an even number, two kinds of reading rules qodd and qeven are made available as puncture patterns in such a way that the locations of the punctured bits are shifted between two adjacent z-bit groups.
First, the puncturing unit 13 stores the redundant bits r of the LDPC-coded signal generated by the LDPC coding unit 12 in the buffer pk,l for primary storage.
The puncturing unit 13 then performs a process of sequentially reading the redundant bits r′ which have been punctured from the buffer pk,l for primary storage, as will be shown below.
In
After all the coded redundant bit strings are stored, as to each odd-numbered one of the 12 groups, the puncturing unit reads data in an order defined by the reading rule qodd in the direction of columns, while as to each even-numbered one of the 12 groups, the puncturing unit reads data in an order defined by the reading rule qeven in the direction of columns, so that the order in which the data are outputted from each group is determined.
When the puncturing unit 13 punctures some redundant bits out of the LDPC-coded signal, the signal transmission unit 14 of the transmitter 1 modulates the punctured LDPC-coded signal so as to transmit this punctured LDPC-coded signal to a channel (step ST3).
When the signal transmission unit 14 of the transmitter 1 transmits the punctured LDPC-coded signal to the channel, the signal receiving unit 22 of the receiver 2 receives the punctured LDPC-coded signal from the channel and demodulates this punctured LDPC-coded signal (step ST4), and calculates a received LLR of the demodulated LDPC-coded signal (step ST5).
The depuncturing unit 23 of the receiver 2 depunctures the LDPC-coded signal received by the signal receiving unit 22 according to the puncture pattern set up by the decoding controlling unit 21 (step ST6).
More specifically, the depuncturing unit 23 depunctures the LDPC-coded signal by specifying the non-punctured bits according to the same processing procedure which the puncturing unit 13 of the transmitter 1 follows, and then returning the received LLR calculated by the signal receiving unit 22 to a bit position at which it is located immediately after coded.
However, because there is no reliability information about bits on which no transmission and reception operations are performed because of the puncturing, the received LLR is 0.
When the depuncturing unit 23 depunctures the LDPC-coded signal, the LDPC decoding unit 24 carries out a process of LDPC-decoding the LDPC-coded signal to output information bits (decoded bits) (step ST7).
When carrying out an IR (Incremental Redundancy) process of transmitting additional bits, the LDPC decoding unit 24 has only to sequentially output the information bits from the leading one of yet-to-be-transmitted bits of the redundant bits which are permuted in the transmission order.
As can be seen from the above description, the communication apparatus in accordance with this embodiment 1 is so constructed in such a way as to, when puncturing some redundant bits out of an LDPC code having a check matrix of QC structure and LDGM structure, set up a puncture pattern for preventing redundant bits which are chained to one another from being punctured, and puncture some redundant bits out of the LDPC-coded signal according to the puncture pattern. Therefore, the communication apparatus can leave the redundant bits which are chained to one another, and, as a result, provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability.
In this Embodiment 1, puncturing of some redundant bits in an LDPC code having a check matrix of QC structure and LDGM structure is shown. As an alternative, the communication apparatus can carry out puncturing of some redundant bits in an LDPC code having a check matrix of LDGM structure.
However, in this case, because an LDPC code does not have a QC structure, the coding decoding processing cannot be facilitated.
In above-mentioned Embodiment 1, the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of an LDPC-coded signal having a coding rate of 1/2, as previously shown. In this Embodiment 2, an example in which the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of an LDPC-coded signal having a coding rate of (N−M)/N will be explained.
Next, the operation of the communication apparatus will be explained.
When carrying out puncturing of some redundant bits in an LDPC code having a check matrix H of QC structure and LDGM structure, the coding controlling unit 11 of the transmitter 1 sets up a puncture pattern for preventing redundant bits which are chained to one another from being punctured. More specifically, the coding controlling unit sets up a puncture pattern for preventing redundant bits which are chained to one another at regular intervals of a length equal to the size z of a unit matrix I in the check matrix H of QC structure and LDGM structure from being punctured.
Concretely, this setup process is carried out as follows.
The coding controlling unit 11 forms a puncture pattern which does not lose all redundant bits which are chained to one another for an LDPC code having a check matrix H of QC structure. Hereafter, the process will be explained assuming that the size of the fundamental matrix is M×N, the size of the unit matrix I is z, and the number of the redundant bits r is (M−N)×z.
The coding controlling unit 11 sets the number of bits which the coding controlling unit does not puncture to T, and forms a puncture pattern which enables the puncturing unit 13 to permute the redundant bits r={ri} (i=1, 2, . . . ) by using a replacement pattern c=c{(i)} (i=0, 1, 2, . . . ) as will be shown below so as to generate output bits r′={r′i} as the redundant bits which have been punctured.
where u is an integer prime to ((N−M)×z−1), and v is an integer (0≦v<(N−M)×z).
When accepting information bits, the LDPC coding unit 12 of the transmitter 1 LDPC-codes the information bits at a coding rate of (N−M)/N so as to generate an LDPC-coded signal.
When the LDPC coding unit 12 generates the LDPC-coded signal, the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 11 so as to adjust the coding rate of the LDPC-coded signal.
More specifically, in order to puncture the redundant bits so that the LDPC-coded signal has a coded bit length which is required by the communication system, the puncturing unit 13 permutes the redundant bits r={ri} (i=1, 2, . . . ) by using the above-mentioned replacement pattern c=c{(i)} (i=0, 1, 2, . . . ), and outputs the leading n bits of the output bits r′, as will be shown below.
Because the process performed by the signal transmission unit 14 and subsequent processes are the same as those of above-mentioned Embodiment 1, the explanation of the processes will be omitted.
This Embodiment 2 provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability even when the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of an LDPC-coded signal having a coding rate of (N−M)/N.
In above-mentioned Embodiment 1, assuming that the maximum coding rate is 8/9 and the size z of the unit matrix
I is always an even number, two kinds of reading rules qodd and qeven are made available as puncture patterns in such a way that the locations of the punctured bits are shifted between two adjacent z-bit groups, as previously shown. In contrast, this Embodiment 3 can support both a case in which the size z of the unit matrix I is an even number and a case in which the size z of the unit matrix I is an odd number.
In this Embodiment 3, assuming that the maximum coding rate is 8/9 and the size z of the unit matrix I is an even or odd number, the coding controlling unit 11 provides, as puncture patterns, two kinds of reading rules qodd and qeven in such a way that the locations of the punctured bits are shifted between two adjacent z-bit groups
When the LDPC coding unit 12 LDPC-codes information bits at a coding rate of (N−M)/N so as to generate an LDPC-coded signal, the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 11 so as to adjust the coding rate of the LDPC-coded signal.
More specifically, the puncturing unit 13 reads the redundant bits according to the following procedure in order to puncture the redundant bits so that the LDPC-coded signal has a coded bit length which is required by the communication system.
In this Embodiment 3, the redundant bits generated through the LDPC coding are expressed as r={r1}, a buffer for primarily storing the redundant bits is expressed as pk,l, and the redundant bits which have been punctured are expressed as r′={r′1}.
First, the puncturing unit 13 stores the redundant bits r of the LDPC-coded signal generated by the LDPC coding unit 12 in the buffer pk,l for primary storage.
The puncturing unit 13 then performs a process of sequentially reading the redundant bits r′ which have been punctured from the buffer pk,l for primary storage, as will be shown below.
Because the process performed by the signal transmission unit 14 and subsequent processes are the same as those of above-mentioned Embodiment 1, the explanation of the processes will be omitted.
This Embodiment 3 provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability even when the size z of the unit matrix I is either of an even number and an odd number, like in the case of above-mentioned Embodiment 1.
An LDPC coding unit 32 carries out a process of LDPC-coding information packets so as to generate an LDPC-coded signal. The LDPC coding unit 32 constructs an LDPC coding means.
A puncturing unit 33 punctures the redundant packets of the LDPC-coded signal generated by the LDPC coding unit 32 according to the puncture pattern set up by the coding controlling unit 31 so as to adjust the coding rate of the LDPC-coded signal.
The puncturing unit 33 constructs a puncturing means.
A packet transmitting unit 34 carries out a process of transmitting the LDPC-coded signal punctured by the puncturing unit 33 to an erasure channel. The packet transmitting unit 34 constructs a transmitting means.
A decoding controlling unit 41 outputs the size z of the unit matrix I to an LDPC decoding unit 43 so as to make the LDPC decoding unit generate the same LDPC code as that transmitted by the transmitter 1.
A packet receiving unit 42 carries out a process of receiving the LDPC-coded signal which is the transmission signal of the packet transmitting unit 34 from the erasure channel.
An LDPC decoding unit 43 collects the rows of the check matrix which correspond to the LDPC-coded signal received by the packet receiving unit 42 and the numbers of the packets of the LDPC-coded signal so as to form a reception matrix, and decodes the reception matrix by using Gaussian elimination or the like.
Next, the operation of the communication apparatus will be explained.
When carrying out puncturing of some redundant packets in an LDPC code having a check matrix H of QC structure and LDGM structure, the coding controlling unit 31 of the transmitter 1 sets up a puncture pattern for preventing redundant packets which are chained to one another from being punctured. More specifically, the coding controlling unit sets up a puncture pattern for preventing redundant packets which are chained to one another at regular intervals of a length equal to the size z of a unit matrix I in a check matrix H of QC structure and LDGM structure from being punctured.
Concretely, this puncturing process is carried out as follows.
The coding controlling unit 31 forms a puncture pattern which does not lose all redundant packets which are chained to one another for an LDPC code having a check matrix H of QC structure. Hereafter, the process will be explained assuming that the size of the fundamental matrix is M×N, the size of the unit matrix I is z, and the number of the redundant packets r is (M−N)×z.
The coding controlling unit 31 sets the number of packets which the coding controlling unit does not puncture to T, and forms a puncture pattern which enables the puncturing unit 33 to permute the redundant packets r={ri} (i=1, 2, . . . ) by using a replacement pattern c=c{(i)} (i=0, 1, 2, . . . ) as will be shown below so as to generate output packets r′={r′i} as the redundant packets which have been punctured.
where u is an integer prime to ((N−M)×z−1), and v is an integer (0≦v<(N−M)×z).
When accepting information packets, the LDPC coding unit 32 of the transmitter 1 LDPC-codes the information packets at a coding rate of (N−M)/N so as to generate an LDPC-coded signal (step ST11).
When the LDPC coding unit 32 generates the LDPC-coded signal, the puncturing unit 33 of the transmitter 1 punctures the redundant packets of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 31 so as to adjust the coding rate of the LDPC-coded signal (step ST12).
More specifically, in order to puncture the redundant packets so that the LDPC-coded signal has a coded packet length which is required by the communication system, the puncturing unit 33 permutes the redundant packets r={ri}(i=1, 2, . . . ) by using the above-mentioned replacement pattern c=c{(i)} (i=0, 1, 2, . . . ), and outputs the leading T packets of the output packets r′, as will be shown below.
When the puncturing unit 33 punctures the redundant packets of the LDPC-coded signal, the packet transmitting unit 34 of the transmitter 1 modulates the punctured LDPC-coded signal so as to transmit the punctured LDPC-coded signal to an erasure channel (step ST13).
When the packet transmitting unit 34 of the transmitter 1 transmits the punctured LDPC-coded signal to the erasure channel, the packet receiving unit 42 of the receiver 2 receives the punctured LDPC-coded signal from the erasure channel and demodulates the punctured LDPC-coded signal (step ST14).
In this embodiment, it is assumed the channel is an erasure channel and all the packets of the LDPC-coded signal received by the packet receiving unit 42 are valid.
For example, by adding a CRC inspection bit to each packet of the LDPC-coded signal, whether or not each packet is valid can also be judged.
When the packet receiving unit 42 receives the LDPC-coded signal, the LDPC decoding unit 43 of the receiver 2 carries out erasure decoding of the LDPC-coded signal and then outputs the decoded packets (step ST15).
More specifically, the LDPC decoding unit 43 collects the rows of the check matrix which correspond to the LDPC-coded signal received by the packet receiving unit 42 and the numbers of the packets of the LDPC-coded signal so as to form a reception matrix, and decodes the reception matrix by using Gaussian elimination or the like.
When carrying out an IR (Incremental Redundancy) process of transmitting additional bits, the LDPC decoding unit 43 has only to sequentially output the decoded packets from the leading one of yet-to-be-transmitted ones of the redundant packets which are permuted in the transmission order.
As can be seen from the above description, this Embodiment 4 provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability even when the signal transmission unit 15 of the transmitter 1 modulates a punctured LDPC-coded signal to transmit the punctured LDPC-coded signal to an erasure channel, like in the case of above-mentioned Embodiment 1.
In this Embodiment 5, an example in which the communication apparatus can support both a case in which the size z of the unit matrix I is an even number and a case in which the size z of the unit matrix I is an odd number will be explained.
In this Embodiment 5, assuming that the maximum coding rate is 8/9 and the size z of the unit matrix I is an even or odd number, the coding controlling unit 31 provides, as puncture patterns, two kinds of reading rules qodd and qeven in such a way that the locations of the punctured bits are shifted between two adjacent z-bit groups.
When the LDPC coding unit 32 LDPC-codes information packets at a coding rate of (N−M)/N so as to generate an LDPC-coded signal, the puncturing unit 33 of the transmitter 1 punctures the redundant packets of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 31 so as to adjust the coding rate of the LDPC-coded signal.
More specifically, the puncturing unit 33 reads the redundant packets according to the following procedure in order to puncture the redundant packets so that the LDPC-coded signal has a coded packet length n which is required by the communication system.
In this Embodiment 5, the redundant packets generated through the LDPC coding are expressed as r={ri}, a buffer for primarily storing the redundant packets is expressed as pk,l, and the redundant packets which have been punctured are expressed as r′={r′l}.
First, the puncturing unit 33 stores the redundant packets r of the LDPC-coded signal generated by the LDPC coding unit 32 in the buffer pk,l for primary storage.
The puncturing unit 33 then performs a process of sequentially reading the redundant packets r′ which have been punctured from the buffer pk,l for primary storage, as will be shown below.
Because the process performed by the packet transmitting unit 34 and subsequent processes are the same as those of above-mentioned Embodiment 4, the explanation of the processes will be omitted.
This Embodiment 5 provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability even when the size z of the unit matrix I is either of an even number and an odd number, like in the case of above-mentioned Embodiment 4.
In this Embodiment 6, a communication apparatus which supports a case in which the size z of a unit matrix I in an LDPC code having a coding rate of 1/2 which is defined in a check matrix shown in
In this Embodiment 6, assuming that the maximum coding rate is 8/9 and the size z of the unit matrix I is an even number (concretely, 24, 28, 32, 36, 40, 44, 48, 52, 56, 64, 68, 72, 76, 80, 84, 88, 92, or 96), the coding controlling unit 31 provides, as a puncture pattern, a reading rule 1 in such a way that the locations of the punctured bits are shifted between two adjacent z-bit groups.
When the LDPC coding unit 12 LDPC-codes information bits at a coding rate of 1/2 so as to generate an LDPC-coded signal, the puncturing unit 13 of the transmitter 1 punctures some redundant bits out of the LDPC-coded signal according to the puncture pattern set up by the coding controlling unit 11 so as to adjust the coding rate of the LDPC-coded signal.
More specifically, the puncturing unit 13 reads the redundant bits according to the following procedure in order to puncture the redundant bits so that the LDPC-coded signal has a coded bit length n which is required by the communication system.
In this Embodiment 6, the redundant bits generated through the LDPC coding are expressed as r={rk}, a buffer for primarily storing the redundant bits is expressed as wk,l, and the redundant bits which have been punctured are expressed as r′={r′k}.
First, the puncturing unit 13 stores the redundant bits r of the LDPC-coded signal generated by the LDPC coding unit 12 in the buffer wk,l for primary storage.
The puncturing unit 13 then performs a process of sequentially reading the redundant bits r′ which have been punctured from the buffer wk,j for primary storage, as will be shown below.
Because the process performed by the signal transmission unit 14 and subsequent processes are the same as those of above-mentioned Embodiment 1, the explanation of the processes will be omitted. Results of a verification simulation of the error correction capability at the time of practicing the puncture method according to this Embodiment 6 will be shown in
This Embodiment 6 provides an advantage of being able to generate a coded signal having a high coding rate without causing any degradation in the error correction capability in the case in which the size z of the unit matrix I is an even number (concretely, 24, 28, 32, 36, 40, 44, 48, 52, 56, 64, 68, 72, 76, 80, 84, 88, 92, or 96), like in the case of above-mentioned Embodiment 1.
As mentioned above, in the coding apparatus, the coding method, the coding and decoding apparatus, and the communication apparatus in accordance with the present invention, there is provided a puncture rule setting means for, when carrying out puncturing of some redundant bits in an LDPC code having a check matrix of LDGM structure, setting up a puncture rule for preventing redundant bits which are chained to one another from being punctured, and a mechanism for puncturing some redundant bits out of an LDPC-coded signal generated by an LDPC coding means according to the puncture rule set up by the puncture rule setting means. Therefore, a coded signal having a high coding rate can be generated without causing any degradation in the error correction capability, the coding apparatus, the coding method, the coding and decoding apparatus, and the communication apparatus in accordance with the present invention are suitable for use in a mobile communications system which carries out digital communications, and so on.
Number | Date | Country | Kind |
---|---|---|---|
2006-340239 | Dec 2006 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2007/074150 | 12/14/2007 | WO | 00 | 5/29/2009 |