KR100895612B1 - Method For Puncturing Of Block Type Low Density Parity Check Code - Google Patents

Method For Puncturing Of Block Type Low Density Parity Check Code Download PDF

Info

Publication number
KR100895612B1
KR100895612B1 KR1020070051785A KR20070051785A KR100895612B1 KR 100895612 B1 KR100895612 B1 KR 100895612B1 KR 1020070051785 A KR1020070051785 A KR 1020070051785A KR 20070051785 A KR20070051785 A KR 20070051785A KR 100895612 B1 KR100895612 B1 KR 100895612B1
Authority
KR
South Korea
Prior art keywords
puncturing
block
bit
bits
position calculator
Prior art date
Application number
KR1020070051785A
Other languages
Korean (ko)
Other versions
KR20080104684A (en
Inventor
김광순
박효열
황금찬
Original Assignee
연세대학교 산학협력단
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 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020070051785A priority Critical patent/KR100895612B1/en
Publication of KR20080104684A publication Critical patent/KR20080104684A/en
Application granted granted Critical
Publication of KR100895612B1 publication Critical patent/KR100895612B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03BASIC ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03BASIC ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H03BASIC ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. van Duuren system ; ARQ protocols

Abstract

The present invention relates to a method for puncturing a block type low density parity check code, and more particularly, in a block type low density parity check code having a bi-diagonal parity block structure to maximize the speed of the minimum recovery speed among the puncturing nodes. By drilling the parity bit nodes and arranging the puncture nodes as uniformly as possible in the zigzag edge connection, it minimizes performance degradation due to puncturing.Effective puncture in bits even when the number of nodes to be punctured is not an integer multiple of the block size The present invention relates to a drilling method that provides a pattern and effectively uses Hybrid Automatic Repeat and reQuest (HARQ) technology.
for teeth
In the block-type low density parity check code having a bi-diagonal parity block structure,
Determining a predetermined block group;
Positioning a block within the group;
A method of puncturing a block type low density parity check code, comprising: determining a position of a bit to be punctured in the block.
Low Density Parity Check, Block Type Low Density Parity Check, Bi-Diagonal Parity Structure, Perforation, Block Type Low Density Parity Check, LDPC, BLDPC, Dual-Diagonal, Puncturing.

Description

Method for Puncturing Of Block Type Low Density Parity Check Code}

1 is a view showing a bit position search order for puncturing according to the present invention;

2 is a diagram illustrating a configuration of a transceiver for supporting variable code rate according to the present invention;

3 is a diagram illustrating a configuration of a transceiver for HARQ operation according to the present invention;

4 is a view showing a procedure for selecting a block to be drilled according to the present invention;

5 is a flow chart showing a drilling method according to the present invention,

6 is a flow chart that shows the punching method according to the present invention formulaally,

7 is a diagram schematically illustrating selection of a block unit and a bit unit to be punctured using the flowchart of FIG. 6;

8 is a graph showing the effectiveness of bit unit selection in the drilling method;

9 is a graph showing the performance of a punctured code by applying a puncture algorithm in a block LDPC mother code having a code rate of 1/2;

10 is a graph showing the performance of a code punctured by applying a puncturing algorithm in a block LDPC mother code having a code rate of 1/3.

The present invention relates to a method for puncturing a block type low density parity check code, and more particularly, in a block type low density parity check code having a bi-diagonal parity block structure to maximize the speed of the minimum recovery speed among the puncturing nodes. By drilling the parity bit nodes and arranging the puncture nodes as uniformly as possible in the zigzag edge connection, it minimizes performance degradation due to puncturing.Effective puncture in bits even when the number of nodes to be punctured is not an integer multiple of the block size The present invention relates to a drilling method that provides a pattern and effectively uses Hybrid Automatic Repeat and reQuest (HARQ) technology.

In general, as the mobile communication system develops rapidly, there is a demand for developing a technology capable of transmitting a large amount of data approaching the capacity of a wired network in a wireless network. In this way, as a high-speed mass communication system capable of processing and transmitting various information such as video and wireless data beyond voice-oriented services is required, improving system transmission efficiency by using an appropriate channel coding method is improved system performance. It becomes an essential element for. However, due to the characteristics of the mobile communication system, the mobile communication system inevitably generates an error due to noise, interference, fading, etc. according to channel conditions when data is transmitted. The loss of the information data due to the error occurs.

Therefore, there is a need for an encoder and decoder having high performance in order to recover information transmitted from a transmitter without error in a receiver. In particular, due to the characteristics of the mobile communication system, the radio channel environment must be taken into consideration, so that an error caused by the radio channel environment must be considered more seriously.

