WO2018225885A1 - Sc-ldpc 코드 부호화 방법 및 이를 위한 장치 - Google Patents

Sc-ldpc 코드 부호화 방법 및 이를 위한 장치 Download PDF

Info

Publication number
WO2018225885A1
WO2018225885A1 PCT/KR2017/006019 KR2017006019W WO2018225885A1 WO 2018225885 A1 WO2018225885 A1 WO 2018225885A1 KR 2017006019 W KR2017006019 W KR 2017006019W WO 2018225885 A1 WO2018225885 A1 WO 2018225885A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
code
ldpc
ldpc code
lifting
Prior art date
Application number
PCT/KR2017/006019
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 PCT/KR2017/006019 priority Critical patent/WO2018225885A1/ko
Priority to US16/619,071 priority patent/US11271591B2/en
Publication of WO2018225885A1 publication Critical patent/WO2018225885A1/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
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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
    • 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/1157Low-density generator matrices [LDGM]
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/1154Low-density parity-check convolutional codes [LDPC-CC]

Definitions

  • the present invention relates to a method and apparatus for generating a prototype-based spatially coupled low-density parity-check (SC-LDPC) code.
  • SC-LDPC spatially coupled low-density parity-check
  • the present invention relates to a method of constructing an SC-LDPC parity check matrix using a decomposition technique and a multi-stage lifting operation.
  • 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 method for constructing a parity check matrix of an SC-LDPC code having a high degree of freedom.
  • Another object of the present invention is to provide an apparatus supporting these methods.
  • SC-LDPC Spaally Coupled-Low Density Parity Check
  • SC-LDPC Spaally Coupled-Low Density Parity Check
  • Block Code Block Code
  • the cyclic shift value matrix may be generated according to a Latin Square algorithm or a Progressive Edge Growth algorithm.
  • said plurality of lifting values comprise a first lifting value and a second lifting value, said first lifting value being applied to an elementary matrix of said SC-LDPC code in preference to said second lifting value, It may be less than the second lifting value.
  • the plurality of disassembly matrices may be generated such that a difference in check degree values of rows corresponding to each other is minimized.
  • the decoding method of the SC-LDPC (Spatially Coupled-Low Density Parity Check) code of the terminal for solving the above-mentioned problems, the method comprising: receiving an encoded input signal; And decoding the encoded input signal using a sliding window decoding technique based on a parity check matrix, wherein the parity check matrix is a base matrix of the SC-LDPC code. matrix, a cyclic shift value matrix, and a plurality of lifting values, wherein the base matrix of the SC-LDPC code terminates a plurality of decomposition matrices.
  • SC-LDPC Spaally Coupled-Low Density Parity Check
  • the plurality of decomposition matrices are generated by decomposing a base matrix of a predetermined LDPC-block code
  • the window size of the sliding window decoding scheme is the number of the plurality of decomposition matrices. It may be an integer multiple of.
  • the parity check matrix generation method of the SC-LDPC code of the present invention has a high degree of freedom.
  • a parity check matrix having excellent threshold or frame error rate (FER) performance may be generated.
  • the complexity of decoding can be reduced by using a method similar to the decoding of convolutional code.
  • SW sliding window
  • 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 is a schematic diagram of the basis matrix generation of the SC-LDPC code according to the cut and paste method.
  • FIG. 13 is a schematic diagram of parity check matrix generation of an SC-LDPC code according to a prototype edge connection scheme.
  • FIG. 14 is a flowchart of a method of generating a prototype-based SC-LDPC code, according to an embodiment.
  • 16 is a prototype of an LDPC-BC according to an example.
  • 17 illustrates a protomatrix according to one example.
  • 19 shows a base matrix of another SC-LDPC code in another example.
  • 21A illustrates a parity check matrix according to an example.
  • 21B illustrates an encoder structure according to an example.
  • 22 is a conceptual diagram of sliding window decoding.
  • 25 illustrates an elementary matrix according to an example.
  • 26 illustrates a cyclic shift value matrix according to an example.
  • FIG. 27 illustrates an elementary matrix of SC-LDPC codes according to an example.
  • FIG. 28 illustrates an FER according to an example.
  • FIG. 12 illustrates an LDPC code decoding method using a syndrome check according to an example.
  • 29 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.
  • the first k bits in c ' may be determined as information bits x. If c'H T is not 0, the information bit x may be recovered by finding c 'where c'H T satisfies 0 based on a decoding technique such as a sum-product 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 around the variable node v 0 and the check node c 1 for illustrative purposes.
  • 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.
  • SC-LDPC Spaally Coupled-LDPC
  • the following embodiments may be used for wireless communication or storage devices.
  • the SC-LDPC code is a kind of LDPC code and has a convolutional form.
  • the SC-LDPC code may have the performance of a maximum a posteriori (MAP) decoding threshold of the LDPC code.
  • MAP maximum a posteriori
  • the SC-LDPC code is known as a code capable of achieving a MAP decoding threshold based on a trust propagation algorithm.
  • FIG. 12 is a schematic diagram of the basis matrix generation of the SC-LDPC code according to the cut and paste method.
  • the base matrix B SC-LDPC of the SC- LDPC code may be generated by repeatedly connecting one LDPC code.
  • FIG. 12 illustrates a method of generating a basic matrix B SC-LDPC of a cut and paste SC-LDPC code.
  • a part of the base matrix B LDPC-BC is cut off, Is attached to the bottom of the.
  • the coupling depth may be determined according to the number of columns in which the attached lower part and the remaining upper part overlap.
  • a shift value may be applied.
  • the base matrix B SC-LDPC of the SC-SDPC code may be generated.
  • FIG. 13 is a schematic diagram of parity check matrix generation of an SC-LDPC code according to a prototype edge connection scheme.
  • the black points represent the variable nodes and the white points represent the check nodes.
  • the edge connected between each point represents the connection relationship between each variable node and the check node.
  • Protograph-based LDPC code can be constructed from a small protomatrix with several elements. The prototype is a Tanner graph with a relatively small number of nodes. Also, parallel edges are allowed in the prototype. The prototype can be represented as a prototype matrix representing the number of edges connecting corresponding variable nodes and check nodes.
  • Protograph code eg, LDPC code
  • each rectangular block may consist of a permutation matrix of size Z * Z (Z is an integer of 1 or more).
  • the cut and paste method described in connection with FIG. 12 and the edge joining method described in connection with FIG. 13 have low degrees of freedom for the parity check matrix design of the SC-LDPC code. More specifically, the cut and paste method is difficult to fluidly change the check degree of the base matrix of the SC-LDPC code. In addition, the shape that can be formed by cutting the base matrix is also very limited. In addition, in the edge connection method of the prototype, only a coupling depth and a shift value are used as design parameters. Therefore, there is a limitation in the parity check matrix design.
  • the base matrix of LDPC-BC can be decomposed into a plurality of decomposition matrices, and spatially coupling the plurality of decomposing matrices.
  • a multi-stage lifting operation may be applied.
  • the parity check matrix of the SC-LDPC code may be generated differently from the above-described cut and paste method or the prototype edge connection method.
  • the base matrix of LDPC-BC may be decomposed into M deconstruction matrices.
  • a multi-step lifting operation may be performed.
  • various types of dissolution matrices may be generated.
  • the degree of freedom for designing the base matrix of the SC-LDPC code can be increased.
  • a rectangle in which the value of the element corresponding to each vertex in the matrix can be generated with values other than '0' forms a cycle.
  • the length of a cycle represents the number of elements contained in all sides of the rectangle forming that cycle.
  • the length of the shortest cycle is four.
  • the cycles included in the parity check matrix have a cyclic structure. Therefore, performance improvement due to iterative decoding is hardly expected.
  • the performance of the parity check matrix can be determined according to the length of the cycle. More specifically, the cycle having the shortest length among the cycles included in the parity check matrix may be referred to as a short cycle. It is expected that the shorter the cycle, the lower the performance of the parity check matrix.
  • decomposition may be applied to reduce the number of short cycles as much as possible.
  • a Latin Square or Progressive Edge Growth (PEG) algorithm may be applied to reduce the number of short cycles of the parity check matrix.
  • a two-stage lifting operation may be performed using a base matrix and a cyclic shift value matrix of the SC-LDPC code. Through a two-stage lifting operation, the minimum distance and girth of the SC-LDPC code can be increased.
  • the minimum distance means the minimum Hamming distance between two codewords of the code. More specifically, the minimum distance may mean the minimum number of differences of bit values at the individual positions of the two codewords. Gus also means the length of the shortest cycle of the parity check matrix.
  • FIG. 14 is a flowchart of a method of generating a prototype-based SC-LDPC code, according to an embodiment.
  • LDPC-BC a prototype of LDPC-BC is designed (S1401).
  • the prototype may be designed to have a threshold of more than a certain value in an additive Gaussian White Noise (AWGN) channel or a binary erasure channel (BEC).
  • AWGN additive Gaussian White Noise
  • BEC binary erasure channel
  • regular or irregular LDPC-BC can be used.
  • a prototype matrix is generated from the prototype (S1402).
  • Protomatrix V can be generated from the relationship between the variable node and the check node of the prototype.
  • the above-described steps S1401 and S1402 may be omitted.
  • a predetermined LDPC-BC base matrix may be used.
  • a plurality of decomposition matrices may be generated from the proto matrix (S1403).
  • M disassembly matrices can be generated.
  • the M deconstruction matrices are V 0 , V 1 , V 2 ,... , V M-1 .
  • FIG. 15 is a diagram for explaining generation of dissolution matrices, and the present invention is not limited thereto.
  • the protomatrix V is disassembled into three dissolution matrices V 0 , V 1 , and V 2 .
  • the dissolution matrices have the same size as the protomatrix, and the sum of all the dissolution matrices is equal to the protomatrix.
  • each element of the prototype matrix is distributed to the dissolution matrices.
  • the teardown matrices can be generated such that the check degree of the corresponding row between the teardown matrices is the same. That is, the check degrees of the corresponding rows of the disassembly matrices may be set equal to each other.
  • the check degree in row 1 of Proto Matrix V is six. Therefore, in the example of FIG. 15, since three deconstruction matrices V 0 , V 1 , and V 2 are generated, one row of the deconstruction matrices V 0 , V 1 , and V 2 has a check degree of two. It can be set to. Thus, two elements with a value of 1 present in row 1 of the proto matrix V are distributed in row 1 of each dissolution matrix.
  • the check degree is equally distributed to the respective disassembly matrices.
  • the check degree of the first row of the proto matrix is 5 and three breakup matrices are generated, the check degree cannot be distributed equally to the first row of the breakdown matrices.
  • the elements of the prototype matrix can be distributed such that the difference between the check degrees of the corresponding rows of deconstruction matrices is minimized. That is, for example, the check degree of the first row of three dissolution matrices may be 2, 2, and 1, respectively.
  • Disassembly may also be performed to reduce the number of isolated short cycles and short cycles.
  • SC-LDPC codes are vulnerable to isolated cycles.
  • the short cycle is a cycle of length 4, indicated by the dotted line at the bottom right.
  • a short cycle of length 4 shares one corner with a cycle of length 8.
  • the isolated short cycle may mean a short cycle that does not share an edge with other cycles among the short cycles.
  • the disassembly matrices are disassembled such that no cycle exists. Thus, performance can be improved compared to the protomatrix.
  • the dissolution matrices may be determined through simulation.
  • the decommission matrices V 0 and V 1 with the best FER may be determined while changing the check degree of each row of decompose matrices.
  • the base matrix of the SC-LDPC code may be generated (S1404) by spatially coupling the plurality of disassembly matrices.
  • the dissolution matrices may be spatially connected to each other by a terminal length.
  • a cyclic shift value matrix may be generated (S1405) from the base matrix of the SC-LDPC code.
  • a cyclic shift value matrix can be designed using the Latin square algorithm or the PEG algorithm.
  • the short cycle may refer to a cycle having a length less than or equal to a predetermined length.
  • multi-step lifting may be applied to the base matrix of the SC-LDPC code (S1406).
  • a two-stage lifting operation can be applied.
  • Two-stage lifting refers to constructing a parity check matrix through a two-stage lifting operation on nonzero elements of the base matrix. This is to increase the minimum distance and girth of the SC-LDPC code.
  • the lifting size of each stage of the multi-stage lifting can be determined.
  • a two-stage lifting operation can be performed by two permutation matrices Z 1 and Z 2 .
  • the permutation matrix Z may be used.
  • Z may correspond to Z 1 ⁇ Z 2 .
  • the first lifting operation may have a smaller lifting size than the second lifting operation.
  • the PEG algorithm can be applied to the first lifting operation.
  • the first lifting operation may be performed to remove parallel edges on the prototype.
  • a lifting matrix of the smallest possible size may be used.
  • the size of the lifting matrix used for the first lifting operation may be 2 ⁇ 2 or 3 ⁇ 3.
  • the number of short cycles eg, length 4 or 6
  • the shift value of the lifting matrix can be adjusted to reduce the short cycle.
  • the second lifting operation may have a larger lifting size than the first lifting operation.
  • a Latin square algorithm can be applied to the second lifting operation.
  • the guss of the parity check matrix can be increased by adjusting the size and shift value of the Gallios field of the Latin square algorithm.
  • the parity check matrix designed as described above satisfies a predetermined parameter (S1407). For example, the threshold, waterfall and / or error floor of the parity check matrix may be set as a predetermined parameter. If the preset parameter is not satisfied, the above-described steps S1401 to S1406 may be repeated.
  • the parity check matrix may be defined according to the base matrix of the SC-LDPC, the determined cyclic shift value matrix, and the plurality of lifting values.
  • the hatching process may be performed according to a generation matrix generated based on the parity check matrix.
  • the encoding of the input signal may be performed based on the base matrix of the SC-LDPC, the determined cyclic shift value matrix, and the plurality of lifting values.
  • the coded codeword may be transmitted to the receiving end.
  • the parity check matrix of the SC-LDPC code designed according to the above-described method may be encoded in a similar manner to that of the convolutional code. Thus, low complexity encoding can be performed.
  • the codeword by the parity check matrix of the above-described SC-LDPC code may be decoded by a SW (Sliding Window) decoder.
  • the SC-LDPC code has high reliability at both ends of the codeword.
  • SW decryption can be achieved with a smaller memory and maximum number of iterations than LDPC-BC using full block flooding decoding.
  • hardware complexity and computational complexity can be reduced.
  • the window size W may be configured as an integer multiple of the number of disassembly matrices in order to prevent degradation of the FER performance.
  • FIG. 16 is a prototype of an LDPC-BC according to an example.
  • the target code rate is 1/3.
  • some of the variable nodes are punctured.
  • the punctured variable node is indicated by a white circle.
  • an irregular LDPC-BC is used.
  • the prototype matrix V of FIG. 17 is derived from the prototype of FIG.
  • the protomatrix V can be generated from the relationship between the variable node of the protograph and the check node.
  • the prototype matrix is decomposed into M matrices.
  • the M deconstruction matrices are V 0 , V 1 , V 2 ,... , V M-1 .
  • Protomatrix V is equal to the sum of the dissolution matrices (V 0 , V 1 , V 2 ,..., V M-1 ).
  • the base matrix of the SC-LDPC code may be generated by spatially concatenating the disassembly matrices based on the end length L.
  • FIG. 18 illustrates an elementary matrix of an SC-LDPC code according to an example.
  • M deconstruction matrices are spatially connected according to the end length L.
  • FIG. 19 shows a base matrix of another SC-LDPC code in another example.
  • two deconstruction matrices are spatially connected according to the end length L.
  • a cyclic shift value matrix may be applied to the above-described base matrix.
  • 20 illustrates a cyclic shift value matrix according to an example.
  • the example of FIG. 20 shows a cyclic shift value matrix generated by the Latin square technique when the primitive element is ⁇ in GF (2 6 ) (Galios Field).
  • the parity check matrix may be generated by performing the above-described two-step lifting operation on the base matrix.
  • a lifting operation may be performed by a first permutation matrix.
  • the lifting operation may be performed by the second permutation matrix.
  • the first permutation matrix may have a smaller size than the second permutation matrix.
  • the PEG algorithm may be applied to the first permutation matrix and the Latin square algorithm may be applied to the second permutation matrix.
  • Whether to repeat the above-described steps may be determined based on the performance of the finally generated parity check matrix.
  • the parity check matrix generated based on the performance threshold, the waterfall, and / or the error floor of the parity check matrix may be checked to satisfy a predetermined performance parameter.
  • 21A illustrates a parity check matrix according to an example.
  • H T [0, n] represents an SC-LDPC code generation matrix for encoding the following information sequence u [0, n] .
  • the dissolution matrix h 1 and h 2 are spatially connected to generate an SC-LDPC code generation matrix.
  • h 1 (a) (b) indicates that a cyclic shift value a is applied to the dissolution matrix h 1 .
  • B denotes the n value of the corresponding information sequence in the parity check matrix.
  • the generation matrix of the SC-LDPC code has a diagonal structure similar to the convolutional code as shown in FIG. 21A. Thus, the encoder of the SC-LDPC code may have a low complexity.
  • 21B illustrates an encoder structure according to an example.
  • the encoder of the SC-LDPC code of the present disclosure may be implemented in the form of an accumulator.
  • 22 is a conceptual diagram of sliding window decoding.
  • the SC-LDPC code has high reliability at both ends of the codeword.
  • SW sliding window
  • the effects at both ends can be propagated to the center of the codeword.
  • the size of the memory and the maximum number of repetitions of storing the message value can be reduced than the LDPC-BC.
  • hardware complexity and computational complexity can be reduced.
  • an encoded codeword block is shown when two decomposition matrices are used.
  • the information sequence encoded by each deconstruction matrix is denoted by V0 and V1.
  • the size of the sliding window may be set to an integer multiple of the number of the disassembly matrices.
  • the window size W is set to 6, which is three times the number M of dissolution matrices.
  • decoding may be performed while the window moves along the shape of the diagonal matrix.
  • Decomposition matrices V 0 and V 1 may be generated from the base matrix V by the criteria as described above.
  • the base matrix B is generated by spatially connecting the dissolution matrixes V 0 and V 1 .
  • the end length L is set to six.
  • FIG. 26 shows a cyclic shift value matrix according to an example.
  • the primitive element is ⁇ in GF (2 9 ) (Galois Field) (Galois Field)
  • the Latin square technique is used.
  • Shows the cyclic shift value matrix generated by The parity check matrix may be generated by performing a lifting operation on the base matrix based on the cyclic shift value matrix.
  • FIG. 27 illustrates an elementary matrix of SC-LDPC codes according to an example.
  • the vertical axis represents FER and the horizontal axis represents the ratio of Energy per Bit (Eb) to Spectral Noise Density (No).
  • the dotted line represents the performance of the SC-LDPC code based on the base matrix of FIG. 27.
  • Solid lines also indicate the performance of the Divsalar LDPC-BC code. Details of the Divsalar LDPC-BC code can be referenced by the document “The Design of Rate-Compatible Protograph LDPC Codes” (IEEE Transactions on Communications, OCT. 2012, Thuy Van Nguyen, Aria Nosratinia, and dadari Divsalar). In FIG. 28, the length of the information block is 16392 and the code rate is 2/3.
  • the maximum number of repetitions is 200.
  • 2 bits are punctured, and for the Divslar LDPC-BC code, 1 bit is punctured.
  • the SC-LDPC code according to an embodiment of the present disclosure has improved FER performance compared to the Divslar DLPC-BC code.
  • FIGS. 1 to 28 are diagrams for schematically describing a configuration of devices to which the embodiments of the present invention described with reference to FIGS. 1 to 28 may be applied as an embodiment of the present invention.
  • 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

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

