KR101598754B1 - Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법 - Google Patents

Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법 Download PDF

Info

Publication number
KR101598754B1
KR101598754B1 KR1020150035901A KR20150035901A KR101598754B1 KR 101598754 B1 KR101598754 B1 KR 101598754B1 KR 1020150035901 A KR1020150035901 A KR 1020150035901A KR 20150035901 A KR20150035901 A KR 20150035901A KR 101598754 B1 KR101598754 B1 KR 101598754B1
Authority
KR
South Korea
Prior art keywords
llr
value
bit
candidate
punctured
Prior art date
Application number
KR1020150035901A
Other languages
English (en)
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 KR1020150035901A priority Critical patent/KR101598754B1/ko
Application granted granted Critical
Publication of KR101598754B1 publication Critical patent/KR101598754B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/005
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs

Landscapes

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

Abstract

본 발명은 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 관한 것이다. 본 발명에 따르면, LDPC 복호기를 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 있어서, 복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링(Puncturing)된 LDPC 부호화 신호를 수신하는 단계와, 상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색하는 단계와, 상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 단계, 및 상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원하는 단계를 포함하는 펑쳐링된 데이터의 디펑쳐링 방법을 제공한다.
상기 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 따르면, LDPC 복호 시스템에서 펑쳐링되지 않은 데이터의 신뢰도를 이용하여 펑쳐링된 데이터를 디펑쳐링함에 따라 복호 성능을 높일 수 있는 이점이 있다.

Description

LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법{LDPC decoder and apparatus for de-puncturing of puncturing date thereof}
본 발명은 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 관한 것으로서, 보다 상세하게는 LDPC(Low Density Parity Check) 복호 시스템에서 펑쳐링(Puncturing) 되지 않은 데이터의 신뢰도를 이용하여 펑쳐링된 데이터를 복원하는 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 관한 것이다.
최근 복호의 성능을 개선한 저밀도 패리티 검사 코드(low density parity check code : 이하 'LDPC 코드'라 칭함)가 새롭게 부각되고 있다. 상기 LDPC는 코드를 정의하는 패리티 검사 행렬(parity check matrix)의 각 행과 열에 '1'의 수가 매우 적은 부호로서, 체크 노드(check node)와 비트 노드(variable node), 그리고 이들을 연결하는 가지(edge)로 구성된 펙터 그래프(factor graph)에 의해 그 구조가 정의될 수 있다.
일반적으로 IEEE 802.11n의 LDPC 부호기/복호기를 사용할 때에는 부호화된 데이터를 펑쳐링(Puncturing)하는 과정이 수행된다. 이는 LDPC 부호화된 데이터를 OFDM 심볼을 구성하는 필요한 데이터 비트 수로 맞추기 위한 과정이다. 그러나 보통의 경우 802.11n에서는 펑쳐링된 데이터를 0으로 채우는 디펑쳐링(De-Punction)을 수행한 후 LDPC 복호 과정을 거치게 되는데 이는 복호의 성능 저하를 유발한다.
본 발명의 배경이 되는 기술은 한국공개특허 제2007-0037249호(2007.04.04 공개)에 개시되어 있다.
본 발명은 복호 성능을 높일 수 있는 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법을 제공하는데 목적이 있다.
본 발명은, LDPC 복호기를 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 있어서, 복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링(Puncturing)된 LDPC 부호화 신호를 수신하는 단계와, 상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색하는 단계와, 상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 단계, 및 상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원하는 단계를 포함하는 펑쳐링된 데이터의 디펑쳐링 방법을 제공한다.
여기서, 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 단계는, 상기 펑쳐링된 비트의 수를 상기 패리티 검사 행렬을 구성하는 Z×Z 크기의 부행렬에 대한 상기 Z 값과 비교하는 단계와, 상기 펑쳐링된 비트의 수가 상기 Z 값보다 작거나 같으면, 상기 탐색한 두 체크 노드 별로 각 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하여, 상기 펑쳐링된 비트에 대한 상기 두 LLR 후보 값의 부호를 각각 결정하는 단계, 및 상기 두 체크 노드 별로 상기 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들 중 최소 크기의 값을 선택하여 상기 두 LLR 후보 값의 크기를 각각 결정하는 단계를 포함할 수 있다.
또한, 상기 펑쳐링된 비트의 LLR 값을 복원하는 단계는, 상기 부호 및 크기가 결정된 두 LLR 후보 값을 더한 후 기 설정된 임의의 제1 상수를 곱한 값을 상기 펑쳐링된 비트의 LLR 값으로 복원할 수 있다.
또한, 상기 펑쳐링된 비트에 대한 LLR 후보값을 각각 획득하는 단계는, 상기 펑쳐링된 비트의 수가 상기 Z 값보다 큰 경우, 단일의 체크 노드 상에 두 개의 펑쳐링된 비트가 연결된 중복 펑쳐링 구간이 적어도 하나의 체크 노드 상에 발생하며, 상기 중복 펑쳐링 구간 상의 제1 체크 노드에 연결되어 있는 제1 및 제2 펑쳐링 비트 중에서 상기 제1 펑쳐링 비트와 동일한 비트 노드에 연결되며 상기 중복 펑쳐링 구간 밖에 존재하는 제2 체크 노드를 탐색하고, 상기 제2 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제1 펑쳐링 비트에 대한 상기 제2 체크 노드 상의 LLR 후보 값인 제1 LLR 후보 값을 획득하는 단계와, 상기 제2 펑쳐링 비트와 동일한 비트 노드에 연결되며 상기 중복 펑쳐링 구간 밖에 존재하는 제3 체크 노드를 탐색하고, 상기 제3 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제2 펑쳐링 비트에 대한 상기 제3 체크 노드 상의 LLR 후보 값인 제2 LLR 후보 값을 획득하는 단계와, 상기 제1 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들과 상기 제1 및 제2 LLR 후보 값의 부호 간을 모두 XOR 연산한 결과값을 획득하는 단계와, 상기 결과값이 0이면, 상기 제1 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제3 LLR 후보 값을 상기 제1 LLR 후보 값에 임의의 제2 상수를 곱한 값으로 결정하고, 상기 제2 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제4 LLR 후보 값을 상기 제2 LLR 후보 값에 상기 제2 상수를 곱한 값으로 결정하는 단계를 포함할 수 있다.
또한, 상기 펑쳐링된 비트의 LLR 값을 복원하는 단계는, 상기 제1 및 제3 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제1 펑쳐링 비트의 LLR 값으로 복원하고, 상기 제2 및 제4 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제2 펑쳐링 비트의 LLR 값으로 복원할 수 있다.
여기서, 상기 펑쳐링된 비트에 대한 LLR 후보값을 각각 획득하는 단계는, 상기 결과값이 1이면, 상기 제1 및 제2 LLR 후보 값의 절대 값을 비교한 후 상기 절대 값이 작은 LLR 후보 값의 부호를 변경하여 상기 제3 및 제4 LLR 후보 값을 결정할 수 있다.
또한, 상기 펑쳐링된 데이터의 디펑쳐링 방법은, 상기 각 비트에 대응하여 최초 획득된 LLR 값과, 상기 펑쳐링된 비트의 복원된 LLR 값을 결합하여 상기 LDPC 부호화 신호를 디코딩하는 단계를 더 포함할 수 있다.
그리고, 본 발명은, 복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링(Puncturing)된 LDPC 부호화 신호를 수신하는 신호 수신부와, 상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색하는 노드 탐색부와, 상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 LLR 후보값 획득부, 및 상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원하는 LLR 복원부를 포함하는 LDPC 복호기를 제공한다.
본 발명에 따른 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 따르면, LDPC 복호 시스템에서 펑쳐링되지 않은 데이터의 신뢰도를 이용하여 펑쳐링된 데이터를 디펑쳐링함에 따라 복호 성능을 높일 수 있는 이점이 있다.
도 1은 IEEE 802.11n 표준에서 Z×Z 크기의 단위행렬을 부행렬로 사용하는 패러티 검사 행렬를 나타낸 도면이다.
도 2는 도 1에 도시된 패리티 검사 행렬에서 H2 행렬만을 나타낸 도면이다.
도 3은 본 발명의 실시예에서 펑쳐링된 비트의 수가 Z 값보다 작은 경우 도 2의 원소에 Z×Z 행렬을 삽입하여 표현한 도면이다.
도 4는 본 발명의 실시예에서 펑쳐링된 비트의 수가 Z 값보다 큰 경우 도 2의 원소에 Z×Z 행렬을 삽입하여 표현한 도면이다.
도 5는 본 발명의 실시예에 따른 LDPC 복호기의 구성도이다.
도 6은 도 5에 도시된 LDPC 복호기를 이용한 펑쳐링된 데이터의 디펑쳐링 방법의 흐름도이다.
도 7 및 도 8은 각각 도 3 및 도 4의 실시예의 경우 펑쳐링된 비트의 복원 방법을 설명하는 도면이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
본 발명은 LDPC 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 관한 것으로, LDPC(Low Density Parity Check) 복호 시스템에서 펑쳐링(Puncturing) 되지 않은 데이터의 신뢰도를 이용하여 펑쳐링된 데이터를 디펑쳐링(De-Puncturing)하는 기법을 개시한다.
일반적으로, LDPC 부호화 과정에서는 부호화된 데이터를 펑쳐링하는 과정이 수반된다. 이는 부호화 데이터를 구성하는 비트 수를 OFDM 심볼을 구성하는 데이터의 비트 수와 맞추기 위한 것이다. LDPC 부호화 신호는 복수의 데이터 비트들과 그에 대응하는 패리티(Parity) 비트들로 구성되는데, 펑쳐링 과정은 각 비트들 중에서 일부 패리티 비트를 비워서 처리한다.
송신단은 전송하고자 하는 신호를 LDPC 신호를 부호화하여 전송하며, 수신단에서는 이를 수신하여 복호화한다. 본 발명의 실시예는 수신단에서 상기 LDPC 부호화된 신호를 수신하여 복호화하기 이전에, LDPC 부호화 신호에 포함된 펑쳐링된 데이터를 복원하여 디펑쳐링하는 기술을 제공한다.
이하에서는 본 발명의 상세한 설명에 앞서, IEEE 802.11n에서 사용하는 패리티 검사 행렬에 관하여 먼저 설명한다.
도 1은 IEEE 802.11n 표준에서 Z×Z 크기의 단위행렬을 부행렬로 사용하는 패러티 검사 행렬를 나타낸 도면이다. 패러티 검사 행렬은 사용되는 부호율(rate) 및 단위행렬의 크기에 대응하여 구성된다. 도 1은 부호율이 1/2인 경우의 패러티 검사 행렬을 예시한 것이다.
패리티 검사 행렬 H는 데이터(Data) 구간에 해당하는 H1 행렬 및 패리티(Parity) 구간에 해당하는 H2 행렬로 구성된다. 여기서 H2 행렬은 이중 대각 형태를 가지는 것을 알 수 있다.
도 1에 도시된 H1 행렬 및 H2 행렬 모두 Z×Z 크기의 단위행렬인 부행렬의 쉬프트 횟수 값을 원소 값으로 한다. 예를 들어, 도 1의 (a)와 같이 패러티 검사 행렬 내에서 원소 값이 '-'인 것은 null 상태의 부행렬을 의미하는 것으로서 Z×Z 크기의 영행렬을 의미한다. 또한, 도 1의 (b)와 같이 패러티 검사 행렬 내에서 원소 값이 '1'인 것은 Z×Z 크기의 단위행렬을 오른쪽으로 1회 쉬프트 한 형태의 행렬을 나타낸다. 그리고 원소 값이 '0'인 것은 쉬프트를 가하지 않은 것으로서 도 1의 (c)와 같이 Z×Z 크기의 단위행렬 그 자체를 의미한다. 참고로, Z×Z 크기의 단위행렬에서의 쉬프트 횟수 값은 0 내지 Z-1의 범위를 가진다.
IEEE 802.11n에서 사용되는 Z-bit는 27, 54, 81로서 총 3 가지이며, 부호율은 1/2, 2/3, 3/4, 5/6로서 총 4 가지이다. 도 1의 경우 데이터 구간과 패리티 구간의 비율이 같기 때문에 부호율이 1/2인 경우이다.
따라서 802.11n에서 사용되는 H 패리티 검사 행렬의 종류는 3×4 = 12 가지가 된다. 12개 중 하나의 행렬인 도 1의 패리티 검사 행렬은 Z-bit=27, rate=1/2의 행렬을 나타낸다. Z=27이므로 도 1의 패리티 검사 행렬을 구성하는 각각의 부행렬은 27×27 크기의 행렬을 나타낸다.
각각의 부행렬 내에서 원소 값이 1인 것은 해당 원소 위치와 매핑되는 비트 노드와 체크 노드 간이 서로 연결된 것을 의미한다. 도 1에서 패리티 검사 행렬의 열의 수는 24개인데 그 중에서 데이터 구간의 열은 12개, 패리티 구간의 열은 12개이다. 또한 패리티 검사 행렬의 행의 수는 12개이다. 패리티 검사 행렬의 부행렬에 Z=27을 적용하여 패러티 검사 행렬을 펼치면, 패리티 검사 행렬은 총 648개(=24×27)의 열과 324개(=12×27)의 행으로 구성된다. 물론 이러한 경우 비트 노드의 개수는 648개, 체크 노드의 개수는 324개가 된다.
이와 같이 패리티 검사 행렬이 펼쳐진 상태에서 모든 원소는 0 또는 1의 값을 가진다. 원소가 1인 경우 그에 대응하는 위치의 비트 노드와 체크 노드 간이 연결된 것을 의미하고 반대로 원소가 0이면 그에 대응하는 위치의 비트 노드와 체크 노드 간이 연결되지 않은 것을 의미한다.
앞서와 같이 열의 개수에 대응하는 비트 노드의 개수는 총 648개인데, 도 1의 경우 데이터 구간에 해당하는 324개의 비트 노드(B1 내지 B324)와, 패리티 구간에 해당하는 324개의 비트 노드(P1 내지 P324)를 포함하게 된다. 그리고 도 1에서 행의 개수에 대응하는 체크 노드는 총 324개(CN1 내지 CN324)가 된다.
물론, 이러한 패리티 검사 행렬에 대응하여, 데이터 구간에 해당하는 데이터 비트의 수는 12×27 = 324개, 패리티 구간에 해당하는 패리티 비트의 수는 12×27 = 324개가 된다. 전체 비트의 수는 총 648개이다.
그런데, 실제로 이러한 패리티 검사 행렬에 기반하여 실제로 전송하고자 하는 데이터를 LDPC 부호화하여 전송할 때에는 데이터 구간의 비트들은 모두 전송하지만 패리티 구간의 일부 패리티 비트는 펑쳐링하여 전송한다. 그 이유는 앞서 설명한 바 있다.
예를 들어, 1/2의 부호율에 따라 324개 데이터 비트에 대해 그와 동일한 개수의 324개의 패리티 비트가 필요하지만, OFDM 심볼의 구성에 필요한 전체 비트 수가 624 비트라 가정한다면, 이 조건에 맞추기 위해 상기 324개의 패리터 비트 중 마지막 24개의 패리티 비트(P301~P324 구간)는 펑쳐링하여 전송한다.
이에 따라 일부 패리터 비트가 펑쳐링된 LDPC 부호화된 신호가 수신단에 수신되게 된다. 그런데, 수신단 입장에서는 펑쳐링되지 않은 624개 비트에 대응하는 비트 노드인 B1~B324 및 P1~P300 구간의 LLR(Log Likelihood Ratio) 값은 획득할 수 있지만, 펑쳐링된 패러티 비트에 대응하는 비트 노드인 P301~P324 구간의 LLR 값들은 전혀 알 수 없다. 즉, 324개의 패리터 비트 중 마지막 24개의 패리티 비트에 대응하는 LLR 값은 수신단에서 획득이 불가한 미지의 값이 된다.
이러한 경우, 기존에는 펑쳐링된 P301~P304 구간에 대응하는 미지의 패러티 비트를 단순히 0의 값으로 채워서 LDPC 부호화 신호를 복호화하는 방법을 사용하였으나, 이 방법은 복호의 성능을 저하시키고 오류를 발생시키는 문제점이 있었다.
이에 반면, 본 발명의 실시예에 따르면, 펑쳐링되지 않은 구간(B1~B324, P1~P300)에서 얻어진 신뢰성 있는 LLR 값들을 이용하여 펑쳐링된 구간(P301~P324)의 데이터를 복원할 수 있어서, 추후 복호화 과정에서 데이터의 복호 성능 및 신뢰성을 높일 수 있다.
앞서의 예시에서 펑쳐링된 구간을 P301~P324로 특정한 것은 설명의 편의를 위해 제안한 단순 예시에 불과한 것이다. 또한 본 발명의 실시예에서 부행렬을 구성하는 Z의 값과 패리티 검사 행렬의 부호율은 반드시 도 1에 도시된 것으로 한정되지 않으며 더욱 다양한 실시예가 적용될 수 있음은 물론이다.
이하에서는 패리티 검사 행렬(parity check matrix)에 관하여 더욱 상세히 설명한다. 패리티 검사 행렬은 각 행과 열에 '1'의 수가 매우 적은 행렬로서, 비트 노드(variable nod), 체크 노드(check node), 그리고 이들을 연결하는 가지로 구성된 팩터 그래프(factor graph)에 의해 그 구조가 정의될 수 있으며 이는 일반적인 내용에 해당된다.
도 1에 도시된 패리티 체크 행렬은 총 24열과 12행으로 구성되어 있다. 앞서와 같이 Z=27인 경우 비트 노드는 24×27=648개(B1~B324, P1~P324), 체크 노드는 12×27=324개(CH1~CH324)가 존재하게 된다. 비트 노드와 체크 노드 간의 연결 관계는 상술한 바와 같이 Z×Z 크기의 부행렬 내의 원소 값을 통하여 알 수 있다. 원소 값이 1이면 해당 원소 지점과 매핑되는 비트 노드와 체크 노드 간이 서로 연결되어 있는 것을 의미한다.
도 2는 도 1에 도시된 패리티 검사 행렬에서 H2 행렬만을 나타낸 도면이다. 패리티 구간의 행렬은 도 2와 같이 이중 대각 형태를 가지는 것을 알 수 있다. 물론 H2 행렬에서 '1'의 값으로 표시된 부행렬은 도 1에서 (b)와 같은 형태로 펼쳐질 것이고, '0'의 값으로 표시된 부행렬은 (c)와 같은 형태로 펼쳐질 것이며, '-'의 값으로 표시된 부행렬은 (a)와 같은 영행렬 형태로 펼쳐질 것이다.
본 발명의 실시예는 복수의 패리티 비트들 중에서 펑쳐링된 비트의 수가 Z 값보다 작거나 같은 경우, 그리고 큰 경우에 대한 두 가지 실시예로 구분된다.
만일 펑쳐링된 비트의 수가 Z 값(ex, Z=27)보다 작다면, 도 2의 H2 행렬에서 마지막 열을 구성하는 27개의 비트 노드 중에서 상기 펑쳐링된 비트의 수만큼의 비트 노드에 대해서는 LLR 값을 알 수 없게 된다.
도 3은 본 발명의 실시예에서 펑쳐링된 비트의 수가 Z 값보다 작은 경우 도 2의 원소에 Z×Z 행렬을 삽입하여 표현한 도면이다. 이하에서는 설명의 편의를 위하여 Z=8인 것을 예시로 한다. 실질적으로 Z=8인 것은 존재하지 않으나 단지 설명의 편의를 위한 것임을 이해하여야 한다.
도 3의 (a)는 패리티 구간에 해당하는 H2 행렬을 나타낸다. 여기서, Z=8일 때 도 3의 (a)에서 박스 표시 영역은 (b)와 같이 확장된 형태로 표현될 수 있다. 도 3의 (b)에서 원소 값이 공백으로 되어 있는 부분은 원소 값이 0인 부분으로서 설명의 편의를 위해 0의 기재를 생략하여 나타낸 것이다.
도 3의 (a)에서 박스 영역 안에는 값이 '0'인 것이 3개가 존재하고 '-'인 것이 1개 존재하는데, 값이 '0'인 부행렬은 우측의 (b)와 같이 8×8 크기의 단위 행렬로 나타내어지며, 값이 '-'인 부행렬은 모든 원소가 0의 값을 가지는 8×8 크기의 영행렬로 나타내어진다.
도 3은 Z=8이고, 펑쳐링된 패리티 비트의 수=5인 경우로서, 이와 같이 '펑쳐링된 패리티 비트의 수(=5) < Z(=8)'인 경우에는 도 3의 (b)에서 최우측의 마지막 5개의 비트 노드에 대한 LLR 값은 수신단에서 알 수 없게 된다.
본 발명의 실시예의 경우, 이처럼 알 수 없는 값들에 대해서는 펑쳐링되지 않은 데이터(도 3의 (b)에서 점선을 기준으로 좌측에 존재하는 음영 구간 상의 데이터)를 통해 구할 수 있다. 여기서 음영 구간은 설명의 편의상 일부만 표시한 것이며, 실질적으로는 H2 행렬(패리티 구간 행렬)의 좌측에 존재하는 미도시된 H1 행렬(데이터 구간 행렬)의 첫째 비트 노드(B1)까지 연장된 영역을 의미한다. 따라서 연장된 영역까지의 존재하는 모든 LLR 값들을 이용하게 된다.
도 3의 (b)에서, 펑쳐링된 5개의 비트의 복원에 이용되는 유의미한 구간은 두 개이며 5×5 크기의 붉은 색 박스로 각각 표시되어 있다. 여기서 점선 영역을 기준으로 우측의 모든 5개 열의 구간은 펑쳐링된 5개 비트에 대응하는 구간이지만 실질적으로 원소 값이 0만 존재하는 구간은 비트 간의 연결이 없는 무의미한 구간이기 때문에 이들 영역을 제외하면 유의미한 구간은 도 3의 (b)와 같이 두 개의 박스 영역으로 간소화될 수 있다. 이러한 박스 영역의 좌측에 위치한 음영 구간 상의 모든 비트들의 LLR 값을 이용하면 그 우측의 펑쳐링된 비트의 내용을 복원할 수 있다. 물론 도 3에서 '펑쳐링된 비트의 수 = Z'인 경우에는 두 박스 영역은 공백 없이 서로 접하며 각각은 8×8 크기가 될 것이다.
도 3의 경우와 달리, 만일 패리티 비트들 중에서 펑쳐링된 패리티 비트의 수가 Z 값보다 큰 경우에는 미지의 LLR 값이 더욱 많아지게 될 것이다. 도 4는 본 발명의 실시예에서 펑쳐링된 비트의 수가 Z 값보다 큰 경우 도 2의 원소에 Z×Z 행렬을 삽입하여 표현한 도면이다.
도 4의 (a)는 패리티 구간에 해당하는 H2 행렬을 나타낸다. 여기서, Z=8일 때 도 4의 (a)에서 박스 표시 영역은 (b)와 같이 확장된 형태로 표현될 수 있다. 도 4의 (b)에서 또한 원소 값이 공백으로 되어 있는 부분은 설명의 편의를 위해 0의 기재를 생략한 것이다.
도 4은 Z=8이고, 펑쳐링된 패리티 비트의 수=13인 경우를 예시한 것이다. 이와 같이 '펑쳐링된 패리티 비트의 수(=13) > Z(=8)'인 경우에는 도 4의 (b)에서 최우측의 마지막 13(=8+5)개의 비트 노드에 대한 LLR 값은 수신단에서 알 수 없게 된다.
본 발명의 실시예의 경우, 이처럼 알 수 없는 값들에 대해서는 펑쳐링되지 않은 데이터(도 4의 (b)에서 점선을 기준으로 좌측에 존재하는 음영 구간 상의 데이터)를 통해 구할 수 있다. 여기서 또한 음영 구간은 미도시되어 있는 맨 좌측의 비트 노드인 B1까지 연장된 영역임을 이해하여야 한다.
도 4의 (b)에서, 펑쳐링된 13개의 비트의 복원에 이용되는 유의미한 구간은 하나의 붉은 색 박스로 표시되어 있다. 여기서 점선 영역을 기준으로 우측의 모든 13개 열의 구간은 펑쳐링된 13개 비트에 대응하는 구간이지만 실질적으로 원소 값이 0만 존재하는 구간은 비트 간의 연결이 없는 무의미한 구간이며 이들 영역을 제외하면 유의미한 구간은 도 4의 (b)와 같은 13×21 크기의 하나의 박스 영역이 된다. 추후 이들 구간은 세 가지 구간으로 구분된다.
이하에서는 상기의 도 3 및 도 4의 두 가지 실시예의 경우를 바탕으로 펑쳐링된 비트의 LLR 값을 복원하는 과정을 설명한다.
도 5는 본 발명의 실시예에 따른 LDPC 복호기의 구성도이고, 도 6은 도 5에 도시된 LDPC 복호기를 이용한 펑쳐링된 데이터의 디펑쳐링 방법의 흐름도이다. 도 5 및 도 6을 참조하면, 본 발명의 실시예에 따른 LDPC 복호기(100)는 신호 수신부(110), 노드 탐색부(120), LLR 후보값 획득부(130), LLR 복원부(140), 디코딩부(150)를 포함한다.
우선, 신호 수신부(110)는 복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링된 LDPC 부호화 신호를 수신한다(S610). 여기서, LDPC 부호화 신호는 앞서와 같이 복수의 데이터 비트들 및 패러티 비트들을 포함하여 구성되며, 패러티 비트들 중에서 적어도 하나의 일부 패러티 비트는 펑쳐링(Puncturing)되어 있다.
다음, 노드 탐색부(120)는 상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색한다(S620).
이후, LLR 후보값 획득부(130)는 상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득한다(S630).
그러면, LLR 복원부(140)는 상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원한다(S640). 이때 두 LLR 후보 값을 합산한 다음 기 설정된 임의의 상수를 곱셈하는 과정을 통하여 펑쳐링된 비트의 LLR 값을 복원할 수 있다.
마지막으로, 디코딩부(150)는 상기 각 비트에 대응하여 최초 획득된 LLR 값과, 상기 펑쳐링된 비트의 복원된 LLR 값을 결합하여 상기 LDPC 부호화 신호를 디코딩한다.
이하에서는 앞서의 도 3 및 도 4의 두 가지 실시예 중에서, 펑쳐링된 비트의 수가 Z 값보다 작은 도 3의 예시에 대하여 먼저 설명한다. 도 3과 같은 예시에서의 펑쳐링된 비트의 복원 방법은 다음과 같다.
도 7은 도 3의 실시예의 경우 펑쳐링된 비트의 복원 방법을 설명하는 도면이다. 도 3은 펑쳐링된 비트는 5개이고 Z 값은 8인 경우로서, 펑쳐링된 비트의 수가 Z 값보다 작은 경우이다.
이와 같이 Z 값이 8인 경우에는 도 1의 패러티 검사 행렬의 24개 열에 대해 총 192개의 비트 노드가 존재하겠지만 이들 모든 비트를 나타내는 것이 불가능하므로 도 7(및 도 8)의 경우 설명의 편의를 위해 비트 노드의 수를 간략하게 표현한 것임을 이해하여야 한다. 또한 설명의 편의를 위해 이하의 도 7 및 도 8에서 패리티 노드를 별도로 P의 기호로 구분하지 않고 B의 기호로 표시하고 있다.
도 7을 참조하면, 펑쳐링된 비트 하나가 2개의 체크 노드와 연결된 것을 확인할 수 있다. 이는 패리티 행렬의 기본적인 구조에 의한 것이다. 펑쳐링 구간은 앞서 설명한 바와 같이 두 개의 박스 구간으로 구분되어 있다. 예를 들어 5개의 펑쳐링된 비트 중 가장 좌측의 펑쳐링 비트는 위쪽 박스 구간의 CN1 및 아래쪽 박스 구간의 CN6과 연결되어 있고, 가장 우측의 펑쳐링 비트는 위쪽 박스 구간의 CN5 및 아래쪽 박스 구간의 CN10과 연결되어 있는 것을 알 수 있다.
본 발명의 실시예에서, 각각의 펑쳐링된 비트에 대응하는 두 LLR 후보값을 획득하는 S630 단계의 과정은 아래의 방법으로 수행한다. 우선, 상기 펑쳐링된 비트의 수를 패리티 검사 행렬을 구성하는 Z×Z 크기의 부행렬에 대한 상기 Z 값과 비교하는 과정을 수행한다.
여기서, 도 7과 같이 펑쳐링된 비트의 수가 상기 Z 값보다 작거나 혹은 같다면, 상기 펑쳐링된 비트마다 탐색한 두 체크 노드 별로 각 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용한다.
더 상세하게는, 탐색한 두 체크 노드 별로 각 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하여, 상기 펑쳐링된 비트에 대한 두 LLR 후보 값의 부호를 각각 결정한다. 또한, 상기 두 체크 노드 별로 상기 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들 중 최소 크기의 값을 선택하여 상기 두 LLR 후보 값의 크기를 각각 결정한다.
이를 더욱 상세히 설명하면 다음과 같다. 도 7에서, 펑쳐링된 5개의 패리티 비트 중에서, 첫 번째 펑쳐링된 비트는 체크 노드 CN1과 CN6에 연결되어 있다. 여기서, 체크 노드 CN1에 연결되어 있는 비트 노드들은 B4, B12, B20, B28이고, 체크 노드 CN6에 연결되어 있는 비트 노드들은 B4, B13, B28이다.
이 중에서 펑쳐링되지 않은 비트에 해당하는 노드는 CN1에서는 B4, B12, B20, 그리고 CN2에서는 B4, B13에 해당되며, 각각에 대한 LLR 값이 존재하기 때문에 이들을 이용하면 펑쳐링된 비트에 해당하는 노드에서의 LLR 값을 연산할 수 있다.
우선, CN1에 연결되어 있는 B4, B12, B20에 대응하는 LLR 값들은 각각 0.3, -0.1, -0.3이며, 이들의 부호 간을 XOR 연산하고, 이들 중 최소 크기를 선택하면, CN1에서의 B28에 대한 LLR 후보 값을 '+0.1'의 값으로 획득할 수 있다.
즉, 0.3, -0.1, -0.3 값의 부호 간을 XOR 연산하면, 0(+) XOR 1(-) XOR 1(-) = 0(+)으로서, 부호는 '+'로 결정된다. 또한, 0.3, -0.1, -0.3 중 최소 크기를 연산하면, min(abs(B4), abs(B12), abs(B20))= 0.1로서, 크기는 '0.1'로 결정된다. 결론적으로 CN1에서의 B28에 대한 LLR 후보 값은 +0.1이 된다.
같은 방법으로, CN6에 연결되어 있는 B4, B13에 대응하는 LLR 값들은 각각 0.3, -0.4이며, 이들의 부호 간을 XOR 연산하고, 이들 중 최소 크기를 선택하면, CN6에서의 B28에 대한 LLR 후보 값을 '-0.3'의 값으로 획득할 수 있다.
즉, 0.3, -0.4 값의 부호 간을 XOR 연산하면, 0(+) XOR 1(-) = 1(-)로서, 부호는 '-'로 결정된다. 또한, 0.3, -0.4 중 최소 크기를 연산하면, min(abs(B4), abs(B13))= 0.3으로서, 크기는 '0.3'으로 결정된다. 결론적으로 CN6에서의 B28에 대한 LLR 후보 값은 '-0.3'이 된다.
이상과 같은 부호의 연산은 동일한 체크 노드 내에서의 모든 비트에 대한 LLR 값들의 부호 간의 XOR 연산 시에 0이 된다는 점을 활용한 것이다. 즉, 하나의 체크 노드 행에 대해 현재 미지의 값은 하나이므로, 하나의 미지의 값을 제외한 나머지 값들의 부호 간의 XOR 연산의 결과는 상기 하나의 미지의 값의 부호와 같아야 전체 부호 간의 XOR 결과가 0이 되게 된다.
다음, 상기 펑쳐링된 비트의 LLR 값을 복원하는 S640 단계는 아래와 같은 방법으로 수행한다. 즉, 상기 부호 및 크기가 결정된 두 LLR 후보 값 즉, +0.1과 -0.3을 더한 다음 기 설정된 임의의 제1 상수(α)를 곱하면 (0.1 + (-0.3))×α=-0.2α가 된다. 이에 따라, 상기 첫 번째 펑쳐링된 비트에 대한 LLR 값을 이 -0.2α 값으로 복원한다.
여기서 상기 α는 실험에 의해 0과 1 사이의 임의의 값으로 선택될 수 있다. 물론 도 7에서 나머지 네 개의 펑쳐링된 비트에 대해 모두 이와 동일한 방법을 수행하면 모든 펑쳐링된 비트에 대한 LLR 값을 복원할 수 있게 된다.
한편, 이와 달리 평처링된 비트의 수가 Z 보다 클 때에는 아래의 방법을 사용한다. 도 8은 도 4의 실시예의 경우 펑쳐링된 비트의 복원 방법을 설명하는 도면이다. 도 8은 펑쳐링된 비트는 13개이고 Z 값은 8인 경우로서, 펑쳐링된 비트의 수가 Z 값보다 큰 경우이다.
도 8의 경우 또한 펑쳐링된 비트 하나가 2개의 체크 노드와 연결된 것을 확인할 수 있다. 다만, 펑쳐링 구간은 세 개의 구간으로 구분된다는 점에서 도 7의 경우와 상이하다. 구간 A와 구간 C는 하나의 체크 노드에 대해 펑쳐링된 비트의 값(미지의 값)이 하나 존재하는 경우로서, 앞서 도 7의 경우와 동일하다.
그런데, 구간 B의 경우는 하나의 체크 노드에 대해 펑쳐링된 비트의 값(미지의 값)이 두 개가 존재하는 경우이다. 이 경우 앞서와 같이 단순히 하나의 체크 노드의 행에서 LLR 값들의 XOR 연산 만으로는 해당 펑쳐링된 비트에 대한 부호를 결정할 수 없게 된다.
이상과 같이 펑쳐링된 비트의 수가 Z 값보다 큰 경우, 단일의 체크 노드 상에 두 개의 펑쳐링된 비트가 연결된 중복 펑쳐링 구간이 적어도 하나의 체크 노드 상에 발생하는 것을 알 수 있다.
이 경우, 각각의 펑쳐링된 비트에 대응하는 두 LLR 후보값을 획득하는 S630 단계의 과정은 아래의 방법으로 수행한다. 우선, 도 8과 같이, 펑쳐링된 비트의 수가 상기 Z 값보다 큰 경우, 단일의 체크 노드 상에 두 개의 펑쳐링된 비트가 연결된 중복 펑쳐링 구간(구간 B)이 적어도 하나의 체크 노드 상에 발생하는 것을 확인할 수 있다.
여기서, 13개의 펑쳐링된 비트 중에서 첫 번째 펑쳐링된 비트는 제1 펑쳐링 비트로 명명한다. 이 제1 펑쳐링 비트는 두 체크 노드 CN1, CN9에 연결되어 있다. 여기서, 체크 노드 CN1에 연결되어 있는 비트 노드들은 B4, B12, B20, B28이고, 체크 노드 CN9에 연결되어 있는 비트 노드들은 B5, B12, B28, B36이다. 펑쳐링 구간 상의 비트 노드(ex, B28, B36)에 대해서는 LLR 값이 존재하지 않기 때문에, 실제 LLR 후보 값의 연산에는 LLR 값이 존재하는 비트 노드들만들 이용함은 앞서 설명한 바 있다.
그런데, 체크노드 CN9의 경우, 연결된 B28, B36 둘다 펑쳐링되어 있기 때문에 값을 결정할 수 없다. 따라서, B28이 연결된 CN1과, B36이 연결된 CN17을 동시에 이용해야 한다.
즉, 상기 첫 번째 펑쳐링된 비트에 대해, 상기 중복 펑쳐링 구간(구간 B) 상의 제1 체크 노드(CN9)에 연결되어 있는 제1 및 제2 펑쳐링 비트(B28,B36) 중에서 상기 제1 펑쳐링 비트(B28)와 동일한 비트 노드에 연결되며 상기 중복 펑쳐링 구간 밖(이 경우, 구간 A)에 존재하는 제2 체크 노드(CN1)를 탐색한다.
그리고, 제2 체크 노드(CN1)에 연결되어 있는 비트 노드(B4, B12, B20)들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여, 제1 펑쳐링 비트(B28)에 대한 제2 체크 노드(CN1) 상의 LLR 후보 값인 제1 LLR 후보 값을 획득한다. 이는 앞서 도 7의 실시예의 경우와 같은 방법으로 연산하는 있다. 이렇게 구한 제1 LLR 후보 값은 -0.5라고 가정한다.
다음, 제2 펑쳐링 비트(B36)와 동일한 비트 노드에 연결되며 중복 펑쳐링 구간 밖(이 경우, 구간 B)에 존재하는 제3 체크 노드(CN17)를 탐색한다.
그리고 상기 제3 체크 노드(CN17)에 연결되어 있는 비트 노드들(B5, B12)에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 제2 펑쳐링 비트(B36)에 대한 제3 체크 노드(CN17) 상의 LLR 후보 값인 제2 LLR 후보 값을 획득한다. 이렇게 구한 제2 LLR 후보 값은 0.3이라고 가정한다.
또한, 제1 체크 노드(CN9)에 연결되어 있는 비트 노드들에 대응하는 LLR 값들과, 상기 제1 및 제2 LLR 후보 값의 부호 간을 모두 XOR 연산한 결과값을 획득한다.
여기서 제1 체크 노드(CN9)에 연결되어 있는 비트 노드들 중에서 LLR 값이 있는 비트 노드는 B5, B12이며, 그에 대응하는 LLR 값은 각각 0.3, -0.1이다.
따라서 B5의 LLR 값(0.3)의 부호(+), B12의 LLR 값(-0.1)의 부호(-), 제1 LLR 후보 값(-0.5)의 부호(-), 제2 LLR 후보 값(0.3)의 부호(+) 간을 XOR 연산하면, (0) XOR (1) XOR (1) XOR (0) = 0이 된다. 여기서 X0R 연산 값이 0이기 때문에 패리티 체크 결과 에러가 발생하지 않은 것을 알 수 있으며, 앞서 구한 값들이 참 값인 것을 알 수 있다.
이와 같이, XOR 결과값이 0이면, 제1 펑쳐링 비트(B28)에 대한 제1 체크 노드(CN9) 상의 LLR 후보 값인 제3 LLR 후보 값을, 앞서 구한 제1 LLR 후보 값(-0.5)에 임의의 제2 상수(β)를 곱한 값으로 결정한다. 이에 따라, CN9 상에서 B28에 대한 LLR 후보 값은 -0.5β가 된다.
같은 방법으로, 제2 펑쳐링 비트(B36)에 대한 제1 체크 노드(CN9) 상의 LLR 후보 값인 제4 LLR 후보 값을, 앞서 구한 제2 LLR 후보 값(0.3)에 제2 상수(β)를 곱한 값으로 결정한다. 이에 따라, CN9 상에서 B36에 대한 LLR 후보 값은 0.3β가 된다. 이 β값 또한 실험에 의해 얻어진 0과 1 사이의 임의의 값을 사용한다.
이후에는, S640 단계를 수행한다. 즉, 앞서와 같은 방법으로, 제1 및 제3 LLR 후보 값(-0.5, -0.5β)을 서로 더한 후 상기 제1 상수(α)를 곱한 값을, 상기 제1 펑쳐링 비트(B28)의 LLR 값으로 복원한다. 즉, B28에 대한 LLR 값은 ((-0.5)+(-0.5β))×α가 된다.
그리고, 제2 및 제4 LLR 후보 값(0.3, 0.3β)을 더한 후 제1 상수(α)를 곱한 값을, 제2 펑쳐링 비트(B36)의 LLR 값으로 복원한다. 즉, B36에 대한 LLR 값은 (0.3+0.3β))×α가 된다.
그런데, 만일 앞서, XOR 결과 값이 0이 아닌 1이 경우에는 에러가 있다는 것을 나타내므로, 이 경우에는 상기 제1 및 제2 LLR 후보 값의 절대 값을 비교한 후 상기 절대 값이 작은 LLR 후보 값의 부호를 변경한 후, 앞서와 동일한 방법으로 상기 제3 및 제4 LLR 후보 값을 결정하면 된다.
예를 들어, 제1 LLR 후보 값은 -0.5가 아닌 0.5였다고 가정한다면, XOR 연산 결과가 1이 되어 에러가 발생하게 된다. 이 경우, 제1 및 제2 LLR 후보 값(-0.5, 0.3)의 절대 값을 비교하여 더 작은 쪽인 제2 LLR 후보 값(0.3)의 부호를 바꾸어 -0.3으로 변경한다. 즉, 제2 LLR 후보 값은 -0.3으로 변경된다.
이 경우, CN9의 B28은 0.5β, B36은 -0.3β가 되므로, 최종 B28은 (0.5+0.5β)×α가 되고, 최종 B36은 (0.3+(-0.3β))×α가 된다.
이와 같은 방법으로 모든 펑쳐링된 비트들에 대해 LLR 값들의 복원 과정을 동일한 방법으로 수행하면 된다. 즉, CN10~CN13에 대해서도 동일한 방법을 사용하여 구간 B에서의 각 위치의 LLR 후보 값을 구하면 되고, 구간 B에서 구하여진 LLR 후보 값과, 구간 A 또는 구간 C 내에서 구해진 동일한 열에 존재하는 LLR 후보 값을 서로 조합하여 해당 열에 대응하는 펑쳐링 비트의 LLR 값을 복원하면 된다. 그리고 모든 펑쳐링된 비트들에 대한 LLR 값들이 복원된 이후에는, 전체 수신한 LDPC 부호화 데이터에 대한 디코딩 과정을 수행하면 된다.
이상과 같은 본 발명의 실시예에 따르면, LDPC 복호화 전 디펑처링 과정에서 펑처링 되지 않은 신뢰도 높은 데이터를 이용하여 펑처링된 데이터를 0이 아닌 값으로 채워, 복호화 과정인 패리티 체크 과정에서 임의의 값(0의 값)을 채워서 발생하는 오류를 줄일 수 있다. 이러한 본 발명에 따르면, LDPC 복호 시스템에서 펑쳐링되지 않은 데이터의 신뢰도를 이용하여 펑쳐링된 데이터를 디펑쳐링함에 따라 복호 성능을 높일 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100: LDPC 복호기 110: 신호 수신부
120: 노드 탐색부 130: LLR 후보값 획득부
140: LLR 복원부 150: 디코딩부

Claims (14)

  1. LDPC 복호기를 이용한 펑쳐링된 데이터의 디펑쳐링 방법에 있어서,
    복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링(Puncturing)된 LDPC 부호화 신호를 수신하는 단계;
    상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색하는 단계;
    상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 단계; 및
    상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원하는 단계를 포함하며,
    상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 단계는,
    상기 펑쳐링된 비트의 수를 상기 패리티 검사 행렬을 구성하는 Z×Z 크기의 부행렬에 대한 상기 Z 값과 비교하는 단계;
    상기 펑쳐링된 비트의 수가 상기 Z 값보다 작거나 같으면, 상기 탐색한 두 체크 노드 별로 각 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하여, 상기 펑쳐링된 비트에 대한 상기 두 LLR 후보 값의 부호를 각각 결정하는 단계; 및
    상기 두 체크 노드 별로 상기 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들 중 최소 크기의 값을 선택하여 상기 두 LLR 후보 값의 크기를 각각 결정하는 단계를 포함하는 펑쳐링된 데이터의 디펑쳐링 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 펑쳐링된 비트의 LLR 값을 복원하는 단계는,
    상기 부호 및 크기가 결정된 두 LLR 후보 값을 더한 후 기 설정된 임의의 제1 상수를 곱한 값을 상기 펑쳐링된 비트의 LLR 값으로 복원하는 펑쳐링된 데이터의 디펑쳐링 방법.
  4. 청구항 3에 있어서,
    상기 펑쳐링된 비트에 대한 LLR 후보값을 각각 획득하는 단계는,
    상기 펑쳐링된 비트의 수가 상기 Z 값보다 큰 경우, 단일의 체크 노드 상에 두 개의 펑쳐링된 비트가 연결된 중복 펑쳐링 구간이 적어도 하나의 체크 노드 상에 발생하며,
    상기 중복 펑쳐링 구간 상의 제1 체크 노드에 제1 및 제2 펑쳐링 비트가 연결되어 있으며,
    상기 중복 펑쳐링 구간의 외부에서 상기 제1 펑쳐링 비트와 동일한 비트 노드에 연결되어 있는 제2 체크 노드를 탐색하고, 상기 제2 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제1 펑쳐링 비트에 대한 상기 제2 체크 노드 상의 LLR 후보 값인 제1 LLR 후보 값을 획득하는 단계;
    상기 중복 펑쳐링 구간의 외부에서 상기 제2 펑쳐링 비트와 동일한 비트 노드에 연결되어 있는 제3 체크 노드를 탐색하고, 상기 제3 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제2 펑쳐링 비트에 대한 상기 제3 체크 노드 상의 LLR 후보 값인 제2 LLR 후보 값을 획득하는 단계;
    상기 제1 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들과 상기 제1 및 제2 LLR 후보 값의 부호 간을 모두 XOR 연산한 결과값을 획득하는 단계;
    상기 결과값이 0이면, 상기 제1 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제3 LLR 후보 값을 상기 제1 LLR 후보 값에 임의의 제2 상수를 곱한 값으로 결정하고, 상기 제2 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제4 LLR 후보 값을 상기 제2 LLR 후보 값에 상기 제2 상수를 곱한 값으로 결정하는 단계를 포함하는 펑쳐링된 데이터의 디펑쳐링 방법.
  5. 청구항 4에 있어서,
    상기 펑쳐링된 비트의 LLR 값을 복원하는 단계는,
    상기 제1 및 제3 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제1 펑쳐링 비트의 LLR 값으로 복원하고, 상기 제2 및 제4 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제2 펑쳐링 비트의 LLR 값으로 복원하는 펑쳐링된 데이터의 디펑쳐링 방법.
  6. 청구항 5에 있어서,
    상기 펑쳐링된 비트에 대한 LLR 후보값을 각각 획득하는 단계는,
    상기 결과값이 1이면, 상기 제1 및 제2 LLR 후보 값의 절대 값을 비교한 후 상기 제1 및 제2 LLR 후보 값 중에서 상기 절대 값이 작은 어느 하나의 LLR 후보 값의 부호를 변경한 후, 상기 제3 LLR 후보 값을 상기 제1 LLR 후보 값에 임의의 제2 상수를 곱한 값으로 결정하고, 상기 제4 LLR 후보 값을 상기 제2 LLR 후보 값에 상기 제2 상수를 곱한 값으로 결정하는 펑쳐링된 데이터의 디펑쳐링 방법.
  7. 청구항 1에 있어서,
    상기 각 비트에 대응하여 최초 획득된 LLR 값과, 상기 펑쳐링된 비트의 복원된 LLR 값을 결합하여 상기 LDPC 부호화 신호를 디코딩하는 단계를 더 포함하는 펑쳐링된 데이터의 디펑쳐링 방법.
  8. 복수의 데이터 비트 및 패리티 비트를 포함하며 일부 패리티 비트가 펑쳐링(Puncturing)된 LDPC 부호화 신호를 수신하는 신호 수신부;
    상기 LDPC 부호화 신호에 대응하는 패리티 검사 행렬이 가지는 M개의 비트 노드와 N개의 체크 노드 간의 연결 관계를 바탕으로, 펑쳐링된 구간 상의 펑쳐링된 비트와 연결되어 있는 두 체크 노드를 상기 펑쳐링된 비트 별로 탐색하는 노드 탐색부;
    상기 M개의 비트 노드 중 상기 탐색한 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들을 이용하여 상기 두 체크 노드 상에서 상기 펑쳐링된 비트에 대한 두 LLR 후보값을 획득하는 LLR 후보값 획득부; 및
    상기 획득한 두 LLR 후보 값을 조합하여 상기 펑쳐링된 비트의 LLR 값을 복원하는 LLR 복원부를 포함하며,
    상기 LLR 후보값 획득부는,
    상기 펑쳐링된 비트의 수를 상기 패리티 검사 행렬을 구성하는 Z×Z 크기의 부행렬에 대한 상기 Z 값과 비교하고,
    상기 펑쳐링된 비트의 수가 상기 Z 값보다 작거나 같으면, 상기 탐색한 두 체크 노드 별로 각 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하여, 상기 펑쳐링된 비트에 대한 상기 두 LLR 후보 값의 부호를 각각 결정한 후,
    상기 두 체크 노드 별로 상기 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들 중 최소 크기의 값을 선택하여 상기 두 LLR 후보 값의 크기를 각각 결정하는 LDPC 복호기.
  9. 삭제
  10. 청구항 8에 있어서,
    상기 LLR 복원부는,
    상기 부호 및 크기가 결정된 두 LLR 후보 값을 더한 후 기 설정된 임의의 제1 상수를 곱한 값을 상기 펑쳐링된 비트의 LLR 값으로 복원하는 LDPC 복호기.
  11. 청구항 10에 있어서,
    상기 LLR 후보값 획득부는,
    상기 펑쳐링된 비트의 수가 상기 Z 값보다 큰 경우, 단일의 체크 노드 상에 두 개의 펑쳐링된 비트가 연결된 중복 펑쳐링 구간이 적어도 하나의 체크 노드 상에 발생하며,
    상기 중복 펑쳐링 구간 상의 제1 체크 노드에 제1 및 제2 펑쳐링 비트가 연결되어 있으며,
    상기 중복 펑쳐링 구간의 외부에서 상기 제1 펑쳐링 비트와 동일한 비트 노드에 연결되어 있는 제2 체크 노드를 탐색하고, 상기 제2 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제1 펑쳐링 비트에 대한 상기 제2 체크 노드 상의 LLR 후보 값인 제1 LLR 후보 값을 획득하는 제1 과정과,
    상기 중복 펑쳐링 구간의 외부에서 상기 제2 펑쳐링 비트와 동일한 비트 노드에 연결되어 있는 제3 체크 노드를 탐색하고, 상기 제3 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들의 부호 간을 XOR 연산하고 해당 LLR 값들의 최소 크기 값을 선택하여 상기 제2 펑쳐링 비트에 대한 상기 제3 체크 노드 상의 LLR 후보 값인 제2 LLR 후보 값을 획득하는 제2 과정과,
    상기 제1 체크 노드에 연결되어 있는 비트 노드들에 대응하는 LLR 값들과 상기 제1 및 제2 LLR 후보 값의 부호 간을 모두 XOR 연산한 결과값을 획득하는 제3 과정과,
    상기 결과값이 0이면, 상기 제1 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제3 LLR 후보 값을 상기 제1 LLR 후보 값에 임의의 제2 상수를 곱한 값으로 결정하고, 상기 제2 펑쳐링 비트에 대한 상기 제1 체크 노드 상의 LLR 후보 값인 제4 LLR 후보 값을 상기 제2 LLR 후보 값에 상기 제2 상수를 곱한 값으로 결정하는 제4 과정을 수행하는 LDPC 복호기.
  12. 청구항 11에 있어서,
    상기 LLR 복원부는,
    상기 제1 및 제3 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제1 펑쳐링 비트의 LLR 값으로 복원하고, 상기 제2 및 제4 LLR 후보 값을 더한 후 상기 제1 상수를 곱한 값을 상기 제2 펑쳐링 비트의 LLR 값으로 복원하는 LDPC 복호기.
  13. 청구항 12에 있어서,
    상기 LLR 후보값 획득부는,
    상기 결과값이 1이면, 상기 제1 및 제2 LLR 후보 값의 절대 값을 비교한 후 상기 제1 및 제2 LLR 후보 값 중에서 상기 절대 값이 작은 어느 하나의 LLR 후보 값의 부호를 변경한 후, 상기 제3 LLR 후보 값을 상기 제1 LLR 후보 값에 임의의 제2 상수를 곱한 값으로 결정하고, 상기 제4 LLR 후보 값을 상기 제2 LLR 후보 값에 상기 제2 상수를 곱한 값으로 결정하는 LDPC 복호기.
  14. 청구항 8에 있어서,
    상기 각 비트에 대응하여 최초 획득된 LLR 값과, 상기 펑쳐링된 비트의 복원된 LLR 값을 결합하여 상기 LDPC 부호화 신호를 디코딩하는 디코딩부를 더 포함하는 LDPC 복호기.
KR1020150035901A 2015-03-16 2015-03-16 Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법 KR101598754B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150035901A KR101598754B1 (ko) 2015-03-16 2015-03-16 Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150035901A KR101598754B1 (ko) 2015-03-16 2015-03-16 Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법

Publications (1)

Publication Number Publication Date
KR101598754B1 true KR101598754B1 (ko) 2016-03-02

Family

ID=55582640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150035901A KR101598754B1 (ko) 2015-03-16 2015-03-16 Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법

Country Status (1)

Country Link
KR (1) KR101598754B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017217829A1 (ko) * 2016-06-17 2017-12-21 엘지전자 주식회사 하향링크 신호 수신 방법 및 사용자기기와, 하향링크 신호 전송 방법 및 기지국
US11671120B2 (en) 2015-11-12 2023-06-06 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US11831332B2 (en) 2016-06-14 2023-11-28 Qualcomm Incorporated High performance, flexible, and compact low-density parity-check (LDPC) code
USRE49989E1 (en) 2017-06-10 2024-05-28 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476049B1 (ko) * 2013-08-28 2014-12-23 세종대학교산학협력단 Ldpc 복호 시스템을 이용한 펑쳐링된 데이터의 복원 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476049B1 (ko) * 2013-08-28 2014-12-23 세종대학교산학협력단 Ldpc 복호 시스템을 이용한 펑쳐링된 데이터의 복원 방법 및 그 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671120B2 (en) 2015-11-12 2023-06-06 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US11831332B2 (en) 2016-06-14 2023-11-28 Qualcomm Incorporated High performance, flexible, and compact low-density parity-check (LDPC) code
US11942964B2 (en) 2016-06-14 2024-03-26 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
WO2017217829A1 (ko) * 2016-06-17 2017-12-21 엘지전자 주식회사 하향링크 신호 수신 방법 및 사용자기기와, 하향링크 신호 전송 방법 및 기지국
US10805913B2 (en) 2016-06-17 2020-10-13 Lg Electronics Inc. Method and user equipment for receiving donwlink signal, method and base station for transmitting downlink signal
US11563609B2 (en) 2016-06-17 2023-01-24 Lg Electronics Inc. Method and user equipment for receiving downlink signal, method and base station for transmitting downlink signal
USRE49989E1 (en) 2017-06-10 2024-05-28 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code

Similar Documents

Publication Publication Date Title
CN111628785B (zh) 使用硬选取硬译码模式下的译码器产生软信息的方法
US6948109B2 (en) Low-density parity check forward error correction
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
EP2768146A2 (en) Apparatus and method for transmitting and receiving data in communication/broadcasting system
KR101598754B1 (ko) Ldpc 복호기 및 그것을 이용한 펑쳐링된 데이터의 디펑쳐링 방법
US8880976B2 (en) Method and apparatus for encoding LBA information into the parity of a LDPC system
EP1798861A1 (en) LDPC encoding through decoding algorithm
KR102506682B1 (ko) 길이가 64800이며, 부호율이 4/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
CN1756090B (zh) 信道编码装置和方法
KR102506681B1 (ko) 길이가 64800이며, 부호율이 7/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR20200087211A (ko) 계단 코드의 디코딩 방법, 장치 및 기억매체
CN111164897B (zh) 广义低密度奇偶校验码
KR20080030329A (ko) 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
US20150256199A1 (en) Data format with ecc information for on-the-fly decoding during data transfer and method for forming the data format
KR101476049B1 (ko) Ldpc 복호 시스템을 이용한 펑쳐링된 데이터의 복원 방법 및 그 장치
KR102500084B1 (ko) 길이가 16200이며, 부호율이 5/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102500053B1 (ko) 길이가 16200이며, 부호율이 2/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102506686B1 (ko) 길이가 64800이며, 부호율이 2/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102513136B1 (ko) 길이가 16200이며, 부호율이 3/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102506683B1 (ko) 길이가 64800이며, 부호율이 3/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102513139B1 (ko) 길이가 16200이며, 부호율이 4/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
KR102506685B1 (ko) 길이가 64800이며, 부호율이 5/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
US20160043741A1 (en) Coding method and device
WO2019234923A1 (ja) 送信装置、受信装置および符号化方法
KR100997668B1 (ko) 채널 코딩 복호방법 및 복호기

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200116

Year of fee payment: 5