KR20080068218A - 통신 시스템에서 데이터 수신 방법 및 장치 - Google Patents

통신 시스템에서 데이터 수신 방법 및 장치 Download PDF

Info

Publication number
KR20080068218A
KR20080068218A KR1020070005663A KR20070005663A KR20080068218A KR 20080068218 A KR20080068218 A KR 20080068218A KR 1020070005663 A KR1020070005663 A KR 1020070005663A KR 20070005663 A KR20070005663 A KR 20070005663A KR 20080068218 A KR20080068218 A KR 20080068218A
Authority
KR
South Korea
Prior art keywords
message
value
node
input message
memory
Prior art date
Application number
KR1020070005663A
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 KR1020070005663A priority Critical patent/KR20080068218A/ko
Priority to US12/009,435 priority patent/US20080178066A1/en
Publication of KR20080068218A publication Critical patent/KR20080068218A/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes

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

본 발명은 저밀도 패리티 검사(LDPC: Low-Density Parity Check) 부호를 이용하는 통신 시스템에서 데이터 수신 방법 및 장치에 관한 것이다. 본 발명의 방법은, 통신 시스템에서 데이터 수신 방법에 있어서, 데이터를 수신하는 과정과, 상기 수신한 데이터의 저밀도 패리티 검사 행렬에 상응하는 검사 노드의 입력 메시지와 검사 노드 메시지를 이용하여 변수 노드로의 입력 메시지를 업데이트하여 상기 수신한 데이터를 복호하는 과정을 포함한다.
LDPC, BLDPC, 복호기, 노드 메모리, 직렬 스케줄링 방식, 플러딩 스케줄링 방식

Description

