WO2018079987A1 - Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치 - Google Patents

Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치 Download PDF

Info

Publication number
WO2018079987A1
WO2018079987A1 PCT/KR2017/007877 KR2017007877W WO2018079987A1 WO 2018079987 A1 WO2018079987 A1 WO 2018079987A1 KR 2017007877 W KR2017007877 W KR 2017007877W WO 2018079987 A1 WO2018079987 A1 WO 2018079987A1
Authority
WO
WIPO (PCT)
Prior art keywords
length
code
lifting
value
code blocks
Prior art date
Application number
PCT/KR2017/007877
Other languages
English (en)
French (fr)
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 US16/344,260 priority Critical patent/US10756761B2/en
Publication of WO2018079987A1 publication Critical patent/WO2018079987A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC 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
    • HELECTRICITY
    • H03ELECTRONIC 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/155Shortening or extension of codes
    • HELECTRICITY
    • H03ELECTRONIC 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/251Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
    • HELECTRICITY
    • H03ELECTRONIC 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/0041Arrangements at the transmitter end
    • 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/0057Block codes
    • 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/0061Error detection codes
    • 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/0075Transmission of coding parameters to receiver

Definitions

  • the present invention relates to a transport block splitting method of a channel code in a wireless communication system, and more particularly, to a transport block splitting method of a low-density parity-check (LDPC) code and an apparatus therefor.
  • LDPC low-density parity-check
  • Wireless access systems are widely deployed to provide various kinds of communication services such as voice and data.
  • a wireless access system is a multiple access system capable of supporting communication with multiple users by sharing available system resources (bandwidth, transmission power, etc.).
  • multiple access systems include code division multiple access (CDMA) systems, frequency division multiple access (FDMA) systems, time division multiple access (TDMA) systems, orthogonal frequency division multiple access (OFDMA) systems, and single carrier frequency (SC-FDMA). division multiple access) system.
  • CDMA code division multiple access
  • FDMA frequency division multiple access
  • TDMA time division multiple access
  • OFDMA orthogonal frequency division multiple access
  • SC-FDMA single carrier frequency division multiple access
  • channel codes are essentially used in broadcast systems.
  • a transmitter may perform encoding on an input symbol by using an encoder and transmit an encoded symbol.
  • the receiving end may restore the input symbol by receiving the encoded symbol and performing decoding on the received symbol.
  • the size of the input symbol and the size of the encoded symbol may be defined differently according to the communication system.
  • LTE Long Term Evolution
  • 3GPP 3rd Generation Partnership Project
  • an input symbol has a maximum size of 6144 bits and a coded symbol size 18432 (6144 * 3) bits.
  • Turbo coding in an LTE communication system may be referred to by 3GPP Technical Specification 36.212.
  • the LTE turbo code has a slight improvement in performance even if the signal to noise ratio (SNR) increases due to the structure of the code.
  • SNR signal to noise ratio
  • it may be considered to use a code having a lower error rate, but in this case, there is a problem that the complexity increases.
  • the current LTE turbo code has a problem that an error floor occurs when the size of information increases. Accordingly, there is a need for a channel coding method capable of satisfying Ultra Reliable Radio (URR) and Low Latency Radio (LLR).
  • URR Ultra Reliable Radio
  • LLR Low Latency Radio
  • the present invention was devised to solve the above problems, and an object of the present invention is to provide a transport block partitioning method for a shifting network having high throughput.
  • Another object of the present invention is to provide an apparatus supporting these methods.
  • the transport block splitting method of a Low Density Parity Check (LDPC) code of a terminal having a 2 n shifting network of the present application for solving the above-mentioned problems is transported according to a predetermined condition among a plurality of preset lifting values.
  • LDPC Low Density Parity Check
  • the plurality of predetermined lifting values have the form A ⁇ 2 n , where A is an integer of 1 or more and n is an integer of 0 or more; Selecting at least one lifting value of the plurality of predetermined lifting values with respect to a first length subtracted from the transport block by a length corresponding to the determined number of code blocks; Dividing a transport block into a plurality of code blocks based on the selected at least one lifting value and the determined number of code blocks; And transmitting the divided codeblocks.
  • the predetermined condition is the number of code blocks by the maximum lifting value such that the first length is greater than the length of the code block by the maximum lifting value and less than twice the length of the code block by the maximum lifting value.
  • determining the at least one lifting value comprises: length of a code block corresponding to the at least one lifting value and a length corresponding to the number of code blocks by the determined maximum lifting value. Until the sum exceeds the length of the transport block: selecting a lifting value having the largest value among the lifting values having a minimum information bit length less than the first length among the plurality of preset lifting values; Repeating updating the first length by subtracting a minimum information bit length corresponding to a selected lifting value from the first length Thereby selecting the at least one lifting value.
  • the minimum information bit length may be a length to which the maximum shortening is applied to the information bit length by the corresponding lifting value.
  • the transport block splitting method of the LDPC code may further include performing shortening on at least one code block having a maximum length among the plurality of code blocks.
  • the plurality of code blocks may include a plurality of maximum length code blocks, and shortening of the same size may be performed on the plurality of maximum length code blocks.
  • the transport block splitting method of the LDPC code may further include transmitting information on the number of the plurality of code blocks.
  • the transport block splitting method of the LDPC code may further include transmitting information on the selected at least one lifting value.
  • the terminal for solving the above problems, the transceiver for transmitting and receiving a signal; Memory; And a processor for controlling the transceiver and the memory, wherein the processor is configured to divide a transport block of Low Density Parity Check (LDPC) code using a 2 n shifting network, wherein the processor is configured to: Among the preset lifting values of, the number of code blocks is determined by the maximum lifting value for the transport block according to a predetermined condition, and the length corresponding to the determined number of code blocks is subtracted from the transport block to the first length.
  • LDPC Low Density Parity Check
  • a lifting value from among the plurality of predetermined lifting values divide the transport block into a plurality of codeblocks based on the selected at least one lifting value and the determined number of codeblocks; Further configured to transmit the specified code blocks, wherein the predetermined condition is that the first length is the maximum lifting Determining the number of code blocks by the maximum lifting value to be greater than the length of the code blocks by value and less than twice the length of the code blocks by the maximum lifting value, wherein the at least one lifting value comprises: The plurality of predetermined blocks until the sum of the lengths of the code blocks corresponding to the at least one lifting value and the length corresponding to the number of code blocks by the determined maximum lifting value exceeds the length of the transport block.
  • the plurality of preset lifting values have the form A ⁇ 2 n , where A is 1 And n may be an integer of 0 or more.
  • the transport block partitioning method of the LDPC code of the present invention can increase throughput by using a single shifting value.
  • the transport block splitting method of the LDPC code of the present invention can minimize shortening of the minimum length code block by shortening the maximum length code block.
  • the transport block division method of the LDPC code of the present invention can prevent performance degradation by increasing the length of the minimum length code block.
  • FIG. 1 illustrates an encoding process according to an example.
  • FIG. 2 illustrates an encoding process of a transport block according to an example.
  • FIG 3 illustrates a Recursive Systematic Convolutional (RSC) encoder according to an example.
  • FIG 5 shows an example of a trellis according to an RSC encoder.
  • FIG. 6 shows an example of a trellis structure.
  • FIG. 7 illustrates a structured parity check matrix, according to one example.
  • FIG. 8 illustrates a model matrix according to an example.
  • 9 is a diagram for explaining transformation of a matrix according to the number of shifts.
  • FIG. 10 is a flowchart illustrating an LDPC code decoding method according to an example.
  • FIG. 11 shows a bipartite graph according to one example.
  • FIG. 12 illustrates an LDPC code decoding method using syndrome check according to an example.
  • FIG. 13 is a flowchart illustrating a transport block partitioning method according to an example.
  • FIG. 14 is a configuration diagram of a base station and a terminal according to an embodiment of the present invention.
  • CDMA code division multiple access
  • FDMA frequency division multiple access
  • TDMA time division multiple access
  • OFDMA orthogonal frequency division multiple access
  • SC-FDMA single carrier frequency division multiple access
  • CDMA may be implemented with a radio technology such as Universal Terrestrial Radio Access (UTRA) or CDMA2000.
  • TDMA may be implemented with wireless technologies such as Global System for Mobile communications (GSM) / General Packet Radio Service (GPRS) / Enhanced Data Rates for GSM Evolution (EDGE).
  • GSM Global System for Mobile communications
  • GPRS General Packet Radio Service
  • EDGE Enhanced Data Rates for GSM Evolution
  • OFDMA may be implemented in a wireless technology such as IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802-20, Evolved UTRA (E-UTRA), or the like.
  • UTRA is part of the Universal Mobile Telecommunications System (UMTS).
  • 3rd Generation Partnership Project (3GPP) long term evolution (LTE) employs OFDMA in downlink and SC-FDMA in uplink as part of Evolved UMTS (E-UMTS) using E-UTRA.
  • LTE-A Advanced is an evolution of 3GPP LTE.
  • FIG. 1 illustrates an encoding process according to an example.
  • the encoding process of FIG. 1 may be applied to many channel codes including a turbo code used in an LTE communication system.
  • a turbo code used in an LTE communication system.
  • the encoding process will be described based on terms according to standard documents of the LTE communication system.
  • the transmitting end may generate a transport block (TB) (S101).
  • the transmitting end adds a CRC bit for the transport block to the transport block (S102).
  • the transmitter may generate a code block from the transport block to which the CRC bit is added (S103).
  • the transmitting end may segment the transport block into code blocks based on the input size of the encoder.
  • the transmitter may add a CRC bit to each divided code block (S104). In this case, for example, the size of the code block and the code block CRC bits may consist of 6144 bits.
  • the transmitter may perform encoding and modulation (S105) on each block composed of a code block and CRC bits. For example, as described above, turbo coding may be applied.
  • the decoding process may be performed in the reverse order of the encoding process of FIG. 1.
  • the receiver may decode each code block by using a decoder corresponding to each encoder, and finally configure one transport block to check whether the CRC passes through the transport block.
  • the size of the input symbol may be different from the size of a transport block (TB) from the Media Access Control (MAC) layer. If the size of the transport block is larger than the maximum input symbol size of the turbo code, the transport block may be divided into a plurality of code blocks (CBs). According to the standard of the LTE communication system, the size of the code block may be the same as subtracting the Cyclic Redundancy Check (CRC) bit from 6144 bits.
  • An input symbol of a turbo code may be defined as data comprising a code block and a CRC or data including a transport block (eg, a transport block is less than 6144 bits) and a CRC. The CRC bit is a very small value (e.g.
  • a code block may refer to a code block itself or a CRC bit corresponding to a code block
  • a transport block refers to a transport block itself or a CRC bit corresponding to a transport block. can do.
  • FIG. 2 illustrates an encoding process of a transport block according to an example.
  • FIG. 2 illustrates an encoding process of the transport block 201 corresponding to the encoding process described above with reference to FIG. 1.
  • a transport block CRC 202 is added to the transport block 201.
  • the transport block CRC 202 may be used for identification of the transport block 201 in the decoding process.
  • the transport block 201 and transport block CRC 202 are then divided into three code blocks 203.
  • the code block 203 is divided into three code blocks, but the transport block 201 may be divided into a plurality of code blocks based on an input size of the encoder 205.
  • Code block CRC 204 is added to each code block 203.
  • the code block CRC 204 may be used for identification of the code block 203 at the receiving end.
  • Code block 203 and code block CRC 204 may be encoded via encoder 205 and modulator 206.
  • FIG 3 illustrates a Recursive Systematic Convolutional (RSC) encoder according to an example.
  • the RSC encoder 300 of FIG. 3 may be used for turbo coding.
  • m denotes input data
  • C1 denotes a systematic bit string
  • C2 denotes a coded bit string.
  • the RSC encoder 300 has a 1/2 code rate.
  • RSC encoder 300 may be configured by feeding back the encoded output to the input of a nonrecursive-non-systematic convoluational encoder.
  • the encoder 300 includes two delayers 301 and 302.
  • the values D of the delayers 301 and 302 may be determined according to a coding scheme.
  • Delays 301 and 302 may be configured as memory or shift registers.
  • the coding scheme of the LTE turbo encoder 400 is a parallel concatenation with two eight-state element encoders 410 and 420 and one turbo code internal interleaver 430.
  • Parallel Concatenated Convolutional Code (PCCC) is a parallel concatenation with two eight-state element encoders 410 and 420 and one turbo code internal interleaver 430.
  • Parallel Concatenated Convolutional Code (PCCC) is a parallel concatenation with two eight-state element encoders 410 and 420 and one turbo code internal interleaver 430.
  • PCCC Parallel Concatenated Convolutional Code
  • the turbo encoder 400 is composed of a first constituent encoder 410, a second element encoder 420, and a turbo code internal interleaver 430.
  • the first element encoder 410 and the second element encoder 420 are eight-state element encoders.
  • Each of the first element encoder 410 and the second element encoder 420 has a structure similar to that of the RSC encoder of FIG. 3.
  • the first element encoder 410 and the second element encoder 420 each include three delayers 411, 412, 413, 421, 422, and 423.
  • D is a value determined according to a coding scheme.
  • c k is the input to the turbo encoder 400.
  • the outputs from the first element encoder 410 and the second element encoder 420 are denoted as z k and z ' k , respectively.
  • the value output from the turbo code internal interleaver 430 is denoted by c ' k .
  • the delays 411, 412, 413, 421, 42, and 423 may delay the input value by one clock.
  • the delays 411, 412, 413, 421, 42, 423 may be configured to delay the input value for more than one clock according to the internal setting.
  • the delays 411, 412, 413, 421, 42, and 423 may be configured as shift registers, and may be configured to delay the input bits by a predetermined clock and then output the input bits to the next delays 411, 412, 413, 421, 42, 423. .
  • the turbo code internal interleaver 430 may reduce the effects of burst errors that may occur when transmitting signals over a wireless channel.
  • the turbo code internal interleaver 430 may be a Quadratic Polynomial Permutation (QPP) interleaver.
  • QPP Quadratic Polynomial Permutation
  • Turbo codes are high performance forward error correction (FEC) codes and are used in LTE communication systems.
  • a data block coded by turbo code may consist of three subblocks.
  • One subblock may correspond to m-bit payload data.
  • Another subblock may consist of n / 2 bits of parity bits for the payload, calculated using a recursive systematic convolution (RSC) code.
  • the remaining sub-blocks may be composed of n / 2 bits of parity bits for permutation of payload data, calculated using an RSC code.
  • the above-described permutation may be performed by an interleaver.
  • two subblocks of parity bits different from each other with the payload may be configured as one block. For example, if m is equal to n / 2, one block has a code rate of 1/3.
  • a process of reaching the input bit z k by the input c k may be divided into two paths.
  • the two paths are a first path connected without input feedback from the input to the output and a second path fed back from the input to the input.
  • c k is input, input via a delay unit 411, a rough input c k, and the retarder (411, 412, and 413), c k is applied to the output stage.
  • the relationship between the input end and the output end of the first path may be expressed by a polynomial.
  • the polynomial for the first path is called a forward generator polynomial and may be expressed as g1 of the following equation.
  • a rough input c k is fed back to the input end.
  • the polynomial for the second path is called a recursive generator polynomial and can be expressed as g0 in the following equation.
  • Equations 1 and 2 "+” means exclusive OR (XOR), and 1 means that the input goes through 0 delays.
  • D n means that the input goes through n delays.
  • FIG 5 shows an example of a trellis according to an RSC encoder.
  • FIG. 5 shows the configuration of the trellis of the RSC encoder shown in FIG.
  • S i represents a state of the i th input data.
  • each circle represents each node.
  • the line between each node means a branch.
  • the solid line refers to the branch for input value 1
  • the dotted line refers to the branch for input value 0.
  • the value on the branch is expressed as m / C1C2 (input value / systematic bit, coded bit). It may also have a state that is exponentially proportional to the number of memories of the encoder. For example, if the encoder includes a memory, 2 a states can be included in the trellis.
  • Trellis is a state machine that shows the possible state transitions of an encoder between two states.
  • a convolutional encoder such as an RSC encoder, may perform encoding according to a trellis diagram. Codewords encoded by the RSC encoder may be decoded according to an algorithm based on the trellis structure. For example, Viterbi or BCJR (Bahl, Cocke, Jelinek and Raviv) algorithms can be used.
  • FIG. 6 shows an example of a trellis structure.
  • n represents the length of a codeword.
  • trellis can be terminated by adding additional bits after the input sequence.
  • a sequence consisting of a sequence of zeros is called a tail bit. The tail bit terminates the trellis so that nodes in one state of the trellis have a value of zero.
  • the length of a codeword may be determined in consideration of the length k of input data and the length t of tail bits.
  • the length n of the codeword may have a value of (k + t) / R.
  • the length t of the tail bits can be determined as the length by which all delays (eg, memories) of the encoder can be reset.
  • the RSC encoder of FIG. 3 may use a total of 2 bits of tail bits.
  • the turbo encoder of the LTE communication as shown in FIG. 4 may use 3 bits of tail bits.
  • the tail bit has a relatively short length compared to the length of the input data.
  • code rate loss due to the tail bits may occur when the length of the codeword is limited.
  • trellis termination using tail bits is widely used. This is because the computational complexity is low and the error correction performance is excellent.
  • a puncturing code is a method of puncturing some of codewords.
  • some codewords are not transmitted because some of the codewords are punctured.
  • puncturing codes may be used to reduce code rate loss due to the addition of tail bits.
  • the receiving end may decode by using the trellis corresponding to the sum of the length k of the input data and the length t of the tail bit. That is, the receiver may perform decoding on the assumption that it has received a non-punctured codeword. In this case, the receiving end may assume that there is no input value for the branch from the node corresponding to the punctured bit (ie, the bit not transmitted at the transmitting end). That is, input data is assumed to be 0 or 1 with equal probability for branches of the node.
  • the CRC for the code block is added to the code block.
  • the CRC may be determined as the remainder derived after dividing the data to be transmitted using a preset check value as a divisor.
  • the CRC can generally be added at the end of the transmission data.
  • the receiving end may compare the remainder obtained by dividing the received data by a predetermined check value with the CRC or determine whether the remainder obtained by dividing the received data by the check value for the entire received data including the CRC is 0.
  • the size of the transport block is 6144 bits
  • the size of the CRC may be configured up to 24 bits. Therefore, the remaining bits except the CRC bit are determined as the size of the code block.
  • the receiving end may perform decoding in units of code blocks. Thereafter, the receiving end may configure the transport block from the code block, and determine success of decoding by checking the CRC for the transport block.
  • codeblock CRC is used for early decoding termination. For example, when a CRC check for one code block fails, the receiving end may transmit a negative acknowledgment (NACK) to the transmitting end without decoding the remaining code blocks.
  • NACK negative acknowledgment
  • the transmitting end may retransmit at least part of the transmission data. For example, the transmitting end may retransmit a transport block or one or more code blocks. For example, when retransmitting the entire transport block, excessive radio resources may be consumed for retransmission. Also, for example, when a NACK occurs due to a code block CRC failure at the receiver, the receiver may transmit information (eg, an index of a code block) of the code block at which the CRC failure occurs to the transmitter. In addition, the transmitting end may increase the radio resource efficiency by transmitting only the code block in which the CRC failure occurs using the information of the code block. However, when the number of code blocks is increased, the amount of data for feeding back the information of the code blocks (for example, the indexes of the code blocks) is increased.
  • the receiving end may inform the transmitting end of whether data reception was successful by using an ACK / NACK signal.
  • ACK / NACK for data received in the i-th subframe is transmitted in the i + 4th subframe.
  • retransmission may be performed in the i + 8th subframe. This takes into account the time for processing the transport block and the time for ACK / NACK generation. This is because the channel code processing for the processing of the transport block takes a lot of time.
  • the ACK / NACK and retransmission subframes are based on the processing of the transport block and the time for uplink ACK / NACK generation and uplink subframe allocation (for example, TDD uplink / downlink configuration). This can be determined.
  • ACK / NACK bundling and multiplexing may be used.
  • the turbo code has no further error rate improvement over a certain SNR.
  • a low-density parity-check (LDPC) code has been proposed.
  • the LDPC code is a linear block code, which is used in IEEE 802.11n, 802.11ac and Digital Video Broadcasting (DVB).
  • the LDPC code may be composed of a generation matrix and a parity check matrix.
  • data may be encoded through a product operation on message bits and a generation matrix.
  • a parity check matrix may be used instead of a generation matrix. For example, encoding of data may be performed using a parity check matrix.
  • the linear block code may be generated based on the generation matrix G or the parity check matrix H.
  • the linear block code is coded so that for every codeword c, Hc t has a value of zero.
  • the LDPC code may also be performed by checking whether the product of the parity check matrix H and the codeword c becomes '0' like other linear block codes. For example, the decoding of the LDPC code may be performed by determining whether the product (ie, Hc t ) of the transpose matrix and the parity check matrix of the codeword c is 0.
  • the parity check matrix is defined in a non-systematic form, and a uniform weight is applied to the rows and columns of the parity check matrix. The weight may mean the number of 1s included in a row or column.
  • the density of nonzero elements on the parity check matrix H of the LDPC code is low.
  • the LDPC code has a low decoding complexity and performance close to Shannon's theoretical limit. Due to the high error correction performance and low decoding complexity of the LDPC code, the LDPC code has characteristics suitable for high speed wireless communication.
  • the parity check matrix H may be used to generate the LDPC code.
  • the H matrix contains many zeros and one less.
  • the size of the H matrix may be 10 5 bits or more, and a lot of memory may be consumed to represent the H matrix.
  • the elements of the H matrix may be represented as sub-blocks of constant size, as shown in FIG. In FIG. 7, each element of the matrix H represents one subblock.
  • the size of the memory for representing the H matrix can be reduced by marking the subblocks with one integer index.
  • Each subblock may be, for example, a constant size permutation matrix.
  • FIG. 8 illustrates a model matrix according to an example.
  • the model matrix used for LDPC code encoding / decoding is shown in FIG. 8.
  • the model matrix may mean a parity check matrix composed of at least one subblock described below.
  • a sub block may be referred to as a shift number in the following description.
  • the model matrix may be extended to a parity check matrix based on the method described below. Therefore, encoding and decoding based on a specific model matrix means encoding and decoding based on a parity check matrix generated from an extension of the corresponding model matrix.
  • an index '-1' represents a zero matrix of a predetermined size.
  • the index '0' represents an identity matrix of a predetermined size.
  • Positive integer indices except '-1' and '0' represent the number of shifts.
  • the sub block represented by the index of '1' may mean a matrix shifted once in a specific direction from the unit matrix.
  • 9 is a diagram for explaining transformation of a matrix according to the number of shifts.
  • FIG. 9 illustrates a case in which the size of the sub block has four rows and four columns.
  • the subblock is shifted three times to the right from the unit matrix.
  • the parity check matrix of the code of the structured LDPC may indicate a sub block using an integer index of '3'.
  • encoding of the LDPC code may be performed by generating a generation matrix G from the parity check matrix H and encoding the information bits using the generation matrix.
  • Gaussian reduction is performed on the parity check matrix H to form a matrix of the form [P T : I].
  • the matrix P is a matrix in which the number of rows is k and the number of columns is nk
  • I is an identity matrix of size k.
  • the generation matrix G has the form [I: P T ].
  • the encoded information bits may be represented by a matrix x of one row k columns.
  • codeword c is xG
  • xG has the form [x: xP].
  • x represents an information part (or a systematic part)
  • xP represents a parity part.
  • the H matrix into a special structure without using Gaussian elimination, it is also possible to code information bits directly from the H matrix without inducing the matrix G. From the structures of the H matrix and the G matrix described above, the product of the transpose matrix of the matrix G and the matrix H has a value of zero. Using this feature and the relationship between the information bits and codewords described above, a codeword can be obtained by adding a parity bit after the information bits.
  • FIG. 10 is a flowchart illustrating an LDPC code decoding method according to an example.
  • codeword c is represented by codeword c 'which includes noise at the receiving end.
  • the receiver performs demultiplexing and demodulation on the received signal (S1000) and initializes decoding parameters (S1005).
  • the receiver updates check nodes and variable nodes (S1010 and S1015) and performs syndrome checks (S1020). That is, by checking whether c'H T is 0, the decoding procedure may be terminated.
  • c'H T is 0, the first k bits in c 'may be determined as information bits x. If T is c'H if not zero, be c'H T is the information bit recovery by x c 'finding that satisfies 0 on the basis of the decoding techniques, such as cup product (product-sum) algorithm.
  • FIG. 11 illustrates a bipartite graph, according to one example.
  • nodes on the left represent variable nodes
  • nodes on the right represent check nodes.
  • a binary graph is shown in the example of Figure 11, about the variable nodes and check nodes c 1 v 0 for the description.
  • the connecting line of the binary graph of FIG. 11 may be referred to as an edge.
  • the binary graph of FIG. 11 can be generated from Hc t .
  • the edge from variable node v 0 corresponds to one column of parity check matrix H and the edge from check node c 1 corresponds to one row of matrix H.
  • the product of the parity check matrix H and the transpose matrix of the codeword matrix c must have a value of '0'. Therefore, the value of variable nodes connected to one check node should be zero. Therefore, in FIG. 11, the exclusive OR (XOR) of the values of the variable nodes (v 0 , v 1 , v 4 , v 6 , v 9 , v 11 ) connected to the check node c 1 is' It must be 0 '.
  • Syndrome check means to check whether the value of the variable nodes connected to each check node is exclusive OR.
  • LDPC codes may be used.
  • an LDPC code may be used for the data channel.
  • a method of decoding an LDPC code using syndrome check instead of CRC has been proposed.
  • a syndrome check is performed every iterative decoding, the memory in which the log likelihood ratio for the variable node needs to be read every time for the syndrome check. Therefore, a problem may occur in which power consumption and delay due to memory reading are increased.
  • the sum-product algorithm is used as a standard deocoding algorithm for capacity-approaching code (e.g., turbo code or LDPC code).
  • a trust propagation algorithm is used as a decoding method using a sum-product algorithm.
  • operations on check nodes and variable nodes of the sum-product algorithm are sequentially processed to decode the LDPC code.
  • the probability value of the first variable node is passed to the check nodes associated with the first variable node, and the side information value calculated based on the probability value passed to each check node is calculated for each check node. Passed to variable nodes connected to. Updates to the remaining variable nodes are sequentially performed based on the passed side information value.
  • the probability values of all the variable nodes can be updated.
  • the probability value of another variable node already updated for the update of a particular variable node may be used.
  • decoding using a hierarchical trust propagation algorithm has a disadvantage in that the time for decoding is increased by the length of the codeword compared with the flooding belief propagation algorithm. For example, the decoding time may be increased by N times the length of the codeword.
  • FIG. 12 is a flowchart of an LDPC code decoding method using syndrome check according to an example.
  • the receiver calculates a Log Likelihood Ratio (LLR) value from the channel (S1201). For example, the receiving end may calculate the LLR value of the received input signal or codeword. In addition, although not shown in FIG. 12, the receiving end may initialize the variable nodes using the LLR value. In addition, the receiving end initializes the value of the parameter Itr to 0 (S1202). The parameter Itr is a parameter representing the number of repetitions.
  • the receiving end updates each of the check nodes based on the values of the variable nodes (S1203). For example, each check node may be updated based on the value of variable nodes associated with each check node by a parity check matrix. In addition, the receiving end may update each variable node (S1204). For example, the receiving end may update each variable node based on the value of the check nodes associated with each variable node (eg, the LLR value of the check node) by the parity check matrix.
  • the receiving end determines whether the value of Itr is less than the preset maximum value (S1205). If the value of Itr is less than the maximum value, the receiving end may determine whether the syndrome check succeeds (S1206). For example, the receiving end may perform syndrome check on the check nodes using the parity check matrix. For example, the syndrome check may be performed according to the method described above with respect to FIGS. 9 to 11. If the syndrome check is successful, the decoding can be considered successful. Therefore, decoding can be ended. However, if the syndrome check fails, the receiving end may increase the value of Itr by 1 and repeat steps S1203 to S1205. However, when the number of repetitions reaches a predetermined maximum value, the receiving end may consider that decoding has failed. For example, when decoding fails, the receiving end may terminate decoding and transmit a negative acknowledgment (NACK) and / or a retransmission request to the transmitting end.
  • NACK negative acknowledgment
  • a parity check matrix (or generation matrix) can be arbitrarily constructed.
  • the performance of the LDPC code can be improved as the length of the block increases.
  • the performance of the LDPC code may be improved through an optimal decoding method.
  • a trust propagation algorithm is used for decoding the LDPC code.
  • the parity check matrix of the randomly generated LDPC code has excellent performance, but its implementation and representation are very complicated. Therefore, structured LDPC codes as described above are widely used. As such a structured LDPC code, a QC LDPC (Quasi-Cyclic LDPC) code is widely used.
  • the QC-LDPC code is composed of a zero matrix having a Q ⁇ Q size and a cyclic permutation matrix (CPM) having a Q ⁇ Q size.
  • the cyclic permutation matrix P has a form in which an identity matrix of size Q ⁇ Q is cyclically shifted by a cyclic shift value a (see FIG. 9).
  • the parity check matrix H may be composed of (mb + 1) ⁇ (nb + 1) cyclic permutation matrices.
  • cyclic shift value 0 indicates an identity matrix and -1 indicates a zero matrix.
  • the parity check matrix may be represented by a matrix of circular shift values, as shown in FIG. 8.
  • the value of each cyclic shift may be set to have a value of -1 or more and Q-1 or less.
  • a matrix composed of circular shift values may be referred to as a circular shift matrix or a characteristic matrix.
  • a lifting operation may be performed. Lifting is used to obtain a parity check matrix of a desired size from a predetermined parity check matrix.
  • Various code lengths can be supported by changing the lifting size. For example, floor lifting or modulo lifting can be used. For example, when Q is 20 and the lifting value Z is 5, the size of information that the generated QC LDPC can process is 100.
  • the interconnect routing network can be used to determine the size of the submatrix and the circular-shift value of each of the circulant permutation matrices. Can be defined.
  • shift network techniques described below can be used.
  • a single-size circular shifting network uses a barrel shifter having an array of data consisting of only one size Z.
  • SS-CS networks have 0, 1,... , Z-1 has an arbitrary rotation.
  • the random rotation of the SS-CS network is decomposed into successive rotations of ceil (log 2 Z) by the power of two .
  • ceil (X) represents the largest integer below X value.
  • the SS-CS network requires Z * ceil (log 2 Z) multiplexers and ceil (log 2 Z) steps.
  • a multi-size circular shifting (MS-CS) network may be composed of SS-CS network arrays of any size merged into an adaptation network.
  • the MS-CS network may consist of ceil (log 2 A) + ceil (log 2 Z) steps of Z * (ceil (Z / A) -1 + ceil (log 2 A)) multiplexers. Where A is the largest common divisor for all block sizes.
  • the QC-LDPC shift network typically uses a conventional logarithmic barrel shifter.
  • the QSN may utilize two barrel shifters and a merge network to provide cyclic shifting for any size input that is less than or equal to the size of the network.
  • the QSN requires Z * (2 * ceil (log 2 Z) -1) +1 multiplexers and ceil (log 2 Z) +1 steps.
  • Shifting networks can be defined to achieve high throughput.
  • the lifting size Z can be configured with m * 2 n (m is an integer of 1 or more, n is an integer of 1 or more).
  • m is a value that can be changed according to the configuration of the shift network.
  • m is assumed to be 1 for convenience of description.
  • one parity check matrix may be used for convenience of description. Information sequences of various lengths may be supported through a lifting operation on one parity check matrix.
  • the connection of the variable node and the check node to the shifting network can be simply configured.
  • dedicated routing is possible, high throughput can be obtained.
  • LDPC codes have less flexibility in the amount of information they can support than turbo codes.
  • the flexibility may vary depending on the configuration of the shift network, and in the case of using the 2 n shift network for obtaining high throughput, the flexibility may be further lowered.
  • a parity check matrix of size N ⁇ M may be used.
  • the difference between M and N may be sixteen.
  • the maximum lifting value Zmax may be set to 512. That is, for example, m may be 1 and n may be set as 9 as the maximum value.
  • the length of the maximum information bits that can be supported by the LDPC code may be defined as (N-M) * Z.
  • the size of the maximum supported information bits is 8192 bits.
  • the transport block is divided into a plurality of code blocks.
  • the length of information bits that an LDPC code can support by lifting value Z i may be referred to as K i .
  • i is an integer of log 2 Zmin or more and log 2 Zmax or less
  • Zmin represents the minimum value of Z i
  • Zmax represents the maximum value of Z i .
  • the index i of the lifting value Z i Z i is log 2.
  • Information bits having a length less than or equal to K i may be supported through the shortening technique.
  • a predetermined bit sequence may be added to the information bits such that the length of the information bits is K i .
  • the added preset bit sequence may be removed after encoding.
  • the longer the length of the bit removed after encoding that is, the length of the predetermined bit sequence added to the information bit
  • the worse the performance
  • information bits above a predetermined length may be limited to be used.
  • the minimum allowable length of information bits may be referred to as K imin .
  • K imin always has a value less than K i .
  • the size of the transport block is K TB , the following equation may be satisfied.
  • n CB represents the number of code blocks divided to form a transport block.
  • K zmax represents the length of information bits that can be supported by the maximum lifting value Zmax.
  • Ar n-1 represents the length of the information bit corresponding to the lifting value Z n .
  • the above equation represents the sum of the lengths of the information bits corresponding to the lifting values Z 0 to Z n-1 . Accordingly, the above equation indicates that the size K zmax of the information bits supported by Zmax is greater than the sum of the information bits supported by all lifting values except Zmax. Thus, this feature can be used for code block partitioning.
  • a transport block having a length of less than 16,384 bits may be used.
  • the size K TB of the transport block may be 1024 bits.
  • the transport block may be divided into 8192 bit code blocks and 2048 bit code blocks.
  • the transport block may be divided into five 2048 bit code blocks.
  • each shifting value can be defined as an equivalence sequence with an azeotropic ratio of 1/2 from the maximum value Zmax. Therefore, the following equation may be used to determine the number n of code blocks.
  • n may be determined as the minimum value satisfying the above equation (n is an integer of 1 or more). For example, if K TB is 10000 and K zmax is 8192, if n is 1, the above equation is not satisfied. However, when n is 2, the above formula may be satisfied. Thus, under the above conditions, it can be determined that the transport block is composed of two code blocks.
  • the code block may be segmented as described below.
  • a block error rate (BLER) may increase. Therefore, code block division needs to be performed so that the number of code blocks is small.
  • BLER block error rate
  • code block division method for minimizing the number of code blocks and the length of the shortening bits is described. More specifically, the number of code blocks may be determined according to Equation 6 described above. Hereinafter, a method of determining the size of a specific code block according to the determined number of code blocks will be described.
  • the length K TB of the transport block is greater than the length K zmax of the information bits by the maximum lifting value. This is because rate matching may be performed only by shortening without code block division when K TB is less than or equal to K zmax .
  • the integer x value is determined to satisfy the following equation.
  • x represents the number of code blocks corresponding to Kzmax determined for the transport block.
  • the x value is selected as a value such that xK zmax is maximum below the length of the transport block.
  • the process associated with the above equation (7) can be omitted.
  • the transport block below is assumed to have a length of the transport block less than 2K zmax or having a length of (K TB -x * K zmax ) satisfying the above equation (7).
  • Code block partitioning may be performed on the transport block in the following manner.
  • the maximum lifting value is selected among the lifting values having the minimum information bit length less than the length of the transport block. Due to the limitation of the transport block length of this embodiment, the maximum lifting value is always selected first,
  • a maximum lifting value is selected from among lifting values having a minimum information bit length less than the sum of the minimum information bit lengths corresponding to all previously selected lifting values from the transport block.
  • the lifting value selection can be ended if the sum of the code block lengths by all previously selected lifting values is equal to or greater than the length of the transport block.
  • the transport block may be composed of a code block having a length obtained by subtracting the sum of the lengths of the code blocks by the remaining lifting values except the selected maximum lifting value and the code blocks by the remaining lifting values. That is, instead of shortening code blocks of short length, shortening is performed on the largest code blocks.
  • the minimum information bit for the code block by the selected maximum lifting value is obtained by subtracting the sum of the lengths of the code block by the other lifting values except the maximum lifting value among all the lifting values selected from the length of the transport block. If less than, the additional lifting value below the previously selected lifting value may be further selected.
  • the minimum information bit for one lifting value may refer to the shortened information bit length after performing the maximum shortening that can be allowed for the information bit length corresponding to the corresponding lifting value.
  • the length of the transport block can be assumed to be 9000.
  • the length of the information bit according to the maximum lifting value may be 8192.
  • the transport block may be divided into a code block by the maximum lifting value and a minimum lifting value corresponding to more than the remaining length.
  • the transport block may be divided into a code block of length 8192 and a code block of length 1024.
  • the performance of the entire code can be determined by a code block of length 1024 with a relatively short length. In general, the shorter the code block, the lower the performance, so that the overall code performance may be reduced.
  • code block division may be performed.
  • the length of the minimum information block for the code block of length 8192 may be 6000
  • the length of the minimum information block for the code block of length 2048 may be 1800.
  • a maximum lifting value may be selected.
  • 2048 may be selected in which the length 6000 of the minimum information bit by the previously selected lifting value is subtracted from the length of the transport block is a maximum lifting value of less than 3000. In this case, no further lifting value is selected because the sum of the codeblock lengths by all the selected lifting values exceeds the length of the transport block.
  • the transport block may be divided into a 2048 length code block and a 6952 length code block.
  • a 6952 length code block may be generated by shortening an 8192 length code block.
  • the above-described partitioning of the code block can be applied even when the length of the transport block is within a predetermined range with the length of the information bit by the maximum lifting value.
  • the transport block may be composed of a code block having a length of 2048 and a code block having a length of 6152.
  • the length of the transport block may be 16540.
  • the length of the information bit by the maximum lifting value is assumed to be 8192.
  • the length of the transport block exceeds twice the length of the information bit by the maximum lifting value. Therefore, x is determined to be 1 according to the above equation.
  • the code block division described above is performed on 8348, which is a value obtained by subtracting the length of one information bit by the maximum lifting value from the length of the transport block.
  • the maximum lifting value 8192 is selected.
  • the minimum information bit length for the maximum lifting value is assumed to be 6000.
  • the minimum length of information bits that can be allowed for a code block of length 4096 may be 3348 or more.
  • a lifting value corresponding to a code block having a minimum information bit length of less than 3348 is selected.
  • a lifting value corresponding to 2048 length may be selected.
  • the number of code blocks may be determined according to the determined number of maximum lifting values x and the number of selected lifting values.
  • the transport block may be composed of code blocks corresponding to two maximum lifting values and code blocks having a length of 2048.
  • the shortening may be performed only in the code block corresponding to one maximum lifting value.
  • the transport block may be composed of an 8192 length code block, a 6300 length code block, and a 2048 length code block.
  • the shortening may be performed equally throughout the code blocks corresponding to all the maximum lifting values.
  • the transport block may be composed of two code blocks of length 7246 and code blocks of length 2048.
  • the performance of the transport block of the LDPC code depends on the smallest code block. Accordingly, in order to increase the size of the smallest code block, the following shortening technique may be performed.
  • the length of the shortening bit may be determined. For example, a value obtained by subtracting the length of the transport block from the sum of the code block lengths by the selected lifting values can be determined as the length of the shortening bit.
  • the maximum shortening bit lengths for each code block are summed until the sum of the lengths of the maximum shortening bits for each code block is equal to or greater than the determined shortening bit length.
  • the smallest lifting value selected may be the first lifting value. If the sum of the sum of the maximum shortening bit lengths added to the length of the code block by the first lifting value exceeds the length of the code block by the second lifting value higher than the first lifting value, the first lifting value is substituted instead of the first lifting value. 2 lifting values can be selected. On the other hand, when the second lifting value is equal to or greater than the maximum lifting value, the second lifting value is set as the maximum lifting value. Thereafter, shortening may be performed on the codeblock with the reselected lifting values. Shortening may be performed equally on the code block of the largest size.
  • the 16540 transport block may be composed of two 7246 code blocks and a 2048 code block.
  • the length of the shortening bit for the preselected lifting value is 1892 bits.
  • Maximum Shortening for Lifting Values of Maximum Size In this case, the length of the maximum shortening bit for the code block corresponding to the maximum lifting value may be set to 2192. Since the maximum shortening for one code block of maximum length is greater than the determined length of the shortening bit 1892, the length of the maximum shortening bit is added to the code block of 2048 length. This exceeds the length 4096 of the information bits by the lifting value that is greater than the lifting value corresponding to the length 2048.
  • the lifting value corresponding to the length 2192 is selected. Thereafter, shortening may be performed equally on the largest code block.
  • the 16540 length transport block may be composed of two 6222 length code blocks and one 4096 length code blocks.
  • the minimum information bit length for each lifting value may be determined according to the performance of the parity check matrix. For example, the minimum information bit length K imin for the information bit length K i by the lifting value Z i may be set to K i / 2 + 1. Further, for example, the minimum information bit length K imin for the information bit length K i by the lifting value Z i may be set to K i * x.
  • the x value may depend on the i value or may be set independently from the i value.
  • the lifting value used may be shared between the transmitting and receiving end.
  • the following methods may be used.
  • information about the entire transport block may be transmitted to the receiving end.
  • the receiving end may derive the lifting values according to the above-described method from the information on the entire transport block.
  • the transmitting end may transmit information about the number of divided code blocks and the size of the code blocks.
  • serial number information for each of the divided code blocks may be transmitted as information about the number of divided code blocks.
  • the information on the size of the code block may include information on the lifting value used.
  • the size of the code block may be limited to have a predetermined size or more.
  • the lifting value may be limited to at least a certain value or more.
  • LDPC codes have lower flexibility dl for information size and code rate than turbo codes.
  • turbo codes may be used with turbo codes.
  • the lifting value may be limited.
  • information on this restriction may be sent to the receiving end.
  • information about the restricted lifting value eg, index number
  • the difference between the index of the maximum lifting value and the index of the lowest lifting value may be transmitted to the receiving end.
  • FIG. 13 is a flowchart illustrating a transport block partitioning method according to an example.
  • the transport block splitting method may be performed by the transmitting end.
  • the transmitting end may be a terminal or a base station.
  • the transmitting end may have a shifting network in which the lifting value is in the form of 2 n (n is an integer of 0 or more).
  • the transmitting end may lift the LDPC code using a single-size cyclic shifting network.
  • the transmitting end may determine the number of code blocks by the maximum lifting value for the transport block according to a predetermined condition (S1301).
  • the preset condition may mean the above-described equation (7).
  • the transmitting end may select at least one lifting value with respect to the length of the code block corresponding to the determined number of maximum lifting values from the transport block (S1302).
  • the length obtained by subtracting the length of the code block corresponding to the maximum lifting value of the number determined from the transport block from the transport block may be referred to as a first length.
  • the transmitting end may select a lifting value having the largest value among lifting values having a minimum information bit length less than the first length. Thereafter, the transmitting end can update the first length by subtracting the minimum information bit length corresponding to the selected lifting value from the first length. Further, the transmitting end may repeat the selection of the lifting value and the updating of the first length until the sum of the lengths of the code block corresponding to the selected lifting values and the determined maximum lifting value exceeds the length of the transport block.
  • the transmitting end may divide the transport block into a plurality of code blocks based on the selected at least one lifting value and the determined maximum lifting value (S1303). Splitting the code block may include shortening for at least one code block corresponding to the lifting value of the largest value.
  • the transmitting end may transmit the divided code blocks to the receiving end (S1304).
  • the transmitting end may transmit information about the divided code blocks to the receiving end. The information on the code block may include at least one of information about the number of divided code blocks, the size of the code block, and the selected lifting value.
  • FIG. 14 is a diagram for schematically describing a configuration of devices to which the embodiments of the present invention described with reference to FIGS. 1 to 13 may be applied.
  • the base station apparatus 10 may include a receiving module 11, a transmitting module 12, a processor 13, a memory 14, and a plurality of antennas 15. .
  • the transmission module 12 may transmit various signals, data, and information to an external device (eg, a terminal).
  • the reception module 11 may receive various signals, data, and information from an external device (eg, a terminal).
  • the receiving module 11 and the transmitting module 12 may be referred to as transceivers.
  • the processor 13 may control the overall operation of the base station apparatus 10.
  • the plurality of antennas 15 may be configured according to, for example, a two-dimensional antenna arrangement.
  • the processor 13 of the base station apparatus 10 may be configured to receive channel state information according to examples proposed by the present invention.
  • the processor 13 of the base station apparatus 10 performs a function of processing information received by the base station apparatus 10, information to be transmitted to the outside, and the like. And may be replaced by a component such as a buffer (not shown).
  • the terminal device 20 may include a receiving module 21, a transmitting module 22, a processor 23, a memory 24, and a plurality of antennas 25.
  • the plurality of antennas 25 refers to a terminal device that supports MIMO transmission and reception.
  • the transmission module 22 may transmit various signals, data, and information to an external device (eg, a base station).
  • the reception module 21 may receive various signals, data, and information from an external device (eg, a base station).
  • the receiving module 21 and the transmitting module 22 may be referred to as transceivers.
  • the processor 23 may control operations of the entire terminal device 20.
  • the processor 23 of the terminal device 20 may be configured to transmit channel state information according to examples proposed by the present invention.
  • the processor 23 of the terminal device 20 performs a function of processing the information received by the terminal device 20, information to be transmitted to the outside, etc., and the memory 24 stores the calculated information and the like for a predetermined time. And may be replaced by a component such as a buffer (not shown).
  • terminal device 10 may be implemented so that the above-described matters described in various embodiments of the present invention can be applied independently or two or more embodiments are applied at the same time, overlapping description will be described for clarity Omit.
  • a downlink transmission entity or an uplink reception entity is mainly described using a base station
  • a downlink reception entity or uplink transmission entity is mainly described using a terminal as an example.
  • the scope of the present invention is not limited thereto.
  • the description of the base station is a cell, an antenna port, an antenna port group, an RRH, a transmission point, a reception point, an access point, a repeater, or the like as a downlink transmission entity to a terminal or an uplink reception entity from a terminal.
  • the repeater becomes a downlink transmission entity to the terminal or an uplink reception entity from the terminal, or when the repeater becomes an uplink transmission entity to the base station or a downlink reception entity from the base station,
  • the principles of the present invention described through various embodiments may be equally applied.
  • Embodiments of the present invention described above may be implemented through various means.
  • embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.
  • a method according to embodiments of the present invention may include one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), and Programmable Logic Devices (PLDs). It may be implemented by field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, and the like.
  • ASICs Application Specific Integrated Circuits
  • DSPs Digital Signal Processors
  • DSPDs Digital Signal Processing Devices
  • PLDs Programmable Logic Devices
  • FPGAs field programmable gate arrays
  • processors controllers, microcontrollers, microprocessors, and the like.
  • the method according to the embodiments of the present invention may be implemented in the form of a module, a procedure, or a function that performs the functions or operations described above.
  • the software code may be stored in a memory unit and driven by a processor.
  • the memory unit may be located inside or outside the processor, and may exchange data with the processor by various known means.
  • each component or feature is to be considered optional unless stated otherwise.
  • Each component or feature may be embodied in a form that is not combined with other components or features. It is also possible to combine some of the components and / or features to form an embodiment of the invention.
  • the order of the operations described in the embodiments of the present invention may be changed. Some components or features of one embodiment may be included in another embodiment or may be replaced with corresponding components or features of another embodiment. It is obvious that the claims may be combined to form an embodiment by combining claims that do not have an explicit citation relationship in the claims or as new claims by post-application correction.
  • Embodiments of the present invention can be applied to various wireless access systems and broadcast communication systems.
  • various radio access systems include 3rd Generation Partnership Project (3GPP), 3GPP2 and / or IEEE 802.xx (Institute of Electrical and Electronic Engineers 802) systems.
  • Embodiments of the present invention can be applied not only to the various radio access systems, but also to all technical fields to which the various radio access systems are applied.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

LDPC (Low Density Parity Check) 코드의 운송블록 분할 방법 및 이를 위한 장치가 개시된다. 본 개시물의 LDPC 코드의 분할 방법은 제한된 크기의 쉬프팅 네트워크를 이용함으로써 높은 처리량을 획득할 수 있다. 아울러, 코드블록의 수를 최소화하는 동시에, 크기가 큰 크기의 코드블록에 대한 쇼트닝을 수행함으로써 최소 크기의 코드 블록으로 인한 성능 열화가 방지될 수 있다. 또한, 최소 크기의 코드 블록의 선택에 있어서, 상대적으로 큰 크기의 코드 블록에 대한 쇼트닝에 기초하여 최소 크기의 코드 블록이 선택되기 때문에, 최소 크기의 코드 블록의 크기가 증가될 수 있다.

Description

LDPC 코드의 운송블록 분할 방법 및 이를 위한 장치
본 발명은 무선 통신 시스템 상에서의 채널 코드의 운송블록 분할 방법에 관한 것으로서, 특히, LDPC (Low-Density Parity-Check) 코드의 운송블록 분할 방법 및 이를 위한 장치에 관한 것이다.
무선 접속 시스템이 음성이나 데이터 등과 같은 다양한 종류의 통신 서비스를 제공하기 위해 광범위하게 전개되고 있다. 일반적으로 무선 접속 시스템은 가용한 시스템 자원(대역폭, 전송 파워 등)을 공유하여 다중 사용자와의 통신을 지원할 수 있는 다중 접속(multiple access) 시스템이다. 다중 접속 시스템의 예들로는 CDMA(code division multiple access) 시스템, FDMA(frequency division multiple access) 시스템, TDMA(time division multiple access) 시스템, OFDMA(orthogonal frequency division multiple access) 시스템, SC-FDMA(single carrier frequency division multiple access) 시스템 등이 있다.
상술한 통신 시스템들에서뿐만 아니라, 방송 시스템에 있어서도 채널 코드(channel code)가 필수적으로 이용되고 있다. 채널 코드의 일반적인 구성 방법의 예시로서, 송신단이 부호화기를 이용하여 입력 심볼에 대하여 부호화를 수행하고 부호화된 심볼을 송신할 수 있다. 또한, 예를 들어, 수신단은 부호화된 심볼을 수신하고 수신된 심볼에 대하여 복호를 수행하여 입력 심볼을 복원할 수 있다. 이 경우, 입력 심볼의 크기와 부호화된 심볼의 크기는 통신 시스템에 따라서 달리 정의될 수 있다. 예를 들어, 3GPP (3rd Generation Partnership Project)의 LTE (Long Term Evolution) 통신 시스템에서 사용되는 데이터 정보용 터보(turbo) 코드에서, 입력 심볼의 채되 크기는 최대 6144 비트이고, 부호화된 심볼의 크기는 18432 (6144*3) 비트이다. LTE 통신 시스템에서의 터보 코딩은 3GPP 기술 규격 36.212에 의하여 참조될 수 있다.
그러나, LTE 터보 코드는 코드의 구조상 SNR (Signal to Noise Ratio)이 증가되더라도 일정 영역을 벗어나면 성능 개선이 미미한 특징이 있다. 이와 관련하여, 보다 오류 발생률이 낮은 코드를 이용하는 것이 고려될 수 있으나, 이 경우, 복잡도가 증가하는 문제점이 있다.
통신 시스템에 있어서 높은 오류율은 불필요한 데이터의 재송신과 채널 수신 실패를 초래할 수 있다. 또한, 지나치게 높은 복잡도의 코드는 기지국과 단말의 부하를 증가시킬 뿐만 아니라, 송수신 지연을 초래할 수 있다. 특히, 더 빠른 데이터의 송수신이 요구되는 차세대 통신 시스템에 있어서는, 상술한 문제점들이 해결이 요구된다. 따라서, 오류율을 낮추면서도 낮은 복잡도를 갖는 코딩 방법이 요구된다.
특히, 현재의 LTE 터보 코드는 정보의 크기가 증가하면 오류 플로어(error floor)가 발생하는 문제점이 있다. 따라서, URR (Ultra Reliable Radio) 및 LLR (Low Latency Radio)을 만족할 수 있는 채널 코딩 방법이 요구된다.
본 발명은, 상술한 문제점들을 해결하기 위하여 창안된 것으로서, 본 발명의 목적은 처리량이 높은 쉬프팅 네트워크에 대한 운송블록 분할 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 이러한 방법들을 지원하는 장치를 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 목적들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 본 발명의 실시예들로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.
상술한 과제를 해결하기 위한 본원의 2n 쉬프팅 네트워크(shifting network)를 갖는 단말의 LDPC (Low Density Parity Check) 코드의 운송블록 분할 방법은, 복수의 기설정된 리프팅 값들 중, 기설정된 조건에 따라서 운송블록에 대한 최대 리프팅 값에 의한 코드블록의 수를 결정하는 단계로서, 상기 복수의 기설정된 리프팅 값들은 A×2n의 형태를 가지며, A는 1 이상의 정수이고 n은 0 이상의 정수임; 상기 결정된 수의 코드블록에 대응하는 길이를 상기 운송블록으로부터 감산한 제1 길이에 대하여, 상기 복수의 기설정된 리프팅 값들 중 적어도 하나의 리프팅 값을 선택하는 단계; 상기 선택된 적어도 하나의 리프팅 값과 상기 결정된 코드블록의 수에 기초하여 운송블록을 복수의 코드블록들로 분할하는 단계; 및 상기 분할된 코드블록들을 송신하는 단계를 포함할 수 있다.
또한, 상기 기설정된 조건은 상기 제1 길이가 상기 최대 리프팅 값에 의한 코드블록의 길이보다 크고 상기 최대 리프팅 값에 의한 코드블록의 길이의 2배보다 작도록 상기 최대 리프팅 값에 의한 코드블록의 수를 결정하는 것을 포함하고, 상기 적어도 하나의 리프팅 값을 선택하는 단계는, 상기 적어도 하나의 리프팅 값에 대응하는 코드블록의 길이와 상기 결정된 수의 최대 리프팅 값에 의한 코드블록의 수에 대응하는 길이의 합이 상기 운송블록의 길이를 초과할 때까지: 상기 복수의 기설정된 리프팅 값들 중, 상기 제1 길이 미만의 최소 정보비트 길이를 갖는 리프팅 값들 중 가장 큰 값을 갖는 리프팅 값을 선택하는 단계와 상기 제1 길이로부터 선택된 리프팅 값에 대응하는 최소 정보 비트 길이를 감산함으로써 상기 제1 길이를 갱신하는 단계를 반복함으로써 상기 적어도 하나의 리프팅 값을 선택하는 단계를 포함할 수 있다.
바람직하게는, 상기 최소 정보 비트 길이는 대응하는 리프팅 값에 의한 정보 비트 길이에 대하여 최대 쇼트닝이 적용된 길이일 수 있다.
또한, LDPC 코드의 운송블록 분할 방법은, 상기 복수의 코드블록들 중 최대 길이를 갖는 적어도 하나의 코드블록들에 대하여 쇼트닝을 수행하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 복수의 코드블록들은 복수의 최대 길이 코드블록들을 포함하고, 상기 복수의 최대 길이 코드블록들에 대하여 동일한 크기의 쇼트닝이 수행될 수 있다.
또한, LDPC 코드의 운송블록 분할 방법은, 상기 복수의 코드블록들의 수에 대한 정보를 송신하는 단계를 더 포함할 수 있다.
또한, LDPC 코드의 운송블록 분할 방법은, 상기 선택된 적어도 하나의 리프팅 값에 대한 정보를 송신하는 단계를 더 포함할 수 있다.
또한, 상술한 과제를 해결하기 위한 단말은, 신호를 송수신하는 트랜시버; 메모리; 및 상기 트랜시버 및 상기 메모리를 제어하는 프로세서를 포함하고, 상기 프로세서는 2n 쉬프팅 네트워크(shifting network)를 이용하여 LDPC (Low Density Parity Check) 코드의 운송블록을 분할하도록 구성되고, 상기 프로세서는, 복수의 기설정된 리프팅 값들 중, 기설정된 조건에 따라서 운송블록에 대한 최대 리프팅 값에 의한 코드블록의 수를 결정하고, 상기 결정된 수의 코드블록에 대응하는 길이를 상기 운송블록으로부터 감산한 제1 길이에 대하여, 상기 복수의 기설정된 리프팅 값들 중 적어도 하나의 리프팅 값을 선택하고, 상기 선택된 적어도 하나의 리프팅 값과 상기 결정된 코드블록의 수에 기초하여 운송블록을 복수의 코드블록들로 분할하며, 상기 분할된 코드블록들을 송신하도록 더 구성되고, 상기 기설정된 조건은 상기 제1 길이가 상기 최대 리프팅 값에 의한 코드블록의 길이보다 크고 상기 최대 리프팅 값에 의한 코드블록의 길이의 2배보다 작도록 상기 최대 리프팅 값에 의한 코드블록의 수를 결정하는 것을 포함하고, 상기 적어도 하나의 리프팅 값은, 상기 적어도 하나의 리프팅 값에 대응하는 코드블록의 길이와 상기 결정된 수의 최대 리프팅 값에 의한 코드블록의 수에 대응하는 길이의 합이 상기 운송블록의 길이를 초과할 때까지, 상기 복수의 기설정된 리프팅 값들 중, 상기 제1 길이 미만의 최소 정보비트 길이를 갖는 리프팅 값들 중 가장 큰 값을 갖는 리프팅 값을 선택하고 상기 제1 길이로부터 선택된 리프팅 값에 대응하는 최소 정보 비트 길이를 감산함으로써 상기 제1 길이를 갱신하는 것을 반복함으로써 선택되고, 상기 복수의 기설정된 리프팅 값들은 A×2n의 형태를 가지며, A는 1 이상의 정수이고 n은 0 이상의 정수일 수 있다.
상술한 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 실시예들에 따르면 다음과 같은 효과가 있다.
본 발명의 LDPC 코드의 운송블록 분할 방법은 단일 쉬프팅 값을 이용함으로써 처리량이 증가될 수 있다.
또한, 본 발명의 LDPC 코드의 운송블록 분할 방법은 최대 길이 코드블록에 대한 쇼트닝을 통하여 최소 길이 코드블록의 쇼트닝을 최소화할 수 있다.
또한, 본 발명의 LDPC 코드의 운송블록 분할 방법은 최소 길이 코드블록의 길이를 증가시킴으로써 성능 열화를 방지할 수 있다.
본 발명의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 이하의 본 발명의 실시예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 않은 효과들 역시 본 발명의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되고, 첨부된 도면들은 본 발명에 대한 다양한 실시예들을 제공한다. 또한, 첨부된 도면들은 상세한 설명과 함께 본 발명의 실시 형태들을 설명하기 위해 사용된다.
도 1은 일 예시에 따른 부호화 과정을 도시한다.
도 2는 일 예시에 따른 운송 블록의 부호화 과정을 도시한다.
도 3은 일 예시에 따른 RSC (Recursive Systematic Convolutional) 부호화기를 도시한다.
도 4는 LTE 터보 부호화기(encoder)를 도시한다.
도 5는 RSC 부호화기에 따른 트렐리스(Trellis)의 일 예시를 도시한다.
도 6은 트렐리스 구조의 일 예시를 도시한다.
도 7은 일 예시에 따른 구조화된 패리티 체크 행렬을 도시한다.
도 8은 일 예시에 따른 모델 행렬(model matrix)을 도시한다.
도 9는 쉬프트 수에 따른 행렬의 변환을 설명하기 위한 도면이다.
도 10은 일 예시에 따른 LDPC 코드 복호화 방법의 흐름도이다.
도 11은 일 예시에 따른 이분 그래프(bipartite graph)를 도시한다.
도 12는 일 예시에 따른 신드롬 체크를 이용한 LDPC 코드 복호화 방법을 도시한다.
도 13은 일 예시에 따른 운송블록 분할 방법의 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 기지국 및 단말의 구성도이다.
이하의 기술은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 등과 같은 다양한 무선 접속 시스템에 사용될 수 있다. CDMA는 UTRA(Universal Terrestrial Radio Access)나 CDMA2000과 같은 무선 기술(radio technology)로 구현될 수 있다. TDMA는 GSM(Global System for Mobile communications)/GPRS(General Packet Radio Service)/EDGE(Enhanced Data Rates for GSM Evolution)와 같은 무선 기술로 구현될 수 있다. OFDMA는 IEEE 802.11(Wi-Fi), IEEE 802.16(WiMAX), IEEE 802-20, E-UTRA(Evolved UTRA) 등과 같은 무선 기술로 구현될 수 있다. UTRA는 UMTS(Universal Mobile Telecommunications System)의 일부이다. 3GPP(3rd Generation Partnership Project) LTE(long term evolution)는 E-UTRA를 사용하는 E-UMTS(Evolved UMTS)의 일부로서 하향링크에서 OFDMA를 채용하고 상향링크에서 SC-FDMA를 채용한다. LTE-A(Advanced)는 3GPP LTE의 진화된 버전이다.
설명을 명확하게 하기 위해, 3GPP LTE/LTE-A를 위주로 기술하지만 본 발명의 기술적 사상이 이에 제한되는 것은 아니다. 또한, 이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 일 예시에 따른 부호화 과정을 도시한다.
LTE 통신 시스템에서 이용하는 터보 코드를 포함하는 많은 채널 코드들에 도 1과 같은 부호화 과정이 적용될 수 있다. 이하에서는, 설명의 편의를 위하여 LTE 통신 시스템의 표준 문서에 따른 용어에 기초하여 부호화 과정을 설명한다.
도 1의 예시에서, 송신단은 운송 블록(Transport Block, TB)을 생성(S101)할 수 있다. 또한, 송신단은 운송 블록에 운송 블록에 대한 CRC 비트를 추가(S102)된다. 또한, 송신단은 CRC 비트가 추가된 운송 블록으로부터 코드 블록을 생성(S103)할 수 있다. 예를 들어, 송신단은 인코더의 입력 크기에 기초하여 운송 블록을 코드 블록으로 분할(segmentation)할 수 있다. 또한, 송신단은 분할된 각각의 코드 블록에 대하여 CRC 비트를 추가(S104)할 수 있다. 이 경우, 예를 들어, 코드 블록 및 코드 블록 CRC 비트의 크기는 6144 비트로 구성될 수도 있다. 송신단은 코드 블록과 CRC 비트로 구성된 블록 각각에 대하여 부호화 및 변조(S105)를 수행할 수 있다. 예를 들어, 상술한 바와 같이, 터보 코딩이 적용될 수도 있다.
복호화 과정은 도 1의 부호화 과정의 역순으로 수행될 수 있다. 예를 들어, 수신단은 각 부호화기에 대응하는 복호화기(decoder)를 이용하여 각 코드 블록 단위로 복호화를 수행하고, 최종적으로 하나의 운송 블록을 구성하여, 운송 블록의 CRC 통과여부를 확인할 수 있다.
예를 들어, 입력 심볼의 크기는 MAC(Media Access Control) 계층으로부터의 운송 블록(transport block, TB)의 크기와는 상이할 수 있다. 운송 블록의 크기가 터보 코드의 최대 입력 심볼 크기보다 큰 경우에는, 운송 블록은 복수의 코드 블록(code block, CB)들로 분할 될 수 있다. LTE 통신 시스템의 표준에 따를 경우, 코드 블록의 크기는 6144 비트에서 CRC (Cyclic Redundancy Check) 비트를 감산한 것과 동일할 수도 있다. 터보 코드의 입력 심볼은 코드 블록과 CRC를 포함하는 데이터 또는 운송 블록 (예를 들어, 운송 블록은 6144 비트 미만) 과 CRC를 포함하는 데이터로 정의될 수도 있다. CRC 비트는 6144 비트에 비하여 매우 작은 값(예를 들어, 최대 24 비트)이다. 따라서, 이하의 설명에 있어서는, 다르게 정의되지 않는 한, 코드 블록은 코드 블록 자체 또는 코드 블록과 대응하는 CRC 비트를 지칭할 수 있으며, 운송 블록은 운송 블록 자체 또는 운송 블록과 대응하는 CRC 비트를 지칭할 수 있다.
도 2는 일 예시에 따른 운송 블록의 부호화 과정을 도시한다.
도 2는 도 1과 관련하여 상술한 부호화 과정에 대응하는 운송 블록(201)의 부호화 과정을 도시한다. 먼저, 운송 블록(201)에 운송 블록 CRC(202)가 추가된다. 운송 블록 CRC(202)는 복호 과정에서 운송 블록(201)의 확인을 위하여 이용될 수 있다. 그 후에 운송 블록(201) 및 운송 블록 CRC(202)는 3개의 코드 블록(203)들로 분할 된다. 본 실시예에서는 3 개의 코드 블록(203)들로 분할되었으나, 운송 블록(201)은 부호화기(205)의 입력 크기에 기초하여 복수의 코드블록들로 분할될 수 있다.
코드 블록(203) 각각에는 코드 블록 CRC(204)가 추가된다. 코드 블록 CRC(204)는 수신단에서 코드 블록(203)의 확인을 위하여 이용될 수 있다. 코드 블록(203)과 코드 블록 CRC(204)은 부호화기(205) 및 변조기(206)를 거쳐 부호화될 수 있다.
도 3은 일 예시에 따른 RSC (Recursive Systematic Convolutional) 부호화기를 도시한다.
도 3의 RSC 부호화기(300)는 터보 코딩에 이용될 수 있다. 도 3에서, m은 입력 데이터를 나타내며, C1은 시스테매틱(systematic) 비트열, C2는 부호화된(coded) 비트열을 나타낸다. 여기서, RSC 부호화기(300)는 1/2 코드율(code rate)을 갖는다.
RSC 부호화기(300)는 비재귀적(nonrecursive)-비-시스테매틱(non-systematic) 콘볼루셔널(convoluational) 부호화기의 입력에 부호화된 출력을 피드백함으로써 구성될 수 있다. 도 3의 실시예에서 부호화기(300)는 2개의 지연기(301, 302)들을 포함한다. 지연기(301, 302)의 값 D는 코딩 방식(coding scheme)에 따라서 결정될 수 있다. 지연기(301, 302)는 메모리 또는 쉬프트 레지스터(shift register)로 구성될 수 있다.
도 4는 LTE 터보 부호화기(encoder)를 도시한다.
LTE 터보 부호화기(400)의 코딩 방식(scheme)은 2개의 8-상태 요소 부호화기(410, 420)들(constituent encoders)과 하나의 터보 코드 내부 인버리버(internal interleaver)(430)를 갖는 병렬 연접 컨벌루션 코드(Parallel Concatenated Convolutional Code, PCCC)이다.
도 4에서, 터보 부호화기(400)은 제1 요소 부호화기(constituent encoder)(410), 제2 요소 부호화기(420), 및 터보 코드 내부 인터리버(internal interleaver)(430)로 구성된다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 8-상태(state) 요소 부호화기들이다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 각각 도 3의 RSC 부호화기와 유사한 구조로 구성된다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)는 각각 3개의 지연기(411, 412, 413, 421, 422, 423)를 포함한다.
도 4에서, D는 코딩 방식(coding scheme)에 따라서 결정되는 값이다. ck는 터보 부호화기(400)로의 입력이다. 제1 요소 부호화기(410) 및 제2 요소 부호화기(420)로부터의 출력은 각각 zk와 z'k으로 표시된다(denoted). 터보 코드 내부 인터리버(430)로부터 출력되는 값은 c'k로 표시된다. 일반적으로, 지연기(411,412,413,421,42,423)는 입력된 값을 1 클록씩 지연시킬 수 있다. 그러나, 지연기(411,412,413,421,42,423)는 내부 설정에 따라 1 클록 이상 동안 입력된 값을 지연시키도록 구성될 수 있다. 지연기(411,412,413,421,42,423)는 쉬프트 레지스터(shift register)로 구성될 수 있으며, 기설정된 클록만큼 입력된 비트를 지연시킨 뒤 입력된 비트를 다음 지연기(411,412,413,421,42,423)로 출력하도록 구성될 수 있다.
터보 코드 내부 인터리버(430)는 무선 채널로의 신호 송신시 발생할 수 있는 버스트 오류(burst error)의 영향을 감소시킬 수 있다. 예를 들어, 터보 코드 내부 인터리버(430)는 QPP(Quadratic Polynomial Permutation) 인터리버일 수도 있다.
터보 코드는 고성능 순방향 오류 정정 (forward error correction, FEC) 코드로서, LTE 통신 시스템에서 이용되고 있다. 예를 들어, 터보 코드에 의하여 코딩된 데이터 블록은 3개의 서브블록들로 구성될 수도 있다. 하나의 서브블록은 m 비트의 페이로드(payload) 데이터에 대응할 수 있다. 다른 서브블록은, RSC(recursive systematic convolution) 코드를 이용하여 계산된, 페이로드에 대한 n/2 비트의 패리티(parity) 비트들로 구성될 수 있다. 또한, 나머지 서브 블록은 RSC 코드를 이용하여 계산된, 페이로드 데이터의 퍼뮤테이션(permutation)에 대한 n/2 비트의 패리티 비트들로 구성될 수 있다. 예를 들어, 상술한 퍼뮤테이션은 인터리버(interleaver)에 의하여 수행될 수 있다. 따라서, 페이로드와 함께 서로 상이한 패리티 비트의 2개의 서브블록들이 하나의 블록으로서 구성될 수 있다. 예를 들어, m이 n/2와 동일한 경우, 하나의 블록은 1/3의 부호율(code rate)을 갖는다.
제1 요소 부호화기(410)에서, 입력 ck가 부호화된 비트 zk에 도달하는 과정은 두 개의 경로로 구분될 수 있다. 두 개의 경로는 입력단으로부터 출력단으로 출력 피드백 없이 연결된 제1 경로와 입력단으로부터 다시 입력단으로 피드백되는 제2 경로이다.
제1 경로에서, 입력 ck, 지연기(411)을 거친 입력 ck, 및 지연기들(411, 412, 및 413)을 거친 입력 ck가 출력단에 인가된다. 제1 경로에 대한 입력단 출력단 사이의 관계는 다항식으로 표현될 수 있다. 제1 경로에 대한 다항식은 순방향 생성기 다항식(forward generator polynomial)으로 호칭되고, 하기의 수학식의 g1과 같이 표현될 수 있다.
Figure PCTKR2017007877-appb-M000001
한편, 제2 경로에서, 입력 ck, 지연기들(411 및 412)을 거친 입력 ck, 및 지연기들(411, 412, 및 413)을 거친 입력 ck가 입력단에 피드백된다. 제2 경로에 대한 다항식은 재귀적 생성기 다항식(recursive generator polynomial)으로 호칭되고, 하기의 수학식의 g0와 같이 표현될 수 있다.
Figure PCTKR2017007877-appb-M000002
상기 수학식 1 및 2에서, “+”는 배타적 논리합(exclusive OR, XOR)을 의미하며, 1은 입력이 0번의 지연을 거침을 의미한다. 또한, Dn은 입력이 n번의 지연을 거침을 의미한다.
도 5는 RSC 부호화기에 따른 트렐리스(Trellis)의 일 예시를 도시한다.
도 5는 도 3에 도시된 RSC 부호화기의 트렐리스의 구성을 도시한다. 도 5에서 Si는 i번째 입력 데이터의 상태(state)를 나타낸다. 도 5에서, 각 원은 각 노드를 나타낸다. 아울러, 각 노드들 사이에 이어진 선은 브랜치(branch)를 의미한다. 실선의 브랜치는 입력값 1에 대한 브랜치를, 점선의 브랜치는 입력값 0에 대한 브랜치를 의미한다. 브랜치 상의 값은 m/C1C2 (입력값/시스테매틱 비트, 부호화된 비트)로 표시된다. 또한, 인코더의 메모리의 개수에 지수적으로 비례하는 상태를 가질 수 있다. 예를 들어, 인코더가 a개의 메모리를 포함하는 경우, 2a개의 상태가 트렐리스에 포함될 수 있다.
트렐리스는 2개의 상태 사이에서 가능한 부호기의 상태 전이를 도시하는 상태 기계(state machine)이다. RSC 부호화기와 같은 컨볼루션 부호화기는 트렐리스 다이어그램(diagram)에 따라서 부호화를 수행할 수 있다. RSC 부호화기에 의하여 부호화된 코드워드는 트렐리스 구조에 기반한 알고리즘에 따라서 복호화될 수 있다. 예를 들어, 비터비(Viterbi) 또는 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘이 이용될 수 있다.
도 6은 트렐리스 구조의 일 예시를 도시한다.
도 6에서, n은 코드워드(codeword)의 길이를 나타낸다. 통상적으로, 추가적인 비트들을 입력 시퀀스 뒤에 추가함으로써, 트렐리스가 종료(terminated)될 수 있다. 일반적으로 0의 시퀀스로 구성된 시퀀스는 테일 비트(tail bit)로 호칭된다. 테일 비트는 트렐리스의 한 상태의 노드들이 0 값을 가지도록 하여 트렐리스를 종료시킨다.
도 6에서, 코드워드의 길이는 입력 데이터의 길이 k 및 테일 비트의 길이 t를 고려하여 결정될 수 있다. 예를 들어, 코드율이 R인 경우, 코드워드의 길이 n은 (k+t)/R의 값을 가질 수 있다. 일반적으로, 테일 비트의 길이 t는 부호화기의 모든 지연기(예를 들어, 메모리)를 리셋할 수 있는 길이로 결정될 수 있다. 예를 들어, 도 3의 RSC 부호화기는 총 2 비트의 테일 비트를 사용할 수 있다. 또한, 도 4와 같은 LTE 통신의 터보 부호화기는 3 비트의 테일 비트를 사용할 수 있다.
테일 비트는 입력 데이터의 길이에 비하여 상대적으로 짧은 길이를 갖는다. 상술한 바와 같이 코드워드의 길이는 테일 비트의 길이와 연관되기 때문에, 코드워드의 길이가 한정된 경우에 테일 비트로 인한 코드율 손실이 발생할 수 있다. 그러나, 테일 비트로 인한 코드율 손실에도 불구하고, 테일 비트를 이용한 트렐리스 종료가 널리 이용되고 있다. 계산의 복잡도가 낮고 오류 정정 성능이 우수하기 때문이다.
펑쳐링(puncturing) 코드는 코드워드 중 일부를 펑쳐링하는 방식이다. 펑쳐링 코드에서, 코드워드 중 일부가 펑쳐링됨으로써 일부 코드워드가 송신되지 않는다. 예를 들어, 테일 비트의 추가로 인한 코드율 손실을 감소시키기 위하여 펑쳐링 코드가 이용될 수 있다. 이 경우, 수신단은 입력 데이터의 길이 k와 테일 비트의 길이 t의 합에 대응하는 트렐리스를 이용하여 복호를 수행할 수 있다. 즉, 수신단은 펑쳐링되지 않은 코드워드를 수신한 것으로 가정하고 복호를 수행할 수 있다. 이 경우, 수신단은 펑쳐링된 비트(즉, 송신단에서 송신되지 않은 비트)에 대응하는 노드로부터의 브랜치에 대하여는 입력값이 없는 것으로 간주할 수 있다. 즉, 해당 노드의 브랜치들에 대하여 입력 데이터는 동일한 확률로 0 또는 1로 가정된다.
도 1과 관련하여 상술한 바와 같이, 코드블록에 대한 CRC가 코드블록에 추가된다. CRC는 송신하려는 데이터를 기설정된 체크값을 제수로 사용하여 나눈 후, 도출되는 나머지로서 결정될 수 있다. CRC는 일반적으로 송신 데이터의 끝에 추가될 수 있다. 수신단은 수신 데이터를 기설정된 체크 값으로 나눈 나머지를 CRC와 비교하거나, CRC를 포함한 전체 수신 데이터에 대하여 체크 값으로 나눈 나머지가 0인지를 판단할 수 있다.
운송 블록의 크기가 6144 비트인 경우, CRC의 크기는 최대 24 비트로 구성될 수 있다. 따라서, CRC 비트를 제외한 나머지 비트가 코드 블록의 크기로 결정된다.
수신단은 복호화를 각 코드블록 단위로 수행할 수 있다. 그 후, 수신단은 코드블록으로부터 운송블록을 구성하고, 운송블록에 대한 CRC를 확인함으로써 복호 성공 여부를 판단할 수 있다. 현재의 LTE 시스템에서, 코드블록 CRC는 빠른 복호화 종료(early decoding termination)를 위하여 이용된다. 예를 들어, 하나의 코드블록에 대한 CRC 체크가 실패하는 경우, 수신단은 나머지 코드블록들을 복호화하지 않고 NACK (Negative ACKnowledgement)을 송신단에 송신할 수 있다.
NACK이 수신되는 경우, 송신단은 송신 데이터의 적어도 일부를 재송신할 수 있다. 예를 들어, 송신단은 운송블록 또는 하나 이상의 코드 블록을 재송신할 수도 있다. 예를 들어, 운송블록 전체를 재송신하는 경우, 재송신을 위하여 무선 자원이 과다하게 소모될 수 있다. 또한, 예를 들어, 수신단에서 코드블록 CRC 실패로 인한 NACK이 발생하는 경우, 수신단은 CRC 실패가 발생한 코드블록의 정보(예를 들어, 코드블록의 인덱스)를 송신단에 송신할 수 있다. 또한, 송신단은 코드블록의 정보를 이용하여 CRC 실패가 발생한 코드블록만을 전송하여 무선 자원 효율을 증가시킬 수도 있다. 그러나, 코드블록의 개수가 증가되는 경우, 코드블록의 정보(예를 들어, 코드블록의 인덱스)를 피드백하기 위한 데이터 양이 증가하게 된다.
LTE 통신 시스템에서, 수신단은 ACK/NACK 신호를 이용하여 데이터 수신 성공 여부를 송신단에 알려줄 수 있다. FDD(Frequency Division Duplex)의 경우, i번째 서브프레임에서 수신된 데이터에 대한 ACK/NACK이 i+4번째 서브프레임에서 송신된다. i+4번째 서브프레임에서 NACK이 수신되는 경우, 재전송은 i+8번째 서브프레임에서 수행될 수 있다. 이는, 운송블록을 처리하기 위한 시간과 ACK/NACK 생성을 위한 시간을 고려한 것이다. 운송블록의 처리를 위한 채널 코드 처리가 많은 시간을 소요하기 때문이다. TDD(Time Division Duplex)의 경우, 운송블록의 처리와 ACK/NACK 생성을 위한 시간과 상향링크 서브프레임 할당(예를 들어, TDD 상향링크/하향링크 설정)에 기초하여 ACK/NACK 및 재전송 서브프레임이 결정될 수 있다. 또한, ACK/NACK 번들링(bundling) 및 멀티플렉싱이 이용될 수 있다.
상술한 바와 같이, 터보 코드는 일정 SNR을 넘어서면 더 이상의 오류율 개선이 미미하다. 터보 코드의 대안으로서, LDPC (Low-Density Parity-Check) 코드가 제안되고 있다. LDPC 코드는 선형 블록 코드(linear block code)로서, IEEE 802.11n, 802.11ac 및 디지털 비디오 브로드캐스팅(Digital Video Broadcasting, DVB)에서 이용된다. LDPC 코드는 생성 행렬(generation matrix)과 패리티 검사 행렬(parity check matrix)로 구성될 수 있다. LDPC 코드에서, 데이터는 메시지 비트들(message bits)과 생성 행렬에 대한 곱 연산을 통하여 부호화될 수 있다. 일반적으로 LDPC 코드를 이용하는 통신 표준에서는, 생성 행렬 대신에 패리티 검사 행렬이 이용될 수 있다. 예를 들어, 패리티 검사 행렬을 이용하여 데이터의 부호화가 수행될 수 있다.
선형 블록 코드는 생성행렬 G 또는 패리티 체크 행렬 H에 기초하여 생성될 수 있다. 선형 블록 코드는 모든 코드워드 c에 대하여, Hct가 0의 값을 갖도록 코드가 구성된다. LDPC 코드 또한, 다른 선형 블록 코드와 동일하게, 패리티 검사 행렬 H와 코드워드 c의 곱이 '0'이 되는지를 확인함으로써 수행될 수 있다. 예를 들어, 코드워드 c의 전치행렬과 패리티 검사 행렬에 대한 곱(즉, Hct)이 0인지를 판단함으로써 LDPC 코드의 복호화가 수행될 수 있다.
LDPC 코드에 있어서, 패리티 체크 행렬의 원소는 대부분 0으로 이루어지고, 0이 아닌 원소의 수는 코드의 길이에 비하여 적은 수를 가진다. 따라서, LDPC 부호는 확률에 기초한 반복적 복호가 가능하다. 초기에 제안된 LDPC 부호에서, 패리티 체크 행렬을 비체계적(non-systematic) 형태로 정의되고, 패리티 체크 행렬의 행(row)과 열(column)에 균일하게 적은 웨이트(weight)가 적용되었다. 웨이트는 행 또는 열에 포함된 1의 개수를 의미할 수 있다.
상술한 바와 같이, LDPC 코드의 패리티 체크 행렬 H 상에 0이 아닌 원소의 밀도가 낮다. 따라서, LDPC 코드는 낮은 복호 복잡도를 가지면서도 섀넌(Shannon)의 이론적 한계에 근접하는 성능을 갖는다. 이러한 LDPC 코드의 높은 오류 정정 성능과 낮은 복호 복잡도로 인하여, LDPC 코드는 고속 무선 통신에 적합한 특성을 갖는다.
이하에서, 구조화된(structured) LDPC 코드에 대하여 설명된다.
상술한 바와 같이, LDPC 코드의 생성을 위하여 패리티 체크 행렬 H가 이용될 수 있다. H 행렬은 많은 0과 적은 수의 1을 포함한다. H 행렬의 크기는 105 비트 이상의 크기를 가질 수 있으며, H 행렬을 표현하기 위하여 많은 메모리가 소모될 수 있다. 구조화된 LDPC 코드에서, H 행렬의 원소들은, 도 7에 도시된 바와 같이, 일정한 크기의 서브 블록(sub-block)들로 표현될 수 있다. 도 7에서, 행렬 H의 각각의 요소들은 하나의 서브블록을 나타낸다.
IEEE 802.16e 표준 문서에서는, 서브 블록을 하나의 정수 인덱스(index)로 표시함으로써, H 행렬을 표현하기 위한 메모리의 크기를 감소시킬 수 있다. 각각의 서브 블록은, 예를 들어, 일정한 크기의 퍼뮤테이션 행렬(permutation matrix)일 수도 있다.
도 8은 일 예시에 따른 모델 행렬(model matrix)을 도시한다.
예를 들어, IEEE 802.16e 표준 문서를 참조하면, 코드워드의 크기가 2304이고 부호율(code rate)이 2/3인 경우, LDPC 코드 부호화/복호화를 위하여 사용되는 모델 행렬은 도 8과 같다. 모델 행렬은 이하에서 설명되는 적어도 하나의 서브 블록으로 구성된 패리티 검사 행렬을 의미할 수 있다. 또한, 서브 블록은, 이하의 설명에 있어서, 쉬프트 수(shift number)로 지칭될 수 있다. 모델 행렬은 후술하는 방법에 기초하여 패리티 검사 행렬로 확장될 수 있다. 따라서, 특정한 모델 행렬에 기초한 부호화 및 복호화는 해당 모델 행렬의 확장으로부터 생성된 패리티 검사 행렬에 기초한 부호화 및 복호화를 의미한다.
도 8에서, 인덱스 '-1'은 기설정된 크기의 영 행렬(zero matrix)을 나타낸다. 또한, 인덱스 '0'은 기설정된 크기의 단위 행렬(identity matrix)을 나타낸다. '-1' 및 '0'을 제외한 양의 정수의 인덱스는 쉬프트 수를 나타낸다. 예를 들어, '1'의 인덱스로 표현되는 서브 블록은 단위 행렬으로부터 특정한 방향으로 1회 쉬프트된 행렬을 의미할 수 있다.
도 9는 쉬프트 수에 따른 행렬의 변환을 설명하기 위한 도면이다.
예를 들어, 도 9는 서브 블록의 크기가 4행 및 4열을 갖는 경우를 도시한다. 도 9에서, 서브 블록은 단위 행렬으로부터 우측으로 3회 쉬프트 된다. 이 경우, 구조화된 LDPC의 코드의 패리티 체크 행렬은 '3'의 정수 인덱스를 이용하여 서브 블록을 표시할 수 있다.
일반적으로, LDPC 코드의 부호화는 패리티 체크 행렬 H로부터 생성 행렬(Generation Matrix) G를 생성하고, 생성 행렬을 이용하여 정보 비트를 부호화함으로써 수행될 수 있다. 생성 행렬 G의 생성을 위하여, 패리티 체크 행렬 H에 대하여 가우스 소거(Gaussian Reduction)를 수행하여 [PT : I] 형태의 행렬을 구성한다. 정보 비트의 수가 k이고 부호화된 코드워드의 크기가 n인 경우, 행렬 P는 행의 개수가 k이고 열의 개수가 n-k인 행렬이고, I는 크기가 k인 단위 행렬이다.
패리티 체크 행렬 H가 [PT : I] 의 형태를 갖는 경우, 생성 행렬 G는 [I : PT]의 형태를 갖는다. 크기 k비트의 정보 비트가 부호화되는 경우, 부호화된 정보 비트는 1행 k열의 행렬 x로 표현될 수 있다. 이 경우, 코드워드 c는 xG이고, xG는 [x : xP]의 형태를 갖는다. 여기서, x는 정보 부분(또는 시스테매틱 부분(systematic part))을 나타내고, xP는 패리티 부분(parity part)을 나타낸다.
또한, 가우스 소거를 이용하지 않고, H 행렬을 특수한 구조로 설계함으로써, 행렬 G를 유도하지 않고 H 행렬로부터 직접 정보 비트를 부호화할 수도 있다. 상술한 H 행렬과 G 행렬의 구조로부터, 행렬 G와 행렬 H의 전치 행렬의 곱은 0의 값을 갖는다. 이러한 특징과 상술한 정보 비트와 코드워드 사이의 관계를 이용하면, 정보 비트의 뒤에 패리티 비트를 추가함으로써 코드워드가 획득될 수 있다.
도 10은 일 예시에 따른 LDPC 코드 복호화 방법의 흐름도이다.
통신 시스템에서, 부호화된 데이터는 무선 채널을 통과하는 과정에서 잡음을 포함하게 된다. 따라서, 코드워드 c는 수신단에서 잡음을 포함하는 코드워드 c'으로 표현된다. 수신단은 수신신호에 대하여 역다중화 및 복조(demultiplexing and demodulation)를 수행(S1000)하고, 복호 파라미터들을 초기화(S1005)한다. 수신단은 체크 노드(check node)와 변수 노드(variable)를 갱신(S1010, S1015)하고, 신드롬 체크를 수행(S1020)한다. 즉, c'HT가 0인지를 확인함으로써, 복호화 절차가 종료될 수 있다. c'HT가 0인 경우, c'에서 처음 k개의 비트가 정보 비트x로 결정될 수 있다. 만약 c'HT가 0이 아닌 경우, 합곱(sum-product) 알고리즘 등의 복호화 기법에 기초하여 c'HT가 0을 만족하는 c'을 찾음으로써 정보 비트x가 복구될 수 있다.
도 11은 일 예시에 따른 이진 그래프(bipartite graph)를 도시한다.
도 11에서, 좌측의 노드들(v0, v1, …, v11)은 변수 노드(variable node)들을 나타내며, 우측의 노드들(c1, c2, …, c6)은 체크 노드들을 나타낸다. 도 11의 예시에서, 설명을 위하여 변수 노드 v0와 체크 노드 c1을 중심으로 이진 그래프가 도시되었다. 도 11의 이진 그래프의 연결선은 에지(edge)로 호칭될 수 있다. 도 11의 이진 그래프는 Hct로부터 생성될 수 있다. 따라서, 도 11에서, 변수 노드 v0로부터의 에지는 패리티 체크 행렬 H의 1열에 대응하고, 체크 노드 c1으로부터의 에지는 행렬 H의 1행에 대응한다.
상술한 바와 같이, 복호가 성공되기 위하여는, 패리티 체크 행렬H와 코드워드 행렬c의 전치행렬의 곱이 '0'값을 가져야 한다. 따라서, 하나의 체크 노드에 연결된 변수 노드들의 값이 0이어야 한다. 따라서, 도 11의 경우, 체크 노드 c1에 연결된 변수 노드들(v0, v1, v4, v6, v9, v11)의 값의 배타적 논리합(exclusive OR, XOR)의 값이 '0'이어야 한다. 신드롬 체크(syndrome check)는, 각 체크 노드에 연결된 변수 노드들의 값이 배타적 논리합의 값이 0인지를 확인하는 것을 의미한다.
eMBB (enhanced Mobile BroadBand) 통신 환경에서, LDPC 코드가 이용될 수 있다. 예를 들어, LDPC 코드는 데이터 채널에 이용될 수도 있다. 이와 관련하여, CRC 대신에 신드롬 체크를 이용하는 LDPC 코드의 복호화 방법이 제안된 바 있다. 그러나, 반복 복호마다 신드롬 체크가 수행되는 경우, 신드롬 체크를 위하여 변수 노드에 대한 로그 우도비(log likelihood ratio)가 저장된 메모리가 매번 판독(read)될 필요가 있다. 따라서, 메모리 판독으로 인한 전력 소모와 지연이 증가하는 문제가 발생될 수 있다.
합-곱(sum-product) 알고리즘은 용량-접근 코드(capacity-approaching code)(예를 들어, 터보 코드 또는 LDPC 코드)에 대한 표준적 복호화 알고리즘(standard deocoding algorithm)으로서 이용된다. 합-곱 알고리즘을 이용한 복호화 방법으로서는, 신뢰 전파(belief propagation) 알고리즘이 이용된다. 계층적 신뢰 전파 알고리즘(layered belief propagation algorithm)에서, LDPC 코드의 복호를 위하여 합-곱(sum-product) 알고리즘의 체크 노드와 변수 노드에 대한 연산이 순차적으로 프로세싱된다. 따라서, 계층적 신뢰 전달 알고리즘에서, 첫 번째 변수 노드의 확률 값이 첫 번째 변수노드와 연결된 체크 노드들에 전달되고, 각 체크 노드에 전달된 확률 값에 기초하여 계산된 부가정보 값이 각 체크 노드에 연결된 변수 노드들에 전달된다. 전달된 부가정보 값에 기초하여 나머지 변수 노드들에 대한 갱신이 순차적으로 수행된다. 따라서, 전체 변수 노드들의 확률 값이 갱신될 수 있다.
계층적 신뢰 전파 알고리즘의 순차적 변수 노드 갱신으로 인하여, 특정 변수 노드의 갱신에 이미 갱신된 다른 변수 노드의 확률 값이 이용될 수 있다. 그러나, 계층적 신뢰 전파 알고리즘을 이용한 복호화는 복호를 위한 시간이 플루딩 신뢰 전파(flooding belief propagation) 알고리즘에 비하여 코드워드의 길이만큼 증가하는 단점이 있다. 예를 들어, 복호화 시간은 코드워드의 길이 N배만큼 증가될 수 있다.
도 12는 일 예시에 따른 신드롬 체크를 이용한 LDPC 코드 복호화 방법의 흐름도이다.
수신단은 채널로부터 LLR(Log Likelihood Ratio) 값을 계산(S1201)한다. 예를 들어, 수신단은 수신된 입력신호 또는 코드워드의 LLR 값을 계산할 수 있다. 또한, 도 12에는 미도시되었으나, 수신단은 LLR 값을 이용하여 변수 노드들을 초기화할 수 있다. 또한, 수신단은 파라미터 Itr의 값을 0으로 초기화(S1202)한다. 파라미터 Itr은 반복 횟수를 나타내는 파라미터이다. 수신단은 변수 노드들의 값에 기초하여 각각의 체크 노드들을 갱신(S1203)한다. 예를 들어, 패리티 체크 행렬에 의하여 각각의 체크 노드와 연관된 변수 노드들의 값에 기초하여 각각의 체크 노드가 갱신될 수 있다. 또한, 수신단은 각각의 변수 노드들을 갱신(S1204)할 수 있다. 예를 들어, 수신단은 패리티 체크 행렬에 의하여 각각의 변수 노드와 연관된 체크 노드들의 값(예를 들어, 체크 노드의 LLR 값)에 기초하여 각각의 변수 노드들을 갱신할 수 있다.
수신단은 Itr의 값이 기설정된 최댓값 미만인지를 결정(S1205)한다 수신단은, Itr의 값이 최댓값 미만인 경우, 신드롬 체크 성공 여부를 결정(S1206)할 수 있다. 예를 들어, 수신단은 패리티 체크 행렬을 이용하여 체크 노드들에 대한 신드롬 체크를 수행할 수 있다. 예를 들어, 신드롬 체크는 도 9 내지 도 11과 관련하여 상술한 방법에 따라서 수행될 수 있다. 신드롬 체크가 성공된 경우, 복호가 성공된 것으로 간주될 수 있다. 따라서, 복호가 종료될 수 있다. 그러나, 신드롬 체크가 실패한 경우, 수신단은 Itr의 값을 1 증가시키고 단계 S1203 내지 단계 S1205를 반복할 수 있다. 그러나, 반복 횟수가 기설정된 최댓값에 도달하면, 수신단은 복호가 실패한 것으로 간주할 수 있다. 예를 들어, 복호가 실패된 경우, 수신단은 복호를 종료하고 NACK (Negative ACKnowledgement) 및/또는 재송신 요청을 송신단에 송신할 수 있다.
LDPC 코드의 우수한 성능을 획득하기 위하여, 패리티 체크 행렬(또는 생성 행렬)이 임의적으로 구성될 수 있다. 또한, LDPC 코드의 성능은 블록의 길이가 증가함에 따라서 향상될 수 있다. 또한, 복호에 있어서, 최적(optimal) 복호 방법을 통하여 LDPC 코드의 성능이 향상될 수 있다. 그러나, 최적 복호의 복호 복잡성으로 인하여, LDPC 코드의 복호를 위하여 신뢰 전파(belief propagation) 알고리즘이 이용된다. 또한, 임의적으로 생성된 LDPC 코드의 패리티 체크 행렬은 우수한 성능을 가지나, 그 구현과 표현이 매우 복잡하다. 따라서, 상술한 바와 같은 구조화된 LDPC 코드가 널리 사용된다. 이러한 구조화된 LDPC 코드로서, QC LDPC (Quasi-Cyclic LDPC) 코드가 널리 사용된다.
QC-LDPC 코드는 Q×Q 크기를 갖는 0행렬과 Q×Q 크기를 갖는 순환순열 행렬(Circulant Permutation Matrix, CPM)으로 구성된다. 순환순열행렬은Pa는 Q×Q 크기의 단위 행렬(identity matrix)을 순환이동 값 a만큼 순환 이동시킨 형태(도 9 참조)를 갖는다. 예를 들어, 도 7에 도시된 바와 같이, 패리티 체크 행렬(H)은 (mb+1)×(nb+1) 개의 순환순열행렬들로 구성될 수 있다. 상술한 바와 같이, 순환이동 값 0은 단위 행렬을, -1은 0행렬을 나타낸다. 또한, 패리티 체크 행렬은, 도 8에 도시된 바와 같이, 순환이동 값들의 행렬로 표현될 수도 있다. 여기서 각각의 순환 이동의 값은 -1 이상 Q-1 이하의 값을 갖도록 설정될 수 있다. 도 8과 같이 순환이동의 값으로 구성된 행렬은 순환이동 행렬 또는 특성 행렬(characteristic matrix)으로 호칭될 수 있다.
원하는 크기의 QC LDPC 코드의 구성을 위하여, 리프팅(lifting) 동작이 수행될 수 있다. 리프팅은 기설정된 패리티 체크 행렬으로부터 원하는 크기의 패리티 체크 행렬을 획득하기 위하여 이용된다. 리프팅 크기를 변경함으로써 다양한 코드 길이가 지원될 수 있다. 예를 들어, 플로어(floor) 리프팅 또는 모듈로(modulo) 리프팅이 이용될 수 있다. 예를 들어, Q가 20이고, 리프팅 값 Z가 5인 경우, 생성된 QC LDPC가 처리할 수 있는 정보의 크기는 100이다.
리프팅 동작을 처리하기 위하여, 다양한 유형의 쉬프팅 네트워크(shifting network)가 이용될 수 있다. 예를 들어, QC-LDPC 코드에 대하여, 상호연결 라우팅 네트워크(interconnection routing network)는 부행렬(submatrix)의 크기와 순환순열행렬들(circulant permutation matrices) 각각의 순환-이동(circular-shift) 값에 의하여 정의될 수 있다. QC-LDPC 의 리프팅을 위하여, 후술하는 쉬프트 네트워크(shift network) 기술들이 이용될 수 있다.
예를 들어, 단일-크기 순환 쉬프팅 네트워크(Single-size circular shifting network, SS-CS network)는 하나의 크기 Z만으로 구성된 데이터 어레이(array)를 갖는 배럴 쉬프터(barrel shifter)를 이용한다. SS-CS 네트워크는 0, 1, …, Z-1의 임의 회전을 갖는다. SS-CS 네트워크의 임의 회전은 2의 지수승에 의하여 ceil(log2Z)의 연속된 회전들(consecutive rotations)로 분해된다. 여기서, ceil(X)는 X 값 이하의 최대 정수를 나타낸다. SS-CS 네트워크는 Z*ceil(log2Z) 개의 다중화기들(multiplexers)과 ceil(log2Z) 개의 단계들을 필요로 한다.
또한, 예를 들어, 다중-크기 순환 쉬프팅(Multi-size circular shifting, MS-CS) 네트워크는, 적응(adaptation) 네트워크에 병합된 임의의 크기를 갖는 SS-CS 네트워크 어레이들로 구성될 수 있다. MS-CS 네트워크는 Z*(ceil(Z/A)-1+ceil(log2A)) 개의 다중화기들의 ceil(log2A)+ceil(log2Z)개의 단계들록 구성될 있다. 여기서, A는 모든 블록 크기들에 대한 가장 큰 공통 제수(common divisor)이다.
또한, 예를 들어, QC-LDPC 쉬프트 네트워크(QSN)는 통상 대수 배럴 쉬프터(conventional logarithmic barrel shifter)를 이용한다. QSN은, 2 개의 배럴 쉬프터들과 병합 네트워크를 활용하여 네트워크의 크기 이하인 임의의 크기의 입력에 대하여 순환 쉬프팅을 제공할 수 있다. QSN은 Z*(2*ceil(log2Z)-1)+1 개의 다중화기들과 ceil(log2Z)+1 개의 단계들을 필요로 한다.
높은 처리량의 달성을 위하여 쉬프팅 네트워크가 한정될 수 있다. 또한, LDPC 코드 또는 LDPC 코드와 터보 코드가 이용되는 경우, 운송블록에 대한 코드블록 분할 기법이 이하에서 설명된다. 이 경우, LDPC 코드의 높은 처리량을 획득하기 위하여, 리프팅 크기 Z를 m*2n으로 구성할 수 있다 (m은 1 이상의 정수, n은 1 이상의 정수). 상술한 바와 같이 리프팅 크기 Z값을 한정하는 경우, 단일-크기 순환 쉬프팅 네트워크의 특징을 이용하여, 1 이상 최댓값 이하의 n 값에 대응하는 리프팅 동작이 쉽게 지원될 수 있다. m은 쉬프트 네트워크의 구성 방식에 따라서 변경될 수 있는 값으로서, 이하의 실시예에 있어서는 설명의 편의를 위하여 m은 1로 가정된다. 또한, 이하의 실시예에 있어서, 설명의 편의를 위하여, 하나의 패리티 체크 행렬이 이용될 수 있다. 하나의 패리티 체크 행렬에 대한 리프팅 동작을 통하여 다양한 길이의 정보 시퀀스들이 지원될 수 있다. 하나의 패리티 체크 행렬이 이용되는 경우, 변수 노드와 체크 노드의 쉬프팅 네트워크로의 연결이 단순하게 구성될 수 있다. 또한, 전용 라우팅(dedicated routing)이 가능하기 때문에, 높은 처리량이 획득될 수 있다.
LDPC 코드는 터보 코드에 비하여 지원할 수 있는 정보 크기에 대한 유연성이 낮다. 특히, 쉬프트 네트워크의 구성에 따라서 그 유연성이 변경될 수 있으며, 높은 처리량의 획득을 위하여, 2n 쉬프트 네트워크를 사용하는 경우, 유연성이 더욱 낮아질 수 있다.
이하의 실시예는 LDPC 코드에 대하여 적용될 수 있다. 예를 들어, N×M 크기의 패리티 체크 행렬이 이용될 수 있다. 또한, M과 N의 차는 16일 수 있다. 또한, 최대 리프팅 값 Zmax는 512로 설정될 수 있다. 즉, 예를 들어, m은 1이고, n은 9가 최댓값으로서 설정될 수 있다. 이 경우, LDPC 코드가 지원할 수 있는 최대 정보 비트의 길이는 (N-M)*Z로 정의될 수 있다. 따라서, 본 예시에서, 지원가능한 최대 크기의 정보 비트의 크기는 8192 비트이다.
상술한 바와 같이, 운송 블록의 크기가 코드블록의 크기보다 큰 경우, 운송블록은 복수의 코드블록들로 분할된다. 예를 들어, LDPC 코드가 리프팅 값 Zi에 의하여 지원할 수 있는 정보 비트의 길이가 Ki로 지칭될 수 있다. 여기서, i는 log2Zmin 이상, log2Zmax 이하의 정수이고, Zmin은 Zi의 최솟값을, Zmax는 Zi의 최댓값을 나타낸다. 이하의 실시예들에 있어서, 리프팅 값 Zi의 인덱스 i는 log2Zi이다.
쇼트닝 기법을 통하여 Ki 이하의 길이를 갖는 정보 비트가 지원될 수 있다. 쇼트닝 기법에 있어서, 정보 비트의 길이가 Ki가 되도록 기설정된 비트 시퀀스가 정보 비트에 추가될 수 있다. 추가된 기설정된 비트 시퀀스는 부호화 후에, 제거될 수 있다. 그러나, 쇼트닝 기법에 있어서, 부호화 후에 제거되는 비트의 길이(즉, 정보 비트에 추가된 기설정된 비트 시퀀스의 길이)가 길수록 성능이 열화될 수 있다. 따라서, 성능의 열화를 방지하기 위하여, 기설정된 길이 이상의 정보 비트가 이용되도록 한정될 수 있다. 예를 들어, 리프팅 크기 Zi에 대하여, 허용될 수 있는 최소의 정보 비트의 길이는 Kimin으로 지칭될 수 있다. 따라서, Kimin은 항상 Ki 미만의 값을 갖는다. 예를 들어, 운송 블록의 크기가 KTB인 경우, 하기의 수학식이 만족될 수 있다.
Figure PCTKR2017007877-appb-M000003
위 수학식에서, nCB는 운송블록을 구성하기위하여 분할된 코드블록의 수를 나타낸다. 위 수학식에서, Kzmax는 최대 리프팅 값 Zmax에 의하여 지원될 수 있는 정보 비트의 길이를 나타낸다.
먼저, KTB가 2*Kzmax인 경우, 2n 쉬프팅 네트워크는 공비(r)가 2인 등비 수열 형태의 리프팅 값을 갖는다. 따라서, 하기의 수학식이 성립될 수 있다.
Figure PCTKR2017007877-appb-M000004
위 수식에서, Arn-1은 리프팅 값 Zn에 대응하는 정보 비트의 길이를 나타낸다. 또한, 위 수식은 리프팅 값 Z0 내지 Zn-1에 대응하는 정보 비트의 길이의 합을 나타낸다. 따라서, 위 수식은, Zmax가 지원하는 정보 비트의 크기(Kzmax)가 Zmax를 제외한 나머지 모든 리프팅 값들에 의하여 지원되는 정보 비트들의 합보다 큼을 나타낸다. 따라서, 이러한 특징이 코드블록 분할에 이용될 수 있다.
예를 들어, 16,384 비트 미만의 길이를 갖는 운송블록이 이용될 수 있다. 에를 들어, 운송 블록의 크기 KTB는 1024비트일 수 있다. 이 경우, 운송블록은 8192 비트의 코드블록과 2048 비트의 코드블록으로 분할 될 수 있다. 또한, 운송블록은 5개의 2048 비트 코드블록으로 분할 될 수도 있다. 2n 쉬프팅 네트워크의 경우, 각각의 쉬프팅 값은 최대값 Zmax로부터 공비가 1/2인 등비수열로 정의될 수 있다. 따라서, 코드블록의 수 n을 결정하기 위하여 하기와 같은 수식이 이용될 수 있다.
Figure PCTKR2017007877-appb-M000005
또한, 공비 1/2를 이용하여 위 수식을 정리하면 하기와 같다.
Figure PCTKR2017007877-appb-M000006
예를 들어, n의 값은 위 수학식을 만족하는 최소값으로 결정될 수 있다 (n은 1 이상의 정수). 예를 들어, KTB가 10000이고, Kzmax가 8192인 경우, n이 1이면 위 수식은 만족되지 않는다. 그러나, n이 2인 경우에 위 수식이 만족될 수 있다. 따라서, 위 조건 하에서, 운송블록이 2개의 코드블록으로 구성되도록 결정될 수 있다.
또한, 상술한 바와 같이, 쇼트닝 기법을 이용하여 코드 블록의 크기에 대한 유연성이 증가될 수 있다. 이 경우, 하기의 방법과 같이 코드 블록이 분할(segmentation)될 수 있다. 분할에 의하여 생성된 코드블록의 수가 증가할수록 BLER(Block Error Rate)이 증가할 수 있다. 따라서, 코드블록의 수가 작도록 코드블록 분할이 수행될 필요가 있다. 그러나, 큰 크기의 코드블록들만으로 코드블록 분할을 수행하는 경우, 쇼트닝 비트가 증가하여 코드 성능이 열화될 수 있다. 따라서, 이하에서, 코드블록의 수와 쇼트닝 비트의 길이를 최소화하기 위한 코드블록 분할 방법이 설명된다. 보다 구체적으로, 상술한 수학식 6에 따라서 코드블록들의 수가 결정될 수 있다. 이하에서는, 결정된 코드블록들의 수에 따라서 구체적인 코드블록의 크기를 결정하는 방법이 설명된다.
이하에서, 운송 블록의 길이 KTB가 최대 리프팅 값에 의한 정보 비트의 길이 Kzmax보다 큰 것으로 가정된다. KTB가 Kzmax 이하인 경우, 코드블록 분할 없이 쇼트닝만으로도 레이트 매칭이 수행될 수 있기 때문이다.
먼저, 하기의 수학식을 만족하도록 정수 x값이 결정된다.
Figure PCTKR2017007877-appb-M000007
위 수학식에서, x는 운송블록에 대하여 결정된 Kzmax에 대응하는 코드블록들의 수를 나타낸다. 즉, 본 실시예에서, x값은 운송블록의 길이 미만에서 xKzmax가 최대가 되도록 하는 값으로서 선택된다.
운송블록의 길이가 2Kzmax 미만인 경우, 상술한 수학식7과 관련된 과정은 생략될 수 있다. 이하에서의 운송블록은 운송블록의 길이가 2Kzmax 미만이거나, 상술한 수학식 7을 만족하는 (KTB-x*Kzmax)의 길이를 갖는 것으로 가정된다.
운송블록에 대하여 하기와 같은 방법으로 코드블록 분할이 수행될 수 있다. 운송블록의 길이 미만의 최소 정보 비트 길이를 갖는 리프팅 값들 중 최대 리프팅 값이 선택된다. 본 실시예의 운송블록 길이의 제한으로 인하여, 최대 리프팅 값이 항상 최초로 선택된다,
그 이후, 운송블록으로부터 이전에 선택된 모든 리프팅 값에 대응하는 최소 정보 비트 길이들의 합을 감산한 값 미만의 최소 정보 비트 길이를 갖는 리프팅 값들 중 최대 리프팅 값이 선택된다.
그 후, 이전에 선택된 모든 리프팅 값들에 의한 코드블록 길이들의 합이 운송블록의 길이 이상이면 리프팅 값 선택이 종료될 수 있다. 이 경우, 운송블록은 선택된 최대 리프팅 값을 제외한 나머지 리프팅 값들에 의한 코드블록의 길이들의 합을 감산한 길이를 갖는 코드블록과 나머지 리프팅 값들에 의한 코드블록들로 구성될 수 있다. 즉, 짧은 길이의 코드블록에 대하여 쇼트닝을 수행하는 대신에 가장 큰 길이의 코드블록에 대하여 쇼트닝이 수행된다,
또한, 예를 들어, 운송블록의 길이로부터 선택된 모든 리프팅 값들 중 최대 리프팅 값을 제외한 나머지 리프팅 값들에 의한 코드블록의 길이들의 합을 감산한 값이 선택된 최대 리프팅 값에 의한 코드블록에 대한 최소 정보 비트의 길이 미만인 경우, 이전에 선택된 리프팅 값 이하의 추가적 리프팅 값이 더 선택될 수도 있다. 여기서, 하나의 리프팅 값에 대한 최소 정보 비트는 해당 리프팅 값에 대응하는 정보 비트 길이에 대하여 허용될 수 있는 최대 쇼트닝을 수행한 후의 쇼트닝된 정보 비트 길이를 지칭할 수 있다.
예를 들어, 운송 블록의 길이가 9000으로 가정될 수 있다. 최대 리프팅 값에 의한 정보 비트의 길이가 8192일 수 있다. 쇼트닝을 고려하지 않는 경우, 최대 리프팅 값에 의한 코드블록과 나머지 길이 이상에 대응하는 최소 리프팅 값으로 운송 블록이 분할될 수 있다. 예를 들어, 운송 블록은 길이 8192의 코드블록과 길이 1024의 코드블록으로 분할될 수 있다. 그러나, 이 경우, 상대적으로 짧은 길이에 의한 길이 1024의 코드블록에 의하여 전체 코드의 성능이 결정될 수 있다. 일반적으로, 코드 블록의 길이가 짧을수록 성능이 감소되기 때문에, 전체적인 코드의 성능이 감소될 수 있다.
따라서, 상술한 실시예에 따라서, 코드블록 분할이 수행될 수 있다. 예를 들어, 8192 길이의 코드블록에 대한 최소 정보 블록의 길이는 6000이고, 2048 길이의 코드블록에 대한 최소 정보 블록의 길이는 1800일 수 있다. 상술한 방법에 의하여 코드블록이 분할되는 경우, 먼저, 최대 리프팅 값이 선택될 수 있다. 그 후, 이전에 선택된 리프팅 값에 의한 최소 정보 비트의 길이 6000을 운송블록의 길이로부터 감산한 값이 3000 미만의 최대 리프팅 값인 2048이 선택될 수 있다. 이 경우, 선택된 모든 리프팅 값들에 의한 코드블록 길이의 합이 운송 블록의 길이를 초과하기 때문에 더 이상의 리프팅 값은 선택되지 않는다. 또한, 예를 들어, 운송 블록은 2048 길이의 코드블록과 6952길이의 코드블록으로 분할될 수 있다. 또한, 6952길이의 코드블록은 8192 길이의 코드블록에 대한 쇼트닝을 통하여 생성될 수 있다.
한편, 상술한 코드블록의 분할은 운송블록의 길이가 최대 리프팅 값에 의한 정보 비트의 길이와 기설정된 범위 내에 있을 때에도 적용될 수 있다. 예를 들어, 운송 블록의 길이가 8200인 경우, 운송블록은 2048의 길이를 갖는 코드블록과 6152의 길이를 갖는 코드블록으로 구성될 수도 있다.
예를 들어, 운송블록의 길이가 16540일 수도 있다. 또한, 최대 리프팅 값에 의한 정보비트의 길이는 8192로 가정된다. 이 경우, 운송블록의 길이가 최대 리프팅 값에 의한 정보비트의 길이의 두배를 초과한다. 따라서, 상술한 수학식에 따라서, x는 1로 결정된다. 운송블록의 길이로부터 최대 리프팅 값에 의한 1개의 정보비트 길이를 감산한 값인 8348에 대하여 상술한 코드블록 분할이 수행된다. 먼저, 최대 리프팅 값이 8192가 선택된다. 이 경우, 최대 리프팅 값에 대한 최소정보비트 길이가 6000으로 가정된다. 예를 들어, 길이 4096의 코드블록에 대하여 허용될 수 있는 최소정보비트의 길이는 3348 이상일 수 있다. 따라서, 후속하는 리프팅 값으로서, 3348 미만의 최소정보비트 길이를 갖는 코드블록에 대응하는 리프팅 값이 선택된다. 예를 들어, 2048 길이에 대응하는 리프팅 값이 선택될 수 있다. 이 경우, 결정된 최대 리프팅 값의 수(x)와 선택된 리프팅 값의 수에 따라서 코드블록의 수가 결정될 수 있다. 상술한 예시에 있어서, 운송 블록은 2개의 최대 리프팅 값에 대응하는 코드블록들과 2048의 길이를 갖는 코드블록으로 구성될 수 있다. 또한, 쇼트닝은 하나의 최대 리프팅 값에 대응하는 코드블록에서만 수행될 수 있다. 이 경우, 운송블록은 8192길이의 코드블록, 6300 길이의 코드블록, 및 2048 길이의 코드블록으로 구성될 수 있다. 또한, 쇼트닝은 모든 최대 리프팅 값에 대응하는 코드블록들 전체에 동등하게 수행될 수 있다. 이 경우, 운송블록은 7246 길이의 코드블록 2개와, 2048 길이의 코드블록으로 구성될 수 있다.
상술한 바와 같이, LDPC 코드의 운송블록의 성능은 가장 작은 코드블록에 의존적이다. 따라서, 가장 작은 길이의 코드블록의 크기를 증가시키기 위하여, 하기와 같은 쇼트닝 기법이 수행될 수 있다.
상술한 바에 따라 리프팅 값들이 선택되면, 쇼트닝 비트의 길이가 결정될 수 있다. 예를 들어, 선택된 리프팅 값들에 의한 코드블록 길이들의 합으로부터 운송 블록의 길이를 감산한 값이 쇼트닝 비트의 길이로서 결정될 수 있다.
또한, 각각의 코드블록에 대한 최대 쇼트닝 비트의 길이들의 합이 결정된 쇼트닝 비트의 길이 이상일 때까지, 각각의 코드블록에 대한 최대 쇼트닝 비트 길이들이 합산된다. 또한, 예를 들어, 선택된 가장 작은 리프팅 값이 제1 리프팅 값일 수 있다. 제1 리프팅 값에 의한 코드 블록의 길이에 합산된 최대 쇼트닝 비트 길이들의 합을 더한 값이 제1 리프팅보다 높은 제2 리프팅 값에 의한 코드블록의 길이를 초과하는 경우, 제1 리프팅 값 대신에 제2 리프팅 값이 선택될 수 있다. 한편, 제2 리프팅 값이 최대 리프팅 값 이상인 경우, 제2 리프팅 값은 최대 리프팅 값으로서 설정된다. 그 후, 재선택된 리프팅 값들에 의한 코드블록에 대하여 쇼트닝이 수행될 수 있다. 쇼트닝은 가장 큰 크기의 코드블록에 동등하게 수행될 수 있다.
예를 들어, 상술한 예시와 같이, 16540 길이의 운송블록은 7246 길이의 코드블록 2개와, 2048 길이의 코드블록으로 구성될 수 있다. 이 경우, 기선택된 리프팅 값에 대한 쇼트닝 비트의 길이는 1892 비트이다. 최대 크기의 리프팅 값들에 대한 최대 쇼트닝 이 경우, 최대 리프팅 값에 대응하는 코드블록에 대한 최대 쇼트닝 비트의 길이는 2192로 설정될 수 있다. 하나의 최대 길이의 코드블록에 대한 최대 쇼트닝이 결정된 쇼트닝 비트의 길이(1892)보다 크므로, 해당 최대 쇼트닝 비트의 길이가 2048 길이의 코드블록에 더하여 진다. 이는, 길이 2048에 대응하는 리프팅 값보다 큰 리프팅 값에 의한 정보 비트의 길이(4096)를 초과한다. 따라서, 길이 2192에 대응하는 리프팅 값 대신에 길이 4096에 대응하는 리프팅 값이 선택된다. 그 후, 가장 큰 코드블록에 대하여 동등하게 쇼트닝이 수행될 수 있다. 이 경우, 16540 길이의 운송블록은 6222 길이의 코드블록 2개와 4096 길이의 코드블록 1개로 구성될 수 있다.
LDPC 코드에 있어서, 패리티 체크 행렬의 성능에 따라서 각각의 리프팅 값에 대한 최소 정보 비트 길이가 결정될 수 있다. 예를 들어, 리프팅 값 Zi에 의한 정보 비트 길이 Ki에 대한 최소 정보 비트 길이 Kimin은 Ki/2+1 으로 설정될 수 있다. 또한, 예를 들어, 리프팅 값 Zi에 의한 정보 비트 길이 Ki에 대한 최소 정보 비트 길이 Kimin은 Ki*x 로 설정될 수도 있다. 여기서, x값은 i 값에 의존적이거나, i값으로부터 독립적으로 설정될 수도 있다.
또한, LDPC 코드에 있어서, 이용되는 리프팅 값이 송수신단 사이에 공유될 수 있다. 예를 들어, 코드블록 분할의 정보를 송신하기 위하여, 후술하는 방법들이 이용될 수 있다.
예를 들어, 운송블록 전체에 대한 정보가 수신단에 송신될 수 있다. 예를 들어, 수신단은 운송블록 전체에 대한 정보로부터 상술한 방법에 따른 리프팅 값들을 유도할 수도 있다.
또한, 예를 들어, 송신단은 분할된 코드블록들의 수와 코드블록의 크기에 대한 정보를 송신할 수 있다. 예를 들어, 분할된 코드블록들의 수에 대한 정보로서 분할된 코드블록들 각각에 대한 일련번호 정보가 송신될 수 있다. 또한, 코드블록의 크기에 대한 정보는 사용된 리프팅 값에 대한 정보를 포함할 수 있다.
상술한 바와 같이, LDPC 코드에 있어서, 특히 작은 크기의 코드블록에 대한 쇼트닝은 전체 코드의 성능을 열화시킬 수 있다. 따라서, 코드블록의 크기가 기설정된 크기 이상을 가지도록 제한될 수도 있다. 따라서, 예를 들어, 상술한 실시예에 있어서, 리프팅 값이 적어도 일정 값 이상이 되도록 제한될 수도 있다.
상술한 예시들은 LDPC 코드를 중심으로 설명되었다. 그러나, LDPC 코드는 터보 코드에 비하여 정보 크기 및 코드율(code rate)에 대한 유연성(flexibility)dl 낮다. 따라서, 이러한 단점을 극복하기 위하여, LDPC 코드는 터보 코드와 함께 사용될 수도 있다. 이 경우, 상술한 바와 같이, 리프팅 값이 제한될 수 있다. 이 경우, 이러한 제한에 대한 정보가 수신단에 송신될 수 있다. 예를 들어, 제한된 리프팅 값에 대한 정보(예를 들어, 인덱스 번호)가 수신단에 송신될 수 있다. 또는, 최대 리프팅 값의 인덱스와 최저 리프팅 값의 인덱스의 차이가 수신단에 송신될 수 있다.
도 13은 일 예시에 따른 운송블록 분할 방법의 흐름도이다.
도 13의 실시예에 있어서, 운송블록 분할 방법은 송신단에 의하여 수행될 수 있다. 예를 들어, 송신단은 단말 또는 기지국일 수도 있다. 예를 들어, 송신단은 리프팅 값이 2n 형태(n은 0 이상의 정수)로 구성된 쉬프팅 네트워크를 가질 수도 있다. 예를 들어, 송신단은 단일-크기 순환 쉬프팅 네트워크를 이용하여 LDPC 코드를 리프팅할 수도 있다.
먼저, 송신단은 기설정된 조건에 따라서 운송블록에 대한 최대 리프팅 값에 의한 코드 블록의 수를 결정(S1301)할 수 있다. 여기서, 기설정된 조건은 상술한 수학식 7을 의미할 수 있다.
또한, 송신단은 결정된 수의 최대 리프팅 값에 대응하는 코드블록의 길이를 운송블록으로부터 감산한 길이에 대하여 적어도 하나의 리프팅 값을 선택(S1302)할 수 있다. 여기서, 운송블록으로부터 결정된 수의 최대 리프팅 값에 대응하는 코드 블록의 길이를 운송블록으로부터 감산한 길이는 제1 길이로 호칭될 수 있다. 송신단은, 제1 길이 미만의 최소 정보비트 길이를 갖는 리프팅 값들 중 가장 큰 값을 갖는 리프팅 값을 선택할 수 있다. 그 후, 송신단은 제1 길이로부터 선택된 리프팅 값에 대응하는 최소 정보비트 길이를 감산함으로써 제1 길이를 갱신할 수 있다. 또한, 선택된 리프팅 값들과 결정된 최대 리프팅 값에 대응하는 코드블록의 길이들의 합이 운송블록의 길이를 초과할 때까지, 송신단은 리프팅 값의 선택과 제1 길이의 갱신을 반복할 수 있다.
또한, 송신단은 선택된 적어도 하나의 리프팅 값들과 결정된 수의 최대 리프팅 값에 기초하여 운송 블록을 복수의 코드블록들로 분할(S1303)할 수 있다. 코드 블록의 분할은, 가장 큰 값의 리프팅 값에 대응하는 적어도 하나의 코드블록에 대한 쇼트닝을 포함할 수 있다. 또한, 송신단은 분할된 코드블록들을 수신단에 송신(S1304)할 수 있다. 또한, 송신단은 분할된 코드블록들에 대한 정보를 수신단에 송신할 수 있다. 코드블록에 대한 정보는 분할된 코드블록들의 수, 코드블록의 크기 및 선택된 리프팅 값에 대한 정보 중 적어도 하나를 포함할 수 있다.
도 14는 본 발명의 실시예로서 도 1 내지 도 13에서 설명한 본 발명의 실시예들이 적용될 수 있는 기기들의 구성을 개략적으로 설명하기 위한 도면이다.
도 14를 참조하여, 본 발명에 따른 기지국 장치(10)는, 수신 모듈(11), 송신모듈(12), 프로세서(13), 메모리(14) 및 복수개의 안테나(15)를 포함할 수 있다. 송신 모듈(12)은 외부 장치(예를 들어, 단말)로의 각종 신호, 데이터 및 정보를 전송할 수 있다. 수신 모듈(11)은 외부 장치(예를 들어, 단말)로부터의 각종 신호, 데이터 및 정보를 수신할 수 있다. 수신 모듈(11)과 송신 모듈(12)은 트랜시버(transceiver)로서 호칭될 수 있다. 프로세서(13)는 기지국 장치(10) 전반의 동작을 제어할 수 있다. 복수개의 안테나(15)는 예를 들어 2-차원 안테나 배치에 따라서 구성될 수 있다.
본 발명의 일례에 따른 기지국 장치(10)의 프로세서(13)는, 본 발명에서 제안하는 예시들에 따라서 채널상태정보를 수신하도록 구성될 수 있다. 기지국 장치(10)의 프로세서(13)는 그 외에도 기지국 장치(10)가 수신한 정보, 외부로 전송할 정보 등을 연산 처리하는 기능을 수행하며, 메모리(14)는 연산 처리된 정보 등을 소정시간 동안 저장할 수 있으며, 버퍼(미도시) 등의 구성요소로 대체될 수 있다.
도 14를 참조하여, 본 발명에 따른 단말 장치(20)는, 수신 모듈(21), 송신 모듈(22), 프로세서(23), 메모리(24) 및 복수개의 안테나(25)를 포함할 수 있다. 복수개의 안테나(25)는 MIMO 송수신을 지원하는 단말 장치를 의미한다. 송신 모듈(22)은 외부 장치(예를 들어, 기지국)로의 각종 신호, 데이터 및 정보를 전송할 수 있다. 수신 모듈(21)은 외부 장치(예를 들어, 기지국)로부터의 각종 신호, 데이터 및 정보를 수신할 수 있다. 수신 모듈(21)과 송신 모듈(22)은 트랜시버(transceiver)로서 호칭될 수 있다. 프로세서(23)는 단말 장치(20) 전반의 동작을 제어할 수 있다.
본 발명의 일례에 따른 단말 장치(20)의 프로세서(23)는, 본 발명에서 제안하는 예시들에 따라서 채널상태정보를 송신하도록 구성될 수 있다. 단말 장치(20)의 프로세서(23)는 그 외에도 단말 장치(20)가 수신한 정보, 외부로 전송할 정보 등을 연산 처리하는 기능을 수행하며, 메모리(24)는 연산 처리된 정보 등을 소정시간 동안 저장할 수 있으며, 버퍼(미도시) 등의 구성요소로 대체될 수 있다.
위와 같은 단말 장치(10)의 구체적인 구성은, 전술한 본 발명의 다양한 실시예에서 설명한 사항들이 독립적으로 적용되거나 또는 2 이상의 실시예가 동시에 적용되도록 구현될 수 있으며, 중복되는 내용은 명확성을 위하여 설명을 생략한다.
또한, 본 발명의 다양한 실시예들을 설명함에 있어서, 하향링크 전송 주체(entity) 또는 상향링크 수신 주체는 주로 기지국을 예로 들어 설명하였고, 하향링크 수신 주체 또는 상향링크 전송 주체는 주로 단말을 예로 들어 설명하지만, 본 발명의 범위가 이에 제한되는 것은 아니다. 예를 들어, 상기 기지국에 대한 설명은 셀, 안테나 포트, 안테나 포트 그룹, RRH, 전송 포인트, 수신 포인트, 액세스 포인트, 중계기 등이 단말로의 하향링크 전송 주체가 되거나 단말로부터의 상향링크 수신 주체가 되는 경우에 동일하게 적용될 수 있다. 또한, 중계기가 단말로의 하향링크 전송 주체가 되거나 단말로부터의 상향링크 수신 주체가 되는 경우, 또는 중계기가 기지국으로의 상향링크 전송 주체가 되거나 기지국으로부터의 하향링크 수신 주체가 되는 경우에도 본 발명의 다양한 실시예를 통하여 설명한 본 발명의 원리가 동일하게 적용될 수도 있다.
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 통상의 기술자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명의 실시예들은 다양한 무선접속 시스템 및 방송 통신 시스템에 적용될 수 있다. 다양한 무선접속 시스템들의 일례로서, 3GPP(3rd Generation Partnership Project), 3GPP2 및/또는 IEEE 802.xx (Institute of Electrical and Electronic Engineers 802) 시스템 등이 있다. 본 발명의 실시예들은 상기 다양한 무선접속 시스템뿐 아니라, 상기 다양한 무선접속 시스템을 응용한 모든 기술 분야에 적용될 수 있다.

