KR102567916B1 - 송신 장치 및 그의 신호 처리 방법 - Google Patents

송신 장치 및 그의 신호 처리 방법 Download PDF

Info

Publication number
KR102567916B1
KR102567916B1 KR1020210158338A KR20210158338A KR102567916B1 KR 102567916 B1 KR102567916 B1 KR 102567916B1 KR 1020210158338 A KR1020210158338 A KR 1020210158338A KR 20210158338 A KR20210158338 A KR 20210158338A KR 102567916 B1 KR102567916 B1 KR 102567916B1
Authority
KR
South Korea
Prior art keywords
parity
bits
information word
ldpc
matrix
Prior art date
Application number
KR1020210158338A
Other languages
English (en)
Other versions
KR20210145089A (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 KR1020210158338A priority Critical patent/KR102567916B1/ko
Publication of KR20210145089A publication Critical patent/KR20210145089A/ko
Application granted granted Critical
Publication of KR102567916B1 publication Critical patent/KR102567916B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • 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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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/27Coding, 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 using interleaving techniques
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Landscapes

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

Abstract

송신 장치가 개시된다. 본 송신 장치는 패리티 검사 행렬에 기초하여 정보어 비트들, 제1 패리티 비트들 및 제2 패리티 비트들을 포함하는 LDPC 부호어를 생성하는 부호화부, LDPC 부호어를 인터리빙하는 인터리버 및, 인터리빙된 LDPC 부호어를 성상점에 맵핑하는 성상도 맵퍼를 포함한다.

Description

송신 장치 및 그의 신호 처리 방법 { TRANSMITTER AND SIGNAL PROCESSING METHOD THEREOF }
본 발명은 송신 장치 및 그의 신호 처리 방법에 관한 것으로 더욱 상하게는 IR 방식으로 데이터를 처리하여 전송하는 송신 장치 및 그의 신호 처리 방법에 관한 것이다.
21세기 정보화 사회에서 방송 통신 서비스는 본격적인 디지털화, 다채널화, 광대역화, 고품질화의 시대를 맞이하고 있다. 특히 최근에 고화질 디지털 TV 및 PMP, 휴대방송 기기 보급이 확대됨에 따라 디지털 방송 서비스도 다양한 수신방식 지원에 대한 요구가 증대되고 있다.
이러한 요구에 따라 표준 그룹에서는 다양한 표준을 제정하여, 사용자의 니즈를 만족시킬 수 있는 다양한 서비스를 제공하고 있다.
한편, 데이터가 무선 채널을 통해 수신 측으로 전송될 때, 데이터는 페이딩과 열 잡음 등을 겪게 되어 오류가 발생될 수 있다. 이에 따라, 수신된 데이터의 오류 정정 효율을 높이기 위한 다양한 방법이 제안되고 있으며, 그 중의 하나로 IR(Incremental Redundancy) 방식으로 신호를 송수신하는 방법이 존재한다.
IR 방식은 전송에 사용되지 않았던 부호화된 데이터를 추가적으로 전송하여 수신 측에서 수신된 데이터의 부호율(code rate)을 낮춰 수신 성공률을 높이는 방법이다.
이에 따라, IR 방식을 적용하여 사용자에게 보다 나은 서비스를 제공할 수 있는 방안의 모색이 요청된다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 수신 성능 향상을 위해 IR 방식으로 신호를 처리하여 전송하는 송신 장치 및 그의 신호 처리 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 송신 장치는 패리티 검사 행렬에 기초하여 정보어 비트들, 제1 패리티 비트들 및 제2 패리티 비트들을 포함하는 LDPC 부호어를 생성하는 부호화부, 상기 LDPC 부호어를 인터리빙하는 인터리버 및, 상기 인터리빙된 LDPC 부호어를 성상점에 맵핑하는 성상도 맵퍼를 포함한다.
여기에서, 상기 패리티 검사 행렬은 2 개의 정보어 부분 행렬과 4 개의 패리티 부분 행렬로 구성되고, 상기 2 개의 정보어 부분 행렬 각각은, 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성될 수 있다.
또한, 상기 M은 Nldpc1, Nldpc2 및 Kldpc의 공약수이며, M=(Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2을 만족할 수 있다.
그리고, 상기 M은 360일 수 있다.
또한, 상기 정보어 부분 행렬은 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 표 4와 같이 정의될 수 있다.
그리고, 상기 패리티 부분 행렬은 상기 4 개의 패리티 부분 행렬 중 서로 인접하지 않는 2 개의 패리티 부분 행렬은 이중 대각 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다.
여기에서, 상기 제1 패리티 비트들은 상기 이중 대각 구조를 갖는 패리티 부분 행렬 중 하나에 기초하여 생성되고, 상기 제2 패리티 비트들은, 상기 이중 대각 구조를 갖는 패리티 부분 행렬 중 다른 하나에 기초하여 생성될 수 있다.
또한, 상기 부호화부는 수학식 11을 이용하여 상기 제1 패리티 비트들을 생성하고, 수학식 12를 이용하여 상기 제2 패리티 비트들을 생성할 수 있다.
한편, 상기 패리티 부분 행렬은 상기 4 개의 패리티 부분 행렬 중 하나는 이중 대각 행렬 구조를 가지며, 다른 하나는 항등 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다.
여기에서, 상기 제1 패리티 비트들은 상기 이중 대각 구조를 갖는 패리티 부분 행렬에 기초하여 생성되고, 상기 제2 패리티 비트들은, 상기 항등 행렬 구조를 갖는 패리티 부분 행렬에 기초하여 생성될 수 있다.
또한, 상기 부호화부는, 수학식 13을 이용하여 상기 제1 패리티 비트들을 생성하고, 수학식 14를 이용하여 상기 제2 패리티 비트들을 생성할 수 있다.
한편, 상기 인터리버는 상기 정보어 비트들 및 상기 제1 패리티 비트들을 인터리빙하기 위한 제1 인터리버 및 상기 제2 패리티 비트들을 인터리빙하기 위한 제2 인터리버를 포함할 수 있다.
여기에서, 상기 성상도 맵퍼는 상기 제1 인터리버의 출력을 성상점에 맵핑하기 위한 제1 성상점 맵퍼 및, 상기 제2 인터리버의 출력을 성상점에 맵핑하기 위한 제2 성상점 맵퍼를 포함할 수 있다.
또한, 본 실시 예에 따른 송신 장치는 상기 정보어 비트들 및 상기 제1 패리티 비트들 중에서 일부의 비트가 상기 제2 패리티 비트들과 함께 성상점에 맵핑되도록, 상기 정보어 비트 및 상기 제1 패리티 비트들 중에서 일부의 비트를 상기 제2 인터리버로 출력하는 비트 선택부를 더 포함할 수 있다.
여기에서, 상기 제2 패리티 비트들의 비트 수는 상기 제1 패리티 비트들의 비트 수보다 적을 수 있다.
또한, 상기 비트 선택부는 상기 정보어 비트들과 상기 제1 패리티 비트들의 비트 수의 총합과 상기 제2 패리티 비트들의 비트 수의 비율에 기초하여 상기 정보어 비트들과 상기 제1 패리티 비트들 중에서 일부의 비트를 선택하고, 상기 선택된 일부의 비트를 상기 제2 인터리버로 출력할 수 있다.
그리고, 상기 비트 선택부는 상기 정보어 비트들과 상기 제1 패리티 비트들의 비트 수의 총합과 상기 제2 패리티 비트들의 비트 수의 비율에 기초하여 상기 정보어 비트들과 상기 제1 패리티 비트들 중에서 일부의 비트 그룹을 선택하고, 상기 선택된 일부의 비트 그룹을 상기 제2 인터리버로 출력할 수 있다.
한편, 본 발명의 일 실시 예에 따른 송신 장치의 신호 처리 방법은 패리티 검사 행렬에 기초하여 정보어 비트들, 제1 패리티 비트들 및 제2 패리티 비트들을 포함하는 LDPC 부호어를 생성하는 단계, 상기 LDPC 부호어를 인터리빙하는 단계 및, 상기 인터리빙된 LDPC 부호어를 성상점에 맵핑하는 단계를 포함한다.
여기에서, 상기 패리티 검사 행렬은 2 개의 정보어 부분 행렬과 4 개의 패리티 부분 행렬로 구성되고, 상기 2 개의 정보어 부분 행렬 각각은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성될 수 있다.
또한, 상기 M은 Nldpc1, Nldpc2 및 Kldpc의 공약수이며, M=(Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2을 만족할 수 있다.
그리고, 상기 M은 360일 수 있다.
또한, 상기 정보어 부분 행렬은 상기 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 표 4와 같이 정의될 수 있다.
그리고, 상기 패리티 부분 행렬은 상기 4 개의 패리티 부분 행렬 중 서로 인접하지 않는 2 개의 패리티 부분 행렬은 이중 대각 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다.
여기에서, 상기 제1 패리티 비트들은 상기 이중 대각 구조를 갖는 패리티 부분 행렬 중 하나에 기초하여 생성되고, 상기 제2 패리티 비트들은 상기 이중 대각 구조를 갖는 패리티 부분 행렬 중 다른 하나에 기초하여 생성될 수 있다.
또한, 상기 LDPC 부호어를 생성하는 단계는 수학식 11을 이용하여 상기 제1 패리티 비트들을 생성하고, 수학식 12를 이용하여 상기 제2 패리티 비트들을 생성할 수 있다.
한편, 상기 패리티 부분 행렬은 상기 4 개의 패리티 부분 행렬 중 하나는 이중 대각 행렬 구조를 가지며, 다른 하나는 항등 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다.
여기에서, 상기 제1 패리티 비트들은 상기 이중 대각 구조를 갖는 패리티 부분 행렬에 기초하여 생성되고, 상기 제2 패리티 비트들은 상기 항등 행렬 구조를 갖는 패리티 부분 행렬에 기초하여 생성될 수 있다.
또한, 상기 LDPC 부호어를 생성하는 단계는 하기의 수학식 13을 이용하여 상기 제1 패리티 비트들을 생성하고, 수학식 14를 이용하여 상기 제2 패리티 비트들을 생성할 수 있다.
한편, 상기 인터리빙하는 단계는 제1 인터리버를 이용하여 상기 정보어 비트들 및 상기 제1 패리티 비트들을 인터리빙하고, 제2 인터리버를 이용하여 상기 제2 패리티 비트들을 인터리빙할 수 있다.
여기에서, 상기 맵핑하는 단계는 제1 성상도 맵퍼를 이용하여 상기 제1 인터리버의 출력을 성상점에 맵핑하고, 제2 성상도 맵퍼를 이용하여 상기 제2 인터리버의 출력을 성상점에 맵핑할 수 있다.
또한, 본 실시 예에 따른 신호 처리 방법은 상기 정보어 비트들 및 상기 제1 패리티 비트들 중에서 일부의 비트가 상기 제2 패리티 비트들과 함께 성상점에 맵핑되도록, 상기 정보어 비트 및 상기 제1 패리티 비트들 중에서 일부의 비트를 상기 제2 인터리버로 출력하는 단계를 더 포함할 수 있다.
여기에서, 상기 제2 패리티 비트들의 비트 수는 상기 제1 패리티 비트들의 비트 수보다 적을 수 있다.
그리고, 상기 출력하는 단계는 상기 정보어 비트들과 상기 제1 패리티 비트들의 비트 수의 총합과 상기 제2 패리티 비트들의 비트 수의 비율에 기초하여 상기 정보어 비트들과 상기 제1 패리티 비트들 중에서 일부의 비트를 선택하고, 상기 선택된 일부의 비트를 상기 제2 인터리버로 출력할 수 있다.
또한, 상기 출력하는 단계는 상기 정보어 비트들과 상기 제1 패리티 비트들의 비트 수의 총합과 상기 제2 패리티 비트들의 비트 수의 비율에 기초하여 상기 정보어 비트들과 상기 제1 패리티 비트들 중에서 일부의 비트 그룹을 선택하고, 상기 선택된 일부의 비트 그룹을 상기 제2 인터리버로 출력할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 수신 측의 복호화 성능이 향상될 수 있다.
도 1 및 도 7은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도,
도 2, 도 3, 도 4 및 도 5는 본 발명의 일 실시 예에 따른 패리티 검사 행렬의 구조를 나타내는 도면들,
도 6 및 도 8은 본 발명의 일 실시 예에 따른 수신 장치의 구성을 나타내기 위한 블록도, 그리고
도 9는 본 발명의 일 실시 예에 따른 송신 장치의 신호 처리 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도이다.
송신 장치(100)는 IR(Incremental Redundancy) 방식을 이용하여 데이터를 수신 측으로 전송할 수 있다.
IR 방식은 전송에 사용되지 않았던 부호화된 데이터를 추가적으로 전송하여 수신 측에서 수신된 데이터의 부호율을 낮춰 수신 성공률을 높이는 방법이다. 즉, IR 방식에서 송신 측은 전송하고자 하는 데이터를 부호화할 때 추가적인 패리티를 만들어 내고, 추가적인 패리티를 제외한 원래의 부호화된 데이터와 추가적인 패리티를 전송하게 된다.
예를 들어, n 비트의 데이터가 채널 코딩을 거쳐 m 개의 심볼들로 변환되었다면, 송신 측은 m 개의 심볼들 중의 일부만을 전송하고 나머지 부분들을 재전송하거나, m 개의 심볼들 중의 일부와 나머지 부분을 별도의 채널을 통해 동시에 전송한다. 이에 따라, 수신 측에서는 코딩된 일부 블록의 뒷부분에 나머지 부분에 해당하는 블록을 붙여서 오류 정정(error correction)을 실행한다.
이하에서는, 상술한 바와 같은 IR 방식으로 데이터를 전송하는 송신 장치(100)의 구성에 대해 도 1을 참조하여 설명하도록 한다. 한편, 이하에서 LDPC(Low Density Parity Check) 부호어, 정보어 비트들 및 패리티 비트들의 길이는 각각 LDPC 부호어, 정보어 비트들 또는 패리티 비트들에 포함되는 비트들의 수를 의미한다.
도 1에 따르면, 송신 장치(100)는 부호화부(110), 인터리버(120) 및 성상도 맵퍼(130)를 포함한다.
부호화부(110)는 패리티 검사 행렬(parity check matrix)에 기초하여 정보어 비트들, 제1 패리티 비트들 및 제2 패리티 비트들을 포함하는 LDPC 부호어를 생성할 수 있다. 이를 위해, 부호화부(110)는 LDPC 부호화를 위한 LDPC 인코더(미도시)를 포함할 수 있다.
구체적으로, 부호화부(110)는 입력되는 비트들을 정보어 비트들(즉, 데이터)로 LDPC 부호화를 수행하여 제1 패리티 비트들(즉, 제1 LDPC 패리티 비트들)과 제2 패리티 비트들(즉, 제2 LDPC 패리티 비트들)을 생성하고, 정보어 비트들, 제1 패리티 비트들과 제2 패리티 비트들로 구성된 LDPC 부호어를 생성할 수 있다. 그리고, 부호화부(110)는 LDPC 부호어를 인터리버(120)로 출력할 수 있다.
이때, 부호화부(110)는 시스테메틱하게(systematically) LDPC 부호화를 수행하므로, LDPC 부호어는 정보어 비트들을 그대로 포함하며, 정보어 비트들에 패리티 비트들이 부가된 형태가 될 수 있다.
LDPC 부호화에 의해 생성된 LDPC 부호어는 정보어 비트들, 제1 패리티 비트들과 제2 패리티 비트들을 포함할 수 있다. 여기에서, 정보어 비트들과 제1 패리티 비트들은 IR 방식에서 원래 전송하고자 하는 부호화된 데이터에 해당되고, 제2 패리티 비트들은 IR 방식에서 추가적으로 전송되는 추가적인 패리티에 해당된다.
예를 들어, 부호화부(110)는 Kldpc 개의 비트들로 구성된 정보어 비트들 (i0 i1,i2,...,
Figure 112021132524835-pat00001
)를 LDPC 부호화하여 Nldpc 개의 비트들로 구성된 LDPC 부호어 (i0,i1,i2,...,
Figure 112021132524835-pat00002
,p0,p1,p2,...,
Figure 112021132524835-pat00003
,
Figure 112021132524835-pat00004
,
Figure 112021132524835-pat00005
,...,
Figure 112021132524835-pat00006
)를 생성할 수 있다.
이 경우, 정보어 비트들 (i0,i1,i2,...,
Figure 112021132524835-pat00007
)과 제1 패리티 비트들 (p0,p1,p2,...,
Figure 112021132524835-pat00008
)은 IR 방식에서 원래 전송하고자 하는 부호화된 데이터이고, 제2 패리티 비트들 (
Figure 112021132524835-pat00009
,
Figure 112021132524835-pat00010
,...,
Figure 112021132524835-pat00011
)은 IR 방식에서 추가적으로 전송되는 추가적인 패리티가 될 수 있다.
여기에서, LDPC 부호어의 길이는 Nldpc이고, 정보어 비트들의 길이는 Kldpc이고, 제1 패리티 비트들의 길이는 Nldpc1-Kldpc이고, 제2 패리티 비트들의 길이는 Nldpc2-Kldpc이 될 수 있으며, 이에 따라, Nldpc=Nldpc1+Nldpc2-Kldpc를 만족할 수 있다.
한편, LDPC 부호화 과정은 패리티 검사 행렬 H에 대해 HㆍCT=0을 만족하는 LDPC 부호어 C를 생성하는 과정이라는 점에서, 부호화부(110)는 LDPC 부호화 시 패리티 검사 행렬을 이용할 수 있다.
이하에서는, 도 2 및 도 3을 참조하여 본 발명의 일 실시 예에 따라 LDPC 부호화에 이용되는 패리티 검사 행렬에 대해 설명하도록 한다.
도 2 및 도 3을 참조하면, 패리티 검사 행렬(200, 300)은 정보어 부분 행렬(또는, 정보어 행렬)(210, 310) 및 패리티 부분 행렬(또는, 패리티 행렬)(220, 320)을 포함한다. 패리티 검사 행렬(200, 300)에서 1을 제외한 부분의 원소는 0이다.
구체적으로, 정보어 부분 행렬(210, 310)은 Kldpc 개의 열(column)들을 포함하고, 패리티 부분 행렬(220, 320)은 (Nldpc1-Kldpc)+(Nldpc2-Kldpc) 개의 열들을 포함한다. 즉, 정보어 부분 행렬(210, 310)은 패리티 검사 행렬(200, 300)의 0 번째 열에서 Kldpc-1 번째 열을 포함하고, 패리티 부분 행렬(220, 320)은 패리티 검사 행렬(200, 300)의 Kldpc 번째 열에서 Nldpc1+Nldpc2-Kldpc-1 번째 열을 포함한다.
이 경우, 정보어 부분 행렬(210, 310)은 정보어 비트들의 비트 수만큼의 열들로 구성되고, 패리티 부분 행렬(220, 320)은 패리티 비트들의 비트 수만큼의 열들로 구성될 수 있다.
즉, 도 2 및 도 3의 경우, 정보어 부분 행렬(210, 310)은 Kldpc 개의 열들로 구성되므로 패리티 검사 행렬(200, 300)에 의해 생성된 LDPC 부호어는 Kldpc 개의 비트로 구성된 정보어 비트들를 포함하고, 패리티 부분 행렬(220, 320)은 (Nldpc1-Kldpc)+(Nldpc2-Kldpc) 개의 열들로 구성되므로 패리티 검사 행렬(200, 300)에 의해 생성된 LDPC 부호어는 (Nldpc1-Kldpc)+(Nldpc2-Kldpc) 개의 비트로 구성된 패리티 비트들을 포함할 수 있다.
여기에서, 패리티 비트들은 Nldpc1-Kldpc 개의 비트로 구성된 제1 패리티 비트들와 Nldpc2-Nldpc1 개의 비트로 구성된 제2 패리티 비트들을 포함할 수 있다.
한편, 패리티 검사 행렬(200, 300)의 행(row)의 개수는 패리티 부분 행렬(220, 320)의 열의 개수와 동일하다. 즉, 패리티 검사 행렬(200, 300)은 (Nldpc1-Kldpc)+(Nldpc2-Kldpc) 개의 행으로 이루어진다.
이하에서는, 패리티 검사 행렬(200, 300)의 구조에 대해 구체적으로 살펴보도록 한다.
먼저, 도 2에 도시된 패리티 검사 행렬(200)에 대해 살펴보도록 한다.
도 2에 도시된 바와 같이, 패리티 검사 행렬(200)은 패리티 검사 행렬(200-1)과 패리티 검사 행렬(200-2)이 서로 연접된 형태를 갖는다.
따라서, 패리티 검사 행렬(200-1)의 정보어 부분 행렬(210-1)과 패리티 검사 행렬(200-2)의 정보어 부분 행렬(210-2)의 구조가 각각 정의되면 패리티 검사 행렬(200)의 정보어 부분 행렬(210)의 구조가 정의될 수 있다. 이하에서는 패리티 검사 행렬(200-1)의 정보어 부분 행렬(210-1)과 패리티 검사 행렬(200-2)의 정보어 부분 행렬(210-2) 각각의 구조에 대해 설명하도록 한다.
패리티 검사 행렬(200-1)의 정보어 부분 행렬(210-1)은 0 번째 열부터 Kldpc- 1 번째 열을 포함하는 행렬로, 다음과 같은 규칙을 따른다.
첫째, 정보어 부분 행렬(210-1)을 구성하는 Kldpc 개의 열들은 M 개(또는, M1 개)(예를 들어, M=M1=360)씩 동일한 그룹에 속하며, 총 Kldpc/M 개의 열 그룹(column group)들로 구분된다. 이 경우, 동일한 열 그룹 내에 속한 열들은 서로 Qldpc1만큼 시클릭 쉬프트(cyclic shift)된 관계를 가진다.
여기에서, M은 정보어 부분 행렬(210-1)에서 열의 패턴이 반복되는 간격, Qldpc1은 정보어 부분 행렬(210-1)에서 각 열이 시클릭 쉬프트되는 크기이다. 이때, M 및 Qldpc1은 정수로, Qldpc1=(Nldpc1-Kldpc)/M이 성립되도록 결정될 수 있으며, LDPC 부호어의 길이와 부호율(code rate)에 따라 달라질 수 있다. 여기에서, Nldpc1은 패리티 검사 행렬(210-1)에 기초하여 LDPC 부호화를 수행한 경우 생성된 LDPC 부호어의 길이이고, Kldpc은 정보어 비트들의 길이이고, Nldpc1-Kldpc는 패리티 비트들의 길이이다.
한편, 상술한 예에서는 M이 360인 것으로 설명하였으나 이는 일 예에 불과하며, M은 Nldpc1와 Kldpc의 공약수(common divisor)가 될 수 있다.
둘째, i 번째(i=0,1,..,Kldpc/M-1) 열 그룹의 0 번째 열의 차수(degree)(여기에서, 차수는 열에서 1이 존재하는 행의 개수로, 동일한 열 그룹에 속하는 열들의 차수는 모두 동일하다)를 Di라 하고, 1이 위치하는 각 행의 위치를 이라 하면, i 번째 열 그룹 내의 j 번째 열에서 k 번째 1이 위치한 행의 인덱스 는 하기의 수학식 1과 같이 결정될 수 있다.
Figure 112021132524835-pat00014
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
한편, 수학식 1은 하기의 수학식 2와 같이 동일하게 표현될 수 있다
Figure 112021132524835-pat00015
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
수학식 2를 참조하면, 값만을 알면, i 번째 열 그룹 내의 j 번째 열에서 k 번째 1이 위치한 행의 인덱스를 알 수 있음이 나타난다. 따라서, 각 열 그룹 내의 0 번째 열에서 k 번째 1이 위치한 행의 인덱스 값을 저장하면, 정보어 부분 행렬(210-1)에서 무게-1이 있는 열과 행의 위치가 파악될 수 있다.
상술한 규칙에 따르면, i 번째 열 그룹에 속하는 열들의 차수는 모두 Di로 동일하다. 따라서, 상술한 규칙들에 따라 패리티 검사 행렬에 대한 정보를 저장하고 있는 LDPC 부호는 다음과 같이 간략하게 표현될 수 있다.
예를 들어, Nldoc1가 30, Kldpc가 15, Qldpc1가 3인 경우, 3 개의 열 그룹의 0 번째 열에서 무게-1이 위치한 행의 위치 정보는 하기의 수학식 3과 같은 수열들로 표현될 수 있으며, 이는 '무게-1 위치 수열(weight-1 position sequence)'이라 지칭될 수 있다.
여기에서, 는 i 번째 열 그룹 내의 i 번째 열에서 k 번째 1이 위치한 행의 인덱스를 의미한다.
한편, 각 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스를 나타내는 수학식 3과 같은 무게-1 위치 수열들은 하기의 표 1과 같이 보다 간략하게 표현될 수 있다.
표 1은 패리티 검사 행렬에서 무게-1, 다시 말해, 1 값을 가지는 원소의 위치를 나타낸 것으로서, i 번째 무게-1 위치 수열은 i 번째 열 그룹에 속한 0 번째 열에서 무게-1이 있는 행의 인덱스들로 표현된다.
상술한 내용에 기초하여, 본 발명의 일 실시 예에 따른 패리티 검사 행렬에서 정보어 부분 행렬(210-1)은 하기의 표 2와 같이 정의될 수 있다.
구체적으로, 정보어 부분 행렬(210-1)은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 표 2와 같이 정의될 수 있다. 즉, 매 M 번째 열에 존재하는 1 값의 위치가 하기의 표 2와 같이 정의될 수 있다. 이 경우, Nldpc1은 16200, Kldpc는 11880, 부호율은 11/15, M은 360, Qldpc1은 12이다.
Figure 112021132524835-pat00020
즉, 표 2는 정보어 부분 행렬(210-1)에서 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스를 나타낸다.
즉, 정보어 부분 행렬(210-1)은 각각 360 개의 열을 포함하는 33 개의 열 그룹으로 구성되며, 상술한 표 2에 의해 각 열 그룹의 0 번째 열에서 1의 위치가 정의될 수 있다. 예를 들어, 0 번째 열 그룹의 0 번째 열의 경우 108 번째 행, 297 번째 행, 703 번째 행,...에 1이 존재할 수 있다.
그리고, 각 열 그룹의 0 번째 열에서 1이 존재하는 행을 Qldpc1만큼 시클릭 쉬프트하여 해당 열 그룹의 다른 열에서 1이 위치한 행의 위치가 정의될 수 있다.
구체적으로, 표 2의 경우, Qldpc1=12이고, 0 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스는 108, 297, 703,...이므로, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 120(=108+12), 309(=297+12), 715(=703+12),...이고, 0 번째 열 그룹의 2 번째 열에서 1이 위치한 행의 인덱스는 132(=120+12), 321(=309+12), 727(=715+12),...이 될 수 있다.
이와 같은 방식에 의해 복수의 그룹 각각의 열에서 1이 존재하는 행의 위치가 정의되어, 결국 정보어 부분 행렬(210-1)에서 1의 위치가 정의될 수 있다.
한편, 정보어 부분 행렬(210-2)도 정보어 부분 행렬(210-1)과 동일한 방식으로 정의될 수 있다.
즉, 정보어 부분 행렬(210-1)을 구성하는 Kldpc 개의 열들은 M 개(또는, M2 개)(예를 들어, M=M2=360)씩 동일한 그룹에 속하며, 총 Kldpc/M 개의 열 그룹들로 구분된다. 다만, 정보어 부분 행렬(210-2)에서 Qldpc 값은 Qldpc1이 아닌 Qldpc2가 될 수 있다. 즉, 정보어 부분 행렬(210-2)에서 동일한 열 그룹 내에 속한 열들은 서로 Qldpc2만큼 시클릭 쉬프트된 관계를 가진다. 여기에서, M 및 Qldpc2 값은 정수이며, Qldpc2=(Nldpc2-Kldpc)/M이 성립되도록 결정될 수 있다. 여기에서, Nldpc2는 패리티 검사 행렬(210-2)에 기초하여 LDPC 부호화를 수행한 경우 생성된 LDPC 부호어의 길이이고, Kldpc은 정보어 비트들의 길이이고, Nldpc2-Kldpc는 패리티 비트들의 길이이다.
이에 따라, 상술한 수학식 1 및 수학식 2는 각각 하기의 수학식 4 및 수학식 5와 같이 나타내어질 수 있다.
Figure 112021132524835-pat00021
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
Figure 112021132524835-pat00022
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
수학식 5를 참조하면, 값만을 알면, i 번째 열 그룹 내의 j 번째 열에서 k 번째 1이 위치한 행의 인덱스를 알 수 있음이 나타난다. 따라서, 각 열 그룹 내의 0 번째 열에서 k 번째 1이 위치한 행의 인덱스 값을 저장하면, 정보어 부분 행렬(210-2)에서 무게-1이 있는 열과 행의 위치가 파악될 수 있다.
상술한 내용에 기초하여, 본 발명의 일 실시 예에 따른 패리티 검사 행렬에서 정보어 부분 행렬(210-2)은 하기의 표 3과 같이 정의될 수 있다.
구체적으로, 정보어 부분 행렬(210-2)은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 표 3과 같이 정의될 수 있다. 즉, 매 M 번째 열에 존재하는 1 값의 위치가 하기의 표 3과 같이 정의될 수 있다. 이 경우, Nldpc2는 28080, Kldpc는 11880, 부호율은 11/26, M은 360, Qldpc2는 45이다.
Figure 112021132524835-pat00024
즉, 표 3은 정보어 부분 행렬(210-2)에서 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스를 나타낸다.
즉, 정보어 부분 행렬(210-2)은 각각 360 개의 열을 포함하는 33 개의 열 그룹으로 구성되며, 상술한 표 3에 의해 각 열 그룹의 0 번째 열에서 1의 위치가 정의될 수 있다. 예를 들어, 0 번째 열 그룹의 0 번째 열의 경우 3224 번째 행, 6160 번째 행, 11356 번째 행,...에 1이 존재할 수 있다.
그리고, 각 열 그룹의 0 번째 열에서 1이 존재하는 행을 Qldpc2만큼 시클릭 쉬프트하여 해당 열 그룹의 다른 열에서 1이 위치한 행의 위치가 정의될 수 있다.
예를 들어, 표 3의 경우, Qldpc2=45이고, 0 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스는 3224, 6160, 11356,...이므로, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 3281(=3224+45), 6205(=6160+45), 11401(=11356+45),...이고, 0 번째 열 그룹의 2 번째 열에서 1이 위치한 행의 인덱스는 3326(=3281+45), 6250(=6205+45), 11446(=11401+45),...이 될 수 있다
이와 같은 방식에 의해 복수의 그룹 각각의 열에서 1이 존재하는 행의 위치가 정의되어, 결국 정보어 부분 행렬(210-2)에서 1의 위치가 정의될 수 있다.
한편, 패리티 검사 행렬(200)은 패리티 검사 행렬(200-1)과 패리티 검사 행렬(200-2)이 연접된 형태를 갖는다. 이 경우, 패리티 검사 행렬(200-1)과 패리티 검사 행렬(200-2)을 연접하여 패리티 검사 행렬(200)의 정보어 부분 행렬(210)을 정의하는 방법의 일 예는 하기의 수학식 6 또는 수학식 7과 같이 기술될 수 있다.
Figure 112021132524835-pat00025
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
Figure 112021132524835-pat00026
여기에서, k=0,1,2,..,Di-1, i=0,1,..,Kldpc/M-1, j=0,1,2,...,M-1이다.
한편, 상술한 방식에 의해 패리티 검사 행렬(200)의 정보어 부분 행렬(210)에서 1의 위치는 표 2 및 표 3에 기초하여 하기의 표 4와 같이 정의될 수 있다.
구체적으로, 정보어 부분 행렬(210)은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 표 4와 같이 정의될 수 있다. 즉, 매 M 번째 열에 존재하는 1 값의 위치가 하기의 표 4와 같이 정의될 수 있다. 이 경우, Nldpc(=Nldpc1+Nldpc2-Kldpc)는 32400, Kldpc는 11880, 부호율은 11/30, M은 360이다.
Figure 112021132524835-pat00027
즉, 표 4는 정보어 부분 행렬(210)에서 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스를 나타낸다.
즉, 정보어 부분 행렬(210)은 각각 360 개의 열을 포함하는 33 개의 열 그룹으로 구성되며, 상술한 표 4에 의해 각 열 그룹의 0 번째 열에서 1의 위치가 정의될 수 있다. 예를 들어, 0 번째 열 그룹의 0 번째 열의 경우 108 번째 행, 297 번째 행, 703 번째 행,..., 7544 번째 행, 10480 번째 행, 15676 번째 행, 16095 번째 행, 17842 번째 행에 1이 존재할 수 있다.
그리고, 각 열 그룹의 0 번째 열에서 1이 존재하는 행을 Qldpc1, Qldpc2만큼 시클릭 쉬프트하여 해당 열 그룹의 다른 열에서 1이 존재하는 행의 위치가 정의될 수 있다.
구체적으로, 표 4의 경우, (Nldpc1-Kldpc)=4320, (Nldpc2-Kldpc)=16200, Qldpc1=12, Qldpc2=45이고, 0 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스는 108, 297, 703,..., 7544, 10480, 15676, 16095, 17842이다.
이 경우, 각 행의 인덱스가 (Nldpc1-Kldpc)=4320 보다 작은 108, 297, 703,..., 3904, 4264인 경우와 각 행의 인덱스가 (Nldpc1-Kldpc)=4320 보다 같거나 큰 7544, 10480, 15676, 16095, 17842인 경우로 구분하여, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 다음과 같이 나타내어질 수 있다.
즉, 각 행의 인덱스가 (Nldpc1-Kldpc)=4320 보다 작은 108, 297, 703,..., 3904, 4264인 경우, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 120(=(108+12) mod 4320), 309(=(297+12) mod 4320), 715(=(703+12) mod 4320),..., 3916(=(3904+12) mod 4320), 4276(=(4264+12) mod 4320)이고, 0 번째 열 그룹이 2 번째 열에서 1이 위치한 행의 인덱스는 132(=(120+12) mod 4320), 321(=(309+12) mod 4320), 727(=(715+12) mod 4320),..., 3928(=(3916+12) mod 4320), 4288(=(4276+12) mod 4320)이 될 수 있다.
그리고, 각 행의 인덱스가 (Nldpc1-Kldpc)=4320 보다 같거나 큰 7544, 10480, 15676, 16095, 17842인 경우, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 7589(=4320+(7544-4320+45) mod 16200), 10525(=4320+(10480-4320+45) mod 16200), 15721(=4320+(15676-4320+45) mod 16200), 16140(=4320+(16095-4320+45) mod 16200), 1687(=4320+(17842-4320+45) mod 16200)이고, 0 번째 열 그룹이 2 번째 열에서 1이 위치한 행의 인덱스는 7634(=4320+(7589-4320+45) mod 16200), 10570(=4320+(10525-4320+45) mod 16200), 15766(=4320+(15721-4320+45) mod 16200), 16185(=4320+(16040-4320+45) mod 16200), 1732(=4320+(1687-4320+45) mod 16200)이 될 수 있다.
이와 같은 방식에 의해 복수의 그룹 각각의 열에서 1이 존재하는 행의 위치가 정의되어, 결국 정보어 부분 행렬(210)에서 1의 위치가 정의될 수 있다.
한편, 표 1 내지 표 3에서 각 i 번째 열 그룹에 대한 수열 내의 숫자들의 순서가 바뀌어도 동일한 패리티 검사 행렬이 된다.
예를 들어, 표 2에서 0 번째 열 그룹의 0 번째 열에 대응되는 수열은 108, 297, 703,..., 15676, 16095, 17842 순서로 나열되어 있는데 해당 수열 내의 숫자들의 순서를 17842, 16095, 15676,..., 703, 297, 108과 같이 바꾸어도 동일한 부호의 패리티 검사 행렬이 될 수 있다.
또한, 표 2 내지 표 4에서 각 열 그룹에 대응되는 수열들의 나열 순서를 바뀌어도 부호의 그래프 상의 사이클 특성 및 차수 분포, 최소 거리(minimum distance) 등의 대수적 특성이 바뀌지 않기 때문에, 표 2 내지 표 4에서 나타낸 수열들의 나열 순서가 바뀐 경우도 본 발명에서 제안하는 부호의 설계 방법을 통해 도출할 수 있는 결과의 한 가지 일 예가 될 수 있다.
예를 들어, 표 2에서 0 번째 열 그룹의 0 번째 열에 대응되는 수열 108, 297, 703,..., 15676, 16095, 17842와 12 번째 열 그룹의 0 번째 열에 대응되는 수열 49, 1198, 2562, 10955, 13383, 14136, 16605, 19071의 나열 순서를 바꾸어 0 번째 열 그룹의 0 번째 열에 대응되는 수열을 49, 1198, 2562, 10955, 13383, 14136, 16605, 19071로 설정하고, 12 번째 열 그룹의 0 번째 열에 대응되는 수열을 108, 297, 703,..., 15676, 16095, 17842로 설정하여 나열 순서를 변경하여도 부호의 그래프 상의 사이클 특성 및 차수 분포, 최소 거리 등은 변화가 없다(실제로 각 열 그룹에 대응되는 수열의 나열 순서를 바꾸는 것은 패리티 검사 행렬 내에서 열 그룹의 배치 순서만 바뀌는 것과 동일하기 때문에 주요 대수적 특성이 바뀌지 않는다).
또한, 표 2 내지 표 4에서 임의의 열 그룹에 대응되는 수열들에 대해 모두 동일하게 Qldpc의 배수를 더한 결과 또한 부호의 그래프 상의 사이클 특성이나 차수 분포 등의 대수적 특성이 바뀌지 않는 특성이 있기 때문에 본 발명에서 제안하는 부호의 설계 방법을 통해 도출할 수 있는 결과의 한 가지 일 예가 될 수 있다.
예를 들어, 표 2에서 12 번째 열 그룹의 0 번째 열에 대응되는 수열 49, 1198, 2562, 10955, 13383, 14136, 16605, 19071에 대해 모두 동일한 12(=Qldpc1=(Nldpc1-Kldpc)/M)의 배수를 더한 결과, 즉, 구체적인 예로서, 85(=49+12×3), 1234(=1198+12×3), 2598(=2562+12×3), 10991(=10955+12×3), 13419(=13383+2×3), 14172(=14136+12×3), 16641(=16605+12×3), 19107(=19071+12×3) 또는, 109(=49+12×5), 1258(=1198+12×5), 2622(=2562+12×5), 11015(=10955+12×5), 13443(=13383+12×5), 14196(=14136+12×5), 16665(=16605+12×5), 19131(=19071+12×5)과 같은 경우 부호의 그래프 상의 사이클 특성이나 차수 분포, 최소 거리(minimum distance) 등의 대수적 특성이 바뀌지 않는다(실제로 Qldpc 배수를 임의의 수열에 더해진 결과 얻어진 수열은 마치 해당 열 그룹 내에 있는 열들의 순서만 재배열된 것과 동일한 동작이기 때문에 주요 대수적 특성이 바뀌지 않는다).
여기서 주의해야 할 점은 주어진 수열에 Qldpc 배수만큼 더 했을 경우에 만일 그 값이 (Nldpc-Kldpc) 이상인 값이 나올 경우에는, 그 값에 (Nldpc-Kldpc) 에 대한 모듈로(modulo) 연산을 적용한 값으로 바꾸어 적용한다는 것이다.
또한, 표 2 내지 표 4에서 나타낸 수열은 도 2 및 도 3과 같은 패리티 검사 행렬의 구조를 기준으로 나타낸 것이지만, 만일 패리티 검사 행렬에 행의 순서를 재배치하는 로우 퍼뮤테이션 또는 열의 순서를 재배치하는 컬럼 퍼뮤테이션 등을 적용할 경우에는 도 3의 구조와는 다른 형태로 패리티 검사 행렬을 나타낼 수도 있다. 하지만, 행 교환 및 열 교환 등의 동작은 사이클 특성이나 차수 분포, 최소 거리(minimum distance)와 같은 LDPC 부호 자체의 대수적 특성이 전혀 바뀌지 않기 때문에 동일한 패리티 검사 행렬로 간주할 수 있다.
즉, 어떤 주어진 패리티 검사 행렬이 적절한 로우 퍼뮤테이션 및 컬럼 퍼뮤테이션을 통해 도 2 및 도 3과 같은 구조의 패리티 검사 행렬로 변형 가능하며, 변형된 패리티 검사 행렬에 대해 표 2 내지 표 4에서 나타낸 수열처럼 표현하였을 때 만일 표 2 내지 표 4 중에서 수열이 일치하는 경우가 존재할 때 두 개의 패리티 검사 행렬은 대수적으로 동일(equivalent)하다고 판단될 수 있다.
한편, 패리티 검사 행렬(200-1)의 패리티 부분 행렬(220-1)과 패리티 검사 행렬(200-2)의 패리티 부분 행렬(220-3)은 모두 이중 대각(dual diagonal) 구조를 가진다.
즉, 패리티 부분 행렬(220-1)에 포함된 열 중에서 마지막 열(즉, Nldpc1-1 번째 열)을 제외한 나머지 열들의 차수는 모두 2이며, 마지막 열의 차수는 1이 된다. 이와 마찬가지로, 패리티 부분 행렬(220-3)에 포함된 열 중에서 마지막 열(즉, Nldpc2-1 번째 열)을 제외한 나머지 열들의 차수는 모두 2이며, 마지막 열의 차수는 1이 된다.
따라서, 패리티 검사 행렬(200-1)과 패리티 검사 행렬(200-2)이 연접되어 생성된 패리티 검사 행렬(200)의 패리티 부분 행렬(220)은 다음과 같이 정의될 수 있다.
구체적으로, 패리티 검사 행렬(200)은 4 개의 패리티 부분 행렬(220-1, 220-2, 220-3, 220-4)을 포함한다.
여기에서, 4 개의 패리티 부분 행렬(220-1, 220-2, 220-3, 220-4) 중 서로 인접하지 않는 2 개의 패리티 부분 행렬(220-1, 220-3)은 이중 대각 구조를 가지며, 나머지 2 개의 패리티 부분 행렬(220-2, 220-4)은 영 행렬일 수 있다.
따라서, 패리티 부분 행렬(220)에서 Nldpc1-1 번째 열 및 Nldpc1+Nldpc2-Kldpc-1 번째 열을 제외한 나머지 열들의 차수는 모두 2이며, Nldpc1-1 번째 열과 Nldpc1+Nldpc2-Kldpc-1 번째 열의 차수는 1이다.
이 경우, 제1 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬(220-1, 220-3) 중 하나(220-1)에 기초하여 생성되고, 제2 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬(220-1, 220-3) 중 다른 하나(220-3)에 기초하여 생성될 수 있다.
구체적으로, 패리티 검사 행렬(200)은 2 개의 패리티 검사 행렬(200-1, 200-2)이 서로 연접된 형태이므로, 패리티 검사 행렬(200)에 기초하여 생성된 패리티 비트들은 2 개의 패리티 검사 행렬(200-1, 200-2) 각각에 기초하여 생성된 패리티 비트들이 서로 연접한 형태가 될 수 있다.
따라서, 패리티 검사 행렬(200)의 패리티 부분 행렬(220-1)에 기초하여 생성된 제1 패리티 비트들은 패리티 검사 행렬(200-1)의 패리티 부분 행렬(220-1)에 기초하여 생성된 것으로 볼 수 있고, 패리티 검사 행렬(200)의 패리티 부분 행렬(220-3)에 기초하여 생성된 제2 패리티 비트들은 패리티 검사 행렬(200-2)의 패리티 부분 행렬(220-3)에 기초하여 생성된 것으로 볼 수 있다.
한편, 이하에서는 도 3에 도시된 패리티 검사 행렬(300)에 대해 살펴보도록 한다.
도 3에 도시된 바와 같이, 패리티 검사 행렬(300)은 패리티 검사 행렬(300-1)과 패리티 검사 행렬(300-2)이 서로 연접되어 생성될 수 있다.
한편, 패리티 검사 행렬(300-1)의 정보어 부분 행렬(310-1)은 패리티 검사 행렬(200-1)의 정보어 부분 행렬(210-1)과 동일한 구조를 가지며, 패리티 검사 행렬(300-2)의 정보어 부분 행렬(310-2)은 패리티 검사 행렬(300-1)의 정보어 부분 행렬(310-2)과 동일한 구조를 가진다.
따라서, 정보어 부분 행렬(310-1)에서 1의 위치는 상술한 표 2에 의해 정의될 수 있고, 정보어 부분 행렬(310-2)에서 1의 위치는 상술한 표 3에 의해 정의될 수 있으며, 정보어 부분 행렬(310)에서 1의 위치는 상술한 표 4에 의해 정의될 수 있다.
한편, 도 3을 참조하면, 패리티 검사 행렬(300-1)의 패리티 부분 행렬(320-1)은 이중 대각 구조를 가지며, 패리티 검사 행렬(300-2)의 패리티 부분 행렬(320-3)은 항등 행렬(또는, 단위 행렬) 구조를 가진다.
즉, 패리티 부분 행렬(320-1)에 포함된 열 중에서 마지막 열(즉, Nldpc1-1 번째 열)을 제외한 나머지 열들의 차수는 모두 2이며, 마지막 열의 차수는 1이 된다. 한편, 패리티 부분 행렬(320-3)에 포함된 모든 열들의 차수는 1이 된다.
따라서, 패리티 검사 행렬(300-1)과 패리티 검사 행렬(300-2)이 연접되어 생성된 패리티 검사 행렬(300)에서 패리티 부분 행렬(320)은 다음과 같이 정의될 수 있다.
구체적으로, 패리티 검사 행렬(300)은 4 개의 패리티 부분 행렬(320-1, 320-2, 320-3, 320-4)을 포함한다.
여기에서, 4 개의 패리티 부분 행렬(320-1, 320-2, 320-3, 320-4) 중 하나(320-1)는 이중 대각 행렬 구조를 가지며, 다른 하나는 항등 행렬 구조(320-3)를 가진다. 그리고, 나머지 2 개의 패리티 부분 행렬(320-2, 320-4)은 영 행렬일 수 있다.
따라서, 패리티 부분 행렬(320)에서 Nldpc1-1 번째 열부터 Nldpc1+Nldpc2-Kldpc-1 번째 열까지의 차수는 1이고, 나머지 열들의 차수는 2가 된다.
이 경우, 제1 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬(320-1)에 기초하여 생성되고, 제2 패리티 비트들은 항등 행렬 구조를 갖는 패리티 부분 행렬(320-3)에 기초하여 생성될 수 있다.
구체적으로, 패리티 검사 행렬(300)은 2 개의 패리티 검사 행렬(300-1, 300-2)이 서로 연접된 형태이므로, 패리티 검사 행렬(300)에 기초하여 생성된 패리티 비트들은 2 개의 패리티 검사 행렬(300-1, 300-2) 각각에 기초하여 생성된 패리티 비트들이 서로 연접한 형태가 될 수 있다.
따라서, 패리티 검사 행렬(300)의 패리티 부분 행렬(320-1)에 기초하여 생성된 제1 패리티 비트들은 패리티 검사 행렬(300-1)의 패리티 부분 행렬(320-1)에 기초하여 생성된 것으로 볼 수 있고, 패리티 검사 행렬(300)의 패리티 부분 행렬(320-3)에 기초하여 생성된 제2 패리티 비트들은 패리티 검사 행렬(300-2)의 패리티 부분 행렬(320-3)에 기초하여 생성된 것으로 볼 수 있다.
한편, 상술한 예에서는 M=(Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2인 것으로 설명하였다.
즉, 정보어 부분 행렬(210-1)을 구성하는 복수의 열 그룹 각각에서 열들이 시클릭 쉬프트되는 파라미터 값 M1이 Nldpc1과 Kldpc의 공약수(common divisor)이며 M1=(Nldpc1-Kldpc)/Qldpc1인 관계를 만족하고, 정보어 부분 행렬(210-2)을 구성하는 복수의 열 그룹 각각에서 열들이 시클릭 쉬프트되는 파라미터 값 M2가 Nldpc2과 Kldpc의 공약수이며 M2=(Nldpc2-Kldpc)/Qldpc2인 관계를 만족하는 경우, M=M1=M2=(Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2인 관계를 만족할 수 있다.
즉, M은 Nldpc1과 Kldpc의 공약수와 Nldpc2과 Kldpc의 공약수 중에서 (Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2인 관계를 만족하는 값으로 결정될 수 있다. 다시 말해, M은 Nldpc1, Nldpc2과 Kldpc의 공약수 중에서 (Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2인 관계를 만족하는 값으로 결정될 수 있다.
한편, 도 2의 경우 패리티 검사 행렬(200)은 2 개의 정보어 부분 행렬(210-1, 210-2)과 4 개의 패리티 검사 행렬(220-1, 220-2, 220-3, 220-4)로 구성되며, 4 개의 패리티 검사 행렬(220-1, 220-2, 220-3, 220-4)에서 서로 인접하지 않는 2 개의 패리티 검사 행렬(220-1, 220-3)은 이중 대각 행렬 구조를 가지며 나머지 2 개의 패리티 검사 행렬(220-2, 220-4)은 영 행렬이다.
또한, 도 3의 경우 패리티 검사 행렬(300)은 2 개의 정보어 부분 행렬(310-1, 310-2)과 4 개의 패리티 검사 행렬(320-1, 320-2, 320-3, 320-4)로 구성되며, 4 개의 패리티 검사 행렬(320-1, 320-2, 320-3, 320-4)에서 서로 인접하지 않는 2 개의 패리티 검사 행렬 중 하나(320-1)는 이중 대각 행렬 구조를 가지며 다른 하나(320-3)는 항등 행렬 구조를 가지며 나머지 2 개의 패리티 검사 행렬(320-2, 320-4)은 영 행렬이다.
이에 따라, Qldpc1는 2 개의 정보어 부분 행렬(210-1, 210-2 또는 310-1, 310-2) 중 하나(210-1 또는 310-1)에서의 시클릭 쉬프트 파라미터 값, Nldpc1-Kldpc는 정보어 부분 행렬(210-1 또는 310-1)을 구성하는 행의 개수(또는, 영 행렬이 아닌 패리티 부분 행렬 중 하나(220-1 또는 320-1)의 열의 개수 및 행의 개수), Qldpc2는 2 개의 정보어 부분 행렬(210-1, 210-2 또는 310-1, 310-2) 중 다른 하나(210-2 또는 310-2)에서의 시클릭 쉬프트 파라미터 값, Nldpc2-Kldpc는 정보어 부분 행렬(210-2 또는 310-2)을 구성하는 행의 개수(또는, 영 행렬이 아닌 패리티 부분 행렬 중 다른 하나(320-3)의 열의 개수 및 행의 개수)이다.
하지만, 이는 설명의 편의를 위한 것으로 일 예에 불과하며, M1과 M2는 M1=(Nldpc1-Kldpc)/Qldpc1≠(Nldpc2-Kldpc)/Qldpc2=M2인 관계를 만족하도록 결정될 수도 있음은 물론이다.
이하에서는 패리티 검사 행렬을 이용하여 패리티 비트들을 생성하는 구체적인 방법을 설명하도록 한다.
먼저, 도 2와 같은 구조를 갖는 패리티 검사 행렬(200)을 이용하여 패리티 비트들을 생성하는 방법을 설명하도록 한다.
상술한 바와 같이, LDPC 부호화 과정은 패리티 검사 행렬 H(200)에 대해 HㆍCT=0을 만족하는 LDPC 부호어 C를 생성하는 과정이다. 따라서, 부후화부(110)는 HㆍCT=0을 만족하도록 LDPC 부호화를 수행하여, 정보어 비트들와 패리티 비트들로 구성되는 LDPC 부호어를 생성할 수 있다. 여기에서, 패리티 비트들은 제1 패리티 비트들 및 제2 패리티 비트들을 포함할 수 있다.
한편, 패리티 검사 행렬(200)에 기초하여 생성된 패리티 비트들은 패리티 검사 행렬(200-1)에 기초하여 생성된 제1 패리티 비트들과 패리티 검사 행렬(200-2)에 기초하여 생성된 제2 패리티 비트들이 연접된 형태가 될 수 있다.
따라서, 이하에서는 패리티 검사 행렬(200-1)에 기초하여 제1 패리티 비트들(이하에서, 패리티 비트들)을 생성하는 방법을 먼저 설명하도록 한다. 다만, 주어진 패리티 검사 행렬에 대해 다양한 부호화 방법이 존재할 수 있음은 물론이며, 이하에서 설명하는 방식은 일 예에 불과하다.
단계 1) 패리티 비트들을 '0'으로 초기화 한다. 즉,
Figure 112021132524835-pat00028
단계 2) 표 2의 첫 번째 행(즉, i=0인 행)에서 정의되는 패리티 비트의 어드레스를 인덱스로 갖는 패리티 비트에 0 번째 정보어 비트 i0를 누적(accumulate)한다. 이는 아래의 수학식 8과 같이 표현될 수 있다.
Figure 112021132524835-pat00029
여기에서, i0는 0 번째 정보어 비트이고, pi는 i 번째 패리티 비트이다. 그리고, 는 바이너리 연산을 의미하는데, 바이너리 연산에 의하면, 11은 0, 10은 1, 01은 1, 00은 0이 된다.
단계 3) 나머지 359 개의 정보어 비트들 im(m=1,2,...,359)을 패리티 비트에 누적한다. 여기에서, 나머지 359 개의 정보어 비트들은 i0와 동일한 열 그룹에 속하는 정보어 비트들일 수 있다. 이때, 패리티 비트의 어드레스는 하기의 수학식 9에 기초하여 결정될 수 있다.
Figure 112021132524835-pat00035
여기에서, x는 정보어 비트 i0에 대응되는 패리티 비트의 어드레스이다.
예를 들어, 정보어 비트 i0가 누적되었던 p108을 기준으로 정보어 비트 i1가 누적되는 패리티 비트의 어드레스를 산출하는 경우, {108+(1 mod 360)×12 } mod (16200-11880)=120이므로 i0가 누적되었던 p108을 기준으로 i1이 누적되는 패리티 비트의 어드레스는 p120이 된다.
결국, 수학식 9에 기초하여 산출된 패리티 비트의 어드레스를 인덱스로 하는 패리티 비트 각각에 정보어 비트들 im(m=1,2,...,359) 각각을 누적한다. 일 예로, 1 번째 정보어 비트 i1에 대해 하기의 수학식 10과 같은 연산이 수행될 수 있다.
Figure 112021132524835-pat00036
여기에서, i1은 1 번째 정보어 비트이고, pi는 i 번째 패리티 비트이다. 그리고, 는 바이너리 연산을 의미하는데, 바이너리 연산에 의하면, 11은 0, 10은 1, 01은 1, 00은 0이 된다.
단계 4) 표 2의 두 번째 행(즉, i=1인 행)에서 정의되는 패리티 비트의 어드레스를 인덱스로 갖는 패리티 비트에 360 번째 정보어 비트 i360를 누적한다.
단계 5) 정보어 비트 i360와 동일한 그룹에 속하는 나머지 359 개의 정보어 비트들을 패리티 비트에 누적한다. 이때, 패리티 비트의 어드레스는 수학식 9에 기초하여 결정될 수 있다. 다만, 이 경우, x는 정보어 비트 i360에 대응되는 패리티 비트의 어드레스가 된다.
단계 6) 상술한 단계 4 및 단계 5와 같은 과정을 표 2의 모든 열 그룹에 대해 반복한다.
단계 7) 결국, 하기와 같은 수학식 11에 기초하여 패리티 비트 pi가 산출될 수 있다. 이때, i는 1로 초기화된다.
Figure 112021132524835-pat00042
결국, 부호화부(110)는 수학식 11을 이용하여 제1 패리티 비트들 pi(i=0,1,2,...,Nldpc1-Kldpc-1)을 생성할 수 있다.
한편, 패리티 검사 행렬(200-1)의 패리티 부분 행렬(220-1)과 패리티 검사 행렬(200-2)의 패리티 부분 행렬(220-3)은 서로 동일한 구조(즉, 이중 대각 구조)를 가진다는 점에서, 부호화부(110)는 제2 패리티 비트들을 제1 패리티 비트들와 동일한 방법으로 생성할 수 있다.
다만, 제2 패리티 비트는 전체 패리티 비트 중에서 Nldpc1-Kldpc 번째부터 Nldpc-Kldpc-1 번째까지의 패리티 비트들을 구성한다는 점에서, 부호화부(110)는 하기의 수학식 12를 이용하여 제2 패리티 비트들 pi를 생성할 수 있다.
Figure 112021132524835-pat00043
한편, 수학식 11 및 수학식 12에서 Nldpc는 LDPC 부호어의 길이, Kldpc는 정보어 비트들의 길이, Nldpc1-Kldpc는 제1 패리티 비트들의 길이, Nldpc2-Kldpc는 제2 패리티 비트들의 길이이다.
한편, 부호화부(110)는 도 3에 도시된 패리티 검사 행렬 H(300)에 대해 HㆍCT=0을 만족하는 LDPC 부호어 C를 생성할 수도 있다. 여기에서, LDPC 부호어는 정보어 비트들과 패리티 비트들로 구성될 수 있으며, 패리티 비트들은 제1 패리티 비트들 및 제2 패리티 비트들을 포함할 수 있다.
이 경우, 패리티 검사 행렬(300)에 기초하여 생성된 패리티 비트들은 패리티 검사 행렬(300-1)에 기초하여 생성된 제1 패리티 비트들과 패리티 검사 행렬(300-2)에 기초하여 생성된 제2 패리티 비트들이 연접된 형태가 될 수 있다.
한편, 패리티 검사 행렬(300-1)의 패리티 부분 행렬(320-1)은 이중 대각 구조를 가진다는 점에서, 도 2와 함께 설명한 방식이 동일하게 적용될 수 있다. 즉, 부호화부(110)는 하기와 같은 수학식 13에 기초하여 제1 패리티 비트들 pi를 생성할 수 있다.
Figure 112021132524835-pat00044
한편, 패리티 검사 행렬(300-2)의 패리티 부분 행렬(320-3)은 항등 행렬 구조를 갖는다는 점에서, 부호화부(110)는 하기의 수학식 14를 이용하여 제2 패리티 비트들 pi를 생성할 수 있다.
Figure 112021132524835-pat00045
한편, 수학식 13 및 수학식 14에서 Nldpc는 LDPC 부호어의 길이, Kldpc는 정보어 비트들의 길이, Nldpc1-Kldpc는 제1 패리티 비트들의 길이, Nldpc2-Kldpc는 제2 패리티 비트들의 길이이다.
이와 같이, 패리티 검사 행렬(200, 300)은 IR 방식을 지원하는 패리티 검사 행렬 즉, 추가적인 패리티 비트를 생성하기 위한 행렬(200-2, 300-2)을 포함한다는 점에서, 부호화부(110)는 LDPC 부호화를 통해 IR 방식에서 원래 전송하고자 하는 부호화된 데이터(즉, 정보어 비트들 + 제1 패리티 비트들) 및 추가적인 패리티(즉, 제2 패리티 비트들)를 생성할 수 있다.
이러한 방식으로 추가적인 패리티를 생성할 경우, IR 방식에 따라 데이터의 송수신이 가능하므로, 수신 측에서 복호화 성능이 향상될 수 있다.
뿐만 아니라, 도 2 및 도 3을 참조하면 원래 전송하고자 하는 부호화된 데이터를 생성하기 위한 부분뿐만 아니라, 추가적인 패리티를 생성하기 위한 정보어 부분 행렬(210-2, 310-2)에서도 쿼시 시클릭(quasi-cyclic) 구조가 유지되기 때문에, 수신 측에서는 별도의 로직을 추가하지 않아도 수신된 데이터의 복호화가 가능하게 된다.
구체적으로, DVB-T2 규격에 따르면, 정보어 부분 행렬이 쿼시 시클릭 구조를 갖는 패리티 검사 행렬을 이용하여 LDPC 부호화 및 복호화를 수행한다. 따라서, 본 발명의 일 실시 예에 따른 패리티 검사 행렬(200, 300)을 이용하여 추가적인 패리티를 생성한 경우라도, DVB-T2에서 정의된 수신 장치는 별도의 로직 추가 없이 패리티 검사 행렬(200, 300)을 이용하여 LDPC 복호화를 수행할 수 있게 된다.
또한, 도 3에서 추가적인 패리티를 생성하기 위한 패리티 부분 행렬(320-3)은 항등 행렬로 구성된다는 점에서, LDPC 부호화 시 도 3의 구조를 갖는 패리티 검사 행렬(300)을 이용하는 경우 수학식 14와 같은 간단한 연산에 의해 추가적인 패리티가 생성될 수 있다. 이에 따라, 간단한 연산에 의해 LDPC 부호화가 수행될 수 있어, LDPC 부호화 시간이 단축될 수 있다.
뿐만 아니라, 도 3에서 추가적인 패리티를 생성하기 위한 패리티 부분 행렬(320-3)은 항등 행렬로 구성된다는 점에서, 추가적으로 생성된 패리티 비트들 중 일부가 펑처링된 경우, 수신 장치는 패리티 부분 행렬(320-3)에서 펑처링된 패리티 비트들에 대응되는 부분 행렬을 제거하여 LDPC 복호화를 수행할 수 있다. 이에 따라, LDPC 복호화 시간은 단축될 수 있다.
한편, 상술한 패리티 검사 행렬에 대한 정보는 송신 장치(100)에 기저장되어 있을 수 있다.
또한, 부호화부(110)는 LDPC 부호화뿐만 아니라, BCH(Bose, Chaudhuri, Hocquenghem) 부호화를 수행할 수도 있다. 이를 위해, 부호화부(110)는 BCH 부호화를 위한 BCH 인코더(미도시)를 더 포함할 수 있다. 즉, 부호화부(110)는 입력되는 비트들에 BCH 부호화를 수행하여 BCH 코드워드를 생성하고, BCH 코드워드를 정보어 비트들로 하여 LDPC 부호화를 수행하여, 정보어 비트, 제1 패리티 비트 및 제2 패리티 비트를 포함하는 LDPC 부호어를 생성할 수 있다.
또한, 부호화부(110)는 제1 패리티 비트 및 제2 패리티 비트 중 적어도 일부를 펑처링(puncturing)할 수 있다. 여기에서, 펑처링이란 펑처링은 패리티 비트들 중 일부를 전송하지 않는 것으로, 펑처링된 패리티 비트는 수신 측으로 전송되지 않는다. 이에 따라, 부호화부(110)는 LDPC 부호어에서 일부의 패리티 비트들을 펑처링하여 인터리버(120)로 출력할 수도 있다.
인터리버(120)는 LDPC 부호어를 인터리빙한다. 여기에서, 인터리버(120)는 정보어 비트들과 제1 패리티 비트들을 인터리빙하기 위한 제1 인터리버(121) 및 제2 패리티 비트들을 인터리빙하기 위한 제2 인터리버(123)를 포함할 수 있다. 즉, 부호화부(110)는 LDPC 부호화에 의해 생성된 정보어 비트들과 제1 패리티 비트들을 제1 인터리버(121)로 출력하고, 제2 패리티 비트들을 제2 인터리버(123)로 출력할 수 있다.
구체적으로, 제1 인터리버(121) 및 제2 인터리버(123)는 비트 인터리버로 구현되어, LDPC 부호어를 비트 단위로 인터리빙할 수 있다. 이 경우, 비트 인터리버는 Nc 개의 열을 포함하며, 각 열은 Nr 개의 행으로 구성될 수 있다.
이에 따라, 제1 인터리버(121) 및 제2 인터리버(123)는 부호화부(110)에서 출력되는 비트들을 첫 번째 열부터 Nc 번째 열까지 열 방향으로 라이트하고, 비트들이 라이트된 복수의 열의 첫 번째 행부터 Nr 번째 행까지 행 방향으로 리드할 수 있다. 이에 따라, 각 열에서 동일한 행에 라이트된 비트들이 순차적으로 출력되어 인터리빙 전과 비교하여 비트들의 순서가 재정열될 수 있다.
예를 들어, 제1 인터리버(121)는 정보어 비트들과 제1 패리티 비트들 (i0,i1,i2,...,
Figure 112021132524835-pat00046
,p0,p1,p2,...,
Figure 112021132524835-pat00047
)을 입력받아 인터리빙을 수행하여 v=(v0,v1,v2,...)를 출력하고, 제2 인터리버(123)는 제2 패리티 비트들 (
Figure 112021132524835-pat00048
,
Figure 112021132524835-pat00049
,...,
Figure 112021132524835-pat00050
)를 입력받아 인터리빙을 수행하여 u=(u0,u1,u2,...)를 출력할 수 있다.
성상도 맵퍼(130)는 인터리빙된 LDPC 부호어를 성상점(constellation point)에 맵핑한다.
여기에서, 성상도 맵퍼(130)는 제1 인터리버(121)의 출력을 성상점에 맵핑하기 위한 제1 성상도 맵퍼(131) 및 제2 인터리버(123)의 출력을 성상점에 맵핑하기 위한 제2 성상도 맵퍼(133)를 포함할 수 있다. 즉, 제1 성상도 맵퍼(131)는 제1 인터리버(121)에 의해 인터리빙된 정보어 비트들 및 제1 패리티 비트들을 성상점에 맵핑하고, 제2 성상도 맵퍼(133)는 제2 인터리버(123)에 의해 인터리빙된 제2 패리티 비트들을 성상점에 맵핑할 수 있다.
한편, 제1 성상도 맵퍼(131)와 제2 성상도 맵퍼(133)는 입력받는 값에서만 차이가 있을 뿐 서로 동일한 기능을 수행한다는 점에서, 이하에서는 제1 성상도 맵퍼(131)의 동작을 일 예로 설명하도록 한다.
제1 성상도 맵퍼(131)는 제1 인터리버(121)에서 출력되는 비트들을 디멀티플렉싱하여 셀(cell)들을 생성하고, 생성된 셀들을 변조할 수 있다.
구체적으로, 제1 성상도 맵퍼(131)는 제1 인터리버(121)에서 출력되는 비트들에 대해 비트-투-셀(bit-to-cell) 변환을 수행하여, 제1 인터리버(121)로부터 출력된 비트들을 일정한 개수의 비트로 구성된 셀로 디멀티플렉싱할 수 있다.
예를 들어, 제1 성상도 맵퍼(131)는 제1 인터리버(121)에서 출력되는 비트들을 순차적으로 복수의 서브 스트림 중 하나에 출력하여 제1 인터리버(121)에서 출력되는 비트들을 셀로 변환할 수 있다. 이 경우, 복수의 서브 스트림 각각에서 동일한 인덱스를 갖는 비트들이 동일한 셀을 구성할 수 있다.
여기에서, 서브 스트림의 개수는 셀을 구성하는 비트의 수와 동일하다. 예를 들어, 변조 방식이 각각 BPSK, QPSK, 16-QAM, 64-QAM, 256-QAM인 경우, 서브 스트림의 개수는 각각 1,2,4,6,8이 될 수 있다.
이후, 제1 성상도 맵퍼(131)는 셀들을 변조할 수 있다. 구체적으로, 제1 성상도 맵퍼(131)는 셀들을 BPSK, QPSK, 16-QAM, 64-QAM, 256-QAM 등의 다양한 변조 방식을 이용하여 성상점에 맵핑하여 변조할 수 있다. 여기에서, 변조 방식이 각각 BPSK, QPSK, 16-QAM, 64-QAM, 256-QAM인 경우, 변조된 셀(즉, 변조 심볼)을 구성하는 비트 수는 각각 1,2,4,6,8가 될 수 있다.
한편, 송신 장치(100)는 변조 심볼을 수신 장치(미도시)로 전송할 수 있다. 예를 들어, 송신 장치(100)는 OFDM 방식을 이용하여 변조 심볼을 OFDM 프레임에 맵핑하고, 할당된 채널을 통해 수신 장치(미도시)로 전송할 수 있다. 이에 따라, 송신 장치(100)는 IR 방식으로 데이터를 수신 장치(미도시)로 전송할 수 있게 된다.
한편, 상술한 도 2 및 도 3에서, 추가적인 패리티를 생성하기 위한 패리티 부분 행렬(220-3, 320-3)의 사이즈는 원래 부호화된 데이터를 생성하기 위한 패리티 부분 행렬(220-1, 320-1)의 사이즈와 동일하거나, 더 클 수 있다. 이에 따라, 추가적인 패리티 비트는 원래 부호화된 데이터에 포함된 패리티 비트와 동일한 개수의 비트로 구성되거나, 더 많은 개수의 비트로 구성될 수 있다.
하지만, 이는 일 예일 뿐이며, 도 4 및 도 5와 같이, 추가적인 패리티를 생성하기 위한 패리티 부분 행렬(420-3, 520-3)의 사이즈는 원래 부호화된 데이터를 생성하기 위한 패리티 부분 행렬(420-1, 520-1)의 사이즈보다 작을 수 있다. 즉, 도 4 및 도 5의 패리티 검사 행렬(400, 500)의 Nldpc2-Kldpc는 도 2 및 도 3의 패리티 검사 행렬(200, 300)의 Nldpc2-Kldpc보다 작을 수 있다.
이 경우, 추가적인 패리티는 원래 부호화된 데이터에 포함되는 패리티 비트들보다 적은 개수로 생성될 수 있다. 즉, 제2 패리티 비트들의 비트 수는 제1 패리티 비트들의 비트 수보다 적을 수 있다.
이와 같이 제2 패리티 비트들의 비트 수가 제1 패리티 비트들의 비트 수보다 적은 경우, 송신 장치(100)는 추가적인 패리티 전송 시, 원래의 부호화된 데이터에 포함된 비트들을 함께 전송할 수 있다. 즉, 송신 장치(100)는 정보어 비트들과 제1 패리티 비트들 중에서 일부를 이용하여 제2 패리티 비트들과 함께 변조 심볼을 생성하고, 이를 수신 장치(도 8의 600)로 전송할 수 있다. 이에 대한 구체적인 내용은 도 7을 참조하여 후술하기로 한다.
도 6는 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도이다. 도 6을 참조하면, 수신 장치(600)는 복조부(610), 디인터리버(620) 및 복호화부(630)를 포함할 수 있다.
복조부(또는, 성상도 디맵퍼)(610)는 송신 장치(100)에서 전송한 신호를 수신하여 복조한다. 구체적으로, 복조부(610)는 수신된 신호를 복조하여 LDPC 부호어에 대응되는 값을 생성한다.
여기에서, LDPC 부호어에 대응되는 값은 수신된 신호에 대한 채널 값으로 표현될 수 있다. 채널 값을 결정하는 방법은 다양하게 존재할 수 있으며, 일 예로, LLR(Log Likelihood Ratio) 값을 결정하는 방법이 될 수 있다.
여기에서, LLR 값은 송신 장치(100)에서 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다. 또는, LLR 값은 경판정(hard decision)에 따라 결정된 비트 값 자체가 될 수 있으며, 또한, LLR 값은 송신 장치(100)에서 전송한 비트가 0 또는 1일 확률이 속하는 구간에 따라 결정된 대표 값이 될 수도 있다.
이 경우, 복조부(610)는 정보어 비트들과 제1 패리티 비트에 대응되는 LLR 값을 결정하고 제2 패리티 비트에 대응되는 LLR 값을 결정하여, 결정된 LLR 값을 디인터리버(620)로 출력할 수 있다.
디인터리버(620)는 복조부(610)의 출력 값에 대해 디인터리빙을 수행한다. 이를 위해, 디인터리버(620)는 제1 디인터리버(621)와 제2 디인터리버(623)를 포함할 수 있으며, 이들은 도 1의 제1 인터리버(121)와 제2 인터리버(123)에 각각 대응된다.
구체적으로, 복조부(610)는 정보어 비트들과 제1 패리티 비트들에 대응되는 LLR 값을 제1 디인터리버(621)로 출력하고, 제2 패리티 비트들에 대응되는 LLR 값을 제2 디인터리버(623)로 출력할 수 있다.
이 경우, 제1 디인터리버(621)는 정보어 비트들과 제1 패리티 비트들에 대응되는 LLR 값을 디인터리빙하고, 제2 디인터리버(623)는 제2 패리티 비트들에 대응되는 LLR 값을 디인터리빙한다. 이때, 제1 디인터리버(621)와 제2 디인터리버(623)는 각각 제1 인터리버(121)와 제2 인터리버(123)에서 수행된 인터리빙 동작을 역으로 수행하고, 디인터리빙된 LLR 값을 복호화부(630)로 출력할 수 있다.
복호화부(630)는 디인터리버(620)의 출력 값에 대해 복호화를 수행한다. 여기에서, 복호화부(630)는 도 1의 부호화부(110)에 대응된다. 이를 위해, 복호화부(630)는 LDPC 복호화를 위한 LDPC 디코더(미도시)를 포함할 수 있다.
구체적으로, 디인터리버(620)는 LDPC 부호어 비트들에 대응되는 LLR 값을 디인터리빙하여 복호화부(630)로 출력하며, 복호화부(630)는 디인터리빙된 LLR 값에 기초하여 LDPC 복호화를 수행할 수 있다.
일 예로, 복호화부(630)는 합곱 알고리즘(sum-product algorithm)에 기반한 반복 복호(iterative decoding) 방식을 사용하여 LDPC 복호화를 수행할 수 있다. 여기에서, 합곱 알고리즘은 메시지 패싱 알고리즘(message passing algorithm)의 일종이며, 메시지 패싱 알고리즘이라 함은 bipartite 그래프 상에서 에지를 통해 메시지들을 교환하고, 변수 노드들 혹은 검사 노드들로 입력되는 메시지들로부터 출력 메시지를 계산하여 업데이트하는 알고리즘을 나타낸다.
이 경우, 복호화부(630)는 LDPC 복호화 시 패리티 검사 행렬을 이용할 수 있다. 일 예로, 패리티 검사 행렬은 도 2 및 도 3과 같은 구조를 가질 수 있으며, 이러한 패리티 검사 행렬에 대한 정보는 수신 장치(600)에 기저장되어 있거나, 송신 장치(100)로부터 제공될 수 있다.
이에 따라, 복호화부(630)는 송신 장치(200)에서 전송하고자 하는 정보어 비트들(즉, 데이터)에 대해 에러를 정정하고, 에러를 정정된 정보어 비트들을 생성할 수 있다.
한편, 복호화부(630)는 송신 장치(100)에서 제2 패리티 비트들 중 일부가 펑처링된 경우, 패리티 부분 행렬에서 펑처링에 의해 제거된 일부의 제2 패리티 비트들에 대응되는 부분 행렬을 제거하고 나머지 부분을 이용하여 복호화를 수행할 수 있다. 예를 들어, 복호화부(630)는 도 3과 같이 항등 행렬 구조를 갖는 패리티 부분 행렬(320-3)에서 펑처링된 제2 패리티 비트에 대응되는 부분 행렬을 제거하여 복호화를 수행할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도이다. 도 7을 참조하면, 송신 장치(100)는 부호화부(110), 인터리버(120), 성상도 맵퍼(130) 및 비트 선택부(140)를 포함한다. 한편, 도 7에 도시된 부호화부(110), 인터리버(120), 성상도 맵퍼(130)는 도 1에서와 동일한 기능을 수행한다는 점에서 중복되는 부분에 대한 구체적인 설명은 생략하도록 한다.
한편, 도 7에 도시된 송신 장치(100)는 도 4 또는 도 5와 같은 구조를 갖는 패리티 검사 행렬(400, 500)에 기초하여 LDPC 부호어를 생성한 경우, 추가적인 패리티 전송 시 원래의 부호화된 데이터에 포함된 비트들을 함께 전송할 수 있다.
즉, 송신 장치(100)는 제2 패리티 비트들에 대한 변조 심볼 생성 시 정보어 비트들과 제1 패리티 비트들 중 적어도 하나의 일부를 추가로 이용할 수 있으며, 이를 위해, 송신 장치(100)는 비트 선택부(140)를 더 포함할 수 있다.
비트 선택부(140)는 정보어 비트들 및 제1 패리티 비트들 중에서 일부의 비트가 제2 패티리 비트 비트들과 함께 성상점에 맵핑되도록 하기 위해, 정보어 비트들 및 제1 패리티 비트들 중에서 일부의 비트를 제2 인터리버(133)로 출력한다. 이를 위해, 부호화부(110)는 LDPC 부호화에 의해 생성된 정보어 비트들과 제1 패리티 비트들을 비트 선택부(140)로 출력할 수 있다.
구체적으로, 비트 선택부(140)는 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합과 제2 패리티 비트들의 비트 수의 비율에 기초하여 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트를 선택하고, 선택된 적어도 일부의 비트를 제2 인터리버(123)로 출력할 수 있다. 이 경우, 선택되는 비트는 정보어 비트들로만 구성되거나, 제1 패리티 비트들로만 구성되거나, 정보어 비트들과 제1 패리티 비트들로 구성될 수 있다.
예를 들어, 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합을 제2 패리티 비트들의 비트 수로 나눈 값 C가 1 이상의 정수인 것으로 가정한다. 여기에서, C+1은 변조 심볼을 구성하는 비트 수(ηmod)의 배수가 될 수 있다.
이 경우, 비트 선택부(140)는 정보어 비트들과 제1 패리티 비트들에서 Np2×C 개의 비트를 선택하여 제2 인터리버(123)로 출력할 수 있다. 여기에서, Np2는 LDPC 부호화에 의해 생성된 제2 패리티 비트들의 비트 수보다 작은 정수로, 부호화부(110)에서 제2 패리티 비트들에 대해 펑처링을 수행한 경우 펑처링 후 남은 제2 패리티 비트들의 비트 수가 될 수 있다. 따라서, 부호화부(110)에서 제2 패리티 비트들에 대해 펑처링을 수행하지 않은 경우, Np2는 제2 패리티 비트들의 비트 수와 동일한 값이 될 수 있다.
이와 같이, 비트 선택부(140)가 정보어 비트들과 제1 패리티 비트들에서 Np2×C 개의 비트를 선택하여 제2 인터리버(123)로 출력하게 되면, 제2 인터리버(123)는 Np2×C 개의 비트를 부호화부(110)로부터 전달받은 Np2 개의 제2 패리티 비트들과 함께 인터리빙하여 제2 성상도 맵퍼(133)로 출력하고, 제2 성상도 맵퍼(133)는 총 Np2×(C+1) 개의 비트를 성상점에 맵핑하게 된다. 결국, Np2×(C+1) 개의 비트에 기초하여 생성된 변조 심볼이 추가적인 패리티로서 전송되게 된다. 이와 같이, Np2×(C+1) 개의 비트가 성상점에 맵핑된다는 점에서, C+1은 ηmod의 배수가 되어야 한다. 이 경우, 선택되는 비트 그룹은 정보어 비트들로만 구성되거나, 제1 패리티 비트들로만 구성되거나, 정보어 비트들과 제1 패리티 비트들로 구성될 수 있다.
또한, 비트 선택부(140)는 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합과 제2 패리티 비트들의 비트 수의 비율에 기초하여 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트 그룹을 선택하고, 선택된 일부의 비트 그룹을 제2 인터리버(123)로 출력할 수 있다.
여기에서, 비트 그룹은 M(즉, 패리티 검사 행렬에서 열의 패턴이 반복되는 간격으로, 가령, 360이 될 수 있다) 개의 비트로 구성될 수 있다.
예를 들어, 정보어 비트들과 제1 패리티 비트들이 A 개의 비트 그룹으로 구성되고, 제2 패리티 비트들이 B 개의 비트 그룹으로 구성된 경우를 가정한다. 즉, 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합이 A×M이고, 제2 패리티 비트들의 비트 수가 B×M인 경우를 가정한다.
이 경우, 비트 선택부(140)는 정보어 비트들과 제1 패리티 비트들에서
Figure 112021132524835-pat00051
개의 비트 그룹을 선택하여 제2 인터리버(123)로 출력할 수 있다. 여기에서,
Figure 112021132524835-pat00052
는 A/B 이하의 가장 큰 정수가 될 수 있다. 즉, 비트 선택부(140)는
Figure 112021132524835-pat00053
×M 개의 비트를 제2 인터리버(123)로 출력할 수 있다.
이와 같이, 비트 선택부(140)가 정보어 비트들과 제1 패리티 비트들에서
Figure 112021132524835-pat00054
개의 비트 그룹을 선택하여 제2 인터리버(123)로 출력하게 되면, 제2 인터리버(123)는
Figure 112021132524835-pat00055
개의 비트 그룹을 부호화부(110)로부터 전달받은 B 개의 비트 그룹과 함께 인터리빙하여 제2 성상도 맵퍼(133)로 출력하며, 제2 성상도 맵퍼(133)는 (
Figure 112021132524835-pat00056
+1) 개의 비트 그룹 즉, M×(
Figure 112021132524835-pat00057
+1) 개의 비트를 성상점에 맵핑하게 된다.
결국, M×(
Figure 112021132524835-pat00058
+1) 개의 비트에 기초하여 생성된 변조 심볼이 추가적인 패리티 비트로서 전송되게 된다. 여기에서, M은 ηmod의 배수이다.
한편, 상술한 예에서 비트 선택부(140)는
Figure 112021132524835-pat00059
개의 비트 그룹을 선택하는 것으로 설명하였으나 이는 일 예에 불과하며, 경우에 따라, 비트 선택부(140)는
Figure 112021132524835-pat00060
이하의 정수 개만큼의 비트 그룹을 선택할 수도 있다.
이와 같은 방법에 의할 경우, 추가적인 패리티를 전송할 수 있다는 점에서 IR 방식에 따른 코딩 게인을 얻을 수 있게 된다. 이때, 추가로 전송되는 패리티는 비교적 작은 사이즈를 갖는 부분 행렬에 의해 생성되고 원래 전송하고자 하는 부호화된 데이터의 일부가 함께 이용된다는 점에서, LDPC 부호화 및 복호화에서 복잡도가 감소될 수 있다.
도 8은 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도이다. 도 8을 참조하면, 수신 장치(600)는 복조부(610), 디인터리버(620), 복호화부(630) 및 LLR 결합부(640)를 포함할 수 있다. 한편, 도 8에 도시된 복조부(610), 디인터리버(620), 복호화부(630)는 도 6에서와 동일한 기능을 수행한다는 점에서 중복되는 부분에 대한 구체적인 설명은 생략하도록 한다.
복조부(610)는 도 6에서 상술한 바와 같이 LLR 값을 결정할 수 있다. 이 경우, 도 7에 도시된 송신 장치(100)는 추가적인 패리티로서 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트를 제2 패리티 비트들과 함께 전송한다는 점에서, 복조부(610)는 정보어 비트들과 제1 패리티 비트들에 대한 LLR 값을 결정하고, 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트와 제2 패리티 비트에 대한 LLR 값을 결정할 수 있다.
한편, LLR 결합부(640)는 제1 디인터리버(621)와 제2 디인터리버(623)에서 출력된 값을 합산하여, 복호화부(630)로 출력한다. 여기에서, 제1 디인터리버(621)는 정보어 비트들과 제1 패리티 비트들에 대응되는 LLR 값을 디인터리빙하여 출력하고, 제2 디인터리버(623)는 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트 및 제2 패리티 비트들에 대응되는 LLR 값을 디인터리빙하여 출력하게 된다.
이에 따라, LLR 결합부(640)는 제1 디인터리버(621)로부터 전달받은 정보어 비트들과 제1 패리티 비트들에 대한 LLR 값과 제2 디인터리버(623)로부터 전달받은 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트에 대한 LLR 값을 합산할 수 있다.
예를 들어, 송신 장치(100)가 추가적인 패리티 비트 전송 시 제1 패리티 비트들에서 일부의 비트와 제2 패리티 비트들을 이용한 경우, LLR 결합부(640)는 제1 패리티 비트들에서 일부의 비트에 대한 LLR 값과 제1 패리티 비트들에 대한 LLR 값을 합산할 수 있다.
이는, 도 7에서 상술한 바와 같이, 송신 장치(100)에서 제2 패리티 비트들을 추가적으로 전송하기 위해 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트를 이용했기 때문에, LLR 결합부(640)는 추가적인 패리티에 대해 결정된 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트에 대한 LLR 값을 원래 부호화된 데이터에 대해 결정된 정보어 비트들과 제1 패리티 비트들에 대한 LLR 값과 합산하여 복호화부(630)로 출력하게 된다.
이에 따라, 복호화부(630)는 LDPC 복호화 시 LLR 결합부(640)로부터 전달받은 LLR 값을 이용할 수 있다. 이 경우, 복호화부(630)는 도 4 또는 도 5와 같은 구조를 갖는 패리티 검사 행렬(500)에 기초하여 LDPC 복호화를 수행할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 송신 장치의 신호 처리 방법을 설명하기 위한 흐름도이다.
먼저, 패리티 검사 행렬에 기초하여 정보어 비트들, 제1 패리티 비트들 및 제2 패리티 비트들을 포함하는 LDPC 부호어를 생성한다(S910)
이후, LDPC 부호어를 인터리빙한다(S920).
그리고, 인터리빙된 LDPC 부호어를 성상점에 맵핑한다(S930).
한편, 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함하고, 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 복수의 열 그룹 각각의 0 번째 열에서 1의 위치는 상술한 표 4와 같이 정의될 수 있다.
한편, 패리티 검사 행렬은, 4 개의 패리티 부분 행렬을 포함하며, 4 개의 패리티 부분 행렬 중 서로 인접하지 않는 2 개의 패리티 부분 행렬은 이중 대각 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다. 예를 들어, 패리티 검사 행렬은 도 2와 같은 구조를 가질 수 있다.
이 경우, 제1 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬 중 하나에 기초하여 생성되고, 제2 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬 중 다른 하나에 기초하여 생성될 수 있다.
구체적으로, S910 단계는 상술한 수학식 11을 이용하여 제1 패리티 비트들을 생성하고, 상술한 수학식 12를 이용하여 제2 패리티 비트들을 생성할 수 있다.
한편, 패리티 검사 행렬은, 4 개의 패리티 부분 행렬을 포함하며, 4 개의 패리티 부분 행렬 중 하나는 이중 대각 행렬 구조를 가지며, 다른 하나는 항등 행렬 구조를 가지며, 나머지 2 개의 패리티 부분 행렬은 영 행렬일 수 있다. 예를 들어, 패리티 검사 행렬은 도 3과 같은 구조를 가질 수 있다.
이 경우, 제1 패리티 비트들은 이중 대각 구조를 갖는 패리티 부분 행렬에 기초하여 생성되고, 제2 패리티 비트들은 항등 행렬 구조를 갖는 패리티 부분 행렬에 기초하여 생성될 수 있다.
구체적으로, S910 단계는 상술한 수학식 13을 이용하여 제1 패리티 비트들을 생성하고, 상술한 수학식 14를 이용하여 제2 패리티 비트들을 생성할 수 있다.
한편, S920 단계는 제1 인터리버를 이용하여 정보어 비트들 및 제1 패리티 비트들을 인터리빙하고, 제2 인터리버를 이용하여 제2 패리티 비트들을 인터리빙할 수 있다.
이 경우, S930 단계는 제1 성상점 맵퍼를 이용하여 제1 인터리버의 출력을 성상점에 맵핑하고, 제2 성상점 맵퍼를 이용하여 제2 인터리버의 출력을 성상점에 맵핑할 수 있다.
그리고, 정보어 비트들 및 제1 패리티 비트들 중 일부의 비트가 제2 패리티 비트들과 함께 성상점에 맵핑되도록, 정보어 비트들 및 제1 패리티 비트들의 일부 비트를 제2 인터리버로 출력하는 단계를 더 포함할 수 있다. 이 경우, 제2 패리티 비트의 비트 수는 제1 패리티 비트의 비트 수보다 적을 수 있다.
구체적으로, 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합과 제2 패리티 비트들의 개수의 비율에 기초하여 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트를 선택하고, 선택된 일부의 비트를 제2 인터리버로 출력할 수 있다.
또는, 정보어 비트들과 제1 패리티 비트들의 비트 수의 총합과 제2 패리티 비트들의 비트 수의 비율에 기초하여 정보어 비트들과 제1 패리티 비트들 중에서 일부의 비트 그룹을 선택하고, 선택된 일부의 비트 그룹을 상기 제2 인터리버로 출력할 수 있다.
한편, 이와 관련된 구체적인 내용은 도 1 내지 도 8에서 상술한바 있다는 점에서, 구체적인 설명은 생략하도록 한다.
한편, 본 발명에 따른 신호 처리 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 송신 장치에 대해 도시한 상술한 블록도에서는 버스(bus)를 미도시하였으나, 전자 장치에서 각 구성요소 간의 통신은 버스를 통해 이루어질 수도 있다. 또한, 각 디바이스에는 상술한 다양한 단계를 수행하는 CPU, 마이크로 프로세서 등과 같은 프로세서가 더 포함될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 송신 장치 110 : 부호화부
120 : 인터리버 130 : 성상도 맵퍼

