KR20150011085A - 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법 - Google Patents

저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법 Download PDF

Info

Publication number
KR20150011085A
KR20150011085A KR20130085860A KR20130085860A KR20150011085A KR 20150011085 A KR20150011085 A KR 20150011085A KR 20130085860 A KR20130085860 A KR 20130085860A KR 20130085860 A KR20130085860 A KR 20130085860A KR 20150011085 A KR20150011085 A KR 20150011085A
Authority
KR
South Korea
Prior art keywords
message
parity check
check matrix
matrices
node
Prior art date
Application number
KR20130085860A
Other languages
English (en)
Other versions
KR102019893B1 (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 KR1020130085860A priority Critical patent/KR102019893B1/ko
Priority to US14/907,223 priority patent/US10171203B2/en
Priority to PCT/KR2014/006659 priority patent/WO2015012572A1/en
Publication of KR20150011085A publication Critical patent/KR20150011085A/ko
Application granted granted Critical
Publication of KR102019893B1 publication Critical patent/KR102019893B1/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
    • 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/0045Arrangements at the receiver 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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법에 있어서, 신호 송신 장치로부터 신호를 수신하는 과정과, 상기 수신 신호에 대해서 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정을 포함하며, 상기 제1 패리티 검사 행렬은
Figure pat00068
 개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
Figure pat00069
 개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며, 상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 한다.

Description

저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법{APPARATUS AND METHOD FOR RECEIVING SIGNAL IN COMMUNICATION SYSTEM USING LOW DENSITY PARITY CHECK CODE}
본 발명은 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법에 관한 것으로, 특히 LDPC 부호를 사용하는 통신 시스템에서 셔플드 디코딩 알고리즘(shuffled decoding algorithm)을 사용하여 LDPC 부호를 디코딩하는 신호 수신 장치 및 방법에 관한 것이다.
도 1은 일반적인 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치를 개략적으로 도시한 도면이다.
도 1을 설명하기에 앞서, 도 1에 도시되어 있는 신호 수신 장치는 복사 그룹-셔플드 서브-디코더(replicated group-shuffled sub-decoder)들로 구성되는 신호 수신 장치이며, 이에 대해서 구체적으로 설명하면 다음과 같다.
도 1을 참조하면, 상기 신호 수신 장치는 서브-디코더 #1(110)과, 서브-디코더 #2(120)와, 서브-디코더 #3(130)을 포함한다. 상기 서브-디코더 #1(110)과, 서브-디코더 #2(120)와, 서브-디코더 #3(130) 각각은 3개의 비트 그룹(bit group)들을 포함한다. 즉, 상기 서브-디코더 #1(110)은 비트 그룹 #1(111)과, 비트 그룹 #2(113)와, 비트 그룹 #3(115)을 포함하며, 상기 서브-디코더 #2(120)는 비트 그룹 #1(121)과, 비트 그룹 #2(123)와, 비트 그룹 #3(125)을 포함하며, 상기 서브-디코더 #3(130)은 비트 그룹 #1(131)과, 비트 그룹 #2(133)과, 비트 그룹 #3(135)을 포함한다.
도 1에서는 상기 서브-디코더 #1(110)과, 서브-디코더 #2(120)와, 서브-디코더 #3(130) 각각에서 사용되는 비트 그룹들은 동일하지만, 업데이트 순서(update order)는 다르다.
상기 서브-디코더 #1(110)에서, 상기 비트 그룹 #1(111)에 포함되어 있는 비트 측정값(bit estimate)들은 첫 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #2(113)에 포함되어 있는 비트 측정값들은 두 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #3(115)에 포함되어 있는 비트 측정값들은 세 번째 반복 서브-단계에서 업데이트된다.
상기 서브-디코더 #2(120)에서, 상기 비트 그룹 #2(123)에 포함되어 있는 비트 측정값들은 첫 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #3(125)에 포함되어 있는 비트 측정값들은 두 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #1(121)에 포함되어 있는 비트 측정값들은 세 번째 반복 서브-단계에서 업데이트된다.
상기 서브-디코더 #3(130)에서, 상기 비트 그룹 #3(135)에 포함되어 있는 비트 측정값들은 첫 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #1(131)에 포함되어 있는 비트 측정값들은 두 번째 반복 서브-단계에서 업데이트되고, 상기 비트 그룹 #2(133)에 포함되어 있는 비트 측정값들은 세 번째 반복 서브-단계에서 업데이트된다.
즉, 도 1에 도시되어 있는 신호 수신 장치는 입력 비트들을 상기 통신 시스템에서 사용하는 LDPC 부호에 대한 패리티 검사 행렬(parity check matrix)이 포함하는 열(column)들의 개수, 즉 열 사이즈(size) 미만의, 동일한 사이즈를 가지는 하위 그룹들로 분할하여 3개의 서브-디코더들에서 복호 동작을 수행하는 것이다. 이 경우, 상기 서브-디코더 #1(110)과, 서브-디코더 #2(120)와, 서브-디코더 #3(130) 각각에서는 체크 노드-변수 노드 메시지(a messgae from a check node to a variable node: check-to-variable message, 이하 “check-to-variable message”라 칭하기로 한다)를 업데이트하기 위해 변수 노드-체크 노드 메시지(a messgae from a variable node to a check node: variable-to-check message, 이하 “variable-to-check message”라 칭하기로 한다)를 필요로 한다.
따라서, 상기 신호 수신 장치에서는 메모리(memory) 또는 레지스터(register)부터 저장되어 있는 메시지들을 리드(read)/라이트(write)하기 위하여 많은 횟수의 메모리 리드/라이트 동작이 필요로 된다.
또한, 상기 통신 시스템이 높은 데이터 처리율을 필요로 하는 응용 시스템일 경우에는, 상기 신호 수신 장치는 많은 메모리 뱅크(memory bank)를 사용해야 한다.
따라서, 셔플드 LDPC(shuffled LDPC) 디코딩 알고리즘의 경우, 가장 마지막에 업데이트된 variable-to-check message와 그 바로 전에 업데이트된 variable-to-check message들을 필요로 하며, 따라서 상기 신호 송신 장치는 이에 해당하는 메모리 리드/라이트 동작 및 저장 디바이스(device)를 가지는 구조로 많은 전력을 소비하게 된다.
본 발명은 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법을 제안한다.
또한, 본 발명은 LDPC 부호를 사용하는 통신 시스템에서 셔플드 디코딩 알고리즘을 사용하여 LDPC 부호를 디코딩하는 신호 수신 장치 및 방법을 제안한다.
본 발명에서 제안하는 장치는; 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템의 신호 수신 장치에 있어서, 신호 송신 장치로부터 신호를 수신하는 수신 유닛과, 상기 수신 신호에 대해서 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 LDPC 디코더를 포함하며, 상기 제1 패리티 검사 행렬은
Figure pat00001
 개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
Figure pat00002
 개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며, 상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 한다.
본 발명에서 제안하는 다른 장치는; 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템의 신호 수신 장치에 있어서, 입력 신호에 대해 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 LDPC 디코더를 포함하며, 상기 제1 패리티 검사 행렬은
Figure pat00003
 개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
Figure pat00004
 개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며, 상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 한다.
본 발명에서 제안하는 방법은; 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법에 있어서, 신호 송신 장치로부터 신호를 수신하는 과정과, 상기 수신 신호에 대해서 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정을 포함하며, 상기 제1 패리티 검사 행렬은
Figure pat00005
 개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
Figure pat00006
 개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며, 상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 한다.
본 발명에서 제안하는 다른 방법은; 저밀도 패리티 검사(Low Density Parity Check: LDPC) 디코더의 동작 방법에 있어서, 입력 신호에 대해 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정을 포함하며, 상기 제1 패리티 검사 행렬은
Figure pat00007
 개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
Figure pat00008
 개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며, 상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 한다.
본 발명은 LDPC 부호를 사용하는 통신 시스템에서 셔플드 디코딩 알고리즘을 사용하여 LDPC 부호를 디코딩하는 것을 가능하게 함으로써, 낮은 전력을 사용하면서도 메시지 리드(read)/라이트(write) 횟수를 최소화하는 효과가 있다.
도 1은 일반적인 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치를 개략적으로 도시한 도면
도 2는 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 일 예를 개략적으로 도시한 도면
도 3은 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 다른 예를 개략적으로 도시한 도면
도 4는 도 3의 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4에 대응되는 메모리 구조를 개략적으로 도시한 도면
도 5는 본 발명의 일 실시예에 따른 통신 시스템의 신호 수신 장치에서 LDPC 디코더의 동작 과정을 개략적으로 도시한 도면
도 6은 일반적인 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면
도 7은 도 6의 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면
도 8은 본 발명의 일 실시예에 따른 통신 시스템의 신호 수신 장치에서 LDPC 디코더의 동작 과정 및 도 6의 패리티 검사 행렬 H를 사용하는 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면
도 9는 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더가 포함하는 검사 상태 프로세서의 동작 과정을 개략적으로 도시한 도면
도 10은 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더의 동작 과정을 개략적으로 도시한 도면
도 11은 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 내부 구조를 개략적으로 도시한 도면
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법을 제안한다.
본 발명은 LDPC 부호를 사용하는 통신 시스템에서 셔플드 디코딩 알고리즘(shuffled decoding algorithm, 이하 "shuffled decoding algorithm"라 칭하기로 한다)을 사용하여 LDPC 부호를 디코딩하는 신호 수신 장치 및 방법을 제안한다.
먼저, 도 2를 참조하여 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬(parity check matrix)의 일 예에 대해서 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 일 예를 개략적으로 도시한 도면이다.
도 2를 참조하면, 패리티 검사 행렬 H는 LDPC 부호를 생성하거나 혹은 LDPC 부호를 디코딩하기 위해 사용되며, 상기 패리티 검사 행렬 H를 사용하여 생성되는 LDPC 부호는 균일(regular) 준-순환(Quasi-Cyclic: QC, 이하 “QC”라 칭하기로 한다) LDPC 부호 혹은 불균일(irregular) QC LDPC 부호가 될 수 있다.
한편, (N, j, k) LDPC 부호는 블록(block) 길이가 N인 선형 블록 부호(linear block code)로, 각 열(column)마다 j개의 1의 값을 가지는 엘리먼트(element)들과, 각 행(row)마다 k개의 1의 값을 가지는 엘리먼트들을 가지고, 상기 1의 값을 가지는 엘리먼트들을 제외한 엘리먼트들은 모두 0의 값을 가지는 엘리먼트들로 구성된 성긴(sparse, 이하 'sparse'라 칭하기로 한다) 구조의 패리티 검사 행렬에 의해 정의된다.
상기에서 설명한 바와 같이 상기 패리티 검사 행렬에 포함되는 각 열이 포함하는 웨이트들의 개수가 j개로 일정하며, 상기 패리티 검사 행렬에 포함되는 각 행의 웨이트들의 개수가 k개로 일정한 QC LDPC 부호가 상기 균일 LDPC 부호가 되는 것이다.
이와는 달리, 상기 패리티 검사 행렬이 포함하는 각 열에 포함되는 웨이트들의 개수와 각 행에 포함되는 웨이트들의 개수가 일정하지 않은 QC LDPC 부호가 불균일 QC LDPC 부호가 된다.
도 2에 도시되어 있는 패리티 검사 행렬 H는 M개의 블록 행과 N개의 블록 열을 포함하는, 불균일 QC LDPC 부호에 대한 패리티 검사 행렬이다. 상기 패리티 검사 행렬 H는 M x N 개의 서브 행렬(sub-matrix)들을 포함하고, 각 서브 행렬은 z x z 사이즈를 가지는 정사각 행렬로서, 상기 서브 행렬은 순열 행렬(permutation matrix)이 될 수 있고, 상기 순열 행렬은 영(zero) 행렬(이하, "zero 행렬"이라 칭하기로 한다)이 될 수도 있고, 항등 행렬(identity matrix)이 될 수도 있다.
도 2에서는 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 일 예에 대해서 설명하였으며, 다음으로 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 다른 예에 대해서 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 LDPC 부호를 사용하는 통신 시스템에서 사용되는 패리티 검사 행렬의 다른 예를 개략적으로 도시한 도면이다.
도 3을 설명하기에 앞서, 도 3에 도시되어 있는 패리티 검사 행렬, 즉 패리티 검사 행렬 Hb는 도 2에 도시되어 있는 패리티 검사 행렬 H에 포함되어 있는 서브 행렬들 중 zero 행렬이 아닌 행렬(non-zero 행렬, 이하 "non-zero 행렬"라 칭하기로 한다)인 서브 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬임에 유의하여야만 한다. 여기서, n은 도 2에 도시되어 있는 패리티 검사 행렬 H가 포함하는 블록 열들의 개수를 나타낸다. 여기서, n은 1,2,3, … , N이다(n = 1,2,3, … , N). 또한, c는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타낸다. 여기서, c는 1,2,3, … , C이다(c= 1,2,3, … , C). 다만, c의 경우 해당하는 블록 열에 non-zero 행렬이 존재하지 않을 경우 그 값이 0이 될 수 있는 것이고, 이렇게 c 값이 0일 경우에는 n_c로 표현되는 서브 행렬은 존재하지 않게 됨은 물론이다.
일 예로, 1_1은 첫 번째 블록 열에 포함되어 있는 첫 번째 non-zero 행렬을 나타내고, 1_2는 첫 번째 블록 열에 포함되어 있는 두 번째 non-zero 행렬을 나타내고, 1_3은 첫 번째 블록 열에 포함되어 있는 세 번째 non-zero 행렬을 나타내고, 1_4는 첫 번째 블록 열에 포함되어 있는 네 번째 non-zero 행렬을 나타낸다. 이런 식으로, 마지막 블록 열인 N번째 블록 열에 포함되어 있는 첫 번째 non-zero 행렬이 N_1이고, N번째 블록 열에 포함되어 있는 두 번째 non-zero 행렬이 N_2이 되는 것이다.
또한, 도 3에 도시되어 있는 패리티 검사 행렬 Hb는 총 4개의 부분 행렬(partial matrix)들, 즉 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4로 구분된다고 가정하기로 한다. 이렇게, 상기 패리티 검사 행렬 Hb을 총 4개의 부분 행렬들, 즉 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4로 구분하는 이유는 고속 데이터 처리가 가능하고, 낮은 전력을 소모하는 LDPC 디코더를 구현하기 위해서이다.
그러면 여기서 상기 패리티 검사 행렬 Hb를 4개의 부분 행렬들로 구분하는 방식에 대해서 구체적으로 설명하면 다음과 같다.
먼저, 상기 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4 각각은 블록 열을 기준으로 미리 설정된 개수의, 일 예로 1개의 non-zero 서브 행렬만을 포함되도록 구성된다. 상기 LDPC 디코더가 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message, 이하 “variable-to-check message”라 칭하기로 한다)들을 저장하기 위해서 상기 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4는 메모리로 구현될 수 있다.
그러면 여기서 도 4를 참조하여 도 3의 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4에 대응되는 메모리 구조에 대해서 설명하기로 한다.
도 4는 도 3의 부분 행렬 M1과, 부분 행렬 M2와, 부분 행렬 M3과, 부분 행렬 M4에 대응되는 메모리 구조를 개략적으로 도시한 도면이다.
도 4를 참조하면, 부분 행렬 M1에 대응되는 메모리는 M1 메모리이며, 부분 행렬 M2에 대응되는 메모리는 M2 메모리이며, 부분 행렬 M3에 대응되는 메모리는 M3 메모리이며, 부분 행렬 M4에 대응되는 메모리는 M4 메모리이다. 즉, 상기 M1 메모리는 상기 부분 행렬 M1에 대한 variable-to-check message들을 저장하기 위한 메모리이며, 상기 M2 메모리는 상기 부분 행렬 M2에 대한 variable-to-check message들을 저장하기 위한 메모리이며, 상기 M3 메모리는 상기 부분 행렬 M3에 대한 variable-to-check message들을 저장하기 위한 메모리이며, 상기 M4 메모리는 상기 부분 행렬 M4에 대한 variable-to-check message들을 저장하기 위한 메모리이다.
상기 M1 메모리와, M2 메모리와, M3 메모리 및 M4 메모리 각각이 포함하는 영역들의 개수는 해당 부분 행렬이 포함하는 non-zero 서브 행렬들의 개수와 동일하며, 상기 M1 메모리와, M2 메모리와, M3 메모리 및 M4 메모리 각각이 포함하는 영역들 각각은 z x 메시지 비트들의 개수에 상응하는 사이즈를 가진다.
상기에서 설명한 바와 같이, 상기 M1 메모리와, M2 메모리와, M3 메모리 및 M4 메모리를 구현하는 이유는 상기 LDPC 디코더가 포함하는 메모리 개수를 최소시켜 메모리 리드(read)/라이트(write) 횟수를 감소시킴과 동시에 패리티 검사 행렬에 최적화된 LDPC 디코더 구조를 구현하도록 하여 상기 LDPC 디코더가 저전력 LDPC 디코더로 구현될 수 있도록 하기 위함이다.
한편, 도 4에 도시되어 있는 메모리 구조는 도 3에 도시되어 있는 패리티 검사 행렬 Hb를 기반으로 한다. 일반적인 LDPC 부호에서 패리티 검사 행렬은 각 열에 포함되는 non-zero 엘리먼트(element)들의 개수가 각 행에 포함되는 non-zero 엘리먼트들의 개수보다 작기 때문에, 도 4에 나타낸 바와 같은 메모리 구조를 필요로 하게 되며, 이를 구체적으로 설명하면 다음과 같다.
먼저, 도 3에 도시되어 있는 바와 같은 non-zero 행렬들 1_1, 1_2, 1_3, 1_4 각각에 해당하는 메시지를 리드/라이트하기 위해서는 도 4에 도시되어 있는 바와 같은 메모리들, 즉 M1 메모리와, M2 메모리와, M3 메모리와, M4 메모리에서 상기 non-zero 행렬들 1_1, 1_2, 1_3, 1_4에 해당하는 위치를 사용하여 non-zero 행렬들 1_1, 1_2, 1_3, 1_4에 해당하는 메시지를 동시에 업데이트(update)한다.
상기에서 설명한 바와 같은 방식으로 상기 패리티 검사 행렬 Hb에서 영이 아닌 모든 메시지들에 대해서 상기 M1 메모리와, M2 메모리와, M3 메모리와, M4 메모리의 메모리 어드레스(memory address)를 사용하여 메시지 업데이트 동작을 수행할 수 있다.
따라서, 본 발명에서는 도 3 및 도 4에서 설명한 바와 같은 패리티 검사 행렬 Hb와 상기 패리티 검사 행렬 Hb에 따른 메모리 매핑(memory mapping) 방식과 함께, shuffled decoding algorithm을 사용하여 데이터 처리량을 향상시키고 메모리 리드/라이트 횟수를 감소시키는 LDPC 디코더 및 방법을 제안하며, 이에 대해서 구체적으로 설명하면 다음과 같다.
먼저, 도 5를 참조하여 본 발명의 일 실시예에 따른 통신 시스템의 신호 수신 장치에서 LDPC 디코더의 동작 과정에 대해서 설명하면 다음과 같다.
도 5는 본 발명의 일 실시예에 따른 통신 시스템의 신호 수신 장치에서 LDPC 디코더의 동작 과정을 개략적으로 도시한 도면이다.
도 5를 참조하면, 먼저 511단계에서 상기 LDPC 디코더는 패리티 검사 행렬 H를 상기 패리티 검사 행렬 H에 포함되어 있는 서브 행렬들 중 non-zero 행렬들만을 n_c 형태로 표현하고, 다시 이를 4개의 부분 행렬들로 분할한 형태를 가지는 패리티 검사 행렬 Hb를 생성한 후 513단계로 진행한다.
상기 513단계에서 상기 LDPC 디코더는 상기 생성된 패리티 검사 행렬 Hb를 사용하여 디코딩 제어 정보를 생성하고 515단계로 진행한다. 여기서, 상기 디코딩 제어 정보는 도 4에서 설명한 바와 같은 variable-to-check message 업데이트 동작을 수행함으로써 획득될 수 있으며, 따라서 이에 대한 구체적인 설명은 생략하기로 한다.
상기 515단계에서 상기 LDPC 디코더는 상기 생성된 디코딩 제어 정보를 사용하여 상기 패리티 검사 행렬 Hb의 부분 행렬들 M1, M2, M3, M4에 대응되는 M1 메모리와, M2 메모리와, M3 메모리와, M4 메모리에 디코딩될 수신 데이터를 저장한다.
한편, 도 5에서는 상기 LDPC 디코더가 직접 패리티 검사 행렬 H를 패리티 검사 행렬 Hb로 생성하는 동작을 수행하는 경우를 가정하여 설명하였으나, 상기 LDPC 디코더는 직접 패리티 검사 행렬 H를 패리티 검사 행렬 Hb로 생성하는 동작을 수행하는 것이 아니라 미리 설정되어 있는 패리티 검사 행렬 Hb를 사용하여 LDPC 디코딩 동작을 수행할 수도 있음은 물론이다.
도 5에서는 본 발명의 일 실시예에 따른 통신 시스템의 신호 수신 장치에서 LDPC 디코더의 동작 과정에 대해서 설명하였으며, 다음으로 도 6을 참조하여 일반적인 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하기로 한다.
도 6은 일반적인 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면이다.
도 6을 참조하면, 먼저 참조 번호 601은 부호 길이(code length)가 8이고, 부호율(code rate)이 1/2(code length = 8, code rate = 1/2)인 패리티 검사 행렬 H를 나타낸다. 또한, 참조 부호 602는 패리티 검사 행렬 H에 해당하는 이분(bipartite, 이하 ‘bipartite’라 칭하기로 한다) 그래프를 나타낸다.
상기 bipartite 그래프(602)는 상기 패리티 검사 행렬 H(601)가 포함하는 행들에 대응하는 부분을 검사 노드(check node)들 C1, C2, C3, C4로 구성하고, 상기 패리티 검사 행렬 H(601)가 포함하는 열들에 대응하는 부분을 변수 노드(variable node)들 V1, V2, …,V8 들로 구성하고, 상기 패리티 검사 행렬 H(601)가 포함하는 엘리먼트들 중 '1'(non-zero) 의 값을 가지는 엘리먼트들에 대응하는 부분을 검사 노드와 변수 노드를 연결하는 에지(edge)로 구성함으로써 생성된다.
상기 bipartite 그래프(602)에서 Cm, m = 1,2,…,4은 체크 노드를 나타낸다. 여기서, m은 상기 패리티 검사 행렬 H(601)가 포함하는 행들의 위치를 나타낸다. 또한, 상기 bipartite 그래프(602)에서 Vn, n = 1, 2, …, 8는 변수 노드를 나타낸다. 여기서, n은 상기 패리티 검사 행렬 H(601)가 포함하는 열들의 위치를 나타낸다.
또한, 상기 bipartite 그래프(602)에서 Rmn은 검사 노드 Cm 에서 변수 노드 Vn로 전달되는 메시지를 나타낸다. 일 예로, 상기 bipartite 그래프(602)에서 검사 노드 C1 에서 4개의 변수 노드들(V1, V2, V6, V8) 각각으로 전달되는 메시지들은 R11, R12 , R16, R18로 표현된다. 즉, Rmn은 변수 노드 Vn으로 전달되는 검사 노드 Cm의 출력 메시지를 나타낸다. 또한, 상기 bipartite 그래프(602)에서 Qmn은 검사 노드 Cm으로 전달되는 변수 노드 Vn의 출력 메시지를 나타낸다.
한편, 검사 노드 Cm에 연결되는 변수 노드들의 집합을 N(m)이라고 가정하면, N(m)은 N(m) = {n: Hmn = 1}와 같이 표현될 수 있다. 일 예로, 상기 bipartite 그래프(602)에 포함되어 있는 검사 노드 C1에 연결되는 변수 노드들의 집합인 N(m = 1)는 N(m = 1) = {1, 2, 6, 8}와 같이 표현될 수 있다.
또한, 변수 노드 Vn 에 연결되는 검사 노드들의 집합을 M(n)이라고 가정하면, M(n)은 M(n) = {m: Hmn = 1}와 같이 표현될 수 있다. 상기 bipartite 그래프(602)에 포함되어 있는 변수 노드 V1에 연결되는 검사 노드들의 집합인 M(n = 1)는 M(n = 1) = {1, 4}와 같이 표현될 수 있다.
한편, 상기 LDPC 디코더에서 수행되는 shuffled decoding 업데이트 동작의 초기 동작은 Rmn = 0, Qmn = Ln와 같이 나타낼 수 있다. 여기서, Ln은 상기 LDPC 디코더의 입력일 뿐만 아니라, 이와 동시에 변수 노드 Vn에 대한 입력 메시지로 로그 우도 비(Log-Likelihood Ratio: LLR, 이하 "LLR"이라 칭하기로 한다) 값들을 표현된다.
따라서,
Figure pat00009
와 같은 조건에서, Rmn 메시지와 Qmn 메시지는 하기 수학식 1 내지 수학식 4와 같이 표현될 수 있다.
Figure pat00010
Figure pat00011
Figure pat00012
Figure pat00013
상기 수학식 1 내지 수학식 4에서, 변수 i는 현재의 메시지 업데이트 프로세스를 나타내고, i-1은 현재의 메시지 업데이트 프로세스 바로 이전의 메시지 업데이트 프로세스를 나타낸다.
또한, 상기 수학식 1에서,
Figure pat00014
는 현재의 메시지 업데이트 프로세스, 즉 메시지 업데이트 프로세스 #i에서 검사 노드 Cm 에서 변수 노드 Vn로 전달되는 메시지를 계산하기 위한 중간 계산을 나타낸다.
또한, 상기 수학식 2에서는, 상기 수학식 1에서 계산된
Figure pat00015
을 입력하여 메시지 업데이트 프로세스 #i에서 검사 노드 Cm에서 변수 노드 Vn로 전달되는 출력 메시지들을
Figure pat00016
으로 표현된다. 즉,
Figure pat00017
는 현재의 메시지 업데이트 프로세스, 즉 메시지 업데이트 프로세스 #i에서 검사 노드 Cm에 해당하는 출력 메시지들을 나타낸다.
또한, 상기 수학식 3에서는,
Figure pat00018
는 메시지 업데이트 프로세스 #i에서 변수 노드 Vn에서 검사 노드 Cm로 전달되는 메시지이다. 즉,
Figure pat00019
는 메시지 업데이트 프로세스 #i에서 변수 노드 Vn에 해당하는 출력 메시지들을 나타낸다.
또한, 상기 수학식 4에서는,
Figure pat00020
는 메시지 업데이트 프로세스 #i에서 변수 노드 Vn 에 해당하는 경판정(hard decision) 값으로 복호 값과 동일하다. 즉,
Figure pat00021
는 메시지 업데이트 프로세스 #i에서 변수 노드 Vn에 해당하는 복호 출력 메시지를 나타낸다.
상기 수학식 1 내지 수학식 2는 하드웨어 복잡도가 높은 신뢰도 확산(Belief Propagation: BP, 이하 "BP"라 칭하기로 한다) 알고리즘들 중 하나를 나타내고, 하드웨어 복잡도가 낮은 min-sum 디코딩 알고리즘과, normalized min-sum 디코딩 알고리즘과, offset min-sum 디코딩 알고리즘을 대체할 수 있다.
도 6에서는 일반적인 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하였으며, 다음으로 도 7을 참조하여 일반적인 통신 시스템의 일 실시예에 따른 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하기로 한다.
도 7은 일반적인 통신 시스템의 일 실시예에 따른 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면이다.
도 7을 참조하면, 먼저 참조 번호 701은 변수 노드 V1의 메시지를 업데이트하기 위하여 이미 업데이트된 R11 메시지와 R41 메시지를 사용하는 bipartite 그래프를 나타낸다. 여기서, R11, R41 는 각각 (Q12,Q16,Q18), (Q44,Q45,Q46) 입력 값을 사용하여 메시지 업데이트 동작을 수행한다. 상기에서 설명한 바와 같이, 특정 변수 노드들 {V1, V2, V3, … V8}에 연결된 검사 노드들 {(C1, C4), (C1, C2, C3), (C2, C3), …,(C1, C3)}을 검출하고, 동시에 상기 특정 변수 노드들 {V1, V2, V3, … V8}의 출력 메시지를 업데이트한다.
다음으로, 참조 번호 702는 변수 노드 V2를 업데이트하기 위하여 필요한 Rmn 출력 메시지들을 나타내는 bipartite 그래프를 나타낸다.
마지막으로, 참조 번호 703은 변수 노드 V8을 업데이트하는 동작을 나타내는 bipartite 그래프를 나타낸다.
결과적으로, 상기 bipartite 그래프(603)와 같은 변수 노드 V8의 출력 메시지 업데이트 과정을 통해 모든 변수 노드들에 대한 출력 메시지 업데이트 과정이 수행된다.
한편, 본 발명의 일 실시예에서 제안하는 shuffled decoding 업데이트 동작은 하드웨어 복잡도가 낮은 min-sum 계열들의 디코딩 알고리즘들, 즉 min-sum 디코딩 알고리즘과, normalized min-sum 디코딩 알고리즘과, offset min-sum 디코딩 알고리즘을 사용하여 구현될 수 있으며, 이에 대해서 구체적으로 설명하면 다음과 같다.
먼저, LDPC 디코더의 입력 메시지 Ln,
Figure pat00022
에 상응하게 각 변수 노드들의 출력 메시지 Qmn은 Qmn = Ln와 같이 업데이트된다. 또한, 모든 검사 노드들 Cm,
Figure pat00023
에 대하여 (min1st, min2nd, 1st_loc, 2nd_loc)와 같은 형태로 출력 메시지들을 업데이트한다. 여기서, min1st 는 검사 노드 Cm의 입력 메시지들 중 최소 값을 나타내고, min2nd는 검사 노드 Cm의 입력 메시지들 중 min1st를 제외한 입력 메시지들 중 최소 값을 나타내고, 1st_loc는 검사 노드 Cm의 입력 메시지들 중 min1st에 해당하는 입력 메시지의 위치 정보를 나타내고, 2nd_loc는 검사 노드 Cm의 입력 메시지들 중 min2nd에 해당하는 입력 메시지의 위치 정보를 나타낸다.
도 7에서는 일반적인 통신 시스템의 일 실시예에 따른 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하였으며, 다음으로 도 8을 참조하여 도 6의 패리티 검사 행렬 H를 사용하는 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하기로 한다.
도 8은 도 6의 패리티 검사 행렬 H를 사용하는 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정을 개략적으로 도시한 도면이다.
도 8을 참조하면, 먼저 참조 번호 801은 변수 노드 출력 메시지 L1을 입력으로 하여 검사 노드 C1, C4를 업데이트하는 과정을 나타내는 bipartite 그래프를 나타낸다.
또한, 참조 번호 802는 변수 노드 출력 메시지 L2를 입력으로 하여 검사 노드 C1, C2, C3를 업데이트하는 과정을 나타내는 bipartite 그래프를 나타낸다.
또한, 참조 번호 803은 모든 변수 노드들(V1 ~ V8)에 해당하는 검사 노드 업데이트 과정을 나타내는 bipartite 그래프를 나타낸다. 즉, bipartite 그래프(803)에서 모든 검사 노드들인 C1, C2, C3, C4의 출력 메시지들, 즉 C1=(min1st, min2nd, 1st_loc, 2nd_loc), C2=(min1st, min2nd, 1st_loc, 2nd_loc), C3 =(min1st, min2nd, 1st_loc, 2nd_loc), C4 =(min1st, min2nd, 1st_loc, 2nd_loc)를 변수 노드 출력 메시지 L1, L2, …,L8 을 입력으로 하여 업데이트한다.
이를 다시 한번 정리하면,
Figure pat00024
에 해당하는 검사 노드 Cm의 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc) 값들은 감사 노드 Cm,
Figure pat00025
에서 변수 노드 Vn으로 전달되는 검사 노드 출력 메시지 Rmn = Cm, 와 동일하다.
한편, 변수 노드 Vn,
Figure pat00026
에서 검사 노드로 전달되는 변수 노드 출력 메시지 Qmn는 하기 수학식 5 내지 수학식 6과 같이 나타낼 수 있다.
Figure pat00027
Figure pat00028
상기 수학식 5에서, 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn은 변수 노드 Vn, 에 해당하는 검사 노드 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc)을 업데이트 하기 위한 입력 값으로 사용된다.
또한, 상기 수학식 6은 변수 노드 Vn에 해당하는 n번째 노드에 대한 복호 출력 메시지를 나타낸다.
도 8에서는 도 6의 패리티 검사 행렬 H를 사용하는 통신 시스템의 신호 수신 장치의 LDPC 디코더에서 shuffled decoding algorithm을 사용하여 메시지 업데이트 동작을 수행하는 과정에 대해서 설명하였으며, 다음으로 도 9를 참조하여 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더가 포함하는 검사 상태 프로세서(check status processor)의 동작 과정에 대해서 설명하기로 한다.
도 9는 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더가 포함하는 검사 상태 프로세서의 동작 과정을 개략적으로 도시한 도면이다.
도 9를 참조하면, 먼저 검사 상태 프로세서(911)는 변수 노드 출력 메시지 Qmn을 사용하여 검사 노드 출력 메시지 Cm를 업데이트한다.
또한, 본 발명에서 제안하는 LDPC 디코더는 저전력 디코더로서, 본 발명에서 제안하는 shuffled decoding algorithm을 사용한다. 상기 shuffled decoding algorithm에서는, 특히 검사 노드 출력 메시지 Rmn (=Cm)를 업데이트하기 위하여, 현재의 메시지 업데이트 프로세스 이전에 업데이트된 변수 노드 출력 메시지 Qmn와 가장 마지막으로 업데이트된 Qmn들을 레지스터(register)들 또는 1개의 메모리 뱅크를 사용하여 업데이트한다.
따라서, 상기 검사 상태 프로세서(911)는 일반적인 min-sum 디코딩 알고리즘과, normalized min-sum 디코딩 알고리즘과, offset min-sum 디코딩 알고리즘 등에서 (min1st, min2nd, 1st_loc, 2nd_loc)=(first minimum, second minimum, first minimum location, second minimum location) 정보를 업데이트하는 방식에도 적용 가능하다.
도 9에서는 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더가 포함하는 검사 상태 프로세서의 동작 과정에 대해서 설명하였으며, 다음으로 도 10을 참조하여 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더의 동작 과정에 대해서 설명하기로 한다.
도 10은 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더의 동작 과정을 개략적으로 도시한 도면이다.
도 10을 참조하면, 먼저 1011단계에서 LDPC 디코더는 모든 검사 노드 출력 메시지 Cm = (min1st, min2nd, 1st_loc, 2nd_loc),
Figure pat00029
정보를 초기화하고 1013단계로 진행한다. 상기 1013단계에서 상기 LDPC 디코더는 상기 LDPC 디코더의 입력 메시지 Ln,
Figure pat00030
에 따라 검사 노드 출력 메시지 Cm,
Figure pat00031
를 업데이트하고 1015단계로 진행한다.
상기 1015단계에서 상기 LDPC 디코더는 검사 노드 출력 메시지 Cm를 입력으로 하여 변수 노드 출력 메시지 Qmn와 변수 노드 복호 출력 메시지 Qn를 상기 수학식 5 및 수학식 6을 사용하여 업데이트하고 1017단계로 진행한다. 상기 1017단계에서 상기 LDPC 디코더는 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 일시적으로 저장 또는 유지하고 1019단계로 진행한다. 상기 1019단계에서 상기 LDPC 디코더는 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 사용하여 검사 노드 출력 메시지 Cm를 업데이트하고 1021단계로 진행한다. 상기 1021단계에서 상기 LDPC 디코더는 상기 통신 시스템에서 사용하는 패리티 검사 행렬 H이 포함하는 모든 열들에 대해서 메시지 업데이트 동작이 완료되었는지 검사한다.
상기 검사 결과 패리티 검사 행렬 H이 포함하는 모든 열들에 대해서 메시지 업데이트 동작이 완료되지 않았을 경우 상기 LDPC 디코더는 상기 1015단계로 되돌아간다.
한편, 도 10에서는 상기 LDPC 디코더가 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 일시적으로 저장 또는 유지하고, 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 사용하여 검사 노드 출력 메시지 Cm를 업데이트하는 경우에 대해서 설명하였지만, 상기 LDPC 디코더는 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 사용하여 검사 노드 출력 메시지 Cm를 업데이트한 후, 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 일시적으로 저장 또는 유지할 수도 있고, 혹은 상기 LDPC 디코더는 상기 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 일시적으로 저장 또는 유지함과 동시에 업데이트된 변수 노드 출력 메시지들 Qmn, Qn을 사용하여 검사 노드 출력 메시지 Cm를 업데이트할 수도 있음은 물론이다.
도 10에서는 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 LDPC 디코더의 동작 과정에 대해서 설명하였으며, 다음으로 도 11을 참조하여 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 내부 구조에 대해서 설명하기로 한다.
도 11은 본 발명의 일 실시예에 따른 통신 시스템에서 신호 수신 장치의 내부 구조를 개략적으로 도시한 도면이다.
도 11을 참조하면, 상기 신호 수신 장치(1100)는 수신 유닛(unit)(1111)과, LDPC 디코더(1113)와, 제어 유닛(1115)과, 저장 유닛(1117)을 포함한다.
먼저, 상기 제어 유닛(1115)은 상기 신호 수신 장치(1100)의 전반적인 동작을 제어하며, 도 2 내지 도 5와, 도 7 내지 도 10에서 설명한 바와 같은 LDPC 디코딩 동작 수행에 관련된 전반적인 동작을 제어한다. 상기 LDPC 디코딩 동작 수행에 대해서는 도 2 내지 도 5와, 도 7 내지 도 10에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 수신 유닛(1111)은 상기 제어 유닛(1115)의 제어에 따라 신호 송신 장치로부터 각종 신호를 수신하고, 상기 수신한 신호에 대해서 미리 설정되어 있는 신호 수신 처리 방식에 상응하는 신호 수신 처리 동작을 수행한다.
상기 LDPC 디코더(1113)는 상기 제어 유닛(1115)의 제어에 따라 상기 수신 유닛(1111)에서 출력한 신호에 대해서 미리 설정되어 있는 LDPC 디코딩 방식에 상응하는 LDPC 디코딩 동작을 수행한다. 여기서, 상기 LDPC 디코더(1113)에서 수행하는 LDPC 디코딩 동작은 도 2 내지 도 5와, 도 7 내지 도 10에서 설명한 바와 동일하므로, 여기서는 그 상세한 설명을 생략하기로 한다.
상기 저장 유닛(1117)은 상기 신호 수신 장치(1100)의 LDPC 디코딩 동작 수행에 관련된 프로그램(program)과 각종 데이터 등을 저장한다. 또한, 상기 저장 유닛(1117)은 상기 수신 유닛(1111)이 상기 신호 송신 장치로부터 수신한 각종 신호를 저장한다.
한편, 도 11에는 상기 신호 수신 장치(1100)가 수신 유닛(1111)과, LDPC 디코더(1113)와, 제어 유닛(1115)과, 저장 유닛(1117)과 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 신호 수신 장치(1100)는 상기 수신 유닛(1111)과, LDPC 디코더(1113)와, 제어 유닛(1115)과, 저장 유닛(1117)이 통합된 1개의 통합 유닛으로 구현 가능함은 물론이다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (28)

  1. 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법에 있어서,
    신호 송신 장치로부터 신호를 수신하는 과정과,
    상기 수신 신호에 대해서 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정을 포함하며,
    상기 제1 패리티 검사 행렬은
    Figure pat00032
    개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
    Figure pat00033
     개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며,
    상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  2. 제1항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  3. 제1항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현되며,
    상기 부분 행렬들 각각이 포함하는 영역들의 개수는 해당 부분 행렬이 포함하는 non-zero 서브 행렬들의 개수와 동일하며,
    상기 부분 행렬들 각각이 포함하는 영역들 각각은 z x 메시지 비트들의 개수에 상응하는 사이즈를 가짐을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  4. 제1항에 있어서,
    상기 부분 행렬들 각각에서 상기 non-zero 행렬들에 해당하는 위치를 사용하여 상기 non-zero 행렬들에 해당하는 메시지를 동시에 업데이트(update)하는 과정을 더 포함함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  5. 제1항에 있어서,
    상기 수신 신호에 대해서 상기 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정은;
    현재의 메시지 업데이트 프로세스(message update process) 이전에 업데이트된 변수 노드(variable node) 출력 메시지 Qmn와 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn들을 레지스터(register)들 또는 1개의 메모리 뱅크(memory bank)를 사용하여 업데이트하는 과정을 포함함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  6. 제5항에 있어서,
    Figure pat00034
    에 해당하는 검사 노드(check node) Cm의 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc) 값들은 감사 노드 Cm 에서 변수 노드 Vn,
    Figure pat00035
    으로 전달되는 검사 노드 출력 메시지 Rmn = Cm,
    Figure pat00036
    와 동일함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  7. 제5항에 있어서,
    상기 변수 노드 Vn,
    Figure pat00037
    에서 검사 노드 Cm으로 전달되는 변수 노드 출력 메시지 Qmn는 하기 수학식 7 내지 수학식 8과 같이 표현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
    [수학식 7]
    Figure pat00038

    [수학식 8]
    Figure pat00039

    상기 수학식 7에서, Qmn은 가장 마지막으로 업데이트된 변수 노드 출력 메시지를 나타내고, 상기 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn은 변수 노드 Vn,
    Figure pat00040
    에 해당하는 검사 노드 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc)을 업데이트 하기 위한 입력 값으로 사용되고, Ln은 변수 노드 Vn에 대한 입력 메시지이며,
    상기 수학식 8에서 Qmn은 변수 노드 Vn에 해당하는 n번째 노드에 대한 복호 출력 메시지를 나타냄을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치의 신호 수신 방법.
  8. 저밀도 패리티 검사(Low Density Parity Check: LDPC) 디코더의 동작 방법에 있어서,
    입력 신호에 대해 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정을 포함하며,
    상기 제1 패리티 검사 행렬은
    Figure pat00041
    개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
    Figure pat00042
    개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며,
    상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 하는 LDPC 디코더의 동작 방법.
  9. 제8항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현됨을 특징으로 하는 LDPC 디코더의 동작 방법.
  10. 제8항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현되며,
    상기 부분 행렬들 각각이 포함하는 영역들의 개수는 해당 부분 행렬이 포함하는 non-zero 서브 행렬들의 개수와 동일하며,
    상기 부분 행렬들 각각이 포함하는 영역들 각각은 z x 메시지 비트들의 개수에 상응하는 사이즈를 가짐을 특징으로 하는 LDPC 디코더의 동작 방법.
  11. 제8항에 있어서,
    상기 부분 행렬들 각각에서 상기 non-zero 행렬들에 해당하는 위치를 사용하여 상기 non-zero 행렬들에 해당하는 메시지를 동시에 업데이트(update)하는 과정을 더 포함함을 특징으로 하는 LDPC 디코더의 동작 방법.
  12. 제8항에 있어서,
    상기 입력 신호에 대해서 상기 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 과정은;
    현재의 메시지 업데이트 프로세스(message update process) 이전에 업데이트된 변수 노드(variable node) 출력 메시지 Qmn와 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn들을 레지스터(register)들 또는 1개의 메모리 뱅크(memory bank)를 사용하여 업데이트하는 과정을 포함함을 특징으로 하는 LDPC 디코더의 동작 방법.
  13. 제12항에 있어서,
    Figure pat00043
    에 해당하는 검사 노드(check node) Cm의 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc) 값들은 감사 노드 Cm 에서 변수 노드 Vn,
    Figure pat00044
    으로 전달되는 검사 노드 출력 메시지 Rmn = Cm,
    Figure pat00045
    와 동일함을 특징으로 하는 LDPC 디코더의 동작 방법.
  14. 제12항에 있어서,
    상기 변수 노드 Vn,
    Figure pat00046
    에서 검사 노드 Cm으로 전달되는 변수 노드 출력 메시지 Qmn는 하기 수학식 9 내지 수학식 10과 같이 표현됨을 특징으로 하는 LDPC 디코더의 동작 방법.
    [수학식 9]
    Figure pat00047

    [수학식 10]
    Figure pat00048

    상기 수학식 9에서, Qmn은 가장 마지막으로 업데이트된 변수 노드 출력 메시지를 나타내고, 상기 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn은 변수 노드 Vn,
    Figure pat00049
    에 해당하는 검사 노드 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc)을 업데이트 하기 위한 입력 값으로 사용되고, Ln은 변수 노드 Vn에 대한 입력 메시지이며,
    상기 수학식 10에서 Qmn은 변수 노드 Vn에 해당하는 n번째 노드에 대한 복호 출력 메시지를 나타냄을 특징으로 하는 LDPC 디코더의 동작 방법.
  15. 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템의 신호 수신 장치에 있어서,
    신호 송신 장치로부터 신호를 수신하는 수신 유닛과,
    상기 수신 신호에 대해서 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 LDPC 디코더를 포함하며,
    상기 제1 패리티 검사 행렬은
    Figure pat00050
    개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
    Figure pat00051
     개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며,
    상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  16. 제15항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  17. 제15항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현되며,
    상기 부분 행렬들 각각이 포함하는 영역들의 개수는 해당 부분 행렬이 포함하는 non-zero 서브 행렬들의 개수와 동일하며,
    상기 부분 행렬들 각각이 포함하는 영역들 각각은 z x 메시지 비트들의 개수에 상응하는 사이즈를 가짐을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  18. 제15항에 있어서,
    상기 LDPC 디코더는 상기 부분 행렬들 각각에서 상기 non-zero 행렬들에 해당하는 위치를 사용하여 상기 non-zero 행렬들에 해당하는 메시지를 동시에 업데이트(update)함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  19. 제15항에 있어서,
    상기 LDPC 디코더는 현재의 메시지 업데이트 프로세스(message update process) 이전에 업데이트된 변수 노드(variable node) 출력 메시지 Qmn와 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn들을 레지스터(register)들 또는 1개의 메모리 뱅크(memory bank)를 사용하여 업데이트함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  20. 제19항에 있어서,
    Figure pat00052
    에 해당하는 검사 노드(check node) Cm의 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc) 값들은 감사 노드 Cm 에서 변수 노드 Vn,
    Figure pat00053
    으로 전달되는 검사 노드 출력 메시지 Rmn = Cm,
    Figure pat00054
    와 동일함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  21. 제19항에 있어서,
    상기 변수 노드 Vn,
    Figure pat00055
    에서 검사 노드 Cm으로 전달되는 변수 노드 출력 메시지 Qmn는 하기 수학식 11 내지 수학식 12와 같이 표현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
    [수학식 11]
    Figure pat00056

    [수학식 12]
    Figure pat00057

    상기 수학식 11에서, Qmn은 가장 마지막으로 업데이트된 변수 노드 출력 메시지를 나타내고, 상기 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn은 변수 노드 Vn,
    Figure pat00058
    에 해당하는 검사 노드 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc)을 업데이트 하기 위한 입력 값으로 사용되고, Ln은 변수 노드 Vn에 대한 입력 메시지이며,
    상기 수학식 12에서 Qmn은 변수 노드 Vn에 해당하는 n번째 노드에 대한 복호 출력 메시지를 나타냄을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템에서 신호 수신 장치.
  22. 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호를 사용하는 통신 시스템의 신호 수신 장치에 있어서,
    입력 신호에 대해 미리 설정되어 있는 제1 패리티 검사 행렬에 상응하는 LDPC 디코딩 동작을 수행하는 LDPC 디코더를 포함하며,
    상기 제1 패리티 검사 행렬은
    Figure pat00059
    개의 서브 행렬(sub-matrix)들을 포함하는 제2 패리티 검사 행렬을 사용하여 생성되며, 상기 제2 패리티 검사 행렬에 포함되어 있는
    Figure pat00060
     개의 서브 행렬들 중 영 행렬이 아닌(non-zero) 행렬들만을 n_c 형태로 표현한 패리티 검사 행렬이며, n은 상기 제2 패리티 검사 행렬이 포함하는 블록 열들의 개수를 나타내고, c는 상기 제2 패리티 검사 행렬이 포함하는 n번째 블록 열에 포함되어 있는 non-zero 행렬의 개수를 나타내며,
    상기 제1 패리티 검사 행렬은 미리 설정된 개수의 부분 행렬(partial matrix)들로 구분되며, 상기 부분 행렬들 각각은 상기 제2 패리티 검사 행렬의 블록 열을 기준으로 미리 설정된 개수의 non-zero 서브 행렬만을 포함되도록 구성됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  23. 제22항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  24. 제22항에 있어서,
    상기 부분 행렬들 각각은 변수 노드-체크 노드 메시지(a message from a variable node to a check node: variable-to-check message)들을 저장하는 메모리 형태로 구현되며,
    상기 부분 행렬들 각각이 포함하는 영역들의 개수는 해당 부분 행렬이 포함하는 non-zero 서브 행렬들의 개수와 동일하며,
    상기 부분 행렬들 각각이 포함하는 영역들 각각은 z x 메시지 비트들의 개수에 상응하는 사이즈를 가짐을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  25. 제22항에 있어서,
    상기 LDPC 디코더는 상기 부분 행렬들 각각에서 상기 non-zero 행렬들에 해당하는 위치를 사용하여 상기 non-zero 행렬들에 해당하는 메시지를 동시에 업데이트(update)함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  26. 제22항에 있어서,
    상기 LDPC 디코더는 현재의 메시지 업데이트 프로세스(message update process) 이전에 업데이트된 변수 노드(variable node) 출력 메시지 Qmn와 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn들을 레지스터(register)들 또는 1개의 메모리 뱅크(memory bank)를 사용하여 업데이트함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  27. 제26항에 있어서,
    Figure pat00061
    에 해당하는 검사 노드(check node) Cm의 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc) 값들은 감사 노드 Cm 에서 변수 노드 Vn,
    Figure pat00062
    으로 전달되는 검사 노드 출력 메시지 Rmn = Cm,
    Figure pat00063
    와 동일함을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
  28. 제26항에 있어서,
    상기 변수 노드 Vn,
    Figure pat00064
    에서 검사 노드 Cm으로 전달되는 변수 노드 출력 메시지 Qmn는 하기 수학식 13 내지 수학식 14와 같이 표현됨을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
    [수학식 13]
    Figure pat00065

    [수학식 14]
    Figure pat00066

    상기 수학식 13에서, Qmn은 가장 마지막으로 업데이트된 변수 노드 출력 메시지를 나타내고, 상기 가장 마지막으로 업데이트된 변수 노드 출력 메시지 Qmn은 변수 노드 Vn,
    Figure pat00067
    에 해당하는 검사 노드 출력 메시지인 Cm = (min1st, min2nd, 1st_loc, 2nd_loc)을 업데이트 하기 위한 입력 값으로 사용되고, Ln은 변수 노드 Vn에 대한 입력 메시지이며,
    상기 수학식 14에서 Qmn은 변수 노드 Vn에 해당하는 n번째 노드에 대한 복호 출력 메시지를 나타냄을 특징으로 하는 LDPC 부호를 사용하는 통신 시스템의 신호 수신 장치.