In order to reduce information data loss due to such an error, reliability of the mobile communication system may be improved by using various error control schemes according to the characteristics of the channel. Among the error control schemes, the most commonly used error control schemes include forward error correction (FEC) and automatic repeat request (ARQ).
In the channel error control scheme, the ARQ scheme provides a simple and high data reliability.
However, as the channel error rate increases, the throughput decreases drastically.
In contrast, the FEC scheme is less sensitive to changes in channel error rate, thus maintaining a relatively constant transmission efficiency.
However, the FEC increases the redundancy to improve the error correction function, thereby reducing the transmission efficiency of the system and increasing the complexity of the decoder.
H-ARQ is a channel error control method that combines the advantages and disadvantages of ARQ and FEC.
The H-ARQ system consists of an ARQ system and an FEC system.
The function of the FEC is to reduce the frequency of retransmissions due to errors that occur continuously through the error correction function, thereby increasing the transmission efficiency of the system.
If an error that is not solved by the error correction function of the FEC occurs, the error-free data is transmitted through the retransmission of the ARQ system without transmitting the error data to the user.
In the H-ARQ scheme, the code used for the FEC should have an error correction function and an error detection function.
This is essential for systems using ARQ and requires error detection codes such as parity check bits or cyclic redundancy check (CRC) in addition to channel codes for error correction.
The use of an error correction code increases the overhead burden for each transmission and retransmission. As a result, the transmission efficiency is lower than that of the simple-ARQ method without an error correction code in a good channel environment.
However, as the channel environment becomes worse, the H-ARQ scheme has higher transmission efficiency than the simple-ARQ scheme due to the error correction capability of the channel code.
As a result, a proper combination of FEC and ARQ can be more reliable than using FEC alone, and higher transmission efficiency than using only ARQ.
Consider H-ARQ scheme, Chase combining, partial IR, and full IR, which are currently discussed in 3GPP HSDPA (high speed downlink packet access).
In order to implement Hybrid ARQ, a physical space for storing sample values of each transport packet should be provided. Since the size of the storage space greatly affects the price of the terminal, the smaller the size, the better.
In addition, since the number information of each transmitted packet is used for combining several packets, higher reception reliability is required than other information.

Representative codes of the error correction code include a convolutional code, a turbo code, a low density parity check (LDPC) code, and the like.
The turbo code is known to have a better performance gain in high-speed data transmission than the convolutional code, which is mainly used for conventional error correction. The turbo code can effectively correct errors caused by noise generated in a transmission channel to increase reliability of data transmission. Has an advantage.
In addition, the LDPC code can be decoded using an iterative decoding algorithm based on a sum-product algorithm on a factor graph.

LDPC was first proposed by Gallager in 1962, and is a linear block code in which most of the elements of the parity check matrix H are '0'. Has long been forgotten. However, Mackay and Neal rediscovered it and showed excellent performance using Gallager's simple probabilistic decoding method.

The LDPC code is defined by a random parity check matrix H having a small number of '1's in the matrix. The parity check matrix H is a matrix for checking whether the received signal is normally decoded. When the product of the encoded received signal and the parity check matrix H becomes '0', it is determined that no error occurs. Accordingly, the LDPC code first designs a parity check matrix, which may be '0' when multiplied for all the encoded received signals, and then performs an operation of encoding by the encoder on the transmitting side according to the determined parity check matrix. Inversely, it is calculated.

The LDPC code has advantages such as superior performance, low decoding complexity, and parallel processing, compared to a turbo code, but has a problem of requiring a relatively high coding complexity and a large amount of memory for storing a generation matrix in an encoder.

In order to solve this problem, a block-type LDPC (B-LDPC) code that has a simple complexity that is simply proportional to the length of a codeword and can be efficiently encoded has been proposed. This B-LDPC code can be represented with very small amount of memory and has the advantage that it can be easily changed with various codeword lengths, and it is comparable to well-designed LDPC code rather than block structure in performance. Because of this advantage, it has been adopted as an optional technology in standardization technologies such as IEEE 802.16e (WiMax).

The communication system handled in the present invention is composed of a transmitter and a receiver as a general communication system, and the transmitter can be divided into an encoder, a perforator and a modulator.
The receiver can be divided into a demodulator, a zero inserter and a decoder.
The transmitter encodes the bit information into an error correction code, punctures the parity bit according to the transmission code rate, and transmits the information through a modulator.
The receiver demodulates and inserts a '0' at the position of the punctured parity bit and decodes it.
Success of decoding can be done through an error detection code such as CRC (cyclic redundancy check).
If the decoding fails, the receiver sends NACK information to the transmitter to request additional transmission of parity.
If the decoding succeeds, the receiver sends information called ACK to the transmitter and requests transmission of the next information.
Such a method is called H-ARQ of a surplus incremental (IR) method, and the present invention relates to the above perforator.
Using such a perforator can easily support various code rates. However, to support various code rates without using a perforator, it is necessary to have a complex parity check matrix.
The conventional convolution code perforator uses a perforation location that maximizes the minimum distance, and in the case of the turbo code, the minimum distance is different depending on the input information. ADS) to determine the puncture location.
However, the LDPC code has been poorly studied about the method of determining the puncturing position compared to the other channel codes described above, and has been actively studied recently.
In addition, the Hybrid ARQ technology of the surplus incremental (IR) method is not currently supported in 802.16e.