Claims (7)

  1. 송신 방법에 있어서,
    LDPC 코드의 패리티 검사 행렬에 기초하여 정보어 비트들을 인코딩하여, 제1 패리티 비트들 및 제2 패리티 비트들을 생성하는 단계;
    상기 제1 패리티 비트들을 인터리빙하여 인터리빙된 제1 패리티 비트들을 생성하는 단계;
    상기 제2 패리티 비트들을 인터리빙하여 인터리빙된 제2 패리티 비트들을 생성하는 단계; 및
    상기 정보어 비트들, 상기 인터리빙된 제1 패리티 비트들 및 상기 인터리빙된 제2 패리티 비트들을 성상점들에 맵핑하는 단계;를 포함하며,
    상기 패리티 검사 행렬은, 패리티 행렬 및 쿼시 시클릭 구조를 갖는 정보어 행렬을 포함하고,
    상기 패리티 행렬은, 이중 대각 행렬 구조를 갖는 제1 패리티 부분 행렬 및 항등 행렬 구조를 갖는 제2 패리티 부분 행렬을 포함하고,
    상기 제1 패리티 비트들은, 상기 제1 패리티 부분 행렬에 기초하여 생성되고,
    상기 제2 패리티 비트들은, 상기 제2 패리티 부분 행렬에 기초하여 생성되는 송신 방법.
  2. 제1항에 있어서,
    상기 정보어 행렬은, 제1 정보어 부분 행렬 및 제2 정보어 부분 행렬을 포함하고,
    상기 제1 및 제2 정보어 부분 행렬 각각은,
    각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되는 것을 특징으로 하는 송신 방법.
  3. 제2항에 있어서,
    상기 M은,
    Nldpc1, Nldpc2 및 Kldpc의 공약수이며, 하기의 수학식을 만족하는 것을 특징으로 하는 송신 방법:
    M=(Nldpc1-Kldpc)/Qldpc1=(Nldpc2-Kldpc)/Qldpc2
    여기에서, Qldpc1는 상기 제1 정보어 부분 행렬에서의 시클릭 쉬프트 파라미터 값, Nldpc1는 상기 정보어 비트들 및 상기 제1 패리티 비트들의 수, Kldpc는 상기 정보어 비트들의 수, Qldpc2는 상기 제2 정보어 부분 행렬에서의 시클릭 쉬프트 파라미터 값, Nldpc2는 상기 정보어 비트들 및 상기 제2 패리티 비트들의 수이다.
  4. 제2항에 있어서,
    상기 M은, 360인 것을 특징으로 하는 송신 방법.
  5. 제1항에 있어서,
    상기 제1 패리티 비트들은, 하기의 수학식에 기초하여 생성되고,
    Figure 112022142433599-pat00061

    상기 제2 패리티 비트들은, 하기의 수학식에 기초하여 생성되는 것을 특징으로 하는 송신 방법:
    Figure 112022142433599-pat00062

    상기 수학식들에서 Nldpc는 상기 정보어 비트들, 상기 제1 패리티 비트들 및 상기 제2 패리티 비트들의 수, Kldpc는 상기 정보어 비트들의 수, Nldpc1는 상기 정보어 비트들 및 상기 제1 패리티 비트들의 수이다.
  6. 수신 방법에 있어서,
    송신 장치로부터 수신된 신호를 복조하여 값들을 생성하는 단계;
    상기 생성된 값들 중 제1 값들을 디인터리빙하는 단계;
    상기 생성된 값들 중 제2 값들을 디인터리빙하는 단계; 및
    상기 생성된 값들 중 상기 제1 및 제2 값들을 제외한 나머지 값들, 상기 디인터리빙된 제1 값들 및 상기 디인터리빙된 제2 값들을 LDPC 코드의 패리티 검사 행렬에 기초하여 디코딩하는 단계;
    상기 패리티 검사 행렬은, 패리티 행렬 및 쿼시 시클릭 구조를 갖는 정보어 행렬을 포함하고,
    상기 패리티 행렬은, 이중 대각 행렬 구조를 갖는 제1 패리티 부분 행렬 및 항등 행렬 구조를 갖는 제2 패리티 부분 행렬을 포함하고,
    상기 디인터리빙된 제1 값들은, 상기 제1 패리티 부분 행렬과 관련되고,
    상기 디인터리빙된 제2 값들은, 상기 제2 패리티 부분 행렬과 관련되는 수신 방법.
  7. 제6항에 있어서,
    상기 정보어 행렬은, 제1 정보어 부분 행렬 및 제2 정보어 부분 행렬을 포함하고,
    상기 제1 및 제2 정보어 부분 행렬 각각은,
    각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되는 것을 특징으로 하는 수신 방법.