KR1020130085860A 2013-07-22 2013-07-22 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법 KR102019893B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130085860A KR102019893B1 (ko) 2013-07-22 2013-07-22 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
US14/907,223 US10171203B2 (en) 2013-07-22 2014-07-22 Apparatus and method for receiving signal in communication system supporting low density parity check code
PCT/KR2014/006659 WO2015012572A1 (en) 2013-07-22 2014-07-22 Apparatus and method for receiving signal in communication system supporting low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130085860A KR102019893B1 (ko) 2013-07-22 2013-07-22 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150011085A true KR20150011085A (ko) 2015-01-30
KR102019893B1 KR102019893B1 (ko) 2019-09-09

Family

ID=52393534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130085860A KR102019893B1 (ko) 2013-07-22 2013-07-22 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법

Country Status (3)

Country Link
US (1) US10171203B2 (ko)
KR (1) KR102019893B1 (ko)
WO (1) WO2015012572A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200004404A (ko) * 2017-06-27 2020-01-13 텔레폰악티에볼라겟엘엠에릭슨(펍) 준-순환적 ldpc 코드에 대한 쉬프트 값의 설계
KR20220042181A (ko) * 2019-08-13 2022-04-04 지티이 코포레이션 균일 qc-ldpc 코드의 구축 방법 및 전자기기

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
US10484134B2 (en) * 2017-03-30 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
US10312939B2 (en) * 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
CN110808742A (zh) * 2019-11-22 2020-02-18 南京大学 一种适用于5g ldpc码的高效译码器架构

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251059A1 (en) * 2007-07-04 2010-09-30 Nxp B.V. Shuffled ldpc decoding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
US7730377B2 (en) 2004-07-22 2010-06-01 Texas Instruments Incorporated Layered decoding of low density parity check (LDPC) codes
KR20060135451A (ko) 2005-06-25 2006-12-29 삼성전자주식회사 저밀도 패리티 검사 행렬 부호화 방법 및 장치
US7607065B2 (en) * 2005-07-27 2009-10-20 Agere Systems Inc. Method and apparatus for block and rate independent decoding of LDPC codes
US8028216B1 (en) * 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
US20080052594A1 (en) 2006-07-28 2008-02-28 Yedidia Jonathan S Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
KR101405962B1 (ko) * 2008-02-28 2014-06-12 엘지전자 주식회사 Ldpc 코드를 이용한 복호화 방법
US8392786B2 (en) * 2008-05-07 2013-03-05 Broadcom Corporation LDPC coding systems for 60 GHz millimeter wave based physical layer extension
EP2395667B1 (en) * 2009-02-06 2015-12-16 Marvell Hispania S.L. Quasi-cyclic ldpc coding
US8341486B2 (en) 2010-03-31 2012-12-25 Silicon Laboratories Inc. Reducing power consumption in an iterative decoder
JP5485069B2 (ja) * 2010-08-06 2014-05-07 パナソニック株式会社 誤り訂正復号装置及び誤り訂正復号方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251059A1 (en) * 2007-07-04 2010-09-30 Nxp B.V. Shuffled ldpc decoding

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200004404A (ko) * 2017-06-27 2020-01-13 텔레폰악티에볼라겟엘엠에릭슨(펍) 준-순환적 ldpc 코드에 대한 쉬프트 값의 설계
CN110832782A (zh) * 2017-06-27 2020-02-21 瑞典爱立信有限公司 准循环ldpc码的移位值的设计
US11515893B2 (en) 2017-06-27 2022-11-29 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
US11848685B2 (en) 2017-06-27 2023-12-19 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
CN110832782B (zh) * 2017-06-27 2024-04-02 瑞典爱立信有限公司 准循环ldpc码的移位值的设计
KR20220042181A (ko) * 2019-08-13 2022-04-04 지티이 코포레이션 균일 qc-ldpc 코드의 구축 방법 및 전자기기