통신 시스템에서 데이터 수신 방법 및 장치{METHOD AND APPARATUS FOR RECEVING DATA IN A COMMUNICATION SYSTEM}
도 1은 일반적인 LDPC 부호의 패리티 검사 행렬을 도시한 도면.
도 2는 도 1의 LDPC 부호의 이분 그래프를 도시한 도면.
도 3은 LDPC 부호의 이분 그래프에서 변수 노드의 입출력 메시지를 설명하기 위한 도면.
도 4는 LDPC 부호의 이분 그래프에서 검사 노드의 입출력 메시지를 설명하기 위한 도면.
도 5는 LDPC 부호의 복호기 구조를 개략적으로 도시한 도면.
도 6은 복호기의 노드 프로세서 구조를 개략적으로 도시한 도면.
도 7은 본 발명의 실시예에 통신 시스템에서 LDPC 부호의 이분 그래프에서 검사 노드의 입출력 메시지를 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 통신 시스템에서 수신기의 메시지 패싱 동작을 설명하기 위한 도면.
도 9는 본 발명의 실시예에 따른 통신 시스템에서 수신기의 구조를 개략적으로 도시한 도면.
도 10은 본 발명의 실시예에 따른 통신 시스템에서 복호기의 적응적 변수 프 로세서 구조를 개략적으로 도시한 도면.
도 11은 본 발명의 실시예에 따른 통신 시스템에서 복호기의 적응적 변수 프로세서 동작을 설명하기 위한 도면.
도 12는 도 11의 적응적 변수 프로세서의 동작을 설명하기 위한 도면.
도 13은 본 발명의 실시예에 따른 통신 시스템에서 LDPC 부호의 패리티 검사 행렬을 도시한 도면.
도 14는 본 발명의 실시예에 따른 통신 시스템에서 복호기의 어드레스 정렬 동작을 도시한 도면.
본 발명은 통신 시스템에 관한 것으로, 특히 저밀도 패리티 검사(LDPC: Low-Density Parity Check, 이하 'LDPC'라 칭하기로 함) 부호를 이용하는 통신 시스템에서 데이터 수신 방법 및 장치에 관한 것이다.
갤러거(Gallager)에 의해 최초로 제안된 LDPC 코드는 맥케이(MacKay) 등에 의해 재조명되어 합-곱(sum-product) 알고리즘을 기반으로 하는 신뢰 전파 복호(belief propagation decoding)에 의해 새넌(Shannon)의 용량성 한계에 근접하는 우수한 성능을 보일 수 있는 부호로 관심을 모으기 시작하였다.
이후 리챠드슨(Richardson) 등은 LDPC 코드를 구성하는 팩터 그래프(factor graph) 상에서 복호 과정 중에 생성, 업데이트되는 메시지들의 확률 분포(probability distribution)가 반복됨에 따라 변화하는 것을 추적하는 밀도 확산(density evolution) 기법을 제안하였다. 또한, 이를 이용하여 사이클 프리(cycle free)의 팩터 그래프 상에서 무한대의 반복을 가정하였을 때, 에러 확률을 0으로 수렴하게 할 수 있는 채널 파라미터(threshold)를 최대화 할 수 있는 팩터 그래프의 변수와 검사 노드들의 차수 분포(degree distribution)를 제안하였다. 그리고, 이러한 경우가 사이클이 존재하는 유한한 길이의 LDPC 코드에 대해서도 적용 가능함을 이론적으로 보였다. 이러한 밀도 확산 기법을 이용하여 불규칙 LDPC 코드의 이론적인 채널 용량이 새넌 한계에 불과 0.0045 dB까지 근접할 수 있음을 보였다.
한편, LDPC 코드는 코드 자체의 특성상 패킷 사이즈(packet size)가 클수록 성능이 증가하므로, 이로 인해 부호/복호 과정이 복잡해질 수 있다. 최근 플라리온(Flarion)사는 패킷 사이즈가 큰 경우에도 낮은 하드웨어 복잡도로 구현할 수 있는 멀티 에지 타입 벡터(multi-edge type vector) LDPC 코드를 제안한 바 있다. 상기 벡터 LDPC, 예컨대 블록 LDPC(BLDPC: block LDPC, 이하 'BLDPC'라 칭하기로 함)는 작은 사이즈의 기본 H 매트릭스, 예컨대 검사 매트릭스(check matrix)로도 벡터화된 구조를 이용하여 병렬 구현을 통해 효율적인 부호기/복호기의 구현이 가능한 코드이다. 상기 BLDPC의 병렬 팩터로 인한 병렬 구현은 다른 코드들, 예를 들어 터보 코드(Turbo code), 컨벌루셔널 코드(convolutional code) 등에 비해 높은 처리율(throughput)을 갖는 복호기의 구현을 가능하게 하므로 데이터율(data rate)이 비약적으로 증가하는 차세대 이동 통신 시스템에서 상기와 같은 기본 코드들을 대체할 수 있는 대안으로 거론되고 있다.
이러한 LDPC 코드는 일반적인 선형 블록 코드들의 특수한 경우이며, 패리티 검사 매트릭스(parity check matrix)로 정의된다. 그러면 여기서, 도 1을 참조하여 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
도 1은 일반적인 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
도 1을 참조하면, 상기 LDPC 부호의 패리티 검사 행렬 H는 8개의 열들과 4개의 행들로 구성되어 있으며, 상기 8개의 열들은 변수 노드(variable node)들, 즉 v1, v2, v3, v4, v5, v6, v7, v8이 되고, 상기 4개의 행들은 검사 노드(check node)들, 즉 c1, c2, c3, c4, 이 된다. 그러면 여기서, 도 2를 참조하여 도 1에서 설명한 LDPC 부호의 이분 그래프(bipartite graph)에 대해 설명하기로 한다.
도 2는 도 1의 LDPC 부호의 이분 그래프를 도시한 도면이다.
도 2를 참조하면, 상기 LDPC 부호의 이분 그래프는 8개의 변수 노드들, 즉 v1(201), v2(203), v3(205), v4(207), v5(209), v6(211), v7(213), v8(215)과, 4개의 검사 노드들, 즉 c1(221), c2(223), c3(225), c4(227)를 포함한다. 도 1에 도시한 바와 같이 LDPC 부호의 패리티 검사 행렬의 j번째 열과 i번째 행이 교차하는 지점에 '0'이 아닌 값을 가지는 엘리먼트가 존재할 경우 j번째 변수 노드 vj와 i번째 검사 노드 ci 간에 에지(edge)가 생성된다. 이하에서는 도 3과 도 4를 참조하여 각 변수 노드 및 검사 노드의 입출력 메시지를 설명하기로 한다.
도 3은 LDPC 부호의 이분 그래프에서 변수 노드의 입출력 메시지를 설명하기 위한 도면이다. 여기서, 도 3은 다수의 변수 노드들 중에서 임의의 한 변수 노드, 즉 v1과 3개의 검사 노드들, 즉 c1, c2, c3 간에 에지가 생성된 경우 상기 변수 노드 v1의 입출력 메시지를 나타낸 도면이다.
도 3을 참조하면, 상기 변수 노드 v1(301) 입력 메시지(300)는, 에지를 통해 각 검사 노드들 c1(311), c2(313), c3(315)로부터 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00001
,
Figure 112007005304328-PAT00002
,
Figure 112007005304328-PAT00003
와, 상기 변수 노드 v1(301) 자신에게 해당하는 이전(priori) 로그 우도비(LLR: Log Likelihood Ratio, 이하 'LLR'이라 칭하기로 함)
Figure 112007005304328-PAT00004
을 포함한다. 이렇게 입력 메시지(300)가 입력되면 상기 변수 노드 v1(301)은 업데이트를 수행한 후 출력 메시지를 출력한다. 즉, 변수 노드 v1(301)의 출력 메시지(350)는 에지를 통해 각 검사 노드들 c1(311), c2(313), c3(315)로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00005
,
Figure 112007005304328-PAT00006
,
Figure 112007005304328-PAT00007
와, 상기 변수 노드 v1(301)에서 복호된 비트값
Figure 112007005304328-PAT00008
을 포함한다.
도 4는 LDPC 부호의 이분 그래프에서 검사 노드의 입출력 메시지를 설명하기 위한 도면이다. 여기서, 도 4는 다수의 검사 노드들 중에서 임의의 한 검사 노드, 즉 c1과 3개의 변수 노드들, 즉 v1, v2, v3 간에 에지가 생성된 경우 상기 검사 노드 c1의 입출력 메시지를 나타낸 도면이다.
도 4를 참조하면, 상기 검사 노드 c1(401) 입력 메시지(400)는, 에지를 통해 각 변수 노드들 v1(411), v2(413), v3(415)로부터 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00009
,
Figure 112007005304328-PAT00010
,
Figure 112007005304328-PAT00011
을 포함한다. 이렇게 입력 메시지(400)가 입력되면 상기 검사 노드 c1(401)은 업데이트를 수행한 후 출력 메시지를 출력한다. 즉, 검사 노드 c1(401)의 출력 메시지(450)는 에지를 통해 각 변수 노드들 v1(411), v2(413), v3(415)로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00012
,
Figure 112007005304328-PAT00013
,
Figure 112007005304328-PAT00014
을 포함한다. 그러면 여기서, 변수 노드와 검사 노드로 메시지가 입력되면 업데이트를 수행, 다시 말해, 상기 LDPC 부호의 패리티 검사 행렬 H가 1이 되는 모든 변수 노드들과 검사 노드들에 대해 업데이트를 수행하여 출력 메시지를 출력하는 동작을 설명하기로 한다. 우선, 설명에 앞서 이하에서 사용될 변수에 대해 정의하기로 한다.
Figure 112007005304328-PAT00015
: i번째 변수 노드(i번째 수신 비트)에 해당하는 이전 LLR
Figure 112007005304328-PAT00016
: i번째 변수 노드에서 복호된 비트 값
Figure 112007005304328-PAT00017
: i번째 변수 노드에 연결된 변수 노드들의 인덱스 집합
Figure 112007005304328-PAT00018
: j번째 검사 노드에 연결된 검사 노드들의 인덱스 집합
Figure 112007005304328-PAT00019
: i번째 변수 노드에서 j번째 검사 노드로 전송되는 에지 메시지
Figure 112007005304328-PAT00020
: j번째 검사 노드에서 i번째 변수 노드로 전송되는 에지 메시지
Figure 112007005304328-PAT00021
:
Figure 112007005304328-PAT00022
Figure 112007005304328-PAT00023
:
Figure 112007005304328-PAT00024
Figure 112007005304328-PAT00025
: i번째 변수 노드의 업데이트된 이후(posteriori) LLR
그러면, 검사 노드로 입력되는 메시지
Figure 112007005304328-PAT00026
와 변수 노드로 입력되는 메시지
Figure 112007005304328-PAT00027
는 초기화되어 하기 수학식 1과 같이 나타낼 수 있다.
Figure 112007005304328-PAT00028
Figure 112007005304328-PAT00029
,
그런 다음, 상기 검사 노드와 변수 노드로 각 입력 메시지가 입력되면 업데이트를 수행하여 하기 수학식 2 및 3에 나타낸 바와 같이 출력 메시지, 즉
Figure 112007005304328-PAT00030
Figure 112007005304328-PAT00031
를 각각 출력한다.
Figure 112007005304328-PAT00032
Figure 112007005304328-PAT00033
상기 수학식 2에서 sign는 해당 메시지의 부호로서 +1 또는 -1을 나타낸다. 이때, 상기 변수 노드와 검사 노드의 업데이트 동작은, 전술한 바와 같이 상기 LDPC 부호의 패리티 검사 행렬 H가 1이 되는 모든 변수 노드들과 검사 노드들에 대해 업데이트가 수행된다.
이러한 업데이트를 통해 각 변수 노드들에서 출력되는 이후 LLR
Figure 112007005304328-PAT00034
은 하기 수학식 4와 같이 나타낼 수 있다.
Figure 112007005304328-PAT00035
상기 수학식 4에 나타낸 이후 LLR
Figure 112007005304328-PAT00036
이 0보다 작으면 복호된 비트값
Figure 112007005304328-PAT00037
는 1이 되고, 0이상이면 상기 복호된 비트 값
Figure 112007005304328-PAT00038
는 0이 된다. 그러면 여기서, 도 3 및 도 4를 참조하여 각 변수 노드와 검사 노드의 업데이트 동작, 즉 상기 수 학식 2 및 수학식 3을 보다 구체적으로 설명하기로 한다.
우선, 도 3을 참조하여 수학식 3에 나타낸 변수 노드의 출력 메시지
Figure 112007005304328-PAT00039
를 설명하면, 도 3에 나타낸 바와 같이 변수 노드 v1(301)의 입력 메시지(300)는 에지를 통해 각 검사 노드들 c1(311), c2(313), c3(315)로부터 입력되는
Figure 112007005304328-PAT00040
,
Figure 112007005304328-PAT00041
,
Figure 112007005304328-PAT00042
와, 상기 변수 노드 v1(301) 자신에게 해당하는 이전(priori) LLR
Figure 112007005304328-PAT00043
이므로 업데이트를 수행한 후 출력하는 메시지(350), 특히 에지를 통해 각 검사 노드들 c1(311), c2(313), c3(315)로 출력하는
Figure 112007005304328-PAT00044
,
Figure 112007005304328-PAT00045
,
Figure 112007005304328-PAT00046
는 하기 수학식 5와 같이 나타낼 수 있다.
Figure 112007005304328-PAT00047
또한, 도 4를 참조하여 수학식 2에 나타낸 검사 노드의 출력 메시지
Figure 112007005304328-PAT00048
를 설명하면, 도 4에 나타낸 바와 같이 검사 노드 c1(401)의 입력 메시지(400)는 각 변수 노드들 v1(411), v2(413), v3(415)로부터 입력되는
Figure 112007005304328-PAT00049
,
Figure 112007005304328-PAT00050
,
Figure 112007005304328-PAT00051
이므로 업데이트를 수행한 후 출력하는 메시지(450), 즉 에지를 통해 각 변수 노드들 v1(311), v2(313), v3(315)로 출력하는
Figure 112007005304328-PAT00052
,
Figure 112007005304328-PAT00053
,
Figure 112007005304328-PAT00054
는 하기 수학식 6과 같이 나타낼 수 있다.
Figure 112007005304328-PAT00055
전술한 바와 같이 LDPC 부호의 복호기는 이분 그래프 상에서 메시지 패싱(messaging-passing)을 통해, 다시 말해 복호기는, 도 3 및 도 4에서 설명한 바와 같이 변수 노드들과 검사 노드들 간의 메시지들, 즉
Figure 112007005304328-PAT00056
Figure 112007005304328-PAT00057
를 서로 교환하면서 반복(iterative) 연산 방식으로 정보 비트(information bit)를 복호한다. 여기서, 상기 반복 연산 방식은, 모든 변수 노드들의 메시지를 업데이트, 즉
Figure 112007005304328-PAT00058
를 출력한 후, 모든 검사 노드들의 메시지를 업데이트, 즉
Figure 112007005304328-PAT00059
를 출력하는 방식으로서 플러딩 스케줄링(flooding scheduling)이다. 즉, 상기 플러딩 스케쥴링 방식은, LDPC 부호의 복호기가 전-병렬(fully-parallel) 구조로 설계되어 매 사이클마다 메시지가 업데이트된다.
그러나, 전-병렬 구조의 복호기는 노드들 간에 존재하는 에지의 상호연결 복 잡도(interconnection complexity)가 증가하는 문제점이 있다. 또한, 각 에지 메시지를 저장하는 메모리가 필요하며, 상기 메모리는 변수 노드에서 검사 노드로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00060
를 저장하는 메모리와 검사 노드에서 변수 노드로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00061
를 저장하는 메모리를 포함한다. 그러면 여기서, 도 5를 참조하여 LDPC 부호의 복호기를 구체적으로 설명하기로 한다.
도 5는 LDPC 부호의 복호기 구조를 개략적으로 도시한 도면이다.
도 5를 참조하면, 상기 복호기는, 에지 메시지를 저장하는 에지 메모리, 즉
Figure 112007005304328-PAT00062
를 저장하는 V2C 에지 메시지 메모리(501)와
Figure 112007005304328-PAT00063
를 저장하는 C2V 에지 메시지 메모리(503)와, 검사 노드 및 변수 노드의 업데이트 동작을 처리하는 검사 노드 프로세서(505)와 변수 노드 프로세서(507)와, 노드 프로세서들(505,507)와 메시지 메모리들(501,503) 사이에 존재하여 메시지 순환이 가능하도록 하는 스위칭 모듈들(509,0110과, 복호기 제어 모듈(015)과, 메시지 정렬(ordering) 모듈(017)을 포함한다.
상기 복호기는 복호기 제어 모듈(015)에서 에지 메모리의 인덱스와 변수 노드 및 검사 노드의 차수(degree) 정보를 저장하는 차수 메모리(013)의 인덱스를 생성하고 매 사이클 마다 증가시키고, 상기 에지 메모리 인덱스에 해당하는 메시지 메모리들(501,503)의 독출 어드레스(read address)를 생성하며, 상기 차수 메모리(013)의 인덱스에 해당하는 변수 노드 차수와 검사 노드 차수를 생성한다. 또한, 복호기는 C2V 에지 메시지 메모리(501)의 메시지, 즉
Figure 112007005304328-PAT00064
와 입력 버퍼(019)의 LLR인
Figure 112007005304328-PAT00065
를 독출하면, 상기 변수 노드 프로세서(507)에서 업데이트를 수행하여
Figure 112007005304328-PAT00066
를 생성한 후, 상기 생성한
Figure 112007005304328-PAT00067
를 V2C 에지 메모리(503)에 저장한다. 또한, 복호기는 V2C 에지 메모리(503)의 메시지, 즉
Figure 112007005304328-PAT00068
를 독출하여 검사 노드 프로세서(505)에서 업데이트를 수행하여
Figure 112007005304328-PAT00069
를 생성한 후, 상기 생성한
Figure 112007005304328-PAT00070
를 C2V 에지 메시지 메모리(501)에 저장한다.
이렇게 상기 복호기는 두개의 에지 메시지 메모리들(501,503)와 두개의 노드 프로세서들(505,507)을 포함한다. 그러면 여기서, 도 6을 참조하여 상기 복호기의 노드 프로세서를 설명하기로 한다.
도 6은 복호기의 노드 프로세서 구조를 개략적으로 도시한 도면이다.
도 6을 참조하면, 상기 노드 프로세서는, 각 에지 메모리들로부터 독출된 메시지들이 직렬적으로 입력되며, 노드의 차수, 특히 변수 노드의 차수에 상응한 에지를 통해 입력되는 메시지를 처리한다. 즉, 상기 노드 프로에서는 노드의 에지 차수에 상응하여 메시지를 처리한다. 예를 들어, 하나의 노드에 3개의 에지가 생성되어 있으면, 3 사이클동안 메시지를 입력받고, 상기 입력된 메시지의 누적(summation)값과 상기 3개의 입력된 메시지를 선입력선출력(FIFO: First-In First Out, 이하 'FIFO'라 칭하기로 함) 모듈에 저장한 후, 다음 3 사이클동안의 누적값과 FIFO 모듈 입력값 간의 감산을 통해 순차적으로 출력 메시지를 생성한다.
한편, 상기 플러딩 스케쥴링 방식과 메시지 패싱을 통해 LDPC 부호를 복호하는 복호기, 즉 반복 연산 방식을 통해 정보 비트를 복호하여 데이터를 수신하는 수신기는, LLR의 수렴 속도가 느림으로써 데이터 복호 성능, 즉 데이터 수신 성능에 문제점이 있다. 다시 말해, 상기 반복 연산 방식을 이용하여 LDPC 부호를 복호하여 데이터를 수신하는 수신기는, 신뢰도 높은 복호 비트를 산출하기 위해 많은 반복 연산이 필요함에 따라 데이터 복호 속도가 저하되며, 그에 따라 데이터 수신 속도, 즉 데이터 처리 속도가 저하되어 데이터 수신 성능이 감소되는 문제점이 있다.
또한, 전술한 바와 같이 노드의 차수에 상응하여 에지를 통해 입력되는 메시지를 노드 프로세서가 가변 동작 사이클동안 처리하며, 이때 변수 노드의 차수와 검사 노드 차수가 상이함에 따라, 일예로 변수 노드 차수는 3~4이고, 검사 노드 차수는 6~22로 상이함에 따라 상기 각 노드의 차수를 저장하는 메모리가 필요함으로써 시스템의 복잡도가 증가하는 문제점이 있다. 아울러, 상기 복호기는, 에지 메시지를 저장하는 두개의 메모리, 즉 V2C 에지 메시지 메모리와 C2V 에지 메시지 메모리를 포함함으로써 시스템의 복잡도가 증가하며, 특히 H 매트릭스에서 0이 아닌 값을 가지는 엘리먼트가 증가할 수록 메모리의 크기가 증가함으로써 시스템의 복잡도가 더욱 증가하는 문제점이 있다.
따라서, 본 발명의 목적은 통신 시스템에서 데이터 수신 방법 및 장치를 제 공함에 있다.
본 발명의 다른 목적은 LDPC 부호를 이용하는 통신 시스템에서 데이터 수신 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 LDPC 부호를 이용하는 통신 시스템에서 LDPC 부호를 복호하여 데이터를 수신하는 방법 및 장치를 제안한다.
본 발명의 또 다른 목적은 LDPC 부호를 이용하는 통신 시스템에서 시스템의 복잡도를 감소시키며 데이터 수신 성능을 향상시키는 데이터 수신 방법 및 장치를 제안한다.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 통신 시스템에서 데이터 수신 방법에 있어서, 데이터를 수신하는 과정과, 상기 수신한 데이터의 저밀도 패리티 검사(LDPC: Low-Density Parity Check) 행렬에 상응하는 검사 노드의 입력 메시지와 검사 노드 메시지를 이용하여 변수 노드로의 입력 메시지를 업데이트하여 상기 수신한 데이터를 복호하는 과정을 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 장치는, 통신 시스템에서 데이터 수신 장치에 있어서, 데이터를 수신하고, 상기 수신한 데이터의 저밀도 패리티 검사(LDPC: Low-Density Parity Check) 행렬에 상응하는 검사 노드의 입력 메시지와 검사 노드 메시지를 이용하여 변수 노드로의 입력 메시지를 업데이트하여 상기 수신한 데이터를 복호하는 복호기를 포함한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 통신 시스템, 일예로 저밀도 패리티 검사(LDPC: Low-Density Parity Check, 이하 'LDPC'라 칭하기로 함) 부호를 이용하는 통신 시스템에서 데이터 수신 방법 및 장치를 제안한다. 후술할 본 발명의 실시예에서는 LDPC 부호를 이용하는 통신 시스템을 일예로 하여 설명하지만, 본 발명에서 제안하는 데이터 수신 방법 및 장치는 다른 통신 시스템들에도 적용될 수 있다.
또한, 본 발명은, LDPC 부호를 이용하는 통신 시스템에서 수신기의 데이터 처리 속도를 향상시키는 데이터 수신 방법 및 장치를 제안한다. 후술할 본 발명의 실시예에 따른 통신 시스템에서 수신기는, 변수 노드 기반 직렬 스케쥴링(variable node based serial scheduling) 방식을 이용한 메시지 패싱(messaging-passing)을 통해 데이터를 복호하여 데이터를 수신하는 방법 및 장치를 제안한다.
아울러, 본 발명은, LDPC 부호를 이용하는 통신 시스템에서 수신기의 복잡도를 감소시키는 데이터 수신 방법 및 장치를 제안한다. 후술할 본 발명의 실시예에서는, LDPC 부호의 패리티 검사 행렬(parity check matrix)에 상응하는 변수 노드(variable node)들과 검사 노드(check node)들 간에 생성된 에지(edge)를 통해 전송되는 메시지, 다시 말해 변수 노드에서 검사 노드로 전송되는 메시지(이하 'V2C 메시지'라 칭하기로 함)와 검사 노드에서 변수 노드로 전송되는 메시지(이하 'C2V 메시지'라 칭하기로 함)를 저장하는 메모리를 줄여 수신기의 복잡도를 감소시키는 데이터 수신 방법 및 장치를 제안한다.
이때, 본 발명의 실시예에서는, 상기 두개의 메시지를 모두 저장하지않고 하나의 메시지, 예컨대 V2C 메시지만을 저장하고, 상기 저장된 V2C 메시지와 검사 노드 메시지, 예컨대 검사 노드의 설정된 메모리 값을 이용하여 다른 메시지, 예컨대 C2V 메시지를 산출하는 방식을 통해 데이터를 복호함으로써 수신기의 복잡도를 감소시킨다. 즉, 후술할 본 발명의 실시예에서는, V2C 메시지를 저장하는 에지 메모리의 메모리 값과 합 함수(summation function)를 통한 검사 노드의 합산값을 이용하여 C2V 메시지를 산출함으로써 하나의 에지 메모리로 복호기를 구현하여 수신기의 복잡도를 감소시킨다. 그러면 여기서, 도 7을 참조하여 본 발명의 실시예에 따른 통신 시스템에서 LDPC 부호의 이분 그래프(bipartite graph)에서 검사 노드의 입출력 메시지를 설명하기로 한다. 우선, 후술할 본 발명의 실시예에서 사용될 변수에 대해 정의하기로 한다.
Figure 112007005304328-PAT00071
: i번째 변수 노드(i번째 수신 비트)에 해당하는 이전(priori) 로그 우도비(LLR: Log Likelihood Ratio, 이하 'LLR'이라 칭하기로 함)
Figure 112007005304328-PAT00072
: i번째 변수 노드에서 복호된 비트 값
Figure 112007005304328-PAT00073
: i번째 변수 노드에 연결된 변수 노드들의 인덱스 집합
Figure 112007005304328-PAT00074
: j번째 검사 노드에 연결된 검사 노드들의 인덱스 집합
Figure 112007005304328-PAT00075
: i번째 변수 노드에서 j번째 검사 노드로 전송되는 에지 메시지
Figure 112007005304328-PAT00076
: j번째 검사 노드에서 i번째 변수 노드로 전송되는 에지 메시지
Figure 112007005304328-PAT00077
:
Figure 112007005304328-PAT00078
Figure 112007005304328-PAT00079
:
Figure 112007005304328-PAT00080
Figure 112007005304328-PAT00081
: i번째 변수 노드의 업데이트된 이후(posteriori) LLR
도 7은 본 발명의 실시예에 통신 시스템에서 LDPC 부호의 이분 그래프에서 검사 노드의 입출력 메시지를 설명하기 위한 도면이다. 여기서, 도 7은 다수의 검사 노드들 중에서 임의의 한 검사 노드, 즉 c1과 3개의 변수 노드들, 즉 v1, v2, v3 간에 에지가 생성된 경우 상기 검사 노드 c1의 입출력 메시지를 나타낸 도면이다.
도 7을 참조하면, 상기 검사 노드 c1(701) 입력 메시지(700)는, 에지를 통해 각 변수 노드들 v1(711), v2(713), v3(715)로부터 입력되는 에지 메시지, 즉
Figure 112007005304328-PAT00082
,
Figure 112007005304328-PAT00083
,
Figure 112007005304328-PAT00084
을 포함한다. 이렇게 검사 노드 c1(701)에 변수 노드들 v1(711), v2(713), v3(715)로부터
Figure 112007005304328-PAT00085
,
Figure 112007005304328-PAT00086
,
Figure 112007005304328-PAT00087
가 입력되고, 합 함수를 통한 검사 노드 c1(701) 합산값
Figure 112007005304328-PAT00088
가 저장되면, 상기 검사 노드 c1(701)는 메시지 패싱을 통해 출력 메시지를 출력한다. 즉, 검사 노드 c1(701)의 출력 메시지(750)는 에지를 통해 각 변수 노드들 v1(711), v2(713), v3(715)로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00089
,
Figure 112007005304328-PAT00090
,
Figure 112007005304328-PAT00091
을 포함한다. 여기서, 상기 검사 노드 c1(701)의 출력 메시지(750), 즉
Figure 112007005304328-PAT00092
,
Figure 112007005304328-PAT00093
,
Figure 112007005304328-PAT00094
는 하기 수학식 7과 같이 나타낼 수 있다.
Figure 112007005304328-PAT00095
Figure 112007005304328-PAT00096
본 발명의 실시예에 따른 통신 시스템에서 수신기는, 하나의 에지 메시지, 예컨대 변수 노드에서 검사 노드로 전송되는 에지 메시지인 V2C 메시지
Figure 112007005304328-PAT00098
를 저장하고, 상기 저장된 에지 메시지와 하나의 노드, 예컨대 검사 노드의 합산값
Figure 112007005304328-PAT00099
을 이용하여 메시지 패싱을 통해 정보 비트(information bit)를 복호한다. 이하에서는, 본 발명의 실시예에 따른 통신 시스템에서 수신기의 메시지 패싱 동작을 통한 정보 비트 복호를 설명하기로 한다.
우선, 본 발명의 실시예에 통신 시스템에서 LDPC 부호의 이분 그래프에서 모 든 변수 노드들과 검사 노드들에 대해 변수 노드에서 검사 노드로 입력되는 메시지
Figure 112007005304328-PAT00100
와 검사 노드 메시지로서 검사 노드의 합산값
Figure 112007005304328-PAT00101
Figure 112007005304328-PAT00102
는 하기 수학식 8과 같이 초기화한다.
Figure 112007005304328-PAT00103
그런 다음, 검사 노드들과 변수 노드들 간의 반복(iterative) 연산을 통해 모든 변수 노드들과 검사 노드들에 대해 변수 노드에서 검사 노드로 입력되는 메시지
Figure 112007005304328-PAT00104
와 검사 노드 메시지로서 검사 노드의 합산값
Figure 112007005304328-PAT00105
Figure 112007005304328-PAT00106
를 하기 수학식 9에 나타낸 바와 같이 업데이트한다.
Figure 112007005304328-PAT00107
상기 수학식 9에서
Figure 112007005304328-PAT00108
는 상기 수학식 8에 나타낸 초기
Figure 112007005304328-PAT00109
Figure 112007005304328-PAT00110
간의 차로 임시 검사 노드의 합산값을 의미하고,
Figure 112007005304328-PAT00111
는 C2V 메시지를 의미하고,
Figure 112007005304328-PAT00112
는 상기
Figure 112007005304328-PAT00113
가 전송되는 검사 노드와 다른 C2V 메시지를 의미하고,
Figure 112007005304328-PAT00114
는 변수 노드의 업데이트를 수행한 후, V2C 메시지를 의미하며,
Figure 112007005304328-PAT00115
는 임시 검사 노드 값을 의미한다. 그러면 여기서, 도 8을 참조하여 전술한 본 발명의 실시예에 따른 통신 시스템에서 수신기의 메시지 패싱 동작을 보다 구체적으로 설명하기로 한다.
도 8은 본 발명의 실시예에 따른 통신 시스템에서 수신기의 메시지 패싱 동 작을 설명하기 위한 도면이다. 여기서, 도 8은 다수의 검사 노드들 중에서 임의 3개의 검사 노드, 즉 c1, c2, c3과 한개의 변수 노드 va 간에 에지가 생성된 경우 검사 노드들 c1, c2, c3과 변수 노드 va 간의 메시지 패싱을 통한 업데이트를 나타낸 도면이다.
도 8을 참조하면, 변수 노드 va(811)에서 검사 노드들 c1(801), c2(803), c3(805)으로 에지 메시지, 즉
Figure 112007005304328-PAT00116
,
Figure 112007005304328-PAT00117
,
Figure 112007005304328-PAT00118
가 입력되면(800), 상기 입력된 메시지
Figure 112007005304328-PAT00119
,
Figure 112007005304328-PAT00120
,
Figure 112007005304328-PAT00121
의 메시지값
Figure 112007005304328-PAT00122
,
Figure 112007005304328-PAT00123
,
Figure 112007005304328-PAT00124
과 각 검사 노드들 c1(801), c2(803), c3(805)의 검사 노드의 합산값
Figure 112007005304328-PAT00125
Figure 112007005304328-PAT00126
,
Figure 112007005304328-PAT00127
,
Figure 112007005304328-PAT00128
을 이용하여 하기 수학식 10에 나타낸 바와 같이 임시 검사 노드의 합산값을 생성한다.
Figure 112007005304328-PAT00129
그런 다음, 상기 검사 노드는 업데이트를 수행하여, 다시 말해 상기 수학식 10의
Figure 112007005304328-PAT00130
,
Figure 112007005304328-PAT00131
,
Figure 112007005304328-PAT00132
을 앞서 정의한 함수
Figure 112007005304328-PAT00133
를 통해 하기 수학식 11에 나타낸 바와 같이 각 검사 노드들 c1(801), c2(803), c3(805)에서 변수 노드 va(811)로 전송되는 메시지
Figure 112007005304328-PAT00134
, 즉
Figure 112007005304328-PAT00135
,
Figure 112007005304328-PAT00136
,
Figure 112007005304328-PAT00137
를 생성하여 변수 노드 va(811)로 출력한다(830).
Figure 112007005304328-PAT00138
이렇게 각 검사 노드들 c1(801), c2(803), c3(805)으로부터 에지 메시지, 즉
Figure 112007005304328-PAT00139
,
Figure 112007005304328-PAT00140
,
Figure 112007005304328-PAT00141
가 입력되면, 상기 변수 노드 va(811)는 업데이를 수행하여, 즉 하기 수학식 12에 나타낸 바와 같이 변수 노드 va(811)에서 각 검사 노드들 c1(801), c2(803), c3(805)으로 전송되는 메시지, 즉
Figure 112007005304328-PAT00142
,
Figure 112007005304328-PAT00143
,
Figure 112007005304328-PAT00144
를 생성하여 각 검사 노드들 c1(801), c2(803), c3(805)로 출력한다(860).
Figure 112007005304328-PAT00145
그에 따라, 본 발명의 실시예에 따른 통신 시스템에서 송신기는 하기 수학식 13에 나타낸 바와 같이 검사 노드의 합산값
Figure 112007005304328-PAT00146
, 즉
Figure 112007005304328-PAT00147
,
Figure 112007005304328-PAT00148
,
Figure 112007005304328-PAT00149
와 V2C 메시지
Figure 112007005304328-PAT00150
, 즉
Figure 112007005304328-PAT00151
,
Figure 112007005304328-PAT00152
,
Figure 112007005304328-PAT00153
를 업데이트한다.
Figure 112007005304328-PAT00154
이렇게 본 발명의 실시예에 따른 통신 시스템에서 수신기는, 도 8에서 설명한 바와 같이 검사 노드들과 변수 노드들 간의 반복 연산을 통해 메시지 패싱을 통 해 정보 정보 비트를 복호하여 데이터를 수신한다. 이때, 상기 수신기는 변수 노드들 및 검사 노드들의 메시지를 동시에 업데이트된 최신의 값을 통해 복호를 수행함으로써 LLR의 수렴 속도가 빠름으로써 데이터 복호 성능, 즉 데이터 수신 및 처리 성능을 향상시킨다. 또한, 상기 수신기는 한개의 에지 메시지, 예컨대 V2C 메시지만을 저장하는 메모리와 노드 메모리, 예컨대 검사 노들의 합산값을 저장하는 검사 노드 메모리를 포함함으로써 수신기의 복잡도를 감소시킨다. 그러면 여기서, 도 9를 참조하여 본 발명의 실시예에 따른 통신 시스템에서 수신기를 구체적으로 설명하기로 한다.
도 9는 본 발명의 실시예에 따른 통신 시스템에서 수신기의 구조를 개략적으로 도시한 도면이다. 여기서, 도 9는 본 발명의 실시예에 따른 통신 시스템의 수신기에서 LDPC 부호를 복호하는 복호기의 구조를 나타낸 도면이다.
도 9를 참조하면, 상기 복호기는, 변수 노드에서 검사 노드로 전송되는 에지 메시지, 즉
Figure 112007005304328-PAT00155
의 값을 저장하는 에지 메시지 메모리(935)와, 검사 노드의 합산값
Figure 112007005304328-PAT00156
을 저장하는
Figure 112007005304328-PAT00157
메모리(925)와, C2V 메시지를 산출하기 위해 상기 에지 메시지 메모리(935)와
Figure 112007005304328-PAT00158
메모리(925)에 저장된 값들 간의 감산값을 산출하는 감산기(901)와, 상기 산출기(901)가 산출한 감산값을 이용하여 함수
Figure 112007005304328-PAT00159
를 처리하는 제1함수 프로세서(903)와, V2C 메시지를
Figure 112007005304328-PAT00160
메모 리(925)에 저장하도록 함수
Figure 112007005304328-PAT00161
를 처리하는 제2함수 프로세서(911)와, 노드의 차수에 상응하여 업데이트를 수행하는 적응적 변수 프로세서(909)와, 상기 프로세서들(903,909,913)과 연결되어 메시지 순환이 가능하도록 하는 스위칭 모듈들(905,913)과, 상기 에지 메시지 메모리(935)의 메시지 어드레스 정렬(ordering) 정보를 저장하는 메시지 어드레스 메모리(934)와,
Figure 112007005304328-PAT00162
메모리(925)의 메시지 어드레스 정렬 정보를 저장하는
Figure 112007005304328-PAT00163
어드레스 메모리(927)와, '1' 또는 '0'을 통해 각 변수 노드에서 마지막 메시지임을 알려주는 지시자(indicator) 메모리(929)와, 상기 각 스위칭 모듈(905,913)의 순환 횟수(rotation number)를 저장하는 순환 저장 모듈(931)과, 상기 LDPC 부호의 복호기를 제어하는 제어 모듈(933)과, 지연 모듈들(919,921,923)과, 버퍼들(907,915), 및 합산/사인-결정(sign-evaluation)기(917)를 포함한다.
상기 복호기는, 제어 모듈(933)에서 메시지 어드레스와
Figure 112007005304328-PAT00164
어드레스의 정보를 포함하는 메시지 어드레스 메모리(934)와
Figure 112007005304328-PAT00165
어드레스 메모리(927)의 인덱스를 사이클 마다 1씩 증가시키면서 어드레스에 상응하여 상기 에지 메시지 메모리(935)와
Figure 112007005304328-PAT00166
메모리(925)에 저장된 값을 독출한다. 그런 다음, 상기 에지 메시지 메모리(935)와
Figure 112007005304328-PAT00167
메모리(925)로부터 독출한 값들을 이용하여 상기 감산 기(901)가 감산값을 산출하면, 제1함수 프로세서(903)가 상기 산출한 감산값을 이용하여 함수
Figure 112007005304328-PAT00168
를 처리하여 C2V 메시지를 산출한다.
그리고, 적응적 변수 프로세서(909)는 전술한 바와 같이 산출된 C2V 메시지와 이전 LLR을 지시자 메모리(929)에 상응하여 업데이트 동작을 수행하여 V2C 메시지와 복호된 정보 비트를 생성한다. 상기 복호된 정보 비트는 출력 버퍼(915)에 저장되고, 복호 동작이 완료되면 최종 정보 비트를 출력한다. 상기 지시자 메모리(929)는 앞서 설명한 바와 같이 '1' 또는 '0'을 통해 현재의 메시지가 노드에서 마지막 메시지를 나타내며, 예를 들어 '1'은 상기 현재의 메시지가 마지막 메시지임을 나타내고 '0'은 마지막 메시지가 아님을 나타낸다. 이때, 상기 복호기는 지시자 메모리(929)의 지시자, 즉 '1' 또는 '0'을 통해 메시지의 진행 상태를 확인함으로써 기존의 노드의 차수를 통해 메시지의 진행 상태를 확인하는 복호기보다 수신기의 복잡도를 감소시킬 수 있다.
그런 다음, 상기 복호기는, 상기 제2함수 프로세서(911)가 적응적 변수 프로세서(909)에서 출력되는 V2C 메시지를 함수
Figure 112007005304328-PAT00169
를 처리하여 상기 에지 메시지 메모리(935)에 저장한다. 또한, 상기 복호기는, 상기 V2C 메시지를 이전 단계(stage)에서의 전체 합산값에서 이전의 C2V 메시지 값을 감산한 값과 새로운 V2C 메시지를 함수
Figure 112007005304328-PAT00170
를 처리한 값을 합산한 후, 상기 합산값을
Figure 112007005304328-PAT00171
메모리(925)에 저장한다. 이때, 상기 검사 노드의 합산값은 초기에 설정한 합산값을 통 해 업데이트하여 새로운 C2V 메시지를 산출한 후, 상기 산출한 새로운 C2V 메시지를 함수
Figure 112007005304328-PAT00172
를 처리하여 합산한 값을
Figure 112007005304328-PAT00173
메모리(925)에 저장함으로써 검사 노드의 에지 메시지를 처리할 경우 업데이트된 에지 메시지를 처리하여 플러딩 스케줄링(flooding scheduling) 방식보다 LLR 수렴 속도가 빠르며, 그에 따라, 복호 성능, 즉 데이터 처리 성능이 향상된다.
다시 말해, 상기 플러딩 방식의 복호기는, 복호 성능 향상을 위해 병렬 팩터(parallel factor)가 Z만 존재하였으나 본 발명의 실시예에 따른 통신 시스템에서 수신기의 복호기는 병렬 팩터로 Z뿐만 아니라 Z 크기의 메모리 뱅크(memory bank)도 병렬화시킴으로써 한번에 메모리 뱅크 갯수만큼 Z 벡터를 처리한다. 예를 들어, 하나의 변수 노드에 3개의 에지가 생성되면, 상기 플러딩 방식의 복호기는 시간(t)의 경과에 따라 하기 표 1에 나타낸 바와 같이 업데이트를 수행, 즉 6 사이클 동안 업데이트를 수행하여 메시지 처리를 완료하지만, 본 발명의 실시예에 따른 복호기는 1 사이클 동안 업데이트를 수행하여 메시지 처리를 완료한다.
Figure 112007005304328-PAT00174
Figure 112007005304328-PAT00175
그러면 여기서, 도 10을 참조하여 본 발명의 실시예에 따른 통신 시스템에서 도 9의 적응적 변수 프로세서를 보다 구체적으로 설명하기로 한다.
도 10은 본 발명의 실시예에 따른 통신 시스템에서 복호기의 적응적 변수 프로세서 구조를 개략적으로 도시한 도면이다. 여기서, 도 10은 최대 3개의 입력 메시지, 예컨대 C2V 메시지를 처리하여 출력 메시지, 예컨대 V2C 메시지와 복호된 정보 비트를 출력하는 적응적 변수 프로세서 구조를 개략적으로 나타낸 도면이다.
도 10을 참조하면, 상기 적응적 변수 프로세서는, 입력 메시지, 즉 3개의 C2V 메시지와 이전 LLR인
Figure 112007005304328-PAT00176
를 저장하는 누적기(1001)와, 도 9의 지시자 메모리(929)로부터 전송되는 변수 노드 메시지 지시 신호(node-end)에 상응하여 상기 누적기(1001)를 리셋(reset)시키는 클리어(clear) 신호를 상기 누적기(1001)로 전송하는 제1선입력선출력(FIFO: First-In First Out, 이하 'FIFO'라 칭하기로 함) 모듈(1003)과, 상기 입력 메시지와 상기 누적기(1001)의 출력을 감산 모듈(1001)과 멀티플렉서(multiplexer)(1007)로 전송하는 제2FIFO 모듈(1005)과, 상기 지시 신호를 제어 모듈(1017)로 전송하는 제3FIFO 모듈(1009)과, 상기 지시 신호에 상응하여 멀티플렉서(1007)의 선택 신호를 출력하는 제어 모듈(1017)과, 상기 선택 신호에 상응하여 이후(post) LLR을 출력하는 멀티플렉서(1007)와, 상기 이후 LLR과 제2FIFO 모듈(1005)을 통해 전송되는 메시지를 감산, 즉 모든 메시지의 합에서 자신의 메시지를 감산하는 감산 모듈(1011)과, 상기 감산 모듈(1011)의 출력 메시지 값을 포화(saturation)시켜 V2C 메시지를 도 9의 제2함수 프로세서(911)로 출력하는 포화 모듈(1013)과, 상기 멀티플렉서(1007)가 출력하는 이후 LLR을 판별하여 복호된 정보 비트를 도 9의 출력 버퍼(915)로 출력하는 사인-결정(sign-evaluation) 모듈((1015)을 포함한다. 그러면 여기서, 도 11을 참조하여 상기 적응적 변수 프로세서의 동작을 모다 구체적으로 설명하기로 한다.
도 11은 본 발명의 실시예에 따른 통신 시스템에서 복호기의 적응적 변수 프로세서 동작을 설명하기 위한 도면이다. 여기서, 도 11은 본 발명의 실시예에 따른 LDPC 부호의 복호기에서 적응적 변수 프로세서의 동작을 설명하기 이해 다수의 변수 노드들 중에서 임의의 한 변수 노드, 즉 v1과 6개의 검사 노드들, 즉 c1, c2, c3, c4, c5, c6 간에 에지가 생성된 LDPC 부호의 이분 그래프를 나타낸 도면이다.
도 11을 참조하면, 상기 적응적 변수 프로세서에는, 변수 노드 v1(1101)의 입력 메시지로서 각 검사 노드들 c1(1111), c2(1113), c3(1115), c4(1117), c5(1119), c6(1121)로부터 전송되는 메시지, 즉
Figure 112007005304328-PAT00177
,
Figure 112007005304328-PAT00178
,
Figure 112007005304328-PAT00179
,
Figure 112007005304328-PAT00180
,
Figure 112007005304328-PAT00181
,
Figure 112007005304328-PAT00182
와 입력 LLR로 이전 LLR
Figure 112007005304328-PAT00183
이 입력된다. 이때, 상기 적응적 변수 프로세서의 메시지 입력 단자는 3개이고 상기 각 노드들 c1(1111), c2(1113), c3(1115), c4(1117), c5(1119), c6(1121)로부터 전송되는 메시지, 즉
Figure 112007005304328-PAT00184
,
Figure 112007005304328-PAT00185
,
Figure 112007005304328-PAT00186
,
Figure 112007005304328-PAT00187
,
Figure 112007005304328-PAT00188
,
Figure 112007005304328-PAT00189
는 6개이므로, 상기 적응적 변수 프로세서는 상기
Figure 112007005304328-PAT00190
,
Figure 112007005304328-PAT00191
,
Figure 112007005304328-PAT00192
,
Figure 112007005304328-PAT00193
,
Figure 112007005304328-PAT00194
,
Figure 112007005304328-PAT00195
를 두개의 그룹으로 분할, 즉
Figure 112007005304328-PAT00196
,
Figure 112007005304328-PAT00197
,
Figure 112007005304328-PAT00198
를 제1그룹으로
Figure 112007005304328-PAT00199
,
Figure 112007005304328-PAT00200
,
Figure 112007005304328-PAT00201
를 제2그룹으로 분할한다. 그런 다음, 제1그룹에 포함된 메시지
Figure 112007005304328-PAT00202
,
Figure 112007005304328-PAT00203
,
Figure 112007005304328-PAT00204
가 적응적 변수 프로세서로 입력된 후, 제2그룹에 포함된 메시지
Figure 112007005304328-PAT00205
,
Figure 112007005304328-PAT00206
,
Figure 112007005304328-PAT00207
가 입력된다. 이때, 상기 제1그룹에 포함된 메시지가 적응적 변수 프로세서로 입력될 경우 도 9의 지시자 메모리(929)로부터 전송되는 변수 노드 메시지 지시 신호는 현재의 메시지가 마지막 메시지가 아님을 알리기 위해 '0'을 포함한다. 그리고, 상기 제2그룹에 포함된 메시지가 적응적 변수 프로세서로 입력될 경우 상기 지시 신호는 현재의 메시지가 마지막 메시지임을 알리기 위해 '1'을 포함한다. 이렇게 입력 메시지
Figure 112007005304328-PAT00208
,
Figure 112007005304328-PAT00209
,
Figure 112007005304328-PAT00210
,
Figure 112007005304328-PAT00211
,
Figure 112007005304328-PAT00212
,
Figure 112007005304328-PAT00213
가 두개의 그룹으로 분할되어 상기 적응적 변수 프로세서로 입력되면, 시간(t)에 상응하여 도 12에 나타낸 바와 같이 업데이트 동작을 수행한다.
도 12는 도 11의 적응적 변수 프로세서의 동작을 설명하기 위한 도면이다.
도 12를 참조하면, t=0일 때 제1그룹에 포함된 메시지
Figure 112007005304328-PAT00214
,
Figure 112007005304328-PAT00215
,
Figure 112007005304328-PAT00216
가 입력되고, 상기 입력된 제1그룹 메시지
Figure 112007005304328-PAT00217
,
Figure 112007005304328-PAT00218
,
Figure 112007005304328-PAT00219
는 누적되어 누적기(1001)의 레지스터(register)에 저장된다. 그런 다음, t=1일 때 제2그룹에 포함된 메시지
Figure 112007005304328-PAT00220
,
Figure 112007005304328-PAT00221
,
Figure 112007005304328-PAT00222
가 입력되면, 누적기(1001)는 제1그룹과 제2그룹에 포함된 모든 메시지
Figure 112007005304328-PAT00223
,
Figure 112007005304328-PAT00224
,
Figure 112007005304328-PAT00225
,
Figure 112007005304328-PAT00226
,
Figure 112007005304328-PAT00227
,
Figure 112007005304328-PAT00228
의 합산값을 산출한다. 이후, t=2일 때 '0'을 나타내는 지시 신호에 상응하여 상기 합산값에서 제1그룹에 포함된 메시지를 감산하여
Figure 112007005304328-PAT00229
,
Figure 112007005304328-PAT00230
,
Figure 112007005304328-PAT00231
에 해당하는 V2C 메시지와 복호된 정보 비트를 출력하고, t=3일 때 '1'을 나타내는 지시 신호에 상응하여 상기 합산값에서 제2그룹에 포함된 메시지를 감산하여
Figure 112007005304328-PAT00232
,
Figure 112007005304328-PAT00233
,
Figure 112007005304328-PAT00234
에 해당하는 V2C 메시지와 복호된 정보 비트를 출력한다. 이렇게 상기 적응적 변수 프로세서는 노드 차수가 아닌 지시 신호에 상응하여 복호, 즉 데이터를 처리함으로써 데이터 처리 속도가 향상된다. 이하에서는 도 13을 참조하여 본 발명의 실시예에 따른 통신 시스템에서 수신기에 포함된 메모리의 어드레스에 대해 보다 구체적으로 설명하기로 한다.
도 13은 본 발명의 실시예에 따른 통신 시스템에서 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다. 여기서, 도 13은 LDPC 부호의 패리티 검사 행렬의 일예를 나타낸 도면이다.
도 13을 참조하면, 상기 LDPC 부호의 패리티 검사 행렬 H는 8개의 열들과 4개의 행들로 구성되어 있으며, 상기 8개의 열들은 변수 노드(variable node)들, 즉 v1, v2, v3, v4, v5, v6, v7, v8이 되고, 상기 4개의 행들은 검사 노드(check node)들, 즉 c1, c2, c3, c4, 이 된다. 여기서, 상기 패리티 검사 행렬 H의 '-1'은 일반적인 LDPC 부호의 패리티 검사 행렬 H의 '0'에 해당하며, 'm'은 일반적인 LDPC 부호의 패리티 검사 행렬 H의 '0'아닌 경우, 즉 변수 노드와 검사 노드 간에 에지가 생성됨을 의미한다.
그러면, 복호기는, 상기 패리티 검사 행렬 H의 각 엘리먼트를 나타내는 지시자, q1, q2, q3, q4에 해당하는 도 9의 에지 메시지 메모리(935)의 메시지 어드레스 정렬 정보와
Figure 112007005304328-PAT00235
메모리(925)의 메시지 어드레스 정렬 정보를 메시지 어드레스 메모리(934)와
Figure 112007005304328-PAT00236
어드레스 메모리(927)에 저장한다. 이때, 상기
Figure 112007005304328-PAT00237
어드레스 메모리(927)에 저장되는 메시지 어드레스 정렬 정보는 하기 표 3과 같이 나타낼 수 있으며, 상기 메시지 어드레스 메모리(934)에 저장되는 메시지 어드레스 정렬 정보는 하기 표 4와 같이 나타낼 수 있다. 즉, 하기 표 3 및 표 4는 복호기의
Figure 112007005304328-PAT00238
메모리(925) 및 에지 메시지 메모리(935)의 체크 노드와 에지의 배치를 나타낸다. 이때, 상기 복호기는 랜덤하게
Figure 112007005304328-PAT00239
메모리(925)의 어드레스를 정렬한 후, 에지 메시지 메모리(935)의 메모리 뱅크에 상응하여 에지 메시지 메모리(935)의 어드레스를 정렬한다.
Figure 112007005304328-PAT00240
Figure 112007005304328-PAT00241
상기 표 3 및 표 4를 참조하여 보다 구체적으로 설명하면, 상기 패리티 검사 행렬 H의 에지 m1은 노드 q1과 연결되고, 상기 연결에 상응하여 메모리 뱅크에 정렬된다. 그에 따라, 노드 q1과 에지 m1은 뱅크1에 정렬된다.
이때, 상기 복호기는 도 9에서 설명한 바와 같이 하기 표 5에 나타낸 바와 같이
Figure 112007005304328-PAT00242
메모리(925)의 상태에 상응하여 제어 모듈(931)에서 메시지 어드레스와
Figure 112007005304328-PAT00243
어드레스의 정보를 포함하는 메시지 어드레스 메모리(934)와
Figure 112007005304328-PAT00244
어드레스 메모리(927)의 인덱스를 사이클 마다 1씩 증가시키면서 어드레스에 상응하여 상기 에지 메시지 메모리(935)와
Figure 112007005304328-PAT00245
메모리(925)의 독출할 메모리 뱅크 값을 결정한다. 또한, 복호기는 상기
Figure 112007005304328-PAT00246
메모리(925)의 상태에 상응하여 지시자 메모리(929)의 인덱스를 사이클 마다 1씩 증가시키면서 메시지 지시자, 즉 상기 메시지가 마지막 메시인지 아닌지를 나타내는 정보를 결정한다.
Figure 112007005304328-PAT00247
Figure 112007005304328-PAT00248
Figure 112007005304328-PAT00249
Figure 112007005304328-PAT00250
여기서, 상기 표 6은
Figure 112007005304328-PAT00251
어드레스 메모리(927)에 저장되는
Figure 112007005304328-PAT00252
메모리(927)의 독출할 메모리 뱅크 값을 나타낸 표이고, 상기 표 7은 메시지 어드레스 메모리(934)에 저장되는 에지 메시지 메모리(935)의 독출할 메모리 뱅크 값을 나타낸 표이며, 상기 표 8은 지시자 메모리(929)에 저장되는 메시지 지시자를 나타낸 표이다. 상기 표 6 및 표 7에서 '×'는 에지 메시지가 존재하지 않으므로 메모리 독출을 하지 않음(no operation)을 의미한다. 그러면 여기서, 도 14를 참조하여 본 발명의 실시예에 따른 통신 시스템에서 복호기의 어드레스 정렬을 보다 구체적으로 설명하기로 한다.
도 14는 본 발명의 실시예에 따른 통신 시스템에서 복호기의 어드레스 정렬 동작을 도시한 도면이다.
도 14를 참조하면, 1401단계에서 복호기는 상기 표 3 및 표 4에서 설명한 바와 같이 랜덤하게
Figure 112007005304328-PAT00253
메모리의 어드레스를 정렬한다. 그런 다음, 1403단계에서 상기 복호기는 패리티 검사 행렬 H의 변수 노드와 검사 노드간에 생성된 에지에 상응하여 에지 메시지 메모리 뱅크의 에지를 선택한다. 다음으로, 1405단계에서 상기 복호기는 상기 표 5에서 설명한 바와 같이 선택한 에지의
Figure 112007005304328-PAT00254
메모리 상태가 유효한 지를 확인한다. 상기 1405단계에서의 확인 결과,
Figure 112007005304328-PAT00255
메모리 상태가 유효할 경우, 1407단계로 진행하고, 상기 1407단계에서 복호기는, 상기 표 6 및 표 7에서 설명한 바와 같이
Figure 112007005304328-PAT00256
어드레스 메모리에 저장되는
Figure 112007005304328-PAT00257
메모리의 독출할 메모리 뱅크 값을 결정하고, 메시지 어드레스 메모리에 저장되는 에지 메시지 메모리의 독출할 메모리 뱅크 값을 결정하여 에지 메시지 메모리의 어드레스를 정렬한다.
한편, 상기 1405단계에서의 확인 결과,
Figure 112007005304328-PAT00258
메모리 상태가 유효하지 않을 경우, 1409단계로 진행하고, 상기 1409단계에서 복호기는, 다른 변수 노드의 에지를 선택한다. 그런 다음, 1411단계에서 상기 복호기는 상기 1405단계에서와 같이 선택한 에지의
Figure 112007005304328-PAT00259
메모리 상태가 유효한 지를 확인한다. 상기 1411단계에서의 확인 결과,
Figure 112007005304328-PAT00260
메모리 상태가 유효할 경우, 1407단계로 진행한다. 한편, 상기 1411단계에서의 확인 결과,
Figure 112007005304328-PAT00261
메모리 상태가 유효하지 않을 경우, 1413단계로 진행하고, 상기 1413단계에서 복호기는 상기 표 6 및 표 7에서 설명한 바와 같이 에지 메시지가 존재하지 않으므로 메모리 독출을 하지 않음(no operation)을 의미의 '×'를 삽입한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명은, 변수 노드 기반 직렬 스케쥴링 방식을 이용한 메시지 패싱을 통해 LDPC 부호를 복호함으로써 데이터 처리 속도를 향상시킬 수 있다. 또한, 노드의 차수가 아닌 메시지 지시자에 상응하여 적응적으로 메시지를 처리하여 LDPC 부호를 복호함으로써 데이터 처리 속도를 향상시킬 수 있다. 아울러, 본 발명은, 하나의 에지 메시지 메모리와 하나의 노드 메모리로 LDPC 부호의 복호 기를 구현함으로써 수신기의 복잡도를 감소시킬 수 있다.

Claims (28)

  1. 통신 시스템에서 데이터 수신 방법에 있어서,
    데이터를 수신하는 과정과,
    상기 수신한 데이터의 저밀도 패리티 검사(LDPC: Low-Density Parity Check) 행렬에 상응하는 검사 노드의 입력 메시지와 검사 노드 메시지를 이용하여 변수 노드로의 입력 메시지를 업데이트하여 상기 수신한 데이터를 복호하는 과정을 포함하는 데이터 수신 방법.
  2. 제1항에 있어서,
    상기 검사 노드 메시지는, 상기 검사 노드의 입력 메시지를 합산하여 생성되는 것을 특징으로 하는 데이터 수신 방법.
  3. 제1항에 있어서,
    상기 변수 노드로의 입력 메시지를 업데이트하는 과정은, 상기 검사 노드 메시지에서 상기 검사 노드로의 입력 메시지를 감산하는 것을 특징으로 하는 데이터 수신 방법.
  4. 제1항에 있어서,
    상기 변수 노드로의 입력 메시지를 업데이트하는 과정은, 상기 검사 노드의 입력 메시지를 합산하여 합산값을 산출한 후 상기 산출한 합산값을 저장하고, 상기 변수 노드의 입력 메시지의 메시지 값을 산출한 후 상기 산출한 메시지 값을 저장하는 것을 특징으로 하는 데이터 수신 방법.
  5. 제4항에 있어서,
    상기 변수 노드의 입력 메시지의 메시지 값을 산출하는 과정은, 상기 합산값에서 상기 변수 노드의 입력 메시지에 해당하는 검사 노드의 입력 메시지의 메시지 값을 감산하여 감산값을 산출하는 것을 특징으로 하는 데이터 수신 방법.
  6. 제5항에 있어서,
    상기 변수 노드의 입력 메시지의 메시지 값을 산출하는 과정은, 상기 감산값에 소정의 함수를 이용하여 함수값을 산출한 후 상기 산출한 함수값을 저장하는 것을 특징으로 하는 데이터 수신 방법.
  7. 제4항에 있어서,
    상기 산출한 합산값을 저장하는 과정은, 상기 합산값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 저장하는 것을 특징으로 하는 데이터 수신 방법.
  8. 제1항에 있어서,
    상기 변수 노드로의 입력 메시지를 업데이트하는 과정은, 상기 변수 노드로의 입력 메시지의 지시자 정보에 상응하여 업데이트하는 것을 특징으로 하는 데이터 수신 방법.
  9. 제8항에 있어서,
    상기 지시자 정보는, 상기 변수 노드로의 입력 메시지가 마지막 메시지임을 나타내는 정보인 것을 특징으로 하는 데이터 수신 방법.
  10. 제1항에 있어서,
    상기 변수 노드로의 입력 메시지를 업데이트하는 과정은, 상기 검사 노드 메시지의 어드레스에 상응하여 기 저장된 합산값을 독출하고, 상기 독출한 합산값에 서 상기 검사 노드의 입력 메시지의 메시지 값을 감산하여 상기 변수 노드로의 입력 메시지의 메시지 값을 산출하는 것을 특징으로 하는 데이터 수신 방법.
  11. 제10항에 있어서,
    상기 변수 노드의 입력 메시지의 메시지 값을 산출하는 과정은, 상기 감산값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 저장하는 것을 특징으로 하는 데이터 수신 방법.
  12. 제10항에 있어서,
    상기 검사 노드 메시지의 어드레스는, 상기 저장된 합산값의 저장 상태에 상응하여 결정되는 것을 특징으로 하는 데이터 수신 방법.
  13. 제10항에 있어서,
    상기 변수 노드로의 입력 메시지를 업데이트하는 과정은, 상기 검사 노드로의 입력 메시지의 어드레스에 상응하여 기 저장된 상기 검사 노드로의 입력 메시지의 메시지 값을 독출하고, 상기 독출한 메시지 값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 통해 상기 상기 검사 노드로의 입력 메시지 를 생성하는 것을 특징으로 하는 데이터 수신 방법.
  14. 제13항에 있어서,
    상기 검사 노드로의 입력 메시지의 어드레스는, 상기 저장된 합산값의 저장 상태에 상응하여 결정되는 것을 특징으로 하는 데이터 수신 방법.
  15. 통신 시스템에서 데이터 수신 장치에 있어서,
    데이터를 수신하고, 상기 수신한 데이터의 저밀도 패리티 검사(LDPC: Low-Density Parity Check) 행렬에 상응하는 검사 노드의 입력 메시지와 검사 노드 메시지를 이용하여 변수 노드로의 입력 메시지를 업데이트하여 상기 수신한 데이터를 복호하는 복호기를 포함하는 데이터 수신 장치.
  16. 제15항에 있어서,
    상기 복호기는, 상기 검사 노드의 입력 메시지를 합산하여 상기 검사 노드 메시지를 생성하는 것을 특징으로 하는 데이터 수신 장치.
  17. 제15항에 있어서,
    상기 복호기는, 상기 검사 노드 메시지에서 상기 검사 노드로의 입력 메시지를 감산하여 상기 변수 노드로의 입력 메시지를 업데이트하는 것을 특징으로 하는 데이터 수신 장치.
  18. 제15항에 있어서,
    상기 복호기는, 상기 검사 노드의 입력 메시지를 합산하여 합산값을 산출한 후 상기 산출한 합산값을 저장하는 제1메모리와, 상기 변수 노드의 입력 메시지의 메시지 값을 산출한 후 상기 산출한 메시지 값을 저장하는 제2메모리를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  19. 제18항에 있어서,
    상기 복호기는, 상기 합산값에서 상기 변수 노드의 입력 메시지에 해당하는 검사 노드의 입력 메시지의 메시지 값을 감산하여 감산값을 산출하는 것을 특징으로 하는 데이터 수신 장치.
  20. 제19항에 있어서,
    상기 복호기는, 상기 감산값에 소정의 함수를 이용하여 함수값을 산출한 후 상기 산출한 함수값을 상기 제2메모리에 저장하는 것을 특징으로 하는 데이터 수신 장치.
  21. 제18항에 있어서,
    상기 복호기는, 상기 합산값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 상기 제1메모리에 저장하는 것을 특징으로 하는 데이터 수신 장치.
  22. 제15항에 있어서,
    상기 복호기는, 상기 변수 노드로의 입력 메시지의 지시자 정보에 상응하여 업데이트하는 것을 특징으로 하는 데이터 수신 장치.
  23. 제22항에 있어서,
    상기 복호기는, 상기 변수 노드로의 입력 메시지가 마지막 메시지임을 나타내는 상기 지시자 정보를 저장하는 메모리를 포함하는 것을 특징으로 하는 데이터 수신 장치.
  24. 제15항에 있어서,
    상기 복호기는, 제1메모리와 제2메모리를 포함하며, 상기 검사 노드 메시지의 어드레스에 상응하여 상기 제1메모리에 기 저장된 합산값을 독출하고, 상기 독출한 합산값에서 상기 검사 노드의 입력 메시지의 메시지 값을 감산하여 상기 변수 노드로의 입력 메시지의 메시지 값을 산출하는 것을 특징으로 하는 데이터 수신 장치.
  25. 제24항에 있어서,
    상기 복호기는, 상기 감산값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 상기 제2메모리에 저장하는 것을 특징으로 하는 데이터 수신 장치.
  26. 제24항에 있어서,
    상기 검사 노드 메시지의 어드레스는, 상기 제1메모리에 저장된 합산값의 저장 상태에 상응하여 결정되는 것을 특징으로 하는 데이터 수신 장치.
  27. 제24항에 있어서,
    상기 복호기는, 상기 검사 노드로의 입력 메시지의 어드레스에 상응하여 상기 제2메모리에 기 저장된 상기 검사 노드로의 입력 메시지의 메시지 값을 독출하고, 상기 독출한 메시지 값에 소정의 함수를 이용하여 함수값을 산출한 후, 상기 산출한 함수값을 통해 상기 상기 검사 노드로의 입력 메시지를 생성하는 것을 특징으로 하는 데이터 수신 장치.
  28. 제27항에 있어서,
    상기 검사 노드로의 입력 메시지의 어드레스는, 상기 제1메모리에 저장된 합산값의 저장 상태에 상응하여 결정되는 것을 특징으로 하는 데이터 수신 장치.
KR1020070005663A 2007-01-18 2007-01-18 통신 시스템에서 데이터 수신 방법 및 장치 KR20080068218A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070005663A KR20080068218A (ko) 2007-01-18 2007-01-18 통신 시스템에서 데이터 수신 방법 및 장치
US12/009,435 US20080178066A1 (en) 2007-01-18 2008-01-18 Method and apparatus for receiving data in communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070005663A KR20080068218A (ko) 2007-01-18 2007-01-18 통신 시스템에서 데이터 수신 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20080068218A true KR20080068218A (ko) 2008-07-23

Family

ID=39642440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070005663A KR20080068218A (ko) 2007-01-18 2007-01-18 통신 시스템에서 데이터 수신 방법 및 장치

Country Status (2)

Country Link
US (1) US20080178066A1 (ko)
KR (1) KR20080068218A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873068A (zh) * 2012-12-14 2014-06-18 咏传电子科技(上海)有限公司 低密度奇偶检查的解码方法与电子装置
CN106330200B (zh) * 2015-07-09 2019-09-10 华邦电子股份有限公司 执行于通量图形处理器的低密度奇偶校验解码方法
US11929762B2 (en) * 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
US8234537B2 (en) * 2006-03-31 2012-07-31 Intel Corporation Layered decoder and method for performing layered decoding

Also Published As

Publication number Publication date
US20080178066A1 (en) 2008-07-24

Similar Documents

Publication Publication Date Title
KR100888096B1 (ko) 메모리 효율적인 ldpc 디코딩 방법 및 장치
US10530392B2 (en) Vertical layered finite alphabet iterative decoding
KR100899738B1 (ko) 노드 메모리 기반의 ldpc 복호기 및 복호방법
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
KR101588304B1 (ko) 원형군 크기의 비-정수배들을 위한 준순환 ldpc 인코딩 및 디코딩
CN109787639B (zh) 用于解码纠错码的系统和方法
WO2007018590A1 (en) Method and apparatus for block and rate independent decoding of ldpc codes
JP2006279396A (ja) Ldpc符号検出装置及びldpc符号検出方法
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
KR20150128750A (ko) 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
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
CN109586731A (zh) 用于解码纠错码的系统和方法
KR20150011085A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법
KR101631128B1 (ko) 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
US10554226B2 (en) Method for controlling a check node of a NB-LDPC decoder and corresponding check node
KR20080068218A (ko) 통신 시스템에서 데이터 수신 방법 및 장치
US11108410B1 (en) User-programmable LDPC decoder
CN113595564B (zh) 基于信息截断的低复杂度多进制ldpc码译码器装置
JP2007281771A (ja) 誤り訂正復号装置および誤り訂正復号方法
US10374631B2 (en) Look-ahead LDPC decoder
CN106911337B (zh) 数据处理方法、装置和解码器
CN113742898A (zh) 一种应用于低轨卫星互联网系统的ldpc译码器逻辑设计方法
CN115395964A (zh) 一种增强部分并行架构高速ldpc译码器及译码方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application