KR1020210158338A 2014-12-10 2021-11-17 송신 장치 및 그의 신호 처리 방법 KR102567916B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210158338A KR102567916B1 (ko) 2014-12-10 2021-11-17 송신 장치 및 그의 신호 처리 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140177661A KR102329573B1 (ko) 2014-12-10 2014-12-10 송신 장치 및 그의 신호 처리 방법
KR1020210158338A KR102567916B1 (ko) 2014-12-10 2021-11-17 송신 장치 및 그의 신호 처리 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177661A Division KR102329573B1 (ko) 2014-12-10 2014-12-10 송신 장치 및 그의 신호 처리 방법

Publications (2)

Publication Number Publication Date
KR20210145089A KR20210145089A (ko) 2021-12-01
KR102567916B1 true KR102567916B1 (ko) 2023-08-17

Family

ID=56107744

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140177661A KR102329573B1 (ko) 2014-12-10 2014-12-10 송신 장치 및 그의 신호 처리 방법
KR1020210158338A KR102567916B1 (ko) 2014-12-10 2021-11-17 송신 장치 및 그의 신호 처리 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020140177661A KR102329573B1 (ko) 2014-12-10 2014-12-10 송신 장치 및 그의 신호 처리 방법

Country Status (3)

Country Link
US (3) US10263731B2 (ko)
KR (2) KR102329573B1 (ko)
WO (1) WO2016093642A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102329573B1 (ko) * 2014-12-10 2021-11-22 삼성전자주식회사 송신 장치 및 그의 신호 처리 방법
US10727951B2 (en) * 2016-07-20 2020-07-28 Nokia Of America Corporation Low-complexity constellation shaping
CN108242976A (zh) 2016-12-26 2018-07-03 华为技术有限公司 一种数据传输方法、数据发送设备和数据接收设备
JP7077627B2 (ja) * 2018-01-18 2022-05-31 ソニーグループ株式会社 送信装置、送信方法、受信装置、及び、受信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130223561A1 (en) * 2008-05-07 2013-08-29 Broadcom Corporation LDPC coding systems for 60 GHz millimeter wave based physical layer extension

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334181B2 (en) 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
US8826093B2 (en) * 2005-01-19 2014-09-02 Qualcomm Incorporated Power saving method for coded transmission
KR101492634B1 (ko) 2007-08-28 2015-02-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 데이터 송수신 장치 및 방법
US8261152B2 (en) 2007-09-10 2012-09-04 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication system using variable-length LDPC codes
KR101413783B1 (ko) * 2007-09-10 2014-07-02 삼성전자주식회사 가변 블록 길이의 저밀도 패리티 검사 부호를 이용한 채널 부호화/복호화 방법 및 장치
KR100917200B1 (ko) 2007-12-12 2009-09-16 엘지전자 주식회사 신호 송수신 방법 및 신호 송수신 장치
KR101685010B1 (ko) * 2012-06-01 2016-12-13 한국전자통신연구원 지상파 클라우드 방송을 위한 ldpc 부호
EP3075160B1 (en) * 2013-11-25 2019-06-26 LG Electronics Inc. Apparatus for transmitting and receiving broadcast signals and method therefor
KR102329573B1 (ko) * 2014-12-10 2021-11-22 삼성전자주식회사 송신 장치 및 그의 신호 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130223561A1 (en) * 2008-05-07 2013-08-29 Broadcom Corporation LDPC coding systems for 60 GHz millimeter wave based physical layer extension

Also Published As

Publication number Publication date
US20190199472A1 (en) 2019-06-27
KR20210145089A (ko) 2021-12-01
US11343017B2 (en) 2022-05-24
KR102329573B1 (ko) 2021-11-22
US20160173135A1 (en) 2016-06-16
KR20160070556A (ko) 2016-06-20
US20200412477A1 (en) 2020-12-31
US10263731B2 (en) 2019-04-16
WO2016093642A1 (en) 2016-06-16
US10819467B2 (en) 2020-10-27

Similar Documents

Publication Publication Date Title
US10382063B2 (en) Receiving apparatus and de-interleaving method thereof
US11563448B2 (en) Receiving apparatus and de-interleaving method thereof
US11336299B2 (en) Transmitting apparatus and interleaving method thereof
KR102567916B1 (ko) 송신 장치 및 그의 신호 처리 방법
US9768806B2 (en) Parity check matrix generating method, encoding apparatus, encoding method, decoding apparatus and decoding method using the same
KR102438154B1 (ko) 송신 장치 및 그의 신호 처리 방법
KR102466523B1 (ko) 송신 장치 및 그의 신호 처리 방법
KR102531733B1 (ko) 송신 장치 및 그의 신호 처리 방법
KR20220130077A (ko) 송신 장치 및 그의 신호 처리 방법
KR20220122594A (ko) 송신 장치 및 그의 신호 처리 방법
KR102547369B1 (ko) 수신 장치 및 그의 디코딩 방법
KR102146803B1 (ko) 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
KR102163710B1 (ko) 송신 장치 및 그의 신호 처리 방법
KR20200117940A (ko) 송신 장치 및 그의 신호 처리 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right