Also Published As

Publication number Publication date
WO2015012572A1 (en) 2015-01-29
KR102019893B1 (ko) 2019-09-09
US10171203B2 (en) 2019-01-01
US20160197701A1 (en) 2016-07-07

Similar Documents

Publication Publication Date Title
KR102019893B1 (ko) 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
JP6555759B2 (ja) 構造化されたldpcのコーディング方法、デコーディング方法、コーディング装置及びデコーディング装置
US10298261B2 (en) Reduced complexity non-binary LDPC decoding algorithm
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
JP5483875B2 (ja) Ldpc符号のブロックおよびレートに独立な復号の方法および装置
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US20170041024A1 (en) Method and apparatus for reducing idle cycles during ldpc decoding
WO2014122772A1 (ja) 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法
CN106936444B (zh) 一种集合译码方法和集合译码器
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US9853661B2 (en) On-the-fly evaluation of the number of errors corrected in iterative ECC decoding
US11258460B2 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
US10833704B1 (en) Low-density parity check decoder using encoded no-operation instructions
US10128869B2 (en) Efficient convergence in iterative decoding
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
Boncalo et al. Cost-efficient FPGA layered LDPC decoder with serial AP-LLR processing
US11108410B1 (en) User-programmable LDPC decoder
CN101777920B (zh) 低密度奇偶校验码的编码方法和编码译码装置
JP5510447B2 (ja) 復号装置および復号方法
CN113612485A (zh) 一种译码方法、译码装置、设备及存储装置
KR20080068218A (ko) 통신 시스템에서 데이터 수신 방법 및 장치
CN102136842B (zh) 一种译码器及译码方法
KR101073636B1 (ko) 저밀도 패리티 검사 부호를 이용한 복호화 장치
JP2011082865A (ja) 復号化装置

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