단말의 SC-LDPC (Spatially Coupled-Low Density Parity Check) 코드의 부호화 방법이 개시된다. 본 개시물의 SC-LDPC 코드의 부호화 방법은, 기설정된 LDPC 블록코드(Block Code)의 기초행렬(base matrix)을 해체(decomposition)함으로써 복수의 해체 행렬들을 생성하는 단계, 상기 복수의 해체 행렬들을 종료 길이(termination length)에 따라서 공간적으로 연결(spatially coupoing)함으로써 상기 SC-LDPC 코드의 기초행렬을 생성하는 단계, 상기 SC-LDPC 코드의 기초행렬로부터 순환 쉬프트 값 행렬(circulant shift value matrix)을 생성하는 단계, 상기 SC-LDPC 코드의 기초행렬에 대한 복수의 리프팅(lifting) 값들을 생성하는 단계, 및 상기 SC-LDPC 코드의 기초행렬, 상기 순환 쉬프트 값 행렬, 및 상기 복수의 리프팅 값들에 의하여 정의된 생성행렬(generator matrix)을 이용하여 입력신호를 부호화하는 단계를 포함할 수 있다.

Description

SC-LDPC 코드 부호화 방법 및 이를 위한 장치
본 발명은 프로토그래프(protograph) 기반 SC-LDPC(Spatially coupled Low-Density Parity-Check) 코드의 생성 방법 및 이를 위한 장치에 대한 것이다. 특히, 해체(decomposition) 기법 및 다-단계 리프팅 동작(multi-stage lifting operation)을 이용한 SC-LDPC 패리티 체크 행렬(parity check matrix) 구성 방법에 대한 것이다.
무선 접속 시스템이 음성이나 데이터 등과 같은 다양한 종류의 통신 서비스를 제공하기 위해 광범위하게 전개되고 있다. 일반적으로 무선 접속 시스템은 가용한 시스템 자원(대역폭, 전송 파워 등)을 공유하여 다중 사용자와의 통신을 지원할 수 있는 다중 접속(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)을 만족할 수 있는 채널 코딩 방법이 요구된다.
본 발명은, 상술한 문제점들을 해결하기 위하여 창안된 것으로서, 본 발명의 목적은 자유도가 높은 SC-LDPC 코드의 패리티 체크 행렬 구성 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 이러한 방법들을 지원하는 장치를 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 목적들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 본 발명의 실시예들로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.
상술한 과제를 해결하기 위한 본원의 단말의 SC-LDPC (Spatially Coupled-Low Density Parity Check) 코드의 부호화 방법은, 기설정된 LDPC 블록코드(Block Code)의 기초행렬(base matrix)을 해체(decomposition)함으로써 복수의 해체 행렬들을 생성하는 단계; 상기 복수의 해체 행렬들을 종료 길이(termination length)에 따라서 공간적으로 연결(spatially coupoing)함으로써 상기 SC-LDPC 코드의 기초행렬을 생성하는 단계; 상기 SC-LDPC 코드의 기초행렬로부터 순환 쉬프트 값 행렬(circulant shift value matrix)을 생성하는 단계; 상기 SC-LDPC 코드의 기초행렬에 대한 복수의 리프팅(lifting) 값들을 생성하는 단계; 및 상기 SC-LDPC 코드의 기초행렬, 상기 순환 쉬프트 값 행렬, 및 상기 복수의 리프팅 값들에 의하여 정의된 생성행렬(generator matrix)을 이용하여 입력신호를 부호화하는 단계를 포함할 수 있다.
바람직하게는, 상기 순환 쉬프트 값 행렬은 라틴 스퀘어(Latin Square) 알고리즘 또는 PEG(Progressive Edge Growth) 알고리즘에 따라서 생성될 수 있다.
바람직하게는, 상기 복수의 리프팅 값들은 제1 리프팅 값 및 제2 리프팅 값을 포함하고, 상기 제1 리프팅 값은 상기 제2 리프팅 값에 우선하여 상기 SC-LDPC 코드의 기초행렬에 적용되고, 상기 제2 리프팅 값 보다 작을 수 있다.
바람직하게는, 상기 복수의 해체 행렬들은 서로 대응하는 행들의 체크 디그리(check degree)값들의 차이가 최소가되도록 생성될 수 있다.
또한, 상술한 과제를 해결하기 위한 단말의 SC-LDPC (Spatially Coupled-Low Density Parity Check) 코드의 복호화 방법은, 부호화된 입력 신호를 수신하는 단계; 및 상기 부호화된 입력 신호를 패리티 체크 행렬(parity check matrix)에 기초한 슬라이딩 윈도우(sliding window) 복호 기법을 이용하여 복호화하는 단계를 포함하고, 상기 패리티 체크 행렬은 상기 SC-LDPC 코드의 기초행렬 (base matrix), 순환 쉬프트 값 행렬 (circulant shift value matrix), 및 복수의 리프팅 (lifting) 값들에 의하여 정의되고, 상기 SC-LDPC 코드의 기초행렬은 복수의 해체(decomposition) 행렬들을 종료길이(termination length)에 따라서 공간적으로 연결(spatially coupling)함으로써 생성되고, 상기 복수의 해체 행렬들은 기설정된 LDPC-블록코드의 기초행렬을 해체함으로써 생성되고, 상기 슬라이딩 윈도우 복호 기법의 윈도우 크기는 상기 복수의 해체 행렬들의 수의 정수배일 수 있다.
상술한 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 실시예들에 따르면 다음과 같은 효과가 있다.
본 발명의 SC-LDPC 코드의 패리티 체크 행렬 생성 방법은 높은 자유도를 갖는다.
또한, 본 발명에 따르면 임계값(threshold) 또는 프레임오류율(Frame Error Rate, FER) 성능이 우수한 패리티 체크 행렬이 생성될 수 있다.
또한, 본 발명에 따르면, 길쌈(convolutional) 코드의 복호화와 유사한 방법을 이용함으로써 복호의 복잡도가 감소될 수 있다.
또한, SW(Sliding Window) 복호를 이용함으로써, 메모리의 크기와 최대 반복 횟수를 감소시킬 수 있으며, 하드웨어 복잡도 및 계산 복잡도(computational complexity)가 감소될 수 있다.
본 발명의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 이하의 본 발명의 실시예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 않은 효과들 역시 본 발명의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되고, 첨부된 도면들은 본 발명에 대한 다양한 실시예들을 제공한다. 또한, 첨부된 도면들은 상세한 설명과 함께 본 발명의 실시 형태들을 설명하기 위해 사용된다.
도 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는 잘라 붙이기 방식에 따른 SC-LDPC 코드의 기초 행렬 생성의 개략도이다.
도 13은 프로토그래프 에지 연결 방식에 따른 SC-LDPC 코드의 패리티 체크 행렬 생성의 개략도이다.
도 14는 일 실시예에 따른 프로토그래프 기반 SC-LDPC 코드의 생성 방법의 흐름도이다.
도 15는 일 예시에 따른 해체 행렬들의 생성을 도시한다.
도 16은 일 예시에 따른 LDPC-BC의 프로토그래프이다.
도 17은 일 예시에 따른 프로토매트릭스를 도시한다.
도 18은 일 예시에 따른 SC-LDPC 코드의 기초행렬을 도시한다.
도 19는 다른 예시에 다른 SC-LDPC 코드의 기초행렬을 도시한다.
도 20은 일 예시에 따른 순환 쉬프트 값 행렬을 도시한다.
도 21a는 일 예시에 따른 패리티 체크 행렬을 도시한다.
도 21b는 일 예시에 따른 부호화기 구조를 도시한다.
도 22는 슬라이딩 윈도우 복호의 개념도이다.
도 23은 일 예시에 따른 기초 행렬 V를 도시한다.
도 24는 해체 행렬들을 도시한다.
도 25는 일 예시에 따른 기초행렬을 도시한다.
도 26은 일 예시에 따른 순환 쉬프트 값 행렬을 도시한다.
도 27은 일 예시에 따른 SC-LDPC 코드의 기초 행렬을 도시한다.
도 28은 일 예시에 따른 FER을 도시한다.도 12는 일 예시에 따른 신드롬 체크를 이용한 LDPC 코드 복호화 방법을 도시한다.
도 29는 본 발명의 일 실시예에 따른 기지국 및 단말의 구성도이다.
이하의 기술은 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 PCTKR2017006019-appb-M000001
한편, 제2 경로에서, 입력 ck, 지연기들(411 및 412)을 거친 입력 ck, 및 지연기들(411, 412, 및 413)을 거친 입력 ck가 입력단에 피드백된다. 제2 경로에 대한 다항식은 재귀적 생성기 다항식(recursive generator polynomial)으로 호칭되고, 하기의 수학식의 g0와 같이 표현될 수 있다.
Figure PCTKR2017006019-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인지를 확인하는 것을 의미한다.
이하에서, SC-LDPC (Spatially Coupled-LDPC) 코드에 대하여 설명한다. 이하의 실시예들은 무선 통신 또는 저장 장치에 이용될 수 있다.
SC-LDPC 코드는 LDPC 코드의 한 종류로서, 길쌈 (convolutional) 형태를 갖는다. SC-LDPC 코드는 LDPC 코드의 MAP (maximum a posteriori) 복호 임계값의 성능을 가질 수 있다. 특히, SC-LDPC 코드는 신뢰 전파(belief propagation) 알고리즘에 기초하여 MAP 복호 임계값을 달성할 수 있는 코드로 알려져 있다.
도 12는 잘라 붙이기 방식에 따른 SC-LDPC 코드의 기초 행렬 생성의 개략도이다.
SC-LDPC 코드의 기초행렬(BSC-LDPC)은 하나의 LDPC 코드를 반복적으로 연결함으로써 생성될 수 있다. 도 12는 잘라 붙이기 (cut and paste) 방식의 SC-LDPC 코드의 기초행렬(BSC-LDPC)의 생성 방법을 도시한다. 도 12에서, SC-SDPC 코드의 기초행렬(BSC-LDPC)의 생성을 위하여, LDPC-BC (Block Code) 코드의 기초 행렬(BLDPC-BC)을 일부가 잘려진 뒤, 잘린 부분이 나머지 부분의 아래쪽에 붙여진다. 이 경우, 붙여진 아래쪽 부분과 나머지 윗 부분이 중첩되는 열(column)의 개수에 따라서 연결 깊이(coupling depth)가 결정될 수 있다. 아울러, 도 8과 관련하여 상술한 바와 같이, 쉬프트 값(shift value)이 적용될 수 있다. 그 후, 윗 부분과 아랫 부분이 조합된 행렬을 대각 형태로 반복적으로 붙임으로써, SC-SDPC 코드의 기초행렬(BSC-LDPC)이 생성될 수 있다.
도 13은 프로토그래프 에지 연결 방식에 따른 SC-LDPC 코드의 패리티 체크 행렬 생성의 개략도이다.
도 13의 프로토그래프(protograph)에서, 검은점은 변수 노드를 나타내고, 흰색 점은 체크 노드를 나타낸다. 각각의 점들 사이에 연결된 에지(edge)는 각 변수 노드와 체크 노드 사이의 연결 관계를 나타낸다. 프로토그래프 기반의 LDPC 코드는, 몇몇(few)의 요소(element)들을 갖는 작은 프로토매트릭스(protomatrix)로부터 구성될 수 있다. 프로토그래프는 상대적으로 적은 수의 노드들을 갖는 태너(Tanner) 그래프이다. 또한, 프로토그래프에서는 병행(parallel) 에지들이 허용된다. 프로토그래프는, 대응 변수 노드들과 체크 노드들을 연결하는 에지들의 수를 나타내는 프로토매트릭스로서 표현될 수 있다. 프로토그래프 코드(예를 들어, LDPC 코드)는 프로토그래프에 대하여 “복사-및-순열(copy-and-permutation)”을 적용함으로써 설계될 수 있다.
도 13에서, 위쪽의 프로토그래프에 대응하는 행렬이 순열(permuatation) 행렬에 의하여 리프팅(lifting)된다. 도 13의 아래쪽은, 프로토그래프에 대응하는 패리티 체크 행렬의 전치 행렬(HT)을 도시한다. 각각의 사각형 블록은 Z*Z 크기를 갖는(Z는 1 이상의 정수) 순열 행렬으로 구성될 수 있다.
도 12와 관련하여 설명된 잘라 붙이기 방식과, 도 13과 관련하여 설명된 에지 연결 방식은 SC-LDPC 코드의 패리티 체크 행렬 설계를 위한 낮은 자유도를 갖는다. 보다 구체적으로, 잘라 붙이기 방식은 SC-LDPC 코드의 기초 행렬의 체크 디그리(degree)를 유동적으로 변경하기 어렵다. 또한, 기초행렬을 잘라 붙임으로써 형성될 수 있는 모양도 매우 한정적이다. 또한, 프로토그래프의 에지 연결 방법은 연결 깊이(coupling depth)와 쉬프트 값(shift value)만이 설계 파라미터로서 이용된다. 따라서, 패리티 체크 행렬 설계에 있어서, 제약이 있다.
이하에서, 패리티 체크 행렬의 설계의 자유도를 증가시키기 위한, SC-LDPC 코드의 패리티 체크 행렬 생성 방법이 설명된다. 보다 구체적으로, LDPC-BC의 기초 행렬이 복수의 해체(decomposition) 행렬들로 해체하고, 복수의 해체 행렬들을 공간적으로 연결(spatially coupling)할 수 있다. 또한, 다-단계 리프팅 동작(multi-stage lifting operation)이 적용될 수 있다.
이하의 실시예들에 있어서, 상술한 잘라 붙이기 방법 또는 프로토그래프 에지 연결 방법과는 상이하게 SC-LDPC 코드의 패리티 체크 행렬이 생성될 수 있다. 예를 들어, LDPC-BC의 기초 행렬이 M(M은 2이상의 정수)개의 해체 행렬들로 해체될 수 있다. 또한, M개의 해체 행렬들에 대하여 공간적 연결이 수행된 후, 다-단계 리프팅 동작이 수행될 수 있다. M개의 해체 행렬들을 형성함에 있어서, 다양한 형태의 해체 행렬들이 생성될 수 있다. 따라서, SC-LDPC 코드의 기초 행렬 설계를 위한 자유도가 증가될 수 있다.
행렬 내에서 각 꼭지점에 대응하는 요소의 값이 ‘0’이 아닌 값들로 생성될 수 있는 직사각형은 하나의 사이클(cycle)을 형성한다. 사이클의 길이는 해당 사이클을 형성하는 직사각형의 모든 변에 포함된 요소들의 수를 나타낸다. 따라서, 가장 짧은 사이클의 길이는 4이다. 패리티 체크 행렬 내에 포함된 사이클은 순환적 구조를 갖는다. 따라서, 반복 복호 등에 따른 성능 향상이 기대되기 어렵다. 따라서, 사이클의 길이에 따라서 패리티 체크 행렬의 성능이 결정될 수 있다. 보다 구체적으로, 해당 패리티 체크 행렬 내에 포함된 싸이클 중 가장 짧은 길이를 갖는 사이클은 숏 사이클(short cycle)로 지칭될 수 있다. 사이클의 길이가 짧을수록 패리티 체크 행렬의 성능이 낮을 것으로 예상된다. 따라서, 패리티 체크 행렬의 성능은 숏 사이클에 의하여 결정되는 경향이 있다. 따라서, 이하의 실시예에 있어서, 숏 사이클의 수를 최대한 감소시키기 위하여, 해체(decomposition)가 적용될 수 있다. 또한, 패리티 체크 행렬의 숏 사이클의 수를 감소시키기 위하여 라틴 스퀘어(Latin Square) 또는 PEG(Progressive Edge Growth) 알고리즘이 적용될 수 있다. 또한, SC-LDPC 코드의 기초 행렬과 순환 쉬프트 값 행렬(circulant shift value matrix)을 이용하여, 2-단계 리프팅 동작이 수행될 수 있다. 2-단계 리프팅 동작을 통하여, SC-LDPC 코드의 최소 거리(minimum distance)와 거스(girth)가 증가될 수 있다. 여기서, 최소 거리는 코드의 2개의 코드워드들 사이의 최소 해밍(Hamming) 거리를 의미한다. 보다 구체적으로, 최소 거리는 2개의 코드워드들의 개별 위치들에서의 비트 값들의 차이의 최소 수를 의미할 수 있다. 또한, 거스는 패리티 체크 행렬의 가장 짧은 사이클의 길이를 의미한다.
도 14는 일 실시예에 따른 프로토그래프 기반 SC-LDPC 코드의 생성 방법의 흐름도이다.
먼저, LDPC-BC의 프로토그래프를 설계(S1401)한다. 예를 들어, AWGN(Additive Gaussian White Noise) 채널 또는 BEC(Binary Erasure Channel)에서의 일정 값 이상의 한계점(threshold)을 갖도록 프로토그래프가 설계될 수 있다. 또한, 정규(regular) 또는 비정규(irregular) LDPC-BC가 이용될 수 있다.
프로토그래프로부터 프로토매트릭스를 생성(S1402)한다. 프로토그래프의 변수 노드와 체크 노드의 관계로부터 프로토매트릭스 V가 생성될 수 있다. 또한, 상술한 단계 S1401 및 S1402는 생략될 수도 있다. 예를 들어, 기설정된 LDPC-BC 기초 행렬이 이용될 수도 있다.
또한, 프로토매트릭스로부터 복수의 해체(decomposition) 행렬들을 생성(S1403)할 수 있다. 예를 들어, 프로토매트릭스 V를 해체함으로써, M(M은 2이상의 정수) 개의 해체 행렬들이 생성될 수 있다. M개의 해체 행렬들은 각각 V0, V1, V2, …, VM-1로 표현될 수 있다. 이하에서, 도 15를 참조하여, 프로토매트릭스 V를 해체하기 위한 기준(criteria)이 설명된다.
도 15는 일 예시에 따른 해체 행렬들의 생성을 도시한다.
도 15는 해체 행렬들의 생성을 설명하기 위한 도면으로서, 본 발명이 이에 제한되는 것은 아니다. 도 15에서, 프로토매트릭스 V는 3개의 해체 행렬들 V0, V1, 및 V2로 해체된다. 즉, 해체 행렬들은 프로토매트릭스와 동일한 크기를 가지고, 모든 해체 행렬들의 합이 프로토매트릭스와 동일하다. 따라서, 프로토매트릭스의 각 요소(element)들이 해체 행렬들에 분배된다.
이 경우, 해체 행렬들 사이의 대응 행의 체크 디그리(check degree)가 동일하도록 해체 행렬들이 생성될 수 있다. 즉, 해체 행렬들의 대응 행의 체크 디그리가 서로 동일하게 설정될 수 있다. 도 15를 참조하여, 프로토매트릭스 V의 1행의 체크 디그리는 6이다. 따라서, 도 15의 예시에서 3개의 해체 행렬들(V0, V1, 및 V2)이 생성되므로, 해체 행렬들(V0, V1, 및 V2)의 1행은 체크 디그리가 2가 되도록 설정될 수 있다. 따라서, 프로토매트릭스 V의 1행에 존재하는 1의 값을 갖는 요소들이 2개씩 각각의 해체 행렬들의 1행에 분배된다. 도 15의 실시예에서는 체크 디그리가 각각의 해체 행렬들에 동등하게 분배되었다. 그러나, 예를 들어, 프로토매트릭스의 첫 번째 행의 체크 디그리가 5이고 3개의 해체 행렬들이 생성되는 경우, 해체 행렬들의 첫 번째 행에 동등하게 체크 디그리가 분배될 수 없다. 이 경우, 해체 행렬들 대응 행의 체크 디그리 사이의 차가 최소화되도록 프로토 매트릭스의 요소들이 분배될 수 있다. 즉, 예를 들어, 3개의 해체 행렬들의 제1행의 체크 디그리는 각각 2, 2, 및 1이 될 수 있다.
또한, 고립된(isolated) 숏 사이클과 숏 사이클의 수를 줄이도록 해체가 수행될 수 있다. 일반적인 LDPC 코드와 마찬가지로, SC-LDPC 코드는 고립된 사이클에 취약하기 때문이다. 도 15를 참조하여, 점선으로 2개의 사이클이 프로토매트릭스에 표현된다. 숏 사이클은 우측 하단에 점선으로 표시된 길이 4의 사이클이다. 그러나, 길이 4의 숏사이클은 길이 8의 사이클과 한 모서리를 공유한다. 따라서, 해당 숏 사이클은 고립된 숏 사이클이 아니다. 고립된 숏 사이클은 숏 사이클 중에서도 다른 사이클과는 모서리를 공유하지 않는 숏 사이클을 의미할 수 있다. 도 15의 예시에서, 해체 매트릭스들은 사이클이 존재하지 않도록 해체된다. 따라서, 프로토매트릭스에 비하여 성능이 개선될 수 있다.
또한, 예를 들어, 시뮬레이션을 통하여 해체 행렬들이 결정될 수도 있다. 예를 들어, 해체 행렬들의 각 행의 체크 디그리를 변경시키면서 가장 좋은 FER을 갖는 해체 행렬 V0 와 V1이 결정될 수도 있다.
또한, 복수의 해체 행렬들을 공간적으로 연결(spatially coupling)함으로써 SC-LDPC 코드의 기초 행렬이 생성(S1404)될 수 있다. 예를 들어, 각각의 해체 행렬들은 종료 길이(terminal length)만큼 서로 공간적으로 연결될 수 있다.
또한, SC-LDPC 코드의 기초 행렬로부터 순환 쉬프트 값 행렬(Circulant shift value matrix)이 생성(S1405)될 수 있다. 이 경우, 숏 사이클(예를 들어, 길이 4의 사이클)을 감소시키기 위하여, 라틴 스퀘어 알고리즘(Latin square algorithm) 또는 PEG 알고리즘을 이용하여 순환 쉬프트 값 행렬이 설계될 수 있다. 따라서, 숏 사이클의 수가 감소될 수 있다. 여기서, 숏 사이클은 기설정된 길이 이하의 길이를 갖는 사이클을 지칭할 수 있다.
또한, SC-LDPC 코드의 기초행렬에 대하여 다-단계 리프팅이 적용(S1406)될 수 있다. 예를 들어, 2-단계 리프팅 동작이 적용될 수 있다. 2-단계 리프팅은 기초 행렬의 0이 아닌 요소들에 두 단계의 리프팅 동작을 거쳐 패리티 체크 행렬을 구성하는 것을 의미한다. 이는 SC-LDPC 코드의 최소 거리와 거스(girth)를 증가시키기 위함이다. 또한, 다-단계 리프팅의 각 단계의 리프팅 크기가 결정될 수 있다.
이하에서, 일 실시예에 따른 2-단계 리프팅 동작이 설명된다.
먼저, 2-단계 리프팅 동작은 2개의 순열 행렬 Z1과 Z2에 의하여 수행될 수 있다. 예를 들어, 1-단계 리프팅 동작에서 의하여 패리티 체크 행렬이 구성되는 경우, 순열 행렬 Z가 이용될 수 있다. 이 경우, Z는 Z1×Z2에 대응할 수 있다.
첫 번째 리프팅 동작은 두 번째 리프팅 동작에 비하여 작은 리프팅 크기를 가질 수 있다. 또한, PEG 알고리즘이 첫 번째 리프팅 동작에 적용될 수 있다. 이 경우, 프로토그래프 상의 병행 에지(parallel edge)를 제거하도록 첫 번째 리프팅 동작이 수행될 수도 있다. 또한, 가능한 작은 크기의 리프팅 행렬이 이용될 수 있다. 예를 들어, 첫 번째 리프팅 동작에 이용되는 리프팅 행렬의 크기는 2×2 또는 3×3일 수도 있다. 작은 크기의 리프팅 행렬을 이용함으로써, 숏 사이클(예를 들어, 길이 4 또는 6)의 수가 최소화될 수 있다. 또한, 숏 사이클을 줄일 수 있도록, 리프팅 행렬의 쉬프트 값이 조정될 수 있다.
두 번째 리프팅 동작은 첫 번째 리프팅 동작에 비하여 큰 리프팅 크기를 가질 수 있다. 또한, 라틴 스퀘어 알고리즘이 두 번째 리프팅 동작에 적용될 수 있다. 이 경우, 라틴 스퀘어 알고리즘의 갈리오스 필드(Galios Field)의 크기와 쉬프트 값을 조정함으로써 패리티 체크 행렬의 거스가 증가될 수 있다.
위와 같이 설계된 패리티 체크 행렬이 기설정된 파라미터를 만족하는지 판단(S1407)될 수 있다. 예를 들어, 패리티 체크 행렬의 임계치(threshold), 워터폴(waterfall) 및/또는 오류 플로어(error floor)가 기설정된 파라미터로서 설정될 수 있다. 기설정된 파라미터가 만족되지 않는 경우, 상술한 단계 S1401 내지 S1406이 반복될 수 있다.
패리티 체크 행렬은 SC-LDPC의 기초행렬, 결정된 순환 쉬프트 값 행렬, 및 복수의 리프팅 값에 따라서 정의될 수 있다. 또한, 부화화 과정은 패리티 체크 행렬에 기초하여 생성된 생성 행렬에 따라서 수행될 수 있다. 따라서, 도 14에는 미도시되었으나, SC-LDPC의 기초행렬, 결정된 순환 쉬프트 값 행렬, 및 복수의 리프팅 값에 기초하여 입력 신호의 부호화가 수행될 수 있다. 또한, 부호화된 코드워드가 수신단에 송신될 수 있다.
상술한 방법에 따라서 설계된 SC-LDPC 코드의 패리티 체크 행렬은 길쌈(convolutional) 코드의 부호화 방법과 유사한 방법으로 부호화될 수 있다. 따라서, 복잡도 낮은 부호화가 수행될 수 있다.
또한, 상술한 SC-LDPC 코드의 패리티 체크 행렬에 의한 코드워드는 SW (Sliding Window) 복호기에 의하여 복호될 수 있다. SC-LDPC 코드는 코드워드의 양 끝단에서 신뢰도가 높은 특성을 갖는다. 따라서, SW 복호화는, 풀-블록 플루딩 복호(full block flooding decoding)를 이용하는 LDPC-BC 보다 작은 메모리 및 최대 반복 회수가 획득될 수 있다. 따라서, 하드웨어 복잡도와 계산 복잡도가 감소될 수 있다. SW 복호화기가 이용되는 경우, FER 성능의 열화를 방지하기 위하여, 윈도우 크기 W는 해체 행렬들의 수의 정수 배로 구성될 수 있다.
이하에서, 도 16 내지 도 20을 참조하여, 일 실시예에 따른 SC-LDPC 패리티 체크 행렬의 설계 방법에 대하여 설명한다.
도 16은 일 예시에 따른 LDPC-BC의 프로토그래프이다. 도 16에서 목적 코드율(code rate)은 1/3이다. 따라서, 변수 노드들 중 일부가 펑쳐링된다. 펑쳐링된 변수 노드는 흰색 원으로 표시된다. 도 16에서 비정규(irregular) LDPC-BC가 이용된다.
도 17은 일 예시에 따른 프로토매트릭스를 도시한다. 도 16의 프로토그래프로부터 도 17의 프로토매트릭스 V가 도출된다. 프르토그래프의 변수노드와 체크 노드와의 관계로부터 프르토매트릭스 V가 생성될 수 있다. 또한, 프로토 매트릭스는 M개의 행렬들로 해체(decomposition)된다. 예를 들어, M개의 해체 행렬들은 각각 V0, V1, V2, …., VM-1로 표시될 수 있다. 프로토매트릭스 V는 해체 행렬들(V0, V1, V2, …., VM-1)의 합과 같다. 또한, 해체 행렬들을 종료 길이 L에 기초하여 공간적으로 연결함으로써 SC-LDPC 코드의 기초 행렬이 생성될 수 있다.
도 18은 일 예시에 따른 SC-LDPC 코드의 기초행렬을 도시한다. 도 18에서, M개의 해체행렬들이 종료길이 L에 따라서 공간적으로 연결된다.
도 19는 다른 예시에 다른 SC-LDPC 코드의 기초행렬을 도시한다. 도 19에서, 2개의 해체행렬들이 종료길이 L에 따라서 공간적으로 연결된다.
또한, 상술한 기초행렬에 대하여 순환 쉬프트 값 행렬이 적용될 수 있다. 도 20은 일 예시에 따른 순환 쉬프트 값 행렬을 도시한다. 도 20의 예시는, GF(26)(Galios Field)에서 원시 요소(primitive element)가 β인 경우, 라틴 스퀘어(Latin square) 기법에 의하여 생성된 순환 쉬프트 값 행렬을 도시한다.
또한, 기초행렬에 대하여 상술한 2-단계 리프팅 동작이 수행됨으로써 패리티 체크 행렬이 생성될 수 있다. 첫번째 단계에서 제1 순열 행렬(permutation matrix)에 의하여 리프팅 동작이 수행될 수 있다. 또한, 두 번째 단계에서 제2 순열 행렬에 의하여 리프팅 동작이 수행될 수 있다. 제1 순열 행렬은 제2 순열 행렬보다 작은 크기를 가질 수 있다. 예를 들어, 제1 순열 행렬에 대하여 PEG 알고리즘이 적용되고, 제2 순열 행렬에 대하여 라틴 스퀘어 알고리즘이 적용될 수 있다.
최종적으로 생성된 패리티 체크 행렬의 성능에 기초하여 상술한 단계들의 반복 여부가 결정될 수 있다. 패리티 체크 행렬의 성능 임계치, 워터폴(waterfall), 및/또는 오류 플로어(error floor)에 기초하여 생성된 패리티 체크 행렬이 기설정된 성능 파라미터를 만족하는지 확인될 수 있다.
도 21a는 일 예시에 따른 패리티 체크 행렬을 도시한다.
도 21a에서, HT [0,n]은 하기의 정보 시퀀스 u[0,n]을 부호화하기 위한 SC-LDPC 코드 생성 행렬을 나타낸다.
Figure PCTKR2017006019-appb-M000003
도 21a에서, 해체 행렬 h1과 h2가 공간적으로 연결됨으로써 SC-LDPC 코드 생성 행렬이 생성된다. h1 (a)(b)은 해체 행렬 h1에 대하여 순환 쉬프트 값 a가 적용됨을 나타낸다. 또한, b는 패리티 체크 행렬에서의 대응 정보 시퀀스의 n값을 나타낸다. SC-LDPC 코드의 생성행렬은, 도 21a에 도시된 바와 같이, 길쌈 코드(convolutional code)와 동일하게 대각 형태의 구조를 갖는다. 따라서, SC-LDPC 코드의 부호화기는 낮은 복잡도를 가질 수 있다.
도 21b는 일 예시에 따른 부호화기 구조를 도시한다.
도 21b에 도시된 바와 같이, 본 개시물의 SC-LDPC 코드의 부호화기는 축적기(accumulator)의 형태로서 구현될 수 있다.
도 22는 슬라이딩 윈도우 복호의 개념도이다.
SC-LDPC 코드는 코드워드의 양 끝단에서 높은 신뢰도를 갖는다. 따라서, 유사-파형 복호(wave-like decoding)인 슬라이딩 윈도우(sliding window, SW) 복호를 이용함으로써 양 끝단의 효과가 코드워드의 중심부로 전파될 수 있다. 또한, LDPC-BC보다 메시지 값을 저장하는 메모리의 크기 및 최대 반복 횟수가 감소될 수 있다. 따라서, 하드웨어 복잡도 및 계산 복잡도가 감소될 수 있다.
도 22에서, 2개의 해체 행렬이 이용된 경우의 부호화된 코드워드 블록이 도시된다. 각각의 해체 행렬에 의하여 부호화된 정보 시퀀스는 V0 및 V1으로 표기된다. 상술한 바와 같이, FER 성능의 열화를 방지하기 위하여, 슬라이딩 윈도우의 크기는 해체 행렬의 수의 정수배로 설정될 수 있다. 도 22에서, 윈도우 크기(W)는 해체 행렬들의 수(M)의 3배인 6으로 설정된다. 도 22에 도시된 바와 같이, 윈도우가 대각 행렬의 형태를 따라 이동하면서 복호화가 수행될 수 있다.
도 23은 일 예시에 따른 기초 행렬 V를 도시한다. 도 24는 해체 행렬들을 도시한다. 상술한 바와 같은 기준에 의하여 해체 행렬 V0 및 V1이 기초 행렬 V로부터 생성될 수 있다.
도 25는 일 예시에 따른 기초행렬을 도시한다. 해체 행렬V0와 V1을 공간적으로 연결함으로써 기초행렬 B가 생성된다. 도 25에서 종료 길이 L은 6으로 설정된다.
도 26은 일 예시에 따른 순환 쉬프트 값 행렬을 도시한다, 도 26의 예시에서, 도 26에서, GF (29) (Galois Field)에서 원시 요소가 β인 경우, 라틴 스퀘어(Latin square) 기법에 의하여 생성된 순환 쉬프트 값 행렬을 도시한다. 순환 쉬프트 값 행렬에 기초하여 기초행렬에 대하여 리프팅 동작을 수행함으로써 패리티 체크 행렬이 생성될 수 있다.
도 27은 일 예시에 따른 SC-LDPC 코드의 기초 행렬을 도시한다.
도 27은 부호율(code rate) 2/3인 경우의 기초 행렬 B를 도시한다.
도 28은 일 예시에 따른 FER을 도시한다.
도 28에서, 세로축은 FER을, 가로축은 스펙트럼 잡은 밀도(Spectral Noise Density, No)에 대한 비트 당 에너지(Energy per Bit, Eb)의 비율을 나타낸다. 또한, 점선은 도 27의 기초 행렬에 기초한 SC-LDPC 코드의 성능을 나타낸다. 또한, 실선은 Divsalar LDPC-BC 코드의 성능을 나타낸다. Divsalar LDPC-BC 코드의 구체적인 내용은 문서 “The Design of Rate-Compatible Protograph LDPC Codes” (IEEE Transactions on Communications, OCT. 2012, Thuy Van Nguyen, Aria Nosratinia, and dadari Divsalar)에 의하여 참조될 수 있다. 도 28에서, 정보 블록의 길이는 16392이고, 부호율은 2/3이다. 또한, 최대 반복 횟수는 200이다. SC-LDPC의 코드의 경우, 2비트가 펑쳐링되고, Divslar LDPC-BC 코드의 경우, 1 비트가 펑쳐링되었다. 도 28에 도시된 바와 같이, 본 개시물의 실시예에 따른 SC-LDPC 코드는 Divslar DLPC-BC 코드에 비하여 개선된 FER 성능을 가진다.
도 29는 본 발명의 실시예로서 도 1 내지 도 28에서 설명한 본 발명의 실시예들이 적용될 수 있는 기기들의 구성을 개략적으로 설명하기 위한 도면이다.
도 29를 참조하여, 본 발명에 따른 기지국 장치(10)는, 수신 모듈(11), 송신모듈(12), 프로세서(13), 메모리(14) 및 복수개의 안테나(15)를 포함할 수 있다. 송신 모듈(12)은 외부 장치(예를 들어, 단말)로의 각종 신호, 데이터 및 정보를 전송할 수 있다. 수신 모듈(11)은 외부 장치(예를 들어, 단말)로부터의 각종 신호, 데이터 및 정보를 수신할 수 있다. 수신 모듈(11)과 송신 모듈(12)은 트랜시버(transceiver)로서 호칭될 수 있다. 프로세서(13)는 기지국 장치(10) 전반의 동작을 제어할 수 있다. 복수개의 안테나(15)는 예를 들어 2-차원 안테나 배치에 따라서 구성될 수 있다.
본 발명의 일례에 따른 기지국 장치(10)의 프로세서(13)는, 본 발명에서 제안하는 예시들에 따라서 채널상태정보를 수신하도록 구성될 수 있다. 기지국 장치(10)의 프로세서(13)는 그 외에도 기지국 장치(10)가 수신한 정보, 외부로 전송할 정보 등을 연산 처리하는 기능을 수행하며, 메모리(14)는 연산 처리된 정보 등을 소정시간 동안 저장할 수 있으며, 버퍼(미도시) 등의 구성요소로 대체될 수 있다.
도 29를 참조하여, 본 발명에 따른 단말 장치(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 (8)

  1. 단말의 SC-LDPC (Spatially Coupled-Low Density Parity Check) 코드의 부호화 방법으로서,
    기설정된 LDPC 블록코드(Block Code)의 기초행렬(base matrix)을 해체(decomposition)함으로써 복수의 해체 행렬들을 생성하는 단계;
    상기 복수의 해체 행렬들을 종료 길이(termination length)에 따라서 공간적으로 연결(spatially coupoing)함으로써 상기 SC-LDPC 코드의 기초행렬을 생성하는 단계;
    상기 SC-LDPC 코드의 기초행렬로부터 순환 쉬프트 값 행렬(circulant shift value matrix)을 생성하는 단계;
    상기 SC-LDPC 코드의 기초행렬에 대한 복수의 리프팅(lifting) 값들을 생성하는 단계; 및
    상기 SC-LDPC 코드의 기초행렬, 상기 순환 쉬프트 값 행렬, 및 상기 복수의 리프팅 값들에 의하여 정의된 생성행렬(generator matrix)을 이용하여 입력신호를 부호화하는 단계를 포함하는, 부호화 방법.
  2. 제 1 항에 있어서,
    상기 순환 쉬프트 값 행렬은 라틴 스퀘어(Latin Square) 알고리즘 또는 PEG(Progressive Edge Growth) 알고리즘에 따라서 생성되는, 부호화 방법.
  3. 제 1 항에 있어서,
    상기 복수의 리프팅 값들은 제1 리프팅 값 및 제2 리프팅 값을 포함하고,
    상기 제1 리프팅 값은 상기 제2 리프팅 값에 우선하여 상기 SC-LDPC 코드의 기초행렬에 적용되고, 상기 제2 리프팅 값 보다 작은, 부호화 방법.
  4. 제 1 항에 있어서,
    상기 복수의 해체 행렬들은 서로 대응하는 행들의 체크 디그리(check degree)값들의 차이가 최소가되도록 생성된, 부호화 방법.
  5. 단말의 SC-LDPC (Spatially Coupled-Low Density Parity Check) 코드의 복호화 방법으로서,
    부호화된 입력 신호를 수신하는 단계; 및
    상기 부호화된 입력 신호를 패리티 체크 행렬(parity check matrix)에 기초한 슬라이딩 윈도우(sliding window) 복호 기법을 이용하여 복호화하는 단계를 포함하고,
    상기 패리티 체크 행렬은 상기 SC-LDPC 코드의 기초행렬 (base matrix), 순환 쉬프트 값 행렬 (circulant shift value matrix), 및 복수의 리프팅 (lifting) 값들에 의하여 정의되고,
    상기 SC-LDPC 코드의 기초행렬은 복수의 해체(decomposition) 행렬들을 종료길이(termination length)에 따라서 공간적으로 연결(spatially coupling)함으로써 생성되고,
    상기 복수의 해체 행렬들은 기설정된 LDPC-블록코드의 기초행렬을 해체함으로써 생성되고,
    상기 슬라이딩 윈도우 복호 기법의 윈도우 크기는 상기 복수의 해체 행렬들의 수의 정수배인, 복호화 방법.
  6. 제 5 항에 있어서,
    상기 순환 쉬프트 값 행렬은 라틴 스퀘어(Latin Square) 알고리즘 또는 PEG(Progressive Edge Growth) 알고리즘에 따라서 생성된, 복호화 방법.
  7. 제 5 항에 있어서,
    상기 복수의 리프팅 값들은 제1 리프팅 값 및 제2 리프팅 값을 포함하고,
    상기 제1 리프팅 값은 상기 제2 리프팅 값에 우선하여 상기 SC-LDPC 코드의 기초행렬에 적용되고, 상기 제2 리프팅 값 보다 작은, 복호화 방법.
  8. 제 5 항에 있어서,
    상기 복수의 해체 행렬들은 서로 대응하는 행들의 체크 디그리(check degree)값들의 차이가 최소가되도록 생성된, 복호화 방법.
PCT/KR2017/006019 2017-06-09 2017-06-09 Sc-ldpc 코드 부호화 방법 및 이를 위한 장치 WO2018225885A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2017/006019 WO2018225885A1 (ko) 2017-06-09 2017-06-09 Sc-ldpc 코드 부호화 방법 및 이를 위한 장치
US16/619,071 US11271591B2 (en) 2017-06-09 2017-06-09 SC-LDPC code encoding method and device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/006019 WO2018225885A1 (ko) 2017-06-09 2017-06-09 Sc-ldpc 코드 부호화 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
WO2018225885A1 true WO2018225885A1 (ko) 2018-12-13

Family

ID=64566760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/006019 WO2018225885A1 (ko) 2017-06-09 2017-06-09 Sc-ldpc 코드 부호화 방법 및 이를 위한 장치

Country Status (2)

Country Link
US (1) US11271591B2 (ko)
WO (1) WO2018225885A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541454A (zh) * 2020-05-09 2020-08-14 哈尔滨工程大学 一种快速构造时不变sc-ldpc码的方法
TWI744960B (zh) * 2020-06-22 2021-11-01 旺宏電子股份有限公司 記憶體控制器及記憶體裝置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510160A (zh) * 2020-05-13 2020-08-07 中国人民解放军军事科学院战争研究院 一种截断卷积编码优化构造方法
CN113055026A (zh) * 2021-03-16 2021-06-29 重庆邮电大学 一种适用于深空通信的基于原模图的ldpc码校验矩阵的构造方法
CN115694720A (zh) * 2021-07-29 2023-02-03 华为技术有限公司 数据传输的方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150064695A (ko) * 2013-12-03 2015-06-11 삼성전자주식회사 공간적으로 연결된 저-밀도 패리티-검사(sc ldpc) 코드를 생성하는 장치 및 방법
WO2015101521A1 (en) * 2013-12-30 2015-07-09 Alcatel Lucent Ldpc encoder and decoder
JP2015133677A (ja) * 2014-01-15 2015-07-23 日本放送協会 空間結合ldpc符号を用いた変調装置及び復調装置
US20160164538A1 (en) * 2014-12-05 2016-06-09 Samsung Electronics Co., Ltd. Sc-ldpc codes for wireless communication systems: framework and zigzag-window decoder
JP2016134883A (ja) * 2015-01-22 2016-07-25 日本放送協会 連接符号を用いた送信装置、受信装置及びチップ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
US8132072B2 (en) * 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
US8433972B2 (en) * 2009-04-06 2013-04-30 Nec Laboratories America, Inc. Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes
US9692451B2 (en) * 2014-09-30 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd Non-binary low density parity check (NB-LDPC) codes for communication systems
US11043966B2 (en) * 2016-05-11 2021-06-22 Qualcomm Incorporated Methods and apparatus for efficiently generating multiple lifted low-density parity-check (LDPC) codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150064695A (ko) * 2013-12-03 2015-06-11 삼성전자주식회사 공간적으로 연결된 저-밀도 패리티-검사(sc ldpc) 코드를 생성하는 장치 및 방법
WO2015101521A1 (en) * 2013-12-30 2015-07-09 Alcatel Lucent Ldpc encoder and decoder
JP2015133677A (ja) * 2014-01-15 2015-07-23 日本放送協会 空間結合ldpc符号を用いた変調装置及び復調装置
US20160164538A1 (en) * 2014-12-05 2016-06-09 Samsung Electronics Co., Ltd. Sc-ldpc codes for wireless communication systems: framework and zigzag-window decoder
JP2016134883A (ja) * 2015-01-22 2016-07-25 日本放送協会 連接符号を用いた送信装置、受信装置及びチップ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541454A (zh) * 2020-05-09 2020-08-14 哈尔滨工程大学 一种快速构造时不变sc-ldpc码的方法
CN111541454B (zh) * 2020-05-09 2023-10-13 哈尔滨工程大学 一种快速构造时不变sc-ldpc码的方法
TWI744960B (zh) * 2020-06-22 2021-11-01 旺宏電子股份有限公司 記憶體控制器及記憶體裝置

Also Published As

Publication number Publication date
US20200099398A1 (en) 2020-03-26
US11271591B2 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
WO2018062660A1 (ko) Qc ldpc 코드의 레이트 매칭 방법 및 이를 위한 장치
WO2016089157A1 (en) Sc-ldpc codes for wireless communication systems
WO2018225885A1 (ko) Sc-ldpc 코드 부호화 방법 및 이를 위한 장치
AU2018288906B2 (en) Method and apparatus of rate-matching for communication and broadcasting systems
WO2018143743A1 (ko) 행-직교 구조(row-orthogonal)를 이용한 LDPC 코드 전송 방법 및 이를 위한 장치
WO2017217711A1 (ko) 폴라 코드를 위한 데이터 재송신 방법 및 이를 위한 장치
WO2018128435A2 (ko) 다중 ldpc 코드에서 ldpc 베이스 코드를 선택하는 방법 및 이를 위한 장치
WO2018236114A1 (en) METHOD AND APPARATUS FOR FLOW ADAPTATION FOR COMMUNICATION AND BROADCASTING SYSTEMS
WO2016093568A1 (en) Method and apparatus for parallel concatenated ldpc convolutional codes enabling power-efficient decoders
US10116332B2 (en) Method for configuring circular buffer including outer code parity and apparatus therefor
WO2018164297A1 (ko) Ldpc 코드의 계층적 복호화 방법 및 이를 위한 장치
WO2017217715A1 (ko) 폴라 코드를 위한 프로즌 비트 결정 방법 및 이를 위한 장치
WO2019031841A1 (ko) 정보 전송 방법 및 전송 장치 및 정보 수신 방법 및 수신 장치
WO2018226019A1 (ko) 행-직교 구조를 이용한 ldpc 코드 전송 방법 및 이를 위한 장치
WO2018084617A1 (ko) Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치
WO2018079987A1 (ko) Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치
WO2018169339A1 (ko) 채널 코딩을 수행하는 방법 및 이를 위한 장치
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: 17912946

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: 17912946

Country of ref document: EP

Kind code of ref document: A1