In order to solve the above problems, an effective puncturing technique of the B-LDPC code is required. Recently, some techniques for drilling LDPC codes designed in any manner have been proposed. Although they can obtain a good puncturing pattern, it is difficult to obtain a puncturing pattern in real time due to a complicated puncturing algorithm, and a lot of memory is required to store an arbitrary puncturing pattern. Recently, a puncturing pattern for several B-LDPC codes has been proposed, but since it was not a specific and general puncturing pattern, but only a block puncturing structure, it is meaningless when a bit puncturing is required. do. Since then, a bitwise puncturing method has been proposed, but it was a simple method that did not properly utilize the bit substitution structure for each block of the actual B-LDPC code.

The present invention has been conceived in view of the above, it is possible to obtain a puncturing pattern in real time using less memory, and provides an efficient puncturing pattern in bits even when the number of puncture nodes is not an integer multiple of the block size. The purpose of this invention is to provide a drilling method that can effectively use the HARQ (Hybrid Automatic Repeat and reQuest) technology.

In the above-described puncturing method of the block-type low density parity check code of the present invention,

In the block-type low density parity check code having a bi-diagonal parity block structure,

Determining a predetermined block group;

Positioning a block within the group;

And determining a position of a bit to be punctured in the block.

In the determining of the predetermined block group, the punctured node may be recovered by repeated decoding of the smallest number of times.

In addition, the step of determining the predetermined block group, characterized in that the grouping so that the maximum number of k-SR node having the smallest k value.

In addition, the step of positioning the block in the group,

Checking whether the number of remaining blocks is odd;

And determining whether there are any blocks left unperforated in the current group.

In addition, the step of checking whether the number of remaining blocks is odd is made by checking whether m b / 2 t is an integer, wherein the value of m b is the number of rows of blocks, and t represents a group index. .

In addition, the step of positioning the bits to be punctured in the block,

The number of the remaining blocks the even and to determine the drilling bit positions by, left L 2 (i) if the number is an odd number of blocks by L 1 (i) If the block remains without being punctured in the current group, L 1 (i) and L 2 (i) are each

Figure 112007039111219-pat00001
And said
Figure 112007039111219-pat00002
Is
Figure 112007039111219-pat00003
And
Figure 112007039111219-pat00004
Is a maximum integer less than or equal to c.

In addition, L 1 (i) and L 2 (i) are each

Figure 112007039111219-pat00005

And u ' z (i) and u'' z (i) are each

Figure 112007039111219-pat00006

And u z (i) is

Figure 112007039111219-pat00007

It is characterized by that.

The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this application, the terms “comprises” or “having” are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described in the specification, and one or more other It is to be understood that the present invention does not exclude the possibility of the presence or the addition of features, numbers, steps, operations, components, parts, or a combination thereof.

Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