Claims (10)

  1. 2n 쉬프팅 네트워크(shifting network)를 갖는 단말의 LDPC (Low Density Parity Check) 코드의 운송블록 분할 방법으로서,
    복수의 기설정된 리프팅 값들 중, 기설정된 조건에 따라서 운송블록에 대한 최대 리프팅 값에 의한 코드블록의 수를 결정하는 단계로서, 상기 복수의 기설정된 리프팅 값들은 A×2n의 형태를 가지며, A는 1 이상의 정수이고 n은 0 이상의 정수임;
    상기 결정된 수의 코드블록에 대응하는 길이를 상기 운송블록으로부터 감산한 제1 길이에 대하여, 상기 복수의 기설정된 리프팅 값들 중 적어도 하나의 리프팅 값을 선택하는 단계;
    상기 선택된 적어도 하나의 리프팅 값과 상기 결정된 코드블록의 수에 기초하여 운송블록을 복수의 코드블록들로 분할하는 단계; 및
    상기 분할된 코드블록들을 송신하는 단계를 포함하고,
    상기 기설정된 조건은 상기 제1 길이가 상기 최대 리프팅 값에 의한 코드블록의 길이보다 크고 상기 최대 리프팅 값에 의한 코드블록의 길이의 2배보다 작도록 상기 최대 리프팅 값에 의한 코드블록의 수를 결정하는 것을 포함하고,
    상기 적어도 하나의 리프팅 값을 선택하는 단계는, 상기 적어도 하나의 리프팅 값에 대응하는 코드블록의 길이와 상기 결정된 수의 최대 리프팅 값에 의한 코드블록의 수에 대응하는 길이의 합이 상기 운송블록의 길이를 초과할 때까지, 상기 복수의 기설정된 리프팅 값들 중, 상기 제1 길이 미만의 최소 정보비트 길이를 갖는 리프팅 값들 중 가장 큰 값을 갖는 리프팅 값을 선택하는 단계와 상기 제1 길이로부터 선택된 리프팅 값에 대응하는 최소 정보 비트 길이를 감산함으로써 상기 제1 길이를 갱신하는 단계를 반복함으로써 상기 적어도 하나의 리프팅 값을 선택하는 단계를 포함하는, LDPC 코드의 운송블록 분할 방법.
  2. 제 1 항에 있어서,
    상기 최소 정보 비트 길이는 대응하는 리프팅 값에 의한 정보 비트 길이에 대하여 최대 쇼트닝이 적용된 길이인, LDPC 코드의 운송블록 분할 방법.
  3. 제 1 항에 있어서,
    상기 복수의 코드블록들 중 최대 길이를 갖는 적어도 하나의 코드블록들에 대하여 쇼트닝을 수행하는 단계를 더 포함하는, LDPC 코드의 운송블록 분할 방법.
  4. 제 3 항에 있어서,
    상기 복수의 코드블록들은 복수의 최대 길이 코드블록들을 포함하고, 상기 복수의 최대 길이 코드블록들에 대하여 동일한 크기의 쇼트닝이 수행되는, LDPC 코드의 운송블록 분할 방법.
  5. 제 1 항에 있어서,
    상기 복수의 코드블록들의 수에 대한 정보를 송신하는 단계를 더 포함하는, LDPC 코드의 운송블록 분할 방법.
  6. 제 1 항에 있어서,
    상기 선택된 적어도 하나의 리프팅 값에 대한 정보를 송신하는 단계를 더 포함하는, LDPC 코드의 운송블록 분할 방법.
  7. 무선 통신 시스템의 단말로서,
    신호를 송수신하는 트랜시버;
    메모리; 및
    상기 트랜시버 및 상기 메모리를 제어하는 프로세서를 포함하고,
    상기 프로세서는2n 쉬프팅 네트워크(shifting network)를 이용하여 LDPC (Low Density Parity Check) 코드의 운송블록을 분할하도록 구성되고,
    상기 프로세서는, 복수의 기설정된 리프팅 값들 중, 기설정된 조건에 따라서 운송블록에 대한 최대 리프팅 값에 의한 코드블록의 수를 결정하고,
    상기 결정된 수의 코드블록에 대응하는 길이를 상기 운송블록으로부터 감산한 제1 길이에 대하여, 상기 복수의 기설정된 리프팅 값들 중 적어도 하나의 리프팅 값을 선택하고,
    상기 선택된 적어도 하나의 리프팅 값과 상기 결정된 코드블록의 수에 기초하여 운송블록을 복수의 코드블록들로 분할하며,
    상기 분할된 코드블록들을 송신하도록 더 구성되고,
    상기 기설정된 조건은 상기 제1 길이가 상기 최대 리프팅 값에 의한 코드블록의 길이보다 크고 상기 최대 리프팅 값에 의한 코드블록의 길이의 2배보다 작도록 상기 최대 리프팅 값에 의한 코드블록의 수를 결정하는 것을 포함하고,
    상기 적어도 하나의 리프팅 값은, 상기 적어도 하나의 리프팅 값에 대응하는 코드블록의 길이와 상기 결정된 수의 최대 리프팅 값에 의한 코드블록의 수에 대응하는 길이의 합이 상기 운송블록의 길이를 초과할 때까지, 상기 복수의 기설정된 리프팅 값들 중, 상기 제1 길이 미만의 최소 정보비트 길이를 갖는 리프팅 값들 중 가장 큰 값을 갖는 리프팅 값을 선택하고 상기 제1 길이로부터 선택된 리프팅 값에 대응하는 최소 정보 비트 길이를 감산함으로써 상기 제1 길이를 갱신하는 것을 반복함으로써 선택되고,
    상기 복수의 기설정된 리프팅 값들은 A×2n의 형태를 가지며, A는 1 이상의 정수이고 n은 0 이상의 정수인, 단말.
  8. 제 7 항에 있어서,
    상기 최소 정보 비트 길이는 대응하는 리프팅 값에 의한 정보 비트 길이에 대하여 최대 쇼트닝이 적용된 길이인, 단말.
  9. 제 7 항에 있어서,
    상기 프로세서는, 상기 복수의 코드블록들 중 최대 길이를 갖는 적어도 하나의 코드블록들에 대하여 쇼트닝을 수행하도록 더 구성된, 단말.
  10. 제 9 항에 있어서,
    상기 복수의 코드블록들은 복수의 최대 길이 코드블록들을 포함하고, 상기 복수의 최대 길이 코드블록들에 대하여 동일한 크기의 쇼트닝이 수행되는, 단말.
