KR20210030848A - Apparatus and method for decoding of data in communication or broadcasting system - Google Patents

Apparatus and method for decoding of data in communication or broadcasting system Download PDF

Info

Publication number
KR20210030848A
KR20210030848A KR1020200028354A KR20200028354A KR20210030848A KR 20210030848 A KR20210030848 A KR 20210030848A KR 1020200028354 A KR1020200028354 A KR 1020200028354A KR 20200028354 A KR20200028354 A KR 20200028354A KR 20210030848 A KR20210030848 A KR 20210030848A
Authority
KR
South Korea
Prior art keywords
decoding
ldpc
matrix
block
order
Prior art date
Application number
KR1020200028354A
Other languages
Korean (ko)
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 CN202080059625.9A priority Critical patent/CN114270710A/en
Priority to EP20862201.9A priority patent/EP3963723A4/en
Priority to US17/016,915 priority patent/US11177830B2/en
Priority to PCT/KR2020/012247 priority patent/WO2021049888A1/en
Publication of KR20210030848A publication Critical patent/KR20210030848A/en
Priority to US17/526,088 priority patent/US11876534B2/en

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
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

The present disclosure relates to a communication technique, which converges a 5G communication system for supporting a higher data rate after a 4G system with IoT technology, and to a system thereof. According to the present invention, the decoding method of a receiver comprises the steps of: receiving a signal corresponding to an input bit transmitted from a transmitter; checking the number of input bits based on the signal; checking the size of the code block based on the number of input bits; and performing layered decoding based on a parity check matrix corresponding to the size of the code block.

Description

통신 또는 방송 시스템에서 데이터 복호화 방법 및 장치{APPARATUS AND METHOD FOR DECODING OF DATA IN COMMUNICATION OR BROADCASTING SYSTEM} Data decoding method and apparatus in communication or broadcasting system {APPARATUS AND METHOD FOR DECODING OF DATA IN COMMUNICATION OR BROADCASTING SYSTEM}

본 발명은 LDPC 부호에 기반한 통신 또는 방송 시스템에서 LDPC 복호기를 이용한 데이터 복호화 방법 및 장치에 관한 것이다.The present invention relates to a data decoding method and apparatus using an LDPC decoder in a communication or broadcasting system based on an LDPC code.

4G 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다. 높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역 (예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO: FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다. 또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다. 이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation: ACM) 방식인 FQAM (Hybrid FSK and QAM Modulation) 및 SWSC (Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(non orthogonal multiple access), 및SCMA(sparse code multiple access) 등이 개발되고 있다.Efforts are being made to develop an improved 5G communication system or a pre-5G communication system in order to meet the increasing demand for wireless data traffic after the commercialization of 4G communication systems. For this reason, the 5G communication system or the pre-5G communication system is called a communication system after a 4G network (Beyond 4G Network) or a system after an LTE system (Post LTE). In order to achieve a high data rate, the 5G communication system is being considered for implementation in the ultra-high frequency (mmWave) band (eg, such as the 60 Giga (60 GHz) band). In order to mitigate the path loss of radio waves in the ultra-high frequency band and increase the transmission distance of radio waves, 5G communication systems include beamforming, massive MIMO, and Full Dimensional MIMO (FD-MIMO). ), array antenna, analog beam-forming, and large scale antenna technologies are being discussed. In addition, in order to improve the network of the system, in 5G communication system, evolved small cell, advanced small cell, cloud radio access network (cloud RAN), ultra-dense network , Device to Device communication (D2D), wireless backhaul, moving network, cooperative communication, CoMP (Coordinated Multi-Points), and interference cancellation And other technologies are being developed. In addition, in 5G systems, advanced coding modulation (ACM) methods such as Hybrid FSK and QAM Modulation (FQAM) and SWSC (Sliding Window Superposition Coding), advanced access technologies such as Filter Bank Multi Carrier (FBMC), NOMA (non orthogonal multiple access), and sparse code multiple access (SCMA) are being developed.

한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망으로 진화하고 있다. 클라우드 서버 등과의 연결을 통한 빅데이터(Big data) 처리 기술 등이 IoT 기술에 결합된 IoE (Internet of Everything) 기술도 대두되고 있다. IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술, 및 보안 기술과 같은 기술 요소 들이 요구되어, 최근에는 사물간의 연결을 위한 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 연구되고 있다. IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT(information technology)기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.Meanwhile, the Internet is evolving from a human-centered connection network in which humans create and consume information, to an Internet of Things (IoT) network that exchanges and processes information between distributed components such as objects. IoE (Internet of Everything) technology, which combines IoT technology with big data processing technology through connection with cloud servers, etc., is also emerging. In order to implement IoT, technological elements such as sensing technology, wired/wireless communication and network infrastructure, service interface technology, and security technology are required. , M2M), and MTC (Machine Type Communication) technologies are being studied. In the IoT environment, intelligent IT (Internet Technology) services that create new value in human life by collecting and analyzing data generated from connected objects can be provided. IoT is the field of smart home, smart building, smart city, smart car or connected car, smart grid, healthcare, smart home appliance, advanced medical service, etc. through the convergence and combination of existing IT (information technology) technology and various industries. Can be applied to.

이에, 5G 통신 시스템을 IoT 망에 적용하기 위한 다양한 시도들이 이루어지고 있다. 예를 들어, 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 5G 통신 기술이 빔 포밍, MIMO, 및 어레이 안테나 등의 기법에 의해 구현되고 있는 것이다. 앞서 설명한 빅데이터 처리 기술로써 클라우드 무선 액세스 네트워크(cloud RAN)가 적용되는 것도 5G 기술과 IoT 기술 융합의 일 예라고 할 수 있을 것이다.Accordingly, various attempts have been made to apply a 5G communication system to an IoT network. For example, technologies such as sensor network, machine to machine (M2M), and machine type communication (MTC) are implemented by techniques such as beamforming, MIMO, and array antenna. There is. The application of a cloud radio access network (cloud RAN) as the big data processing technology described above can be said as an example of the convergence of 5G technology and IoT technology.

통신 또는 방송 시스템에서, 링크(link) 성능은 채널의 여러 가지 잡음(noise), 페이딩(fading) 현상 및 심벌 간 간섭(ISI: inter-symbol interference)에 의해 현저히 저하될 수 있다. 따라서 차세대 이동 통신, 디지털 방송 및 휴대 인터넷과 같이 높은 데이터 처리량과 신뢰도를 요구하는 고속 디지털 통신 또는 방송 시스템들을 구현하기 위해서, 잡음, 페이딩 및 심벌 간 간섭을 극복하기 위한 기술을 개발하는 것이 요구된다. 잡음 등을 극복하기 위한 연구의 일환으로서, 최근에는 정보의 왜곡을 효율적으로 복원하여 통신의 신뢰도를 높이기 위한 방법으로서 오류정정부호(error-correcting code)에 대한 연구가 활발히 이루어지고 있다.In a communication or broadcasting system, link performance may be significantly degraded due to various noise, fading phenomena, and inter-symbol interference (ISI) of a channel. Therefore, in order to implement high-speed digital communication or broadcasting systems that require high data throughput and reliability, such as next-generation mobile communication, digital broadcasting, and portable Internet, it is required to develop a technology for overcoming noise, fading, and inter-symbol interference. As a part of research to overcome noise, etc., in recent years, research on error-correcting codes has been actively conducted as a method to increase the reliability of communication by efficiently restoring distortion of information.

본 발명은 통신 또는 방송 시스템에서 저밀도 패리티-검사(low-density parity-check: LDPC) 부호를 효율적으로 복호화하기 위한 장치 및 방법을 제공한다.The present invention provides an apparatus and method for efficiently decoding a low-density parity-check (LDPC) code in a communication or broadcasting system.

또한, 본 발명은 레이어드(layered) 스케줄링 혹은 그에 준하는 방식을 이용하여 LDPC 부호의 복호화를 진행함에 있어서 상기의 LDPC 부호의 구조적 또는 대수적인 특징에 따라 적합한 복호 스케줄링(scheduling)을 적용하여 복호 복잡도 증가 없이 복호 성능을 개선하기 위한 LDPC 복호 장치 및 방법을 제공한다. In addition, the present invention applies suitable decoding scheduling according to the structural or algebraic characteristics of the LDPC code when decoding the LDPC code using layered scheduling or a method similar thereto, without increasing the decoding complexity. It provides an LDPC decoding apparatus and method for improving decoding performance.

상기와 같은 문제점을 해결하기 위한 본 발명의 통신시스템에서 수신기의 LDPC 복호 수행 방법에 있어서, 전송 (transport) 블록 및 코드 블록에 대응되는 신호를 수신하는 단계; 상기 코드 블록을 복호하기 위해 상기 신호와 패리티 검사 행렬을 이용하여 LDPC (low-density parity-check) 복호를 수행하는 단계를 포함하며, 상기 LDPC 복호를 수행하는 단계는 사전에 정해진 복호 스케줄링 규칙에 따라 상기 패리티 검사 행렬의 적어도 일부 영역을 이용하여 복호를 수행함을 특징으로 한다.In order to solve the above problems, in a method of performing LDPC decoding by a receiver in a communication system of the present invention, the method comprising: receiving a signal corresponding to a transport block and a code block; And performing LDPC (low-density parity-check) decoding using the signal and a parity check matrix to decode the code block, and the performing of the LDPC decoding may be performed according to a predetermined decoding scheduling rule. It is characterized in that decoding is performed using at least a partial region of the parity check matrix.

상기와 같은 문제점을 해결하기 위한 본 발명의 통신시스템에서 송수신부; 및 전송 블록 및 코드 블록에 대응되는 신호를 수신하고, 상기 코드 블록을 복호하기 위해 상기 신호와 패리티 검사 행렬을 이용하여 LDPC (low density parity check) 복호를 수행하며, 상기 LDPC 복호를 수행하는 과정은 사전에 정해진 복호 스케줄링 규칙에 따라 상기 패리티 검사 행렬의 적어도 일부 영역을 이용하여 복호를 수행하도록 제어하는 제어부를 포함하는 것을 특징으로 한다. Transmitting and receiving unit in the communication system of the present invention for solving the above problems; And receiving a signal corresponding to a transport block and a code block, and performing LDPC (low density parity check) decoding using the signal and a parity check matrix to decode the code block, and performing the LDPC decoding And a controller for controlling to perform decoding using at least a partial region of the parity check matrix according to a predetermined decoding scheduling rule.

상기와 같은 문제점을 해결하기 위한 본 발명의 통신시스템에서 전송 블록 및 코드 블록에 대응되는 신호를 수신 및 처리하기 위한 수신기에 있어서, 상기 수신 신호로부터 LDPC 정보어 비트들, 제1 패리티 비트들, 제2 패리티 비트들에 대응되는 값들을 결정하여 LDPC 부호의 패리티 검사 행렬의 적어도 일부를 이용하여 복호를 수행하는 단계를 포함하며, 상기 LDPC 부호의 패리티 검사 행렬은, 상기 LDPC 정보어 비트들에 대응되는 제1 부분 행렬 및 상기 제1 패리티 비트들에 대응되고 차수가 2인 열들과 차수가 3인 열들로 구성된 제2 부분행렬을 포함하는 제1 파트와, 상기 LDPC 정보어 비트들에 대응되는 제3 부분 행렬과 상기 제1 패리티 비트들에 대응되는 제4 부분 행렬과 상기 제2 패리티 비트들에 대응되면서 항등 행렬인 제5 부분 행렬을 포함하는 제2 파트로 구성된 것을 특징으로 한다. In a receiver for receiving and processing a signal corresponding to a transmission block and a code block in a communication system of the present invention to solve the above problems, LDPC information word bits, first parity bits, and first 2 determining values corresponding to parity bits and performing decoding using at least a part of the parity check matrix of the LDPC code, wherein the parity check matrix of the LDPC code corresponds to the LDPC information bits. A first part including a first partial matrix and a second sub-matrix corresponding to the first parity bits and composed of columns of degree 2 and columns of degree 3, and a third corresponding to the LDPC information bits And a second part including a partial matrix, a fourth partial matrix corresponding to the first parity bits, and a fifth partial matrix, which is an identity matrix, corresponding to the second parity bits.

또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기의 디코딩 방법은 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계, 상기 신호에 기반하여 입력 비트의 수를 확인하는 단계, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계, 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며, 상기 레이어드 디코딩은 천공될 열 블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 적어도 하나에 상응하는 레이어에 대해 우선하여 디코딩되는 것을 특징으로 한다. In addition, the decoding method of the receiver of the present invention for solving the above problem includes receiving a signal corresponding to an input bit transmitted from a transmitter, checking the number of input bits based on the signal, and Checking the size of the code block based on the number, and performing layered decoding based on a parity check matrix corresponding to the size of the code block, wherein the layered decoding is a partial matrix corresponding to a column block to be punctured A layer corresponding to at least one of the row blocks of order 1 is decoded with priority.

또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기는 송수신부; 및 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하고, 상기 신호에 기반하여 입력 비트의 수를 확인하고, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하고, 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 제어부를 포함하며, 상기 레이어드 디코딩은 천공될 열 블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 적어도 하나에 상응하는 레이어에 대해 우선하여 디코딩되는 것을 특징으로 한다. In addition, the receiver of the present invention for solving the above problem includes a transceiver; And receiving a signal corresponding to the input bit transmitted from the transmitter, checking the number of input bits based on the signal, checking the size of the code block based on the number of input bits, and determining the size of the code block. And a control unit that performs layered decoding based on a corresponding parity check matrix, wherein the layered decoding takes precedence with respect to a layer corresponding to at least one of the row blocks of degree 1 in the partial matrix corresponding to the column block to be punctured. Characterized in that it is decoded.

또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기의 디코딩 방법은 수신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계, 상기 신호에 기반하여 입력 비트의 수를 확인하는 단계, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계; 및 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며, 상기 레이어드 디코딩은 하기의 디코딩 패턴에 기반하여 수행되는 것을 특징으로 한다. In addition, the decoding method of the receiver of the present invention for solving the above problem includes the steps of receiving a signal corresponding to an input bit transmitted from the receiver, checking the number of input bits based on the signal, and Checking the size of the code block based on the number; And performing layered decoding based on a parity check matrix corresponding to the size of the code block, wherein the layered decoding is performed based on the following decoding pattern.

패턴-1:Pattern-1:

[42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43, 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3][42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43 , 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3]

패턴-2:Pattern-2:

[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3]. [22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].

또한, 또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기에 있어서, 송수신부; 및 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하고, 상기 신호에 기반하여 입력 비트의 수를 확인하고, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하고, 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 제어부를 포함하는 것을 특징으로 한다. In addition, in the receiver of the present invention for solving the above problem, the transmission and reception unit; And receiving a signal corresponding to the input bit transmitted from the transmitter, checking the number of input bits based on the signal, checking the size of the code block based on the number of input bits, and determining the size of the code block. It characterized in that it comprises a control unit for performing layered decoding based on a corresponding parity check matrix.

패턴-1:Pattern-1:

[42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43, 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3][42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43 , 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3]

패턴-2:Pattern-2:

[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].

본 발명의 다양한 실시예에 따르면, LDPC 복호 스케줄링에 따라 효율적인 복호화 성능을 지원할 수 있다. 특히 레이어드(layered) 스케줄링에 기반한 LDPC 복호 방식을 적용할 경우에 복잡도의 증가 없이 LDPC 복호화 성능, 즉, 개선된 오류 정정 (error-correcting) 성능 또는 빠른 복호 수렴 (decoding convergence) 성능을 향상 시킬 수 있다. According to various embodiments of the present invention, efficient decoding performance may be supported according to LDPC decoding scheduling. In particular, when the LDPC decoding method based on layered scheduling is applied, LDPC decoding performance, that is, improved error-correcting performance or fast decoding convergence performance, can be improved without increasing complexity. .

도 1은 시스테메틱(systematic) LDPC 부호어 구조도이다.
도 2는 LDPC 부호의 그래프 표현 방법에 대해 도시한 도면이다.
도 3a 및 도 3b는 QC-LDPC 부호의 사이클 특성을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시 예에 따른 송신 장치 블록 구성도이다.
도 5는 본 발명의 일 실시 예에 따른 수신 장치 블록 구성도이다.
도 6a 및 도 6b는 LDPC 복호화를 위해 임의의 검사 노드와 변수 노드에서 메시지 패싱 동작을 나타낸 메시지 구조도이다.
도 7은 본 발명의 일 실시 예에 따른 LDPC 부호화부의 세부 구성을 설명하기 위한 블록도이다.
도 8은 본 발명의 일 실시 예에 따른 복호화 장치의 구성을 나타내는 블록도이다.
도 9는 본 발명의 다른 실시 예에 따른 LDPC 복호화부 구조도이다.
도 10은 본 발명의 일 실시 예에 따른 LDPC 복호화 장치에서 복호화 과정의 예시도이다.
도 11은 본 발명의 일 실시예에 따른 LDPC 및 CRC 부호에 기반한 복호화 과정의 예시도이다.
도 12는 본 발명의 일 실시 예에 따른 LDPC 부호화 과정의 예시도이다.
도 13은 본 발명의 일 실시 예에 따른 LDPC 복호화 과정의 예시도이다.
도 14는 LDPC 부호의 패리티 검사 행렬의 구조도의 예시도이다.
도 15는 본 발명에서 제안하는 LDPC 부호에 대한 패리티 검사 행렬의 예시도이다.
도 16은 본 발명에서 제안하는 LDPC 부호에 대한 패리티 검사 행렬의 다른 예시도이다.
도 17a 및 도 17b는 하나의 검사 노드에 천공된 비트 1개 또는 2개 연결된 경우를 각각 나타낸 예시도이다.
1 is a structural diagram of a systematic LDPC codeword.
2 is a diagram illustrating a method of representing a graph of an LDPC code.
3A and 3B are exemplary diagrams for explaining cycle characteristics of a QC-LDPC code.
4 is a block diagram of a transmission device according to an embodiment of the present invention.
5 is a block diagram of a receiving device according to an embodiment of the present invention.
6A and 6B are message structure diagrams showing a message passing operation in an arbitrary check node and a variable node for LDPC decoding.
7 is a block diagram illustrating a detailed configuration of an LDPC encoding unit according to an embodiment of the present invention.
8 is a block diagram illustrating a configuration of a decoding apparatus according to an embodiment of the present invention.
9 is a structural diagram of an LDPC decoder according to another embodiment of the present invention.
10 is an exemplary diagram of a decoding process in an LDPC decoding apparatus according to an embodiment of the present invention.
11 is an exemplary diagram of a decoding process based on LDPC and CRC codes according to an embodiment of the present invention.
12 is an exemplary diagram of an LDPC encoding process according to an embodiment of the present invention.
13 is an exemplary diagram of an LDPC decoding process according to an embodiment of the present invention.
14 is an exemplary diagram of a structure diagram of a parity check matrix of an LDPC code.
15 is an exemplary diagram of a parity check matrix for an LDPC code proposed in the present invention.
16 is another exemplary diagram of a parity check matrix for an LDPC code proposed in the present invention.
17A and 17B are exemplary diagrams illustrating a case in which one or two punctured bits are connected to one inspection node, respectively.

이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, in describing the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of users or operators. Therefore, the definition should be made based on the contents throughout the present specification.

본 발명의 주요한 요지는 유사한 기술적 배경을 가지는 여타의 시스템에도 본 발명의 범위를 크게 벗어나지 아니하는 범위에서 약간의 변형으로 적용 가능하며, 이는 본 발명의 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다. 참고로 통신시스템은 일반적으로 방송시스템의 의미를 포함하는 용어이나, 본 발명에서는 통신시스템 중에서 방송 서비스가 주요 서비스인 경우에는 방송시스템으로 보다 명확히 명명할 수도 있다.The main subject matter of the present invention can be applied to other systems having a similar technical background with slight modifications without significantly departing from the scope of the present invention, which is determined by a person skilled in the technical field of the present invention. It will be possible. For reference, a communication system is generally a term including the meaning of a broadcasting system, but in the present invention, when a broadcasting service is a major service among communication systems, it may be more clearly named as a broadcasting system.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments make the disclosure of the present invention complete, and the general knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to the possessor, and the invention is only defined by the scope of the claims. The same reference numerals refer to the same elements throughout the specification.

이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.In various embodiments of the present disclosure described below, a hardware approach is described as an example. However, since various embodiments of the present disclosure include technology using both hardware and software, various embodiments of the present disclosure do not exclude a software-based approach.

1960년대에 Gallager에 의해서 처음 소개된 저밀도 패리티 체크(Low Density Parity Check, 이하 LDPC) 부호는 당시 기술 수준에서 구현하기 어려운 복잡도로 인해 오랫동안 잊혀져 왔다. 하지만, 1993년 Berrou와 Glavieux, Thitimajshima에 의해 제안된 터보(turbo) 부호가 셰논(Shannon)의 채널 용량에 근접하는 성능을 보임에 따라 터보 부호의 성능과 특성에 대한 많은 해석이 이루어지면서 반복 복호(iterative decoding)와 그래프를 기반으로 하는 채널 부호화에 대한 많은 연구가 진행되었다. 이를 계기로 1990년대 후반에 LDPC 부호가 재연구되면서 LDPC 부호에 대응되는 태너(Tanner) 그래프 상에서 합-곱(sum-product) 알고리즘에 기반한 반복 복호(iterative decoding)를 적용하여 복호화를 수행하면 LDPC 부호 또한 셰논의 채널 용량에 근접하는 성능을 가지게 됨이 밝혀졌다. The Low Density Parity Check (LDPC) code, first introduced by Gallager in the 1960s, has long been forgotten due to the complexity that is difficult to implement at the technology level at the time. However, as the turbo code proposed by Berrou, Glavieux, and Thitimajshima in 1993 showed a performance close to the channel capacity of Shannon, many interpretations of the performance and characteristics of the turbo code were made, and iterative decoding ( Iterative decoding) and graph-based channel coding have been studied. As a result of this, when LDPC codes were re-researched in the late 1990s, the LDPC code was decoded by applying iterative decoding based on the sum-product algorithm on the Tanner graph corresponding to the LDPC code. It has also been found to have a performance close to the channel capacity of Chenon.

LDPC 부호는 일반적으로 패리티 검사 행렬(parity-check matrix)로 정의되며 태너 그래프로 통칭되는 이분(bipartite) 그래프를 이용하여 표현될 수 있다. 일반적으로 LDPC 부호는 패리티 검사 부호의 일종인데, 길이가 매우 긴 경우에 대한 패리티 검사 행렬에서 1의 개수의 비율(즉, density)이 매우 낮은 특성이 있기 때문에 'low-density' 패리티 검사 부호라 명명되었다. 따라서, 본 발명에서 편의상 LDPC 부호에 기반하여 제안된 기술들은 일반적인 패리티 검사 행렬 부호에 대해서 쉽게 확장할 수 있다. The LDPC code is generally defined as a parity-check matrix and can be expressed using a bipartite graph commonly referred to as a Tanner graph. In general, LDPC codes are a kind of parity check code, and are called'low-density' parity check codes because the ratio of the number of 1s (i.e., density) in the parity check matrix for the case of very long length is very low. Became. Therefore, for convenience in the present invention, techniques proposed based on LDPC codes can be easily extended to general parity check matrix codes.

도 1은 시스테메틱(systematic) LDPC 부호어 구조도를 도시한 도면이다.1 is a diagram showing the structure of a systematic LDPC codeword.

도 1에 따르면, LDPC 부호는 Kldpc 개 비트 혹은 심볼로 구성되어 있는 정보어(102)를 입력받아 부호화를 수행하여 Nldpc 개 비트 혹은 심볼로 구성되어 있는 부호어(100)(codeword)를 생성한다. 이하 설명의 편의를 위해, Kldpc 개 비트를 포함하는 정보어(102)를 입력받아 Nldpc 개 비트로 구성되는 부호어(100)가 생성되는 것으로 가정한다. 즉, Kldpc 개의 입력 비트인 정보어

Figure pat00001
(102)를 LDPC 부호화하면, 부호어
Figure pat00002
(100)가 생성된다. 즉, 정보어 및 부호어는 다수의 비트로 구성되어 있는 비트열이며, 정보어 비트 및 부호어 비트는 정보어 및 부호어를 구성하는 각각의 비트를 의미한다. 통상적으로 LDPC 부호화 비트가
Figure pat00003
와 같이 정보어를 포함하고 있을 경우 시스테메틱(systemetic) 부호라 한다. 여기에서,
Figure pat00004
는 패리티 비트(104)이고, 패리티 비트의 개수 Nparity는 Nparity=Nldpc - Kldpc 로 나타낼 수 있다.1, the LDPC code receives an information word 102 composed of K ldpc bits or symbols and performs encoding to generate a codeword 100 composed of N ldpc bits or symbols. do. For convenience of description below, it is assumed that an information word 102 including K ldpc bits is received and a codeword 100 composed of N ldpc bits is generated. That is, an information word that is K ldpc input bits
Figure pat00001
If (102) is LDPC coded, the codeword
Figure pat00002
(100) is generated. That is, the information word and the codeword are a bit string composed of a plurality of bits, and the information word bit and the codeword bit mean respective bits constituting the information word and the codeword. Typically, the LDPC coded bit is
Figure pat00003
If the information word is included, it is called a systemetic code. From here,
Figure pat00004
Is a parity bit 104, the number N parity of the parity bits is N = N parity ldpc - can be represented by K ldpc.

LDPC 부호는 선형 블록 부호(linear block code)의 일종으로 아래의 수학식 1과 같은 조건을 만족하는 부호어를 결정하는 과정을 포함한다.The LDPC code is a type of linear block code and includes a process of determining a codeword that satisfies the condition as shown in Equation 1 below.

[수학식 1][Equation 1]

Figure pat00005
Figure pat00005

여기에서,

Figure pat00006
이다.From here,
Figure pat00006
to be.

수학식 1에서, H는 패리티 검사 행렬, c는 부호어, ci는 부호어의 i 번째 비트, Nldpc는 LDPC 부호어 길이를 의미한다. 여기서 hi는 패리티 검사 행렬(H)의 i번째 열(column)을 의미한다. In Equation 1, H denotes a parity check matrix, c denotes a codeword, c i denotes the i-th bit of the codeword, and N ldpc denotes the LDPC codeword length. Here, h i means the i-th column of the parity check matrix H.

패리티 검사 행렬 H는 LDPC 부호어의 비트 개수와 동일한 Nldpc 개의 열(column)로 구성되어 있다. 수학식 1은 패리티 검사 행렬의 i 번째 열(hi)과 i 번째 부호어 비트 ci의 곱들의 합이 '0'이 됨을 의미하므로, i 번째 열(hi)은 i 번째 부호어 비트 ci와 관계가 있음을 의미한다.The parity check matrix H is composed of N ldpc columns equal to the number of bits of the LDPC codeword. Equation 1 means that the sum of the products of the i-th column (h i ) and the i-th codeword bit c i of the parity check matrix becomes '0', so the i-th column (h i ) is the i-th codeword bit c It means that it has a relationship with i.

도 2는 LDPC 부호의 그래프 표현 방법에 대해 도시한 도면이다. 2 is a diagram illustrating a method of representing a graph of an LDPC code.

도 2를 참조하여 LDPC 부호의 그래프 표현 방법에 대해 설명하기로 한다.A method of representing a graph of an LDPC code will be described with reference to FIG. 2.

도 2는 4 개의 행(row)와 8 개의 열(column)로 이루어진 LDPC 부호의 패리티 검사 행렬 H1의 일 예와 이를 태너 그래프(Tanner graph)로 도시한 도면이다. 도 2를 참조하면, 패리티 검사 행렬 H1의 열은 8개이므로 길이가 8인 부호어(codeword)를 생성하며, H1을 통해 생성된 부호는 LDPC 부호를 의미하며, 각 열은 부호화된 8 비트에 대응된다. FIG. 2 is a diagram illustrating an example of a parity check matrix H 1 of an LDPC code consisting of 4 rows and 8 columns, and a Tanner graph. Referring to FIG. 2, since there are 8 columns of a parity check matrix H 1 , a codeword having a length of 8 is generated, and a code generated through H1 means an LDPC code, and each column is a coded 8-bit code. Corresponds to.

도 2를 참조하면, 패리티 검사 행렬 H1을 기반으로 부호화 및 복호화하는 LDPC 부호의 태너 그래프는 8 개의 변수 노드(variable node)들 즉, x1(202), x2(204), x3(206), x4(208), x5(210), x6(212), x7(214), x8(216)와 4 개의 검사 노드(check node)(218, 220, 222, 224)들로 구성되어 있다. 여기서, LDPC 부호의 패리티 검사 행렬 H1의 i 번째 열과 j 번째 행은 각각 변수 노드 xi와 j 번째 검사 노드에 대응된다. 또한, LDPC 부호의 패리티 검사 행렬 H1의 i 번째 열과 j 번째 행이 교차하는 지점의 1의 값, 즉 0이 아닌 값의 의미는, 도 2와 같이 태너 그래프 상에서 변수 노드 xi와 j 번째 검사 노드를 연결하는 선분(edge)이 존재함을 의미한다. Referring to FIG. 2, a Tanner graph of an LDPC code encoded and decoded based on a parity check matrix H 1 shows eight variable nodes, that is, x 1 (202), x 2 (204), and x 3 ( 206), x 4 (208), x 5 (210), x 6 (212), x 7 (214), x 8 (216) and 4 check nodes (218, 220, 222, 224) It consists of Here, the i-th column and j-th row of the parity check matrix H 1 of the LDPC code correspond to the variable nodes x i and j-th check nodes, respectively. In addition, the value of 1 at the intersection of the i-th column and the j-th row of the parity check matrix H 1 of the LDPC code, that is, the meaning of a non-zero value, is the variable node x i and the j-th check on the Tanner graph as shown in FIG. It means that there is an edge connecting the nodes.

LDPC 부호의 태너 그래프에서 변수 노드와 검사 노드의 차수(degree)는 각 노드들에 연결되어 있는 선분의 개수를 의미하며, 이는 LDPC 부호의 패리티 검사 행렬에서 해당 노드에 대응되는 열 또는 행에서 0이 아닌 원소(entry)들의 개수와 동일하다. 예를 들어, 도 2에서 변수 노드들 x1(202), x2(204), x3(206), x4(208), x5(210), x6(212), x7(214), x8(216)의 차수는 각각 순서대로 4, 3, 3, 3, 2, 2, 2, 2가 되며, 검사 노드들(218, 220, 222, 224)의 차수는 각각 순서대로 6, 5, 5, 5가 된다. 또한, 도 2의 변수 노드에 대응되는 도 2의 패리티 검사 행렬 H1의 각각의 열에서 0이 아닌 원소들의 개수는 상술한 차수들 4, 3, 3, 3, 2, 2, 2, 2와 순서대로 일치하며, 도 2의 검사 노드들에 대응되는 도 2의 패리티 검사 행렬 H1의 각각의 행에서 0이 아닌 원소들의 개수는 상술한 차수들 6, 5, 5, 5와 순서대로 일치한다. 이러한 이유로 각 변수 노드의 차수는 열 차수 (column degree) 또는 열 무게 (column weight)라고도 하며, 검사 노드의 차수는 행 차수 (row degree) 또는 행 무게 (row weight)라고도 한다. In the Tanner graph of the LDPC code, the degree of the variable node and the check node means the number of line segments connected to each node, and this is 0 in the column or row corresponding to the node in the parity check matrix of the LDPC code. It is equal to the number of non-entries. For example, in FIG. 2, variable nodes x 1 (202), x 2 (204), x 3 (206), x 4 (208), x 5 (210), x 6 (212), x 7 (214 ), x 8 (216) has the order of 4, 3, 3, 3, 2, 2, 2, 2, respectively, and the order of the test nodes 218, 220, 222, 224 is 6 in order, respectively. , 5, 5, 5. In addition, the number of non-zero elements in each column of the parity check matrix H 1 of FIG. 2 corresponding to the variable node of FIG. 2 is determined by the above-described orders 4, 3, 3, 3, 2, 2, 2, 2, and The number of non-zero elements in each row of the parity check matrix H 1 of FIG. 2 corresponding to the check nodes of FIG. 2 matches in order with the above-described orders 6, 5, 5, and 5 . For this reason, the degree of each variable node is also referred to as a column degree or column weight, and the order of a check node is also referred to as a row degree or row weight.

정리하면, LDPC 부호의 패리티 검사 행렬에서 차수는 열 또는 행에 있는 0이 아닌 원소(entry)의 개수를 의미한다. 또한, 패리티 검사 행렬에서 하나의 열에 0이 아닌 원소의 개수를 해당 열의 차수 또는 열의 무게라 표현하며, 하나의 행에 0이 아닌 원소의 개수를 해당 행의 차수 또는 행의 무게라 표현할 수 있다. 또한 패리티 검사 행렬의 원소들이나 태너 그래프 상의 선분 등은 LDPC 복호기에서 변수 노드 프로세서(variable node processor, VNU) 또는 검사 노드 프로세서(check node processor, CNU) 내부에서 하드웨어적으로 연결되어 있는 것을 표현할 수도 있으며, 선, 연결선, 엣지, interconnection network, shift network 등과 같이 다양한 방식으로 다르게 표현될 수도 있다. 이러한 interconnection network들은 LDPC 복호기의 노드 프로세서 간에 LDPC 복호를 위해 적절한 값들을 입출력하는데 사용된다. In summary, in the parity check matrix of the LDPC code, the order means the number of non-zero elements in a column or row. In addition, in the parity check matrix, the number of non-zero elements in one column may be expressed as the order of the column or the weight of the column, and the number of non-zero elements in one row may be expressed as the order of the row or the weight of the row. In addition, the elements of the parity check matrix or the line segments on the Tanner graph can be expressed as hardware-connected inside the variable node processor (VNU) or check node processor (CNU) in the LDPC decoder. It may be expressed differently in various ways such as a line, a connection line, an edge, an interconnection network, and a shift network. These interconnection networks are used to input/output appropriate values for LDPC decoding between node processors of the LDPC decoder.

LDPC 부호는 도 2에서 나열한 bipartite 그래프 상에서 합곱(sum-product) 알고리즘(algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 사용하여 복호할 수 있다. 여기서, 합곱 알고리즘은 메시지 패싱 알고리즘(message passing algorithm)의 일종이며, 메시지 패싱 알고리즘은 이분 그래프 상에서 에지를 통해 메시지들을 교환하고, 변수 노드 혹은 검사 노드로 입력되는 메시지들로부터 출력 메시지를 계산하여 업데이트하는 알고리즘을 나타낸다.The LDPC code may be decoded using an iterative decoding algorithm based on a sum-product algorithm on the bipartite graph listed in FIG. 2. Here, the summation algorithm is a kind of message passing algorithm, and the message passing algorithm exchanges messages through edges on a bipartite graph, and calculates and updates an output message from messages input to a variable node or a check node. Represents the algorithm.

여기에서, i 번째 변수 노드의 메시지를 기반으로 i 번째 부호화 비트의 값을 결정할 수 있다. i 번째 부호화 비트의 값은 경판정(hard decision)과 연판정(soft decision) 모두 가능하다. 그러므로, LDPC 부호어의 i 번째 비트인 ci의 성능은 태너 그래프의 i 번째 변수 노드의 성능에 대응되며, 이는 패리티 검사 행렬의 i 번째 열의 1의 위치 및 개수에 따라 결정될 수 있다. 다시 말해, 부호어의 Nldpc 개의 부호어 비트들의 성능은 패리티 검사 행렬의 1의 위치 및 개수에 의해 성능이 좌우 될 수 있으며, 이는 LDPC 부호의 성능은 패리티 검사 행렬에 따라 많은 영향을 받음을 의미한다. 따라서 우수한 성능을 갖는 LDPC 부호를 설계 하기 위해서는 좋은 패리티 검사 행렬을 설계하는 방법이 필요하다. Here, the value of the i-th coded bit may be determined based on the message of the i-th variable node. The value of the i-th coded bit can be both a hard decision and a soft decision. Therefore, the i-th bit of c i the performance of the LDPC codeword corresponds to a performance of the i-th variable node in a Tanner graph, which can be determined according to the position and number of the i-th column of the first parity check matrix. In other words, the performance of the N ldpc codeword bits of the codeword can be influenced by the position and number of 1 in the parity check matrix, which means that the performance of the LDPC code is greatly affected by the parity check matrix. do. Therefore, in order to design an LDPC code with excellent performance, a method of designing a good parity check matrix is required.

통신 및 방송 시스템에서 사용되는 패리티 검사 행렬은 구현의 용이성을 위해 통상적으로 준순환(quasi-cyclic) 형태의 패리티 검사 행렬을 사용하는 준순환 LDPC 부호(또는 QC-LDPC 부호, 이하 QC-LDPC 부호)가 사용된다. The parity check matrix used in communication and broadcasting systems is a quasi-cyclic LDPC code (or QC-LDPC code, hereinafter QC-LDPC code) using a parity check matrix in a generally quasi-cyclic form for ease of implementation. Is used.

QC-LDPC 부호는 작은 정사각 행렬의 형태를 가지는 0-행렬(zero matrix)이나 순환 순열 행렬들(circulant permutation matrices)로 구성된 패리티 검사 행렬을 가지는 것을 특징으로 한다. 이 때, 순열 행렬이란 각 행이나 열이 하나의 1만을 포함하고, 나머지 모든 원소가 0인 행렬을 의미한다. 또한, 순환 순열 행렬이란, 항등 행렬의 각 원소들을 오른쪽 또는 왼쪽으로 순환 이동 시킨 행렬을 의미한다.The QC-LDPC code is characterized by having a zero matrix in the form of a small square matrix or a parity check matrix composed of circulant permutation matrices. In this case, the permutation matrix refers to a matrix in which each row or column contains only one 1 and all other elements are 0. In addition, the cyclic permutation matrix refers to a matrix in which each element of the identity matrix is cyclically shifted to the right or left.

이하에서는, QC-LDPC 부호에 대해서 구체적으로 설명한다. Hereinafter, the QC-LDPC code will be described in detail.

먼저, 수학식 2와 같이

Figure pat00007
크기의 순환 순열 행렬
Figure pat00008
을 정의한다. 여기서
Figure pat00009
는 행렬 상기 행렬 P에서의 i번째 행(row), j번째 열(column)의 원소(entry)를 의미한다.(0
Figure pat00010
i, j < L) First, as in Equation 2
Figure pat00007
Cyclic permutation matrix of size
Figure pat00008
Is defined. here
Figure pat00009
Denotes the entry of the i-th row and the j-th column of the matrix P. (0
Figure pat00010
i, j <L)

[수학식 2][Equation 2]

Figure pat00011
Figure pat00011

상기와 같이 정의된 순열 행렬 P에 대해서

Figure pat00012
(0 ≤ i < L)는
Figure pat00013
크기의 항등 행렬(identity matrix)의 각 원소들을 i 번 만큼 오른쪽 방향으로 순환 이동(circular shift) 시킨 형태의 순환 순열 행렬임을 알 수 있다. For the permutation matrix P defined as above
Figure pat00012
(0 ≤ i <L) is
Figure pat00013
It can be seen that it is a cyclic permutation matrix in a form in which each element of an identity matrix of size is cyclically shifted to the right by i times.

QC-LDPC 부호의 패리티 검사 행렬 H는 다음 수학식 3과 같은 형태로 나타낼 수 있다. The parity check matrix H of the QC-LDPC code can be expressed in the form of Equation 3 below.

[수학식 3][Equation 3]

Figure pat00014
Figure pat00014

만일

Figure pat00015
Figure pat00016
크기의 0-행렬이라 정의할 경우, 상기 수학식 3에서 순환 순열 행렬 또는 0-행렬의 각 지수
Figure pat00017
는 {-1, 0, 1, 2, ..., L-1} 값 중에 하나를 가지게 된다. 또한 상기 수학식 3의 패리티 검사 행렬 H는 열 블록(column block)이 n개, 행 블록이 m개이므로,
Figure pat00018
크기를 가지게 됨을 알 수 있다. if
Figure pat00015
of
Figure pat00016
When defined as a 0-matrix of size, each exponent of a cyclic permutation matrix or 0-matrix in Equation 3 above
Figure pat00017
Has one of the values {-1, 0, 1, 2, ..., L-1}. In addition, since the parity check matrix H of Equation 3 has n column blocks and m row blocks,
Figure pat00018
You can see that it has a size.

상기 수학식 3의 패리티 검사 행렬이 완전 계수(full rank)를 가진다면, 상기 패리티 검사 행렬에 대응되는 QC-LDPC 부호의 정보어 비트의 크기는 (n-m)L 이 됨은 자명하다. 편의상 정보어 비트에 대응되는 (n-m)개의 열 블록을 정보어 열 블록이라 부르고, 나머지 패리티 비트에 대응되는 m개의 열 블록을 패리티 열 블록이라 부른다. 상기 수학식 3의 패리티 검사 행렬이 완전 계수를 가지지 않을 경우에는 상기 정보어 비트는 (n-m)L 보다 크게 된다. If the parity check matrix of Equation 3 has a full rank, it is obvious that the size of the information word bit of the QC-LDPC code corresponding to the parity check matrix is (n-m)L. For convenience, (n-m) column blocks corresponding to an information word bit are called an information word column block, and m column blocks corresponding to the remaining parity bits are called a parity column block. When the parity check matrix of Equation 3 does not have a perfect coefficient, the information word bit becomes larger than (n-m)L.

통상적으로 상기 수학식 3의 패리티 검사 행렬에서 각 순환 순열 행렬 및 0-행렬을 각각 1과 0으로 치환(replace)하여 얻은

Figure pat00019
크기의 이진(binary) 행렬을 패리티 검사 행렬 H의 모행렬(mother matrix) 또는 기본 행렬 (base matrix) M(H)라 하고, 각 순환 순열 행렬 또는 0-행렬의 지수를 선택하여 수학식 4와 같이 얻은
Figure pat00020
크기의 정수 행렬을 패리티 검사 행렬 H의 지수 행렬 (exponent matrix) E(H)라 한다. Typically, obtained by replacing each cyclic permutation matrix and 0-matrix with 1 and 0 in the parity check matrix of Equation 3, respectively.
Figure pat00019
A binary matrix of size is referred to as the mother matrix of the parity check matrix H or the base matrix M(H), and each cyclic permutation matrix or the exponent of the 0-matrix is selected, as shown in Equation 4 Obtained together
Figure pat00020
An integer matrix of size is referred to as an exponent matrix E(H) of the parity check matrix H.

[수학식 4][Equation 4]

Figure pat00021
Figure pat00021

결과적으로 지수 행렬에 포함되어 있는 정수 1개는 패리티 검사 행렬에서의 순환 순열 행렬 또는 영-행렬에 대응되므로 상기 지수 행렬은 편의상 정수로 이루어진 수열들로 표현될 수도 있다. 일반적으로 패리티 검사 행렬은 지수 행렬뿐만 아니라 대수적으로 동일한 특성을 표현할 수 있는 다양한 수열로도 표현 가능하다. 본 발명에서는 편의상 패리티 검사 행렬을 지수 행렬 또는 패리티 검사 행렬 내에 있는 1의 위치를 나타내는(indicate) 수열 등으로 표현하였으나, 패리티 검사 행렬에 포함되어 있는 1 또는 0의 위치를 구분할 수 있는 수열 표기 법은 다양하므로, 본 명세서에 표현한 방법에 국한되지 않고 대수적으로 동일한 효과를 나타내는 다양한 수열의 형태로 나타낼 수 있다. 상기 수열은 다른 수열과 구분하기 위하여 LDPC 수열 또는 LDPC 부호 수열 또는 LDPC matrix 수열 또는 패리티 검사 행렬 수열 등 다양한 방식으로 부를 수 있다. As a result, since one integer included in the exponential matrix corresponds to a cyclic permutation matrix or a zero-matrix in the parity check matrix, the exponent matrix may be expressed as a sequence of integers for convenience. In general, the parity check matrix can be expressed not only by an exponential matrix, but also by various sequences that can express the same characteristics algebraically. In the present invention, for convenience, the parity check matrix is expressed as an exponential matrix or a sequence indicating the position of 1 in the parity check matrix, but a sequence notation method capable of distinguishing the position of 1 or 0 included in the parity check matrix is Since it is diverse, it is not limited to the method expressed in the present specification, and may be expressed in the form of various sequences showing the same effect algebraically. The sequence may be called in various ways, such as an LDPC sequence, an LDPC code sequence, an LDPC matrix sequence, or a parity check matrix sequence in order to distinguish it from other sequences.

또한 디바이스 상의 송수신 장치에서도 패리티 검사 행렬을 직접 생성하여 LDPC 부호화 및 복호화를 수행할 수도 있지만, 구현 상의 특징에 따라 상기 패리티 검사 행렬과 대수적으로 동일한 효과를 내는 지수 행렬이나 수열을 이용하여 LDPC 부호화 및 복호화를 수행할 수도 있다. 따라서 본 발명에서 편의상 패리티 검사 행렬을 이용한 부호화 및 복호화에 대해서 설명하고 있지만, 실제 디바이스 상에서는 상기 패리티 검사 행렬과 동일한 효과를 얻을 수 있는 다양한 방법을 통해 구현 가능함을 고려하고 있음을 밝혀둔다. In addition, LDPC encoding and decoding may be performed by directly generating the parity check matrix in the transmitting and receiving device on the device, but LDPC encoding and decoding using an exponential matrix or sequence that has the same effect algebraically as the parity check matrix according to implementation characteristics. You can also do Therefore, in the present invention, for convenience, encoding and decoding using a parity check matrix is described, but it should be noted that it is considered that it can be implemented through various methods capable of obtaining the same effect as the parity check matrix on an actual device.

참고로 대수적으로 동일한 효과란, 서로 다른 두 개 이상의 표현에 대해서 논리적 또는 수학적으로 서로 간에 완벽하게 동일함을 설명 가능하거나 변환 가능함을 의미한다. For reference, the algebraically the same effect means that it is possible to explain or convert two or more different expressions that are logically or mathematically identical to each other.

본 발명에서는 편의상 하나의 블록에 대응되는 순환 순열 행렬이 1 개인 경우만 설명하였으나, 이하 하나의 블록에 여러 개의 순환 순열 행렬이 포함된 경우에도 동일한 발명이 적용될 수 있다. 예를 들어 다음 수학식 5와 같이 하나의 i 번째 행 블록 및 j 번째 열 블록의 위치에 2 개의 순환 순열 행렬

Figure pat00022
의 합으로 포함되어 있을 때, 그 지수 행렬은 수학식 6과 같이 나타낼 수 있다. 상기 수학식 6을 살펴보면, 상기 복수 개의 순환 순열 행렬 합이 포함된 행 블록 및 열 블록에 대응되는 i 번째 행 및 j 번째 열에 2 개의 정수가 대응되는 행렬임을 알 수 있다. In the present invention, for convenience, only one cyclic permutation matrix corresponding to one block has been described, but the same invention may be applied even when multiple cyclic permutation matrices are included in one block. For example, two cyclic permutation matrices at the positions of one i-th row block and j-th column block as shown in Equation 5 below
Figure pat00022
When included as the sum of, the exponential matrix can be expressed as in Equation 6. Referring to Equation 6, it can be seen that two integers correspond to the i-th row and the j-th column corresponding to the row block and column block including the sum of the plurality of cyclic permutation matrices.

[수학식 5][Equation 5]

Figure pat00023
Figure pat00023

[수학식 6][Equation 6]

Figure pat00024
Figure pat00024

상기 실시 예와 같이 일반적으로 QC-LDPC 부호는 패리티 검사 행렬에서 하나의 행 블록 및 열 블록에 복수 개의 순환 순열 행렬이 대응될 수 있으나 본 발명에서는 편의상 하나의 블록에 하나의 순환 순열 행렬이 대응되는 경우에 대해서만 설명하지만, 발명의 요지는 그에 한정되지 않는다. 참고로 이와 같이 하나의 행 블록 및 열 블록에 복수 개의 순환 순열 행렬이 중복되어 있는

Figure pat00025
크기의 행렬을 순환 행렬(circulant matrix 또는 circulant)이라 한다.In general, as in the above embodiment, in the QC-LDPC code, a plurality of cyclic permutation matrices may correspond to one row block and a column block in the parity check matrix, but in the present invention, one cyclic permutation matrix corresponds to one block. Only the case will be described, but the gist of the invention is not limited thereto. For reference, in this way, a plurality of cyclic permutation matrices are duplicated in one row block and column block.
Figure pat00025
A matrix of size is called a circulant matrix or circulant.

한편, 상기 수학식 5 및 수학식 6의 패리티 검사 행렬 및 지수 행렬에 대한 모행렬 또는 기본행렬은 상기 수학식 3에서 사용된 정의와 유사하게 각 순환 순열 행렬 및 0-행렬을 각각 1과 0으로 치환(replace)하여 얻은 이진(binary) 행렬을 의미하는데, 하나의 블록에 포함된 복수 개의 순환 순열 행렬의 합 (즉, 순환 행렬) 또한 단순히 1로 치환한다. On the other hand, the parent matrix or the basic matrix for the parity check matrix and the exponential matrix in Equation 5 and Equation 6 is similar to the definition used in Equation 3, and each cyclic permutation matrix and 0-matrix are respectively 1 and 0. It means a binary matrix obtained by replacing, and the sum of a plurality of cyclic permutation matrices included in one block (ie, cyclic matrix) is also simply replaced by 1.

LDPC 부호의 성능은 패리티 검사 행렬에 따라 결정되기 때문에 우수한 성능을 갖는 LDPC 부호를 위해 패리티 검사 행렬을 설계하는 것이 필요하다. 또한 다양한 입력 길이와 부호율을 지원할 수 있는 LDPC 부호화 또는 복호화 방법이 필요하다.Since the performance of the LDPC code is determined according to the parity check matrix, it is necessary to design a parity check matrix for the LDPC code having excellent performance. In addition, there is a need for an LDPC encoding or decoding method capable of supporting various input lengths and code rates.

리프팅(Lifting)은 QC-LDPC 부호의 효율적인 설계를 위해서 사용될 뿐만 아니라, 주어진 지수 행렬로부터 다양한 길이의 패리티 검사 행렬을 생성하거나 LDPC 부호어를 생성하기 위해서 사용되는 방법을 의미한다. 즉, 상기 리프팅은 주어진 작은 모행렬로부터 순환 순열 행렬 또는 0-행렬의 크기를 결정하는 L 값을 특정한 규칙에 따라 설정함으로써 효율적으로 매우 큰 패리티 검사 행렬을 설계하는데 적용되거나, 주어진 지수 행렬 또는 그에 대응되는 수열에 적절한 L 값을 적용함으로써 다양한 길이의 패리티 검사 행렬을 생성하거나 LDPC 부호어를 생성하는 방법을 의미한다. Lifting is not only used for efficient design of QC-LDPC codes, but also refers to a method used to generate a parity check matrix of various lengths from a given exponential matrix or to generate an LDPC codeword. That is, the lifting is applied to efficiently design a very large parity check matrix by setting the L value that determines the size of a cyclic permutation matrix or 0-matrix from a given small parent matrix according to a specific rule, or a given exponential matrix or corresponding thereto. It refers to a method of generating a parity check matrix of various lengths or generating an LDPC codeword by applying an appropriate L value to the sequence.

기존 리프팅 방법과 이렇게 리프팅을 통해 설계된 QC-LDPC 부호의 특징을 다음과 같은 참조문헌 [Myung2006]을 참고하여 간단히 설명한다. The existing lifting method and the characteristics of the QC-LDPC code designed through this lifting will be briefly described with reference to the following reference [Myung2006].

Reference [Myung2006]Reference [Myung2006]

S. Myung, K. Yang, and Y. Kim, "Lifting Methods for Quasi-Cyclic LDPC Codes," IEEE Communications Letters. vol. 10, pp. 489-491, June 2006.S. Myung, K. Yang, and Y. Kim, "Lifting Methods for Quasi-Cyclic LDPC Codes," IEEE Communications Letters. vol. 10, pp. 489-491, June 2006.

먼저 LDPC 부호 C0가 주어져 있을 때 리프팅 방법을 통해 설계될 S개의 QC-LDPC 부호를 C1, ..., CS라 하고, 상기 각 QC-LDPC 부호의 패리티 검사 행렬의 행블록 및 열블록의 크기에 해당하는 값은 Lk라 한다. 여기서 C0는 C1, ..., CS 부호의 모행렬을 패리티 검사 행렬로 가지는 가장 작은 LDPC 부호에 해당하며 행블록 및 열블록의 크기에 해당하는 L0 값은 1이다. 또, 편의상 각 부호 Ck의 패리티 검사 행렬

Figure pat00026
Figure pat00027
크기의 지수 행렬
Figure pat00028
을 가지며 각 지수
Figure pat00029
들은 {-1, 0, 1, 2, ..., Lk - 1} 값 중에 하나로 선택된다. First, when the LDPC code C 0 is given, the S QC-LDPC codes to be designed through the lifting method are C 1 , ..., C S , and the row blocks and column blocks of the parity check matrix of each of the QC-LDPC codes. The value corresponding to the size of is called L k. Here, C 0 corresponds to the smallest LDPC code having the parent matrix of C 1 , ..., C S code as a parity check matrix, and the L 0 value corresponding to the size of the row block and the column block is 1. Also, for convenience, the parity check matrix of each code C k
Figure pat00026
Is
Figure pat00027
Exponential matrix of magnitude
Figure pat00028
And each exponent
Figure pat00029
Are selected as one of the values {-1, 0, 1, 2, ..., L k-1}.

기존 리프팅 방법은 C0 -> C1 ->...-> CS와 같은 단계로 이루어지며 Lk+1 = qk+1Lk (qk+1은 양의 정수, k=0,1,..., S-1)와 같은 조건을 만족하는 특징을 가진다. 또한 리프팅 과정의 특성에 의해 Cs의 패리티 검사 행렬

Figure pat00030
만 저장하고 있으면 리프팅 방식에 따라 다음 수학식 7을 이용하여 상기 QC-LDPC 부호 C0, C1, ..., CS를 모두 나타낼 수 있다.Existing lifting method consists of the same steps as C 0 -> C 1 ->...-> C S and L k+1 = q k+1 L k (q k+1 is a positive integer, k=0, It has features that satisfy the same conditions as 1,..., S-1). Also, the parity check matrix of C s
Figure pat00030
If only is stored, all of the QC-LDPC codes C 0 , C 1 , ..., C S can be expressed using Equation 7 below according to the lifting method.

[수학식 7][Equation 7]

Figure pat00031
Figure pat00031

또는 or

[수학식 8][Equation 8]

Figure pat00032
Figure pat00032

이와 같이 C0로부터 보다 큰 QC-LDPC 부호 C1, ..., CS 등을 설계하는 방법뿐만 아니라 큰 부호 Ck로부터 수학식 7 또는 수학식 8과 같이 적절한 방법을 이용하여 작은 부호 Ci(i=k-1, k-2, … 1, 0)를 생성하는 방법을 리프팅이라 부른다. In this way, not only a method of designing a larger QC-LDPC code C 1 , ..., C S from C 0 , but also a small code C i using an appropriate method such as Equation 7 or Equation 8 from the large code C k The method of creating (i=k-1, k-2,… 1, 0) is called lifting.

상기 수학식 7 또는 8의 리프팅 방식은 각 QC-LDPC 부호 Ck의 패리티 검사 행렬에서 행블록 또는 열블록의 크기에 해당하는 Lk 들이 서로 배수 관계(multiple) 를 가지게 되어, 지수 행렬 또한 특정 방식에 의해 선택된다. 이와 같은 기존 리프팅 방식은 리프팅을 통해 설계된 각 패리티 검사 행렬의 대수적 또는 그래프 특성을 좋게 하여 오류 마루(error floor) 특성을 개선한 QC-LDPC 부호를 쉽게 설계할 수 있게 돕는다. In the lifting method of Equation 7 or 8, in the parity check matrix of each QC-LDPC code C k , L k corresponding to the size of the row block or the column block have a multiple relationship with each other, so that the exponential matrix is also a specific method. Is selected by Such an existing lifting method improves the algebraic or graph characteristics of each parity check matrix designed through lifting, thereby helping to easily design a QC-LDPC code with improved error floor characteristics.

일반적으로 리프팅은 수학식 4의 지수 행렬을 다양한 L 값에 대해 그 원소들의 값들을 변경하여 LDPC 부호화 및 복호화에 사용하는 것으로 생각할 수도 있다. 예를 들어, 상기 수학식 4의 지수 행렬을

Figure pat00033
라 하고, L 값에 따라 변환된 지수 행렬을
Figure pat00034
이라 할 때 일반적으로 다음과 수학식 9와 같은 변환식이 적용될 수 있다. In general, lifting may be considered as using the exponential matrix of Equation 4 for LDPC encoding and decoding by changing the values of the elements for various L values. For example, the exponential matrix of Equation 4
Figure pat00033
And the exponential matrix transformed according to the L value
Figure pat00034
In this case, in general, a transformation equation such as the following Equation 9 may be applied.

[수학식 9][Equation 9]

Figure pat00035
Figure pat00035

상기 수학식 9에서

Figure pat00036
는 다양한 형태로 정의할 수 있는데 예를 들면 다음 수학식 10과 같은 정의들을 사용할 수도 있다. In Equation 9
Figure pat00036
May be defined in various forms, for example, definitions such as the following Equation 10 may be used.

[수학식 10][Equation 10]

Figure pat00037
Figure pat00037

상기 수학식 10에서 mod(a,b)는 a에 대한 모듈로-b 연산을 의미하며, D는 사전에 정의된 양의 정수인 상수를 의미한다. In Equation 10, mod(a,b) refers to a modulo-b operation for a, and D refers to a constant that is a positive integer defined in advance.

참고로 상기 수학식 9의 변환식에서 변환식 f를 적용하는 기준을 편의상 0으로 나타내었으나 그 기준 값은 지원하고자 하는 블록 크기 L 값에 따라 다르게 설정될 수 있다. 또한 지수 행렬 또는 LDPC 수열의 표현에 있어서 0 행렬에 대응되는 지수를 처음부터 배제하여 정의할 경우에는 수학식 9에서 지수가 0 보다 작은 값들에 대한 규칙은 생략할 수 있다. For reference, the criterion to which the transform equation f is applied in the transform equation of Equation 9 is indicated as 0 for convenience, but the reference value may be set differently according to the value of the block size L to be supported. In addition, when the exponent corresponding to the 0 matrix is excluded from the beginning in the expression of the exponent matrix or the LDPC sequence, the rule for values having an exponent less than 0 in Equation 9 may be omitted.

본 발명의 다른 실시 예로서 정해진 하나의 기본 행렬 상에서 복수 개의 지수 행렬 또는 LDPC 수열에 기반하여 LDPC 부호화 및 복호화를 적용하는 경우에 대해서 설명한다. 즉, 기본 행렬은 하나로 고정되어 있으며, 상기 기본 행렬 상에서 정의된 LDPC 부호의 지수 행렬 또는 수열 등을 결정하고, 상기 지수 행렬 또는 수열로부터 각 블록 크기 그룹에 포함된 블록 크기에 맞게 리프팅을 적용함으로써 가변 길이의 LDPC 부호화 및 복호화가 수행된다. 이러한 방식은 LDPC 부호의 지수 행렬 또는 LDPC 수열을 구성하는 원소 또는 숫자들은 서로 다른 값을 가질 수 있지만, 해당 원소 또는 숫자들의 위치는 기본 행렬 상에서 정확히 일치하는 특징을 가진다. 이와 같이 지수 행렬 또는 LDPC 수열들은 각각 순환 순열 행렬의 지수, 즉, 비트들에 대한 일종의 순환 시프트(circular shift) 값을 의미하는데, 원소 또는 숫자들의 위치를 모두 동일하게 설정함으로써 해당 순환 순열 행렬에 대응되는 비트들의 위치를 파악하기가 용이하다. 참고로 지수 행렬 또는 LDPC 수열은 블록 크기(Z)에 대응되는 비트들의 순환 시프트 값에 대응되기 때문에 상기 지수 행렬은 시프트 행렬 (shift matrix) 또는 시프트 값 행렬(shift value matrix) 또는 시프트 수열 (shift sequence) 또는 시프트 값 수열 (shift value sequence) 등과 같이 다양하게 명명할 수 있다. As another embodiment of the present invention, a case in which LDPC encoding and decoding is applied based on a plurality of exponential matrices or LDPC sequences on one determined basic matrix will be described. That is, the basic matrix is fixed to one, and it is variable by determining an exponential matrix or sequence of LDPC codes defined on the basic matrix, and applying a lifting according to the block size included in each block size group from the exponential matrix or sequence. LDPC encoding and decoding of the length are performed. In this method, elements or numbers constituting an exponent matrix of an LDPC code or an LDPC sequence may have different values, but the positions of the corresponding elements or numbers are accurately matched on the basic matrix. As described above, the exponential matrix or LDPC sequence means the index of the cyclic permutation matrix, that is, a kind of cyclic shift value for bits, and corresponds to the corresponding cyclic permutation matrix by setting the positions of all elements or numbers equally. It is easy to grasp the positions of the bits to be used. For reference, since an exponential matrix or LDPC sequence corresponds to a cyclic shift value of bits corresponding to the block size (Z), the exponent matrix is a shift matrix, a shift value matrix, or a shift sequence. ) Or a shift value sequence.

지원하고자 하는 블록 크기(Z)를 다음 수학식 11과 같이 복수 개의 블록 크기 그룹 (또는 집합)으로 구분하자. 상기 블록 크기(Z)는 LDPC 부호의 패리티 검사 행렬에서 순환 순열 행렬 또는 순환 행렬의 크기 ZxZ에 대응되는 값임에 유의한다. Let us divide the block size (Z) to be supported into a plurality of block size groups (or sets) as shown in Equation 11 below. Note that the block size (Z) is a value corresponding to the size ZxZ of the cyclic permutation matrix or the cyclic matrix in the parity check matrix of the LDPC code.

[수학식 11][Equation 11]

Z1 = {2, 4, 8, 16, 32, 64, 128, 256}Z1 = {2, 4, 8, 16, 32, 64, 128, 256}

Z2 = {3, 6, 12, 24, 48, 96, 192, 384}Z2 = {3, 6, 12, 24, 48, 96, 192, 384}

Z3 = {5, 10, 20, 40, 80, 160, 320}Z3 = {5, 10, 20, 40, 80, 160, 320}

Z4 = {7, 14, 28, 56, 112, 224}Z4 = {7, 14, 28, 56, 112, 224}

Z5 = {9, 18, 36, 72, 144, 288}Z5 = {9, 18, 36, 72, 144, 288}

Z6 = {11, 22, 44, 88, 176, 352}Z6 = {11, 22, 44, 88, 176, 352}

Z7 = {13, 26, 52, 104, 208}Z7 = {13, 26, 52, 104, 208}

Z8 = {15, 30, 60, 120, 240}Z8 = {15, 30, 60, 120, 240}

상기 수학식 11은 일례일 뿐이며, 상기 수학식 11의 블록 크기 그룹에 포함된 모든 블록 크기(Z) 값을 사용할 수도 있으며, 다음 수학식 12와 같이 적절한 부분 집합에 포함되는 블록 크기 값을 사용할 수도 있으며, 상기 수학식 11 또는 수학식 12의 블록 크기 그룹(또는 집합)에 적절한 값들을 추가 또는 제외하여 사용할 수도 있다. Equation 11 is only an example, and all block size (Z) values included in the block size group of Equation 11 may be used, or block size values included in an appropriate subset as shown in Equation 12 below may be used. In addition, appropriate values may be added to or excluded from the block size group (or set) of Equation 11 or 12.

[수학식 12] [Equation 12]

Z1'= {8, 16, 32, 64, 128, 256} Z1'= {8, 16, 32, 64, 128, 256}

Z2'= {12, 24, 48, 96, 192, 384}Z2'= {12, 24, 48, 96, 192, 384}

Z3'= {10, 20, 40, 80, 160, 320}Z3'= {10, 20, 40, 80, 160, 320}

Z4'= {7, 14, 28, 56, 112, 224}Z4'= {7, 14, 28, 56, 112, 224}

Z5'= {18, 36, 72, 144, 288}Z5'= {18, 36, 72, 144, 288}

Z6'= {11, 22, 44, 88, 176, 352}Z6'= {11, 22, 44, 88, 176, 352}

Z7'= {26, 52, 104, 208}Z7'= {26, 52, 104, 208}

Z8'= {15, 30, 60, 120, 240}Z8'= {15, 30, 60, 120, 240}

상기 수학식 11 및 수학식 12의 블록 크기 그룹들의 특징은 서로 다른 입도 (granularity)를 가질 뿐만 아니라 이웃한 블록 크기의 비율이 모두 동일한 정수인 특징을 가지고 있다. 즉 다시 말해 하나의 그룹에 포함되어 있는 블록 크기들은 서로 약수 또는 배수 관계에 있다. p (p = 1, 2, ..., 8)번째 그룹에 대응되는 지수 행렬을 각각

Figure pat00038
라 하고, 상기 p번째 그룹에 포함된 Z 값에 대응되는 지수 행렬을
Figure pat00039
라 할 때, fp (x,Z) = x (mod Z)를 이용하여 수학식 9와 같은 수열의 변환 방법을 적용한다고 하자. 즉, 예를 들어 블록 크기 Z가 Z = 28와 같이 결정된 경우에는 Z = 28이 포함되어 있는 4번째 블록 크기 그룹에 대응되는 지수 행렬(또는 LDPC 수열)
Figure pat00040
에 대해서 Z = 28에 대한 지수 행렬(또는 LDPC 수열)
Figure pat00041
각 원소
Figure pat00042
를 다음 수학식 13과 같이 얻을 수 있다. The block size groups of Equation 11 and Equation 12 have different granularity, and all the ratios of neighboring block sizes are the same integer. In other words, the block sizes included in one group have a factor or multiple relationship with each other. Each of the exponential matrices corresponding to the p (p = 1, 2, ..., 8) group
Figure pat00038
And, an exponential matrix corresponding to the Z value included in the p-th group is
Figure pat00039
In the case of, suppose that f p (x,Z) = x (mod Z) is used to apply the conversion method of a sequence as shown in Equation 9. That is, for example, when the block size Z is determined as Z = 28, the exponential matrix (or LDPC sequence) corresponding to the fourth block size group in which Z = 28 is included.
Figure pat00040
For Z = 28 exponential matrix (or LDPC sequence)
Figure pat00041
Each element
Figure pat00042
Can be obtained as in Equation 13 below.

[수학식 13][Equation 13]

Figure pat00043
Figure pat00043

상기 수학식 13과 같은 변환은 간단히 다음 수학식 14와 같이 나타내기도 한다. Transformation such as Equation 13 is also simply expressed as Equation 14 below.

[수학식 14][Equation 14]

Figure pat00044
Figure pat00044

참고로, 이상에서는 수학식 9, 10 또는 수학식 11 내지 수학식 14에서의 리프팅 또는 지수 행렬의 변환 방식이 패리티 검사 행렬에 대응되는 지수 행렬 전체에 적용하는 것을 가정하여 설명하였지만, 이러한 변환 방식은 상기 지수 행렬의 부분적으로도 적용 가능하다. For reference, above has been described on the assumption that the lifting or transforming of the exponential matrix in Equations 9 and 10 or Equations 11 to 14 is applied to the entire exponential matrix corresponding to the parity check matrix. The exponential matrix can also be partially applied.

예를 들어 통상적으로 패리티 검사 행렬의 패리티 비트에 대응되는 부분 행렬(submatrix)은 효율적인 부호화를 위해서 특수한 구조를 가지는 경우가 많다. 이 경우에 리프팅에 의해 부호화 방법 또는 복잡도에 변화가 생길 수도 있다. 따라서 동일한 부호화 방법 또는 복잡도 유지를 위해서 패리티 검사 행렬에서 패리티에 대응되는 부분 행렬에 대한 지수 행렬의 일부에는 리프팅이 적용되지 않거나 정보어 비트에 대응되는 부분 행렬에 대한 지수 행렬에 적용하는 리프팅 방식과 서로 다른 리프팅이 적용될 수 있다. 다시 말하면, 지수 행렬 내에서 정보어 비트에 대응되는 수열에 적용하는 리프팅 방식과 패리티 비트에 대응되는 수열에 적용하는 리프팅 방식이 서로 다르게 설정될 수 있으며, 경우에 따라 패리티 비트에 대응되는 수열의 일부 또는 전체에는 리프팅을 적용하지 않아 수열 변환 없이 고정된 값이 사용될 수도 있다.For example, in general, a submatrix corresponding to a parity bit of a parity check matrix often has a special structure for efficient encoding. In this case, the coding method or complexity may change due to lifting. Therefore, in order to maintain the same coding method or complexity, lifting is not applied to a part of the exponential matrix for the partial matrix corresponding to the parity in the parity check matrix, or the lifting method applied to the exponential matrix for the partial matrix corresponding to the information bit Other lifting can be applied. In other words, the lifting method applied to the sequence corresponding to the information word bit in the exponential matrix and the lifting method applied to the sequence corresponding to the parity bit may be set differently. In some cases, a part of the sequence corresponding to the parity bit Alternatively, a fixed value may be used without a sequence conversion because no lifting is applied to the whole.

도 4는 본 발명의 일 실시 예에 따른 송신 장치 블록 구성도이다. 4 is a block diagram of a transmission device according to an embodiment of the present invention.

구체적으로, 도 4과 같이, 송신 장치(400)는 가변 길이 입력 비트들을 처리하기 위해, 세그멘터이션부(410), 제로 패딩부(420), LDPC 부호화부(430), 레이트 매칭부(440), 변조부(450) 등을 포함할 수 있다. 레이트 매칭부(440)은 인터리버(441) 및 펑처링/리피티션(repetition)/제로 제거부(442) 등을 포함할 수 있다.Specifically, as shown in FIG. 4, the transmission device 400 includes a segmentation unit 410, a zero padding unit 420, an LDPC encoding unit 430, and a rate matching unit 440 to process variable length input bits. ), a modulator 450, and the like. The rate matching unit 440 may include an interleaver 441 and a puncturing/repetition/zero removal unit 442, and the like.

여기에서, 도 4에 도시된 구성 요소는, 가변 길이 입력 비트들에 대한 부호화 및 변조를 수행하는 구성 요소로서, 이는 일 예일 뿐이며, 경우에 따라 도 4에 도시된 구성요소 중 일부는 생략 또는 변경될 수 있고, 다른 구성요소가 더 추가될 수도 있다. 변조 방식의 예로서는 QPSK, 16-, 64-, 256-, 1024-QAM과 같은 QAM 방식 또는 PSK (phase shift keying) 또는 APSK (amplitude and PSK) 방식 등의 방식들 중 어떠한 것들도 가능하다.Here, the constituent elements shown in FIG. 4 are constituent elements that encode and modulate variable-length input bits, and this is only an example, and some of the constituent elements shown in FIG. 4 may be omitted or changed in some cases. May be, and other components may be added. As an example of the modulation scheme, any of a QAM scheme such as QPSK, 16-, 64-, 256-, 1024-QAM, or a phase shift keying (PSK) or amplitude and PSK (APSK) scheme may be used.

한편, 송신 장치(400)는 필요한 파라미터(예를 들어, 입력 비트 길이, ModCod (modulation and code rate), 제로 패딩 (또는 단축(shortening))을 위한 파라미터, LDPC 부호의 부호율, 정보어 또는 부호어 길이, 인터리빙(interleaving)을 위한 파라미터, 리피티션(repetition) 및 펑처링(puncturing) 등을 위한 파라미터 및 변조 방식 등)를 결정하고, 결정된 파라미터를 기반으로 입력 비트를 부호화하여 수신 장치(500)로 전송할 수 있다. On the other hand, the transmission device 400 is required parameters (e.g., input bit length, ModCod (modulation and code rate), zero padding (or shortening)) parameters, LDPC code code rate, information word or code The reception device 500 by determining the length of the word, interleaving parameters, parameters for repetition and puncturing, and modulation methods), encoding input bits based on the determined parameters, etc. ).

입력 비트들의 수가 가변적이라는 점에서, 입력 비트들의 수가 기설정된 값보다 큰 경우, 입력 비트들은 기설정된 값 이하의 길이를 갖도록 세그먼테이션 (segmentation) 될 수 있다. 또한 세그먼트된 블록 각각은 하나의 LDPC 코딩된 블록에 대응될 수 있다. 다만, 입력 비트들의 수가 기 설정된 값보다 작거나 같은 경우, 세그먼테이션 되지 않는다. 입력 비트들은 하나의 LDPC 코딩된 블록에 대응될 수 있다.Since the number of input bits is variable, when the number of input bits is greater than a preset value, the input bits may be segmented to have a length less than or equal to the preset value. In addition, each segmented block may correspond to one LDPC-coded block. However, if the number of input bits is less than or equal to a preset value, segmentation is not performed. Input bits may correspond to one LDPC coded block.

한편, 송신 장치(400)는 부호화, 인터리빙 및 변조에 이용되는 각종 파라미터를 기저장하고 있을 수 있다. 여기에서, 부호화에 이용되는 파라미터는 LDPC 부호의 부호율, 입력 비트 또는 정보어 또는 부호어 길이, 패리티 검사 행렬에 대한 정보 들 중 적어도 하나를 포함할 수 있다. 그리고, 인터리빙에 이용되는 파리미터는 인터리빙 룰에 대한 정보를 포함할 수 있으며, 변조에 이용되는 파리미터는 변조 방식에 대한 정보를 포함할 수 있다. 또한 펑처링에 관한 정보는 펑처링 길이를 포함할 수 있다. 또한 리피티션에 관한 정보는 리피티션 길이를 포함할 수 있다. 상기 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 순환 행렬의 지수 값을 포함할 수 있다.Meanwhile, the transmission device 400 may pre-store various parameters used for encoding, interleaving, and modulation. Here, the parameter used for encoding may include at least one of information on a code rate of an LDPC code, an input bit or information word or code word length, and a parity check matrix. Further, a parameter used for interleaving may include information on an interleaving rule, and a parameter used for modulation may include information on a modulation method. Also, the information on puncturing may include a puncturing length. In addition, the information on the repetition may include the length of the repetition. The information on the parity check matrix may include an index value of a cyclic matrix when the parity matrix presented in the present invention is used.

이 경우, 송신 장치(400)를 구성하는 각 구성 요소는 이러한 파라미터를 이용하여 동작을 수행할 수 있다.In this case, each component constituting the transmission device 400 may perform an operation using these parameters.

한편, 도시하지 않았지만 경우에 따라 송신 장치(400)는 송신 장치(400)의 동작을 제어하기 위한 제어부(미도시)를 더 포함할 수도 있다. Meanwhile, although not shown, in some cases, the transmission device 400 may further include a control unit (not shown) for controlling the operation of the transmission device 400.

도 5는 본 발명의 일 실시 예에 따른 수신 장치 블록 구성도이다.5 is a block diagram of a receiving device according to an embodiment of the present invention.

구체적으로, 도 5와 같이, 수신 장치(500)는 가변 길이 정보들을 처리하기 위해, 복조부(510), 레이트 디매칭부(520), LDPC 복호화부(530), 제로 제거부(540) 및 디세그멘테이이션부(550) 등을 포함할 수 있다. 레이트 디매칭부(520)는 LLR(log likelihood ratio) 삽입부(522), LLR 컴바이너(523), 디인터리버(524) 등을 포함할 수 있다. LLR 삽입부(522) 및 LLR 컴바이너(523) 등은 복호를 위해 사용되는 값들에 따라 그 이름이 달리질 수 있다. 예를 들어, LLR 대신 LR (likelihood raito)과 같은 값들을 기반으로 복호를 수행할 경우에는 LR 삽입부 및 LR 컴바이너 등과 같이 복호에 사용되는 값들을 기반으로 이름이 결정될 수 있으며, 상기 값들을 기반으로 동작이 다소 달라질 수 있다. Specifically, as shown in FIG. 5, in order to process variable length information, the receiving device 500 includes a demodulation unit 510, a rate dematching unit 520, an LDPC decoding unit 530, a zero removing unit 540, and It may include a desegmentation unit 550 and the like. The rate dematching unit 520 may include a log likelihood ratio (LLR) insertion unit 522, an LLR combiner 523, a deinterleaver 524, and the like. The LLR insertion unit 522 and the LLR combiner 523 may have different names according to values used for decoding. For example, when decoding is performed based on values such as LR (likelihood raito) instead of LLR, a name may be determined based on values used for decoding, such as an LR inserter and an LR combiner. Based on this, the operation may be slightly different.

복조부(510)의 동작은 경우에 따라 여러 과정으로 세분화 되어 표현될 수 있다. 예를 들면, 수신된 신호를 기반으로 채널 측정 (channel estimation) 이후에 그 결과를 기반으로 복조된 신호 또는 심볼로부터 전송된 부호어 비트에 대응되는 FEC 복호화에 필요한 값들(e.g., LLR 또는 LR 또는 그에 대응되는 값 등)을 결정하는 과정으로 세분화 될 수 있다. 이 경우에는 각 복조부 내 동작은 각 채널 측정 블록과 심볼-LLR (symbol-to-LLR) 변환 블록 등으로 세분화 되어 나타낼 수도 있다. 물론 시스템의 구조에 따라 다양한 세분화가 가능하다. The operation of the demodulator 510 may be subdivided into various processes and expressed in some cases. For example, after channel estimation based on the received signal, values necessary for FEC decoding corresponding to the codeword bits transmitted from the demodulated signal or symbol based on the result (eg, LLR or LR or It can be subdivided into the process of determining the corresponding value, etc.). In this case, the operation within each demodulator may be subdivided into each channel measurement block and a symbol-to-LLR (symbol-to-LLR) conversion block. Of course, various subdivisions are possible according to the structure of the system.

여기에서, 도 5에 도시된 구성요소는, 도 5에 도시된 구성요소에 대응되는 기능을 수행하는 구성요소로서, 이는 일 예일 뿐이고 경우에 따라 일부는 생략 또는 변경될 수 있고, 다른 구성요소가 더 추가될 수도 있다.Here, the components shown in FIG. 5 are components that perform functions corresponding to the components shown in FIG. 5, and this is only an example, and some may be omitted or changed depending on the case, and other components are More may be added.

본 발명에서의 패리티 검사 행렬은 메모리를 이용하여 독출 (read)될 수도 있고, 송신 장치 또는 수신 장치에서 사전에 주어질 수도 있고, 송신 장치 또는 수신 장치에서 직접 생성될 수도 있다. 또한 송신 장치는 상기 패리티 검사 행렬에 대응되는 수열 또는 지수 행렬 등을 저장 또는 생성하여 부호화에 적용할 수 있다. 마찬가지로 수신 장치에서도 상기 패리티 검사 행렬에 대응되는 수열 또는 지수 행렬 등을 저장 또는 생성하여 복호화에 적용될 수 있음은 물론이다.The parity check matrix in the present invention may be read using a memory, may be given in advance by a transmitting device or a receiving device, or may be directly generated by a transmitting device or a receiving device. In addition, the transmitting device may store or generate a sequence or an exponential matrix corresponding to the parity check matrix and apply it to encoding. Similarly, the receiving device may store or generate a sequence or an exponential matrix corresponding to the parity check matrix and applied to decoding.

이하에서는 도 5를 기반으로 수신기 동작에 대한 구체적인 설명을 하도록 한다. Hereinafter, a detailed description of the operation of the receiver will be made based on FIG. 5.

복조부(510)는 송신 장치(400)로부터 수신된 신호를 복조한다. The demodulation unit 510 demodulates the signal received from the transmission device 400.

구체적으로, 복조부(510)는 송신 장치(400)의 변조부(450)에 대응되는 구성요소로, 송신 장치(400)로부터 송신된 신호를 수신 및 복조하여, 송신 장치(400)에서 전송한 비트들에 대응되는 값(e.g., LLR 또는 LR 또는 그에 대응되는 값)들을 생성할 수 있다.Specifically, the demodulation unit 510 is a component corresponding to the modulation unit 450 of the transmission device 400, receives and demodulates a signal transmitted from the transmission device 400, and transmits the signal from the transmission device 400. Values (eg, LLR or LR or values corresponding thereto) corresponding to bits may be generated.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 모드에 따라 변조한 변조 방식에 대한 정보를 기저장할 수 있다. 이에 따라, 복조부(510)는 모드에 따라 송신 장치(400)로부터 수신된 신호를 복조하여, LDPC 코드워드 비트들에 대응되는 값들을 생성할 수 있다.To this end, the reception device 500 may pre-store information on a modulation scheme modulated by the transmission device 400 according to a mode. Accordingly, the demodulator 510 may demodulate the signal received from the transmission device 400 according to the mode, and may generate values corresponding to the LDPC codeword bits.

LR 값은 송신 장치(400)에서 전송한 비트가 0일 확률과 1일 확률의 비율을 의미하며, LLR 값은 송신 장치(400)에서 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다. 또는, LR 또는 LLR 값은 상기 확률 또는 확률의 비율 또는 확률의 비율에 대한 Log 값에 따라 경판정 되어 그 비트 값 자체로 나타낼 수도 있으며, 또는 상기 확률 또는 확률의 비율 또는 확률의 비율에 대한 Log 값이 속하는 구간에 따라 사전에 정의된 대표 값으로 나타낼 수도 있다. 상기 확률 또는 확률의 비율 또는 확률의 비율에 대한 Log 값이 속하는 구간에 따라 사전에 정의된 대표 값을 결정하는 방법의 일례로는 양자화(quantization)를 고려한 방법 등이 있다. 이외에도 상기 확률 또는 확률의 비율 또는 확률의 비율에 대한 Log 값과 대응되는 다양한 다른 값들을 이용할 수도 있다.The LR value refers to the ratio of the probability that the bit transmitted from the transmitting device 400 is 0 and the probability of 1, and the LLR value is a log in the ratio of the probability that the bit transmitted from the transmitting device 400 is 0 and the probability of being 1. Can be expressed as the value taken. Alternatively, the LR or LLR value may be hard-determined according to the probability or the ratio of the probability or the log value for the ratio of the probability and expressed as the bit value itself, or the log value for the ratio of the probability or probability or the ratio of the probability It can also be expressed as a representative value defined in advance according to the section to which it belongs. An example of a method of determining a representative value defined in advance according to a section to which the probability or the ratio of the probability or the log value for the ratio of the probability belongs is a method that considers quantization. In addition, various other values corresponding to the probability or the ratio of the probability or the log value for the ratio of the probability may be used.

본 발명에서는 수신 방법 및 장치의 동작에 대해서 설명하기 위해 편의상 LLR 값에 기반한 동작을 나타내었으나 이에 한정될 필요는 없다. In the present invention, the operation based on the LLR value is shown for convenience in order to describe the operation of the receiving method and the device, but there is no need to be limited thereto.

상기 복조부(510)는 LLR 값에 대한 멀티플렉싱(미도시)을 수행하는 기능을 포함한다. 구체적으로, 먹스(미도시)는 송신 장치(400)의 비트 디먹스(미도시)에 대응되는 구성요소로, 비트 디먹스(미도시)에 대응되는 동작을 수행할 수 있다.The demodulation unit 510 includes a function of performing multiplexing (not shown) on the LLR value. Specifically, the mux (not shown) is a component corresponding to the bit demux (not shown) of the transmission device 400 and may perform an operation corresponding to the bit demux (not shown).

이를 위해, 수신 장치(500)는 송신 장치(400)가 디멀티플렉싱 및 블록 인터리빙을 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, 먹스(미도시)는 셀 워드(LDPC 코드워드에 대한 수신 심볼을 벡터 값으로 나타낸 정보)에 대응되는 LLR 값에 대해 비트 디먹스(미도시)에서 수행된 디멀티플렉싱 및 블록 인터리빙 동작을 역으로 수행하여, 셀 워드에 대응되는 LLR 값을 비트 단위로 멀티플렉싱할 수 있다.To this end, the receiving device 500 may pre-store information on parameters used by the transmitting device 400 for demultiplexing and block interleaving. Accordingly, the MUX (not shown) performs demultiplexing and block interleaving operations performed in bit demux (not shown) for the LLR value corresponding to the cell word (information representing the received symbol for the LDPC codeword as a vector value). Conversely, the LLR value corresponding to the cell word can be multiplexed in bit units.

레이트 디매칭부(520)은 복조부(510)로부터 출력되는 LLR 값들에 LLR 값을 추가로 삽입할 수 있다. 이 경우, 레이트 디매칭부(520)는 복조부(510)로부터 출력되는 LLR 값들의 사이에 미리 약속된 LLR 값들을 삽입할 수 있다. The rate dematching unit 520 may additionally insert an LLR value into the LLR values output from the demodulation unit 510. In this case, the rate dematching unit 520 may insert predetermined LLR values between LLR values output from the demodulation unit 510.

구체적으로, 레이트 디매칭부(520)는 송신 장치(400)의 레이트 매칭부(440)에 대응되는 구성요소로, 인터리버(441), 제로 제거 및 펑처링/리피티션/제로 제거부(442)에 대응되는 동작을 수행할 수 있다.Specifically, the rate dematching unit 520 is a component corresponding to the rate matching unit 440 of the transmission device 400, and includes an interleaver 441, zero removal and puncturing/repetition/zero removal unit 442. ) Can be performed.

먼저, 레이트 디매칭부(520)는 상기 송신기의 인터리버(441)에 상응하도록 디인터리빙을 수행한다. 디인터리버(524)의 출력 값들에 LLR 삽입부(522)에서 LDPC 코드워드에서 제로 비트들이 패딩되었던 위치에 제로 비트들에 대응되는 LLR 값이 삽입될 수 있다. 이 경우, 패딩되었던 제로 비트들 즉, 쇼트닝된 제로 비트들에 대응되는 LLR 값은

Figure pat00045
또는 -
Figure pat00046
가 될 수 있다. 하지만,
Figure pat00047
또는 -
Figure pat00048
는 이론적인 값이며, 실질적으로는 수신 장치(500)에서 이용되는 LLR 값의 최대값 또는 최소값이 될 수 있다.First, the rate dematching unit 520 performs deinterleaving to correspond to the interleaver 441 of the transmitter. LLR values corresponding to the zero bits may be inserted into the output values of the deinterleaver 524 at a position where the zero bits were padded in the LDPC codeword by the LLR insertion unit 522. In this case, the padded zero bits, that is, the LLR values corresponding to the shortened zero bits, are
Figure pat00045
or -
Figure pat00046
Can be. But,
Figure pat00047
or -
Figure pat00048
Is a theoretical value, and may actually be a maximum value or a minimum value of the LLR value used in the reception device 500.

이를 위해, 수신 장치(500)는 송신 장치(400)가 제로 비트들을 패딩하기 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, 레이트 디매칭부(520)는 LDPC 코드워드에서 제로 비트들이 패딩되었던 위치를 판단하고, 해당 위치에 쇼트닝된 제로 비트들에 대응되는 LLR 값을 삽입할 수 있다.To this end, the receiving device 500 may pre-store information on a parameter used by the transmitting device 400 to pad the zero bits. Accordingly, the rate dematching unit 520 may determine a position where the zero bits have been padded in the LDPC codeword, and insert an LLR value corresponding to the shortened zero bits in the corresponding position.

또한, 레이트 디매칭부(520)의 LLR 삽입부(522)는 LDPC 코드워드에서 펑처링된 비트들의 위치에 펑처링된 비트들에 대응되는 LLR 값을 삽입할 수 있다. 이 경우, 펑처링된 비트들에 대응되는 LLR 값은 0 또는 사전에 결정되어 있는 다른 값이 될 수 있다. 일반적으로 차수가 1인 패리티 비트들이 펑처링 되었을 경우에 LDPC 복호화 과정에서 성능 개선에 아무런 효과가 없기 때문에 대응되는 펑처링 위치의 일부 또는 전체에 LLR 삽입 없이 LDPC 복호화 과정에서 사용되지 않을 수도 있다. 하지만, 병렬 처리 (parallel process)에 기반한 LDPC 복호화 과정의 효율을 높이기 위해서 LLR 삽입부(522)는 복호화 성능 개선과 무관하게 차수가 1인 펑처링 비트 일부 또는 전체에 대응되는 위치에 사전에 정해진 LLR 값을 삽입할 수 있다. In addition, the LLR insertion unit 522 of the rate dematching unit 520 may insert LLR values corresponding to the punctured bits at positions of the punctured bits in the LDPC codeword. In this case, the LLR value corresponding to the punctured bits may be 0 or another predetermined value. In general, when parity bits of order 1 are punctured, there is no effect on performance improvement in the LDPC decoding process, so they may not be used in the LDPC decoding process without LLR insertion in part or all of the corresponding puncturing positions. However, in order to increase the efficiency of the LDPC decoding process based on the parallel process, the LLR insertion unit 522 uses a predetermined LLR at a position corresponding to some or all of the order 1 puncturing bits regardless of the decoding performance improvement. You can insert values.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 펑처링을 위해 이용한 파라미터에 대한 정보를 기저장할 수 있다. 이에 따라, LLR 삽입부(522)는 LDPC 정보어 비트 또는 패리티 비트들이 펑처링된 위치에 그에 대응되는 LLR 값 (예: LLR = 0)을 삽입할 수 있다. 단, 일부 펑처링된 패리티 비트들의 위치에는 이 과정이 생략될 수도 있다. To this end, the receiving device 500 may pre-store information on a parameter used for puncturing by the transmitting device 400. Accordingly, the LLR inserting unit 522 may insert an LLR value (eg, LLR = 0) corresponding to the LDPC information word bit or the parity bit punctured position. However, this process may be omitted for positions of some punctured parity bits.

LLR 컴바이너(523)는 LLR 삽입부(522) 및 복조부(510)에서 출력되는 LLR 값을 컴바인 즉, 합산할 수 있다. 구체적으로, LLR 컴바이너(523)는 송신 장치(400)의 펑처링/리피티션/제로 제거부(442)에 대응되는 구성요소로, 리피티션부(442)에 대응되는 동작을 수행할 수 있다. 먼저, LLR 컴바이너(523)는 리피티션된 비트들에 대응되는 LLR 값을 다른 LLR 값과 컴바인할 수 있다. 여기에서, 다른 LLR 값은 송신 장치(400)에서 리피티션된 비트들 생성에 기초가 된 비트들 즉, 리피티션 대상으로 선택되었던 LDPC 정보어 비트 또는 패리티 비트들에 대한 LLR 값일 수 있다. 또한, 3GPP 5G 표준 규격인 TS 38.212 문서에 따르면, 리피티션된 비트들은 HARQ (hybrid ARQ)와 같은 재전송 과정에서 설정되는 RV (redundancy version) 값이나 부호율과 같은 파라미터에 기반하여 다양하게 결정될 수도 있다. The LLR combiner 523 may combine, that is, sum, the LLR values output from the LLR insertion unit 522 and the demodulation unit 510. Specifically, the LLR combiner 523 is a component corresponding to the puncturing/repetition/zero removal unit 442 of the transmission device 400, and performs an operation corresponding to the repeater 442. I can. First, the LLR combiner 523 may combine the LLR values corresponding to the repeated bits with other LLR values. Here, the other LLR value may be bits based on generation of the bits repetitioned by the transmission device 400, that is, an LLR value for an LDPC information word bit or parity bits selected as a repetition target. In addition, according to the 3GPP 5G standard TS 38.212 document, the repetitioned bits may be variously determined based on parameters such as redundancy version (RV) values or code rates set in a retransmission process such as hybrid ARQ (HARQ). have.

즉, 상술한 바와 같이, 송신 장치(400)는 LDPC 부호화 비트들을 선택하고, 필요한 경우에 LDPC 정보어 비트들 및 LDPC 패리티 비트들 중 일부를 리피티션시켜 수신 장치(500)로 전송하게 된다. 이에 따라, LDPC 부호화 비트들에 대한 LLR 값은 리피티션된 LDPC 부호화 비트들에 대한 LLR 값 및 리피티션되지 않은 LDPC 부호화 비트들에 대한 LLR 값으로 구성될 수 있다. LLR 컴바이너(523)는 동일한 LDPC 부호화 비트들에 대응되는 LLR 값들을 컴바인할 수 있다.That is, as described above, the transmission device 400 selects LDPC coded bits and, if necessary, repeats some of the LDPC information word bits and the LDPC parity bits to transmit to the reception device 500. Accordingly, the LLR values for LDPC coded bits may be composed of LLR values for repetitioned LDPC coded bits and LLR values for non-repeatable LDPC coded bits. The LLR combiner 523 may combine LLR values corresponding to the same LDPC coded bits.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 리피티션을 위해 이용한 파라미터에 대한 정보를 기저장할 수 있다. 이에 따라, LLR 컴바이너(523)는 리피티션된 LDPC 부호화 비트들에 대한 LLR 값을 판단하고, 이를 리피티션의 기초가 된 LDPC 부호화 비트들에 대한 LLR 값과 컴바인할 수 있다.To this end, the reception device 500 may pre-store information on a parameter used by the transmission device 400 for repetition. Accordingly, the LLR combiner 523 may determine an LLR value for the repetitioned LDPC coded bits, and combine this with the LLR value for the LDPC coded bits that are the basis of the repetition.

또한, LLR 컴바이너(523)는 재전송 혹은 IR (increment redundancy)된 비트들에 대응되는 LLR 값을 다른 LLR 값과 컴바인할 수 있다. 여기에서, 다른 LLR 값은 송신 장치(400)에서 재전송 혹은 IR된 비트들 생성에 기초가 된 LDPC 부호어 비트들의 일부 또는 전체에 대한 LLR 값일 수 있다.In addition, the LLR combiner 523 may combine the LLR values corresponding to retransmitted or increment redundancy (IR) bits with other LLR values. Here, the other LLR value may be an LLR value for some or all of the LDPC codeword bits based on the generation of bits retransmitted or IRed by the transmitting device 400.

상술한 바와 같이, 송신 장치(400)는 HARQ를 위하여 NACK이 발생할 경우 부호어 비트들중 일부 비트들 혹은 모든 비트들을 수신 장치(500)로 전송할 수 있다. As described above, when NACK occurs for HARQ, the transmission device 400 may transmit some or all of the codeword bits to the reception device 500.

이에 따라, LLR 컴바이너(523)는 재전송 혹은 IR을 통해 수신된 비트들에 대한 LLR 값을 이전 프레임을 통해 수신되는 LDPC 코드워드 비트들에 대한 LLR 값과 컴바인할 수 있다.Accordingly, the LLR combiner 523 may combine an LLR value for bits received through retransmission or IR with an LLR value for LDPC codeword bits received through a previous frame.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 재전송 혹은 IR 비트의 생성을 위해 이용한 파라미터에 대한 정보를 기저장할 수 있다. 이에 따라, LLR 컴바이너(523)는 재전송 혹은 IR 비트들에 대한 LLR 값을 판단하고, 이를 재전송 비트들의 생성에 기초가 된 LDPC 부호화 비트들의 적어도 일부에 대한 LLR 값과 컴바인할 수 있다.To this end, the receiving device 500 may pre-store information on a parameter used by the transmitting device 400 for retransmission or generating an IR bit. Accordingly, the LLR combiner 523 may determine an LLR value for retransmission or IR bits, and combine this with an LLR value for at least some of the LDPC coded bits that are the basis for generation of the retransmission bits.

디인터리버(524)는 LLR 컴바이너(523)에서 출력되는 LLR 값을 디인터리빙 할 수 있다.The deinterleaver 524 may deinterleave the LLR value output from the LLR combiner 523.

구체적으로, 디인터리버부(524)는 송신 장치(400)의 인터리버(441)에 대응되는 구성요소로, 인터리버(441)에 대응되는 동작을 수행할 수 있다.Specifically, the deinterleaver 524 is a component corresponding to the interleaver 441 of the transmission device 400 and may perform an operation corresponding to the interleaver 441.

이를 위해, 수신 장치(500)는 송신 장치(400)가 인터리빙을 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, 디인터리버(524)는 전송된 LDPC 부호화 비트들에 대응되는 LLR 값에 대해 인터리버(441)에서 수행된 인터리빙 동작을 역으로 수행하여, 상기 전송된 LDPC 부호화 비트들에 대응되는 LLR 값을 디인터리빙 할 수 있다. To this end, the receiving device 500 may pre-store information on parameters used by the transmitting device 400 for interleaving. Accordingly, the deinterleaver 524 reversely performs the interleaving operation performed by the interleaver 441 on the LLR values corresponding to the transmitted LDPC coded bits, and obtains the LLR values corresponding to the transmitted LDPC coded bits. Deinterleaving is possible.

LDPC 복호화부(530)는 레이트 디매칭부(520)에서 출력되는 LLR 값에 기반하여 LDPC 복호화를 수행할 수 있다.The LDPC decoding unit 530 may perform LDPC decoding based on the LLR value output from the rate dematching unit 520.

구체적으로, LDPC 복호화부(530)는 송신 장치(400)의 LDPC 부호화부(430)에 대응되는 구성요소로, LDPC 부호화부(430)에 대응되는 동작을 수행할 수 있다.Specifically, the LDPC decoder 530 is a component corresponding to the LDPC encoder 430 of the transmission device 400 and may perform an operation corresponding to the LDPC encoder 430.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 모드에 따라 LDPC 부호화를 수행하기 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, LDPC 복호화부(530)는 모드에 따라 레이트 디매칭부(520)에서 출력되는 LLR 값에 기반하여 LDPC 복호화를 수행할 수 있다.To this end, the receiving device 500 may pre-store information on a parameter used by the transmitting device 400 to perform LDPC encoding according to a mode. Accordingly, the LDPC decoding unit 530 may perform LDPC decoding based on the LLR value output from the rate dematching unit 520 according to the mode.

예를 들어, LDPC 복호화부(530)는 합곱 알고리즘에 기반한 반복 복호 방식에 기초하여 레이트 디매칭부(520)에서 출력되는 LLR 값에 기반하여 LDPC 복호화를 수행하고, LDPC 복호화에 따라 에러가 정정된 비트들을 출력할 수 있다.For example, the LDPC decoding unit 530 performs LDPC decoding based on the LLR value output from the rate dematching unit 520 based on an iterative decoding method based on the sum-multiplication algorithm, and the error is corrected according to the LDPC decoding. Bits can be output.

제로 제거부(540)는 LDPC 복호화부(530)에서 출력되는 비트들에서 제로 비트들을 제거할 수 있다.The zero remover 540 may remove zero bits from bits output from the LDPC decoder 530.

구체적으로, 제로 제거부(540)는 송신 장치(400)의 제로 패딩부(420)에 대응되는 구성요소로, 제로 패딩부(420)에 대응되는 동작을 수행할 수 있다.Specifically, the zero removing unit 540 is a component corresponding to the zero padding unit 420 of the transmission device 400 and may perform an operation corresponding to the zero padding unit 420.

이를 위해, 수신 장치(500)는 송신 장치(400)에서 제로 비트들을 패딩하기 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, 제로 제거부(540)는 LDPC 복호화부(530)에서 상기 패딩된 비트들을 이용하여 복호를 수행하였을 경우에는 출력되는 비트들에서 제로 패딩부(420)에서 패딩되었던 제로 비트들을 제거할 수 있다. 상기 제로 제거부(540)에서 제로 패딩(또는 단축)된 비트를 제거하는 동작은 실제로 상기 패딩 비트들을 제거하는 동작을 의미할 수도 있지만, 상기 LDPC 복호화부(530)의 출력 비트들을 다음 디세그멘테이션부(550)에 전달할 때 상기 패딩된 비트들은 제외하고 전달하는 동작을 의미할 수도 있다. 또한 송신 장치에서 제로 패딩된 비트들은 수신 장치에서 그 위치를 정확히 알고 있기 때문에 복호 과정에서 사용하지 않을 수도 있으며, 이러한 경우에는 상기 제로 패딩된 비트를 제거하는 과정이 생략될 수도 있다. To this end, the receiving device 500 may pre-store information on a parameter used by the transmitting device 400 to pad the zero bits. Accordingly, when decoding is performed using the padded bits in the LDPC decoding unit 530, the zero removing unit 540 may remove the zero bits padded by the zero padding unit 420 from output bits. have. The operation of removing the zero padded (or shortened) bit by the zero removing unit 540 may actually mean an operation of removing the padding bits, but the output bits of the LDPC decoding unit 530 are converted to the next desegmentation unit. When transmitting to 550, it may mean an operation of excluding the padded bits. In addition, the zero-padded bits in the transmitting device may not be used in the decoding process because the receiving device accurately knows their positions. In this case, the process of removing the zero-padded bits may be omitted.

디세그먼테이션부(550)는 송신 장치(400)의 세그먼테이션부(410)에 대응되는 구성요소로, 세그먼테이션부(410)에 대응되는 동작을 수행할 수 있다.The desegmentation unit 550 is a component corresponding to the segmentation unit 410 of the transmission device 400 and may perform an operation corresponding to the segmentation unit 410.

이를 위해, 수신 장치(500)는 송신 장치(400)가 세그먼테이션을 위해 이용하였던 파라미터에 대한 정보를 기저장하고 있을 수 있다. 이에 따라, 디세그먼테이션부(550)는 제로 제거부(540)에서 출력되는 비트들, 즉 가변 길이 입력 비트들에 대한 세그먼트들을 결합하여, 세그먼테이션 전의 비트들을 복원할 수 있다.To this end, the receiving device 500 may pre-store information on parameters used by the transmitting device 400 for segmentation. Accordingly, the desegmentation unit 550 may restore bits before segmentation by combining the bits output from the zero removal unit 540, that is, segments of variable length input bits.

한편, LDPC 부호는 도 2에서 나열한 이분 그래프 상에서 합곱 알고리즘에 기반한 반복 복호 알고리즘을 사용하여 복호할 수 있으며, 합곱 알고리즘은 메시지 패싱 알고리즘의 일종이다.Meanwhile, the LDPC code can be decoded using an iterative decoding algorithm based on the sum-multiplication algorithm on the dividing graph listed in FIG. 2, and the sum-product algorithm is a kind of message passing algorithm.

이하에서는, 도 6a 및 6b를 참조하여 LDPC 복호화 시 일반적으로 사용되는 메시지 패싱 동작에 대해서 설명하기로 한다.Hereinafter, a message passing operation generally used in LDPC decoding will be described with reference to FIGS. 6A and 6B.

도 6a, 6b는 LDPC 복호화를 위해 임의의 검사 노드와 변수 노드에서 메시지 패싱 동작을 도시한 도면이다.6A and 6B are diagrams illustrating a message passing operation in an arbitrary check node and a variable node for LDPC decoding.

도 6a에는 검사 노드 m(600)과 검사 노드 m(600)에 연결되는 다수의 변수 노드들(610, 620, 630, 640)이 도시되어 있다. 또한, 도시되어 있는 Tn',m은 변수 노드 n'(610)에서 검사 노드 m(600)으로 패싱되는 메시지를 나타내며, En,m은 검사 노드 m(600)에서 변수 노드 n(630)으로 패싱되는 메시지를 나타낸다. 여기서, 검사 노드 m(600)에 연결되어 있는 모든 변수 노드들의 집합을 N(m)이라고 정의하고, N(m)에서 변수 노드 n(630)을 제외한 집합을 N(m)\n이라고 정의하기로 한다. 6A illustrates a test node m 600 and a plurality of variable nodes 610, 620, 630 and 640 connected to the test node m 600. In addition, the illustrated Tn',m represents a message that is passed from the variable node n'(610) to the check node m (600), and En,m is the pass from the check node m (600) to the variable node n (630). Indicates a message to be used. Here, the set of all variable nodes connected to the test node m(600) is defined as N(m), and the set except for the variable node n(630) in N(m) is defined as N(m)\n. It should be.

이 경우, 합곱 알고리즘에 기반한 메시지 업데이트(update) 규칙은 하기 수학식 15와 같이 나타낼 수 있다.In this case, the message update rule based on the summation algorithm may be expressed as Equation 15 below.

[수학식 15][Equation 15]

Figure pat00049
Figure pat00049

여기에서, Sign(En,m)은 메시지 En,m의 부호(sign)를 나타내고, |En,m|은 메시지 En,m의 크기(magnitude)를 나타낸다. 한편, 함수

Figure pat00050
는 하기의 수학식 16과 같이 나타낼 수 있다. Here, Sign(E n,m ) represents the sign of the message E n,m , and |E n,m | represents the magnitude of the message E n,m. Meanwhile, the function
Figure pat00050
Can be expressed as in Equation 16 below.

[수학식 16][Equation 16]

Figure pat00051
Figure pat00051

참고로 수학식 16의 -log(tanh(.)) 함수는 보다 간단하게 log(coth(.)) 함수로 표현할 수도 있다.For reference, the -log(tanh(.)) function of Equation 16 may be more simply expressed as a log(coth(.)) function.

한편, 도 6b에는 변수 노드 x(650)과 변수 노드 x(650)에 연결되는 다수의 검사 노드들(660, 670, 680, 690)이 도시되어 있다. 또한, 도시되어 있는 Ey',x은 검사 노드 y'(660)에서 변수 노드 x(650)로 패싱되는 메시지를 나타내며, Ty,x은 변수 노드 x(650)에서 검사 노드 y(680)로 패싱되는 메시지를 나타낸다. 여기서, 변수 노드 x(650)에 연결되어 있는 모든 검사 노드들의 집합을 M(x)이라고 정의하고, M(x)에서 검사 노드 y(680)을 제외한 집합을 M(x)\y라고 정의하기로 한다. 이 경우, 합곱 알고리즘에 기반한 메시지 업데이트(update) 규칙은 하기 수학식 17과 같이 나타낼 수 있다.Meanwhile, in FIG. 6B, a plurality of test nodes 660, 670, 680, and 690 connected to the variable node x 650 and the variable node x 650 are illustrated. In addition, the illustrated E y',x represents a message passed from the check node y'(660) to the variable node x (650), and T y,x is the check node y (680) from the variable node x (650). Represents a message that is passed by. Here, the set of all test nodes connected to the variable node x(650) is defined as M(x), and the set except for the test node y(680) in M(x) is defined as M(x)\y. It should be. In this case, the message update rule based on the summation algorithm may be expressed as Equation 17 below.

[수학식 17][Equation 17]

Figure pat00052
Figure pat00052

여기에서, Ex는 변수 노드 x의 초기 메시지 값을 의미한다. Here, E x means the initial message value of the variable node x.

또한, 노드 x의 비트 값을 판정할 경우에는 하기 수학식 18과 같이 나타낼 수 있다.In addition, when determining the bit value of the node x, it can be expressed as Equation 18 below.

[수학식 18][Equation 18]

Figure pat00053
Figure pat00053

이 경우, Px값에 따라 노드 x에 대응하는 부호화 비트를 판정할 수 있다.In this case, the coded bit corresponding to the node x can be determined according to the Px value.

도 6a 및 6b에서 상술한 방식은 일반적인 복호화 방법이라는 점에서 더 이상 구체적인 설명은 생략하도록 한다. 다만, 도 6a 및 6b에서 설명한 방법 외에도 변수 노드와 검사 노드에서의 패싱되는 메시지 값을 결정하는 데 있어 다른 방법이 적용될 수도 있으며, 이와 관련된 상세한 설명은 『Frank R. Kschischang, Brendan J. Frey, and Hans-Andrea Loeliger, "Factor Graphs and the Sum-Product Algorithm," IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2, FEBRUARY 2001, pp498-519)』를 참고하기로 한다. 예를 들어, 상기 수학식 15 및 수학식 16에서는 검사 노드의 업데이트 식을 -log(tanh(.)) 함수를 기반으로 표현함으로써 합의 형태로 나타내었으나, 상기 참조 문헌에는 tanh(.) 함수 또는 그 역함수 tanh-1(.) 에 기반한 곱의 형태로 나타내었다. 이와 같이 개념적으로 동일한 다양한 표현 방법이 존재할 수 있다. 그뿐만 아니라 복잡도 감소를 위해 최소-합(min-sum) 알고리즘과 같은 다양한 간소화(simplified)된 복호 방법이 존재할 수 있다. 본 발명에서는 이러한 다양한 복호 알고리즘에 대한 자세한 설명은 생략하지만, 본 발명에서 제안하고자 하는 디코딩 스케줄링 방식과 상기 복호 알고리즘들뿐만 아니라 다양한 다른 형태의 복호 알고리즘을 결합할 수 있음은 자명하다. Since the method described above in FIGS. 6A and 6B is a general decoding method, a detailed description thereof will be omitted. However, in addition to the methods described in FIGS. 6A and 6B, other methods may be applied to determine the values of messages passed in the variable node and the check node, and detailed descriptions related thereto are described in “Frank R. Kschischang, Brendan J. Frey, and Hans-Andrea Loeliger, "Factor Graphs and the Sum-Product Algorithm," IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2, FEBRUARY 2001, pp498-519). For example, in Equations 15 and 16, the update expression of the check node is expressed in the form of a sum by expressing it based on the -log(tanh(.)) function. It is expressed in the form of a product based on the inverse function tanh -1 (.). As such, there may be various expression methods that are conceptually identical. In addition, in order to reduce complexity, various simplified decoding methods such as a min-sum algorithm may exist. In the present invention, detailed descriptions of these various decoding algorithms are omitted, but it is obvious that the decoding scheduling scheme proposed in the present invention and the decoding algorithms as well as various other types of decoding algorithms can be combined.

도 7은 본 발명의 일 실시 예에 따른 LDPC 부호화부의 세부 구성을 설명하기 위한 블록도이다.7 is a block diagram illustrating a detailed configuration of an LDPC encoding unit according to an embodiment of the present invention.

Kldpc 개의 비트들은 LDPC 부호화부(700)를 위한 Kldpc 개의 LDPC 정보어 비트들 I=(i0,i1,...,

Figure pat00054
)을 구성할 수 있다. LDPC 부호화부(700)는 Kldpc 개의 LDPC 정보어 비트들을 시스테매틱하게 LDPC 부호화하여, Nldpc 개의 비트들로 구성된 LDPC 코드워드 C = (c0,c1,..., cNldpc-1) = (i0,i1,..., iKldpc-1,p0,p1,...,pNldpc-Kldpc-1)를 생성할 수 있다. K ldpc bits are K ldpc LDPC information bits for the LDPC encoder 700 I = (i 0 ,i 1 ,...,
Figure pat00054
) Can be configured. The LDPC encoder 700 systematically performs LDPC encoding of K ldpc LDPC information bits, and an LDPC codeword consisting of N ldpc bits C = (c 0 ,c 1 ,..., c Nldpc-1 ) = (i 0 ,i 1 ,..., i Kldpc-1 ,p 0 ,p 1 ,...,p Nldpc-Kldpc-1 ) can be created.

상기 수학식 1에서 서술한 바와 같이 상기 LDPC 코드워드와 패리티 검사 행렬의 곱이 제로 벡터가 되도록 부호어가 결정된다. As described in Equation 1, a codeword is determined such that the product of the LDPC codeword and the parity check matrix becomes a zero vector.

도 7에 따르면, 부호화 장치(700)는 LDPC 부호화부(710)를 포함한다. LDPC 부호화부(710)는 패리티 검사 행렬 또는 그에 대응되는 지수행렬 또는 수열에 기초하여 입력 비트들에 대해 LDPC 부호화를 수행하여 LDPC 부호어를 생성할 수 있다. 이 경우, LDPC 부호화부(710)는 부호율(즉, LDPC 부호의 부호율) 또는 입력 비트 (또는 부호어 또는 정보어) 길이 또는 블록 길이 Z에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다. Referring to FIG. 7, the encoding apparatus 700 includes an LDPC encoding unit 710. The LDPC encoder 710 may generate an LDPC codeword by performing LDPC encoding on input bits based on a parity check matrix or an exponential matrix or sequence corresponding thereto. In this case, the LDPC encoder 710 uses a parity check matrix differently defined according to a code rate (that is, a code rate of an LDPC code) or an input bit (or code word or information word) length, or a block length Z. Encoding can be performed.

한편, 부호화 장치(700)는 LDPC 부호의 부호율, 입력 비트 (또는 정보어 또는 부호어) 길이, 패리티 검사 행렬에 대한 정보를 기저장하기 위한 메모리(미도시)를 더 포함할 수 있으며, LDPC 부호화부(710)는 이러한 정보를 이용하여 LDPC 부호화를 수행할 수 있다. 상기 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 순환 행렬의 지수 값에 대한 정보를 포함할 수 있다.Meanwhile, the encoding apparatus 700 may further include a memory (not shown) for pre-storing information on a code rate of an LDPC code, an input bit (or information word or code word) length, and a parity check matrix. The encoder 710 may perform LDPC encoding using this information. The information on the parity check matrix may include information on an index value of a cyclic matrix when the parity matrix presented in the present invention is used.

도 8은 본 발명의 일 실시 예에 따른 복호화 장치의 구성을 나타내는 블록도이다. 8 is a block diagram illustrating a configuration of a decoding apparatus according to an embodiment of the present invention.

도 8에 따르면, 복호화 장치(800)는 LDPC 복호화부(810)를 포함할 수 있다.Referring to FIG. 8, the decoding apparatus 800 may include an LDPC decoding unit 810.

LDPC 복호화부(810)는 패리티 검사 행렬 또는 그에 대응되는 지수 행렬 또는 수열에 기초하여 LDPC 부호어에 대해 LDPC 복호화를 수행한다. The LDPC decoder 810 performs LDPC decoding on an LDPC codeword based on a parity check matrix or an exponential matrix or sequence corresponding thereto.

예를 들어, LDPC 복호화부(810)는 반복 복호 알고리즘을 통해 LDPC 부호어 비트들에 대응되는 LLR 값을 패싱하여 LDPC 복호화를 수행하여 정보어 비트들을 생성할 수 있다. 여기에서, LLR 값은 송신기로부터 전송된 LDPC 부호어 비트들에 대응되는 채널 값으로, 다양한 방법으로 표현될 수 있다. For example, the LDPC decoder 810 may generate information word bits by performing LDPC decoding by passing LLR values corresponding to LDPC codeword bits through an iterative decoding algorithm. Here, the LLR value is a channel value corresponding to LDPC codeword bits transmitted from the transmitter, and may be expressed in various ways.

이 경우, LDPC 복호화부(810)는 부호율(즉, LDPC 부호의 부호율)에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다. In this case, the LDPC decoder 810 may perform LDPC decoding using a parity check matrix defined differently according to a code rate (ie, a code rate of an LDPC code).

도 9은 본 발명의 다른 실시 예에 따른 LDPC 복호화부 구조도를 나타낸다.9 is a diagram illustrating a structure of an LDPC decoder according to another embodiment of the present invention.

한편, 상술한 바와 같이 LDPC 복호화부(810)는 반복 복호 알고리즘을 사용하여 LDPC 복호화를 수행할 수 있으며, 이 경우, LDPC 복호화부(810)는 도 9와 같은 구조로 구성될 수 있다. 다만, 도 9에 도시된 세부 구성 역시 일 예일 뿐이다.Meanwhile, as described above, the LDPC decoding unit 810 may perform LDPC decoding using an iterative decoding algorithm. In this case, the LDPC decoding unit 810 may have a structure as shown in FIG. 9. However, the detailed configuration shown in FIG. 9 is also only an example.

도 9에 따르면, 복호화 장치(900)는 입력 처리기(901), 메모리(902), 변수노드 연산기(904), 제어기(906), 검사노드 연산기(908) 및 출력 처리기(910) 등을 포함한다. Referring to FIG. 9, the decoding apparatus 900 includes an input processor 901, a memory 902, a variable node calculator 904, a controller 906, a check node calculator 908, an output processor 910, and the like. .

입력 처리기(901)는 입력되는 값을 저장한다. 구체적으로, 입력 처리기(901)는 무선 채널을 통해 수신되는 수신 신호의 LLR 값을 저장할 수 있다.The input processor 901 stores an input value. Specifically, the input processor 901 may store an LLR value of a received signal received through a wireless channel.

제어기(904)는 무선 채널을 통해 수신되는 수신 신호의 블록의 크기(즉, 부호어의 길이), 부호율에 대응되는 패리티 검사 행렬을 기반으로 하여 변수 노드 연산기(904)에 입력되는 값의 개수 및 메모리(902)에서의 주소 값, 검사 노드 연산기(908)에 입력되는 값의 개수 및 메모리(902)에서의 주소 값 등을 결정한다. The controller 904 is the number of values input to the variable node operator 904 based on the size of the block of the received signal received through the radio channel (i.e., the length of the codeword) and the parity check matrix corresponding to the code rate. And an address value in the memory 902, the number of values input to the check node operator 908, and an address value in the memory 902 are determined.

메모리(902)는 변수 노드 연산기(904)와 검사 노드 연산기(908)의 입력 데이터 및 출력 데이터를 저장한다. The memory 902 stores input data and output data of the variable node operator 904 and the check node operator 908.

변수 노드 연산기(904)는 제어기(906)에서 입력받은 입력 데이터의 주소 정보 및 입력 데이터의 개수 정보에 따라 메모리(902)에서 데이터들을 입력 받아 변수 노드 연산을 한다. 이후, 변수 노드 연산기(904)는 제어기(906)에서 입력 받은 출력 데이터의 주소 정보 및 출력 데이터의 개수 정보에 기초하여 변수 노드 연산 결과들을 메모리(902)에 저장한다. 또한, 변수 노드 연산기(904)에서는 입력 처리기(901)와 메모리(902)에서 입력 받은 데이터를 기반으로 하여 변수 노드 연산 결과를 출력 처리기(910)에 입력한다. 여기에서, 변수 노드 연산은 도 6를 기반으로 상술한 바 있다.The variable node operator 904 receives data from the memory 902 according to address information of input data and information on the number of input data received from the controller 906 and performs a variable node operation. Thereafter, the variable node operator 904 stores the variable node operation results in the memory 902 based on the address information of the output data received from the controller 906 and information on the number of output data. In addition, the variable node operator 904 inputs a variable node operation result to the output processor 910 based on data received from the input processor 901 and the memory 902. Here, the variable node operation has been described above based on FIG. 6.

검사 노드 연산기(908)는 제어기(906)에서 입력받은 입력 데이터의 주소 정보 및 입력 데이터의 개수 정보에 기초하여 메모리(902)에서 데이터들을 입력받아 검사 노드 연산을 한다. 이후, 검사 노드 연산기(908)는 제어기(906)에서 입력받은 출력 데이터의 주소 정보 및 출력 데이터의 개수 정보에 기초하여 검사 노드 연산 결과들을 메모리(902)에 저장한다. 여기에서, 검사 노드 연산은 도 6을 기반으로 상술한 바 있다.The check node operator 908 receives data from the memory 902 based on address information of input data and the number of input data received from the controller 906 and performs a check node operation. Thereafter, the test node operator 908 stores the test node operation results in the memory 902 based on address information of the output data received from the controller 906 and information on the number of output data. Here, the check node operation has been described above based on FIG. 6.

출력 처리기(910)는 변수 노드 연산기(904)로부터 입력받은 데이터를 기반으로 하여 송신 측의 부호어의 정보어 비트들이 0이었는지 1이었는지 경판정 한 후, 그 경판정 결과를 출력하게 되고, 출력 처리기(910)의 출력 값이 최종적으로 복호화된 값이 되는 것이다. 이 경우, 도 6에서 하나의 변수 노드로 입력되는 모든 메시지 값(초기 메시지 값과 검사 노드로부터 입력되는 모든 메시지 값들)을 더한 값을 기반으로 경판정 할 수 있다. The output processor 910 makes a hard decision based on the data received from the variable node operator 904 to determine whether the information word bits of the codeword on the transmitting side were 0 or 1, and then outputs the hard decision result. The output value of 910 becomes the finally decoded value. In this case, a hard decision may be made based on the sum of all message values (initial message values and all message values input from the check node) input to one variable node in FIG. 6.

한편, 복호화 장치(900)의 메모리(902)는 LDPC 부호의 부호율, 입력 비트 (또는 정보어 또는 부호어) 길이, 패리티 검사 행렬에 대한 정보를 기저장할 수 있으며, LDPC 복호화부(810)는 이러한 정보를 이용하여 LDPC 부호화를 수행할 수 있다. 하지만, 이는 일 예일 뿐, 해당 정보들은 송신 측으로부터 제공될 수도 있다. Meanwhile, the memory 902 of the decoding apparatus 900 may pre-store information on the code rate of the LDPC code, the length of the input bit (or information word or code word), and the parity check matrix, and the LDPC decoder 810 LDPC encoding can be performed using this information. However, this is only an example, and the corresponding information may be provided from the transmitting side.

도 10은 본 발명의 일 실시 예에 따른 LDPC 복호화 장치에서 복호화 과정의 예시도이다. 10 is an exemplary diagram of a decoding process in an LDPC decoding apparatus according to an embodiment of the present invention.

도 10을 참고하면, 1001 단계에서, 각 변수 노드에는 수신된 신호로부터 생성된, 대응되는 비트의 채널 LLR 또는 본질적(intrinsic) LLR로 일컫는 값이 입력된다. 입력되는 LLR 값들은 레이트 디매칭된(rate de-matched) LLR 값들일 수 있다. 1003 단계에서, 각 변수 노드의 본질적(intrinsic) LLR은 이웃한 검사 노드에 전달되고, 모든 검사 노드들은 전달받은 메시지에 기반하여 각 변수 노드에 전달할 외적인(extrinsic) LLR에 해당하는 메시지를 계산한다. 플루딩(flooding) 방식의 LDPC 복호기는 모든 검사 노드들이 메시지 값을 계산하고 업데이트 하며, 계산된 외적인(extrinsic) LLR에 해당하는 메시지는 연결된 연결선을 따라 이웃한 변수 노드에 전달된다. Referring to FIG. 10, in step 1001, a value, referred to as a channel LLR or an intrinsic LLR, of a corresponding bit generated from a received signal is input to each variable node. The input LLR values may be rate de-matched LLR values. In step 1003, the intrinsic LLR of each variable node is transmitted to a neighboring check node, and all check nodes calculate a message corresponding to an extrinsic LLR to be transferred to each variable node based on the received message. In the flooding-type LDPC decoder, all check nodes calculate and update message values, and a message corresponding to the calculated extrinsic LLR is delivered to neighboring variable nodes along a connected connection line.

1005 단계에서, 모든 변수 노드들은 전달받은 외적인(extrinsic) LLR에 해당하는 메시지 및 본질적(intrinsic) LLR 값들에 기반하여, 검사 노드들에게 전달할 메시지 및 비트 값을 판정하기 위한 최종(complete) LLR을 생성한다. 최종 LLR은 APP(posteriori probability) 메트릭(metric), APP LLR 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다. 플루딩 방식의 LDPC 부호 복호기는 모든 변수 노드들이 메시지 값을 계산하고, 업데이트 한다. In step 1005, all variable nodes generate a complete LLR to determine the message and bit values to be delivered to the check nodes based on the message corresponding to the received extrinsic LLR and intrinsic LLR values. do. The final LLR may be referred to as a posterior probability (APP) metric, an APP LLR, or another term having an equivalent technical meaning. In the flooding-type LDPC code decoder, all variable nodes calculate and update message values.

1007 단계에서, 변수 노드는 검사 노드에게 메시지를 전달하기 전, 최종 LLR을 경판정(hard-decision)함으로써 비트 값을 추정한다. In step 1007, the variable node estimates the bit value by hard-decision on the final LLR before delivering the message to the check node.

1009 단계에서, 추정된 비트 값이 패리티 검사 행렬에 의해 결정되는 신드롬 검사식이 만족하는지 여부가 검사된다. 신드롬 검사식을 만족하는 것이 확인되는 경우, 1011 단계에서, 복호가 성공한 것으로 판단되고, 복호의 성공이 출력 및 보고된다. In step 1009, it is checked whether the estimated bit value satisfies the syndrome check equation determined by the parity check matrix. When it is confirmed that the syndrome check equation is satisfied, in step 1011, it is determined that the decoding has been successful, and the success of the decoding is output and reported.

신드롬 검사식을 만족하지 않는 것이 확인되는 경우, 1013 단계에서, 현재까지 수행된 반복 복호 횟수가 사전에 지정된 최대 반복 복호 횟수에 도달하였는지 여부가 확인된다. 현재까지 수행한 반복 복호 횟수가 최대 반복 복호 횟수에 도달하지 않은 경우, 상기 일련의 과정들이 다시 반복된다. 현재까지 수행한 반복 복호 횟수가 최대 반복 복호 횟수에 도달할 때까지 복호의 결과가 신드롬 검사식을 만족하지 않은 경우, 1015 단계에서, 복호 실패가 출력 및 보고된다. If it is determined that the syndrome check equation is not satisfied, in step 1013, it is checked whether the number of repetitive decoding performed so far reaches the maximum number of repetitive decoding previously specified. If the number of repetitive decoding performed so far has not reached the maximum number of repetitive decoding, the series of processes are repeated again. If the result of the decoding does not satisfy the syndrome check equation until the number of repetitive decoding performed so far reaches the maximum number of repetitive decoding, in step 1015, a decoding failure is output and reported.

레이어드 (layered) 방식의 LDPC 복호는 검사 노드들을 복수 개의 레이어로 구분한 다음, 순서가 된 검사 노드부터 순차적으로 복호를 수행하는 방식을 의미한다. The layered LDPC decoding refers to a method of dividing check nodes into a plurality of layers, and then sequentially performing decoding from the ordered check nodes.

도 10을 참고하면, 1003 단계에서, 순서가 된 레이어에 속한 검사 노드는 연결된 변수 노드로부터 메시지를 수신한다. 검사 노드는 계산 및 업데이트한 메시지를 이웃한 변수 노드에게 전달한다. 1005 단계에서, 업데이트된 메시지를 수신한 변수 노드들은 검사 노드에게 전달하기 위한 메시지 및 최종 LLR을 계산 및 업데이트한다. 상술한 바와 같은 하나의 레이어에 대한 일련의 연산 과정은 레이어 처리(layer processing)로 지칭된다. Referring to FIG. 10, in step 1003, a check node belonging to an ordered layer receives a message from a connected variable node. The check node delivers the calculated and updated message to neighboring variable nodes. In step 1005, variable nodes receiving the updated message calculate and update a message and a final LLR to be transmitted to the check node. A series of operation processes for one layer as described above is referred to as layer processing.

모든 레이어들에 대해 레이어 처리가 수행되면, 1007 단계에서, 수신단은 각 변수 노드에서 계산한 최종 LLR을 경판정함으로써 비트 추정값을 계산한다. 1009 단계에서, 수신단은 비트 추정값에 기반하여 신드롬 검사를 수행함으로써 복호의 성공 또는 실패 여부를 확인한다. 이 경우, 신드롬 검사에 해당하는 패리티 검사 행렬의 검사 노드는 전체 검사 노드들이거나 또는 사전에 정해져 있는 일부 검사 노드들일 수 있다. (예를 들면, 차수가 1인 변수 노드에 연결되어 있는 검사 노드들은 일부 또는 전체를 제외할 수도 있다.) When layer processing is performed for all layers, in step 1007, the receiving end calculates a bit estimate by hard-determining the final LLR calculated by each variable node. In step 1009, the receiving end checks whether the decoding succeeds or fails by performing a syndrome check based on the estimated bit value. In this case, the check nodes of the parity check matrix corresponding to the syndrome check may be all check nodes or some check nodes that are predetermined. (For example, some or all of the check nodes connected to the variable node of degree 1 may be excluded.)

일반적으로 LDPC 부호는 신드롬을 통해 오류를 검출할 수 있으나, 보다 높은 수준의 오류 검출 능력을 지원하기 위해서 외부 부호로서 CRC 부호가 추가로 적용될 수 있다. 외부 부호로서 CRC 부호와 내부 부호로서 LDPC 부호를 적용하였을 경우에 FEC 복호화 동작의 일반적인 예를 도 11에 나타내었다. In general, an LDPC code can detect an error through a syndrome, but a CRC code may be additionally applied as an external code to support a higher level of error detection capability. Fig. 11 shows a general example of an FEC decoding operation when a CRC code is applied as an outer code and an LDPC code is applied as an inner code.

도 11은 본 발명의 일 실시예에 따른 LDPC 및 CRC 부호에 기반한 복호화 과정의 예시도이다.11 is an exemplary diagram of a decoding process based on LDPC and CRC codes according to an embodiment of the present invention.

수신기는 통상적으로 도 11에서 도시된 바와 같이 1110 단계에서 LDPC 복호를 수행한 다음 1120 단계처럼 LDPC의 신드롬(syndrome)을 확인 또는 검사하여 오류 검출 여부를 결정한다. 여기서 LDPC 신드롬은, LDPC 복호를 수행한 뒤 경판정을 통해 얻을 수 있는 부호어를

Figure pat00055
라 하고 복호에 사용된 패리티 검사 행렬을 H라 할 때, 다음 수학식 19와 같이 결정되는 값을 의미한다. As shown in FIG. 11, the receiver generally performs LDPC decoding in step 1110 and then checks or checks the syndrome of the LDPC as in step 1120 to determine whether an error is detected. Here, the LDPC syndrome is a codeword that can be obtained through hard decision after performing LDPC decoding.
Figure pat00055
When denoted by and the parity check matrix used for decoding is denoted by H, it means a value determined as in Equation 19 below.

[수학식 19][Equation 19]

Figure pat00056
Figure pat00056

만일 실제 송신기에서 전송된 부호어를 c라 하면, 수학식 1에 의해서

Figure pat00057
가 성립하므로, 복호가 성공적으로 수행되었을 경우에는 상기 수학식 19의 신드롬 s 값 또한 0이 되어야 한다. (경우에 따라 LDPC 신드롬 값이 0인 경우를 LDPC 신드롬 값을 확인하여 통과(pass)되었다고 표현할 수도 있다.) 하지만 만일 상기 신드롬 값이 0이 아니라면 (또는 LDPC 신드롬 값이 통과되지 못했다면),
Figure pat00058
임을 의미한다. If the codeword transmitted from the actual transmitter is c, by Equation 1
Figure pat00057
Since is established, when decoding is successfully performed, the syndrome s value of Equation 19 should also be 0. (In some cases, when the LDPC syndrome value is 0, it may be expressed that the LDPC syndrome value is checked and passed.) However, if the syndrome value is not 0 (or if the LDPC syndrome value has not passed),
Figure pat00058
Means

상기 도 11의 1120 단계에서 LDPC 신드롬 s 값이 0이 아닌 경우에 수신기는 바로 1150 단계에서 예외처리 하여 LDPC 복호를 수행한 정보어 비트 또는 코드 블록을 시스템의 상위 계층에서 사용할지 사용하지 않을지 결정하거나 또는 사전에 정해져 있는 바에 따라 상기 LDPC 복호를 수생한 정보어 비트 또는 코드 블록을 폐기할지(discard) 여부를 결정할 수 있다. If the LDPC syndrome s value is not 0 in step 1120 of FIG. 11, the receiver immediately makes an exception in step 1150 and determines whether to use the information word bit or code block performed LDPC decoding in the upper layer of the system, or Alternatively, it may be determined whether to discard the information word bit or code block obtained by the LDPC decoding, as determined in advance.

하지만, 1120 단계에서 LDPC 신드롬 s 값이 0이 아닌 경우에도 수신기는 1150 단계에서 바로 예외처리하지 않고, 1130 단계처럼 정보어 비트에 대해 CRC 검출(또는 확인)을 수행할 수도 있다. 그 이유는 상기 LDPC 복호 결과에 따라 부호어 복호에는 실패 하였지만, LDPC 복호 이후에 패리티 비트에만 오류가 남아 있고 정보어 비트에는 오류가 없을 가능성도 있기 때문에 1130 단계에서 CRC 검출을 수행하여 정보어 비트에 대한 오류 검출 여부를 결정할 수 있다. However, even if the LDPC syndrome s value is not 0 in step 1120, the receiver does not immediately process an exception in step 1150 and may perform CRC detection (or confirmation) on the information word bit as in step 1130. The reason is that the codeword decoding failed according to the LDPC decoding result, but since there is a possibility that only the parity bit remains and there is no error in the information word bit after LDPC decoding, CRC detection is performed in step 1130 to determine the information word bit. It is possible to determine whether to detect errors for

또한, LDPC 복호에 따른 LDPC 신드롬 값이 0인 경우 수신기는 1130 단계에서 CRC 검출을 수행할 수 있다. In addition, when the LDPC syndrome value according to LDPC decoding is 0, the receiver may perform CRC detection in step 1130.

만일 상기 1130 단계에서 CRC 검출을 통해 정보어 비트 벡터가 성공적으로 복호되었다고 판단되는 경우에는 복호 과정이 종료된다. 만일 1130 단계에서 CRC 검출 결과 정보어 비트 벡터에 오류가 포함되어 있다고 판단한 경우에는 수신기는 복호를 수행한 정보어 비트 벡터 또는 코드 블록을 1150 단계와 같이 예외처리하여 해당 정보어 벡터 또는 코드 블록을 시스템의 상위 계층에서 사용할지 사용하지 않을지 결정하거나 또는 폐기할지(discard) 여부를 결정할 수 있다. If it is determined in step 1130 that the information word bit vector has been successfully decoded through CRC detection, the decoding process is terminated. If it is determined in step 1130 that the information word bit vector contains an error as a result of CRC detection, the receiver treats the decoded information word bit vector or code block as an exception as in step 1150, and generates the corresponding information word vector or code block. It is possible to decide whether to use or not use, or to discard (discard) in the upper layer of the.

본 발명에서 예외처리의 의미는 복호가 모든 프로세스 상에서 성공적으로 진행되었을 경우에 수행되어야 하는 동작 외에 복호가 실패하였거나 실패할 가능성이 있다고 판단될 경우에 수행하는 모든 동작을 의미할 수 있음에 유의한다. Note that in the present invention, the meaning of exception handling may mean all operations performed when it is determined that decoding has failed or is likely to fail, in addition to operations to be performed when decoding has been successfully performed in all processes.

또한, 수신기는 복호 성공 여부에 관한 인스트럭션(instruction) 또는 flag 등을 생성하여 상위 계층에 전달할 수도 있다. 상위 계층에서는 상기 인스트럭션 또는 flag 등에 기반하여 복호가 완료된 정보어 비트 또는 코드 블록들의 처리 방법을 결정할 수 있다. (예: 재전송 요청 결정 등)In addition, the receiver may generate an instruction or flag regarding whether or not the decoding is successful and transmit it to an upper layer. The upper layer may determine a processing method of decoded information word bits or code blocks based on the instruction or flag. (Example: Resend request decision, etc.)

참고로 수학식 19에서

Figure pat00059
이지만, 복호된 부호어
Figure pat00060
가 c와는 다른 부호어인 경우에는 LDPC 신드롬이 0이 될 수도 있다. 이러한 오류는 LDPC 부호를 통해 검출이 불가능하기 때문에(undetected error) 통상적으로 LDPC 복호 후에 CRC 검출을 수행해야 오류를 검출할 수 있다. For reference, in Equation 19
Figure pat00059
But, the decoded codeword
Figure pat00060
If is a codeword different from c, the LDPC syndrome may be 0. Since such an error cannot be detected through the LDPC code (undetected error), it is generally necessary to perform CRC detection after LDPC decoding to detect the error.

또한, 상기 신드롬 값 s는 수학식 19와 같이 패리티 검사 행렬과 복호된 부호어에 기반한 계산 과정을 통해 획득 (또는 계산 또는 결정)할 수도 있지만, LDPC 복호기의 구현 상 특징에 따라 쉽게 얻을 수도 있다. 예를 들어 상기 수학식 15에는 LDPC 복호를 위해 복호 과정에 사용되는 메시지를 크기와 부호로 나누어 복호를 수행할 수 있는데, 이때 상기 신드롬 값 s는 상기 메시지들의 + 또는 - 부호(sign)들의 연산을 통해 쉽게 획득 (또는 계산 또는 결정)할 수 있다. 예를 들면, 실제 복호기의 구현에서 + 부호는 0, - 부호는 1과 같은 이진수로 대응시켜 적절한 XOR 연산에 기반하여 쉽게 신드롬 값을 얻어낼 수 있다. 특히, LDPC 반복 복호 과정에서 구현상 특징으로부터 신드롬 값이 0인지 아닌지는 쉽게 확인(identify) 가능하다. 참고로 실제 LDPC 복호된 부호어의 경판정도 LDPC 복호를 수행한 각 비트 별 메시지들의 부호에 기반하여 쉽게 판단할 수 있다. In addition, the syndrome value s may be obtained (or calculated or determined) through a calculation process based on a parity check matrix and a decoded codeword as shown in Equation 19, but may be easily obtained according to characteristics of the LDPC decoder. For example, in Equation 15, a message used in a decoding process for LDPC decoding can be divided into a size and a code to perform decoding, where the syndrome value s is the operation of + or-signs of the messages. It can be easily obtained (or calculated or determined) through. For example, in an actual decoder implementation, a + sign is mapped to a binary number such as 0 and a-sign is 1, so that a syndrome value can be easily obtained based on an appropriate XOR operation. In particular, it is possible to easily identify whether the syndrome value is 0 or not from an implementation feature in the LDPC iterative decoding process. For reference, the hard decision degree of the actual LDPC-decoded codeword can be easily determined based on the codes of messages for each bit of LDPC decoding.

상기 1120 단계에서 LDPC 신드롬을 검사 또는 확인할 때는 반드시 LDPC 부호의 모든 신드롬을 검사 또는 확인할 필요는 없으며, 일부 신드롬 값만 검사 또는 확인할 수도 있다. 예를 들어 차수가 1인 변수 노드에 연결된 검사 노드, 다시 말해 차수가 1인 패리티 비트에 대응되는 검사 노드와 관련된 신드롬 값들은 상기 1120 단계에서 검사 또는 확인하는데 사용하지 않을 수도 있다. 차수가 1인 변수 노드에 대응되는 비트들은 통상적으로 오류가 정정될 확률이 현저히 낮기 때문에 LDPC 신드롬을 검사하여도 항상 오류가 발생한 것으로 검출될 가능성이 높다. 따라서 잘못된 오류 검사 결과를 방지하기 위하여 많은 경우에 차수가 2 이상인 변수 노드 또는 비트에만 연결되어 있는 검사 노드 전체 또는 일부에 대해서 LDPC 신드롬을 검사 또는 확인한다. When checking or confirming the LDPC syndrome in step 1120, it is not necessary to check or confirm all syndromes of the LDPC code, and only some syndrome values may be tested or confirmed. For example, a check node connected to a variable node of degree 1, that is, syndrome values related to a check node corresponding to a parity bit of degree 1 may not be used for checking or checking in step 1120. Since the bits corresponding to the variable node of order 1 have a significantly low probability of correcting an error, it is highly likely to always be detected that an error has occurred even when the LDPC syndrome is checked. Therefore, in order to prevent an erroneous error test result, in many cases, the LDPC syndrome is checked or confirmed for all or part of the test nodes connected only to variable nodes or bits of degree 2 or more.

본 발명에서 고려하는 LDPC 부호는 도 3의 준순환 형태의 패리티 검사 행렬로 정의할 수 있는 준순환 LDPC 부호로서 통상적으로 수학식 11과 같이 L 또는 Z 등으로 표현하는 블록 크기에 따라 대수적인 특징을 가지고 있다. 예를 들어 준순환 LDPC 부호의 Tanner 그래프 상의 사이클 특성 등은 블록 크기와 관련이 있으며, 만일 패리티 검사 행렬이 완전 계수를 가질 경우에 LDPC 정보어의 길이 또한 블록 크기의 배수 형태로 나타낼 수 있다. 이러한 대수적 특징으로 인해 준순환 LDPC 부호는 부호화 뿐만 아니라 복호화 또한 블록 길이에 기반하여 보다 효율적으로 수행할 수도 있다. The LDPC code considered in the present invention is a quasi-circular LDPC code that can be defined as a quasi-circular parity check matrix of FIG. 3, and generally has algebraic characteristics according to a block size expressed by L or Z as shown in Equation 11. Have. For example, the cycle characteristics of the quasi-cyclic LDPC code on the Tanner graph are related to the block size, and if the parity check matrix has complete coefficients, the length of the LDPC information word can also be expressed in the form of a multiple of the block size. Due to this algebraic characteristic, not only encoding but also decoding of the quasi-cyclic LDPC code can be performed more efficiently based on the block length.

하지만, 일반적으로 전송 블록은 다양한 길이를 갖기 때문에 반드시 준순환 LDPC 부호의 패리티 검사 행렬에서 정의할 수 있는 LDPC 부호의 정보어 비트 수, 즉, 특정 블록 크기 Z의 배수 형태로 나타나지 않을 수 있다. 도 4에서 설명한 세그먼테이션 이후에도 마찬가지로 블록 크기 Z의 배수 형태로 나타나지 않을 수 있다. 이와 같이 상기 패리티 검사 행렬에 대해 한 번에 LDPC 부호화를 수행할 수 있는 최대 LDPC 정보어 비트 수 또는 최대 코드 블록 크기 보다 작거나 블록 크기에 대해 배수 형태가 아닌 정보어 비트들 또는 코드 블록을 부호화 할 때, 부호화 또는 복호화의 편의를 위해서 상기 블록 크기의 배수를 만족하도록 제로 패딩(또는 단축)과 같은 동작을 추가 수행할 수도 있다. However, since a transport block generally has various lengths, the number of information word bits of the LDPC code that can be defined in the parity check matrix of the quasi-cyclic LDPC code, that is, may not appear in the form of a multiple of the specific block size Z. Even after the segmentation described in FIG. 4, it may not appear in the form of a multiple of the block size Z. In this way, information word bits or code blocks that are smaller than the maximum number of LDPC information bits that can perform LDPC encoding on the parity check matrix at one time or that are less than the maximum code block size or that are not multiples of the block size are coded. In this case, for convenience of encoding or decoding, an operation such as zero padding (or shortening) may be additionally performed to satisfy a multiple of the block size.

본 발명에서는 상기 LDPC 부호의 패리티 검사 행렬 또는 패리티 검사 행렬의 기본 행렬 (또는 모행렬) 등에 대해 한 번에 부호화가 가능한 최대 LDPC 정보어 비트 수를 편의상 패리티 검사 행렬의 최대 LDPC 정보어 비트 수 또는 최대 코드 블록 크기라 칭할 수 있으며, 이는 Kcb로 표현될 수 있다. In the present invention, the maximum number of bits of the LDPC information that can be coded at one time for the parity check matrix of the LDPC code or the basic matrix (or parent matrix) of the parity check matrix is determined for convenience. It can be referred to as a code block size, which can be expressed as K cb.

최대 LDPC 정보어 비트 수 또는 최대 코드 블록 크기는 주어진 패리티 검사 행렬 또는 기본 행렬 마다 다르게 정의될 수도 있다. 예를 들어 기본 행렬 B1에 기반하여 정의되는 패리티 검사 행렬을 이용한 부호화에서는 상기 최대 코드 블록 크기는 Kcb1 = 8448로 정의되고, 기본 행렬 B2에 기반하여 정의되는 패리티 검사 행렬을 이용한 부호화에서는 상기 최대 코드 블록 크기가 Kcb2 = 3840로 정의될 수 있다. 이때 상기 Kcb1 = 8448 및 Kcb2 = 3840은 모두 각 기본 행렬에 대해 적용 가능한 블록 크기 Z의 최대값의 배수가 되어야 함에 유의한다. The maximum number of LDPC information word bits or the maximum code block size may be differently defined for each given parity check matrix or basic matrix. For example, in coding using a parity check matrix defined based on the basic matrix B1, the maximum code block size is defined as K cb1 = 8448, and in coding using a parity check matrix defined based on the basic matrix B2, the maximum code The block size can be defined as K cb2 = 3840. In this case, it should be noted that K cb1 = 8448 and K cb2 = 3840 must be multiples of the maximum value of the block size Z applicable to each basic matrix.

예를 들어 기본 행렬 B1 및 B2에 대해 적용 가능한 블록 크기의 최대값이 모두 384로 동일하다면, Kcb1 = 8448 = 22*384 및 Kcb2 = 3840 = 10*384와 같이 나타나며, 기본 행렬 B1의 정보어 비트에 대응되는 부분 행렬이 22개의 열 블록으로 구성되며 기본 행렬 B2의 정보어 비트에 대응되는 부분 행렬은 10개의 열 블록으로 구성됨을 의미한다. For example, if the maximum values of the applicable block sizes for the basic matrices B1 and B2 are the same as 384, K cb1 = 8448 = 22*384 and K cb2 = 3840 = 10*384, and the information of the basic matrix B1 This means that the partial matrix corresponding to the bit is composed of 22 column blocks, and the partial matrix corresponding to the information word bit of the basic matrix B2 is composed of 10 column blocks.

이와 같이 본 발명에서는 정보어 비트에 대응되는 부분 행렬의 열의 개수가 블록 크기의 배수이기 때문에 부호화 및 복호화의 편의를 위해 전송하고자 하는 전송 블록 (transport block)에 <Null> bit들을 부가하여 LDPC 부호화를 적용할 코드 블록의 크기가 LDPC 패리티 검사 행렬의 블록 크기 Z의 배수가 되도록 설정할 수도 있다. <Null> bit들은 세그멘테이션 적용 여부에 상관 없이 부가될 수도 있으며 코드 블록의 크기가 일정하도록 설정하기 위하여 부가 될 수도 있다. 이러한 LDPC 부호의 정보어 비트에 <Null> bit들을 부가하는 것을 통상적으로 '단축'이라고 하며, 송신기와 수신기에서 약속된 위치에 약속된 비트 값(예를 들면 0)으로 설정되어 있기 때문에 실제로는 송신되지 않을 수 있으며, 수신기에서는 그 값을 정확히 알 수 있기 때문에 복호 과정에서 제외하여 복호를 수행하거나, 복호 과정에서 약속된 값을 적용하여 복호를 수행할 수도 있다. As described above, in the present invention, since the number of columns of the partial matrix corresponding to the information word bits is a multiple of the block size, LDPC encoding is performed by adding <Null> bits to the transport block to be transmitted for convenience of encoding and decoding. The size of the code block to be applied may be set to be a multiple of the block size Z of the LDPC parity check matrix. <Null> bits may be added irrespective of whether segmentation is applied or not, and may be added to set the size of the code block to be constant. Adding <Null> bits to the information word bits of these LDPC codes is generally called'shortening', and since it is set as the bit value (for example, 0) at the promised position in the transmitter and receiver, it is actually transmitted. It may not be possible, and since the receiver can accurately know the value, decoding may be performed by excluding it from the decoding process, or decoding may be performed by applying a value promised during the decoding process.

예를 들어 단축된 비트들의 약속된 값이 0일 경우에 복호기에서는 단축된 위치의 비트가 0일 확률이 1에 대응되는 값(예: LLR의 경우 무한대 값에 대응되는 시스템에서 설정된 최대값)을 적용하여 복호를 수행할 수도 있다. For example, if the promised value of the shortened bits is 0, the decoder returns a value corresponding to 1 (e.g., in the case of LLR, the maximum value set in the system corresponding to the infinity value). It can also be applied to perform decoding.

일반적으로 만일 수학식 9 내지 수학식 14에서 설명한 리프팅 방법처럼 하나의 LDPC 지수 행렬 또는 수열 또는 패리티 검사 행렬 등으로부터 매우 다양한 블록 크기 L (또는 Z)에 대해 적절히 수열을 변환하여 사용하는 시스템의 경우, 1개 또는 적은 개수의 수열에 대해서만 구현하면 되기 때문에 많은 이점이 있다. 하지만, 지원하고자 하는 블록 크기의 종류가 많아질수록 모든 블록 크기에 대해 성능이 좋은 LDPC 부호를 설계하는 것은 매우 어려운 문제이다. In general, in the case of a system in which a sequence is appropriately transformed and used for a wide variety of block sizes L (or Z) from one LDPC exponential matrix or sequence or parity check matrix, like the lifting method described in Equations 9 to 14, There are many advantages because it only needs to be implemented for one or a small number of sequences. However, as the number of block sizes to be supported increases, it is a very difficult problem to design an LDPC code with good performance for all block sizes.

설계된 기본 행렬 또는 지수 행렬에 기반한 LDPC 부호화 및 복호화 과정의 실시 예에 대한 흐름도를 도 12 및 도 13에 나타내었다.12 and 13 are flowcharts illustrating an embodiment of an LDPC encoding and decoding process based on a designed basic matrix or an exponential matrix.

도 12는 본 발명의 일 실시에에 따른 LDPC 부호화 과정의 실시예를 도시한 도면이다. 12 is a diagram illustrating an embodiment of an LDPC encoding process according to an embodiment of the present invention.

먼저 송신기는 도 12의 1210 단계와 같이 전송하고자 하는 전송 블록 크기 (또는, 트랜스포트 블록 크기, transport block size) TBS를 결정한다. 그리고 송신기는 1220 단계에서 상기 TBS가 최대 코드 블록 크기 (code block size) 인 max CBS 보다 큰지 작거나 같은지 판단한다. First, as shown in step 1210 of FIG. 12, the transmitter determines the TBS of the transport block size (or transport block size, transport block size) to be transmitted. In step 1220, the transmitter determines whether the TBS is greater than, less than or equal to max CBS, which is the maximum code block size.

만일 TBS가 max CBS보다 더 큰 경우, 송신기는 1230 단계에서 상기 전송 블록을 세그멘테이션 하여 새롭게 CBS를 결정하고, 작거나 같은 경우에는 세그멘테이션 동작을 생략하고 상기 TBS를 CBS로 결정한다. If the TBS is greater than max CBS, the transmitter determines a new CBS by segmenting the transport block in step 1230, and if it is less than or equal to the TBS, the segmentation operation is omitted and the TBS is determined as CBS.

송신기는 1240 단계에서는 상기 CBS를 기반으로 LDPC 부호화에 적용할 블록 크기 (Z) 값을 결정한다. In step 1240, the transmitter determines a block size (Z) value to be applied to LDPC encoding based on the CBS.

그리고 송신기는 1250 단계에서 상기 TBS 또는 CBS 또는 블록 크기 (Z) 값에 따라 송신기는 적절히 LDPC 지수 행렬 또는 수열을 결정한다. In step 1250, the transmitter appropriately determines the LDPC index matrix or sequence according to the TBS or CBS or block size (Z) value.

그리고 송신기는 1260 단계에서 상기 결정된 블록 크기와 지수 행렬 또는 수열에 기반하여 LDPC 부호화를 수행한다. 상기 1250 단계에는 경우에 따라서 상기 결정된 블록 크기에 기반하여 상기 결정된 LDPC 지수 행렬 또는 수열을 변환 하는 과정이 포함될 수도 있다. LDPC 부호화를 위한 LDPC 지수 행렬 또는 수열 또는 패리티 검사 행렬은 시스템에 따라 TBS 또는 CBS에 기반하여 다양한 방식으로 결정될 수 있음은 자명하다. 예를 들어 TBS를 통해 기본 행렬을 먼저 결정하고, 상기 결정된 기본 행렬과 CBS에 기반하여 LDPC 지수 행렬 또는 수열 패리티 검사 행렬을 결정하는 것도 가능하며, 이 외의 다양한 방법도 적용할 수 있다.In step 1260, the transmitter performs LDPC encoding based on the determined block size and an exponential matrix or sequence. In some cases, step 1250 may include a process of transforming the determined LDPC index matrix or sequence based on the determined block size. It is obvious that the LDPC exponential matrix or sequence or parity check matrix for LDPC encoding may be determined in various ways based on TBS or CBS depending on the system. For example, it is possible to first determine a basic matrix through TBS, and determine an LDPC exponential matrix or a sequence parity check matrix based on the determined basic matrix and CBS, and various other methods may be applied.

LDPC 복호화 과정도 부호화 과정에 대응되도록 도 13과 같이 나타낼 수 있다. The LDPC decoding process may also be represented as shown in FIG. 13 so as to correspond to the encoding process.

도 13은 본 발명의 일 실시 예에 따라 LDPC 복호화 과정의 실시예를 도시한 도면이다. 13 is a diagram illustrating an embodiment of an LDPC decoding process according to an embodiment of the present invention.

수신기는 입력 비트 혹은 전송 블록 혹은 코드 블록에 상응하는 신호를 수신할 수 있다. 본 발명에서 입력 비트는 LDPC 정보어 비트, 또는 TB, 또는 TB에 CRC를 덧붙여진 비트들(TB + CRC), 또는 코드 블록 비트를 의미할 수도 있다. 그리고, 수신기는 1310 단계에서 상기 신호에 기반하여 전송 블록 또는 입력 비트의 수를 결정한다. 그리고, 수신기는 1320 단계에서 TBS가 max CBS 보다 큰지 여부를 판단한다. 여기서 상기 max CBS는 LDPC 부호화에 사용된 기본 행렬 또는 패리티 검사 행렬에 따라 달라질 수 있기 때문에 상기 TBS 또는 부호율 등에 따라 max CBS를 결정하는 과정(미도시)이 추가로 필요할 수도 있다.The receiver may receive a signal corresponding to an input bit or a transmission block or a code block. In the present invention, an input bit may mean an LDPC information word bit, or a TB, or a bit with a CRC added to the TB (TB + CRC), or a code block bit. In step 1310, the receiver determines the number of transmission blocks or input bits based on the signal. In step 1320, the receiver determines whether TBS is greater than max CBS. Here, since the max CBS may vary according to a basic matrix or a parity check matrix used for LDPC encoding, a process (not shown) of determining max CBS according to the TBS or code rate may be additionally required.

TBS가 max CBS 보다 크다면 수신기는 1330 단계에서 세그멘테이션이 적용된 CBS의 크기를 결정한다. 만일 TBS가 max CBS 보다 작거나 같다고 판단될 경우에는 TBS는 곧 CBS와 동일하게 결정된다. If the TBS is greater than max CBS, the receiver determines the size of the segmented CBS in step 1330. If TBS is determined to be less than or equal to max CBS, TBS is immediately determined to be the same as CBS.

수신기는 1340 단계에서 LDPC 복호화에 적용할 블록 크기(Z) 값을 결정한다. 상기 1310 단계 내지 1330 단계는 블록 크기를 결정하는 단계로서 하나의 단계로 표현될 수도 있다. In step 1340, the receiver determines a block size (Z) value to be applied to LDPC decoding. Steps 1310 to 1330 are steps of determining a block size and may be expressed as one step.

그리고, 수신기는 1350 단계에서 상기 TBS 또는 CBS 또는 블록 크기(Z) 값 또는 부호율 등에 기반하여 LDPC 패리티 검사 행렬 또는 지수 행렬 또는 수열을 결정한다. 그리고 수신기는 1360 단계에서 상기 결정된 블록 크기와 패리티 검사 행렬 또는 지수 행렬 또는 수열을 이용하여 LDPC 복호화를 수행할 수 있다. 한편, 상기 (1350) 단계에는 경우에 따라서 상기 결정된 블록 크기에 기반하여 상기 결정된 LDPC 패리티 검사 행렬 또는 지수 행렬 또는 수열을 변환 하는 과정이 포함될 수도 있다. LDPC 복호화를 위한 LDPC 지수 행렬 또는 수열 또는 패리티 검사 행렬은 시스템에 따라 TBS 또는 CBS에 기반하여 다양한 방식으로 결정될 수 있음은 자명하다. 예를 들어 TBS 또는 부호율 등에 기반하여 기본 행렬을 먼저 결정하고, 상기 결정된 기본 행렬에 기반하여 max CBS를 결정하고 (또는 설정하고), 상기 결정 또는 설정된 max CBS를 기반으로 CBS를 결정한 다음에 상기 결정된 CBS에 기반하여 블록 크기 Z 및 LDPC 지수 행렬 또는 수열 또는 패리티 검사 행렬을 결정하는 것도 가능하며, 이 외의 다양한 방법도 적용할 수 있다.In step 1350, the receiver determines the LDPC parity check matrix or exponential matrix or sequence based on the TBS or CBS or the block size (Z) value or code rate. In step 1360, the receiver may perform LDPC decoding using the determined block size and parity check matrix, exponential matrix, or sequence. Meanwhile, the step 1350 may include a process of transforming the determined LDPC parity check matrix, exponential matrix, or sequence based on the determined block size in some cases. It is obvious that the LDPC index matrix or sequence or parity check matrix for LDPC decoding may be determined in various ways based on TBS or CBS depending on the system. For example, a basic matrix is first determined based on TBS or code rate, max CBS is determined (or set) based on the determined basic matrix, and CBS is determined based on the determined or set max CBS, and then the above Based on the determined CBS, it is possible to determine the block size Z and LDPC exponential matrix or sequence or parity check matrix, and various other methods can be applied.

상기 실시 예에 따르면 도 12 및 도 13의 1250, 1350 단계에서 LDPC 부호의 지수 행렬 또는 수열을 결정하는 과정은 TBS 또는 CBS 또는 블록 크기(Z) 중에 하나에 의해 지수 행렬 또는 수열이 결정되는 경우에 대해서 기술하였으나, 다양한 다른 방법을 적용할 수도 있다. According to the above embodiment, the process of determining the exponential matrix or sequence of the LDPC code in steps 1250 and 1350 of FIGS. 12 and 13 is when the exponential matrix or sequence is determined by one of TBS, CBS, or block size (Z). Has been described, but various other methods may be applied.

상기 도 12 및 도 13의 LDPC 부호의 기본 행렬 및 지수 행렬(또는 LDPC 수열)에 기반한 LDPC 부호화 및 복호화 과정의 실시 예에 있어서, 상기 LDPC 부호에 대해서 적절히 정보어 비트의 일부를 단축 (shortening) 하고 부호어 비트의 일부를 천공(puncturing) 및 리피티션 하여 다양한 부호율과 다양한 길이의 LDPC 부호화 및 복호화가 지원될 수 있다. 예를 들어, 상기 도 12 및 도 13에서 LDPC 부호화 및 복호화를 위해 결정된 기본 행렬 또는 지수 행렬에서 정보어 비트 일부에 단축을 적용한 다음, 패리티 검사 행렬에서 처음 2 개의 열 블록에 대응되는 정보어 비트 또는 입력 비트 또는 코드 블록의 일부를 천공하고, 패리티 일부를 천공하거나 LDPC 부호어 일부를 리피티션 하면 다양한 정보어 길이(또는 코드 블록 길이)와 다양한 부호율을 지원할 수 있다. In an embodiment of the LDPC encoding and decoding process based on the basic matrix and the exponent matrix (or LDPC sequence) of the LDPC code of FIGS. 12 and 13, a part of the information word bit is appropriately shortened for the LDPC code. By puncturing and repeating a part of the codeword bits, LDPC encoding and decoding of various code rates and various lengths may be supported. For example, after applying a shortening to some of the information word bits in the basic matrix or exponential matrix determined for LDPC encoding and decoding in FIGS. 12 and 13, the information word bits corresponding to the first two column blocks in the parity check matrix or When a part of an input bit or a code block is punctured, a part of a parity is punctured, or a part of an LDPC codeword is repeated, various information word lengths (or code block lengths) and various code rates can be supported.

그뿐만 아니라 LDPC 부호의 단축 또는 제로 패딩 등을 이용하여 가변 정보어 길이나 가변 부호율을 지원할 때 단축 순서나 단축 방법에 따라 부호의 성능이 개선될 수 있다. 만일 단축 순서가 기 설정되어 있을 때, 기본 행렬의 일부 또는 전체를 적절히 순서를 재정렬함으로써 부호화 성능을 개선할 수 있다. 또한 특정 정보어 길이 (또는 코드 블록 길이 CBS)에 대해 블록 크기 또는 단축을 적용할 열 블록의 개수를 적절히 결정하여 성능을 개선할 수도 있다. In addition, when a variable information word length or a variable code rate is supported by using shortening or zero padding of the LDPC code, performance of the code may be improved according to the shortening order or shortening method. If the shortening order is set in advance, coding performance can be improved by properly rearranging the order of part or all of the basic matrix. In addition, performance may be improved by appropriately determining the number of column blocks to which a block size or shortening is applied for a specific information word length (or code block length CBS).

일반적으로 LDPC 부호는 부호율에 따라 부호어 비트에 천공을 적용하여 부호율을 조절할 수 있다. 차수가 1인 열에 대응되는 패리티 비트를 천공할 경우에는 LDPC 복호기에서 패리티 검사 행렬에서 대응되는 부분의 일부 또는 전체를 사용하지 않고 복호를 수행할 수 있기 때문에 복호 복잡도가 줄어드는 장점이 있다. 부호화 성능을 고려할 경우에는 패리티 비트의 천공 순서 또는 생성된 LDPC 부호어의 전송 순서를 조절함으로써 LDPC 부호의 성능을 개선할 수 있는 방법이 있다. 예를 들어 단순히 패리티 비트들을 천공하여 가변 부호율을 지원하는 것보다 정보어 비트의 일부와 패리티 비트를 적절히 천공할 경우 더 우수한 성능을 지원할 수 있다. 또한 더 낮은 부호율을 지원하기 위해 LDPC 부호어 일부를 리피티션할 때 그 순서를 사전에 적절히 결정하여 LDPC 부호화 성능을 개선할 수도 있다. In general, for LDPC codes, the code rate can be adjusted by applying puncturing to the codeword bits according to the code rate. When a parity bit corresponding to a column of order 1 is punctured, decoding complexity is reduced because the LDPC decoder can perform decoding without using a part or all of the corresponding part of the parity check matrix. In consideration of coding performance, there is a method for improving the performance of the LDPC code by adjusting the puncturing order of parity bits or the transmission order of the generated LDPC codewords. For example, rather than simply puncturing parity bits to support a variable code rate, better performance can be supported when part of the information word bits and parity bits are properly punctured. In addition, when repeating some LDPC codewords to support a lower code rate, the order of the LDPC codewords may be appropriately determined in advance to improve LDPC coding performance.

통상적으로 상기 LDPC 부호화 과정에서 송신기는 먼저 LDPC 부호화를 적용할 입력 비트(또는 코드 블록)의 수 (또는 크기)를 결정한 다음에 그 수에 따라 상기 LDPC 부호화를 적용할 블록 크기(Z)를 결정하고, 상기 블록 크기에 따라 적절한 LDPC 지수 행렬 또는 수열을 결정한 다음, 상기 블록 크기(Z)와 상기 결정된 지수 행렬 또는 LDPC 수열을 기반으로 LDPC 부호화를 수행한다. 이때 상기 LDPC 지수 행렬 또는 수열을 변환 없이 LDPC 부호화에 적용할 수도 있으며, 경우에 따라 상기 LDPC 지수 행렬 또는 수열을 블록 크기(Z)에 따라 적절히 변환하여 LDPC 부호화를 수행할 수 있다. Typically, in the LDPC encoding process, the transmitter first determines the number (or size) of input bits (or code blocks) to which LDPC encoding is applied, and then determines the block size (Z) to which the LDPC encoding is applied according to the number. , After determining an appropriate LDPC exponential matrix or sequence according to the block size, LDPC encoding is performed based on the block size (Z) and the determined exponential matrix or LDPC sequence. In this case, the LDPC index matrix or sequence may be applied to LDPC encoding without transformation. In some cases, the LDPC index matrix or sequence may be appropriately transformed according to a block size (Z) to perform LDPC encoding.

마찬가지로 LDPC 복호화 과정에서 수신기는 전송된 LDPC 부호어에 대한 입력 비트 (또는 코드 블록)의 수 (또는 크기)를 결정한 다음에 그 수에 따라 LDPC 복호화를 적용할 블록 크기(Z)를 결정하고, 상기 블록 크기에 따라 적절한 LDPC 지수 행렬 또는 수열을 결정한 다음, 상기 블록 크기(Z)와 상기 결정된 지수 행렬 또는 LDPC 수열을 기반으로 LDPC 복호화를 수행한다. 이때 상기 LDPC 지수 행렬 또는 수열을 변환 없이 LDPC 복호화에 적용할 수도 있으며, 경우에 따라 상기 LDPC 지수 행렬 또는 수열을 블록 크기(Z)에 따라 적절히 변환하여 LDPC 복호화를 수행할 수 있다. Similarly, in the LDPC decoding process, the receiver determines the number (or size) of input bits (or code blocks) for the transmitted LDPC codeword, and then determines the block size (Z) to which LDPC decoding is applied according to the number. After determining an appropriate LDPC exponential matrix or sequence according to the block size, LDPC decoding is performed based on the block size (Z) and the determined exponential matrix or LDPC sequence. In this case, the LDPC exponent matrix or sequence may be applied to LDPC decoding without transformation. In some cases, the LDPC exponent matrix or sequence may be appropriately transformed according to the block size (Z) to perform LDPC decoding.

도 14는 본 발명에서 설명할 FEC 부호화부 및 FEC 복호화부에 적용되는 내부 부호인 LDPC 부호의 패리티 검사 행렬의 일반적인 구조를 나타내었다. 14 shows a general structure of a parity check matrix of an LDPC code, which is an inner code applied to an FEC encoder and an FEC decoder to be described in the present invention.

상기 도 14를 참고하면, 패리티 검사 행렬은 열의 개수가 N, 행의 개수가 (M1 + M2)이다. 일반적으로 패리티 검사 행렬이 완전 계수(full rank)를 가질 때 패리티 검사 행렬에서 정보어 비트에 대응되는 열의 개수는 총 열의 개수에서 총 행의 개수를 뺀 수와 같다. 즉, 상기 도 13의 패리티 검사 행렬이 완전 계수(M1 + M2)를 가진다면, 정보어 비트의 수 K는 N - (M1 + M2)가 됨을 의미한다. 본 발명에서는 편의상 상기 도 14의 패리티 검사 행렬이 완전 계수를 가지는 경우에 대해서만 설명하지만, 반드시 이에 국한될 필요는 없다. Referring to FIG. 14, in the parity check matrix, the number of columns is N and the number of rows is (M 1 + M 2 ). In general, when the parity check matrix has a full rank, the number of columns corresponding to information word bits in the parity check matrix is equal to the total number of columns minus the total number of rows. That is, if the parity check matrix of FIG. 13 has a perfect coefficient (M 1 + M 2 ), it means that the number of information word bits K is N-(M 1 + M 2 ). In the present invention, for convenience, only the case where the parity check matrix of FIG. 14 has perfect coefficients is described, but it is not necessarily limited thereto.

먼저 상기 도 14의 패리티 검사 행렬을 부분 행렬 A(1410)와 B(1420)로 구성된 패리티 검사 행렬의 제1 파트(the first part of parity-check matrix)와 부분행렬 C(1440), D(1450)와 E(1460)로 구성된 패리티 검사 행렬의 제2 파트 (the second part of parity-check matrix)로 구분할 수 있다. 부분행렬 O(1430)은 (M1 Х M2) 크기의 0-행렬을 의미한다. 상기 부분행렬 O(1430)은 (M1 Х M2) 크기의 0-행렬이기 때문에 상기 패리티 검사 행렬의 제1 파트에 포함하더라도, 행렬의 연산에 아무런 영향을 주지 않는다. 이러한 이유로 본 발명에서는 편의상 (M1 Х M2) 크기의 0-행렬인 부분행렬 O(1430)을 제외한 부분 행렬 A(1410)와 B(1420)로 구성된 행렬을 패리티 검사 행렬의 제1 파트로 정의하지만, 경우에 따라 상기 패리티 검사 행렬의 제1 파트는 부분행렬 O(1430)를 포함할 수도 있다. First, the parity check matrix of FIG. 14 is the first part of parity-check matrix consisting of partial matrices A (1410) and B (1420), and submatrices C (1440) and D (1450). ) And E(1460). The submatrix O(1430) means a 0-matrix of size (M 1 Х M 2 ). Since the submatrix O 1430 is a 0-matrix of (M 1 Х M 2 ), even if it is included in the first part of the parity check matrix, it does not affect the operation of the matrix. For this reason, in the present invention, for convenience, a matrix composed of partial matrices A(1410) and B(1420) excluding submatrix O(1430), which is a 0-matrix of size (M 1 Х M 2 ), is used as the first part of the parity check matrix. However, in some cases, the first part of the parity check matrix may include a partial matrix O 1430.

상기 도 14의 패리티 검사 행렬을 편의상 H라 하고, 부분 행렬 A(1410) 또는 C(1440)에 대응되는 정보어 비트들(또는 정보어 비트 벡터)을

Figure pat00061
라 하고, 부분 행렬 B(1420) 또는 D(1450)에 대응되는 제1 패리티 비트들(또는 제1 패리티 비트 벡터)를
Figure pat00062
라 하고, 부분 행렬 E(1460)에 대응되는 제2 패리티 비트들(또는 제2 패리티 비트 벡터)를
Figure pat00063
라 하면, 수학식 1로부터 다음 수학식 20과 같은 관계식을 얻을 수 있다. The parity check matrix of FIG. 14 is referred to as H for convenience, and information word bits (or information word bit vectors) corresponding to the partial matrix A 1410 or C 1440 are
Figure pat00061
And first parity bits (or first parity bit vector) corresponding to the partial matrix B (1420) or D (1450)
Figure pat00062
And second parity bits (or second parity bit vector) corresponding to the partial matrix E 1460
Figure pat00063
Then, a relational expression such as the following equation (20) can be obtained from equation (1).

[수학식 20][Equation 20]

Figure pat00064
Figure pat00064

상기 수학식 20을 참고하면, 제1 패리티 벡터

Figure pat00065
는 정보어 비트 벡터 i와 패리티 검사 행렬의 제1 파트에 기반하여 획득 (또는 계산 또는 결정)할 수 있다. 또한 상기 패리티 벡터
Figure pat00066
를 얻은 다음에 정보어 비트 벡터 i, 상기 패리티 벡터
Figure pat00067
그리고 패리티 검사 행렬 제2 파트에 기반하여 패리티 벡터
Figure pat00068
를 획득 (또는 계산 또는 결정)할 수 있다. Referring to Equation 20, a first parity vector
Figure pat00065
May be obtained (or calculated or determined) based on the information word bit vector i and the first part of the parity check matrix. Also the parity vector
Figure pat00066
After obtaining the information word bit vector i, the parity vector
Figure pat00067
And a parity vector based on the second part of the parity check matrix
Figure pat00068
Can be obtained (or calculated or determined).

앞서 설명한 바와 같이 LDPC 부호는 차수에 따라 각 비트에 대한 오류 확률이 달라지게 된다. 특히, 차수가 2 이상인 경우에는 비트 오류율(BER, bit error rate 또는 bit error ratio)이 차수가 1인 비트에 비해 급격하게 감소하는 특징이 있다. 특히 정보어 비트들이 성공적으로 복호될 경우에는 차수가 2 이상인 부호어 비트들 또한 거의 오류가 발생하지 않지만, 차수가 1인 부호어 비트들(특히 패리티 비트들)은 정보어 비트들이 성공적으로 복호되더라도 많은 수의 비트 오류를 포함하고 있을 수 있다. 이러한 이유로 상기 도 14의 패리티 검사 행렬에 기반한 LDPC 부호화 및 복호화를 적용한 통신시스템에서 부분 행렬 C(1440), D(1450) 및 E(1460)로 구성된 상기 패리티 검사 행렬의 제2 파트에 대응되는 신드롬 값의 일부는 정보어 비트의 오류 발생 여부와 상관 없이 매우 높은 확률로 0인 값을 갖지 않을 수 있다. 즉, 상기 도 14의 패리티 검사 행렬의 부분 행렬 A(1410)와 B(1420)로 구성된 패리티 검사 행렬의 제1 파트(부분 행렬 O(1430)도 포함될 수 있다)와 부분 행렬 C(1440), D(1450)와 E(1460)로 구성된 패리티 검사 행렬의 제2 파트에 기반하여 결정되는 신드롬 값을 각각 신드롬의 제1 파트(the first part of LDPC syndrome) s1 및 신드롬의 제2 파트(the second part of LDPC syndrome) s2라 할 때 다음의 수학식 21과 같이 s2의 값은 복호 결과에 상관 없이 매우 높은 확률로 0이 아닌 벡터 값을 가진다. (수학식 21에서

Figure pat00069
,
Figure pat00070
,
Figure pat00071
는 각각 정보어 비트 벡터, 제1 패리티 벡터, 제2 패리티 벡터의 LDPC 복호 결과에 대한 경판정 결과 값을 의미한다.)As described above, the error probability for each bit of the LDPC code varies depending on the order. In particular, when the order is 2 or more, the bit error rate (BER, bit error rate, or bit error ratio) has a characteristic that sharply decreases compared to the bit with the order 1. In particular, when the information word bits are successfully decoded, codeword bits with degree 2 or more hardly cause an error, but codeword bits with order 1 (especially parity bits) will be transmitted even if the information word bits are successfully decoded. It may contain a large number of bit errors. For this reason, in the communication system to which LDPC encoding and decoding based on the parity check matrix of FIG. 14 is applied, a syndrome corresponding to the second part of the parity check matrix consisting of partial matrices C (1440), D (1450) and E (1460) Some of the values may not have a value of 0 with a very high probability regardless of whether an error occurs in the information word bit. That is, the first part (partial matrix O 1430 may also be included) and partial matrix C 1440 of the parity check matrix composed of partial matrices A 1410 and B 1420 of the parity check matrix of FIG. 14, The syndrome values determined based on the second part of the parity check matrix composed of D(1450) and E(1460) are respectively the first part of LDPC syndrome s 1 and the second part of the syndrome (the Second part of LDPC syndrome) When s 2 , the value of s 2 has a non-zero vector value with a very high probability, regardless of the decoding result, as shown in Equation 21 below. (In Equation 21
Figure pat00069
,
Figure pat00070
,
Figure pat00071
Denotes a hard decision result value for the LDPC decoding result of the information word bit vector, the first parity vector, and the second parity vector, respectively.)

[수학식 21][Equation 21]

Figure pat00072
Figure pat00072

결과적으로 LDPC 복호의 성공 여부를 판단하기 위해서 LDPC 신드롬 전체를 이용할 수도 있지만, 상기 신드롬의 제1 파트 s1과 같이 패리티 검사 행렬에서 차수가 2 이상인 열들과 차수가 1인 패리티 비트들에 대해 독립적인 행들로 이루어진 부분 행렬 [A(1410) B(1420)]에 기반한 신드롬 또는 적어도 그 일부를 이용해서 복호 성공 여부를 결정할 수 있다. (패리티 검사 행렬의 제1 파트에 부분 행렬 O(1430)와 같은 0-행렬을 포함할 경우에도 실제 신드롬 값들은 차수가 2 이상인 열들로 이루어진 부분 행렬 A(1410) 및 B(1420)에 기반하여 결정된다.)As a result, although the overall LDPC syndrome may be used to determine the success or failure of the LDPC decoding of the first part rows or more of degree 2 in the parity check matrix as s 1 and the order of the syndrome independently of the first parity bit Whether or not decoding is successful may be determined using a syndrome based on the partial matrix [A 1410 or B 1420] of rows or at least a portion thereof. (Even if the first part of the parity check matrix includes a 0-matrix such as partial matrix O(1430), the actual syndrome values are based on partial matrices A(1410) and B(1420) composed of columns of degree 2 or more. It is decided.)

상기 도 14의 패리티 검사 행렬의 구조를 가지는 구체적인 실시 예를 도 15 및 도 16에 나타내었다. A specific embodiment having the structure of the parity check matrix of FIG. 14 is shown in FIGS. 15 and 16.

도 15 및 도 16은 본 발명에서 제안하는 LDPC 부호에 대한 패리티 검사 행렬의 예시도이다. 15 and 16 are exemplary diagrams of a parity check matrix for an LDPC code proposed in the present invention.

상기 도 15를 참고하면, 도 15에 도시된 행렬은 상기 도 14에서 K = 22*Z, M1 = 4*Z, M2 = 7*Z인 경우의 예이며, 상기 도 16을 참고하면, 도 16에 도시된 행렬은 상기 도 14에서 K = 10*Z, M1 = 4*Z, M2 = 6*Z인 경우의 예이다. Referring to FIG. 15, the matrix shown in FIG. 15 is an example in the case of K = 22*Z, M 1 = 4*Z, M 2 = 7*Z in FIG. 14, and referring to FIG. 16, The matrix shown in FIG. 16 is an example in the case of K = 10 * Z, M 1 = 4 * Z, and M 2 = 6 * Z in FIG. 14.

여기서 Z는 수학식 9 내지 수학식 14에서 정의된 블록 크기를 의미하며, 상기 도 15 및 도 16의 패리티 검사 행렬이 준순환 패리티 검사 행렬의 지수 행렬을 나타내기 때문에 수학식 2의 순환 순열 행렬들에 기반하여 수학식 4와 같은 지수 행렬로 나타낼 때 상기 순환 순열 행렬들의 크기에 대응된다. 상기 도 14에서 E(1460)에 대응되는 열의 차수가 1인 M2 개의 열로 이루어진 부분 행렬은 단일 패리티 검사(single parity-check) 부호의 패리티에 대응되는 부분 행렬로 간주될 수 있으며, 쉽게 확장 (extension)이 가능하다. 즉, 상기 도 14의 C(1440), D(1450)와 E(1460)에 대응되는 부분은 단일 패리티 검사 부호의 패리티 검사 행렬을 확장하는 형태로 구성이 가능하며, N = K + M1 + M2이므로, M2가 증가할수록 부호어 길이 N도 길어질 수 있다. Here, Z denotes the block size defined in Equations 9 to 14, and since the parity check matrices of FIGS. 15 and 16 represent the exponential matrix of the quasi-cyclic parity check matrix, the cyclic permutation matrices of Equation 2 When expressed as an exponential matrix as shown in Equation 4, the size of the cyclic permutation matrices corresponds to In FIG. 14, a partial matrix consisting of M 2 columns with order 1 of the column corresponding to E (1460) can be regarded as a partial matrix corresponding to the parity of a single parity-check code, and can be easily extended ( extension) is possible. That is, portions corresponding to C (1440), D (1450) and E (1460) of FIG. 14 can be configured in a form of extending the parity check matrix of a single parity check code, and N = K + M 1 + Since it is M 2 , as M 2 increases, the codeword length N may also increase.

상기 도 14, 도 15 및 도 16의 패리티 검사 행렬에 대응되는 LDPC 부호의 부호율은 K/N이므로, M2가 증가할수록 더 낮은 부호율의 부호어를 생성할 수 있다. 다시 말해, 상기 도 15 및 도 16을 포함하면서 차수가 1인 열들을 더 확장함으로써 더 낮은 부호율을 지원할 수 있는 패리티 검사 행렬에 기반하여 LDPC 부호화 및 복호화를 수행할 수 있다. Since the code rate of the LDPC code corresponding to the parity check matrix of FIGS. 14, 15, and 16 is K/N, a codeword having a lower code rate may be generated as M 2 increases. In other words, LDPC encoding and decoding may be performed based on a parity check matrix capable of supporting a lower code rate by further extending columns having a degree 1 including FIGS. 15 and 16.

도 15 및 도 16에 나타낸 지수 행렬은 다양한 형태로 표현 가능한데 일례로 다음 수학식 22 내지 수학식 23과 같이 각각 수열을 이용하여 표현할 수도 있다. 수학식 22 및 수학식 23은 도 15의 11x33 크기의 지수 행렬 및 도 16의 10x20 크기의 지수 행렬의 각 원소를 행 별로 각각 나타낸 것이다. 지수 행렬에서 ZxZ 크기의 영행렬에 대응되는 특정 원소 값(예: -1)은 제외할 수 있다. 예를 들어 상기 수학식 22에서 2 번째 수열의 4 번째 값 63의 의미는 도 15의 지수 행렬 2번째 행에서 ZxZ 크기의 영행렬에 대응되지 않는 2 번째 순환 순열 행렬의 지수 값(또는 비트의 순환 시프트 값)이 63임을 의미한다. (상기 예에서 수열 및 행렬에서의 원소의 시작 순서는 0부터 시작하는 것으로 간주하였다.)The exponential matrix shown in FIGS. 15 and 16 can be expressed in various forms. For example, the exponential matrix may be expressed using a sequence as shown in Equations 22 to 23 below. Equations 22 and 23 represent each element of the 11x33-sized exponential matrix of FIG. 15 and the 10x20-sized exponent matrix of FIG. 16 for each row. In the exponential matrix, specific element values (eg -1) corresponding to the ZxZ-sized zero matrix can be excluded. For example, in Equation 22, the meaning of the fourth value 63 of the second sequence is the exponent value of the second cyclic permutation matrix (or bit cyclic) that does not correspond to the ZxZ-sized zero matrix in the second row of the exponent matrix of FIG. Shift value) is 63. (In the above example, the starting order of the elements in the sequence and matrix was considered to start from 0.)

[수학식 22][Equation 22]

250 69 226 159 100 10 59 229 110 191 9 195 23 190 35 239 31 1 0 250 69 226 159 100 10 59 229 110 191 9 195 23 190 35 239 31 1 0

2 239 117 124 71 222 104 173 220 102 109 132 142 155 255 28 0 0 0 2 239 117 124 71 222 104 173 220 102 109 132 142 155 255 28 0 0 0

106 111 185 63 117 93 229 177 95 39 142 225 225 245 205 251 117 0 0 106 111 185 63 117 93 229 177 95 39 142 225 225 245 205 251 117 0 0

121 89 84 20 150 131 243 136 86 246 219 211 240 76 244 144 12 1 0 121 89 84 20 150 131 243 136 86 246 219 211 240 76 244 144 12 1 0

157 102 0 157 102 0

205 236 194 231 28 123 115 0 205 236 194 231 28 123 115 0

183 22 28 67 244 11 157 211 0 183 22 28 67 244 11 157 211 0

220 44 159 31 167 104 0 220 44 159 31 167 104 0

112 4 7 211 102 164 109 241 90 0 112 4 7 211 102 164 109 241 90 0

103 182 109 21 142 14 61 216 0 103 182 109 21 142 14 61 216 0

98 149 167 160 49 58 098 149 167 160 49 58 0

[수학식 23][Equation 23]

9 117 204 26 189 205 0 0 9 117 204 26 189 205 0 0

167 166 253 125 226 156 224 252 0 0 167 166 253 125 226 156 224 252 0 0

81 114 44 52 240 1 0 0 81 114 44 52 240 1 0 0

8 58 158 104 209 54 18 128 0 0 8 58 158 104 209 54 18 128 0 0

179 214 71 0 179 214 71 0

231 41 194 159 103 0 231 41 194 159 103 0

155 228 45 28 158 0 155 228 45 28 158 0

129 147 140 3 116 0 129 147 140 3 116 0

142 94 230 0 142 94 230 0

203 205 61 247 0203 205 61 247 0

도 15 및 도 16에 나타낸 지수 행렬, 즉, 수학식 22 및 수학식 23과 같이 나타낸 지수 행렬에 대한 기본 행렬 또한 다양한 형태로 표현 가능한데, 일례로 다음 수학식 24 및 수학식 25와 같은 수열을 이용하여 표현할 수도 있다. 수학식 24는 도 15 및 수학식 22의 지수 행렬에 대응되는 기본 행렬에서 원소 1의 위치를 각 행 별로 나타낸 것이다. 수학식 25는 도 16 및 수학식 23의 지수 행렬에 대응되는 기본 행렬에서 원소 1이 있는 열의 위치를 각 행 별로 나타낸 것이다. 예를 들어 상기 수학식 24에서 2 번째 수열의 3 번째 값 4의 의미는 기본 행렬에서 2번째 행의 4번째 열에 원소 1이 있음을 의미한다. (상기 예에서 수열 및 행렬에서의 원소의 시작 순서는 0부터 시작하는 것으로 간주하였다.)The exponential matrix shown in FIGS. 15 and 16, that is, the basic matrix for the exponential matrix represented by Equation 22 and Equation 23, can also be expressed in various forms. As an example, a sequence such as Equation 24 and Equation 25 is used. You can also express it. Equation 24 shows the position of element 1 for each row in the basic matrix corresponding to the exponential matrix of FIGS. 15 and 22. Equation 25 shows the position of a column in which element 1 is located in the basic matrix corresponding to the exponential matrix of FIGS. 16 and 23 for each row. For example, in Equation 24, the meaning of the 3rd value 4 of the 2nd sequence means that the element 1 is in the 4th column of the 2nd row in the basic matrix. (In the above example, the starting order of the elements in the sequence and matrix was considered to start from 0.)

[수학식 24][Equation 24]

0: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23

1: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 1: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24

2: 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 2: 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25

3: 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 3: 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25

4: 0 1 26 4: 0 1 26

5: 0 1 3 12 16 21 22 27 5: 0 1 3 12 16 21 22 27

6: 0 6 10 11 13 17 18 20 28 6: 0 6 10 11 13 17 18 20 28

7: 0 1 4 7 8 14 29 7: 0 1 4 7 8 14 29

8: 0 1 3 12 16 19 21 22 24 30 8: 0 1 3 12 16 19 21 22 24 30

9: 0 1 10 11 13 17 18 20 31 9: 0 1 10 11 13 17 18 20 31

10: 1 2 4 7 8 14 3210: 1 2 4 7 8 14 32

[수학식 25][Equation 25]

0: 0 1 2 3 6 9 10 11 0: 0 1 2 3 6 9 10 11

1: 0 3 4 5 6 7 8 9 11 12 1: 0 3 4 5 6 7 8 9 11 12

2: 0 1 3 4 8 10 12 13 2: 0 1 3 4 8 10 12 13

3: 1 2 4 5 6 7 8 9 10 13 3: 1 2 4 5 6 7 8 9 10 13

4: 0 1 11 14 4: 0 1 11 14

5: 0 1 5 7 11 15 5: 0 1 5 7 11 15

6: 0 5 7 9 11 16 6: 0 5 7 9 11 16

7: 1 5 7 11 13 17 7: 1 5 7 11 13 17

8: 0 1 12 18 8: 0 1 12 18

9: 1 8 10 11 199: 1 8 10 11 19

상기 도 15 및 도 16, 수학식 22 내지 수학식 25에 나타낸 패리티 검사 행렬을 이용한 LDPC 부호화/복호화 과정에서 단축 및 천공을 적용하여 다양한 코드 블록 길이 및 부호율을 지원할 수도 있다. 또한 LDPC 부호의 경우에는 정보어 비트의 일부 (즉, 코드 블록의 일부)를 적절히 천공할 경우에 오류 정정 및 오류 마루(error floor) 성능이 개선될 수 있다. 이러한 이유로 정보어 비트의 일부 또는 코드 블록의 일부를 부호율에 무관하게 항상 천공하여 변조 및 전송함으로써 LDPC 부호화/복호화 성능을 개선할 수 있다. In the LDPC encoding/decoding process using the parity check matrix shown in FIGS. 15 and 16 and Equations 22 to 25, various code block lengths and code rates may be supported by applying shortening and puncturing. In addition, in the case of an LDPC code, when a part of an information word bit (ie, a part of a code block) is properly punctured, error correction and error floor performance may be improved. For this reason, it is possible to improve LDPC encoding/decoding performance by always puncturing, modulating and transmitting a part of an information word bit or a part of a code block regardless of a code rate.

일례로 도 15의 (1506) 또는 도 16의 (1606)과 같이 LDPC 부호의 패리티 검사 행렬에서 2개의 열 블록에 대응되는 2*Z 크기의 정보어 비트 또는 코드 블록의 일부를 부호율 또는 할당된 자원의 크기에 무관하게 항상 천공함으로써 수신측에 전송하지 않는 방법이 고려될 수 있다. For example, as shown in FIG. 15(1506) or FIG. 16(1606), in the parity check matrix of the LDPC code, information word bits of size 2*Z corresponding to two column blocks or a part of the code block are code rate or allocated. Regardless of the size of the resource, a method of not transmitting to the receiving side by always puncturing may be considered.

송신기는 상기 천공된 비트들을 전송하지 않지만, 수신기는 채널을 통해 해당 비트들이 전송되었으나 정보를 잃게 된 비트들, 즉, 소실(erasure)된 비트로 간주할 수 있다. 수신기는 소실된 비트들에 대해 0과 1일 가능성을 실질적으로 구분할 수 없기 때문에 0일 확률이 1/2, 1일 확률이 1/2로 판단하게 된다. 따라서, 수신기는 소실된 비트 (또는 천공된 비트)를 LR 값으로 표현할 경우에는 1로, LLR 값으로 표현할 경우에는 0으로 판단할 수 있다. 본 발명에서는 설명의 편의상 LDPC 복호기에서 LLR 값을 사용하는 경우에 대해서면 설명하지만, LDPC 복호기의 요구 조건에 따라 다른 값들로 표현될 수 있다. The transmitter does not transmit the punctured bits, but the receiver can regard the bits that have been transmitted through a channel but lose information, that is, bits that have been erased. Since the receiver cannot substantially distinguish between the probability of 0 and 1 for the lost bits, it determines that the probability of 0 is 1/2 and the probability of 1 is 1/2. Accordingly, the receiver may determine that the lost bit (or punctured bit) is 1 when expressed as an LR value, and as 0 when expressed as an LLR value. In the present invention, for convenience of explanation, a case where the LLR value is used in the LDPC decoder is described, but may be expressed as different values according to the requirements of the LDPC decoder.

이와 같이 천공된 비트들은 LDPC 복호기의 메시지 값으로서 0에 대응되게 되는데, 천공된 LDPC 부호어 비트의 차수에 따라 LDPC 복호기에서 다르게 처리할 수 있다. 예를 들어 도 15와 도 16 또는 수학식 22 내지 수학식 25에 대응되는 패리티 검사 행렬을 사용하여 LDPC 부호화 및 복호화를 수행할 때 차수가 1인 패리티 비트들이 천공된 경우에는 상기 LLR 값들을 0으로 설정하여 복호를 수행할 수도 있지만, 일반적으로 차수가 1인 패리티 비트들이 천공된 경우에는 반복 복호를 수행하여도 성능 개선 효과가 없기 때문에 천공된 비트들에 상응하는 LLR 값들을 복호과정에서 활용하지 않을 수도 있다. 단, 경우에 따라 효율적인 병렬 처리를 위해 일부 천공된 차수 1인 패리티 비트들의 LLR 값을 0으로 설정하여 복호에 활용할 수도 있다. 예를 들면, LDPC 복호기의 병렬 처리 단위가 Z인 경우에 LDPC 복호에 활용되는 비트들에 대응되는 LLR 값들의 개수가 Z의 배수가 되도록 천공된 차수가 1인 패리티 비트들 일부를 활용할 수도 있다. These punctured bits correspond to 0 as message values of the LDPC decoder, and can be processed differently by the LDPC decoder according to the order of the punctured LDPC codeword bits. For example, when LDPC encoding and decoding are performed using a parity check matrix corresponding to FIGS. 15 and 16 or Equations 22 to 25, when parity bits having a degree of 1 are punctured, the LLR values are set to 0. Decoding can be performed by setting, but in general, if parity bits with order 1 are punctured, the LLR values corresponding to the punctured bits will not be used in the decoding process because there is no effect of improving performance even if repetitive decoding is performed. May be. However, in some cases, for efficient parallel processing, the LLR values of parity bits of order 1 partially punctured may be set to 0 and used for decoding. For example, when the parallel processing unit of the LDPC decoder is Z, some parity bits having a punctured degree of 1 may be used so that the number of LLR values corresponding to bits used for LDPC decoding is a multiple of Z.

도 15와 도 16 또는 수학식 22 내지 수학식 25에 대응되는 패리티 검사 행렬을 사용하여 LDPC 부호화 및 복호화를 수행할 때 (1506) 또는 (1606)과 같이 2개의 열블록에 대응되는 정보어 비트들 또는 코드 블록의 일부를 천공한 경우에 복호 과정의 특징을 도 17a 및 도 17b에 간단히 나타내었다. When performing LDPC encoding and decoding using a parity check matrix corresponding to FIGS. 15 and 16 or Equations 22 to 25, information word bits corresponding to two column blocks as shown in (1506) or (1606) Alternatively, features of the decoding process when a part of the code block is punctured are simply shown in FIGS. 17A and 17B.

도 17a 및 도 17b는 하나의 검사 노드에 천공된 비트 1개 또는 2개 연결된 경우를 각각 나타낸 예시도이다. 17A and 17B are exemplary diagrams illustrating a case in which one or two punctured bits are connected to one inspection node, respectively.

상기 도 17a는 상기 도 15와 도 16의 패리티 검사 행렬에서 첫 번째 행 블록에 대응되는 태너 그래프를 나타낸 도면이다. 상기 도 17a에서는 편의상 8 개의 변수 노드와 한 개의 검사 노드(1710)를 도시하였지만, 상기 도 15와 도 16의 패리티 검사 행렬은 블록 크기가 Z인 준순환 LDPC 부호를 나타내므로 실제로는 8*Z 개의 변수 노드와 Z 개의 검사 노드로 구성되어 있는 경우로 쉽게 확장될 수 있다. 17A is a diagram illustrating a Tanner graph corresponding to a first row block in the parity check matrix of FIGS. 15 and 16. In Fig. 17A, for convenience, eight variable nodes and one check node 1710 are shown. However, since the parity check matrices of Figs. 15 and 16 represent quasi-cyclic LDPC codes having a block size of Z, actually 8*Z number of nodes are shown. It can be easily extended to a case consisting of a variable node and Z check nodes.

만일 하나의 검사 노드에 도 17a의 (1701)과 (1702)와 같이 천공된 2 개 이상의 변수 노드가 연결되어 있을 경우에는 해당 변수 노드에 대응되는 LLR 값이 0으로 설정되고 이 값들은 변수 노드에 연결된 각각의 선(1720)을 따라 각각 검사 노드(1710)에 전달 된다. 다시 말해 검사 노드 프로세서는 수학식 15 및 수학식 16에 설명한 방법에 기반한 업데이트 식을 적용할 경우에는 복호 연산 과정에서 그 값이 무한대로 발산하게 되는 경우가 반드시 하나 이상 발생하게 되고, 그로 인해 검사 노드의 연산이 무의미해진다. 이와 유사하게 참고 문헌『Frank R. Kschischang, Brendan J. Frey, and Hans-Andrea Loeliger, "Factor Graphs and the Sum-Product Algorithm," IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2, FEBRUARY 2001, pp498-519)』을 참고하면, tanh(.) 함수를 사용한 곱의 규칙에 기반한 복호 업데이트 식을 적용할 경우에는 tanh(0) = 0이기 때문에, 업데이트 식에서 tanh(0) = 0인 경우가 반드시 하나 이상 발생하게 되고, 따라서 곱셈식이 항상 0이 되어 어떠한 변수 노드에 대해서도 복호를 진행하여도 LLR 값이 업데이트 되지 않는다. If two or more variable nodes perforated as shown in (1701) and (1702) of FIG. 17A are connected to one test node, the LLR value corresponding to the variable node is set to 0, and these values are set to the variable node. Each connected line 1720 is transmitted to the test node 1710, respectively. In other words, in the case of applying the update equation based on the method described in Equations 15 and 16, the check node processor must have one or more cases in which the value diverges to infinity in the decoding operation process. The operation of becomes meaningless. Similarly, references Frank R. Kschischang, Brendan J. Frey, and Hans-Andrea Loeliger, "Factor Graphs and the Sum-Product Algorithm," IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2, FEBRUARY 2001, pp498-519)”, tanh(0) = 0 in the update formula when the decoding update formula based on the product rule using the tanh(.) function is applied, so tanh(0) = One or more cases of 0 must occur, and thus the multiplication expression is always 0, and the LLR value is not updated even if decoding is performed on any variable node.

상기 도 17b은 상기 도 15와 도 16의 패리티 검사 행렬에서 두 번째 행 블록에 대응되는 태너 그래프를 나타낸 도면이다. 상기 도 17b에서는 편의상 10 개의 변수 노드와 한 개의 검사 노드(1740)를 도시하였지만, 상기 도 15와 도 16의 패리티 검사 행렬은 블록 크기가 Z인 준순환 LDPC 부호를 나타내므로 실제로는 10*Z 개의 변수 노드와 Z 개의 검사 노드로 구성되어 있는 경우로 쉽게 확장될 수 있다. 17B is a diagram illustrating a Tanner graph corresponding to a second row block in the parity check matrix of FIGS. 15 and 16. In FIG. 17B, for convenience, 10 variable nodes and one check node 1740 are shown. However, since the parity check matrices of FIGS. 15 and 16 represent quasi-cyclic LDPC codes having a block size of Z, in fact, 10 * Z It can be easily extended to a case consisting of a variable node and Z check nodes.

만일 하나의 검사 노드에 도 17b의 (1731)과 같이 천공된 1 개의 변수 노드만 연결되어 있을 경우에는 해당 변수 노드에 대응되는 LLR 값이 0으로 설정되고, 이 값은 (1750)의 선에 따라 검사 노드(1740)에 전달 된다. 다시 말해 검사 노드 프로세서는 상기 선 (1750)을 제외한 나머지 선에 대응되는 업데이트 LLR 값을 계산하는 과정에서 수학식 15 및 수학식 16에 기반한 업데이트 방법을 적용할 경우에는 상기 선 (1750)에 대응되는 LLR = 0 값에 의해 그 연산 값이 무한대로 발산하거나, tanh(.) 함수를 사용한 곱의 규칙에 기반한 복호 업데이트 식을 적용할 경우에는 tanh(0) = 0이기 때문에 곱셈식이 0이 되어 상기 (1731)을 제외한 변수 노드들에 대응되는 비트에 대해 LLR 값들이 업데이트 되지 않는다. 하지만, 상기 선 (1750)에 대응되는 업데이트 LLR을 계산하기 위해서는 상기 선 (1750)을 제외한 선들에 대응되는 값들을 기반으로 업데이트 되기 때문에 변수 노드 (1731)에 대응되는 비트에 대한 LLR 값이 0이 아닌 값으로 업데이트 될 수 있다. If only one variable node perforated as shown in (1731) of FIG. 17B is connected to one test node, the LLR value corresponding to the variable node is set to 0, and this value is set according to the line (1750). It is transmitted to the check node 1740. In other words, in the process of calculating the updated LLR value corresponding to the other lines except for the line 1750, the check node processor applies the update method based on Equation 15 and Equation 16. When LLR = 0, the operation value diverges to infinity, or when the decoding update formula based on the multiplication rule using the tanh(.) function is applied, since tanh(0) = 0, the multiplication expression becomes 0 and the ( 1731), LLR values are not updated for bits corresponding to variable nodes. However, in order to calculate the updated LLR corresponding to the line 1750, the LLR value for the bit corresponding to the variable node 1731 is 0 because it is updated based on values corresponding to lines excluding the line 1750. It can be updated to a value other than that

이와 같이 천공된 정보어 비트의 경우에는 패리티 검사 행렬의 구조에 따라 특정 레이어, 또는, 특정 행 블록에 대해 레이어드 디코딩을 수행한 후 즉시 LLR 값이 복원되거나 복원되지 않을 수 있다. 한편, 본 발명에서 레이어는 적어도 하나의 행 블록으로 구성될 수 있다. 또한, 레이어드 디코딩이란 레이어 별로 순차적으로 디코딩을 수행하는 동작을 의미한다. 따라서, 하나의 행 블록 단위로 순차적으로 디코딩이 수행될 수도 있으며, 또는 복수개의 행 블록을 하나의 레이어로 구성하여 디코딩이 수행될 수 있다. 또한, 하나의 패리티 검사 행렬의 구조에 따라 일부의 레이어는 하나의 행 블록으로 구성되고 다른 일부의 레이어는 복수의 행 블록으로 구성될 수 있다. In the case of the punctured information word bit, the LLR value may or may not be restored immediately after layered decoding is performed on a specific layer or a specific row block according to the structure of the parity check matrix. Meanwhile, in the present invention, a layer may consist of at least one row block. In addition, layered decoding refers to an operation of sequentially performing decoding for each layer. Accordingly, decoding may be sequentially performed in units of one row block, or decoding may be performed by configuring a plurality of row blocks into one layer. Also, depending on the structure of one parity check matrix, some layers may be configured as one row block and other layers may be configured as a plurality of row blocks.

통상적으로 서로 직교(orthogonal) 또는 준직교(quasi-orhtogonal) 특성을 가지는 행 블록들은 하나의 레이어로 간주될 수 있다. 여기서 2개 이상의 행 블록들에 포함되어 있는 순환 순열 행렬들이 서로 다른 열 블록에 위치하고 있을 경우에 해당 행 블록들은 직교 특성을 가지고 있다고 한다. 다시 말해, 직교 특성이 있는 행 블록들을 블록 단위로 더하여 하나의 행 블록을 생성할 경우에 상기 생성된 행 블록의 각 열 블록에 순환 순열 행렬이 중복되어(overlapped) 있지 않고, 1개의 순환 순열 행렬 또는 0-행렬로 구성됨을 의미한다. 또한 기본 행렬 관점에서 정의할 경우에는, 상기 직교 특성이 있는 행 블록들에 대응되는 행들을 더할 경우에 무게 1이 중복되어 더해지는 경우가 없음을 의미한다. 예를 들면, 도 15에서 6 번째 행 블록과 마지막 10 번째 행 블록은 서로 직교 특성이 있다. (첫 행 블록을 0 번째 행블록으로 간주하였다.)In general, row blocks having orthogonal or quasi-orhtogonal characteristics may be regarded as one layer. Here, when cyclic permutation matrices included in two or more row blocks are located in different column blocks, the row blocks are said to have orthogonal characteristics. In other words, when one row block is generated by adding row blocks with orthogonal characteristics in block units, a cyclic permutation matrix is not overlapped in each column block of the generated row block, and one cyclic permutation matrix Or 0-matrix. In addition, when defined in terms of a basic matrix, it means that there is no case where the weight 1 is duplicated and added when the rows corresponding to the row blocks having the orthogonal characteristic are added. For example, in FIG. 15, the sixth row block and the last tenth row block have orthogonal characteristics to each other. (The first row block was regarded as the 0th row block.)

또한 준직교 특성을 만족하는 행 블록들은 각 행 블록에서 일부 동일한 위치의 열 블록을 제외한 나머지 열 블록에 대해서만 직교 특성을 만족하는 경우를 의미한다. 예를 들면, 도 15에서 5번째 행 블록과 6 번째 행 블록은 0 번째 열 블록을 제외한 모든 열 블록에 대해 직교 특성을 만족하므로 준직교 특성을 가지고 있다. 도 16에서 7 번째 행 블록과 8 번째 행 블록도 1번째 열 블록을 제외한 나머지 열 블록에 대해 직교 특성을 만족하므로 준직교 특성을 가지고 있다. In addition, the row blocks satisfying the quasi-orthogonal characteristic means a case in which the orthogonal characteristic is satisfied only for the remaining column blocks except for the column blocks at the same position in each row block. For example, in FIG. 15, the fifth row block and the sixth row block have quasi-orthogonal characteristics because all column blocks except for the 0-th column block satisfy orthogonal characteristics. In FIG. 16, the 7th row block and the 8th row block also have quasi-orthogonal characteristics because they satisfy the orthogonal characteristic for the remaining column blocks except for the 1st column block.

통상적으로 구현의 편의상 1개의 행 블록이나 직교 특성 또는 준직교 특성을 가지는 연속된 또는 사전에 기 설정된 복수개의 행 블록을 1개의 레이어로 설정하여 레이어드 디코딩을 수행하지만, 직교 특성 또는 준직교 특성을 가지는 연속적이지 않은 행 블록들에 대해서도 하나의 레이어로 설정할 수 있다. 준직교 특성을 만족하는 행 블록들을 하나의 레이어로 설정할 때는 준직교 특성을 만족하지 않는 열 블록의 개수가 많아질수록 구현 복잡도가 증가하기 때문에 시스템에서 허용된 복잡도를 고려하여 레이어를 설정할 수 있다. 이러한 이유로 통상적으로 1개 또는 2개 이하의 열 블록을 제외한 나머지 열 블록에 대해서 직교 특성을 만족하는 행 블록들에 대해서 하나의 레이어로 설정하지만 반드시 이에 국한할 필요는 없다. 또한, 직교 또는 준직교 특성을 만족하는 복수 개의 행 블록들에 대해서 대기 시간(wait time)을 줄이기 위해서 복수 개의 행 블록을 동시에 처리할 수도 있지만, 사전에 정해진 순서에 따라 순차적으로(sequentially) 또는 연속적으로(successively) 처리할 수도 있다.In general, for convenience of implementation, layered decoding is performed by setting one row block or a continuous or preset plurality of row blocks having an orthogonal characteristic or quasi-orthogonal characteristic as one layer, but having an orthogonal characteristic or a quasi-orthogonal characteristic Non-contiguous row blocks can also be set as one layer. When row blocks satisfying quasi-orthogonal characteristics are set as one layer, implementation complexity increases as the number of column blocks that do not satisfy quasi-orthogonal characteristics increases. Therefore, a layer can be set in consideration of the complexity allowed in the system. For this reason, row blocks that satisfy the orthogonal characteristic for the remaining column blocks except for one or two or less column blocks are typically set as one layer, but there is no need to be limited thereto. In addition, in order to reduce the wait time for a plurality of row blocks satisfying the orthogonal or quasi-orthogonal characteristic, a plurality of row blocks may be simultaneously processed, but sequentially or consecutively according to a predetermined order. It can also be handled successively.

상기 레이어 별로 순차적으로 디코딩을 수행한다는 의미는 첫 번째 선택된 레이어에 대해 디코딩을 수행한 뒤에 다른 레이어에 대한 디코딩을 수행함을 의미하며, 디코딩을 위한 레이어의 순서는 변경될 수 있다. 즉, 제1 레이어에 대해 디코딩을 수행한 뒤에 제4 레이어에 대한 디코딩을 수행하고 이후 제2 레이어에 대한 디코딩을 수행하는 등의 방법도 가능하다. 한편, 하기의 실시예에서는 설명의 편의상 하나의 행 블록이 하나의 레이어를 구성하는 경우를 가정하여 설명한다. The meaning of sequentially performing decoding for each layer means performing decoding for the first selected layer and then performing decoding for other layers, and the order of the layers for decoding may be changed. That is, a method of performing decoding on the fourth layer after decoding on the first layer and then decoding on the second layer is also possible. Meanwhile, in the following embodiments, for convenience of description, it is assumed that one row block constitutes one layer.

예를 들어 도 15의 지수행렬에 대응되는 패리티 검사 행렬에 대해 0번째, 1번째 열 블록에 대응되는 정보어 비트 또는 코드 블록의 일부를 천공하는 통신시스템에서 수신기는 LDPC 복호를 위해 첫 번째 레이어드 디코딩을 0, 2, 3, 4, 5, 7, 8, 9 번째 행 블록 중 하나를 선택하여 수행하거나 상기 행 블록들에 대해 레이어드 디코딩을 연속적으로 수행하여도 각 비트들에 대한 업데이트가 이루어지지 않기 때문에 첫 번째 레이어드 디코딩 또는 상기 연속적인 레이어드 디코딩은 효과가 없다. For example, in a communication system in which a part of an information word bit or a code block corresponding to the 0th and 1st column blocks is punctured for the parity check matrix corresponding to the exponential matrix of FIG. 15, the receiver performs the first layered decoding for LDPC decoding. Even if one of the 0, 2, 3, 4, 5, 7, 8, and 9th row blocks is selected and performed, or layered decoding is successively performed on the row blocks, each bit is not updated. Therefore, the first layered decoding or the continuous layered decoding has no effect.

반면에 만일 1, 6, 10 번째 행 블록 중 하나를 선택하여 첫 번째 레이어드 디코딩을 수행한다면, 0 번째 또는 1번째 열 블록에 대응되는 천공된 정보어 비트 또는 코드 블록에 대응되는 LLR 값들이 업데이트 됨으로서 그 이후에 어떠한 행 블록에 대해서 레이어드 디코딩을 수행하더라도 적어도 일부의 정보어 비트에 대해서 LLR 값들이 업데이트 된다. 특히 1 번째 행 블록 및 10 번째 행 블록 또는 6 번째 행 블록 및 10 번째 행 블록에 대해 순차적으로 레이어드 디코딩을 먼저 수행한다면, 전송된 정보어 비트 및 패리티 비트들에 대한 LLR 값이 모두 의미있는 값들을 갖게 되어 이후의 레이어드 디코딩 과정에서는 마치 모든 부호어 비트에 대해 천공되지 않은 것처럼 수행된다. On the other hand, if one of the 1st, 6th, and 10th row blocks is selected and the first layered decoding is performed, the punctured information word bit corresponding to the 0th or 1st column block or the LLR values corresponding to the code block are updated. After that, even if layered decoding is performed on any row block, LLR values are updated for at least some of the information word bits. In particular, if layered decoding is performed sequentially for the first row block and the tenth row block or the sixth row block and the tenth row block, the LLR values for the transmitted information word bits and parity bits are all meaningful values. Therefore, in the subsequent layered decoding process, it is performed as if all codeword bits were not punctured.

이와 같이 천공된 정보어 비트들 또는 코드 블록을 고려하여 첫 번째 레이어드 디코딩을 수행할 때부터 LLR 값들을 복원 가능한 디코딩 스케줄링을 적용하는 것은 부호율이 매우 높고 시스템에서 지원하고자 하는 시간 당 정보 처리량 (throughput)이 높은 경우에는 중요한 문제이다. 통상적으로 시스템에서 수 백 Mbps 내지 수 Gbps에 해당하는 데이터를 전송하고자 할때에는 채널 환경이 좋아야 할 뿐만 아니라 높은 LDPC 부호화율이 적용되며, 수신기에서 수행되는 반복 복호 횟수도 크지 않다. 반복 복호 횟수는 일반적으로 수신기의 시간 당 디코딩 정보 처리량과 반비례 관계에 있기 때문에 반복 복호 횟수가 적을수록 더 큰 정보 처리량을 지원할 수 있기 때문이다. 특히 매우 높은 시간 당 디코딩 정보 처리량이 요구될 경우에는 반복 복호 횟수가 적어지는 경우가 많은데, 이러한 경우에는 무효한 처음 몇 번의 레이어드 디코딩 과정이 시간 당 정보 처리량의 감소에 큰 영향을 줄 수 있다. 따라서 이와 같이 천공된 정보어 비트 또는 코드 블록과 패리티 검사 행렬의 구조 등을 고려하여 레이어드 디코딩을 위한 스케줄링을 적절히 설정함으로써 디코딩 효율을 높일 수 있다. Applying decoding scheduling that can restore LLR values from the first layered decoding in consideration of the punctured information word bits or code blocks, has a very high code rate and the information throughput per time that the system wants to support. If) is high, this is an important issue. In general, when a system wants to transmit data corresponding to several hundred Mbps to several Gbps, not only the channel environment must be good, but also a high LDPC coding rate is applied, and the number of repetitive decoding performed by the receiver is not large. This is because the number of repetitive decoding is generally in inverse proportion to the amount of decoding information per time of the receiver, and thus, the smaller the number of repetitive decoding, the greater the amount of information throughput can be supported. In particular, when a very high throughput of decoding information per time is required, the number of repetitive decoding is often reduced. In this case, the first few invalid layered decoding processes may have a great influence on the reduction of the throughput of information per time. Accordingly, it is possible to increase decoding efficiency by appropriately setting the scheduling for layered decoding in consideration of the structure of the information word bits or code blocks punctured and the parity check matrix.

상기 레이어드 디코등을 위한 스케줄링 설정을 위해서는 수신기에서 천공된 정보어 비트 또는 코드 블록에 대응되는 LLR 값들을 빠르게 복원하는 것뿐만 아니라 적절한 차수 분포 등을 고려하여 복호 성능을 최적화 하는 것도 중요하다. 일반적으로 LDPC 부호는 비균일한(irregular) 차수 분포를 가지고 있기 때문에 어떠한 차수 분포를 가지는 행 블록에 대해서 레이어드 디코딩을 수행하는지에 따라 성능이 달라질 수도 있다. In order to set the scheduling for the layered decoder, it is important not only to quickly restore the LLR values corresponding to the information word bits or code blocks punctured by the receiver, but also to optimize the decoding performance in consideration of an appropriate order distribution. In general, since LDPC codes have an irregular order distribution, performance may vary depending on how layered decoding is performed on a row block having a certain order distribution.

본 발명에서는 레이어드 디코딩의 성능을 최적화 하기 위하여 디코딩을 수행할 레이어 (또는 레이어가 하나의 행 블록으로 구성되는 경우에는 행 블록)의 순서를 결정하는 방법과 그 구체적인 실시 예를 제안한다. 이를 위해 상기 디코딩을 수행할 레이어의 순서를 결정하기 위해 고려해야할 다양한 요인(factor)에 대해서 살펴보고 이 요인들을 결합하여 적절한 디코딩 스케줄링을 설정하는 구체적인 방법을 제안한다. 또한 본 발명에서는 설명의 편의상 준순환 LDPC 부호를 사용하는 경우에 대해서만 구체적인 실시예를 나타내지만, 일반적인 LDPC 부호에 대해서 용이하게 확장 가능함에 유의한다. In order to optimize the performance of layered decoding, the present invention proposes a method of determining the order of a layer to be decoded (or a row block when a layer is composed of one row block) and a specific embodiment thereof. To this end, various factors to be considered in order to determine the order of layers to be decoded are examined, and a specific method of setting appropriate decoding scheduling by combining these factors is proposed. In addition, in the present invention, for convenience of explanation, a specific embodiment is shown only when a quasi-cyclic LDPC code is used, but it is noted that it can be easily extended to a general LDPC code.

<레이어드 디코딩 스케줄링을 결정하기 위한 조건><Conditions for determining layered decoding scheduling>

조건 1) 정보어 비트 (또는 코드 블록)의 일부가 천공되어 전송되었을 때, 기본 행렬에서 해당 천공된 정보어 비트에 대응되는 열 또는 열 블록들로만 이루어진 부분 행렬 내에서 차수 또는 무게가 0 또는 1인 행에 대응되는 행 블록에 대한 초기 복호를 우선 순위화 한다. 정보어 천공이 없을 경우에는 조건 1)은 무시한다. Condition 1) When a part of the information word bit (or code block) is punctured and transmitted, the order or weight is 0 or 1 in a partial matrix consisting only of columns or column blocks corresponding to the punctured information word bit in the basic matrix. The initial decoding of the row block corresponding to the row is prioritized. If there is no information word perforation, condition 1) is ignored.

조건 2) 차수 또는 무게 분포 또는 변조 오더(order) 또는 방식들을 고려하여 이론적인 복호 성능이 극대화 되는 행 블록에 대한 복호를 우선 순위화 한다. 많은 경우에 초기 복호 과정에서는 검사 노드 차수, 즉, 행 무게가 낮을 수록 복호 성능이 크게 개선될 수 있다. 또한 변조 방식에 따라 변조 심볼을 구성하는 각 비트들의 신뢰도(reliability) 또는 비트 오율(bit error rate)이 서로 다르기 때문에 변조 방식에 따라 최적화된 스케줄링 방법이 달라질 수 있다. 이론적인 성능은 밀도 진화 분석 (density evolution analysis) 또는 EXIT 차트 (extrinsic information transfer chart) 분석 등 다양한 방법이 적용될 수 있다. Condition 2) Prioritize decoding of row blocks for which theoretical decoding performance is maximized in consideration of order or weight distribution or modulation order or methods. In many cases, in the initial decoding process, the lower the order of the check node, that is, the row weight, the better the decoding performance can be. In addition, since the reliability or bit error rate of each bit constituting the modulation symbol is different according to the modulation method, an optimized scheduling method may vary according to the modulation method. For theoretical performance, various methods, such as density evolution analysis or EXIT chart analysis, can be applied.

조건 3) 부호율 또는 레이트 매칭에 따라 디코딩에서 실질적으로 사용되거나 성능에 영향을 주는 LDPC 부호의 기본 행렬 또는 패리티 검사 행렬의 부분을 고려하여 복호를 수행할 행 블록을 우선 순위화 한다. 즉, 부호율 또는 레이트 매칭에 따라 디코딩할 레이어의 순서가 변경될 수 있다. Condition 3) A row block to be decoded is prioritized in consideration of a basic matrix or parity check matrix of an LDPC code that is substantially used in decoding or affects performance according to code rate or rate matching. That is, the order of layers to be decoded may be changed according to code rate or rate matching.

조건 4) TBS 또는 CBS에 따라 실질적으로 사용되거나 성능에 영향을 주는 LDPC 부호의 기본 행렬 또는 패리티 검사 행렬의 부분을 고려하여 복호를 수행할 행 블록을 우선 순위화 한다. 즉, TBS 크기에 따라 디코딩할 레이어의 순서가 변경될 수 있다. Condition 4) The row block to be decoded is prioritized in consideration of the basic matrix or parity check matrix of the LDPC code that is actually used depending on the TBS or CBS or affects the performance. That is, the order of layers to be decoded may be changed according to the TBS size.

상기 조건 1)은 실질적으로 한정된 반복 복호 횟수를 고려하여 빠른 LLR 복원을 위한 조건이다. 본 발명에서는 설명의 편의상 도 14 내지 도 16의 구조를 갖는 패리티 검사 행렬 또는 수학식 22 내지 수학식 25의 지수 행렬 또는 기본 행렬 갖는 LDPC 부호에 기반한 부호화/복호화를 가정하고 있기 때문에 상기 조건 1)에서는 정보어 비트에의 천공에 대해서만 기술하였다. 통상적으로 도 14 내지 도 16의 구조 또는 수학식 22 내지 수학식 25의 지수 행렬 또는 기본 행렬을 갖는 LDPC 부호의 경우에는 패리티 부분의 천공은 가변적일 뿐만 아니라 차수 1인 패리티가 천공된 경우에는 이에 대응되는 패리티 검사 행렬 부분은 복호 과정에서 제외하여 복호를 수행하여도 문제 없기 때문이다. 하지만, 일반적으로 정보어 비트뿐만 아니라 패리티 비트 천공을 모두 고려하여 조건 1을 적용할 수도 있다. Condition 1) is a condition for fast LLR restoration in consideration of a substantially limited number of repetitive decoding. In the present invention, for convenience of explanation, since it is assumed that encoding/decoding based on LDPC code having a parity check matrix having a structure of FIGS. 14 to 16 or an exponential matrix of Equations 22 to 25 or a basic matrix is assumed, in the condition 1), Only the perforation to the information word bit is described. In general, in the case of the LDPC code having the structure of FIGS. 14 to 16 or the exponential matrix or the basic matrix of Equations 22 to 25, the puncture of the parity part is variable and corresponds to the case where the parity of order 1 is punctured. This is because there is no problem even if decoding is performed by excluding the parity check matrix part from the decoding process. However, in general, condition 1 may be applied in consideration of both the information word bit as well as the parity bit puncture.

조건 1)을 고려하여 레이어드 디코딩을 위해 복호를 수행할 레이어의 순서를 결정하는 구체적인 예로서 도 15에서 가장 먼저 복호를 수행할 행 블록을 1 번째 또는 6 번째 또는 10 번째 행 블록 중에 하나로 결정할 수 있으며, 나머지 행 블록 또한 초기 복호에 사용할 수 있다. (첫 번재 행 블록을 0 번째 행 블록으로 간주하였음에 유의한다.) 도 16의 경우에는 1 번째 또는 3 번째 또는 6 번째 또는 7 번째 또는 9 번째 행 블록 중에 하나에 대해 가장 먼저 복호를 수행할 수 있으며, 나머지 행 블록 또한 초기 복호에 사용될 수 있다. As a specific example of determining the order of layers to be decoded for layered decoding in consideration of condition 1), in FIG. 15, the row block to be decoded first may be determined as one of the 1st, 6th, or 10th row blocks, and , The remaining row blocks can also be used for initial decoding. (Note that the first row block is regarded as the 0th row block.) In the case of FIG. 16, decoding can be performed first on one of the first or third or sixth or seventh or ninth row blocks. In addition, the remaining row blocks can also be used for initial decoding.

상기 조건 2)의 경우에는 충분한 반복 복호를 진행하였다고 간주하여 이론적인 성능을 최대화 하는 것을 고려한 것이다. 통상적으로 변수 노드는 차수가 높을수록 검사 노드는 차수가 낮을수록 성능 개선 효과가 크다. 하지만, 일반적으로 변수 노드 차수와 검사 노드 차수는 평균적으로 동시에 증가하거나 동시에 감소하기 때문에 LDPC 부호의 차수 분포를 어떻게 설정하느냐에 따라서 LDPC 부호의 성능이 크게 차이가 난다. 본 발명에서는 레이어드 디코딩 방법을 가정하고 있기 때문에 초기 복호 과정에서 차수가 낮은 행 블록을 먼저 디코딩 하는 것이 성능 개선 효과가 클 가능성이 있다. In the case of condition 2), it is considered that sufficient repetitive decoding has been performed and the theoretical performance is maximized. In general, the higher the degree of the variable node and the lower the order of the test node, the greater the performance improvement effect. However, in general, since the order of the variable node and the order of the check node increase or decrease at the same time on average, the performance of the LDPC code greatly differs depending on how the order distribution of the LDPC code is set. Since the present invention assumes a layered decoding method, there is a possibility that the performance improvement effect is large to first decode a row block having a low order in the initial decoding process.

구체적인 실시 예로서 도 15 및 도 16에 대응되는 패리티 검사 행렬의 경우에는 기본 행렬 관점에서 0, 1, 2, 3 번째 행의 차수 또는 무게가 4 번째 이후 행의 차수 또는 무게에 비해 상당히 큰 편이다. 따라서 초기 복호에서 기본 행렬의 4 번째 행을 포함하여 그 이후 행에 대응되는 행 블록에 대해 복호를 수행하는 것이 초기 복호 성능이 더 좋을 수 있다. 만일 조건 1)과 함께 고려한다면, 도 15에서는 6 번째 행 블록 또는 10 번째 행 블록들을 초기 복호에 사용하는 것이 성능 개선 효과가 클 수 있으며, 도 16에서는 6 번째 또는 7 번째 또는 9 번째 행 블록들을 초기 복호에 사용하는 것이 성능 개선 효과가 클 수 있다. As a specific embodiment, in the case of the parity check matrix corresponding to FIGS. 15 and 16, the order or weight of the 0, 1, 2, and 3 rows is considerably larger than the order or weight of the fourth and subsequent rows from the perspective of the basic matrix. . Therefore, initial decoding performance may be better to perform decoding on a row block corresponding to a subsequent row including the fourth row of the basic matrix in the initial decoding. If considered together with condition 1), in FIG. 15, using the 6th row block or 10th row blocks for initial decoding may have a large performance improvement effect, and in FIG. 16, the 6th, 7th, or 9th row blocks are Using it for initial decoding can have a great effect on improving performance.

16-QAM, 64-QAM, 256-QAM, 1024-QAM, ... 과 같은 고차 변조 방식을 적용할 경우에는 변조 심볼을 구성하는 각 비트에 따라 서로 다른 신뢰도를 갖는다. 예를 들어 각 변조 심볼에서 MSB (most significant bit)들은 통상적으로 낮은 비트 오율, 즉 높은 신뢰성을 가지며, LSB (least significant bit)들은 통상적으로 높은 비트 오율, 즉 낮은 신뢰성을 가진다. 따라서 전송할 LDPC 부호어 비트들이 변조 심볼에 어떻게 매핑되는지에 따라서 LDPC 복호 성능에 큰 차이가 있을 수 있다. 변조 심볼에 매핑되는 규칙이 사전에 정해져 있을 경우에는 변조 방식(또는 오더)과 상기 매핑 규칙에 따라 성능을 극대화 하기 위하여 초기에 디코딩을 수행할 레이어의 순서가 달라질 수도 있다. In the case of applying a higher-order modulation scheme such as 16-QAM, 64-QAM, 256-QAM, 1024-QAM, ..., each bit constituting a modulation symbol has different reliability. For example, the most significant bits (MSBs) in each modulation symbol typically have a low bit error rate, that is, high reliability, and the least significant bits (LSBs) typically have a high bit error rate, that is, low reliability. Therefore, depending on how the LDPC codeword bits to be transmitted are mapped to the modulation symbols, there may be a large difference in LDPC decoding performance. When a rule mapped to a modulation symbol is determined in advance, the order of layers to be initially decoded may be changed in order to maximize performance according to a modulation method (or order) and the mapping rule.

가변적인 부호율을 지원하기 위해 적절한 레이트 매칭을 적용하는 통신 시스템에서는 상기 레이트 매칭에 대응되는 패리티 검사 행렬의 부분 행렬이 실질적으로 성능에 영향을 주기 때문에 이러한 특성을 반영하기 위해 상기 조건 3)을 추가하였다. 예를 들어 도 15 및 도 16의 지수 행렬 또는 수학식 22 내지 도 25의 지수 행렬 및 기본 행렬에 대응되는 패리티 검사 행렬을 사용하여 LDPC 부호화/복호화 시스템에서 만일 1에 가까운 매우 높은 부호율을 지원한다고 하면, 도 15 및 도 16에서 패리티 비트에 대응되는 부분 행렬 (1502) 및 (1602)에서 마지막 2개의 열 블록에 대응되는 패리티 비트의 일부가 레이트 매칭을 통해 천공되는 경우가 발생할 수 있다. 만일, 상기 부분 행렬 (1502) 및 (1602)에서 처음 2개의 열 블록에 대응되는 패리티 비트가 천공되는 상황이 발생한다면 부호율이 1 보다 큰 경우를 의미하기 때문에, 시스템에서 발생한 특수한 상황이 아니라면, 상기 부분 행렬 (1502) 및 (1602)에서 처음 2개의 열 블록에 대응되는 패리티 비트는 천공되지 않는다. 이러한 경우에는 자명하게 1 번째 행 블록에 대해 초기 복호를 수행하여야 무효한 복호 과정을 최소화 할 수 있다. In a communication system that applies appropriate rate matching to support variable code rates, since the partial matrix of the parity check matrix corresponding to the rate matching substantially affects performance, the condition 3) is added to reflect this characteristic. I did. For example, if the LDPC encoding/decoding system supports a very high code rate close to 1 by using the exponential matrix of FIGS. 15 and 16 or the parity check matrix corresponding to the exponential matrix and the basic matrix of Equations 22 to 25, 15 and 16, in partial matrices 1502 and 1602 corresponding to parity bits, some of the parity bits corresponding to the last two column blocks may be punctured through rate matching. If a situation in which parity bits corresponding to the first two column blocks in the partial matrices 1502 and 1602 are punctured, it means a case where the code rate is greater than 1, so if it is not a special situation occurring in the system, In the partial matrices 1502 and 1602, parity bits corresponding to the first two column blocks are not punctured. In this case, an invalid decoding process can be minimized only when initial decoding is performed on the first row block.

반면에 만일 도 15에 대해 부호율 22/27 또는 도 16에 대해 부호율 10/15를 지원하는 경우에는 6 번째 행 블록에 대응되는 패리티 비트들이 전송되며, 상기 조건 1) 및 조건 2)에 의해 상기 6 번째 행 블록에 대해 우선적으로 초기 복호를 적용할 경우 가장 좋은 부호화/복호화 성능을 지원할 수 있다. On the other hand, if a code rate of 22/27 for FIG. 15 or a code rate of 10/15 for FIG. 16 is supported, parity bits corresponding to the 6th row block are transmitted. When initial decoding is preferentially applied to the sixth row block, the best encoding/decoding performance can be supported.

만일 시스템에서 지원하는 부호율이 크게 가변적이지 않고, 상기 예시들과 또 다른 부호율로 결정되어 있을 경우에는 주어진 패리티 검사 행렬에 대해서 최적의 디코딩 스케줄링 순서가 결정되기 때문에 위와 같이 1 번째 행 블록, 6 번째 행 블록과 또 다른 행 블록에 대해서 초기 복호를 수행해야 성능이 최적화 될 수도 있다. If the code rate supported by the system is not significantly variable, and the code rate is determined to be different from the above examples, since the optimal decoding scheduling order is determined for the given parity check matrix, the first row block, 6 Performance may be optimized only when initial decoding is performed on a th row block and another row block.

이와 같이 부호율에 따라 패리티 검사 행렬에서 성능에 영향을 주는 부분 행렬의 크기 및 범위가 달라지기 때문에 하나의 고정된 레이어드 디코딩 스케줄링 방법을 적용할 경우에는 구현에는 용이하나 성능은 다소 손실을 볼 수 있다. 따라서 구현이 가능한 경우에는 지원 가능한 최대 부호율 또는 최저 부호율 또는 실제 지원하는 부호율 등 모두 또는 일부에 기반하여 가변적인 디코딩 스케줄링을 적용할 경우 부호화/복호화 성능이 개선된다. In this way, the size and range of the partial matrix that affects the performance in the parity check matrix varies according to the code rate, so if one fixed layered decoding scheduling method is applied, it is easy to implement, but performance may be slightly lost. . Therefore, when implementation is possible, coding/decoding performance is improved when variable decoding scheduling is applied based on all or part of a supported maximum code rate, a minimum code rate, or an actual supported code rate.

참고로 상기 조건 3)에서 사용되는 부호율은 정보어 비트 수 또는 코드 블록 크기를 전송된 비트의 수로 나누는 유효(effective) 부호율을 사용할 수도 있으며, MCS 또는 CQI (channel quality indicator) 관련 시스템 정보(예를 들면, MCS 인덱스 또는 CQI 인덱스 등)로부터 정의되어 있는 부호율 등을 사용할 수도 있다. 유효 부호율을 사용하면 보다 정확한 성능 예측이 가능한 스케줄링 순서 또는 패턴을 정의할 수 있는 장점이 있는 반면 유효 부호율을 계산하는 추가 과정이 필요할 수도 있다. MCS 또는 CQI에서 정의되는 부호율을 사용할 경우에는 추가적인 연산은 필요하지 않을 수 있지만, 사전에 결정된 스케줄링 순서 또는 패턴에 최적화된 부호율과 다를 수 있기 때문에 다소의 성능 열화가 발생할 가능성이 있다. For reference, the code rate used in condition 3) may use an effective code rate in which the number of information word bits or the code block size is divided by the number of transmitted bits, and system information related to MCS or channel quality indicator (CQI) ( For example, a code rate defined from an MCS index or a CQI index) may be used. While the effective code rate has the advantage of defining a scheduling sequence or pattern that enables more accurate performance prediction, an additional process of calculating the effective code rate may be required. In the case of using the code rate defined in the MCS or CQI, an additional operation may not be required, but since it may be different from the code rate optimized for a predetermined scheduling order or pattern, there is a possibility that some performance deterioration may occur.

상기 조건 4)는 TBS 또는 CBS에 따라 실질적으로 디코딩에 사용되거나 성능에 영향을 주는 LDPC 부호의 기본 행렬 또는 패리티 검사 행렬의 부분이 다를 경우에 적용할 수 있다. 실제로 3GPP 5G 표준 규격인 TS 38.212 문서에 따르면, 코드 블록(또는 정보어 비트)을 패리티 검사 행렬에서 정보어에 대응되는 부분 행렬에 매핑할 때, CBS에 따라 그 범위가 다르게 설정된다. 예를 들어, 상기 TS 38.212에서 정의된 제 2 기본 행렬 BG2 (TS 38.212에서는 기본 행렬을 기본 그래프로 표현)에 기반하여 부호화를 수행할 경우에 CBS 또는 TBS 길이가 640 보다 큰 경우에는 Kb = 10 개의 열 블록, 640 이하 560 초과인 경우에는 Kb = 9 개의 열 블록, 560 이하 192 초과인 경우에는 Kb = 8 개의 열 블록, 192 이하인 경우에는 Kb = 6개의 열 블록을 선택한 다음, 상기 Kb 개의 열 블록에 기반하여 부호화를 수행한다. 따라서 정보어 비트 또는 코드 블록에 대응되는 패리티 검사 행렬의 부분 행렬에서 상기 Kb 개의 열 블록을 제외한 나머지 열 블록은 부호화 과정에서 사용하지 않을 수 있다. 이와 같이 부호화 과정에서 주어진 패리티 검사 행렬의 일부를 사용하지 않는 것은 단축과 같은 동작이며, 이는 실제 성능에 영향을 주는 차수 분포가 바뀌게 됨을 의미한다. 따라서 상기 조건 2)에서 언급한 것처럼 LDPC 부호의 이론적 성능에 큰 영향이 있을 수 있기 때문에 최적의 스케줄링 순서 또는 패턴은 TBS 또는 CBS 길이에 따라 달라질 수 있다. The condition 4) may be applied when the basic matrix or parity check matrix of the LDPC code that is substantially used for decoding or affecting performance according to the TBS or CBS is different. In fact, according to the 3GPP 5G standard TS 38.212 document, when a code block (or information word bit) is mapped from a parity check matrix to a partial matrix corresponding to an information word, the range is set differently according to the CBS. For example, when coding is performed based on the second basic matrix BG2 defined in TS 38.212 (in TS 38.212, the basic matrix is expressed as a basic graph), when CBS or TBS length is greater than 640, K b = 10 If it is less than 640 or less than 560, select K b = 9 column blocks, if less than 560 and more than 192, K b = 8 column blocks, and if less than 192 , select K b = 6 column blocks, and then the above Coding is performed based on K b column blocks. Accordingly, in the partial matrix of the parity check matrix corresponding to the information word bit or the code block, the remaining column blocks except for the K b column blocks may not be used in the encoding process. In this way, not using a part of the given parity check matrix in the coding process is the same as shortening, which means that the order distribution that affects the actual performance is changed. Therefore, as mentioned in the above condition 2), since the theoretical performance of the LDPC code may be greatly affected, the optimal scheduling order or pattern may vary according to the TBS or CBS length.

이하에서는 상기 <레이어드 디코딩 스케줄링을 결정하기 위한 조건>에서 제시한 4 가지 조건을 각각 또는 복수 개의 조건을 동시에 고려하여 수신기에서 적용 가능한 효율적인 디코딩 스케줄링 방법에 대한 구체적인 실시 예를 제안한다. 설명의 편의를 위해서 다음 수학식 26과 수학식 27과 같은 기본 행렬에 대응된 패리티 검사 행렬을 사용하는 시스템에서 처음 0 번째 열 블록과 1 번째 열 블록에 대응되는 정보어 비트 또는 코드 블록의 일부를 천공한다고 가정한다. 다만, 2 번째 이후의 열 블록에 대응되는 정보어 비트 또는 코드 블록의 일부를 천공하는 실시예에도 본 발명의 내용이 적용될 수 있다. 또한 블록 크기는 Z로 표현하며, 수학식 26의 기본 행렬은 BM1, 수학식 27의 기본 행렬은 BM2로 각각 나타낸다. Hereinafter, a specific embodiment of an efficient decoding scheduling method applicable to a receiver is proposed by simultaneously considering the four conditions presented in <Conditions for Determining Layered Decoding Scheduling>, or at the same time. For convenience of explanation, in a system using a parity check matrix corresponding to a basic matrix such as Equation 26 and Equation 27 below, information word bits or a part of a code block corresponding to the first column block and the first column block are Suppose you are perforating. However, the contents of the present invention may also be applied to an embodiment in which a part of an information word bit or a code block corresponding to a second or subsequent column block is punctured. In addition, the block size is expressed as Z, and the basic matrix of Equation 26 is expressed as BM1, and the basic matrix of Equation 27 is expressed as BM2.

[수학식 26][Equation 26]

0: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23

1: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 1: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24

2: 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 2: 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25

3: 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 3: 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25

4: 0 1 26 4: 0 1 26

5: 0 1 3 12 16 21 22 27 5: 0 1 3 12 16 21 22 27

6: 0 6 10 11 13 17 18 20 28 6: 0 6 10 11 13 17 18 20 28

7: 0 1 4 7 8 14 29 7: 0 1 4 7 8 14 29

8: 0 1 3 12 16 19 21 22 24 30 8: 0 1 3 12 16 19 21 22 24 30

9: 0 1 10 11 13 17 18 20 31 9: 0 1 10 11 13 17 18 20 31

10: 1 2 4 7 8 14 32 10: 1 2 4 7 8 14 32

11: 0 1 12 16 21 22 23 33 11: 0 1 12 16 21 22 23 33

12: 0 1 10 11 13 18 34 12: 0 1 10 11 13 18 34

13: 0 3 7 20 23 35 13: 0 3 7 20 23 35

14: 0 12 15 16 17 21 36 14: 0 12 15 16 17 21 36

15: 0 1 10 13 18 25 37 15: 0 1 10 13 18 25 37

16: 1 3 11 20 22 38 16: 1 3 11 20 22 38

17: 0 14 16 17 21 39 17: 0 14 16 17 21 39

18: 1 12 13 18 19 40 18: 1 12 13 18 19 40

19: 0 1 7 8 10 41 19: 0 1 7 8 10 41

20: 0 3 9 11 22 42 20: 0 3 9 11 22 42

21: 1 5 16 20 21 43 21: 1 5 16 20 21 43

22: 0 12 13 17 44 22: 0 12 13 17 44

23: 1 2 10 18 45 23: 1 2 10 18 45

24: 0 3 4 11 22 46 24: 0 3 4 11 22 46

25:1 6 7 14 47 25:1 6 7 14 47

26: 0 2 4 15 48 26: 0 2 4 15 48

27: 1 6 8 49 27: 1 6 8 49

28: 0 4 19 21 50 28: 0 4 19 21 50

29: 1 14 18 25 51 29: 1 14 18 25 51

30: 0 10 13 24 52 30: 0 10 13 24 52

31: 1 7 22 25 53 31: 1 7 22 25 53

32: 0 12 14 24 54 32: 0 12 14 24 54

33: 1 2 11 21 55 33: 1 2 11 21 55

34: 0 7 15 17 56 34: 0 7 15 17 56

35: 1 6 12 22 57 35: 1 6 12 22 57

36: 0 14 15 18 58 36: 0 14 15 18 58

37: 1 13 23 59 37: 1 13 23 59

38: 0 9 10 12 60 38: 0 9 10 12 60

39: 1 3 7 19 61 39: 1 3 7 19 61

40: 0 8 17 62 40: 0 8 17 62

41: 1 3 9 18 63 41: 1 3 9 18 63

42: 0 4 24 64 42: 0 4 24 64

43: 1 16 18 25 65 43: 1 16 18 25 65

44: 0 7 9 22 66 44: 0 7 9 22 66

45: 1 6 10 6745: 1 6 10 67

[수학식 27][Equation 27]

0: 0 1 2 3 6 9 10 11 0: 0 1 2 3 6 9 10 11

1: 0 3 4 5 6 7 8 9 11 12 1: 0 3 4 5 6 7 8 9 11 12

2: 0 1 3 4 8 10 12 13 2: 0 1 3 4 8 10 12 13

3: 1 2 4 5 6 7 8 9 10 13 3: 1 2 4 5 6 7 8 9 10 13

4: 0 1 11 14 4: 0 1 11 14

5: 0 1 5 7 11 15 5: 0 1 5 7 11 15

6: 0 5 7 9 11 16 6: 0 5 7 9 11 16

7: 1 5 7 11 13 17 7: 1 5 7 11 13 17

8: 0 1 12 18 8: 0 1 12 18

9: 1 8 10 11 19 9: 1 8 10 11 19

10: 0 1 6 7 20 10: 0 1 6 7 20

11: 0 7 9 13 21 11: 0 7 9 13 21

12: 1 3 11 22 12: 1 3 11 22

13: 0 1 8 13 23 13: 0 1 8 13 23

14: 1 6 11 13 24 14: 1 6 11 13 24

15: 0 10 11 25 15: 0 10 11 25

16: 1 9 11 12 26 16: 1 9 11 12 26

17: 1 5 11 12 27 17: 1 5 11 12 27

18: 0 6 7 28 18: 0 6 7 28

19: 0 1 10 29 19: 0 1 10 29

20: 1 4 11 30 20: 1 4 11 30

21: 0 8 13 31 21: 0 8 13 31

22: 1 2 32 22: 1 2 32

23: 0 3 5 33 23: 0 3 5 33

24: 1 2 9 34 24: 1 2 9 34

25: 0 5 35 25: 0 5 35

26: 2 7 12 13 36 26: 2 7 12 13 36

27: 0 6 37 27: 0 6 37

28: 1 2 5 38 28: 1 2 5 38

29: 0 4 39 29: 0 4 39

30: 2 5 7 9 40 30: 2 5 7 9 40

31: 1 13 4131: 1 13 41

32: 0 5 12 4232: 0 5 12 42

33: 2 7 10 4333: 2 7 10 43

34: 0 12 13 4434: 0 12 13 44

35: 1 5 11 4535: 1 5 11 45

36: 0 2 7 4636: 0 2 7 46

37: 10 13 4737: 10 13 47

38: 1 5 11 4838: 1 5 11 48

39: 0 7 12 4939: 0 7 12 49

40: 2 10 13 5040: 2 10 13 50

41: 1 5 11 5141: 1 5 11 51

참고로 수신기는 수학식 11 또는 12에 나타낸 블록 크기를 결정하고, 상기 블록 크기, [수학식 26]의 기본 행렬 BM1, 및 하기 수학식 28과 같은 수열(또는 지수 행렬)에 기반하여 디코딩을 수행하기 위해 필요한 LDPC 부호의 패리티 검사 행렬을 결정할 수 있다. 마찬가지로 수신기는 수학식 11 또는 12에 나타낸 블록 크기를 결정하고, 상기 블록 크기, [수학식 27]의 기본 행렬 BM2, 및 하기 수학식 29와 같은 수열(또는 지수 행렬)에 기반하여 디코딩을 수행하기 위해 필요한 LDPC 부호의 패리티 검사 행렬을 결정할 수 있다. 이때 상기 패리티 검사 행렬을 결정하는 과정은 수학식 8 내지 수학식 10의 방법이 적용될 수 있다. For reference, the receiver determines the block size shown in Equation 11 or 12, and performs decoding based on the block size, the basic matrix BM1 of [Equation 26], and a sequence (or exponential matrix) such as Equation 28 below. It is possible to determine a parity check matrix of the LDPC code required for this. Similarly, the receiver determines the block size shown in Equation 11 or 12, and performs decoding based on the block size, the basic matrix BM2 of [Equation 27], and a sequence (or exponential matrix) as shown in Equation 29 below. It is possible to determine the parity check matrix of the LDPC code required for this. In this case, the method of Equations 8 to 10 may be applied to the process of determining the parity check matrix.

[수학식 28][Equation 28]

0: 250, 69, 226, 159, 100, 10, 59, 229, 110, 191, 9, 195, 23, 190, 35, 239, 31, 1, 0, 0: 250, 69, 226, 159, 100, 10, 59, 229, 110, 191, 9, 195, 23, 190, 35, 239, 31, 1, 0,

1: 2, 239, 117, 124, 71, 222, 104, 173, 220, 102, 109, 132, 142, 155, 255, 28, 0, 0, 0, 1: 2, 239, 117, 124, 71, 222, 104, 173, 220, 102, 109, 132, 142, 155, 255, 28, 0, 0, 0,

2: 106, 111, 185, 63, 117, 93, 229, 177, 95, 39, 142, 225, 225, 245, 205, 251, 117, 0, 0, 2: 106, 111, 185, 63, 117, 93, 229, 177, 95, 39, 142, 225, 225, 245, 205, 251, 117, 0, 0,

3: 121, 89, 84, 20, 150, 131, 243, 136, 86, 246, 219, 211, 240, 76, 244, 144, 12, 1, 0, 3: 121, 89, 84, 20, 150, 131, 243, 136, 86, 246, 219, 211, 240, 76, 244, 144, 12, 1, 0,

4: 157, 102, 0, 4: 157, 102, 0,

5: 205, 236, 194, 231, 28, 123, 115, 0, 5: 205, 236, 194, 231, 28, 123, 115, 0,

6: 183, 22, 28, 67, 244, 11, 157, 211, 0, 6: 183, 22, 28, 67, 244, 11, 157, 211, 0,

7: 220, 44, 159, 31, 167, 104, 0, 7: 220, 44, 159, 31, 167, 104, 0,

8: 112, 4, 7, 211, 102, 164, 109, 241, 90, 0, 8: 112, 4, 7, 211, 102, 164, 109, 241, 90, 0,

9: 103, 182, 109, 21, 142, 14, 61, 216, 0, 9: 103, 182, 109, 21, 142, 14, 61, 216, 0,

10: 98, 149, 167, 160, 49, 58, 0, 10: 98, 149, 167, 160, 49, 58, 0,

11: 77, 41, 83, 182, 78, 252, 22, 0, 11: 77, 41, 83, 182, 78, 252, 22, 0,

12: 160, 42, 21, 32, 234, 7, 0, 12: 160, 42, 21, 32, 234, 7, 0,

13: 177, 248, 151, 185, 62, 0, 13: 177, 248, 151, 185, 62, 0,

14: 206, 55, 206, 127, 16, 229, 0, 14: 206, 55, 206, 127, 16, 229, 0,

15: 40, 96, 65, 63, 75, 179, 0, 15: 40, 96, 65, 63, 75, 179, 0,

16: 64, 49, 49, 51, 154, 0, 16: 64, 49, 49, 51, 154, 0,

17: 7, 164, 59, 1, 144, 0, 17: 7, 164, 59, 1, 144, 0,

18: 42, 233, 8, 155, 147, 0, 18: 42, 233, 8, 155, 147, 0,

19: 60, 73, 72, 127, 224, 0, 19: 60, 73, 72, 127, 224, 0,

20: 151, 186, 217, 47, 160, 0, 20: 151, 186, 217, 47, 160, 0,

21: 249, 121, 109, 131, 171, 0, 21: 249, 121, 109, 131, 171, 0,

22: 64, 142, 188, 158, 0, 22: 64, 142, 188, 158, 0,

23: 156, 147, 170, 152, 0, 23: 156, 147, 170, 152, 0,

24: 112, 86, 236, 116, 222, 0, 24: 112, 86, 236, 116, 222, 0,

25: 23, 136, 116, 182, 0, 25: 23, 136, 116, 182, 0,

26: 195, 243, 215, 61, 0, 26: 195, 243, 215, 61, 0,

27: 25, 104, 194, 0, 27: 25, 104, 194, 0,

28: 128, 165, 181, 63, 0, 28: 128, 165, 181, 63, 0,

29: 86, 236, 84, 6, 0, 29: 86, 236, 84, 6, 0,

30: 216, 73, 120, 9, 0, 30: 216, 73, 120, 9, 0,

31: 95, 177, 172, 61, 0, 31: 95, 177, 172, 61, 0,

32: 221, 112, 199, 121, 0, 32: 221, 112, 199, 121, 0,

33: 2, 187, 41, 211, 0, 33: 2, 187, 41, 211, 0,

34: 127, 167, 164, 159, 0, 34: 127, 167, 164, 159, 0,

35: 161, 197, 207, 103, 0, 35: 161, 197, 207, 103, 0,

36: 37, 105, 51, 120, 0, 36: 37, 105, 51, 120, 0,

37: 198, 220, 122, 0, 37: 198, 220, 122, 0,

38: 167, 151, 157, 163, 0, 38: 167, 151, 157, 163, 0,

39: 173, 139, 149, 0, 0, 39: 173, 139, 149, 0, 0,

40: 157, 137, 149, 0, 40: 157, 137, 149, 0,

41: 167, 173, 139, 151, 0, 41: 167, 173, 139, 151, 0,

42: 149, 157, 137, 0, 42: 149, 157, 137, 0,

43: 151, 163, 173, 139, 0, 43: 151, 163, 173, 139, 0,

44: 139, 157, 163, 173, 0, 44: 139, 157, 163, 173, 0,

45: 149, 151, 167, 045: 149, 151, 167, 0

[수학식 29][Equation 29]

0: 9, 117, 204, 26, 189, 205, 0, 0, 0: 9, 117, 204, 26, 189, 205, 0, 0,

1: 167, 166, 253, 125, 226, 156, 224, 252, 0, 0, 1: 167, 166, 253, 125, 226, 156, 224, 252, 0, 0,

2: 81, 114, 44, 52, 240, 1, 0, 0, 2: 81, 114, 44, 52, 240, 1, 0, 0,

3: 8, 58, 158, 104, 209, 54, 18, 128, 0, 0, 3: 8, 58, 158, 104, 209, 54, 18, 128, 0, 0,

4: 179, 214, 71, 0, 4: 179, 214, 71, 0,

5: 231, 41, 194, 159, 103, 0, 5: 231, 41, 194, 159, 103, 0,

6: 155, 228, 45, 28, 158, 0, 6: 155, 228, 45, 28, 158, 0,

7: 129, 147, 140, 3, 116, 0, 7: 129, 147, 140, 3, 116, 0,

8: 142, 94, 230, 0, 8: 142, 94, 230, 0,

9: 203, 205, 61, 247, 0, 9: 203, 205, 61, 247, 0,

10: 11, 185, 0, 117, 0, 10: 11, 185, 0, 117, 0,

11: 11, 236, 210, 56, 0, 11: 11, 236, 210, 56, 0,

12: 63, 111, 14, 0, 12: 63, 111, 14, 0,

13: 83, 2, 38, 222, 0, 13: 83, 2, 38, 222, 0,

14: 115, 145, 3, 232, 0, 14: 115, 145, 3, 232, 0,

15: 51, 175, 213, 0, 15: 51, 175, 213, 0,

16: 203, 142, 8, 242, 0, 16: 203, 142, 8, 242, 0,

17: 254, 124, 114, 64, 0, 17: 254, 124, 114, 64, 0,

18: 220, 194, 50, 0, 18: 220, 194, 50, 0,

19: 87, 20, 185, 0, 19: 87, 20, 185, 0,

20: 26, 105, 29, 0, 20: 26, 105, 29, 0,

21: 76, 42, 210, 0, 21: 76, 42, 210, 0,

22: 222, 63, 0, 22: 222, 63, 0,

23: 23, 235, 238, 0, 23: 23, 235, 238, 0,

24: 46, 139, 8, 0, 24: 46, 139, 8, 0,

25: 228, 156, 0, 25: 228, 156, 0,

26: 29, 143, 160, 122, 0, 26: 29, 143, 160, 122, 0,

27: 8, 151, 0, 27: 8, 151, 0,

28: 98, 101, 135, 0, 28: 98, 101, 135, 0,

29: 18, 28, 0, 29: 18, 28, 0,

30: 71, 240, 9, 84, 0, 30: 71, 240, 9, 84, 0,

31: 106, 1, 0, 31: 106, 1, 0,

32: 242, 44, 166, 0, 32: 242, 44, 166, 0,

33: 132, 164, 235, 0, 33: 132, 164, 235, 0,

34: 147, 85, 36, 0, 34: 147, 85, 36, 0,

35: 57, 40, 63, 0, 35: 57, 40, 63, 0,

36: 140, 38, 154, 0, 36: 140, 38, 154, 0,

37: 219, 151, 0, 37: 219, 151, 0,

38: 31, 66, 38, 0, 38: 31, 66, 38, 0,

39: 239, 172, 34, 0, 39: 239, 172, 34, 0,

40: 0, 75, 120, 0, 40: 0, 75, 120, 0,

41: 129, 229, 118, 041: 129, 229, 118, 0

실시 예 1Example 1

실시 예 1에 따르면, 시스템에서 실질적으로(substantially) 지원 가능한 최대 부호율 Rmax을 고려하여 부호율과 무관하게 패리티 검사 행렬에서 항상 복호에 사용되는 행 블록을 결정할 수 있다. 상기 지원 가능한 최대 부호율 Rmax는 재전송 없다는 가정하에서 모든 레이트 매칭 이후에 전송된 부호어 비트들이 정상적으로 수신됐다고 했을 때 LDPC 부호의 패리티 검사 행렬의 구조적인 특성으로 자체적으로 복호 가능한 최대 부호율을 의미할 수도 있으며, 부호율 1과 같이 LDPC 부호의 패리티 검사 행렬과 무관하게 이론적으로 가능한 단순한 최대 부호율을 의미할 수도 있다. According to the first embodiment, a row block that is always used for decoding in a parity check matrix may be determined regardless of a code rate in consideration of the maximum code rate Rmax substantially supported by the system. The supportable maximum code rate Rmax is a structural characteristic of the parity check matrix of the LDPC code when it is assumed that codeword bits transmitted after all rate matching are normally received under the assumption that there is no retransmission, and may mean the maximum code rate that can be decoded by itself. In addition, such as code rate 1, it may mean a simple maximum code rate theoretically possible regardless of the parity check matrix of the LDPC code.

상기 항상 복호에 사용되는 행 블록 중에서 상기 최대 부호율 Rmax을 고려하여 패리티 천공이 발생했을 때에도 <레이어드 디코딩 스케줄링을 결정하기 위한 조건>의 조건 1)을 만족하면서 첫 번째 레이어드 디코딩을 적용했을 때부터 LLR 값이 복원 가능한 행 블록을 선택한다. 이 때, LLR 값이 복원 가능한 행 블록은 상술한 바와 같이 천공될 열블록에 상응하는 부분 행렬 내에서 차수가 1인 (즉, 하나의 순환 순열 행렬만 있는) 행 블록을 의미할 수 있다. LLR from when the first layered decoding is applied while satisfying condition 1) of <Condition for determining layered decoding scheduling> even when parity puncture occurs in consideration of the maximum code rate Rmax among the row blocks always used for decoding. Select a block of rows whose values can be restored. In this case, the row block in which the LLR value can be restored may mean a row block of degree 1 (ie, there is only one cyclic permutation matrix) in the partial matrix corresponding to the column block to be punctured, as described above.

예를 들어, Rmax가 1에 가까운 값이라 할때 상기 BM1 또는 BM2 에서 1 번째 행 블록은 항상 LLR 업데이트가 가능하기 때문에 상기 1 번째 행 블록을 레이어드 디코딩 순서 또는 패턴의 첫 번째 행 블록으로 선택할 수 있다. 예를 들어, 디코딩 순서 또는 패턴이 디코딩을 수행하는 행 블록의 순서에 따라 행 블록의 인덱스로 구성되는 경우, 상기 디코딩 순서 또는 패턴의 첫 번째 수는 1이 될 수 있다. 1 번째 행 블록의 레이어드 디코딩 이후에 순차적으로 다른 행 블록에 대해서 레이어드 디코딩을 수행한다면, 상기 레이어드 디코딩 순서 또는 패턴은 BM1에 대해서는 [1, 0, 2, 3, 4, ... 45], BM2에 대해서는 [1, 0, 2, 3, 4, ..., 41]와 같은 형태로 나타낼 수 있다. For example, when Rmax is close to 1, the first row block in BM1 or BM2 can always be LLR updated, so the first row block may be selected as the first row block of the layered decoding order or pattern. . For example, when the decoding order or pattern is composed of the indexes of the row blocks according to the order of the row blocks performing decoding, the first number of the decoding order or pattern may be 1. If layered decoding is sequentially performed on other row blocks after layered decoding of the first row block, the layered decoding order or pattern is [1, 0, 2, 3, 4, ... 45], BM2 for BM1. For can be expressed in the form [1, 0, 2, 3, 4, ..., 41].

위와 같이 만일 레이어드 디코딩 순서 또는 패턴이 고정된 경우에는 수학식 26 및 수학식 27의 기본 행렬 또는 그에 대응되는 지수 행렬이나 패리티 검사 행렬의 행 블록의 순서를 변경하여 저장한 다음 레이어드 복호를 수행할 수도 있다. 예를 들어 수학식 26에서 BM1의 처음 2 개의 행 블록, 즉, 0 번째 행 블록과 1 번째 행 블록을 다음과 같이 서로 교환(swapping)하여 저장한 다음 순차적으로 레이어드 디코딩을 수행할 수도 있다. As described above, if the layered decoding order or pattern is fixed, the basic matrix of Equations 26 and 27, or the order of the row blocks of the exponent matrix or parity check matrix corresponding thereto, is changed and stored, and then layered decoding may be performed. have. For example, in Equation 26, the first two row blocks of BM1, that is, the 0-th row block and the first row block, may be swapped and stored as follows, and then layered decoding may be sequentially performed.

0: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0: 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24

1: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 1: 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23

마찬가지로 BM2에 대해서도 다음과 같이 0 번째 행 블록과 1 번째 행 블록을 다음과 같이 서로 교환(swapping)하여 저장한 다음 순차적으로 레이어드 디코딩을 수행할 수 있다. Similarly, for BM2, the 0th row block and the 1st row block may be swapped and stored as follows, and then layered decoding may be sequentially performed.

0: 0 1 2 3 6 9 10 11 0: 0 1 2 3 6 9 10 11

1: 0 3 4 5 6 7 8 9 11 12 1: 0 3 4 5 6 7 8 9 11 12

한편, 상기 실시예 1은 1 번째 행 블록을 우선하여 디코딩하는 예를 설명하였으나 본 발명의 실시예가 이에 한정되는 것은 아니다. 즉, 천공될 열블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 임의의 행 블록 혹은 미리 정해진 기준을 만족하는 행 블록이 우선하여 디코딩될 수 있음은 자명하다. Meanwhile, in the first embodiment, an example of decoding a first row block with priority has been described, but the embodiment of the present invention is not limited thereto. That is, it is obvious that an arbitrary row block or a row block satisfying a predetermined criterion among row blocks having a degree of 1 in the partial matrix corresponding to the column block to be punctured may be decoded with priority.

또한, 상기 레이어드 디코딩은 상기 우선하여 디코딩할 행 블록에 상응하는 레이어에 기반하여 디코딩될 수 있다. 이 때, 레이어는 우선하여 디코딩할 행 블록과 인접한 행 블록들 중 직교성 또는 준직교성을 갖는 행 블록을 포함할 수 있다.In addition, the layered decoding may be decoded based on a layer corresponding to the row block to be decoded with priority. In this case, the layer may preferentially include a row block to be decoded and a row block having orthogonality or quasi-orthogonality among row blocks adjacent to the row block.

실시 예 2Example 2

상기 실시 예 1과 유사하게 가장 먼저 복호를 수행할 행 블록으로서 1 번째 행 블록을 설정한다. Similar to the first embodiment, the first row block is set as the row block to be decoded.

<레이어드 디코딩 스케줄링을 결정하기 위한 조건>의 조건 2)의 특성을 반영하여 성능을 개선하기 위해서 상기 1 번째 행 블록에 대해 레이어드 디코딩을 수행하고 나면, 나머지 행 블록에 대해서 역순서(reverse order)로 복호를 수행할 수 있다. After performing layered decoding on the first row block to improve performance by reflecting the characteristics of condition 2) of <Conditions for determining layered decoding scheduling>, the remaining row blocks are in reverse order. Decoding can be performed.

이를 위해 TBS 또는 CBS 값을 결정하는 과정과 기본 행렬 BM1, BM2 중 어떠한 기본 행렬을 사용했는지 결정하는 과정, 블록 크기(Z)를 결정하는 과정 등을 포함한 디세그멘테이션 과정을 수행한 이후 상기 결정된 값과 할당 받았던 자원, 변조 방식 등을 고려하여 r 번째 코드 블록에 대해 레이트 매칭 이후 전송된 부호어 비트 Er을 결정할 수 있다. 단, 3GPP 5G 통신시스템에서는 확인 응답 신호인 ACK 또는 NACK 비트 수가 1 또는 2 인 경우에 대해 전송이 필요할 때는 CSI-part2 그리고/혹은 (and/or) UL-SCH (data) 중 일부가 천공되는 것과 같은 효과가 발생할 수 있기 때문에 상기 Er 비트 중 일부는 실제로 전송되지 않을 수 있으나 수신기에서는 해당 전송 부호어 비트들도 전송되었다고 간주하되 해당 위치의 부호어 비트들을 LLR = 0으로 설정하여 천공된 비트처럼 처리할 수 있다. 다시 말해, 상기 전송된 부호어 비트 Er 값은 송신기에서 물리적으로 실제 전송된 비트를 의미할 수도 있으나 경우에 따라 수신기에서 전송되었다고 판단할 수 있는 부호어 비트 크기를 의미할 수도 있다. To this end, after performing a desegmentation process including a process of determining a TBS or CBS value, a process of determining which of the basic matrices BM1 and BM2 is used, and a process of determining a block size (Z), the determined value and It is possible to determine the codeword bit Er transmitted after rate matching for the r-th code block in consideration of the allocated resource and the modulation method. However, in the 3GPP 5G communication system, when transmission is required when the number of ACK or NACK bits, which is an acknowledgment signal, is 1 or 2, some of the CSI-part2 and/or (and/or) UL-SCH (data) are punctured. Because the same effect may occur, some of the Er bits may not be actually transmitted, but the receiver considers that the corresponding transmission codeword bits are also transmitted, but the codeword bits at the corresponding position are set to LLR = 0 and processed as punctured bits can do. In other words, the transmitted codeword bit Er value may mean a bit physically actually transmitted by the transmitter, but may mean a codeword bit size that can be determined to have been transmitted by the receiver in some cases.

상기 전송된 부호어 비트 수 Er을 확인하면 부호화/복호화 과정에서 유효한 (또는 실제로 성능에 영향을 주는) 패리티 검사 행렬의 행 블록의 개수 또는 기본 행렬의 행의 개수

Figure pat00073
를 수학식 30과 같이 구할 수 있다. If the number of transmitted codeword bits Er is checked, the number of row blocks of the parity check matrix that is valid (or actually affects performance) in the encoding/decoding process or the number of rows of the basic matrix
Figure pat00073
Can be obtained as in Equation 30.

[수학식 30][Equation 30]

Figure pat00074
Figure pat00074

여기서 Kb는 기본 행렬에서 주어진 코드 블록의 LDPC 부호화를 위해 패리티 검사 행렬에서 정보어 비트에 대응되면서 실제로 사용된 열 블록의 개수를 의미하며, Kpunc는 정보어 비트들 또는 코드 블록 중 천공을 적용하는 비트들에 대응되는 열 블록의 개수를 의미한다. Here, K b is the number of column blocks actually used while corresponding to the information word bits in the parity check matrix for LDPC encoding of the given code block in the basic matrix, and K punc is the information word bits or puncturing among the code blocks. It means the number of column blocks corresponding to the bits.

구체적인 예로서 만일 3GPP 표준 규격 문서 TS 38.212를 참조하여, 입력 비트(TB + CRC)가 5632 비트이고, MCS index에 따른 부호율이 2/3 보다 크며, Er = 7632라 가정한다. 이러한 조건에서는 LDPC 부호화를 위한 기본 행렬로서 BM1이 결정되며, 또한 블록 크기도 Z = 5632/22 = 256로 결정된다. 상기 3GPP 표준 규격 TS 38.212의 경우에는 Kpunc = 2로 고정되어 있으며, BM1이 사용될 경우 Kb는 항상 22 이므로

Figure pat00075
이 된다. 즉, 패리티 검사 행렬에서 총 10개의 행 블록이 실질적으로 LDPC 부호화/복호화 성능에 영향을 준다. As a specific example, if referring to 3GPP standard document TS 38.212, it is assumed that the input bit (TB + CRC) is 5632 bits, the code rate according to the MCS index is greater than 2/3, and Er = 7632. In this condition, BM1 is determined as a basic matrix for LDPC encoding, and the block size is also determined as Z = 5632/22 = 256. In the case of the 3GPP standard TS 38.212, K punc = 2 is fixed, and when BM1 is used, K b is always 22.
Figure pat00075
Becomes. That is, a total of 10 row blocks in the parity check matrix substantially affect the LDPC encoding/decoding performance.

구체적인 다른 예로서 만일 3GPP 표준 규격 문서 TS 38.212를 참조하여, 입력 비트(TB + CRC)가 3840 비트이고, MCS index에 따른 부호율이 2/3 보다 작으며, Er = 11072이라 가정한다. 이러한 조건에서는 LDPC 부호화를 위한 기본 행렬로서 BM2가 결정되며, 또한 블록 크기도 Z = 384임이 결정된다. 상기 3GPP 표준 규격 TS 38.212의 경우에는 Kpunc = 2로 고정되어 있으며, 입력 비트의 수가 3840의 경우에 Kb = 10이므로

Figure pat00076
이 된다. 즉, 패리티 검사 행렬에서 총 21개의 행 블록이 실질적으로 LDPC 부호화/복호화 성능에 영향을 준다. 참고로 상기 3GPP 표준 규격 TS 38.212에 따르면, TBS 및 부호율에 따라 사용할 기본 행렬이 결정되며, 특히 기본 행렬 BM2가 사용될 경우에는 입력 비트의 수에 따라 Kb 값이 결정되기 때문에 (Kb - Kpunc) 값 또한 입력 비트의 수에 따라 결정 될 수 있다. 예를 들어, 입력 비트 수가 640 보다 큰 경우에는 Kb = 10이므로, (Kb - Kpunc) = 8이 되며, 입력 비트 수가 560 보다 크며 640 보다 작거나 같은 경우에는 Kb = 9이므로, (Kb - Kpunc) = 7이 되며, 입력 비트 수가 192 보다 크며 560 보다 작거나 같은 경우에는 Kb = 8이므로, (Kb - Kpunc) = 6이 되며, 그 이외의 경우에는(otherwise) Kb = 6이므로, (Kb - Kpunc) = 4가 된다. 따라서 사용될 행 블록의 개수는 TBS 및 부호율에 따라 다른 값을 이용해 결정해야 한다. As another specific example, if referring to 3GPP standard document TS 38.212, it is assumed that the input bit (TB + CRC) is 3840 bits, the code rate according to the MCS index is less than 2/3, and Er = 11072. In this condition, BM2 is determined as a basic matrix for LDPC encoding, and it is determined that the block size is Z = 384. In the case of the 3GPP standard TS 38.212, K punc = 2 is fixed, and in the case of 3840, the number of input bits is K b = 10.
Figure pat00076
Becomes. That is, a total of 21 row blocks in the parity check matrix substantially affect the LDPC encoding/decoding performance. For reference, according to the 3GPP standard TS 38.212, the basic matrix to be used is determined according to the TBS and the code rate. In particular, when the basic matrix BM2 is used, the value of K b is determined according to the number of input bits (K b -K punc ) value can also be determined according to the number of input bits. For example, if the number of input bits is greater than 640, K b = 10, so (K b -K punc ) = 8, and if the number of input bits is greater than 560 and less than or equal to 640 , since K b = 9, ( K b -K punc ) = 7, and if the number of input bits is greater than 192 and less than or equal to 560, then K b = 8, so (K b -K punc ) = 6, otherwise (otherwise) Since K b = 6, (K b -K punc ) = 4. Therefore, the number of row blocks to be used must be determined using different values depending on the TBS and the code rate.

결과적으로 상기 1 번째 행 블록에 대해 레이어드 디코딩을 처음 수행하고, 나머지 행 블록에 대해서 역순서(reverse order)로 복호를 수행할 경우에는 레이어드 스케줄링 순서 또는 패턴은 [1,

Figure pat00077
,
Figure pat00078
, ..., 3, 2, 0]과 같이 나타낼 수 있다. As a result, when layered decoding is first performed for the first row block and decoding is performed in reverse order for the remaining row blocks, the layered scheduling order or pattern is [1,
Figure pat00077
,
Figure pat00078
, ..., 3, 2, 0].

경우에 따라서 마지막 상기 Er 값이 블록 크기 Z 값의 배수가 아니어서 마지막

Figure pat00079
번째 행 블록의 일부에 대응되는 패리티 비트들이 천공된 경우에는 상기 천공된 패리티 비트들과 태너 그래프 상에서 연결되어 있는 정보어 비트들을 레이어드 디코딩이 처음 적용되었을 때 즉시 복호가 되지는 않는다. 따라서 경우에 따라서 상기 순서 또는 패턴은 [1,
Figure pat00080
,
Figure pat00081
,
Figure pat00082
, ... 3, 2, 0]과 같이 다소 변형된 형태로 적용될 수도 있다. In some cases, the last Er value is not a multiple of the block size Z value.
Figure pat00079
When parity bits corresponding to a part of the th row block are punctured, the punctured parity bits and information word bits connected on the Tanner graph are not immediately decoded when layered decoding is first applied. Therefore, in some cases, the sequence or pattern is [1,
Figure pat00080
,
Figure pat00081
,
Figure pat00082
, ... 3, 2, 0].

본 발명에서 역순서 레이어드 디코딩의 일반적인 정의는 "차수가 1인 패리티 비트에 대응되는 행 블록 또는 레이어"들 중 적어도 하나를 우선 순위화 하여 먼저 레이어드 디코딩을 적용하고, 나머지 행 블록 또는 레이어에 대해서 역순서로 복호를 수행하는 것을 의미한다. 만일 차수가 1인 패리티 비트가 없는 경우에는 패리티 검사 행렬의 마지막 행 블록 또는 레이어로부터 역순서로 복호를 수행하는 것을 의미한다. 한편, 수학식 26의 BM1 및 수학식 27의 BM2 같은 기본 행렬을 사용하는 LDPC 시스템의 경우에는 <레이어드 디코딩 스케줄링을 결정하기 위한 조건> 조건 1)을 추가로 고려하여 다음과 같이 변형된 순서 또는 패턴이 적용될 수 있다. In the present invention, a general definition of reverse-order layered decoding is to prioritize at least one of "row blocks or layers corresponding to parity bits of order 1", first apply layered decoding, and reverse order to the remaining row blocks or layers. It means performing decryption with each other. If there is no parity bit of order 1, this means that decoding is performed in reverse order from the last row block or layer of the parity check matrix. Meanwhile, in the case of an LDPC system using basic matrices such as BM1 of Equation 26 and BM2 of Equation 27, the order or pattern modified as follows by additionally considering <Condition for determining layered decoding scheduling> Condition 1). Can be applied.

[1, [차수가 1인 패리티 비트에 대응되는

Figure pat00083
개의 행 블록들], ..., 3, 2, 0][1, [corresponding to parity bit of order 1
Figure pat00083
Row blocks], ..., 3, 2, 0]

역순서 레이어드 디코딩을 적용할 때, 일부 특정 행 블록에 대해서는 그 디코딩 순서 또는 패턴이 사전에 결정될 수도 있다. 예를 들어, 수학식 26 또는 수학식 27의 기본 행렬에 기반한 통신 시스템에서 요구 조건에 따라 차수가 1이 아닌 열 블록에 대응되는 패리티 비트의 복호 순서가 사전에 별도로 정의되었을 경우에는 상기 역순서 패턴은 다양하게 변형이 가능하다. 보다 구체적으로 설명하면, 수학식 26 및 수학식 27의 기본 행렬에서 처음 4 개의 행 블록에 대한 순서는 항상 [1, 0, 2, 3]의 순서를 만족하도록 설정했을 경우에 상기 역순서 패턴은 다음과 같이 변형이 가능하다: [1, [차수가 1인 패리티 비트에 대응되는

Figure pat00084
개의 행 블록들], 0, 2, 3] 또는 [1, 0, [차수가 1인 패리티 비트에 대응되는
Figure pat00085
개의 행 블록들], 2, 3] 또는 [1, 0, 2, [차수가 1인 패리티 비트에 대응되는
Figure pat00086
개의 행 블록들], 3] 또는 [1, 0, 2, 3, [차수가 1인 패리티 비트에 대응되는
Figure pat00087
개의 행 블록들]].When applying reverse-order layered decoding, the decoding order or pattern may be determined in advance for some specific row blocks. For example, in a communication system based on the basic matrix of Equation 26 or 27, if the decoding order of the parity bits corresponding to a column block of order other than 1 is defined in advance according to a requirement condition, the reverse order pattern Can be modified in various ways. More specifically, when the order of the first four row blocks in the basic matrix of Equations 26 and 27 is always set to satisfy the order of [1, 0, 2, 3], the reverse order pattern is It can be transformed as follows: [1, [corresponding to parity bit of degree 1
Figure pat00084
Row blocks], 0, 2, 3] or [1, 0, [order 1 parity bit corresponding to
Figure pat00085
Row blocks], 2, 3] or [1, 0, 2, [order 1 parity bit corresponding to
Figure pat00086
Row blocks], 3] or [1, 0, 2, 3, [corresponding to parity bits of order 1]
Figure pat00087
Blocks of rows]].

한편, 상기 실시예 1은 1 번째 행 블록을 우선하여 디코딩하는 예를 설명하였으나 본 발명의 실시예가 이에 한정되는 것은 아니다. 즉, 천공될 열블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 임의의 행 블록 혹은 미리 정해진 기준을 만족하는 행 블록이 우선하여 디코딩될 수 있음은 자명하다. Meanwhile, in the first embodiment, an example of decoding a first row block with priority has been described, but the embodiment of the present invention is not limited thereto. In other words, it is obvious that in the partial matrix corresponding to the column block to be punctured, an arbitrary row block or a row block satisfying a predetermined criterion among row blocks having a degree of 1 can be decoded with priority.

또한, 상기 레이어드 디코딩은 상기 우선하여 디코딩할 행 블록에 상응하는 레이어에 기반하여 디코딩될 수 있다. 이 때, 레이어는 우선하여 디코딩할 행 블록과 인접한 행 블록들 중 직교성 또는 준직교성을 갖는 행 블록을 포함할 수 있다. In addition, the layered decoding may be decoded based on a layer corresponding to the row block to be decoded with priority. In this case, the layer may preferentially include a row block to be decoded and a row block having orthogonality or quasi-orthogonality among row blocks adjacent to the row block.

실시 예 3Example 3

TBS 또는 CBS 값을 결정하는 과정과 기본 행렬 BM1, BM2 중 어떠한 기본 행렬을 사용했는지 결정하는 과정, 블록 크기(Z)를 결정하는 과정 등을 포함한 디세그멘테이션 과정을 수행한 이후 LDPC 부호화/복호화를 위한 기본 행렬로서 BM1이 결정되었을 경우에, 부호율 R이 기준 부호율 RBM(1)에 비해 큰 (또는 크거나 같은) 경우에는 가장 먼저 복호를 수행할 행 블록으로서 XBM(1) 번째 행 블록을 설정할 수 있다. 만일 BM2가 결정되었을 경우에는 부호율 R이 기준 부호율 RBM(2)에 비해 큰 (또는 크거나 같은) 경우에는 가장 먼저 복호를 수행할 행 블록으로 XBM(2) 번째 행 블록을 설정할 수 있다. 여기서 RBM(1)과 RBM(2)는 서로 같은 값일 수도 있고 다른 값일 수도 있다. (편의상 기본 행렬 BM1 및 BM2를 BM(i), i=1, 2라고도 표시한다.)After performing the desegmentation process including the process of determining the TBS or CBS value, the process of determining which of the basic matrices BM1, BM2 is used, and the process of determining the block size (Z), When BM1 is determined as the basic matrix, when the code rate R is larger (or greater than or equal to) than the reference code rate R BM(1) , the first row block to be decoded is X BM(1) -th row block Can be set. If BM2 is determined, if the code rate R is larger (or greater than or equal to) than the reference code rate R BM(2) , the X BM(2) th row block can be set as the first row block to be decoded. have. Here, R BM(1) and R BM(2) may have the same value or different values. (For convenience, the basic matrices BM1 and BM2 are also denoted BM(i), i=1, 2.)

LDPC 부호화/복호화를 위해 BM1이 사용될 경우에 부호율 R이 기준 부호율 RBM(1)에 비해 작거나 같은 (또는 작은) 경우에는 <레이어드 디코딩 스케줄링을 결정하기 위한 조건>의 조건 1)과 조건 2)를 동시에 고려하여 가장 먼저 복호를 수행할 행 블록으로서 YBM(1) 번째 행 블록을 설정할 수 있다. 마찬가지로 LDPC 부호화/복호화를 위해 BM2가 사용될 경우에 부호율 R이 기준 부호율 RBM(2)에 비해 작거나 같은 (또는 작은) 경우에는 가장 먼저 복호를 수행할 행 블록으로서 YBM(2) 번째 행 블록을 설정할 수 있다. When BM1 is used for LDPC encoding/decoding, when the code rate R is smaller than or equal to (or smaller than) the reference code rate R BM(1) , conditions 1) and conditions of <Conditions for determining layered decoding scheduling> Considering 2) at the same time, it is possible to set the Y BM(1) th row block as the row block to be decoded first. Likewise, when BM2 is used for LDPC encoding/decoding, when the code rate R is smaller than or equal to (or smaller than ) the reference code rate R BM(2) , the Y BM (2) th row block is the first to be decoded. Row blocks can be set.

이와 같이 부호율에 따라 처음 레이어드 디코딩을 시작하는 행 블록의 위치를 가변적으로 적용할 수 있으며, 이를 정리하면 다음과 같이 레이어드 디코딩 순서 또는 패턴을 정의할 수 있다:In this way, the position of the first layered decoding start row block can be variably applied according to the code rate, and in summary, the layered decoding order or pattern can be defined as follows:

i) in case R > RBM(i) (or R ≥ RBM(i)); [XBM(i), ...],i) in case R> R BM(i) (or R> R BM(i) ); [X BM(i) , ...],

ii) in case R ≤ RBM(i) (or R < RBM(i)); [YBM(i), ...].ii) in case R≦R BM(i) (or R<R BM(i) ); [Y BM(i) , ...].

이 때, XBM(1), XBM(2), YBM(1), YBM(2)의 값은 천공이 적용되는 0 번째, 1 번째 열 블록 내에서 무게 또는 차수가 1인 행 블록들 중 어느 하나로 결정될 수 있다. 예를 들어, 부호율 R이 기준 부호율에 비해 작은 경우에 선택되는 YBM(1)는 해당 열 블록에서 차수가 1인 행 블록들 중 XBM(1)에 비해 행 블록 전체의 차수 또는 무게가 작은 행 블록의 인덱스로 결정될 수 있다. 다만, 본 발명의 실시예가 이에 한정되는 것은 아니며 부호율 R이 기준 부호율에 비해 작은 경우에 선택되는 YBM(1)는 해당 열 블록에서 차수가 1인 행 블록들 중 XBM(1)에 비해 행 블록 전체의 차수 또는 무게가 큰 행 블록의 인덱스로 결정될 수 있다. YBM(1) 과 XBM(1)를 결정하는 방법은 미리 정해지거나 혹은 수신기에 설정될 수 있다. 이 때, 상기 방법은 디코딩의 안정성, 효율 등을 고려하여 결정될 수 있다. At this time, the values of X BM(1) , X BM(2) , Y BM(1) and Y BM(2) are the row blocks with weight or degree 1 in the 0th and 1st column blocks to which the perforation is applied. It can be determined by any one of them. For example, Y BM(1) selected when the code rate R is smaller than the reference code rate is the order or weight of the entire row block compared to X BM(1) among the row blocks with degree 1 in the corresponding column block. Can be determined by the index of the small row block. However, the embodiment of the present invention is not limited thereto, and Y BM(1) selected when the code rate R is smaller than the reference code rate is X BM(1) among the row blocks of degree 1 in the corresponding column block. Compared to, it may be determined by the order of the entire row block or the index of the row block having a larger weight. The method of determining Y BM(1) and X BM(1) may be predetermined or may be set in the receiver. In this case, the method may be determined in consideration of the stability and efficiency of decoding.

구체적인 실시예로서 도 15의 지수 행렬 또는 그에 대응되는 수학식 24의 기본 행렬 또는 상기 수학식 24를 포함하는 수학식 26의 기본 행렬을 참고하면, 정보어 비트 (또는 코드 블록) 천공이 항상 적용되는 0 번째, 1 번째 열 블록 내에서 무게가 1인 행 블록은 1 번째, 6 번째 행 블록이다. 따라서 7 개의 행 블록이 모두 사용되지 않는 Er 값 또는 그에 대응되는 부호율

Figure pat00088
을 그 기준 부호율 RBM(1)으로 정의하고, 만일 R > 22/27을 만족하면, 레이어드 디코딩 순서 또는 패턴을 [1, ...]과 같이 정의하고, 그렇지 않은 경우에는 [6, ...]과 같은 순서 또는 패턴을 적용할 수 있다. (상기 순서 또는 패턴 [1, ...], [6, ...] 등은 첫 번째 행 블록 이후에 대한 패턴에 대해 역순서 패턴과 같은 다른 패턴이 적용될 수도 있다.)As a specific embodiment, referring to the exponential matrix of FIG. 15 or the basic matrix of Equation 24 corresponding thereto, or the basic matrix of Equation 26 including Equation 24, information word bit (or code block) puncturing is always applied. Row blocks with weight 1 in the 0th and 1st column blocks are the 1st and 6th row blocks. Therefore, the Er value that all 7 row blocks are not used or the code rate corresponding to it
Figure pat00088
Is defined as the reference code rate R BM(1) , and if R> 22/27 is satisfied, the layered decoding order or pattern is defined as [1, ...]. Otherwise, [6,. The same sequence or pattern as [..] can be applied. (For the above order or patterns [1, ...], [6, ...], other patterns such as reverse order patterns may be applied to patterns after the first row block.)

구체적인 실시예로서 도 16의 지수 행렬 또는 그에 대응되는 수학식 25의 기본 행렬 또는 상기 수학식 25를 포함하는 수학식 27의 기본 행렬을 참고하면, 정보어 비트 (또는 코드 블록) 천공이 항상 적용되는 0 번째, 1 번째 열 블록 내에서 무게가 1인 행 블록은 1 번째, 6 번째 행 블록이다. 따라서 7 개의 행 블록이 모두 사용되지 않는 Er 값 또는 그에 대응되는 부호율의 최대값

Figure pat00089
을 그 기준 부호율 RBM(2)로 정의하고, 만일 R > 10/15를 만족하면, 레이어드 디코딩 순서 또는 패턴을 [1, ...]과 같이 정의하고, 그렇지 않은 경우에는 [6, ...]과 같은 순서 또는 패턴을 적용할 수 있다. As a specific embodiment, referring to the exponential matrix of FIG. 16 or the basic matrix of Equation 25 corresponding thereto, or the basic matrix of Equation 27 including Equation 25, information word bit (or code block) puncturing is always applied. Row blocks with weight 1 in the 0th and 1st column blocks are the 1st and 6th row blocks. Therefore, the Er value that all 7 row blocks are not used or the maximum value of the corresponding code rate
Figure pat00089
Is defined as the reference code rate R BM(2) , and if R> 10/15 is satisfied, the layered decoding order or pattern is defined as [1, ...]; otherwise, [6,. The same sequence or pattern as [..] can be applied.

상기 구체적인 실시 예의 순서 또는 패턴들에서 첫 번째 행 블록 이후에 대한 순서 또는 패턴은 다음과 같이 실시 예 2)에서 설명한 역순서 패턴과 같은 다양한 패턴이 적용될 수도 있다.In the order or patterns of the specific embodiments, various patterns such as the reverse order pattern described in Embodiment 2) may be applied as the order or pattern after the first row block as follows.

in case R > RBM(i) (or R ≥ RBM(i)); in case R> R BM(i) (or R> R BM(i) );

[XBM(i),

Figure pat00090
,
Figure pat00091
, ..., (XBM(i) + 1), (XBM(i) - 1), ...],[X BM(i) ,
Figure pat00090
,
Figure pat00091
, ..., (X BM(i) + 1), (X BM(i) -1), ...],

in case R ≤ RBM(i) (or R < RBM(i)); in case R < R BM(i) (or R &lt ; R BM(i) );

[YBM(i),

Figure pat00092
,
Figure pat00093
, ..., (YBM(i) + 1), (YBM(i) - 1) ...],[Y BM(i) ,
Figure pat00092
,
Figure pat00093
, ..., (Y BM(i) + 1), (Y BM(i) -1) ...],

수학식 26의 BM1에 대해 구체적인 예를 설명하면, 만일 R > 22/27이며,

Figure pat00094
값이 7인 경우에 [1, 6, 5, 4, 3, 2, 0]과 같은 디코딩 순서 또는 패턴이 적용될 수 있으며, R ≤ 22/27인 경우에는 [6, 5, 4, 3, 2,1, 0]과 같은 디코딩 순서 또는 패턴이 적용될 수 있다. 일반적으로
Figure pat00095
이 8인 경우에는 [6, 7, 5, 4, 3, 2, 1, 0]이며, 8 보다 큰 경우에는 [6,
Figure pat00096
,
Figure pat00097
, ..., 7,5,4,3,2,1,0]과 같이 적용될 수 있다. When describing a specific example for BM1 in Equation 26, if R> 22/27,
Figure pat00094
When the value is 7, a decoding order or pattern such as [1, 6, 5, 4, 3, 2, 0] can be applied, and when R ≤ 22/27, [6, 5, 4, 3, 2 ,1, 0] may be applied in a decoding order or pattern. Generally
Figure pat00095
If this is 8, it is [6, 7, 5, 4, 3, 2, 1, 0], and if it is greater than 8, it is [6,
Figure pat00096
,
Figure pat00097
, ..., 7,5,4,3,2,1,0].

본 실시 예에서는 설명의 편의상 기준이 되는 부호율이 1 개인 경우에 대해서 설명하였지만, 기준 부호율은 복수 개로 설정 가능하며 레이어드 디코딩 순서 또는 패턴도 그에 따라 다르게 설정될 수도 있다. (모두 다를 필요는 없지만, 최소한 2개 이상의 서로 다른 순서 또는 패턴이 정의될 수 있다.)In the present embodiment, for convenience of explanation, the case where the reference code rate is 1 has been described, but the reference code rate can be set to a plurality, and the layered decoding order or pattern may be set differently accordingly. (Not all need to be different, but at least two different sequences or patterns can be defined.)

본 실시 예에서는 레이어드 디코딩 순서 또는 패턴이 가변되는 기준을 부호율로 설정한 경우에 대해서 설명하였으나 반드시 이로 한정할 필요는 없다. 예를 들어, 실시 예 2와 같이 기본 행렬 또는 패리티 검사 행렬에서 실제로 사용되는 행 블록의 개수

Figure pat00098
나 Er 값 등을 기준으로 설정할 수도 있다. BM(i)에 대해서 행 블록의 개수에 대한 기준
Figure pat00099
등과 같은 기준 값을을 정하고,
Figure pat00100
의 값과 비교하여 순서 또는 패턴을 가변 적용할 수 있다. In the present embodiment, a case in which the code rate is set as the criterion for changing the layered decoding order or pattern, but it is not necessarily limited thereto. For example, as in Example 2, the number of row blocks actually used in the basic matrix or the parity check matrix
Figure pat00098
Or it can be set based on the value of Er. Criteria for the number of row blocks for BM(i)
Figure pat00099
Set a reference value such as,
Figure pat00100
The order or pattern can be variably applied by comparing with the value of.

3GPP 5G 표준에서 BM2를 LDPC 부호화에 사용하는 경우처럼 TBS 또는 CBS에 따라 패리티 검사 행렬에서 정보어 부분에 대응되는 부분 행렬 중에서 실제로 사용되는 열 블록의 개수

Figure pat00101
가 가변일 경우에는 LDPC 부호화 및 복호화를 위해 패리티 검사 행렬에서 실제로 사용되는 부분 행렬이 다르게 되므로, 성능이 최적화된 레이어드 디코딩 순서 또는 패턴이 다를 수 있으며, 따라서 TBS 또는 CBS에 따라 서로 다른 레이어드 디코딩 순서 또는 패턴을 적용할 수 있다. 또한 TBS에 따라
Figure pat00102
값이 다르게 정의되는 경우에는 본 실시예에서 제시한 기준 부호율이 TBS에 따라 변경될 수도 있으며, 사전에 정의된 특정 값을 기준 부호율로 정의할 수도 있다.The number of column blocks actually used among the partial matrices corresponding to the information word part in the parity check matrix according to TBS or CBS, as in the case of using BM2 for LDPC encoding in 3GPP 5G standard
Figure pat00101
When is variable, since the partial matrix actually used in the parity check matrix for LDPC encoding and decoding is different, the layered decoding order or pattern optimized for performance may be different. Patterns can be applied. Also according to TBS
Figure pat00102
If the value is defined differently, the reference code rate suggested in the present embodiment may be changed according to the TBS, and a specific value defined in advance may be defined as the reference code rate.

또한, 상기 레이어드 디코딩은 상기 우선하여 디코딩할 행 블록에 상응하는 레이어에 기반하여 디코딩될 수 있다. 이 때, 레이어는 우선하여 디코딩할 행 블록과 인접한 행 블록들 중 직교성 또는 준직교성을 갖는 행 블록을 포함할 수 있다.In addition, the layered decoding may be decoded based on a layer corresponding to the row block to be decoded with priority. In this case, the layer may preferentially include a row block to be decoded and a row block having orthogonality or quasi-orthogonality among row blocks adjacent to the row block.

실시 예 4Example 4

기본 행렬에 따라 천공을 적용할 정보어 비트들 (또는 코드 블록)에 대응되는 열 블록 내의 무게가 0인 행 블록이 존재할 수 있다. 이러한 행 블록들은 처음 레이어드 디코딩을 수행하는 경우에도 LLR 업데이트가 가능하다. 따라서 레이어드 디코딩 스케줄링 순서 또는 패턴을 결정할 경우에 이러한 행 블록들을 최우선 순위화 하여 복호를 수행할 수도 있다. A row block having a weight of 0 in the column block corresponding to the information word bits (or code block) to which puncturing is applied may exist according to the basic matrix. These row blocks can be LLR updated even when layered decoding is performed for the first time. Accordingly, when determining the layered decoding scheduling order or pattern, such row blocks may be prioritized to perform decoding.

이러한 경우에는 수학식 30으로부터

Figure pat00103
값을 결정한 다음,
Figure pat00104
개의 행 블록 중에서 상기 천공을 적용할 정보어 비트들에 대응되는 열 블록 내의 무게가 0인 행 블록들에 대해 레이어드 복호를 모두 수행한 후 (상기 행 블록들에 대해서는 역순서 방향 레이어드 복호를 수행할 수도 있고, 순방향 레이어드 복호를 수행할 수도 있다), 나머지 행 블록들에 대해서 상기 실시예 1), 실시예 2), 실시예 3에서 제시한 방법들 중 적어도 하나를 함께 결합하여 레이어드 디코딩을 적용할 수도 있다. 또한, 상기 레이어드 디코딩은 상기 우선하여 디코딩할 행 블록에 상응하는 레이어에 기반하여 디코딩될 수 있다. 이 때, 레이어는 우선하여 디코딩할 행 블록과 인접한 행 블록들 중 직교성 또는 준직교성을 갖는 행 블록을 포함할 수 있다.In this case, from Equation 30
Figure pat00103
After determining the value,
Figure pat00104
After performing layered decoding on all of the row blocks having a weight of 0 in the column block corresponding to the information word bits to which the puncturing is to be applied, (reverse-order layered decoding is performed for the row blocks). Alternatively, forward layered decoding may be performed), and layered decoding may be applied to the remaining row blocks by combining at least one of the methods suggested in the first embodiment, the second embodiment, and the third embodiment. May be. In addition, the layered decoding may be decoded based on a layer corresponding to the row block to be decoded with priority. In this case, the layer may preferentially include a row block to be decoded and a row block having orthogonality or quasi-orthogonality among row blocks adjacent to the row block.

실시 예 5Example 5

패리티 검사 행렬에서 실제로 디코딩에 활용되는 행 블록의 개수에 따라 사실상 최적의 레이어드 디코딩 순서 또는 패턴은 서로 다를 수 있다. 하지만, 통상적으로 부호율이 낮은 경우에는 그 성능 차이가 감소하며, 부호율이 높은 경우에는 성능 차이가 비교적 크기 때문에 탐욕 알고리듬(greedy algorithm)을 이용해 높은 부호율에 대해서 레이어드 디코딩 순서 또는 패턴을 최적화 한 다음 그 결과를 기반으로 보다 낮은 부호율에 대한 순서 또는 패턴을 최적화 하게 되면, 간단한 형태의 수열로서 준 최적화된 순서 또는 패턴을 도출할 수 있다. 본 발명에서는 복잡도는 다소 증가하더라도 전송된 부호어 길이 Er에 따라 성능을 극대화 하는 방법으로서 레이어드 디코딩 순서 또는 패턴을 Nested 구조 (또는 중첩 구조)를 가지는 수열을 이용하여 저장한 다음 복호를 수행하는 NSA (Nested-Sequence Approach) 레이어드 디코딩 방법을 제시한다. In fact, the optimal layered decoding order or pattern may be different from each other according to the number of row blocks actually used for decoding in the parity check matrix. However, in general, when the code rate is low, the performance difference decreases, and when the code rate is high, the performance difference is relatively large. Therefore, the layered decoding order or pattern is optimized for a high code rate using a greedy algorithm. Next, if the order or pattern for a lower code rate is optimized based on the result, a semi-optimized order or pattern can be derived as a simple sequence. In the present invention, although the complexity increases slightly, as a method of maximizing performance according to the transmitted codeword length Er, the layered decoding order or pattern is stored using a sequence having a nested structure (or a nested structure), and then the NSA ( Nested-Sequence Approach) We propose a layered decoding method.

<레이어드 디코딩 스케줄링을 결정하기 위한 조건>의 조건 1), 조건 2), 조건 3), 조건 4)를 모두 고려하면서 탐욕 알고리즘을 적절히 이용하면 TBS 또는 부호율 등에 따라서 안정적인 성능을 보이는 Nested 구조의 디코딩 순서 또는 패턴을 결정할 수 있다. Nested structure decoding that shows stable performance according to TBS or code rate when properly used greed algorithm while considering all conditions 1), 2), 3), and 4) of <Conditions for Determining Layered Decoding Scheduling> You can decide the order or pattern.

구체적인 예로서 수학식 26에 대응되는 기본 행렬 BM1에 기반한 레이어드 디코딩 순서 또는 패턴으로서 다음과 같은 수열을 정의한다:As a specific example, the following sequence is defined as a layered decoding order or pattern based on the basic matrix BM1 corresponding to Equation 26:

패턴5-1:Pattern 5-1:

[42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43, 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3][42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43 , 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3]

이와 유사하게 수학식 27에 대응되는 기본 행렬 BM2에 기반한 레이어드 디코딩 순서 또는 패턴으로서 다음과 같은 수열을 정의한다:Similarly, the following sequence is defined as a layered decoding order or pattern based on the basic matrix BM2 corresponding to Equation 27:

패턴5-2:Pattern 5-2:

[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3][22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3]

다만, 본 발명의 Nested 구조의 디코딩 순서 또는 패턴은 상기의 순서 또는 패턴에 한정되지 않는다. 즉, 상기 greedy algorithm을 이용하여 생성된 Nested 구조의 디코딩 순서 또는 패턴에 대해 본 발명의 실시예가 적용될 수 있음은 자명하다. However, the decoding order or pattern of the nested structure of the present invention is not limited to the above order or pattern. That is, it is obvious that the embodiment of the present invention can be applied to the decoding order or pattern of the nested structure generated using the greedy algorithm.

또한, 상기 순서 또는 패턴에 포함된 숫자들은 패리티 검사 행렬의 행 블록의 인덱스 또는 기본 행렬의 행 인덱스에 대응될 수 있다. Also, the numbers included in the order or pattern may correspond to an index of a row block of a parity check matrix or a row index of a basic matrix.

이하에서는 상기 패턴-1 및 패턴-2의 사용 방법을 구체적으로 설명한다. Hereinafter, methods of using the patterns-1 and 2 will be described in detail.

먼저 수학식 30에 기반하여 주어진 기본 행렬 또는 그에 대응되는 패리티 검사 행렬에서 실질적으로 사용되거나 성능에 영향을 주는 행 블록의 개수

Figure pat00105
를 결정한다 (본 발명에서는 수학식 30에 기반하여 결정하는 것으로 설명하지만, 다른 방식으로 결정할 수 있다). 그 다음에 상기 패턴-1 또는 패턴-2의 수열에서
Figure pat00106
보다 작은 값들을 가지는 수열만 선택한 다음에 선택된 수열을 실제 디코딩에 사용하는 레이어드 디코딩 순서 또는 패턴으로 적용한다. 이와 같은 방식을 편의상 NSA 레이어드 디코딩 방법이라 한다. First, the number of row blocks that are actually used in a given basic matrix or a parity check matrix corresponding to it or affect performance based on Equation 30
Figure pat00105
(In the present invention, it is described as determining based on Equation 30, but it can be determined in a different way). Then, in the sequence of pattern-1 or pattern-2
Figure pat00106
After selecting only sequences having smaller values, the selected sequence is applied as a layered decoding order or pattern used for actual decoding. For convenience, this method is referred to as an NSA layered decoding method.

구체적인 실시예로서 수학식 27의 기본 행렬에 기반한 LDPC 복호를 수행하는 경우에 대해, 입력비트(TB+CRC)가 3840 비트이고 (CRC 16 비트 포함), MCS index에 따른 부호율이 2/3 보다 작으며, Er = 11072이라 가정하자. 3GPP 표준 규격 TS 38.212의 경우에는 이러한 조건에서는 LDPC 부호화를 위한 기본 행렬로서 BM2가 결정되며, 블록 크기도 Z = 384로 결정되고 Kpunc = 2로 고정되어 있다. 또한 입력비트의 수가 3840의 경우에 Kb = 10이므로

Figure pat00107
이 된다. 즉, 패리티 검사 행렬에서 총 21개의 행 블록이 실질적으로 LDPC 부호화/복호화 성능에 영향을 준다. 이 때, 상기 패턴-2 수열에서 상기
Figure pat00108
값 21 보다 작은 숫자들로만 구성된 수열을 선택한다. 즉, 패턴-2 수열에서 유효한 행 블록의 인덱스로만 구성된 수열 (또는 패턴)을 결정할 수 있다. As a specific embodiment, for the case of performing LDPC decoding based on the basic matrix of Equation 27, the input bit (TB+CRC) is 3840 bits (including CRC 16 bits), and the code rate according to the MCS index is less than 2/3. Small, and assume Er = 11072. In the case of 3GPP standard TS 38.212, under this condition, BM2 is determined as a basic matrix for LDPC encoding, and the block size is also determined as Z = 384, and K punc = 2 is fixed. Also, since K b = 10 in the case of 3840, the number of input bits
Figure pat00107
Becomes. That is, a total of 21 row blocks in the parity check matrix substantially affect the LDPC encoding/decoding performance. At this time, in the pattern-2 sequence,
Figure pat00108
Select a sequence consisting only of numbers less than the value 21. That is, in the pattern-2 sequence, a sequence (or pattern) composed of only the indexes of valid row blocks can be determined.

상기 패턴-2 수열에서 유효한 행 블록의 인덱스는 하기에 표시된 바와 같다. The index of the effective row block in the pattern-2 sequence is as shown below.

[22, 37, 40, 31, 24, 29, 20 , 12 , 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17 , 16 , 36, 21, 33, 18 , 15 , 9 , 14 , 30, 11 , 19 , 6 , 7 , 8 , 26, 10 , 13 , 1 , 4 , 5 , 0 , 2 , 3 ][22, 37, 40, 31, 24, 29, 20 , 12 , 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17 , 16 , 36, 21, 33, 18 , 15 , 9 , 14 , 30, 11 , 19 , 6 , 7 , 8 , 26, 10 , 13 , 1 , 4 , 5 , 0 , 2 , 3 ]

따라서, 상기 패턴-2 수열에서 유효한 행 블록의 인덱스에 기반하여 결정된 순서 또는 패턴은 하기와 같다. Accordingly, the order or pattern determined based on the index of the effective row block in the pattern-2 sequence is as follows.

[20, 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3][20, 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3]

상기 선택된 수열 [20, 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3]이 LDPC 복호기에서 적용될 레이어드 디코딩 패턴을 의미하게 되며, 그 의미는 20번째 행 블록에 대한 레이어드 디코딩을 시작으로 3 번째 행 블록까지 레이어드 디코딩을 순차적으로 수행하여 반복 복호의 한 주기를 수행하는 것을 의미한다. The selected sequence [20, 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3] in the LDPC decoder It means a layered decoding pattern to be applied, which means performing one cycle of repetitive decoding by sequentially performing layered decoding starting with the layered decoding for the 20th row block and then up to the 3rd row block.

NSA 레이어드 디코딩 방식은 상기 실시 예 뿐만 아니라 다양한 형태로 변형이 가능하다. 예를 들어, 수학식 30에서 Er 값이 Z의 배수가 아닌 경우에는 마지막

Figure pat00109
번째 행 블록에 대응되는 패리티 비트의 일부는 LLR = 0 값에 대응되기 때문에 상기 NSA 레이어드 디코딩 방식을 위해
Figure pat00110
보다 작은 숫자들로만 이루어진 수열을 선택하여 해당 레이어드 디코딩을 수행하되, 상기
Figure pat00111
번째 행 블록은 사전에 정의된 순서에 레이어드 디코딩을 수행할 수도 있다. 예를 들어,
Figure pat00112
번째 행 블록의 경우에는 항상 i 번째로 레이어드 디코딩을 적용한다고 가정할 경우에는
Figure pat00113
보다 작은 숫자들로만 이루어진 수열로 구성된 순서 또는 패턴에서 (i-1) 번째 수와 i번째 수 사이에
Figure pat00114
값이 적용될 수 있다. The NSA layered decoding method can be modified in various forms as well as the above embodiment. For example, in Equation 30, if the Er value is not a multiple of Z, the last
Figure pat00109
Since some of the parity bits corresponding to the th row block correspond to the LLR = 0 value, for the NSA layered decoding method
Figure pat00110
Selecting a sequence consisting of only smaller numbers and performing the corresponding layered decoding,
Figure pat00111
The th row block may perform layered decoding in a predefined order. E.g,
Figure pat00112
In the case of the first row block, assuming that the i th layered decoding is always applied,
Figure pat00113
Between the (i-1)th number and the ith number in a sequence or pattern of sequences of only smaller numbers
Figure pat00114
Values can be applied.

구체적인 실시 예로서, 만일 마지막

Figure pat00115
번째 행 블록을 항상 0 번째 레이어드 디코딩 이후 1 번째에 적용된다고 시스템에서 약속되어 있는 경우를 가정한다. 상술한 실시예와 동일하게 TBS = 3840 비트이고 (CRC 16 비트 포함), MCS index에 따른 부호율이 2/3 보다 작으며, Er = 11072이라 가정한 경우에 [20, 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3]을 레이어드 디코딩 순서 또는 패턴으로 적용하는 것이 아니라
Figure pat00116
번째 행 블록인 행 블록 20을 1 번째에 적용하기 위해 [12, 20, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3]과 같이 20의 위치가 바뀔 수도 있다. As a specific example, if the last
Figure pat00115
Assume that the system promises that the first row block is always applied to the first after the 0th layered decoding. In the same manner as in the above-described embodiment, when TBS = 3840 bits (including CRC 16 bits), the code rate according to the MCS index is less than 2/3, and Er = 11072, [ 20 , 12, 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5, 0, 2, 3] are not applied as a layered decoding order or pattern.
Figure pat00116
[12, 20 , 17, 16, 18, 15, 9, 14, 11, 19, 6, 7, 8, 10, 13, 1, 4, 5 , 0, 2, 3], the position of 20 may be changed.

이상 설명한 방법은 일례일 뿐이며 다양한 Nested 구조의 수열에 기반하여 다른 기법들과 적절히 결합된 NSA 레이어드 디코딩 방식이 존재할 수 있다. The method described above is only an example, and there may be an NSA layered decoding method appropriately combined with other techniques based on a sequence of various nested structures.

실시 예 6Example 6

상기 실시 예에서는 기본적으로 정보어 비트들(또는 코드 블록)의 일부가 항상 천공되는 경우를 가정하여 설명하였다. 하지만, 만일 시스템에서 정보어 비트 천공이 상황에 따라 적용되지 않을 수도 있을 경우에는 상기 제안된 레이어드 디코딩 스케줄링을 위한 순서 또는 패턴이 최적이 아닐 수도 있다. In the above embodiment, it is assumed that some of the information word bits (or code blocks) are always punctured. However, if the information word bit puncturing may not be applied depending on the situation in the system, the order or pattern for the proposed layered decoding scheduling may not be optimal.

예를 들어, 천공이 적용되지 않는 경우에는 처음에 어느 레이어에 대한 디코딩을 수행해도 LLR 값이 업데이트 되기 때문에 <레이어드 디코딩 스케줄링을 결정하기 위한 조건>의 조건 2)를 고려하여 역순서 방향 레이어드 디코딩을 수행하고, 만일 천공이 적용된 경우에는 상기 실시 예 등에서 제안한 다양한 방법들을 적용할 수 있다. For example, if puncturing is not applied, the LLR value is updated no matter which layer is initially decoded, so reverse-order layered decoding is performed in consideration of condition 2) of <Conditions for determining layered decoding scheduling>. And, if the perforation is applied, various methods proposed in the above embodiment and the like can be applied.

결론적으로 정보어 비트 또는 코드 블록의 일부 천공 여부에 따라 천공되었을 경우에는 제1 패턴을, 천공되지 않았을 경우에는 제2 패턴을 기반으로 레이어드 디코딩을 적용하면 성능이 개선될 수 있다. In conclusion, performance may be improved by applying layered decoding based on the first pattern when punctured, and the second pattern when not punctured according to whether the information word bit or the code block is partially punctured.

실시 예 7Example 7

구현 복잡도가 크게 문제가 되지 않는다면, 각 LDPC 부호의 기본 행렬 또는 부호율 또는 변조 오더에 기반하여 최적화된 복수 개의 순서 또는 패턴을 이용하여 레이어드 디코딩 방식을 적용할 수 있다. If implementation complexity is not a problem, a layered decoding method may be applied using a plurality of sequences or patterns optimized based on a basic matrix or code rate or modulation order of each LDPC code.

예를 들어, 수학식 27에 대응되는 기본 행렬 BM2에 해당하는 LDPC 기본 행렬을 이용하고, QPSK, 16QAM, 64QAM, 256QAM, 1024QAM과 같은 변조 방식 중 일부를 사용하는 시스템의 경우에, 사용되는 각 변조 방식에 따라 다음과 같은 준최적화(sub-optimal)된 레이어드 디코딩 순서 또는 패턴 (또는 수열)을 적용하여 LDPC 디코딩을 수행할 수 있다:For example, in the case of a system using an LDPC basic matrix corresponding to the basic matrix BM2 corresponding to Equation 27 and using some of the modulation schemes such as QPSK, 16QAM, 64QAM, 256QAM, and 1024QAM, each modulation used LDPC decoding may be performed by applying the following sub-optimal layered decoding order or pattern (or sequence) according to the method:

패턴 7-1: QPSK 또는 4QAM에 대한 순서 또는 패턴Pattern 7-1: sequence or pattern for QPSK or 4QAM

[37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16, 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3][37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16 , 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3]

패턴 7-2: 16-QAM에 대한 순서 또는 패턴Pattern 7-2: sequence or pattern for 16-QAM

[37, 40, 29, 27, 25, 22, 31, 34, 28, 33, 36, 24, 21, 32, 39, 20, 41, 38, 35, 18, 12, 23, 17, 16, 30, 15, 9, 14, 6, 11, 7, 19, 10, 8, 26, 1, 4, 5, 13, 0, 2, 3][37, 40, 29, 27, 25, 22, 31, 34, 28, 33, 36, 24, 21, 32, 39, 20, 41, 38, 35, 18, 12, 23, 17, 16, 30 , 15, 9, 14, 6, 11, 7, 19, 10, 8, 26, 1, 4, 5, 13, 0, 2, 3]

패턴 7-3: 64-QAM에 대한 순서 또는 패턴Pattern 7-3: sequence or pattern for 64-QAM

[37, 40, 33, 29, 25, 27, 32, 23, 22, 36, 31, 28, 24, 26, 34, 20, 18, 21, 39, 12, 41, 38, 35, 17, 30, 16, 14, 11, 15, 6, 7, 9, 19, 10, 8, 13, 1, 4, 5, 0, 2, 3][37, 40, 33, 29, 25, 27, 32, 23, 22, 36, 31, 28, 24, 26, 34, 20, 18, 21, 39, 12, 41, 38, 35, 17, 30 , 16, 14, 11, 15, 6, 7, 9, 19, 10, 8, 13, 1, 4, 5, 0, 2, 3]

패턴 7-4: 256-QAM에 대한 순서 또는 패턴Pattern 7-4: sequence or pattern for 256-QAM

[40, 37, 33, 32, 30, 29, 28, 41, 27, 26, 25, 39, 23, 22, 24, 38, 36, 21, 20, 18, 12, 35, 31, 17, 15, 9, 14, 34, 16, 6, 11, 7, 19, 10, 8, 1, 4, 5, 13, 0, 2, 3][40, 37, 33, 32, 30, 29, 28, 41, 27, 26, 25, 39, 23, 22, 24, 38, 36, 21, 20, 18, 12, 35, 31, 17, 15 , 9, 14, 34, 16, 6, 11, 7, 19, 10, 8, 1, 4, 5, 13, 0, 2, 3]

패턴 7-5: 1024-QAM에 대한 순서 또는 패턴Pattern 7-5: sequence or pattern for 1024-QAM

[41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 18, 15, 12, 17, 11, 9, 16, 14, 6, 7, 1, 19, 10, 13, 4, 8, 5, 0, 2, 3][41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 18, 15, 12 , 17, 11, 9, 16, 14, 6, 7, 1, 19, 10, 13, 4, 8, 5, 0, 2, 3]

송신기는 각 변조 방식 또는 오더에 따라 데이터 비트들을 전송할 수 있다. 그리고, 수신기는 각 변조 방식 또는 오더에 따라 수신된 신호를 적절히 복조하여(demodulate) 수신된 데이터 비트별로 LLR 값을 결정한 다음, 상기 LLR 값과 상기 패턴들에 기초하여 레이어드 디코딩을 수행할 수 있다. The transmitter can transmit data bits according to each modulation scheme or order. The receiver may appropriately demodulate the received signal according to each modulation method or order, determine an LLR value for each received data bit, and then perform layered decoding based on the LLR value and the patterns.

한편, 설명의 편의를 위해 상기 패턴 또는 7-1 내지 7-5는 각각 특정 변조 방식에 대해 정의된 것으로 기재하였으나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 즉, 상기 패턴 또는 순서 7-1 내지 7-5는 송신기 또는 수신기의 설정에 따라 각 변조 방식 또는 오더에 적용될 수 있음은 자명하다. Meanwhile, for convenience of description, the patterns or 7-1 to 7-5 have been described as being defined for a specific modulation method, but embodiments of the present invention are not limited thereto. That is, it is obvious that the patterns or procedures 7-1 to 7-5 can be applied to each modulation method or order according to the settings of the transmitter or the receiver.

한편, 상술한 바와 같이 본 발명의 실시예는 하나 이상의 행 블록으로 구성된 레이어에 기반하여 디코딩을 수행하는 경우에도 적용될 수 있다. 예를 들어, 상기 실시 예 1 또는 2에서 차수가 1인 행 블록들 중 우선하여 디코딩할 행 블록이 결정된 경우, 상기 우선하여 디코딩할 행 블록에 상응하는 레이어에 대해 디코딩이 수행될 수 있다. 구체적으로 상기 결정된 행 블록에 인접한 행 블록이 상기 행 블록과 직교하거나 준직교하는 특성을 갖는다면 해당 행 블록들을 포함한 레이어를 기반으로 디코딩을 수행할 수 있다. 또한, 이후에 순차적인 디코딩 수행 시 혹은 역순서 디코딩 수행시에도 직교성 또는 준직교성을 갖는 행 블록들이 하나의 레이어를 구성하여 레이어드 디코딩이 수행될 수 있음은 자명하다. Meanwhile, as described above, the embodiment of the present invention can be applied even when decoding is performed based on a layer composed of one or more row blocks. For example, in the first or second embodiment, when a row block to be decoded with priority is determined among row blocks of order 1, decoding may be performed on a layer corresponding to the row block to be decoded with priority. Specifically, if a row block adjacent to the determined row block has a characteristic that is orthogonal to or quasi-orthogonal to the row block, decoding may be performed based on a layer including the row blocks. In addition, it is obvious that layered decoding can be performed by configuring one layer of row blocks having orthogonality or quasi-orthogonality even when sequential decoding is performed later or when reverse order decoding is performed.

또한, 상술한 실시 예 3 내지 6에서도 상기 적어도 두 개 이상의 행 블록으로 구성된 레이어드 디코딩이 수행될 수 있음은 자명하다. 또한, 적어도 하나의 레이어가 2개 이상의 행 블록으로 구성된 경우에는 상기 레이어드 디코딩 순서 또는 패턴들은 전체 행 블록의 개수 보다 짧은 수열로 정의될 수 있으며, 상기 복수 개의 행 블록이 결합된 레이어에 대해서 어떤 행 블록이 결합되었는지에 대한 추가 정보가 필요할 수 있다. In addition, it is apparent that the layered decoding composed of the at least two or more row blocks may be performed in the above-described embodiments 3 to 6 as well. In addition, when at least one layer is composed of two or more row blocks, the layered decoding order or patterns may be defined as a sequence shorter than the total number of row blocks. You may need additional information about whether the blocks have been combined.

한편, 상술한 레이어드 디코딩은 블록 병렬 (block parallel) 디코딩, 행 블록 병렬 (row-block parallel) 디코딩 (또는 행 병렬 디코딩)과 같은 다양한 방식으로 구현될 수도 있다. Meanwhile, the above-described layered decoding may be implemented in various ways such as block parallel decoding and row-block parallel decoding (or row parallel decoding).

여기서 블록 병렬 디코딩은 통상적으로 패리티 검사 행렬에서 하나 또는 복수 개의 블록 즉, Z*Z 크기의 순환 순열 행렬을 기준으로 수행되는 레이어드 디코딩 방식이다. 또한 행 블록 병렬 디코딩 (또는 행 병렬 디코딩)은 통상적으로 하나의 행 블록을 기준으로 수행되는 레이어드 디코딩 방식이다.Here, the block parallel decoding is a layered decoding method typically performed on the basis of one or a plurality of blocks in the parity check matrix, that is, a cyclic permutation matrix having a size of Z*Z. In addition, row block parallel decoding (or row parallel decoding) is a layered decoding method typically performed on the basis of one row block.

행 블록 병렬 디코딩 방식은 주어진 행 블록 또는 복수개의 행 블록으로 구성된 레이어에 포함된 모든 블록(순환 순열 행렬)에 대해 복호를 수행하기 때문에 넓은 의미의 블록 병렬 디코딩 방식의 확장으로 볼 수 있다. 그리고, 하나의 블록(순환 순열 행렬)에 기반한 블록 병렬 디코딩 방식에 비해 구현 복잡도가 증가할 수 있지만, 보다 높은 디코딩 정보 처리량 (decoding throughput)을 지원할 수 있다. The row block parallel decoding method can be viewed as an extension of the block parallel decoding method in a broad sense because decoding is performed on all blocks (cyclic permutation matrices) included in a given row block or a layer composed of a plurality of row blocks. Further, compared to the block parallel decoding method based on one block (cyclic permutation matrix), implementation complexity may increase, but higher decoding information throughput may be supported.

블록 병렬 디코딩은 하나의 블록(순환 순열 행렬)을 기준으로 수행될 수도 있지만, 일반적으로 복수개의 블록을 기준으로 수행될 수도 있다. 그뿐만 아니라, 하나의 블록 보다 작은 기준으로도 수행될 수도 있는데, 이러한 경우에는 통상적으로 블록 크기 Z의 약수를 기준으로 블록 병렬 디코딩이 수행될 수 있다. 블록 병렬 디코딩을 수행함에 있어, 복수개의 블록을 기준으로 레이어디 디코더를 구현할 경우에는 구현 복잡도는 증가하지만, 디코딩 정보 처리량도 증가한다.Block parallel decoding may be performed based on one block (cyclic permutation matrix), but may generally be performed based on a plurality of blocks. In addition, it may be performed on a standard smaller than one block. In this case, block parallel decoding may be performed based on a factor of the block size Z in general. In performing block parallel decoding, when a layered decoder is implemented based on a plurality of blocks, implementation complexity increases, but decoding information throughput also increases.

상기 본 발명의 실시예에 따른 수신기의 동작을 정리하면 하기와 같다. 즉, 통신 시스템에서 수신기의 디코딩 방법에 있어서, 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계, 상기 신호에 기반하여 입력 비트의 수를 확인하는 단계, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계; 및 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며, 상기 레이어드 디코딩은 천공될 열 블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 적어도 하나에 상응하는 레이어에 대해 우선하여 디코딩되는 것을 특징으로 한다. 또한, 상기 레이어드 디코딩에는 상술한 본 발명의 다양한 실시예가 조합되어 실행될 수 있다. The operation of the receiver according to the embodiment of the present invention is summarized as follows. That is, in a decoding method of a receiver in a communication system, receiving a signal corresponding to an input bit transmitted from a transmitter, determining the number of input bits based on the signal, and a code based on the number of input bits Checking the size of the block; And performing layered decoding based on a parity check matrix corresponding to the size of the code block, wherein the layered decoding is performed on at least one of the row blocks of degree 1 in the partial matrix corresponding to the column block to be punctured. It is characterized in that it is decoded in preference to a corresponding layer. In addition, the layered decoding may be performed by combining various embodiments of the present invention described above.

또한, 상기 본 발명의 일 실시예에 따른 수신기의 방법은 또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기의 디코딩 방법은 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계, 상기 신호에 기반하여 입력 비트의 수를 확인하는 단계, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계; 및 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며, 상기 레이어드 디코딩은 하기의 디코딩 순서 또는 패턴에 기반하여 수행되는 것을 특징으로 한다. In addition, the method of the receiver according to an embodiment of the present invention is also, the decoding method of the receiver of the present invention for solving the above problem includes the steps of receiving a signal corresponding to an input bit transmitted from a transmitter, Checking the number of input bits based on the number of input bits, checking the size of the code block based on the number of input bits; And performing layered decoding based on a parity check matrix corresponding to the size of the code block, wherein the layered decoding is performed based on the following decoding order or pattern.

패턴5-1:Pattern 5-1:

[42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43, 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3][42, 40, 26, 34, 37, 45, 30, 32, 22, 28, 38, 44, 41, 20, 27, 25, 31, 36, 39, 13, 33, 35, 24, 29, 43 , 17, 23, 18, 21, 14, 6, 10, 16, 1, 4, 19, 7, 12, 15, 9, 5, 11, 8, 0, 2, 3]

패턴5-2:Pattern 5-2:

[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3]. [22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].

또한, 상기의 문제점을 해결하기 위한 본 발명의 수신기의 디코딩 방법은 송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계, 상기 신호에 기반하여 입력 비트의 수를 확인하는 단계, 상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계, 및 상기 입력 비트 수 및 부호율에 대응되는 LDPC 부호의 기본 행렬 또는 상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기초하여 레이어드 디코딩을 수행하는 단계를 포함하며, 상기 레이어드 디코딩은 변조 오더 또는 부호율 등을 고려하여 하기의 디코딩 순서 또는 패턴 중 적어도 하나에 기반하여 수행되는 것을 특징으로 한다. In addition, the decoding method of the receiver of the present invention for solving the above problem includes receiving a signal corresponding to an input bit transmitted from a transmitter, checking the number of input bits based on the signal, and Checking the size of the code block based on the number, and performing layered decoding based on the basic matrix of the LDPC code corresponding to the number of input bits and the code rate or the parity check matrix corresponding to the size of the code block Including, the layered decoding is characterized in that it is performed based on at least one of the following decoding order or pattern in consideration of a modulation order or a code rate.

패턴 7-1: QPSK 또는 4QAM에 대한 순서 또는 패턴Pattern 7-1: sequence or pattern for QPSK or 4QAM

[37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16, 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3][37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16 , 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3]

패턴 7-2: 16-QAM에 대한 순서 또는 패턴Pattern 7-2: sequence or pattern for 16-QAM

[37, 40, 29, 27, 25, 22, 31, 34, 28, 33, 36, 24, 21, 32, 39, 20, 41, 38, 35, 18, 12, 23, 17, 16, 30, 15, 9, 14, 6, 11, 7, 19, 10, 8, 26, 1, 4, 5, 13, 0, 2, 3][37, 40, 29, 27, 25, 22, 31, 34, 28, 33, 36, 24, 21, 32, 39, 20, 41, 38, 35, 18, 12, 23, 17, 16, 30 , 15, 9, 14, 6, 11, 7, 19, 10, 8, 26, 1, 4, 5, 13, 0, 2, 3]

패턴 7-3: 64-QAM에 대한 순서 또는 패턴Pattern 7-3: sequence or pattern for 64-QAM

[37, 40, 33, 29, 25, 27, 32, 23, 22, 36, 31, 28, 24, 26, 34, 20, 18, 21, 39, 12, 41, 38, 35, 17, 30, 16, 14, 11, 15, 6, 7, 9, 19, 10, 8, 13, 1, 4, 5, 0, 2, 3][37, 40, 33, 29, 25, 27, 32, 23, 22, 36, 31, 28, 24, 26, 34, 20, 18, 21, 39, 12, 41, 38, 35, 17, 30 , 16, 14, 11, 15, 6, 7, 9, 19, 10, 8, 13, 1, 4, 5, 0, 2, 3]

패턴 7-4: 256-QAM에 대한 순서 또는 패턴Pattern 7-4: sequence or pattern for 256-QAM

[40, 37, 33, 32, 30, 29, 28, 41, 27, 26, 25, 39, 23, 22, 24, 38, 36, 21, 20, 18, 12, 35, 31, 17, 15, 9, 14, 34, 16, 6, 11, 7, 19, 10, 8, 1, 4, 5, 13, 0, 2, 3][40, 37, 33, 32, 30, 29, 28, 41, 27, 26, 25, 39, 23, 22, 24, 38, 36, 21, 20, 18, 12, 35, 31, 17, 15 , 9, 14, 34, 16, 6, 11, 7, 19, 10, 8, 1, 4, 5, 13, 0, 2, 3]

패턴 7-5: 1024-QAM에 대한 순서 또는 패턴Pattern 7-5: sequence or pattern for 1024-QAM

[41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 18, 15, 12, 17, 11, 9, 16, 14, 6, 7, 1, 19, 10, 13, 4, 8, 5, 0, 2, 3][41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 18, 15, 12 , 17, 11, 9, 16, 14, 6, 7, 1, 19, 10, 13, 4, 8, 5, 0, 2, 3]

상기 변조 오더는 MCS 인덱스에 의해서 결정될 수 있다. 또한, 부호율은 MCS 인덱스의 의해서 결정될 수 있다. 또는, 상기 부호율은 유효 부호율 값에 기반하여 결정될 수 있으며, 유효 부호율 값은 할당된 자원을 통해 실제 전송된 비트 수 Er에 기반하여 결정될 수 있다.The modulation order may be determined by the MCS index. Also, the code rate can be determined by the MCS index. Alternatively, the code rate may be determined based on an effective code rate value, and the effective code rate value may be determined based on the number of bits Er actually transmitted through an allocated resource.

한편, 상술한 바와 같이, 상기 레이어드 디코딩 순서 또는 패턴은 특정 변조 오더에 한정되지 않는다. Meanwhile, as described above, the layered decoding order or pattern is not limited to a specific modulation order.

한편, 본 발명은 LDPC 부호의 기본 행렬 (또는 패리티 검사 행렬) 또는 부호율 (또는 사용되는 행 블록의 개수) 또는 변조 오더 각각에 기반하여 레이어드 디코딩 순서를 결정하는 순서 또는 패턴이 결정되어 사용될 수도 있지만, 2개 이상의 조건에 기반하여 순서 또는 패턴이 결정될 수도 있다. 또한 본 발명의 실시예들은 서로 독립적으로 또는 서로 하이브리드 방식으로 서로 결합하여 적용될 수도 있으며, 각 기본 행렬, 변조 오더, 부호율 (또는 사용되는 행 블록의 개수)에 따라 모두 다른 디코딩 순서 또는 패턴을 적용할 경우에 성능은 최적화 할 수 있으나 복잡도가 증가할 수 있으므로, 일부 경우에는 동일한 패턴을 적용할 수도 있다.Meanwhile, in the present invention, an order or pattern for determining a layered decoding order based on each of the basic matrix (or parity check matrix) or code rate (or the number of used row blocks) or modulation order of the LDPC code may be determined and used. , The order or pattern may be determined based on two or more conditions. In addition, embodiments of the present invention may be applied independently of each other or combined with each other in a hybrid manner, and all different decoding orders or patterns are applied according to each basic matrix, modulation order, and code rate (or the number of used row blocks). In this case, performance can be optimized, but complexity can increase, so the same pattern can be applied in some cases.

예를 들어, 상기 변조 오더에 대한 레이어드 디코딩 패턴에서, 미리 정해진 변조 오더 이하 또는 이상인 경우에 대해 각 변조 오더에 대해 정해진 패턴 또는 순서 중 어느 하나의 패턴 혹은 순서가 사용되도록 설정될 수 있다. For example, in the layered decoding pattern for the modulation order, it may be set to use any one pattern or order of a predetermined pattern or order for each modulation order when it is less than or equal to a predetermined modulation order.

한편, 본 발명의 방법을 설명하는 도면에서 설명의 순서가 반드시 실행의 순서와 대응되지는 않으며, 선후 관계가 변경되거나 병렬적으로 실행 될 수도 있다. On the other hand, in the drawings for explaining the method of the present invention, the order of description does not necessarily correspond to the order of execution, and the relationship between precedence and after may be changed or may be executed in parallel.

또는, 본 발명의 방법을 설명하는 도면은 본 발명의 본질을 해치지 않는 범위 내에서 일부의 구성 요소가 생략되고 일부의 구성요소만을 포함할 수 있다.Alternatively, in the drawings for explaining the method of the present invention, some components may be omitted and only some components may be included within a range that does not impair the essence of the present invention.

또한, 본 발명의 방법은 발명의 본질을 해치지 않는 범위 내에서 각 실시예에 포함된 내용의 일부 또는 전부가 조합되어 실행될 수도 있다. In addition, the method of the present invention may be implemented by combining some or all of the contents included in each embodiment within a range not impairing the essence of the present invention.

본 발명은 바람직한 실시예로 설명하였지만, 다양한 변경 및 변형이 당업자에게 제시될 수도 있다. 이러한 변경 및 변형들은 첨부된 청구범위에 포함되는 것으로 의도하는 바이다. 또한 본 발명의 동작 흐름도에서 설명의 편의상 다른 블록으로 표현된 동작들은 실제 시스템에서는 복수 개의 프로세서로 분리되어 구현될 수도 있지만, 하나의 프로세서로 통합되어 구현될 수도 있음은 자명하다.Although the present invention has been described as a preferred embodiment, various changes and modifications may be suggested to those skilled in the art. Such changes and modifications are intended to be included in the appended claims. In addition, for convenience of description in the operation flow chart of the present invention, operations represented by different blocks may be implemented separately in a plurality of processors in an actual system, but it is obvious that they may be integrated and implemented as one processor.

Claims (17)

통신 시스템에서 수신기의 디코딩 방법에 있어서,
송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계;
상기 신호에 기반하여 입력 비트의 수를 확인하는 단계;
상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계; 및
상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며,
상기 레이어드 디코딩은 천공될 코드 블록의 일부에 대응되는 열 블록에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 적어도 하나에 상응하는 레이어에 대해 우선하여 디코딩되는 것을 특징으로 하는 방법.
In the decoding method of a receiver in a communication system,
Receiving a signal corresponding to an input bit transmitted from a transmitter;
Checking the number of input bits based on the signal;
Checking the size of the code block based on the number of input bits; And
And performing layered decoding based on a parity check matrix corresponding to the size of the code block,
The layered decoding is characterized in that in the partial matrix corresponding to a column block corresponding to a part of the code block to be punctured, the layer corresponding to at least one of the row blocks of degree 1 is decoded with priority.
제1항에 있어서,
상기 레이어드 디코딩을 수행하는 단계는,
상기 차수가 1인 행 블록 중 하나에 상응하는 레이어에 대해 우선하여 디코딩을 수행하는 단계;
나머지 행 블록에 상응하는 레이어에 대해 순차적으로 디코딩을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
The step of performing the layered decoding,
Performing decoding in preference to a layer corresponding to one of the row blocks of the order 1;
And sequentially decoding a layer corresponding to the remaining row blocks.
제1항에 있어서,
상기 레이어드 디코딩을 수행하는 단계는,
상기 패리티 검사 행렬에서 유효한 행 블록의 개수를 확인하는 단계;
상기 차수가 1인 행 블록 중 하나에 상응하는 레이어에 대해 우선하여 디코딩을 수행하는 단계;
상기 유효한 행 블록의 개수에 기반하여 나머지 행 블록에 상응하는 레이어에 대해 역순서 (reverse order)로 디코딩을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
The step of performing the layered decoding,
Checking the number of valid row blocks in the parity check matrix;
Performing decoding in preference to a layer corresponding to one of the row blocks of the order 1;
And performing decoding on a layer corresponding to the remaining row blocks in reverse order based on the number of valid row blocks.
제1항에 있어서,
상기 차수가 1인 행 블록 중 적어도 하나는 상기 디코딩을 위한 부호율과 기준 부호율에 기반하여 결정되는 것을 특징으로 하는 방법.
The method of claim 1,
And at least one of the row blocks having the order 1 is determined based on a code rate for the decoding and a reference code rate.
제1항에 있어서,
상기 레이어드 디코딩은,
상기 천공될 열 블록에 상응하는 부분 행렬 내에서 차수가 0인 행 블록이 존재하는 경우, 상기 차수가 0인 행 블록에 상응하는 레이어를 최우선으로 디코딩되는 것을 특징으로 하는 방법.
The method of claim 1,
The layered decoding,
When there is a row block having a degree of 0 in the partial matrix corresponding to the column block to be punctured, a layer corresponding to the row block having the order of 0 is decoded with the highest priority.
제1항에 있어서,
상기 레이어드 디코딩은 상기 패리티 검사 행렬의 기본 행렬에 기반하여 미리 정해진 디코딩 순서(order)에 기반하여 수행되는 것을 특징으로 하며,
상기 디코딩 순서는 하기의 순서를 포함하는 것을 특징으로 하는 방법.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
The method of claim 1,
The layered decoding is characterized in that it is performed based on a predetermined decoding order based on a basic matrix of the parity check matrix,
The method of claim 1, wherein the decoding order includes the following order.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
제6항에 있어서,
상기 레이어드 디코딩은,
미리 정해진 디코딩 순서에 포함된 행 블록의 인덱스들 중 유효한 행 블록의 인덱스에 기반한 디코딩 순서에 기반하여 수행되는 것을 특징으로 하는 방법.
The method of claim 6,
The layered decoding,
A method characterized in that the method is performed based on a decoding order based on an index of a valid row block among indices of a row block included in a predetermined decoding order.
통신 시스템에서 디코딩을 위한 수신기에 있어서,
송수신부; 및
송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하고,
상기 신호에 기반하여 입력 비트의 수를 확인하고,
상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하고,
상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 제어부를 포함하며,
상기 레이어드 디코딩은 천공될 코드 블록의 일부에 대응되는 열 블록에 에 상응하는 부분 행렬 내에서 차수가 1인 행 블록 중 적어도 하나에 상응하는 레이어에 대해 우선하여 디코딩되는 것을 특징으로 하는 수신기.
In a receiver for decoding in a communication system,
A transmission/reception unit; And
Receive a signal corresponding to the input bit transmitted from the transmitter,
Check the number of input bits based on the signal,
Check the size of the code block based on the number of input bits,
And a control unit for performing layered decoding based on a parity check matrix corresponding to the size of the code block,
Wherein the layered decoding is decoded in preference to a layer corresponding to at least one of a row block having a degree 1 in a partial matrix corresponding to a column block corresponding to a part of a code block to be punctured.
제8항에 있어서,
상기 제어부는,
상기 차수가 1인 행 블록 중 하나에 상응하는 레이어에 대해 우선하여 디코딩을 수행하고,
나머지 행 블록에 상응하는 레이어에 대해 순차적으로 디코딩을 수행하는 것을 특징으로 하는 수신기.
The method of claim 8,
The control unit,
Prioritizing decoding is performed on a layer corresponding to one of the row blocks of the order 1,
A receiver, characterized in that for sequentially performing decoding on a layer corresponding to the remaining row blocks.
제8항에 있어서,
상기 제어부는,
상기 패리티 검사 행렬에서 유효한 행 블록의 개수를 확인하고,
상기 차수가 1인 행 블록 중 하나에 상응하는 레이어에 대해 디코딩을 수행하고,
상기 유효한 행 블록의 개수에 기반하여 나머지 행 블록에 상응하는 레이어에 대해 역순서 (reverse order)로 디코딩을 수행하는 것을 특징으로 하는 수신기.
The method of claim 8,
The control unit,
Check the number of valid row blocks in the parity check matrix,
Decoding a layer corresponding to one of the row blocks of the order 1,
And decoding a layer corresponding to the remaining row blocks in reverse order based on the number of valid row blocks.
제8항에 있어서,
상기 차수가 1인 행 블록 중 적어도 하나는 상기 디코딩을 위한 부호율과 기준 부호율에 기반하여 결정되는 것을 특징으로 하는 수신기.
The method of claim 8,
And at least one of the row blocks having the order 1 is determined based on a code rate for decoding and a reference code rate.
제8항에 있어서,
상기 레이어드 디코딩은,
상기 천공될 열 블록에 상응하는 부분 행렬 내에서 차수가 0인 행 블록이 존재하는 경우, 상기 차수가 0인 행 블록에 상응하는 레이어를 최우선으로 디코딩되는 것을 특징으로 하는 수신기.
The method of claim 8,
The layered decoding,
And when there is a row block having a degree of 0 in the partial matrix corresponding to the column block to be punctured, a layer corresponding to the row block having the order of 0 is decoded with the highest priority.
제8항에 있어서,
상기 레이어드 디코딩은 상기 패리티 검사 행렬의 기본 행렬에 기반하여 미리 정해진 디코딩 순서에 기반하여 수행되는 것을 특징으로 하며,
상기 디코딩 순서는 하기의 순서를 포함하는 것을 특징으로 하는 수신기.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
The method of claim 8,
The layered decoding is characterized in that it is performed based on a predetermined decoding order based on a basic matrix of the parity check matrix,
The decoding order comprises the following order.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
제13항에 있어서,
상기 레이어드 디코딩은,
미리 정해진 디코딩 순서에 포함된 행 블록의 인덱스들 중 유효한 행 블록의 인덱스에 기반한 디코딩 순서에 기반하여 수행되는 것을 특징으로 하는 수신기.
The method of claim 13,
The layered decoding,
A receiver, characterized in that it is performed based on a decoding order based on an index of a valid row block among indices of a row block included in a predetermined decoding order.
통신 시스템에서 수신기의 디코딩 방법에 있어서,
수신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하는 단계;
상기 신호에 기반하여 입력 비트의 수를 확인하는 단계;
상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하는 단계; 및
상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 단계를 포함하며,
상기 레이어드 디코딩은 하기의 디코딩 순서에 기반하여 수행되는 것을 특징으로 하는 방법.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
In the decoding method of a receiver in a communication system,
Receiving a signal corresponding to an input bit transmitted from a receiver;
Checking the number of input bits based on the signal;
Checking the size of the code block based on the number of input bits; And
And performing layered decoding based on a parity check matrix corresponding to the size of the code block,
The layered decoding method, characterized in that it is performed based on the following decoding order.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
통신 시스템에서 수신기에 있어서,
송수신부; 및
송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하고,
상기 신호에 기반하여 입력 비트의 수를 확인하고,
상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하고,
상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 제어부를 포함하며,
상기 레이어드 디코딩은 하기의 디코딩 순서에 기반하여 수행되는 것을 특징으로 하는 수신기.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15, 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
In a receiver in a communication system,
A transmission/reception unit; And
Receive a signal corresponding to the input bit transmitted from the transmitter,
Check the number of input bits based on the signal,
Check the size of the code block based on the number of input bits,
And a control unit for performing layered decoding based on a parity check matrix corresponding to the size of the code block,
The layered decoding is performed based on the following decoding order.
[22, 37, 40, 31, 24, 29, 20, 12, 27, 25, 28, 35, 38, 41, 32, 23, 34, 39, 17, 16, 36, 21, 33, 18, 15 , 9, 14, 30, 11, 19, 6, 7, 8, 26, 10, 13, 1, 4, 5, 0, 2, 3].
통신 시스템에서 수신기에 있어서,
송수신부; 및
송신기로부터 전송되는 입력 비트에 상응하는 신호를 수신하고,
상기 신호에 기반하여 입력 비트의 수를 확인하고,
상기 입력 비트의 수에 기반하여 코드 블록의 크기를 확인하고,
상기 코드 블록의 크기에 상응하는 패리티 검사 행렬에 기반하여 레이어드 디코딩을 수행하는 제어부를 포함하며,
상기 레이어드 디코딩은 상기 신호에 복조가 수행되어 결정된 값에 기반하여 수행되며,
상기 레이어드 디코딩은 하기의 디코딩 순서에 기반하여 수행되는 것을 특징으로 하는 수신기.
[37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16, 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3]
In a receiver in a communication system,
A transmission/reception unit; And
Receive a signal corresponding to the input bit transmitted from the transmitter,
Check the number of input bits based on the signal,
Check the size of the code block based on the number of input bits,
And a control unit for performing layered decoding based on a parity check matrix corresponding to the size of the code block,
The layered decoding is performed based on a value determined by demodulating the signal,
The layered decoding is performed based on the following decoding order.
[37, 40, 29, 27, 25, 22, 31, 28, 36, 33, 32, 34, 24, 41, 38, 21, 20, 35, 18, 12, 23, 39, 17, 30, 16 , 15, 9, 14, 7, 11, 19, 6, 8, 26, 13, 10, 1, 4, 5, 0, 2, 3]
KR1020200028354A 2019-09-10 2020-03-06 Apparatus and method for decoding of data in communication or broadcasting system KR20210030848A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202080059625.9A CN114270710A (en) 2019-09-10 2020-09-10 Data decoding method and apparatus in communication or broadcast system
EP20862201.9A EP3963723A4 (en) 2019-09-10 2020-09-10 Method and apparatus for data decoding in communication or broadcasting system
US17/016,915 US11177830B2 (en) 2019-09-10 2020-09-10 Method and apparatus for data decoding in communication or broadcasting system
PCT/KR2020/012247 WO2021049888A1 (en) 2019-09-10 2020-09-10 Method and apparatus for data decoding in communication or broadcasting system
US17/526,088 US11876534B2 (en) 2019-09-10 2021-11-15 Method and apparatus for data decoding in communication or broadcasting system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190112447 2019-09-10
KR1020190112447 2019-09-10

Publications (1)

Publication Number Publication Date
KR20210030848A true KR20210030848A (en) 2021-03-18

Family

ID=75232407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200028354A KR20210030848A (en) 2019-09-10 2020-03-06 Apparatus and method for decoding of data in communication or broadcasting system

Country Status (1)

Country Link
KR (1) KR20210030848A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116827487A (en) * 2023-08-29 2023-09-29 极芯通讯技术(南京)有限公司 Code rate control method, device and storage medium
WO2023229211A1 (en) * 2022-05-25 2023-11-30 삼성전자 주식회사 Layered decoding method and apparatus for low density parity check code in communication system
WO2024043541A1 (en) * 2022-08-25 2024-02-29 삼성전자주식회사 Receiver performing blind detection in wireless communication system, and operation method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229211A1 (en) * 2022-05-25 2023-11-30 삼성전자 주식회사 Layered decoding method and apparatus for low density parity check code in communication system
WO2024043541A1 (en) * 2022-08-25 2024-02-29 삼성전자주식회사 Receiver performing blind detection in wireless communication system, and operation method thereof
CN116827487A (en) * 2023-08-29 2023-09-29 极芯通讯技术(南京)有限公司 Code rate control method, device and storage medium
CN116827487B (en) * 2023-08-29 2023-11-10 极芯通讯技术(南京)有限公司 Code rate control method, device and storage medium

Similar Documents

Publication Publication Date Title
US11575464B2 (en) Apparatus and method for encoding and decoding channel in communication or broadcasting system
EP3954049B1 (en) Method and apparatus for decoding data in communication or broadcasting system
US11177830B2 (en) Method and apparatus for data decoding in communication or broadcasting system
US11646818B2 (en) Method and apparatus for encoding/decoding channel in communication or broadcasting system
CN111357218B (en) Method and apparatus for encoding and decoding channel in communication or broadcasting system
US11044042B2 (en) Apparatus and method for encoding and decoding channel in communication or broadcasting system
KR20210030848A (en) Apparatus and method for decoding of data in communication or broadcasting system
CN110583023B (en) Method and apparatus for channel encoding and decoding in a communication or broadcast system
KR20180107692A (en) Apparatus and method of transmission using harq in communication or broadcasting system
US11722247B2 (en) Method and apparatus for channel encoding and decoding in communication or broadcasting system
KR102509968B1 (en) Apparatus and method of transmission using harq in communication or broadcasting system
CN108292971B (en) Method and apparatus for channel encoding/decoding in a communication or broadcast system
KR20200132720A (en) Apparatus and method for decoding of data in communication or broadcasting system
KR102302366B1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
US20230253984A1 (en) Method and apparatus for data decoding in communication or broadcasting system
KR20180107701A (en) Apparatus and method of transmission using harq in communication or broadcasting system
KR20190017600A (en) Apparatus and method for transmitting and receiving data in communication systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal