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 PDFInfo
 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
Links
Images
Classifications

 H—ELECTRICITY
 H03—BASIC ELECTRONIC CIRCUITRY
 H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
 H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
 H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. lowdensity parity check [LDPC] codes
 H03M13/1148—Structural properties of the code paritycheck or generator matrix
 H03M13/1174—Paritycheck or generator matrices built from submatrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes

 H—ELECTRICITY
 H03—BASIC ELECTRONIC CIRCUITRY
 H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
 H03M13/00—Coding, 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/63—Joint error correction and other techniques
 H03M13/635—Error control coding in combination with rate matching
 H03M13/6362—Error control coding in combination with rate matching by puncturing

 H—ELECTRICITY
 H03—BASIC ELECTRONIC CIRCUITRY
 H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
 H03M13/00—Coding, 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/65—Purpose and implementation aspects
 H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L1/00—Arrangements for detecting or preventing errors in the information received
 H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
 H04L1/0056—Systems characterized by the type of code used
 H04L1/0067—Rate matching
 H04L1/0068—Rate matching by puncturing

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L1/00—Arrangements for detecting or preventing errors in the information received
 H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
 H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. van Duuren system ; ARQ protocols
Abstract
Description
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 bidiagonal 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 highspeed mass communication system capable of processing and transmitting various information such as video and wireless data beyond voiceoriented 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.
HARQ is a channel error control method that combines the advantages and disadvantages of ARQ and FEC.
The HARQ 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 errorfree data is transmitted through the retransmission of the ARQ system without transmitting the error data to the user.
In the HARQ 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 simpleARQ method without an error correction code in a good channel environment.
However, as the channel environment becomes worse, the HARQ scheme has higher transmission efficiency than the simpleARQ 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 HARQ 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 highspeed 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 sumproduct 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 blocktype LDPC (BLDPC) 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 BLDPC 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 welldesigned 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 HARQ 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 BLDPC 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 BLDPC 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 BLDPC 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 abovedescribed puncturing method of the blocktype low density parity check code of the present invention,
In the blocktype low density parity check code having a bidiagonal 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 kSR 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
And said Is And Is a maximum integer less than or equal to c.
In addition, L _{1} (i) and L _{2} (i) are each
And u ' _{z} (i) and u'' _{z} (i) are each
And u _{z} (i) is
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 BLDPC codes having a block pair diagonal parity structure. The puncturing method of the present invention is based on a BLDPC 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 blocktype low density parity check code having a bidiagonal structure will be described with reference to the accompanying drawings.
In general, the parity check matrix H of a BLDPC having n columns and m rows can be divided into an information part and a parity part as follows.
Where z is the length of the row or column of the block, And to be. Block Pair Diagonal Parity Structure Can be expressed as Equation 1 below.
Matrix above
Has three nonzero blocks Has a pair of diagonal blocks Is a matrix of magnitudes. here The i th row and the j th column of are equal to i Unit matrix I of size, When to be. here Is Unit matrix of size to the right This is the matrix after the first cycle. The position of is in the lth row in block units. BLDPC codes used in IEEE 802.16e For efficient encoding , And Is designed. q is determined to be small with the block size z. Then the bits in every parity block One cycle with the length of One cycle with the length of Z cycles with lengths are connected to each other and are defined as connection 1, connection 2 and connection 3, respectively.Hereinafter, the abovedescribed block grouping order will be described with reference to FIG. 4.
First, maximize the number of kSR 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} / 21). In this way, a maximum number of m _{b} z / 2 1SR nodes are obtained, and each 1SR 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} / 41) as the second block group. In this way, a maximum number of m _{b} z / 4 2SR nodes is obtained, and each 2SR node updates reliability from all connected check nodes in recovery. In this way, in the tth block group, in the 2 ^{t1} (2n + 1) th block, (n = 0,1, ... m _{b} 1), the 2 ^{t1} 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.
remind
Is And 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.
In the above, k is a natural number and u _{n} (i), (i = 0,1, ..., n1) 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}
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 abovedescribed bit selection in the block.
However
Since the inblocks 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.
Using Equation 4, the determination of the position of the proposed puncturing bit may be expressed as Equation 5 below.
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
The last two bits using a sequence 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 BLDPC 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 kSR 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 BLDPC 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 BLDPC mother code of codeword length 2304, codeword length 1728, code rate 3/4, and codeword length 1536 are shown. The performance of the BLDPC 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 signaltonoise 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 BLDPC mother code under conditions that maximize girth. Three perforated BLDPC 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 BLDPC 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 BLDPC code can be obtained from one good mother BLDPC 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 BLDPC code having a bidiagonal 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 BLDPC code having a bidiagonal 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 nonperforated bits adjacent thereto are uniformly distributed to obtain better decoding performance.
Sixth, any form of HARQ technique can be applied to the puncture method of the present invention.
Claims (27)
 delete
 delete
 delete
 delete
 delete
 delete
 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 drilled2 ^{t1} (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.
 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.
 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
 delete
 delete
 delete
 delete
 delete
 delete
 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 subcompensation 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 drilled2 ^{t1} (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.
 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.
 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 subcompensation 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
 delete
 delete
 delete
 In the blocktype low density parity check code having a bidiagonal 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 drilled2 ^{t1} (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.
 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.
 In the blocktype low density parity check code having a bidiagonal 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
Priority Applications (1)
Application Number  Priority Date  Filing Date  Title 

KR1020070051785A KR100895612B1 (en)  20070529  20070529  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)  20070529  20070529  Method For Puncturing Of Block Type Low Density Parity Check Code 
Publications (2)
Publication Number  Publication Date 

KR20080104684A KR20080104684A (en)  20081203 
KR100895612B1 true KR100895612B1 (en)  20090506 
Family
ID=40366263
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

KR1020070051785A KR100895612B1 (en)  20070529  20070529  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)
Publication number  Priority date  Publication date  Assignee  Title 

KR20150120237A (en) *  20140417  20151027  삼성전자주식회사  QoE Provisioning Method And QoE Provisioning Apparatus for Mobile Video Application 
KR20150120235A (en)  20140417  20151027  삼성전자주식회사  a method amd an apparatus for generating a codeword and a method and an apparatus of recovering a codeword 
MX2017010997A (en)  20150227  20171018  Electronics & Telecommunications Res Inst  Parity puncturing device for fixedlength signaling information encoding, and parity puncturing method using same. 
WO2016137255A1 (en) *  20150227  20160901  한국전자통신연구원  Parity puncturing device for variablelength signaling information encoding, and parity puncturing method using same 
KR20160105309A (en)  20150227  20160906  한국전자통신연구원  Apparatus of parity puncturing for encoding variablelength signaling information and method using the same 
Citations (1)
Publication number  Priority date  Publication date  Assignee  Title 

KR20070054088A (en) *  20051122  20070528  삼성전자주식회사  Apparatus and method for transmitting/receiving signal in a communication system 

2007
 20070529 KR KR1020070051785A patent/KR100895612B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number  Priority date  Publication date  Assignee  Title 

KR20070054088A (en) *  20051122  20070528  삼성전자주식회사  Apparatus and method for transmitting/receiving signal in a communication system 
NonPatent Citations (1)
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. 26422646, Sept., 2005. 
Also Published As
Publication number  Publication date 

KR20080104684A (en)  20081203 
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 ratecompatible 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 (LDPCCC) encoder and LDPCCC 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 turbocoding 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)  Multiantenna reception apparatus, multiantenna reception method, multiantenna transmission apparatus and multiantenna 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 