PCT/KR2017/007877 2016-10-24 2017-07-21 Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치 WO2018079987A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/344,260 US10756761B2 (en) 2016-10-24 2017-07-21 Method for dividing carrying block of LDPC code and apparatus therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662412264P 2016-10-24 2016-10-24
US62/412,264 2016-10-24

Publications (1)

Publication Number Publication Date
WO2018079987A1 true WO2018079987A1 (ko) 2018-05-03

Family

ID=62023699

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/007877 WO2018079987A1 (ko) 2016-10-24 2017-07-21 Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치

Country Status (2)

Country Link
US (1) US10756761B2 (ko)
WO (1) WO2018079987A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113131949A (zh) * 2021-03-11 2021-07-16 苏州华兴源创科技股份有限公司 数据预处理方法、装置、电子设备及计算机可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102395537B1 (ko) * 2017-08-18 2022-05-10 에스케이하이닉스 주식회사 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로
WO2019095190A1 (en) * 2017-11-16 2019-05-23 Qualcomm Incorporated Reduced overhead error detection code design for decoding a codeword
WO2020095093A1 (en) * 2018-11-07 2020-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Optimized implementation of (de-)interleaving and rate (de-)matching for 3gpp new radio

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080056140A1 (en) * 2006-08-31 2008-03-06 Masaaki Shida MIMO wireless data transmission system
US20090183047A1 (en) * 2006-03-06 2009-07-16 Mattias Lampe Method for Generating Ldpc Codes and Apparatus Using Ldpc Codes
KR20140015602A (ko) * 2011-07-01 2014-02-06 인텔 코오퍼레이션 더 짧은 블록 길이를 이용하여 더 긴 선형 블록 코드워드를 생성 및 디코딩하기 위한 장치, 시스템 및 방법
KR20160067862A (ko) * 2013-10-09 2016-06-14 퀄컴 인코포레이티드 비균등 코드 블록 사이즈들을 이용한 데이터 송신 스킴
KR101662747B1 (ko) * 2013-02-13 2016-10-06 퀄컴 인코포레이티드 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1699138A1 (en) * 2005-03-02 2006-09-06 STMicroelectronics N.V. Method and device for decoding LDPC encoded codewords, in particular DVB-S2 LDPC encoded codewords
EP1715589A1 (en) * 2005-03-02 2006-10-25 STMicroelectronics N.V. LDPC decoder in particular for DVB-S2 LDCP code decoding
US8879670B2 (en) * 2010-09-08 2014-11-04 Agence Spatiale Europeenne Flexible channel decoder
JPWO2018012637A1 (ja) * 2016-07-15 2019-05-16 シャープ株式会社 送信装置、受信装置、通信方法、および、集積回路
CN107888198B (zh) * 2016-09-30 2023-05-26 中兴通讯股份有限公司 准循环ldpc编译码方法、装置及ldpc编译码器
US10819372B2 (en) * 2016-11-04 2020-10-27 Lg Electronics Inc. Method for dividing transport block of LDPC code and apparatus therefor
US11233529B2 (en) * 2017-03-24 2022-01-25 Apple Inc. Techniques for employing polar code in connection with NR (new radio)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090183047A1 (en) * 2006-03-06 2009-07-16 Mattias Lampe Method for Generating Ldpc Codes and Apparatus Using Ldpc Codes
US20080056140A1 (en) * 2006-08-31 2008-03-06 Masaaki Shida MIMO wireless data transmission system
KR20140015602A (ko) * 2011-07-01 2014-02-06 인텔 코오퍼레이션 더 짧은 블록 길이를 이용하여 더 긴 선형 블록 코드워드를 생성 및 디코딩하기 위한 장치, 시스템 및 방법
KR101662747B1 (ko) * 2013-02-13 2016-10-06 퀄컴 인코포레이티드 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계
KR20160067862A (ko) * 2013-10-09 2016-06-14 퀄컴 인코포레이티드 비균등 코드 블록 사이즈들을 이용한 데이터 송신 스킴

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113131949A (zh) * 2021-03-11 2021-07-16 苏州华兴源创科技股份有限公司 数据预处理方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
US10756761B2 (en) 2020-08-25
US20200186167A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
WO2018062660A1 (ko) Qc ldpc 코드의 레이트 매칭 방법 및 이를 위한 장치
WO2017217711A1 (ko) 폴라 코드를 위한 데이터 재송신 방법 및 이를 위한 장치
AU2018288906B2 (en) Method and apparatus of rate-matching for communication and broadcasting systems
WO2018143743A1 (ko) 행-직교 구조(row-orthogonal)를 이용한 LDPC 코드 전송 방법 및 이를 위한 장치
WO2016089157A1 (en) Sc-ldpc codes for wireless communication systems
WO2018128435A2 (ko) 다중 ldpc 코드에서 ldpc 베이스 코드를 선택하는 방법 및 이를 위한 장치
WO2018225885A1 (ko) Sc-ldpc 코드 부호화 방법 및 이를 위한 장치
WO2018236114A1 (en) METHOD AND APPARATUS FOR FLOW ADAPTATION FOR COMMUNICATION AND BROADCASTING SYSTEMS
WO2018079987A1 (ko) Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치
WO2018164297A1 (ko) Ldpc 코드의 계층적 복호화 방법 및 이를 위한 장치
US20180269899A1 (en) Method for configuring circular buffer including outer code parity and apparatus therefor
WO2017217715A1 (ko) 폴라 코드를 위한 프로즌 비트 결정 방법 및 이를 위한 장치
WO2018084617A1 (ko) Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치
WO2018226019A1 (ko) 행-직교 구조를 이용한 ldpc 코드 전송 방법 및 이를 위한 장치
WO2017213329A1 (ko) 우도비를 갖는 이진소거채널 기반 오류 정정 코드 복호화 방법 및 이를 위한 장치
WO2018143489A1 (ko) 오류 정정 효율 개선을 위한 터보 코드 부호화기 및 부호화 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17864065

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17864065

Country of ref document: EP

Kind code of ref document: A1