The present invention applies to all B-LDPC codes having a block pair diagonal parity structure. The puncturing method of the present invention is based on a B-LDPC code having a low density parity check matrix including an information region and a parity region composed of a predefined number of blocks, and a predetermined block group ( According to S10, the position S20 of the block is determined, and the position S30 of the bit to be punctured within the determined block is determined.

Hereinafter, a structure of a transmitter / receiver using a puncturer and a divider according to the present invention to support variable code rates will be described with reference to FIG. 1.

First, the information bits are received, and the encoded bits encoded and output by the encoder S110 are input to the puncturer S120. The encoding bit selector S123 of the puncturer selects only the encoding bits to be transmitted by the puncturing position calculator S122. At this time, the puncturing position calculator receives the information about the length of the parent code and the puncturing amount according to the code rate to be transmitted from the code rate controller (S121) and performs the puncturing position calculation in real time to inform the selector of the bits to be punctured. The selector S123 selects only bits that are not punctured among all coded bits. The selected coded bits are converted into symbols through a modulator (S130) and transmitted via a transmitter (S140).

Meanwhile, in the receiver S150, the transmitted symbol is input, converted into a temporary decision variable in units of coding bits through the demodulator S160, and input to the divider S170. The coded bit distribution and '0' inserter S171 of the distributor divides the temporary decision variable received by the puncturing position calculator S172 and inputs '0' into the punctured position. At this time, the puncturing position calculator (S172) receives the information on the parent code and the puncturing amount through a separate control channel from the code rate controller (S121) of the transmitting end, calculates the puncturing position in real time, and distributes the coded bits. The '0' inserter is notified of the position of the punctured bit, the coded bit distribution and inserter (S171) distributes the received temporary decision variables at positions other than the punctured position, and inserts '0' at the punctured position. do. The temporary decision variables output in this order are input to the decoder S180, decoded, and output as information bits.

Hereinafter, a transceiver for supporting HARQ will be described with reference to FIG. 2.

First, the information bits are input to the encoder S210, converted into encoded bits, and input to the puncturer S220. The encoded bits input to the puncturer are stored in the transmission encoded bit buffer (S221). The encoding bit selector S224 selects and outputs only the encoding bit to be transmitted currently from the buffer S221 according to the information of the puncturing position calculator S223. At this time, the puncturing position calculator (S223) receives the information on the mother code, the puncturing amount, and the number of retransmissions from the HARQ controller (S222) to perform the puncturing position calculation in real time to select the punctured position (S224). The selector selects the coded bits at positions not punctured from the transmit coded bit buffer S221. The output encoded bits are converted into symbols by the modulator S230 and transmitted via the transmitter S240.

The transmitted symbol is input to the receiver S250 and demodulated to a temporary decision variable in units of coding bits in the demodulator S260. The demodulated temporary decision variable is distributed to the received encoded bit buffer S274 through the encoded bit divider S272 according to the information of the puncturing position calculator S271 in the divider S270. At the position of the coded bit that has never been transmitted, '0' is stored in the buffer S274 through the '0' inserter S273 according to the information of the puncturing position calculator. At this time, the puncturing position calculator S271 transmits the punctured position to the encoding bit divider S272 and the '0' inserter S273, and the divider S272 receives the temporary decision variable input to the unpunctured position. It is stored in the corresponding position of the buffer S274. Similarly, the '0' inserter S273 inserts '0' at the punctured position of the reception encoding bit buffer S274. All temporary decision variables including 0 'stored in the buffer S274 are transmitted to the decoder S280, decoded, and passed to the parity checker S280.

The parity checker performs a parity check, and if it passes, transmits an ACK to the transmitting end and detects an information bit. If it fails, the parity checker transmits a NACK to the transmitting end. use.

Hereinafter, a method of puncturing a block-type low density parity check code having a bi-diagonal structure will be described with reference to the accompanying drawings.

In general, the parity check matrix H of a B-LDPC having n columns and m rows can be divided into an information part and a parity part as follows.

Figure 112007039111219-pat00008
Where z is the length of the row or column of the block,
Figure 112007039111219-pat00009
And
Figure 112007039111219-pat00010
to be. Block Pair Diagonal Parity Structure
Figure 112007039111219-pat00011
Can be expressed as Equation 1 below.

Figure 112007039111219-pat00012

Matrix above

Figure 112007039111219-pat00013
Has three non-zero blocks
Figure 112007039111219-pat00014
Has a pair of diagonal blocks
Figure 112007039111219-pat00015
Is a matrix of magnitudes. here
Figure 112007039111219-pat00016
The i th row and the j th column of are equal to i
Figure 112007039111219-pat00017
Unit matrix I of size,
Figure 112007039111219-pat00018
When
Figure 112007039111219-pat00019
to be. here
Figure 112007039111219-pat00020
Is
Figure 112007039111219-pat00021
Unit matrix of size to the right
Figure 112007039111219-pat00022
This is the matrix after the first cycle.
Figure 112007039111219-pat00023
The position of is in the lth row in block units. B-LDPC codes used in IEEE 802.16e
Figure 112007039111219-pat00024
For efficient encoding
Figure 112007039111219-pat00025
, And
Figure 112007039111219-pat00026
Is designed. q is determined to be small with the block size z. Then the bits in every parity block
Figure 112007039111219-pat00027
One cycle with the length of
Figure 112007039111219-pat00028
One cycle with the length of
Figure 112007039111219-pat00029
Z cycles with lengths are connected to each other and are defined as connection 1, connection 2 and connection 3, respectively.

Hereinafter, the above-described block grouping order will be described with reference to FIG. 4.

First, maximize the number of k-SR nodes having the smallest value. Select only blocks of degree 2 here. First, set the (2n + 1) th block as the first block group (n = 0,1, ..., m b / 2-1). In this way, a maximum number of m b z / 2 1-SR nodes are obtained, and each 1-SR node updates reliability from all connected check nodes in recovery. If all bits of the first block group are punctured, the 2 (2n + 1) th block is defined as (n = 0,1, ..., m b / 4-1) as the second block group. In this way, a maximum number of m b z / 4 2-SR nodes is obtained, and each 2-SR node updates reliability from all connected check nodes in recovery. In this way, in the t-th block group, in the 2 t-1 (2n + 1) th block, (n = 0,1, ... m b -1), the 2 t-1 -SR node (t = 1,2 ,. Continue until the number of blocks is maximized and the number of remaining blocks is odd. If the number of blocks remaining is odd, the block with the unpunctured degree 2 becomes the last block group.

Hereinafter, the drilling method will be described with reference to FIGS. 5 and 6.

First, the group index t is 1 and the number i of the current puncturing bits is initialized to 0 (S410). When i becomes Np (S420), the puncturing process is stopped (S490). Np is the total number of bits to puncture. If m b / 2 t is an integer (S430) and there are blocks left unperforated in the current group, i.e. i <(2 t -1) m b z / 2 t (S440), the position of the i th puncturing bit Is determined by L 1 (i) (S450). If all bits in the current block group are punctured (S440), the group index t is increased by 1 (S480). If m b / 2 t is not an integer (S430), that is, immediately after the group index is increased, if the number of remaining blocks is odd, the position of the i th puncturing bit is determined by L 2 (i). (S460). After punching one bit, i is increased by 1 (S470) and the drilling operation is continued (S420).

The position of the i th puncturing bit may be divided into a block selection and a bit selection step.

As a simple selection method, the leftmost block may be selected from the selected block group and the leftmost bit may be selected from the selected block. In this case, the positioning of the i th puncturing bit is expressed by Equation 2 below.

Figure 112007039111219-pat00030

remind

Figure 112007039111219-pat00031
Is
Figure 112007039111219-pat00032
And
Figure 112007039111219-pat00033
Is the largest integer less than or equal to c.

This method is easy and simple, but does not guarantee a uniform distribution of the puncturing bits. Therefore, a bit node having a relatively low reliability is present and performance degradation occurs.

In order to solve the above problem, a uniform selection sequence u n for uniformly distributing the puncturing bits in the zigzag edge connection is defined as in Equation 3 below.

Figure 112007039111219-pat00034

In the above, k is a natural number and u n (i), (i = 0,1, ..., n-1) is the i th element in the sequence u n . The above sequence u n can be calculated recursively in order to easily obtain in real time.

Also the partial sequence of the sequence u n

Figure 112007039111219-pat00035
Becomes another uniform selection sequence.

Therefore, by using the above uniform selection sequence as the block selection sequence, uniform selection is possible for each connection.

The above uniform selection sequence may also be used for bit selection in order to make uniform even when any bit is punctured in the above-described bit selection in the block.

However

Figure 112007039111219-pat00036
Since the in-blocks replace the internal bit connection, the bit replacement information and the uniform selection sequence must be used at the same time so that the puncturing bits can be completely uniformly allocated in the zigzag edge connection. Therefore, the modified uniform selection sequence using the bit substitution information is defined by Equation 4 as follows.

Figure 112007039111219-pat00037

Using Equation 4, the determination of the position of the proposed puncturing bit may be expressed as Equation 5 below.

Figure 112007039111219-pat00038

Hereinafter, an embodiment of the present invention will be described with reference to FIG. 7.

The upper part of FIG. 7 shows a case where only the proposed block grouping is used, and the lower part shows an embodiment in which the block selection and the bit selection are uniformly punctured as described above after the block grouping. Where z = 4, b 1 = q, p = b i = 0 for 2 <i <8 and the total number of puncture bits is six.

If only block grouping is used, the leftmost unperforated block is selected from the first block group, and the leftmost unperforated bit is selected within that block. In other words, if only block grouping is used, perforation is performed in the order of 5 bit-> 6 bit-> 7 bit-> 8 bit-> 13 bit-> 14 bit. After punching the six bits, it can be seen from the connections 1,2 and 3 that the punched bits are not evenly distributed.

However, if block selection and bit selection are punctured by using a uniform selection sequence considering bit substitution, bit 5-> bit 7-> bit 8-> bit 6-> bit 21-> bit 23 Perforations are made in the order of. As a result of the puncturing, it can be seen that the punched bits are uniformly distributed in all three types of connections. The first four bits are a sequence

Figure 112007039111219-pat00039
The last two bits using a sequence
Figure 112007039111219-pat00040
To determine the location.

Through the above results, it can be seen that using the present invention, even in the case of any number of puncturing bits, the puncturing nodes are uniformly distributed in the connections 1,2 and 3.

Hereinafter, the effects of the present invention will be described in detail with reference to FIGS. 8, 9, and 10.

In FIG. 8, the performance of the four puncturing bits is compared based on two code rates. In this case, the B-LDPC code of IEEE 802.16e with code rate 1/2, codeword length 2304 and z = 96 is used as the mother code, and the puncturing code of code rate 5/6 (7/8) is 922 from the mother code. (987) bits were made with the perforation of the present invention.

Since the corresponding puncturing amount is not divided by the size of the block, it can be seen that the code rate as described above cannot be obtained by the conventional puncturing technique.

In FIG. 8, the 'LF' method is a method of puncturing by simply selecting the leftmost bit without using the proposed block group method. In this case, there are many k-SR nodes with large k values, so the performance is very poor.

Secondly, the 'PG / LFB / WBS' method selects the leftmost block after the proposed block group method for block selection, and intentionally selects the right bit after substitution for bit selection (i.e. The worst choice). As can be seen from the performance difference between 'LF' and 'PG / LFB / WBS', the proposed block group method can achieve a significant performance improvement of perforated B-LDPC codes. It is important because it is generally available.

The third grouping method, which uses only the proposed block grouping, is to select the leftmost block and select the rightmost bits in the block after grouping the blocks. The proposed method and the PG / LFB Performance can be achieved between the performance of the / WBS 'method. In addition, there is an advantage that can be used simply without serious performance loss in the absence of substitution information of the parent code.

Fourth, the proposed method of uniformly selecting blocks and uniformly selecting bits in combination with the substitution method in the proposed puncturing bit selection shows the best frame error rate performance as shown in FIG. 6. In addition, it can be seen that the proposed block selection and bit selection have significant performance gains in the performance difference between the proposed method and the PG / LFB / WBS method.

In Fig. 9, a puncturing rate of code rate 1/2 of the IEEE 802.16e code rate, code rate 2/3 obtained from a B-LDPC mother code of codeword length 2304, codeword length 1728, code rate 3/4, and codeword length 1536 are shown. The performance of the B-LDPC code and the uncoded IEEE802.16e code and turbo code with the same code rate and length are compared.

As can be seen in FIG. 9, the perforated code obtained by the present invention is superior in performance except in the environment of a lower signal-to-noise ratio (SNR) than the conventional unperforated code and turbo code.

In Figure 10, code rates 1/3, 2/3, and 3/4, respectively, from code rate 1/3, codeword length 3456 generated B-LDPC mother code under conditions that maximize girth. Three perforated B-LDPC codes of length 2304, 1728, and 1536 were generated by the present invention. And the performance of frame error rate was compared under the same condition as turbo code and unperforated B-LDPC code of IEEE802.16e.

It can be seen from FIG. 10 that the proposed puncturing code outperforms the turbo code and the unpunched code. Therefore, using the puncturing technique of the present invention, a variable code rate B-LDPC code can be obtained from one good mother B-LDPC code, which is superior to the code used in commercial standards.

While the invention has been shown and described with respect to certain preferred embodiments, the invention is not limited to these embodiments, and those of ordinary skill in the art claim the invention as claimed in the appended claims. It includes all the various forms of embodiments that can be implemented without departing from the spirit.

According to the puncturing method of the present invention block type low density parity check code as described above,

First, more efficient bitwise puncturing for a B-LDPC code having a bi-diagonal parity structure can be achieved.

Secondly, it does not need memory to store arbitrary puncturing patterns and can puncture in real time through the formulated puncturing pattern,

Second, it is possible to generate a perforation pattern applicable to the B-LDPC code having a bi-diagonal structure,

Third, it is possible to provide a structural puncturing pattern having the best performance in any bit rate, that is, any code rate change,

Fourth, since the blocks and bits to be punctured are determined according to a predetermined block group, the performance of the punctured code can be basically guaranteed through this.

Fifth, since the perforated bits are uniformly distributed in the zigzag edge connection, the degradation of reliability of the perforated bits and the non-perforated bits adjacent thereto are uniformly distributed to obtain better decoding performance.

Sixth, any form of H-ARQ technique can be applied to the puncture method of the present invention.

Claims (27)

  1. delete
  2. delete
  3. delete
  4. delete
  5. delete
  6. delete
  7. A code rate controller for transmitting information necessary for puncturing;
    A puncturing position calculator (a) coupled to the code rate controller for calculating a puncturing bit position using given information;
    A transmitter connected to the puncturing position calculator (a) and including an encoding bit selector for selecting and transmitting an unpunctured bit among the encoding bits input to the puncturer;
    A puncturing position calculator (b) for receiving information through a control channel to the code rate controller of the transmitter and calculating a puncturing bit position;
    A receiver connected to the puncturing position calculator (b) and configured to distribute a temporal decision variable in units of coding bits and to insert and output '0' at a puncturing bit position and to output a '0' inserter;
    In a communication system supporting a variable code rate configured to include,
    The puncturing position calculator (a) of the transmitter and the puncturing position calculator (b) of the receiver calculate the positions of the puncturing bits in real time,
    The puncture position calculator (a), (b),
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    (T = 1, 2, ...) in each t step of determining the position and bit of the block to be drilled
    2 t-1 (2n + 1) th blocks are selected as ((n = 0,1, ..., m b / 2 t -1) tth blocks,
     At the beginning of each t step, check that the number of blocks remaining unpunctured is odd,
    And determining whether there are blocks left unperforated in the current group.
  8. The method according to claim 7,
    The step of checking whether the number of blocks remaining unperforated is odd is performed by checking whether m b / 2 t is an integer immediately after t is increased by 1, and the m b value is the number of rows in a block unit. t denotes a step of selecting a block and a bit.
  9. A code rate controller for transmitting information necessary for puncturing;
    A puncturing position calculator (a) coupled to the code rate controller for calculating a puncturing bit position using given information;
    A transmitter connected to the puncturing position calculator (a) and including an encoding bit selector for selecting and transmitting an unpunctured bit among the encoding bits input to the puncturer;
    A puncturing position calculator (b) for receiving information through a control channel to the code rate controller of the transmitter and calculating a puncturing bit position;
    A receiver connected to the puncturing position calculator (b) and configured to distribute a temporal decision variable in units of coding bits and to insert and output '0' at a puncturing bit position and to output a '0' inserter;
    In a communication system supporting a variable code rate configured to include,
    The puncturing position calculator (a) of the transmitter and the puncturing position calculator (b) of the receiver calculate the positions of the puncturing bits in real time,
    The puncture position calculator (a), (b),
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    Positioning the bits to be punctured in the block,
    L 1 (i) if there are even blocks that remain unpunctured at this time and are still unpunctured in the current group, and L 2 (i) if the number of blocks that remain unpunctured is odd. Determine the puncturing bit position, where L 1 (i) and L 2 (i) are respectively
    Figure 112008086559511-pat00041
    And said
    Figure 112008086559511-pat00042
    Is
    Figure 112008086559511-pat00043
    And
    Figure 112008086559511-pat00044
    Is a communication system supporting a variable code rate, the maximum integer being less than or equal to c.
  10. The method according to claim 9,
    L 1 (i) and L 2 (i) are each
    Figure 112007039111219-pat00045
    And u ' z (i) and u'' z (i) are each
    Figure 112007039111219-pat00046
    And u z (i) is
    Figure 112007039111219-pat00047
    Communication system supporting a variable code rate, characterized in that.
  11. delete
  12. delete
  13. delete
  14. delete
  15. delete
  16. delete
  17. A transmit encoded bit buffer for storing encoded bits;
    A HARQ controller for controlling feedback signals and information necessary for puncturing;
    A puncturing position calculator (a) connected to the HARQ controller and receiving the information to calculate the puncturing position;
    A transmitter connected to the encoding bit buffer and the puncturing position calculator (a) and including an encoding bit selector for selecting only encoding bits to be transmitted;
    A puncturing position calculator (b) that receives information through a control channel to the HARQ controller of the transmitter and calculates a puncturing position;
    A coded bit divider connected to the puncturing position calculator (b) to distribute received coded bits;
    A '0' inserter connected to the puncturing position calculator (b) to insert a '0' into a sub-compensation bit position that has not been transmitted;
    A receiver coupled to the encoded bit divider and the '0' inserter and including a received encoded bit buffer for storing received encoded bits;
    In a communication system supporting HARQ configured to include,
    The puncturing position calculator (a) of the transmitter and the puncturing position calculator (b) of the receiver calculate the positions of the puncturing bits in real time,
    The puncture position calculator (a), (b),
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    (T = 1, 2, ...) in each t step of determining the position and bit of the block to be drilled
    2 t-1 (2n + 1) th blocks are selected as ((n = 0,1, ..., m b / 2 t -1) tth blocks,
     At the beginning of each t step, check that the number of blocks remaining unpunctured is odd,
    A communication system supporting HARQ, characterized in that it comprises a step of checking the presence of blocks that are not punctured in the current group.
  18. The method according to claim 17,
    The step of checking whether the number of blocks remaining unperforated is odd is performed by checking whether m b / 2 t is an integer immediately after t is increased by 1, and the m b value is the number of rows in a block unit. t denotes a step of selecting a block and a bit.
  19. A transmit encoded bit buffer for storing encoded bits;
    A HARQ controller for controlling feedback signals and information necessary for puncturing;
    A puncturing position calculator (a) connected to the HARQ controller and receiving the information to calculate the puncturing position;
    A transmitter connected to the encoding bit buffer and the puncturing position calculator (a) and including an encoding bit selector for selecting only encoding bits to be transmitted;
    A puncturing position calculator (b) that receives information through a control channel to the HARQ controller of the transmitter and calculates a puncturing position;
    A coded bit divider connected to the puncturing position calculator (b) to distribute received coded bits;
    A '0' inserter connected to the puncturing position calculator (b) to insert a '0' into a sub-compensation bit position that has not been transmitted;
    A receiver coupled to the encoded bit divider and the '0' inserter and including a received encoded bit buffer for storing received encoded bits;
    In a communication system supporting HARQ configured to include,
    The puncturing position calculator (a) of the transmitter and the puncturing position calculator (b) of the receiver calculate the positions of the puncturing bits in real time,
    The puncture position calculator (a), (b),
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    Positioning the bits to be punctured in the block,
    L 1 (i) if there are even blocks that remain unpunctured at this time and are still unpunctured in the current group, and L 2 (i) if the number of blocks that remain unpunctured is odd. Determine the puncturing bit position, where L 1 (i) and L 2 (i) are respectively
    Figure 112008086559511-pat00048
    And said
    Figure 112008086559511-pat00049
    Is
    Figure 112008086559511-pat00050
    And
    Figure 112008086559511-pat00051
    Is a communication system supporting HARQ, which means a maximum integer less than or equal to c.
  20. The method according to claim 19,
    L 1 (i) and L 2 (i) are each
    Figure 112007039111219-pat00052
    And u ' z (i) and u'' z (i) are each
    Figure 112007039111219-pat00053
    And u z (i) is
    Figure 112007039111219-pat00054
    A communication system supporting HARQ, characterized in that the.
  21. delete
  22. delete
  23. delete
  24. In the block-type low density parity check code having a bi-diagonal parity block structure,
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    (T = 1, 2, ...) in each t step of determining the position and bit of the block to be drilled
    2 t-1 (2n + 1) th blocks are selected as ((n = 0,1, ..., m b / 2 t -1) tth blocks,
     At the beginning of each t step, check that the number of blocks remaining unpunctured is odd,
    A method for puncturing a block type low density parity check code, characterized in that it comprises the step of checking for the existence of blocks that are not punctured in the current group.
  25. The method of claim 24,
    The step of checking whether the number of blocks remaining without puncturing is an odd number is performed by checking whether m b / 2 t is an integer immediately after t is increased by 10,000. The m b value is the number of rows in a block unit. t is a method of puncturing a block type low density parity check code, characterized in that the step of selecting a block and a bit.
  26. In the block-type low density parity check code having a bi-diagonal parity block structure,
    Determining a predetermined block group;
    Positioning a block within the group;
    While positioning the bits to be punctured within the block,
    Positioning the bits to be punctured in the block,
    L 1 (i) if there are even blocks that remain unpunctured at this time and are still unpunctured in the current group, and L 2 (i) if the number of blocks that remain unpunctured is odd. Determine the puncturing bit position, where L 1 (i) and L 2 (i) are respectively
    Figure 112008086559511-pat00055
    And said
    Figure 112008086559511-pat00056
    Is
    Figure 112008086559511-pat00057
    And
    Figure 112008086559511-pat00058
    Is a puncturing method of a block type low density parity check code, characterized in that it means a maximum integer less than or equal to c.
  27. The method of claim 26,
    L 1 (i) and L 2 (i) are each
    Figure 112007039111219-pat00059
    And u ' z (i) and u'' z (i) are each
    Figure 112007039111219-pat00060
    And u z (i) is
    Figure 112007039111219-pat00061
    A puncturing method for a block-type low density parity check code, characterized in that.
KR1020070051785A 2007-05-29 2007-05-29 Method For Puncturing Of Block Type Low Density Parity Check Code KR100895612B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070051785A KR100895612B1 (en) 2007-05-29 2007-05-29 Method For Puncturing Of Block Type Low Density Parity Check Code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070051785A KR100895612B1 (en) 2007-05-29 2007-05-29 Method For Puncturing Of Block Type Low Density Parity Check Code

Publications (2)

Publication Number Publication Date
KR20080104684A KR20080104684A (en) 2008-12-03
KR100895612B1 true KR100895612B1 (en) 2009-05-06

Family

ID=40366263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070051785A KR100895612B1 (en) 2007-05-29 2007-05-29 Method For Puncturing Of Block Type Low Density Parity Check Code

Country Status (1)

Country Link
KR (1) KR100895612B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150120237A (en) * 2014-04-17 2015-10-27 삼성전자주식회사 QoE Provisioning Method And QoE Provisioning Apparatus for Mobile Video Application
KR20150120235A (en) 2014-04-17 2015-10-27 삼성전자주식회사 a method amd an apparatus for generating a codeword and a method and an apparatus of recovering a codeword
MX2017010997A (en) 2015-02-27 2017-10-18 Electronics & Telecommunications Res Inst Parity puncturing device for fixed-length signaling information encoding, and parity puncturing method using same.
WO2016137255A1 (en) * 2015-02-27 2016-09-01 한국전자통신연구원 Parity puncturing device for variable-length signaling information encoding, and parity puncturing method using same
KR20160105309A (en) 2015-02-27 2016-09-06 한국전자통신연구원 Apparatus of parity puncturing for encoding variable-length signaling information and method using the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070054088A (en) * 2005-11-22 2007-05-28 삼성전자주식회사 Apparatus and method for transmitting/receiving signal in a communication system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070054088A (en) * 2005-11-22 2007-05-28 삼성전자주식회사 Apparatus and method for transmitting/receiving signal in a communication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
E. Choi, S. Suh and J. Kim, "Rate Compatible Puncturing for Low Density Parity Check Codes with Dual Diagonal Parity Structure," in proc. IEEE 2005' PIMRC, vol. 4, pp. 2642-2646, Sept., 2005.

Also Published As

Publication number Publication date
KR20080104684A (en) 2008-12-03

Similar Documents

Publication Publication Date Title
US9214960B2 (en) Apparatus and method for transmitting and receiving data in communication/broadcasting system
KR20160115803A (en) Apparatus and method for constructing harq rate-compatible polar codes
US9923665B2 (en) System and method for forward error correction
US20180309600A1 (en) Method and apparatus for transmitting and receiving data in a communication system
JP5889620B2 (en) Method and apparatus using different modulation schemes for packet transmission
JP5648223B2 (en) Channel decoding method and apparatus in system using low density parity check code
US8077800B2 (en) Transmitting apparatus with bit arrangement method
EP2186200B1 (en) Apparatus and method for transmitting and receiving data in a communication system using low density parity check codes
KR101409948B1 (en) Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
JP5354979B2 (en) Low density parity check convolutional code (LDPC-CC) encoder and LDPC-CC decoder
JP3779271B2 (en) Method and apparatus for transmitting packet data in a mobile communication system
KR101200973B1 (en) Method and apparatus for storing log likelihood ratios in interleaved form to reduce hardware memory
RU2288541C2 (en) Improved sequential redundancy augmentation on turbo-coding basis
JP3647437B2 (en) Compound retransmission apparatus and method in mobile communication system
KR100856235B1 (en) Apparatus and method for encoding and decoding block low density parity check codes with a variable coding rate
US7864903B2 (en) Multi-antenna reception apparatus, multi-antenna reception method, multi-antenna transmission apparatus and multi-antenna communication system
EP2262144B1 (en) Apparatus and method for generating codes in communication system
US7814393B2 (en) Apparatus and method for coding/decoding block low density parity check code with variable block length
ES2604033T3 (en) Procedure and apparatus for channel decoding in a communication system using perforated LDPC codes
EP2566086B1 (en) Method and apparatus for transmitting and receiving information in a broadcasting/communication system
CN1206829C (en) Device and method for transmitting and receiving data in CDMA mobile communication system
KR100496216B1 (en) Adaptive hybrid ARQ using turbo code structure
JP4648302B2 (en) Method and apparatus for effective automatic repeat request
US9219575B2 (en) Method and apparatus for transmitting data streams in MIMO system
JP5964969B2 (en) Information transmission / reception method and apparatus in broadcasting / communication system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130311

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee