KR102547369B1 - 수신 장치 및 그의 디코딩 방법 - Google Patents
수신 장치 및 그의 디코딩 방법 Download PDFInfo
- Publication number
- KR102547369B1 KR102547369B1 KR1020160060804A KR20160060804A KR102547369B1 KR 102547369 B1 KR102547369 B1 KR 102547369B1 KR 1020160060804 A KR1020160060804 A KR 1020160060804A KR 20160060804 A KR20160060804 A KR 20160060804A KR 102547369 B1 KR102547369 B1 KR 102547369B1
- Authority
- KR
- South Korea
- Prior art keywords
- parity
- matrix
- signal
- parity check
- check matrix
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
Abstract
수신 장치가 개시된다. 본 수신 장치는 패리티 검사 행렬의 일부를 이용하여 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 제1 디코더, 중첩 코딩 신호에서 비트들에 대응되는 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성하는 제거부 및 제2 레이어 신호를 통해 전송된 비트들을 디코딩하는 제2 디코더를 포함한다.
Description
본 발명은 수신 장치 및 그의 디코딩 방법에 관한 것으로, 더욱 상세하게는 중첩 코딩에 의해 생성된 신호를 수신하여 처리하는 수신 장치 및 그의 디코딩 방법에 관한 것이다.
21세기 정보화 사회에서 방송 통신 서비스는 본격적인 디지털화, 다채널화, 광대역화, 고품질화의 시대를 맞이하고 있다. 특히 최근에 고화질 디지털 TV 및 PMP, 휴대방송 기기 보급이 확대됨에 따라 디지털 방송 서비스도 다양한 수신방식 지원에 대한 요구가 증대되고 있다.
특히, 수신기가 중첩 코딩에 의해 생성된 신호를 처리하는 경우, 상대적으로 작은 파워를 갖는 인핸스드 레이어(enhanced layer)(또는, 베이스 레이어(base layer))에 대한 신호를 수신하기 위해 상대적으로 큰 파워를 갖는 코어 레이어(core layer)(또는, 상부 레이어(upper layer))에 대한 신호를 먼저 복호화하고 복호된 신호를 사용하여 인핸스드 레이어에 대한 신호를 수신한다.
따라서, 코어 레이어에 대한 신호의 처리 시간이 길어질수록 인핸스드 레이어에 대한 신호의 처리 시간이 길어지게 된다. 예를 들어, 인핸스드 레이어에 대한 신호를 수신하기 위해 코어 레이어에 대한 신호를 디코딩하는데, 코어 레이어에 대한 신호에 대한 디코딩 시간이 길어지는 경우 인핸스드 레이어에 대한 신호의 처리 시간이 길어지게 된다.
이에 따라, 코어 레이어 신호의 디코딩 시간을 감소시켜 효율적으로 중첩 코딩 신호를 처리하기 위한 방안의 모색이 요청된다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 낮은 에러 발생 확률을 가지면서도 코어 레이어 신호에 대한 디코딩 시간을 감소시키기 위해, 패리티 검사 행렬의 일부를 이용하여 코어 레이어 신호를 디코딩하는 수신 장치 및 그의 디코딩 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 중첩 코딩 신호를 수신하여 처리하는 수신 장치는 패리티 검사 행렬의 일부를 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 제1 디코더, 상기 중첩 코딩 신호에서 상기 비트들에 대응되는 상기 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성하는 제거부 및 상기 제2 레이어 신호를 통해 전송된 비트들을 디코딩하는 제2 디코더를 포함한다.
여기에서, 상기 패리티 검사 행렬은 제1 정보어 부분 행렬과 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및, 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성될 수 있다.
또한, 상기 제1 디코더는 상기 제2 패리티 부분 행렬 중 일부가 펑처링된 상기 패리티 검사 행렬을 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호로부터 전송된 비트들을 디코딩할 수 있다.
여기에서, 상기 제1 디코더는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
또한, 상기 제1 디코더는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
그리고, 상기 제1 디코더는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
또한, 상기 제1 디코더는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 상기 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
한편, 본 발명의 일 실시 예에 따른 중첩 코딩 신호를 수신하여 처리하는 수신 장치의 디코딩 방법은 패리티 검사 행렬의 일부를 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계, 상기 중첩 코딩 신호에서 상기 비트들에 대응되는 상기 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성하는 단계 및 상기 제2 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계를 포함한다.
여기에서, 상기 패리티 검사 행렬은 제1 정보어 부분 행렬과 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및, 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성될 수 있다.
또한, 상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는 상기 제2 패리티 부분 행렬 중 일부가 펑처링된 상기 패리티 검사 행렬을 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호로부터 전송된 비트들을 디코딩할 수 있다.
여기에서, 상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
또한, 상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
그리고, 상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
또한, 상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는 상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 상기 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
이러한 본 발명의 다양한 실시 예에 따르면, 코어 레이어 신호에 대한 디코딩 시 패리티 검사 행렬의 일부를 이용한다는 점에서, 낮은 에러 발생 확률을 가지면서도 디코딩 복잡도를 감소시켜, 코어 레이어 신호에 대한 디코딩 시간을 단축 시킬 수 있다.
도 1은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 나타내는 블록도,
도 2는 본 발명의 일 실시 예에 따른 LDPC 코드워드를 나타내는 도면,
도 3은 SCM 방식에 따라 비트들을 처리하는 방법을 설명하기 위한 도면,
도 4는 중첩 코딩 신호에 대한 성상도를 나타내는 도면,
도 5는 본 발명의 일 실시 예에 따른 패리티 검사 행렬의 구조를 설명하기 위한 도면,
도 6은 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도,
도 7 및 도 8은 LDPC 디코딩을 설명하기 위한 도면들,
도 9는 본 발명의 일 실시 예에 따른 수신 장치의 세부 구성을 설명하기 위한 블록도, 그리고
도 10은 본 발명의 일 실시 예에 따른 중첩 코딩 신호를 수신하여 처리하는 수신 장치의 디코딩 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시 예에 따른 LDPC 코드워드를 나타내는 도면,
도 3은 SCM 방식에 따라 비트들을 처리하는 방법을 설명하기 위한 도면,
도 4는 중첩 코딩 신호에 대한 성상도를 나타내는 도면,
도 5는 본 발명의 일 실시 예에 따른 패리티 검사 행렬의 구조를 설명하기 위한 도면,
도 6은 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도,
도 7 및 도 8은 LDPC 디코딩을 설명하기 위한 도면들,
도 9는 본 발명의 일 실시 예에 따른 수신 장치의 세부 구성을 설명하기 위한 블록도, 그리고
도 10은 본 발명의 일 실시 예에 따른 중첩 코딩 신호를 수신하여 처리하는 수신 장치의 디코딩 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다.
본 발명의 일 실시 예에 따른 수신 장치는 LDM(Layered Division Multiplexing)에 따른 SCM(Superposition coded modulation)에 의해 생성된 신호(이하, 중첩 코딩 신호)를 수신하여, 중첩되기 이전의 신호 각각을 복원할 수 있다.
여기에서, SCM은 서로 동일하거나 서로 다른 데이터로 구성된 신호 각각을 서로 다른 파워를 갖도록 중첩(superimpose 또는 overlap)하는 코딩 방식을 의미한다. 이 경우, 중첩 코딩 신호에서 상대적으로 큰 파워를 갖는 신호는 제1 레이어 즉, 코어 레이어를 구성하고, 상대적으로 작은 파워를 갖는 신호는 제2 레이어 즉, 인핸스드 레이어를 구성한다.
한편, 중첩 코딩 신호를 생성하여 전송하는 송신 장치는 도 1과 같은 구성요소를 포함할 수 있다. 다만, 도 1에 도시된 송신 장치(100)는 일 예일 뿐이며, 도 1에 도시된 구성요소의 일부가 생략되거나 다른 처리를 위한 구성요소가 추가로 포함할 수 있음은 물론이다.
도 1을 참조하면, 송신 장치(100)는 제1 인코더(111), 제1 인터리버(112) 및 제1 성상도 맵퍼(또는, 변조부(modulator))(113)를 포함하는 제1 BICM(Bit Interleaved Coded Modulation) 인코더(110)를 구비하여, 정보어 비트들(여기에서, 정보어 비트들은 데이터로, 도 1의 스트림 A에 해당한다)을 인코딩 및 인터리빙하고, 이를 변조하여 성상점들에 맵핑할 수 있다.
그리고, 송신 장치(100)는 제2 인코더(121), 제2 인터리버(122) 및 제2 성상도 맵퍼(123)를 포함하는 제2 BICM 인코더(120)를 구비하여, 정보어 비트들(여기에서, 정보어 비트들은 데이터로, 도 1의 스트림 B에 해당한다)을 인코딩 및 인터리빙하고, 이를 변조하여 성상점들에 맵핑할 수 있다.
이 경우, 제1 및 제2 인코더(111, 121)는 LDPC(Low density parity check) 인코더(미도시)를 포함할 수 있다. 이에 따라, 제1 및 제2 인코더(111, 121)는 정보어 비트들을 LDPC 정보어 비트들로 하여, LDPC 코드를 통해 LDPC 정보어 비트들을 인코딩할 수 있다.
이와 같이 LDPC 코드에 의해 생성된 LDPC 코드워드는 도 2와 같이 나타낼 수 있다. 도 2를 참조하면, LDPC 코드는 LDPC 정보어 비트들에 LDPC 패리티 비트들이 부가된 형태를 가질 수 있다.
한편, LDPC 인코더(미도시)는 다양한 코드 레이트에 따라 LDPC 정보어 비트들을 인코딩하여, 다양한 길이의 LDPC 코드워드를 생성할 수 있다.
예를 들어, LDPC 인코더(미도시)는 3/15, 4/15, 5/15, 6/15, 7/15, 8/15, 9/15, 10/15, 11/15, 12/15, 13/15의 코드 레이트로 LDPC 정보어 비트들을 인코딩하여, 16200 또는 64800의 길이를 갖는 LDPC 코드워드를 생성할 수 있다.
한편, 상술한 예에서는 LDPC 코드를 통해 정보어 비트들을 인코딩하는 것으로 설명하였으나, 이는 일 예에 불과하다.
즉, 제1 및 제2 인코더(111, 121)는 아우터 인코더(미도시) 및 이너 인코더(미도시)를 포함하여, 연접 코드(concatenated code)를 이용하여 정보어 비트들을 인코딩할 수도 있다.
여기에서, 연접 코드에서 이너 코드 이전에 수행되는 아우터 코드(outer code)는 BCH(Bose, Chaudhuri, Hocquenghem), CRC(cyclic redundancy check) 등의 다양한 인코딩 방식이 이용될 수 있고, 이너 코드(inner code)는 LDPC 코드 등의 다양한 인코딩 방식이 이용될 수 있다.
한편, 송신 장치(100)는 게인 컨트롤러(130)를 통해 제2 BICM 인코더(120)에서 출력되는 신호에 대한 게인(즉, 파워)를 조절한 후, 이를 제1 BICM 인코더(110)에서 출력되는 신호와 중첩하여 중첩 코딩 신호를 생성한다.
그리고, 송신 장치(100)는 게인 컨트롤러(140)를 통해 중첩 코딩 신호에 대한 게인을 조절하고, 타임 인터리버(150)를 통해 중첩 코딩 신호가 맵핑된 성상점들 즉, 셀들을 인터리빙한 후, OFDM 송신부(160)를 통해 인터리빙된 셀들을 OFDM 프레임에 맵핑하여 수신 장치(미도시)로 전송할 수 있다.
이 경우, 제1 레이어에 대해서는 (16200, 4320) LDPC 코드 및 QPSK(quadrature phase shift keying) 변조 방식이 이용되고, 제2 레이어에 대해서는 (64800, 43200) LDPC 코드 및 64-QAM(quadrature amplitude modulation) 변조 방식이 이용될 수 있다.
다른 예로, 제1 레이어에 대해서는 (64800, 17280) LDPC 코드 및 QPSK 변조 방식이 이용되고, 제2 레이어에 대해서는 (64800, 38880) LDPC 코드 및 256-QAM 변조 방식이 이용될 수 있다.
한편, 이하에서는 도 3을 참조하여, SCM 방식에 따라 비트들을 처리하는 방법을 설명하도록 한다. 다만, 이는 이미 알려진바 있다는 점에서, 간략히 설명하도록 한다.
이하에서는, 도 3 및 도 4를 참조하여 중첩 코딩 신호를 생성하는 방법을 개략적으로 설명하도록 한다.
도 3과 같이, LDPC 인코더(310-1, 310-2,..., 310-K) 및 성상도 맵퍼(320-1, 320-2,..., 320-K)를 통해 각 레이어를 통해 전송되는 비트들을 LDPC 인코딩 및 변조하여 각 레이어를 통해 전송되는 심볼들을 생성하고, 이들 심볼들을 중첩하여 K 개의 레이어가 중첩된 중첩 코딩 신호를 생성될 수 있다.
한편, 도 4는 각각 QPSK 방식을 통해 변조된 심볼들이 중첩되어 생성된 16-QAM의 중첩 코딩 신호에 대한 성상도를 나타낸다.
예를 들어, 도 4(a) 및 도 4(b)와 같이 각각 I/Q 채널 상으로 성상점들이 m1 및 m2의 거리를 갖도록 QPSK(quadrature phase shift keying) 방식을 통해 변조된 심볼들이 서로 중첩될 수 있다. 이 경우, 상대적으로 큰 파워를 갖는 코어 레이어 신호에 대한 성상점들을 기준으로 상대적으로 갖은 파워를 갖는 인핸스드 레이어 신호에 대한 성성점들이 중첩되게 된다.
이에 따라, 중첩 코딩 신호에 대한 성상도는 도 4(c)와 같이 16-QAM으로 표현될 수 있다.
이 경우, SCM의 총 캐패시티(capacity)는 CTotal=h(yj)-h(nj)과 같이 나타낼 수 있다. 여기에서, h(a)는 a의 differential entropy를 나타낸다. 이에 따라, i 번째 레이어에 대한 캐피시티는 과 같이 나타낼 수 있다.
한편, LDPC 인코딩 과정은 LDPC 정보어 비트들에 대해 HㆍCT=0을 만족하는 LDPC 코드워드를 생성하는 과정이다. 여기에서, H는 패리티 검사 행렬(parity check matrix), C는 LDPC 코드워드를 나타낸다. 즉, LDPC 인코딩 과정은 패리티 검사 행렬의 각 열과 LDPC 코드워드 비트들 각각을 곱한 값들의 합이 '0' 벡터가 되는 패리티 비트들을 생성하는 과정이다.
이에 따라, 송신 장치(100)는 메모리(미도시)를 이용하여 패리티 검사 행렬을 기저장하고 있을 수 있으며, 제1 및 제2 인코더(111, 121)의 LDPC 인코더(미도시)는 패리티 검사 행렬을 이용하여 LDPC 정보어 비트들을 인코딩할 수 있다.
한편, 본 발명의 일 실시 예에 따른 패리티 검사 행렬은 도 5와 같은 구조를 가질 수 있다.
도 5에 도시된 패리티 검사 행렬(10)은 ATSC(Advanced Television System Committee) 3.0 표준에서 정의된 패리티 검사 행렬과 동일한 구조를 갖는 패리티 검사 행렬일 수 있다.
구체적으로, 패리티 검사 행렬(10)은 제1 패리티 검사 행렬(20) 및 제2 패리티 검사 행렬(30)로 구성된다.
여기에서, 제1 패리티 검사 행렬(20)은 제1 정보어 부분 행렬(즉, 행렬 A)(21) 및 제1 패리티 부분 행렬(즉, 행렬 B)(22)을 포함하고, 제2 패리티 검사 행렬(30)은 제2 정보어 부분 행렬(즉, 행렬 C)(31) 및 제2 패리티 부분 행렬(즉, 행렬 D)(32)을 포함한다.
구체적으로, 행렬 A 및 C는 LDPC 정보어 비트들에 대응되는 행렬로, 행렬 A는 K 개의 열과 g 개의 행으로 구성되며, 행렬 C는 K+g 개의 열과 N-k-g 개의 행으로 구성될 수 있다.
여기에서, K는 LDPC 정보어 비트들의 수, N은 LDPC 코드워드 비트들의 수와 같다. 그리고, g는 제1 패리티 비트들 즉, 제1 패리티 부분 행렬(22)에 대응되는 패리티 비트들의 수와 같고, N-k-g는 제2 패리티 비트들 즉, 제2 패리티 부분 행렬(32)에 대응되는 패리티 비트들의 수와 같다.
한편, 행렬 A 및 C에는 다양한 위치에 1이 존재하는데, 이하에서는 표 1을 예로 들어 행렬 A 및 C에서 1이 존재하는 위치를 설명하도록 한다. 한편, 행렬 A 및 C에서 1을 제외한 부분의 원소(entry)는 0이다.
예를 들어, LDPC 코드워드의 길이 N이 16200, 코드 레이트가 4/15인 경우, 행렬 A 및 C에서 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 1에 기초하여 정의될 수 있다. 이 경우, 행렬 A 및 C에서 열의 패턴이 반복되는 간격 즉, 동일한 그룹에 속하는 열의 개수는 360이 될 수 있다.
19 585 710 3241 3276 3648 6345 9224 9890 10841 181 494 894 2562 3201 4382 5130 5308 6493 10135 150 569 919 1427 2347 4475 7857 8904 9903 1005 1018 1025 2933 3280 3946 4049 4166 5209 420 554 778 6908 7959 8344 8462 10912 11099 231 506 859 4478 4957 7664 7731 7908 8980 179 537 979 3717 5092 6315 6883 9353 9935 147 205 830 3609 3720 4667 7441 10196 11809 60 1021 1061 1554 4918 5690 6184 7986 11296 145 719 768 2290 2919 7272 8561 9145 10233 388 590 852 1579 1698 1974 9747 10192 10255 231 343 485 1546 3155 4829 7710 10394 11336 4381 5398 5987 9123 10365 11018 11153 2381 5196 6613 6844 7357 8732 11082 1730 4599 5693 6318 7626 9231 10663 |
한편, 패리티 검사 행렬(10)과 관련된 파라미터로 M1, M2, Q1, Q2가 존재하는데, M1, M2, Q1, Q2는 LDPC 코드워드의 길이 및 부호율에 따라 다양하게 정의될 수 있다. 일 예로, LDPC 코드워드의 길이 N이 16200, 코드 레이트가 4/15인 경우, M1=1080, M2=10800, Q1=3, Q2=30이 될 수 있다.
Q1은 행렬 A에서 동일한 열 그룹 내에 속한 열들이 시클릭 쉬프트(cyclic shift)되는 크기이고, Q2는 행렬 C에서 동일한 동일한 열 그룹 내에 속한 열들이 시클릭 쉬프트되는 크기이다.
그리고, Q1=M1/L, Q2=M2/L, M1=g, M2=N-K-g이고, L은 행렬 A, C 각각에서 열의 패턴이 반복되는 간격으로 일 예로, 360이 될 수 있다.
한편, 행렬 A 및 C에서 1이 위치한 행의 인덱스들은 M1 값에 기초하여 결정될 수 있다.
상술한 예에서, M1=1080이라는 점에서, 행렬 A에서 i 번째 열 그룹의 0 번째 열에서 1이 존재하는 행의 위치는 표 1의 값들 중에서 1080보다 작은 값들에 기초하여 결정될 수 있으며, 행렬 C에서 i 번째 열 그룹의 0 번째 열에서 1이 존재하는 행의 위치는 표 1의 값들 중에서 1080 이상인 값들에 기초하여 결정될 수 있다.
구체적으로, 표 1에서 0 번째 열 그룹에 대응되는 수열은 "19 585 710 3241 3276 3648 6345 9224 9890 10841"이다. 따라서, 행렬 A의 0 번째 열 그룹의 0 번째 열의 경우, 19 번째 행, 585 번째 행, 710 번째 행에 각각 1이 위치할 수 있고, 행렬 C의 0 번째 열 그룹의 0 번째 열의 경우 3241 번째 행, 3276 번째 행, 3648 번째 행, 6345 번째 행, 9224 번째 행, 9890 번째 행, 10841 번째 행에 각각 1이 위치할 수 있다.
한편, 행렬 A의 경우 각 열 그룹의 0 번째 열에서 1의 위치가 정의되면 이를 Q1 만큼 시클릭 쉬프트하여 각 열 그룹의 다른 열에서 1이 존재하는 행의 위치가 정의될 수 있고, 행렬 C의 경우 각 열 그룹의 0 번째 열에서 1의 위치가 정의되면 이를 Q2 만큼 시클릭 쉬프트하여 각 열 그룹의 다른 열에서 1이 존재하는 행의 위치가 정의될 수 있다.
상술한 예에서, 행렬 A의 0 번째 열 그룹의 0 번째 열의 경우, 19 번째 행, 585 번째 행, 710 번째 행에 1이 존재한다. 이 경우, Q1=3이므로, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 22(=19+3), 588(=585+3), 713(=710+3)이고, 0 번째 열 그룹의 2 번째 열에서 1이 위치한 행의 인덱스는 25(=22+3), 591(=588+3), 716(=713+3)가 될 수 있다.
한편, 행렬 C의 0 번째 열 그룹의 0 번째 열의 경우, 3241 번째 행, 3276 번째 행, 3648 번째 행, 6345 번째 행, 9224 번째 행, 9890 번째 행, 10841 번째 행에 1이 존재한다. 이 경우, Q2=30이므로, 0 번째 열 그룹의 1 번째 열에서 1이 위치한 행의 인덱스는 3271(=3241+30), 3306(=3276+30), 3678(=3648+30), 6375(=6345+30), 9254(=9224+30), 9920(=9890+30), 10871(=10841+30)이고, 0 번째 열 그룹의 2 번째 열에서 1이 위치한 행의 인덱스는 3301(=3271+30), 3336(=3306+30), 3708(=3678+30), 6405(=6375+30), 9284(=9254+30), 9950(=9920+30), 10901(=10871+30)이 될 수 있다.
이와 같은 방식에 따라 행렬 A 및 C의 모든 열 그룹에서 1이 존재하는 행의 위치가 정의될 수 있다. 다만, 상술한 방법은 일 예일 뿐이며, 다양한 방식에 따라 행렬 A 및 C에서 1의 위치가 정의될 수 있음은 물론이다.
한편, 상술한 표 1은 행렬 A 및 C에서 1이 존재하는 위치를 설명하기 위한 각 열 그룹에 대응되는 수열의 일 예를 나타낼 뿐이다. 즉, 표 1에서와 동일한 코드 레이트로 LDPC 정보어 비트들을 인코딩하는 경우라도, 표 1에서 정의된 인덱스들와는 다른 인덱스들에 기초하여 행렬 A 및 C에서 1이 존재하는 위치가 정의될 수 있고, LDPC 코드워드의 길이에 따라 서로 다른 인덱스들에 기초하여 행렬 A 및 C에서 1이 존재하는 위치가 정의될 수 있음은 물론이다.
한편, 행렬 B 및 D는 각각 제1 패리티 비트들 및 제2 패리티 비트들에 대응되는 행렬이다. 즉, 제1 패리티 비트들은 행렬 B에 기초하여 생성되고, 제2 패리티 비트들은 행렬 D에 기초하여 생성될 수 있다.
구체적으로, 행렬 B는 g 개의 열과 g 개의 행으로 구성된 이중 대각(dual diagonal) 행렬이다. 이에 따라, 행렬 B는 마지막 열을 제외한 나머지 열들의 차수(여기에서, 차수(degree)는 열에 존재하는 1 값의 개수이다)는 2이고, 마지막 열의 차수는 1이다.
또한, 행렬 D는 N-k-g 개의 열과 N-k-g 개의 행으로 구성된 단위 행렬(즉, 항등 행렬)(identity matrix)이다. 이에 따라, 행렬 D는 모든 열의 차수는 1이다.
한편, 행렬 Z는 N-K-g 개의 열과 g 개의 행으로 구성된 영(zero) 행렬이다. 이에 따라, 행렬 Z의 모든 원소는 0이다.
결국, 상술한 바와 같은 형태를 갖는 행렬 A, B, C, D, Z에 의해 패리티 검사 행렬(10)이 정의될 수 있다.
한편, 제1 인코더(111)의 LDPC 인코더(미도시) 즉, 제1 LDPC 인코더(미도시)에서 이용되는 패리티 검사 행렬은 제2 인코더(121)의 LDPC 인코더(미도시) 즉, 제2 LDPC 인코더(미도시)에서 이용되는 패리티 검사 행렬은 서로 상이할 수 있다.
먼저, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시)는 도 5와 같은 구조를 갖는 패리티 검사 행렬을 이용하여 LDPC 정보어 비트들을 인코딩하되, 패리티 검사 행렬에서 1이 존재하는 위치, 구체적으로는 행렬 A 및 C에서 서로 다른 위치에 1이 존재할 수 있다.
예를 들어, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시)가 동일한 코드 레이트로 각각 LDPC 정보어 비트들을 인코딩하는 경우라도, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시) 각각에서 이용되는 패리티 검사 행렬의 행렬 A 및 C에서 1이 존재하는 위치는 서로 다른 인덱스들에 기초하여 정의될 수 있다.
다른 예로, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시)가 서로 다른 길이를 갖는 LDPC 코드워드를 생성하는 경우, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시) 각각에서 이용되는 패리티 검사 행렬은 서로 다른 사이즈를 갖는다는 점에서, 제1 LDPC 인코더(미도시)와 제2 LDPC 인코더(미도시)는 서로 다른 패리티 검사 행렬을 이용하여 인코딩을 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 수신 장치(1000)는 송신 장치(100)에서 전송한 중첩 코딩 신호를 수신하여 데이터를 복원할 수 있는데, 이하에서 보다 구체적으로 설명하도록 한다.
도 6은 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도이다.
도 6을 참조하면, 수신 장치(1000)는 제1 디코더(200), 제거부(300) 및 제2 디코더(400)를 포함할 수 있다.
제1 디코더(200)는 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩한다. 즉, 제1 디코더(200)는 중첩 코딩 신호를 LDPC 디코딩하여, 중첩 코딩 신호로부터 제1 레이어 신호에 대응되는 정보어 비트들을 복원할 수 있다.
일 예로, 제1 디코더(200)는 합곱 알고리즘(sum-product algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 통해 중첩 코딩 신호 중 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
구체적으로, 합곱 알고리즘은 메시지 패싱 알고리즘(message passing algorithm)의 일종이며, 메시지 패싱 알고리즘은 bipartite 그래프 상에서 에지를 통해 메시지들(가령, LLR(Log Likelihood Ratio) 값)을 교환하고, 변수 노드(variable node) 혹은 검사 노드(check node)로 입력되는 메시지들로부터 출력 메시지를 계산하여 업데이트(update)하는 알고리즘을 나타낸다.
이하에서는 메시지 패싱 동작을 통한 디코딩 방법에 대해 설명하도록 한다. 다만, 이는 이미 알려진바 있다는 점에서, 간략히 설명하도록 한다.
먼저, 도 7은 LDPC 코드의 그래프 표현 방법을 설명하기 위한 도면이다.
도 7은 4 개의 행과 8 개의 열로 이루어진 LDPC 코드의 패리티 검사 행렬 H1의 일 예와 이를 터너 그래프(tanner graph)로 도시한 도면이다. 도 7을 참조하면, 패리티 검사 행렬 H1은 열이 8개 있기 때문에 길이가 8인 코드워드를 생성하며, H1을 통해 생성된 코드는 LDPC 코드를 의미하며, 각 열은 인코딩된 8 비트에 대응된다.
도 7을 참조하면, 패리티 검사 행렬 H1을 기반으로 인코딩 및 디코딩하는 LDPC 코드의 터너 그래프는 8 개의 변수 노드들 즉, x1(702), x2(704), x3(706), x4(708), x5(710), x6(712), x7(714), x8(716)와 4 개의 검사 노드들(718, 720, 722, 724)로 구성되어 있다. 여기서, LDPC 코드의 패리티 검사 행렬 H1의 i 번째 열과 j 번째 행은 각각 변수 노드 xi와 j 번째 검사 노드에 대응된다. 또한, LDPC 코드의 패리티 검사 행렬 H1의 j 번째 열과 j 번째 행이 교차하는 지점의 1의 값, 즉 0이 아닌 값의 의미는, 도 7과 같이 터너 그래프 상에서 변수 노드 xi와 j 번째 검사 노드를 연결하는 선분(edge)이 존재함을 의미한다.
LDPC 코드의 터너 그래프에서 변수 노드와 검사 노드의 차수는 각 노드들에 연결되어 있는 선분의 개수를 의미하며, 이는 LDPC 코드의 패리티 검사 행렬에서 해당 노드에 대응되는 열 또는 행에서 0이 아닌 원소들의 개수와 동일하다. 예를 들어, 도 7에서 변수 노드들 x1(702), x2(704), x3(706), x4(708), x5(710), x6(712), x7(714), x8(716)의 차수는 각각 순서대로 4, 3, 3, 3, 2, 2, 2, 2가 되며, 검사 노드들(718, 720, 722, 724)의 차수는 각각 순서대로 6, 5, 5, 5가 된다. 또한, 도 7의 변수 노드에 대응되는 도 7의 패리티 검사 행렬 H1의 각각의 열에서 0이 아닌 원소들의 개수는 상술한 차수들 4, 3, 3, 3, 2, 2, 2, 2와 순서대로 일치하며, 도 7의 검사 노드들에 대응되는 도 7의 패리티 검사 행렬 H1의 각각의 행에서 0이 아닌 원소들의 개수는 상술한 차수들 6, 5, 5, 5와 순서대로 일치한다.
이와 같은 경우, i 번째 변수 노드의 메시지를 기반으로 i 번째 비트의 값을 결정할 수 있다. i 번째 비트의 값은 경판정과 연판정 모두 가능하다. 그러므로, LDPC 코드워드의 i 번째 비트인 ci의 성능은 터너 그래프의 i 번째 변수 노드의 성능에 대응되며, 이는 패리티 검사 행렬의 i 번째 열의 1의 위치 및 개수에 따라 결정될 수 있다. 즉, LDPC 코드워드를 구성하는 비트들의 성능은 패리티 검사 행렬의 1의 위치 및 개수에 의해 성능이 좌우된다.
한편, 도 8은 LDPC 디코딩 시 일반적으로 사용되는 메시지 패싱 동작 즉, 임의의 검사 노드와 변수 노드에서 메시지 패싱 동작을 나타낸다.
도 8의 (1)에는 검사 노드 m(800)과 검사 노드 m(800)에 연결되는 다수의 변수 노드들(810, 820, 830, 840)이 도시되어 있다. 또한, 도시되어 있는 Tn' ,m은 변수 노드 n'(810)에서 검사 노드 m(800)으로 패싱되는 메시지를 나타내며, En,m은 검사 노드 m(800)에서 변수 노드 n(830)으로 패싱되는 메시지를 나타낸다. 여기서, 검사 노드 m(800)에 연결되어 있는 모든 변수 노드들의 집합을 N(m)이라고 정의하고, N(m)에서 변수 노드 n(830)을 제외한 집합을 N(m)\n이라고 정의하기로 한다.
이 경우, 합곱 알고리즘에 기반한 메시지 업데이트 규칙은 하기의 수학식 1과 같이 나타낼 수 있다.
여기에서, Sign(En,m)은 메시지 En,m의 부호(sign)를 나타내고, 은 메시지 En,m의 크기(magnitude)를 나타낸다. 한편, 함수 는 하기의 수학식 2와 같이 나타낼 수 있다.
한편, 도 8의 (2)에는 변수 노드 x(850)과 변수 노드 x(850)에 연결되는 다수의 검사 노드들(860, 870, 880, 890)이 도시되어 있다. 또한, 도시되어 있는 Ey' ,x은 검사 노드 y'(860)에서 변수 노드 x(850)로 패싱되는 메시지를 나타내며, Ty ,x은 변수 노드 x(850)에서 변수 노드 y(880)로 패싱되는 메시지를 나타낸다. 여기서, 변수 노드 x(850)에 연결되어 있는 모든 변수 노드들의 집합을 M(x)이라고 정의하고, M(x)에서 검사 노드 y(880)을 제외한 집합을 M(x)\y라고 정의하기로 한다.
이 경우, 합곱 알고리즘에 기반한 메시지 업데이트 규칙은 하기 수학식 3과 같이 나타낼 수 있다.
여기에서, Ex는 변수 노드 x의 초기 메시지 값을 의미한다.
또한, 노드 x의 비트 값을 판정할 경우에는 하기의 수학식 4와 같이 나타낼 수도 있다.
이 경우, Px 값에 따라 노드 x에 대응하는 부호화 비트를 판정할 수 있다.
이와 같이, 제1 디코더(200)는 합곱 알고리즘에 기반한 반복 복호 알고리즘을 이용하여, 패리티 검사 행렬에 기초하여 생성되는 변수 노드들 및 검사 노드들 간의 메시지 패싱을 통해 중첩 코딩 신호 중 제1 레이어 신호를 통해 전송된 비트들을 복원할 수 있다. 여기에서, 변수 노드들 및 검사 노드들 간에 메시지가 패싱되는 횟수 즉, 이터레이션(iteration) 횟수는 시스템 내에 기설정되어 있을 수 있다.
한편, 제1 디코더(200)에서 이용되는 패리티 검사 행렬은 송신 장치(100)의 제1 인코더(111)에서 LDPC 인코딩 시 이용하였던 패리티 검사 행렬과 동일한 패리티 검사 행렬일 수 있다. 즉, 패리티 검사 행렬은 제1 정보어 부분 행렬 및 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성될 수 있다.
이 경우, 제1 디코더(200)는 패리티 검사 행렬의 일부를 이용하여 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
구체적으로, 제1 디코더(200)는 제2 패리티 부분 행렬 중 일부가 펑처링된 패리티 검사 행렬을 이용하여 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
여기에서, 펑처링된 패리티 검사 행렬을 이용하여 디코딩을 수행한다는 것은, 패리티 검사 행렬에서 펑처링된 부분의 변수 노드들을 펑처링하여 디코딩 시 해당 변수 노드들에 대해서는 마지막 이터레이션을 제외한 나머지 이터레이션 동안에는 업데이트를 수행하지 않는 것을 의미한다.
즉, 제1 디코더(200)는 중첩 코딩 신호에 대한 디코딩 시, 패리티 검사 행렬에서 펑처링되지 않는 부분의 변수 노드에 대해서는 모든 이터레이션 동안 업데이트를 수행하지만, 패리티 검사 행렬에서 펑처링되는 부분의 변수 노드에 대해서는 마지막 이터레이션에서만 업데이트를 수행하여, 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
다만, 상술한 예에서 펑처링되는 변수 노드의 경우, 마지막 이터페이션에서만 업데이트가 수행되는 것으로 설명하였으나, 이는 일 예이고, 펑처링되는 변수 노드는 모든 이터레이션 동안 적어도 1 차례 이상의 이터레이션에서 업데이트가 수행되지 않을 수도 있다.
한편, 수신 장치(1000)는 중첩 코딩 신호를 복조하여, LLR 값들을 생성할 수 있으며, 제2 패리티 검사 행렬에서 펑처링되는 부분은 LLR 값들에 기초하여 결정될 수 있다.
일 예로, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
구체적으로, 중첩 코딩 신호를 복조하는 경우, 제1 레이어를 통해 전송되는 LDPC 코드워드 비트들 각각에 대응되는 LLR 값들이 생성될 수 있다. 여기에서, LDPC 코드워드의 각각의 비트는 패리티 검사 행렬의 각각의 변수 노드에 대응되므로, 중첩 코딩 신호를 복조하는 경우, 패리티 검사 행렬의 변수 노드들 각각에 대응되는 LLR 값들이 생성될 수 있다.
이 경우, 제1 디코더(200)는 제2 패리티 부분 행렬에 대한 변수 노드들 중에서 절대값의 크기가 기설정된 크기 이하의 LLR 값을 갖는 변수 노드들을 펑처링할 수 있다. 여기에서, 기설정된 크기는 시스템 내에 기설정되어 있을 수 있다.
예를 들어, 패리티 검사 행렬(10)이 도 5와 같은 구조를 가지며, 제2 패리티 부분 행렬(32)의 변수 노드들 중에서 두 번째 열 및 네 번째 열에 대응되는 변수 노드의 LLR 값이 기설정된 크기 이하인 경우를 가정한다.
이 경우, 제1 디코더(200)는 제2 패리티 부분 행렬(32)의 두 번째 열 및 네 번째 열을 펑처링하고, 제2 패리티 부분 행렬(32)의 두 번째 열 및 네 번째 열이 펑처링된 패리티 검사 행렬(10)을 이용하여, 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
즉, 제1 디코더(200)는 패리티 검사 행렬(10)을 이용하여 중첩 코딩 신호를 디코딩할 때, 패리티 검사 행렬(10)의 변수 노드들 중 제2 패리티 부분 행렬(32)의 두 번째 열 및 네 번째 열을 제외한 나머지 열들에 대응되는 변수 노드들에 대해서는 모든 이터레이션 동안 업데이트를 수행하지만, 제2 패리티 부분 행렬(32)의 두 번째 열 및 네 번째 열에 대응되는 변수 노드에 대해서는 마지막 이터레이션에서만 업데이트를 수행하여, 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
다른 예로, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
즉, 제1 디코더(200)는 제2 패리티 부분 행렬의 변수 노드들 중에서 상대적으로 크기가 작은 LLR 값을 갖는 기설정된 개수의 변수 노드들을 펑처링할 수 있다. 여기에서, 기설정된 개수는 시스템 내에 기설정되어 있을 수 있다.
예를 들어, 패리티 검사 행렬(10)이 도 5와 같은 구조를 가지며, 제2 패리티 부분 행렬(32)의 변수 노드들 중에서 두 번째 열, 네 번째 열 및 다섯 번째 열에 대응되는 변수 노드들의 LLR 값이 제2 패리티 부분 행렬(32)의 다른 변수 노드들의 LLR 값들보다 작은 경우를 가정한다.
이 경우, 제1 디코더(200)는 제2 패리티 부분 행렬(32)의 두 번째 열, 네 번째 열 및 다섯 번째 열을 펑처링하고, 제2 패리티 부분 행렬(32)의 두 번째 열, 네 번째 열 및 다섯 번째 열이 펑처링된 패리티 검사 행렬(10)을 이용하여, 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
즉, 제1 디코더(200)는 패리티 검사 행렬(10)을 이용하여 중첩 코딩 신호를 디코딩할 때, 패리티 검사 행렬(10)의 변수 노드들 중 제2 패리티 부분 행렬(32)의 두 번째 열, 네 번째 열 및 다섯 번째 열을 제외한 나머지 열들에 대응되는 변수 노드들에 대해서는 모든 이터레이션 동안 업데이트를 수행하지만, 제2 패리티 부분 행렬(32)의 두 번째 열, 네 번째 열 및 다섯 번째 열에 대응되는 변수 노드에 대해서는 마지막 이터레이션에서만 업데이트를 수행하여, 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
또 다른 예로, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값(syndrome value)(또는, syndrome parity check value)을 판단하고, 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
이를 위해, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 대한 경판정을 수행하여 LLR 값들에 대응되는 비트 값들을 결정할 수 있다. 예를 들어, 제1 디코더(200)는 - 부호를 갖는 LLR 값들에 대응되는 비트 값을 0으로 결정하고, + 부호를 갖는 LLR 값들에 대응되는 비트 값을 1로 결정할 수 있다.
그리고, 제1 디코더(200)는 결정된 비트 값들을 제2 패리티 검사 행렬에 대한 패리티 검사식(parity check equation)에 대입하여, 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단할 수 있다.
여기에서, 패리티 검사식은 패리티 검사 행렬의 각 열과 LDPC 코드워드 비트들을 곱한 값들의 합(여기에서, 합은 이진 합을 나타낸다)을 나타내는 수식이다. 예를 들어, 도 7의 경우, LDPC 코드워드 C=(c1,c2,c3,c4,c5,c6,c7,c8)라 할 때, 패리티 검사 행렬 H1에 대한 패리티 검사식은 c1+c2+c3+c4+c5+c6, c1+c2+c4+c6+c7, c1+c2+c3+c7+c8, c1+c3+c4+c5+c8와 같이 나타낼 수 있다.
이에 따라, 제1 디코더(200)는 제2 패리티 검사 행렬의 각 열에 대응되는 LLR 값에 따라 결정된 비트 값들을 제2 패리티 검사 행렬에 대한 패리티 검사식에 대입하여, 제2 패리티 검사 행렬의 각 행에 대응되는 검사 노드에 대한 신드롬 값을 산출할 수 있다.
이후, 제1 디코더(200)는 산출된 신드롬 값에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드를 판단하고, 제2 패리티 부분 행렬의 복수의 열에 대응되는 변수 노드들 중 신드롬 값이 0이 아닌 검사 노드와 연결된 변수 노드를 판단할 수 있다.
그리고, 제1 디코더(200)는 제2 패리티 부분 행렬의 복수의 변수 노드들 중 신드롬 값이 0이 아닌 검사 노드와 연결된 변수 노드를 펑처링할 수 있다.
예를 들어, 패리티 검사 행렬(10)이 도 5와 같은 구조를 가지며, 제2 패리티 검사 행렬(30)의 복수의 행 중 첫 번째 행, 두 번째 행 및 세 번째 행에 대응되는 검사 노드에 대한 신드롬 값이 0이 아닌 경우를 가정한다.
이 경우, 제2 패리티 부분 행렬(32)은 단위 행렬이라는 점에서, 제2 패리티 검사 행렬(30)의 첫 번째 행에 대응되는 검사 노드는 제2 패리티 부분 행렬(32)의 첫 번째 열에 대응되는 변수 노드와 연결되고, 제2 패리티 검사 행렬(30)의 두 번째 행에 대응되는 검사 노드는 제2 패리티 부분 행렬(32)의 두 번째 열에 대응되는 변수 노드와 연결되고, 제2 패리티 검사 행렬(30)의 세 번째 행에 대응되는 검사 노드는 제2 패리티 부분 행렬(32)의 세 번째 열에 대응되는 변수 노드와 연결된다.
이에 따라, 제1 디코더(200)는 제2 패리티 부분 행렬(32)의 첫 번째 열, 두 번째 열 및 세 번째 열을 펑처링하고, 제2 패리티 부분 행렬(32)의 첫 번째 열, 두 번째 열 및 세 번째 열이 펑처링된 패리티 검사 행렬(10)을 이용하여, 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
즉, 제1 디코더(200)는 패리티 검사 행렬(10)을 이용하여 디코딩할 때, 패리티 검사 행렬(10)의 변수 노드들 중 제2 패리티 부분 행렬(320)의 첫 번째 열, 두 번째 열 및 세 번째 열을 제외한 나머지 열들에 대응되는 변수 노드들에 대해서는 모든 이터레이션 동안 업데이트를 수행하지만, 제2 패리티 부분 행렬(32)의 첫 번째 열, 두 번째 열 및 세 번째 열에 대응되는 변수 노드들에 대해서는 마지막 이터레이션에서만 업데이트를 수행하여, 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
또 다른 예로, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
구체적으로, 제1 디코더(200)는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 대한 경판정을 수행하여 LLR 값들에 대응되는 비트 값들을 결정하고, 결정된 비트 값들을 이용하여 제2 패리티 검사 행렬의 복수의 행에 대응되는 검사 노드들에 대한 신드롬 값을 산출할 수 있다. 그리고, 제1 디코더(200)는 산출된 신드롬 값에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드를 판단할 수 있다.
이후, 제1 디코더(200)는 신드롬 값이 0이 아닌 검사 노드 중에서 신드롬 값 산출을 위해 이용된 LLR 값들 중 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드를 판단하고, 제2 패리티 부분 행렬의 복수의 변수 노드 중에서 해당 검사 노드와 연결된 변수 노드를 펑처링할 수 있다.
즉, 상술한 바와 같이, 패리티 검사식은 패리티 검사 행렬의 각 열과 LDPC 코드워드 비트들을 곱한 값들의 합을 나타낸다는 점에서, 각 행에 대응되는 검사 노드에 대한 신드롬 값은 패리티 검사 행렬의 각 행에서 1이 존재하는 열들에 대응되는 LLR 값들에 기초하여 결정된 비트 값들의 합으로 산출될 수 있다.
이에 따라, 제1 디코더(200)는 신드롬 값이 0이 아닌 검사 노드에 대응되는 행에서 1이 존재하는 열들의 LLR 값들에 기초하여, 해당 LLR 값들 중에서 제2 패리티 부분 행렬에서 1이 존재하는 열(이 경우, 제2 패리티 부분 행렬은 단위 행렬이라는 점에서, 제2 패리티 부분 행렬의 각 행마다 1 개의 열에 1이 위치하게 된다)의 LLR 값이 가장 작은 경우, 해당 검사 노드와 연결된 변수 노드를 펑처링할 수 있다.
예를 들어, 패리티 검사 행렬(10)이 도 5와 같은 구조를 가지며, 제2 패리티 검사 행렬(30)의 복수의 행 중 첫 번째 행, 두 번째 행 및 세 번째 행에 대응되는 검사 노드에 대한 신드롬 값이 0이 아닌 경우를 가정한다.
이 경우, 제1 디코더(200)는 제2 패리티 검사 행렬(30)의 첫 번째 행, 두 번째 행 및 세 번째 행 각각에서, 1이 존재하는 열들의 LLR 값들에 기초하여 1이 존재하는 열들의 LLR 값들 중 제2 패리티 부분 행렬에서 1이 존재하는 열의 LLR 값이 가장 작은지 여부를 판단할 수 있다.
가령, 제2 패리티 검사 행렬(30)의 첫 번째 행의 경우, 제2 정보어 부분 행렬(31)의 첫 번째 열, 세 번째 열 및 다섯 번째 열에 1이 존재하고, 제2 패리티 부분 행렬(32)이 첫 번째 열에 1이 존재하는 것으로 가정하도록 한다. 다만, 이는 설명의 편의를 위한 일 예일 뿐이다.
이 경우, 제1 디코더(200)는 제2 정보어 부분 행렬(31)의 첫 번째 열, 세 번째 열 및 다섯 번째 열 각각에 대응되는 LLR 값과 제2 패리티 부분 행렬(32)의 첫 번째 열에 대응되는 LLR 값의 크기를 비교하여 제2 패리티 부분 행렬(32)의 첫 번째 열이 가장 작은 크기의 LLR 값을 갖는지 여부를 판단할 수 있다.
이와 같은 방식으로, 제1 디코더(200)는 제2 패리티 검사 행렬(30)의 첫 번째 행, 두 번째 행 및 세 번째 행 각각에서, 제2 패리티 부분 행렬에서 1이 존재하는 열의 LLR 값이 가장 작은지 여부를 판단할 수 있다.
이때, 제2 패리티 검사 행렬(30)의 첫 번째 행 및 두 번째 행이 제2 패리티 부분 행렬에서 1이 존재하는 열의 LLR 값이 가장 작은 경우를 가정한다.
이 경우, 제2 패리티 검사 행렬(30)의 첫 번째 행에 대응되는 검사 노드는 제2 패리티 부분 행렬(32)의 첫 번째 열에 대응되는 변수 노드와 연결되고, 제2 패리티 검사 행렬(30)의 두 번째 행에 대응되는 검사 노드는 제2 패리티 부분 행렬(32)의 두 번째 열에 대응되는 변수 노드와 연결된다.
이에 따라, 제1 디코더(200)는 제2 패리티 부분 행렬(32)의 첫 번째 열 및 두 번째 열을 펑처링하고, 제2 패리티 부분 행렬(32)의 첫 번째 열 및 두 번째 열이 펑처링된 패리티 검사 행렬(10)을 이용하여, 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
즉, 제1 디코더(200)는 패리티 검사 행렬(10)을 이용하여 디코딩할 때, 패리티 검사 행렬(10)의 변수 노드들 중 제2 패리티 부분 행렬(320)의 첫 번째 열 및 두 번째 열을 제외한 나머지 열들에 대응되는 변수 노드들에 대해서는 모든 이터레이션 동안 업데이트를 수행하지만, 제2 패리티 부분 행렬(32)의 첫 번째 열 및 두 번째 열에 대응되는 변수 노드들에 대해서는 마지막 이터레이션에서만 업데이트를 수행하여, 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
한편, 제1 디코더(200)에서 상술한 방식들을 이용하여 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 이유는 다음과 같다.
구체적으로, 중첩 코딩 신호에서 제2 레이어 신호를 통해 전송된 비트들을 복원하기 위해서는 중첩 코딩 신호로부터 제1 레이어 신호를 먼저 복원한 후, 중첩 코딩 신호에서 제1 레이어 신호를 제거(cancellation)해야 한다.
다만, 중첩 코딩에서 제2 레이어는 일반적으로 제1 레이어에 비해 충분히 높은 SNR(signal to noise ratio)에서 동작한다는 점에서, 제1 레이어 신호를 디코딩할 때 패리티 검사 행렬의 일부를 펑처링하는 경우라도 낮은 에러 발생 확률로 제1 레이어 신호를 통해 전송된 비트들을 복원할 수 있다.
이에 따라, 본 발명에서는 일부가 펑처링된 패리티 검사 행렬을 이용하여 제1 레이어 신호를 통해 전송된 비트들을 디코딩한다는 점에서, 디코딩 복잡도를 감소를 통해 제1 레이어 신호를 효율적으로 디코딩할 수 있고, 이에 따라, 제2 레이어 신호 역시 효율적으로 복원할 수 있게 된다.
한편, 제거부(300)는 중첩 코딩 신호에서 비트들에 대응되는 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성한다.
구체적으로, 제거부(300)는 중첩 코딩 신호 및 제1 디코더(200)에서 디코딩된 비트들에 대응되는 제1 레이어 신호를 입력받고, 중첩 코딩 신호에서 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성할 수 있다.
제2 디코더(400)는 제2 레이어 신호를 통해 전송된 비트들을 디코딩한다.
예를 들어, 제2 디코더(400)는 패리티 검사 행렬에 기초하여, 합곱 알고리즘에 기반한 반복 복호 알고리즘을 이용하여 제2 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
한편, 제2 디코더(400)에서 이용되는 패리티 검사 행렬은 송신 장치(1000)의 제2 인코더(112)에서 LDPC 인코딩 시 이용하였던 패리티 검사 행렬과 동일한 패리티 검사 행렬일 수 있다. 이 경우, 제2 디코더(400)는 패리티 검사 행렬의 일부가 아닌 패리티 검사 행렬 전체를 이용하여 제2 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다.
이에 따라, 수신 장치(1000)는 제1 레이어 및 제2 레이어를 통해 전송된 비트들을 수신받을 수 있게 된다.
한편, 상술한 예에서 수신 장치(1000)가 디코딩 복잡도 감소를 위해, 제1 레이어 신호에 대해서는 패리티 검사 행렬의 일부를 이용하여 디코딩을 수행하는 것으로 설명하였다.
다만, 수신 장치(1000)는 디코딩 복잡도 감소를 위해 다른 방법을 이용할 수도 있다. 예를 들어, 제1 디코더(200)는 Gallager A 또는 Gallager B 디코딩 알고리즘을 이용하여 제1 레이어 신호를 통해 전송된 비트들을 디코딩할 수 있다. 이에 따라, 제1 레이어 신호에 대한 디코딩 복잡도가 감소되어, 결과적으로 제2 레이어 신호를 통해 전송된 비트들을 효율적으로 복원할 수 있게 된다.
도 9는 본 발명의 일 실시 예에 따른 수신 장치의 세부 구성을 설명하기 위한 블록도이다.
도 9를 참조하면, 수신 장치(1000)는 OFDM 수신부(1010), 타임 디인터리버(1020), 게인 컨트롤러(1030), 버퍼(1040), 제거부(1050), 게인 컨트롤러(1060), 제1 디코더(1070), 인터리버(1081), 맵퍼(1082) 및 제2 디코더(1090)를 포함할 수 있다.
이 경우, 도 12에 도시된 제1 디코더(1070), 제거부(1050) 및 제2 디코더(1090)는 도 6에 도시된 제1 디코더(200), 제거부(300) 및 제2 디코더(400)의 기능을 수행할 수 있다. 이에 따라, 도 12에 도시된 제1 디코더(1070), 제거부(1050) 및 제2 디코더(1090)를 설명함에 있어, 제1 디코더(200), 제거부(300) 및 제2 디코더(400)와 관련하여 이전에 설명한 내용과 중복되는 부분에 대한 구체적인 설명은 생략하도록 한다.
OFDM 수신부(1010)는 송신 장치(100)가 전송한 중첩 코딩 신호에 대한 OFDM 복조를 수행하여, OFDM 프레임으로부터 셀들을 생성하여 타임 디인터리버(1020)로 출력할 수 있다.
타임 디인터리버(1020)는 OFDM 수신부(1010)의 출력을 디인터리빙한다.
구체적으로, 타임 디인터리버(1020)는 송신 장치(100)의 타임 인터리버(150)에 대응되는 구성으로, 셀들을 인터리빙하고, 인터리빙된 셀들을 게인 컨트롤러(1030)로 출력할 수 있다.
게인 컨트롤러(1030)는 타임 디인터리버(1020)의 출력에 대한 게인을 조절한다.
구체적으로, 게인 컨트롤러(1030)는 송신 장치(100)의 게인 컨트롤러(140)에 대응되는 구성으로, 타임 디인터리버(1020)에서 출력되는 신호에 대한 게인을 조절하고, 게인이 조절된 신호를 제1 디코더(200) 및 버퍼(1040)로 출력한다.
제1 디코더(200)는 게인 컨트롤러(1030)에서 출력되는 신호를 처리하여 제1 레이어를 통해 전송된 비트들을 디코딩할 수 있다.
이를 위해, 제1 디코더(1070)는 제1 성상도 디맵퍼(1071), 제1 디인터리버(1072) 및 제1 디코더(1073)를 포함할 수 있다.
제1 성상도 디맵퍼(1071)는 송신 장치(100)의 제1 성상도 맵퍼(113)에 대응되는 구성으로, 게인 컨트롤러(1030)에서 출력되는 신호를 복조하여 상부 레이어 신호를 통해 전송된 비트들에 대응되는 값들을 생성할 수 있다.
한편, 송신 장치(100)에서 전송한 비트들에 대응되는 값은 통상적으로 수신된 비트가 0일 확률과 1일 확률에 기초하여 계산되는 값으로서 각각의 확률 자체를 각 비트에 대응되는 값으로 사용할 수도 있으며, 다른 일 예로서 LR (Likelihood Ratio), LLR(Log Likelihood Ratio) 값일 수도 있다.
구체적으로, LR 값은 송신 장치(100)에서 전송한 비트가 0일 확률과 1일 확률의 비율을 의미하며, LLR 값은 송신 장치(100)에서 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다.
한편, 상술한 예에서는 LR 값 또는 LLR 값을 이용하는 것으로 설명하였으나, 이는 일 예이고, 수신된 신호 자체를 이용할 수도 있다.
이 경우, 제1 성상도 디맵퍼(1071)는 제1 레이어 신호에 적용된 변조 방식에 기초하여 중첩 코딩 신호를 복조할 수 있다.
예를 들어, 송신 장치(100)에서 제1 레이어에 대응되는 신호를 QPSK 방식으로 변조한 경우, 제1 성상도 디맵퍼(1071)는 QPSK 방식에 기초하여 중첩 코딩 신호에 대해 복조를 수행할 수 있다.
제1 디인터리버(1072)는 제1 성상도 디맵퍼(1071)의 출력을 디인터리빙한다.
구체적으로, 제1 디인터리버(1072)는 송신 장치(100)의 제1 인터리버(112)에 대응되는 구성으로, 제1 인터리버(112)에서 수행된 인터리빙 동작을 역으로 수행하여 비트들에 대응되는 값들을 디인터리빙하고, 이를 제1 디코더(1073)로 출력할 수 있다.
제1 디코더(1073)는 제1 디인터리버(1072)에서 출력되는 값들을 이용하여 LDPC 디코딩을 수행한다.
구체적으로, 제1 디코더(1073)는 송신 장치(100)의 제1 인코더(111)에 대응되는 구성으로, 디인터리빙된 값들을 디코딩할 수 있다.
이 경우, 제1 디코더(1073)는 패리티 검사 행렬의 일부를 이용하여 제1 레이어 신호를 통해 전송된 비트들을 복원할 수 있다.
여기에서, 패리티 검사 행렬은 송신 장치(100)의 제1 인코더(111)에서 LDPC 인코딩 시 이용한 패리티 검사 행렬과 동일한 패리티 검사 행렬일 수 있으며, 제1 디코더(1073)는 패리티 검사 행렬의 일부를 이용하여 디코딩을 수행할 수 있다. 한편, 패리티 검사 행렬의 일부를 이용하여 디코딩을 수행하는 방법에 대해서는 상술한 바 있다.
한편, 송신 장치(100)에서 BCH 코드 등의 아우터 인코딩이 수행된 경우, 수신 장치(1000)는 BCH 디코더(미도시) 등을 포함하여, LDPC 코드에 의해 디코딩된 비트들을 아우터 디코딩을 수행할 수 있다.
이에 따라, 상부 레이어 신호를 통해 전송된 정보어 비트들(여기에서, 여기에서, 정보어 비트들은 데이터로, 도 1의 스트림 A에 해당한다)을 수신받을 수 있게 된다.
인터리버(1081)는 제1 디코더(1073)에서 출력되는 비트들을 인터리빙한다.
구체적으로, 인터리버(1081)는 송신 장치(100)의 제1 인터리버(112)에 대응되는 구성으로, 제1 인터리버(112)와 동일한 방식으로 제1 디코더(1073)에서 출력되는 비트들을 인터리빙하고, 인터리빙된 비트들을 성상도 맵퍼(1082)로 출력한다.
성상도 맵퍼(1082)는 인터리버(1081)에서 출력되는 비트들을 변조한다.
구체적으로, 성상도 맵퍼(1082)는 송신 장치(100)의 제1 성상도 맵퍼(113)에 대응되는 구성으로, 제1 성상도 맵퍼(113)와 동일한 방식으로 인터리버(1081)에서 출력되는 비트들을 성상점에 맵핑하여 출력할 수 있다. 예를 들어, 제1 성상도 맵퍼(113)에서 QPSK 방식으로 변조를 수행한 경우, 성상도 맵퍼(1082)는 인터리버(1081)에서 출력되는 비트들을 QPSK 방식으로 변조할 수 있다.
한편, 버퍼(1040)는 게인 컨트롤러(1030)에서 출력되는 신호를 저장한다.
그리고, 제거부(1050)는 버퍼(1040)에 저장된 신호 및 성상도 맵퍼(1082)에서 출력되는 신호를 입력받아, 버퍼(1040)로부터 제공된 신호 즉, 중첩 코딩 신호에서 성상도 맵퍼(1082)에서 출력되는 신호를 제거하여 게인 컨트롤러(1060)로 출력한다. 즉, 제거부(1050)는 중첩 코딩 신호에서 제1 레이어 신호를 제거하여, 제2 레이어에 대응되는 신호를 생성한다.
게인 컨트롤러(1060)는 송신 장치(100)는 게인 컨트롤러(130)에 대응되는 구성으로, 제거부(1050)에서 출력되는 신호에 대한 게인을 조절하고, 이를 제2 성상도 디맵퍼(1091)로 출력한다.
제2 성상도 디맵퍼(1091)는 송신 장치(100)의 제2 성상도 맵퍼(123)에 대응되는 구성으로, 게인 컨트롤러(1060)에서 출력되는 신호를 복조하여 제2 레이어 신호를 통해 전송된 비트들에 대응되는 값들을 생성할 수 있다.
한편, 송신 장치(100)에서 전송한 비트들에 대응되는 값은 통상적으로 수신된 비트가 0일 확률과 1일 확률에 기초하여 계산되는 값으로서 각각의 확률 자체를 각 비트에 대응되는 값으로 사용할 수도 있으며, 다른 일 예로서 LR (Likelihood Ratio) LLR(Log Likelihood Ratio) 값일 수도 있다.
구체적으로, LR 값은 송신 장치(100)에서 전송한 비트가 0일 확률과 1일 확률의 비율을 의미하며, LLR 값은 송신 장치(100)에서 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다.
한편, 상술한 예에서는 LR 값 또는 LLR 값을 이용하는 것으로 설명하였으나, 이는 일 예이고, 수신된 신호 자체를 이용할 수도 있다.
이 경우, 제2 성상도 디맵퍼(1091)는 제2 레이어 신호에 적용된 변조 방식에 기초하여 중첩 코딩 신호에서 제1 레이어 신호가 제거된 신호를 복조할 수 있다.
예를 들어, 송신 장치(100)에서 제2 레이어에 대응되는 신호를 64-QAM 방식으로 변조한 경우, 제2 성상도 디맵퍼(1091)는 64-QAM 방식에 기초하여 복조를 수행할 수 있다. 다른 예로, 송신 장치(100)에서 제2 레이어에 대응되는 신호를 256-QAM 방식으로 변조한 경우, 제2 성상도 디맵퍼(1091)는 256-QAM 방식에 기초하여 복조를 수행할 수 있다.
제2 디인터리버(1092)는 제2 성상도 디맵퍼(1091)의 출력을 디인터리빙한다.
구체적으로, 제2 디인터리버(1092)는 송신 장치(100)의 제2 인터리버(122)에 대응되는 구성으로, 제2 인터리버(122)에서 수행된 인터리빙 동작을 역으로 수행하여 비트들에 대응되는 값들을 디인터리빙하고, 이를 제2 디코더(1093)로 출력할 수 있다.
제2 디코더(1093)는 제2 디인터리버(1092)에서 출력되는 값들을 이용하여 LDPC 디코딩을 수행한다.
구체적으로, 제2 디코더(1093)는 송신 장치(100)의 제2 인코더(121)에 대응되는 구성으로, 디인터리빙된 값들을 디코딩할 수 있다.
이 경우, 제2 디코더(1093)는 패리티 검사 행렬을 이용하여 디코딩을 수행할 수 있다.
여기에서, 패리티 검사 행렬은 송신 장치(100)의 제2 인코더(121)에서 LDPC 인코딩 시 이용한 패리티 검사 행렬과 동일한 패리티 검사 행렬일 수 있다.
한편, 송신 장치(100)에서 BCH 코드 등의 아우터 인코딩이 수행된 경우, 수신 장치(1000)는 BCH 디코더(미도시) 등을 포함하여, LDPC 코드에 의해 디코딩된 비트들을 아우터 디코딩을 수행할 수 있다.
이에 따라, 제2 레이어 신호를 통해 전송된 정보어 비트들(여기에서, 여기에서, 정보어 비트들은 데이터로, 도 1의 스트림 B에 해당한다)을 수신받을 수 있게 된다.
도 10은 본 발명의 일 실시 예에 따른 중첩 코딩 신호를 수신하여 처리하는 수신 장치의 디코딩 방법을 설명하기 위한 흐름도이다.
먼저, 패리티 검사 행렬의 일부를 이용하여 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩한다(S1010).
그리고, 중첩 코딩 신호에서 비트들에 대응되는 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성한다(S1020).
그리고, 제2 레이어 신호를 통해 전송된 비트들을 디코딩한다(S1030).
여기에서, 패리티 검사 행렬은 제1 정보어 부분 행렬과 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및, 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성될 수 있다.
한편, S1010 단계는 제2 패리티 부분 행렬 중 일부가 펑처링된 패리티 검사 행렬을 이용하여 중첩 코딩 신호로부터 제1 레이어 신호로부터 전송된 비트들을 디코딩할 수 있다.
또한, S1010 단계는 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
한편, S1010 단계는 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
또한, S1010 단계는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
한편, S1010 단계는 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 제2 패리티 부분 행렬의 일부를 펑처링할 수 있다.
한편, 본 발명에 따른 디코딩 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 송신 장치 및 수신 장치에 대해 도시한 상술한 블록도에서는 버스(bus)를 미도시하였으나, 송신 장치 및 수신 장치에서 각 구성요소 간의 통신은 버스를 통해 이루어질 수도 있다. 또한, 각 장치에는 상술한 다양한 동작을 수행하는 CPU, 마이크로 프로세서 등과 같은 프로세서가 더 포함될 수도 있으며, 각 장치에는 상술한 다양한 동작을 수행하기 위한 메모리가 더 포함될 수도 있다.
또한, 본 발명의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
1000 : 수신 장치 200 : 제1 디코더
300 : 제거부 400 : 제2 디코더
300 : 제거부 400 : 제2 디코더
Claims (14)
- 중첩 코딩 신호를 수신하여 처리하는 수신 장치에 있어서,
패리티 검사 행렬의 일부를 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 제1 디코더;
상기 중첩 코딩 신호에서 상기 비트들에 대응되는 상기 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성하는 제거부; 및
상기 제2 레이어 신호를 통해 전송된 비트들을 디코딩하는 제2 디코더;를 포함하며,
상기 패리티 검사 행렬은,
제1 정보어 부분 행렬과 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및, 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성되고,
상기 제1 디코더는,
상기 제2 패리티 부분 행렬 중 일부가 펑처링된 상기 패리티 검사 행렬을 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호로부터 전송된 비트들을 디코딩하는, 수신 장치. - 삭제
- 삭제
- 제1항에 있어서,
상기 제1 디코더는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 수신 장치. - 제1항에 있어서,
상기 제1 디코더는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 수신 장치. - 제1항에 있어서,
상기 제1 디코더는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 수신 장치. - 제1항에 있어서,
상기 제1 디코더는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 상기 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 수신 장치. - 중첩 코딩 신호를 수신하여 처리하는 수신 장치의 디코딩 방법에 있어서,
패리티 검사 행렬의 일부를 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계;
상기 중첩 코딩 신호에서 상기 비트들에 대응되는 상기 제1 레이어 신호를 제거하여 제2 레이어 신호를 생성하는 단계; 및
상기 제2 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계;를 포함하며,
상기 패리티 검사 행렬은,
제1 정보어 부분 행렬과 이중 대각 행렬인 제1 패리티 부분 행렬을 포함하는 제1 패리티 검사 행렬 및, 제2 정보어 부분 행렬과 단위 행렬인 제2 패리티 부분 행렬을 포함하는 제2 패리티 검사 행렬로 구성되고,
상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는,
상기 제2 패리티 부분 행렬 중 일부가 펑처링된 상기 패리티 검사 행렬을 이용하여 상기 중첩 코딩 신호로부터 제1 레이어 신호로부터 전송된 비트들을 디코딩하는, 디코딩 방법. - 삭제
- 삭제
- 제8항에 있어서,
상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 기설정된 크기 이하를 갖는 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 디코딩 방법. - 제8항에 있어서,
상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들 중 상대적으로 크기가 작은 기설정된 개수의 LLR 값들에 대응되는 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 디코딩 방법. - 제8항에 있어서,
상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아닌 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 디코딩 방법. - 제8항에 있어서,
상기 제1 레이어 신호를 통해 전송된 비트들을 디코딩하는 단계는,
상기 중첩 코딩 신호를 복조하여 생성된 LLR 값들에 기초하여 상기 제2 패리티 검사 행렬의 복수의 검사 노드들에 대한 신드롬 값을 판단하고, 상기 복수의 검사 노드들 중 신드롬 값이 0이 아니고 신드롬 값 산출을 위해 이용된 LLR 값들 중 상기 제2 패리티 부분 행렬에 대응되는 LLR 값의 크기가 가장 작은 검사 노드들과 관련된 상기 제2 패리티 부분 행렬의 일부를 펑처링하는, 디코딩 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160060804A KR102547369B1 (ko) | 2016-05-18 | 2016-05-18 | 수신 장치 및 그의 디코딩 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160060804A KR102547369B1 (ko) | 2016-05-18 | 2016-05-18 | 수신 장치 및 그의 디코딩 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170130139A KR20170130139A (ko) | 2017-11-28 |
KR102547369B1 true KR102547369B1 (ko) | 2023-06-23 |
Family
ID=60811044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160060804A KR102547369B1 (ko) | 2016-05-18 | 2016-05-18 | 수신 장치 및 그의 디코딩 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102547369B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7135344B2 (ja) * | 2018-01-18 | 2022-09-13 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
US10979072B2 (en) * | 2019-03-19 | 2021-04-13 | Western Digital Technologies, Inc. | Punctured bit estimation and bit error rate estimation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101776275B1 (ko) * | 2014-02-19 | 2017-09-07 | 삼성전자주식회사 | 송신 장치 및 그의 인터리빙 방법 |
KR102384790B1 (ko) * | 2014-08-25 | 2022-04-08 | 한국전자통신연구원 | 레이어드 디비전 멀티플렉싱을 이용한 방송 신호 프레임 생성 장치 및 방송 신호 프레임 생성 방법 |
-
2016
- 2016-05-18 KR KR1020160060804A patent/KR102547369B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20170130139A (ko) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102596423B1 (ko) | Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 | |
US11108498B2 (en) | Receiving apparatus and decoding method thereof | |
KR20210064166A (ko) | 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 64-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
US10211949B2 (en) | Receiver and signal processing method thereof | |
KR102557434B1 (ko) | 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 256-심볼 맵핑에 상응하는 bicm 수신 장치 및 방법 | |
CN113826327A (zh) | 用于在通信或广播系统中解码数据的方法和装置 | |
KR20210064167A (ko) | 길이가 16200이며, 부호율이 10/15인 ldpc 부호어 및 256-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
KR20210064168A (ko) | 길이가 16200이며, 부호율이 4/15인 ldpc 부호어 및 16-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
KR102567916B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
US11838124B2 (en) | Receiver and method for processing a signal thereof | |
KR102429471B1 (ko) | 길이가 16200이며, 부호율이 4/15인 ldpc 부호어 및 256-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
KR102240741B1 (ko) | 길이가 16200이며, 부호율이 2/15인 ldpc 부호어 및 64-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
KR102429457B1 (ko) | 길이가 16200이며, 부호율이 3/15인 ldpc 부호어 및 16-심볼 맵핑을 위한 비트 인터리버 및 이를 이용한 비트 인터리빙 방법 | |
KR20220112730A (ko) | 길이가 16200이며, 부호율이 4/15인 ldpc 부호어 및 64-심볼 맵핑에 상응하는 bicm 수신 장치 및 방법 | |
KR102547369B1 (ko) | 수신 장치 및 그의 디코딩 방법 | |
KR102159242B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
KR102636839B1 (ko) | 수신 장치 및 그의 디코딩 방법 | |
KR102146803B1 (ko) | 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 | |
KR102536691B1 (ko) | 길이가 16200이며, 부호율이 10/15인 ldpc 부호어 및 256-심볼 맵핑을 위한 bicm 수신 장치 및 이를 이용한 방법 |
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 |