KR20130118162A - Ldpc 부호 복호기 및 복호 방법 - Google Patents

Ldpc 부호 복호기 및 복호 방법 Download PDF

Info

Publication number
KR20130118162A
KR20130118162A KR1020120041138A KR20120041138A KR20130118162A KR 20130118162 A KR20130118162 A KR 20130118162A KR 1020120041138 A KR1020120041138 A KR 1020120041138A KR 20120041138 A KR20120041138 A KR 20120041138A KR 20130118162 A KR20130118162 A KR 20130118162A
Authority
KR
South Korea
Prior art keywords
message
node
absolute value
minimum absolute
variable
Prior art date
Application number
KR1020120041138A
Other languages
English (en)
Other versions
KR101881877B1 (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 KR1020120041138A priority Critical patent/KR101881877B1/ko
Priority to US13/862,686 priority patent/US9088302B2/en
Publication of KR20130118162A publication Critical patent/KR20130118162A/ko
Application granted granted Critical
Publication of KR101881877B1 publication Critical patent/KR101881877B1/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
    • 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/13Linear 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
    • 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/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
    • H03M13/1122Soft-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 storing only the first and second minimum values per check node
    • 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

Landscapes

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

Abstract

LDPC 부호 복호기 및 복호 방법이 개시된다. LDPC 부호 복호기가 수행하는 복호 방법은 변수 노드(V-node)의 메시지를 계산하는 단계; 상기 체크 노드(C-node)의 메시지를 계산하는 단계; 및 상기 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산하는 단계를 포함할 수 있다.

Description

LDPC 부호 복호기 및 복호 방법{Low Density Parity-Check Code Decoder and Decoding Method}
본 발명은 오류 정정을 위해 사용되는 LDPC 부호 복호기 및 복호 방법에 관한 것으로, 보다 구체적으로 메모리의 사용량을 줄이기 위한 LDPC 부호 복호기 및 복호 방법에 관한 것이다.
LDPC 부호 복호기는 연산량이 많기 때문에, SIMD(Single Instruction Multiple Data) 구조의 ASIC(Application Specific Integrate Circuit) 형태로 구현되는 것이 일반적이다. 하지만, 다양한 형태의 LDPC 규격이 제정되었고, 그 때마다 ASIC 형태의 LDPC 부호 복호기를 개발하는 것은 매우 비효율적이다.
따라서, 여러 규격에 유연하게 대응하기 위해서 ASIP(Application Specific Instruction Processor)을 이용한 구현이 필요하지만, 이 경우 처리할 데이터의 양이 상대적으로 많다는 문제가 있었다. 그리고, 일관성이 적기 때문에 ASIP 형태로 LDPC 부호 복호기를 구현하는 것은 어려움이 있었다.
따라서, LDPC 부호(code)를 복호화할 때 연산에 사용되는 메모리의 양을 줄여 구현에 필요한 최소의 메모리를 사용하는 방법이 필요하다.
본 발명의 일실시예에 따른 LDPC 부호 복호기는 변수 노드(V-node)의 메시지를 계산하는 제1 계산부; 상기 체크 노드(C-node)의 메시지를 계산하는 제2 계산부; 및 상기 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산하는 제3 계산부를 포함할 수 있다.
본 발명의 일실시예에 따른 LDPC 부호 복호기의 제1 계산부는, 상기 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 상기 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB)), 상기 최소 절대값을 갖는 변수 노드의 위치(Index), 및 상기 변수 노드들의 사인 비트(sign bit)를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산할 수 있다.
본 발명의 일실시예에 따른 복호 방법은 변수 노드(V-node)의 메시지를 계산하는 단계; 상기 체크 노드(C-node)의 메시지를 계산하는 단계; 및 상기 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 복호 방법의 변수 노드의 메시지를 계산하는 단계는, 상기 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 상기 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB)), 상기 최소 절대값을 갖는 변수 노드의 위치(Index), 및 상기 변수 노드들의 사인 비트(sign bit)를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산할 수 있다.
본 발명의 일실시예에 따르면, 최소한의 메모리를 사용하여 LDPC 부호를 복호화할 수 있다.
도 1은 본 발명의 일실시예에 따른 LDPC 부호 복호기의 세부 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 LDPC 부호의 H-Matrix 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 LDPC 부호 복호기가 동작하는 방법을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 LDPC 부호 복호기에서 사용되는 데이터 비트를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 DVB-S2 Long frame에서의 BER을 도시한다.
도 6은 본 발명의 일실시예에 따른 LDPC 부호 복호기가 수행하는 복호 방법을 도시한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 LDPC 부호 복호기의 세부 구성을 도시한 도면이다.
도 1을 참고하면, LDPC 부호 복호기(100)는 제1 계산부(101), 제2 계산부(102) 및 제3 계산부(103)를 포함할 수 있다. 여기서, LDPC 부호 복호기(100)는 복수의 레이어들에 대해 반복적으로 제1 계산부(101), 제2 계산부(102), 제3 계산부(103)를 통해 LDPC 부호를 복호화할 수 있다.
제1 계산부(101)는 변수 노드(Variable node: V-node)의 메시지를 계산할 수 있다. 일례로, 제1 계산부(101)는 이전 레이어에 대응하는 채널의 로그 우도비 데이터와 이전 반복 횟수에 대응하는 체크 노드의 메시지를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산할 수 있다. 여기서, 체크 노드는 현재 레이어에 대응하는 변수 노드와 관련될 수 있다.
본 발명의 일실시예에 따르면, 제1 계산부(101)는 최소-합계(Min-Sum) 알고리즘을 이용하여 현재 레이어의 변수 노드의 메시지를 계산할 수 있다. 일반적으로 변수 노드의 메시지를 계산할 때, 이전 반복 횟수에 대응하는 체크 노드의 메시지를 그대로 이용하면 매번 반복할 때마다 발생되는 체크 노드를 저장하기 위해 필요한 메모리 양이 증가한다. 그래서, 최소-합계 알고리즘을 통해 체크 노드의 메시지를 보다 효과적으로 저장할 수 있다. 최소-합계 알고리즘에 따르면, 제1 계산부(101)는 체크 노드의 메시지 대신에 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 제1 최소 절대값을 제외한 제2 최소 절대값(|submin|), 최소 절대값을 갖는 변수 노드의 위치(Index), 및 변수 노드들의 사인 비트(sign bit)를 이용할 수 있다.
특히, 제1 계산부(101)는 필요한 메모리 양을 추가로 줄이기 위해 채널의 로그 우도 데이터보다 작은 비트를 이용하여 제1 최소 절대값(|min|)과 제2 최소 절대값(|submin|)을 저장할 수 있다. 구체적으로, 제1 계산부(101)는 제2 최소 절대값을 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB))로 대체하여 저장할 수 있다. 여기서, 제2 최소 절대값과 관련된 함수값은 제2 최소 절대값과 제1 최소 절대값 간의 차이(|submin|-|min|)일 수 있다. 또는, 제2 최소 절대값과 관련된 함수값은 제2 최소 절대값(|submin|)일 수 있다.
제2 계산부(102)는 체크 노드(Check node: C-node)의 메시지를 계산할 수 있다. 일례로, 제2 계산부(102)는 현재 레이어의 체크 노드와 관련된 모든 변수 노드의 메시지를 이용하여 현재 레이어의 체크 노드의 메시지를 계산할 수 있다.
제3 계산부(103)는 변수 노드의 메시지와 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산할 수 있다.
도 2는 본 발명의 일실시예에 따른 LDPC 부호의 H-Matrix 구조를 도시한 도면이다.
준 순환 LDPC 부호(Quasi-Cyclic LDPC)의 H-Matrix는 도 2와 같이 ZxZ의 부분 블록으로 나눌 수 있다. 하나의 레이어에 ZxZ의 부분 블록이 n개 존재할 수 있다.
도 2를 참고하면, 수직방향, 수평방향 연산의 크기가 같기 때문에 SIMD 구조를 이용해 효율적으로 LDPC 부호 복호기의 구현이 가능하다. SIMD는 하나의 제어신호로 복수의 연산 장치들을 제어하는 구조를 의미한다. 레이어는 H-Matrix의 열을 부분 블럭의 길이 z로 그룹화 한 것을 의미한다. 본 발명의 일실시예에 따른 LDPC 부호 복호기는 도 2의 LDPC 부호의 H-Matrix를 각각의 레이어들을 반복적으로 부호화할 수 있다.
도 3은 본 발명의 일실시예에 따른 LDPC 부호 복호기가 동작하는 방법을 도시한 도면이다.
도 3을 참고하면, 각각의 레이어마다 LDPC 부호 복호기가 연산을 수행한다. 여기서, CNF는 체크 노드에서 수행되는 함수를 의미하고, VNF는 변수 노드에서 수행되는 함수를 의미한다.
변수 노드의 메시지, 체크 노드의 메시지, 채널의 로그 우도 데이터는 하기 수학식 1에 따라 계산된다.
Figure pat00001
수학식 1에서 (1)은 변수 노드의 메시지를 의미하고, (2)는 체크 노드의 메시지를 의미하며, (3)은 채널의 로그 우도 데이터(LLR 데이터)를 의미한다. 그리고, i는 반복횟수, k는 레이어 번호, n은 V-node의 번호, 그리고 m은 C-node의 번호이다.
수학식 1의 (1)을 참고하면, 변수 노드의 메시지(
Figure pat00002
)는 이전 레이어에 대응하는 채널의 로그 우도비 데이터(
Figure pat00003
)와 이전 반복 횟수에 대응하는 체크 노드의 메시지(
Figure pat00004
)의 차이를 통해 계산될 수 있다.
수학식 1의 (2)를 참고하면, 체크 노드의 메시지(
Figure pat00005
)는 현재 레이어의 변수 노드의 메시지를 제외한 체크 노드와 관련된 모든 변수 노드의 메시지(
Figure pat00006
)에 최소값(min)과 사인(sign)을 적용하여 계산될 수 있다. 여기서, 체크 노드의 메시지(
Figure pat00007
)는 채널의 로그 우도 데이터의 오류를 정정하기 위한 값이다. 특히, 수학식 1의 (2)를 보다 빠르게 연산하기 위해, 기존의 SDR(software Defined Ratio) Datapath에 LDPC 가속기를 추가하여 Throughput을 높일 수 있다.
수학식 1의 (3)을 참고하면, 채널의 로그 우도 데이터는 현재 레이어에 대응하는 변수 노드의 메시지(
Figure pat00008
)와 체크 노드의 메시지(
Figure pat00009
)를 합산함으로써 계산될 수 있다.
연산 과정 중 수학식 1의 (1)에서 이전 반복 복호의 연산 결과인
Figure pat00010
를 이용하여 위해 모든 체크 노드의 메시지를 메모리에 저장해야 한다. 이 때, 체크 노드의 메시지를 저장할 때 필요한 메모리의 양은 LDPC 부호의 특성에 따라 다르다.
본 발명의 일실시예에 따르면, 최소-합계(Min-sum) 알고리즘을 구현하여 반복 복호의 중간 결과인 Rmn i , k 를 효과적으로 저장할 수 있다. 구체적으로, 최소-합계(Min-sum) 알고리즘에 의하면, Rmn i ,k 값 대신 |min|, |submin|, index, sign을 저장하여 복수의 Rmn i ,k 정보를 필요한 때 활용할 수 있다.
|min|: 현재 레이어의 체크 노드(C-node)와 연결된 변수 노드(V-node)들의 메시지의 최소 절대값
|submin|: |min|을 제외한 최소 절대값. 경우에 따라 |min|과 |submin|은 같을 수 있다.
Index : |min|을 갖는 변수 노드들의 위치
Sign : 변수 노드들의 사인 비트(sign bit)
이 때 필요한 메모리의 크기를 추가로 줄이기 위해 채널의 로그 우도 데이터보다 작은 비트를 이용하여 |min|과 |submin|을 저장할 수 있다. 예를 들어, DVB-S2 표준의 LPDC 부호 복호기에서 Min-Sum 알고리즘을 이용하면, 5bit의 |min|과 |submin|을 4bit로 변환할 수 있다.
특히, 본 발명의 일실시예에 따르면, 수학식 1의 (2)의 결과를 메모리에 저장할 때 dc개의 Rmn 혹은 |min|, |submin|, index, dc 개의 사인(sign) 대신에 |min|, f(submin|-|min|)MSBs, index, dc개의 사인(sign)을 내부 레지스터에 저장할 수 있다. 여기서, dc는 해당 체크 노드와 연결된 변수 노드의 개수를 의미한다.
f(|submin|)MSBs은 제2 최소 절대값인 |submin|의 함수값에 대한 MSB bit로서 |submin|보다 작다. f(|submin|)가 |submin|인 것은 가장 단순한 예를 나타낸다. 높은 복호 성능을 위해서는 f(|submin|)는 |submin|-|min|일 수 있다. 예를 들어, DVB-S2인 경우 |submin|, |min|이 5bit 일 때 f(|submin|-|min|)MSBs 는 상위 2bit만을 저장할 수 있다.
앞서 설명한 수학식 1의 (3)을 연산하기 위해, 먼저 메모리에 저장된 |min|, f(|submin|)MSBs, index, sign을 읽어 |min|, |submin|approx, index, sign을 만들어 낸다. 이 때 |submin|approx은 생략한 k-bit 만큼 왼편으로 bit shift를 하여 복원될 수 있다. 구체적으로, |submin|은 f(|submin|-|min|)MSBs의 LSB 쪽에 ‘0’ 들을 붙여 f f(|submin|-|min|)approx를 복원하고, |min|과 합산됨으로써 도출된다.
|submin|approx 은 하기 수학식 2를 통해 복원될 수 있다.
Figure pat00011
|submin|approx을 이용하여 Rmn이 계산되면, LDPC 부호 복호기는 이전 반복 횟수에 대응하는 Lnm와 Rmn을 합산하여 채널의 로그 우도 데이터 Ln을 메모리에 저장할 수 있다.
본 발명의 일실시예에 따르면, f(|submin|)MSBs을 이용하여 |submin|의 근사화가 가능할 수 있다. f(|submin|)MSBs을 이용하여 |submin|의 근사화가 가능한 이유는 Min-Sum 알고리즘에서 사용하는 log 도메인에서의 함수가 하기 수학식 3과 같이 표현되기 때문이다.
Figure pat00012
본 발명의 일실시예와 같이, |submin| 대신 f(|submin|-|min|)MSBs을 저장하는 이유는 다음과 같다. Min-sum 알고리즘에서 min값만을 취하는 이유는 φ(x)에서 가장 작은 x가 결과를 좌우하기 때문이다. x가 0에 근접해 있는 경우를 제외하면 φ(x)의 변화가 거의 없다. 따라서 |submin|-|min|의 값이 작을 경우 |submin|대신 |min|을 사용해도 복호 성능에 큰 영향을 미치지 않는다. 반대로 |submin|-|min|가 클 경우 |submin|을 사용해야 복호 성능이 떨어지지 않는다.
따라서 |submin|-|min|의 MSB 2bit만을 저장해 |submin|-|min|가 큰 경우의 |submin|만을 복구해도 만족할 만한 복호 성능이 나타날 수 있다. 즉, f(|submin|)MSBs을 이용하여 복호를 할 경우, 특히, f(|submin|)MSBs={|submin|-|min|}MSBs 인 경우 f(|submin|)MSBs이 0이면 |submin|=|min|을 사용하고, 0이 아니면 |submin|=|submin|approx을 사용해도 만족할 만한 복호 성능을 얻을 수 있다.
도 4는 본 발명의 일실시예에 따른 LDPC 부호 복호기에서 사용되는 데이터 비트를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 DVB-S2 Long frame에서의 BER을 도시한다.
본 발명에서 제안한 방식으로 LDPC 부호 복호기의 데이터를 저장하면 재설정 가능한 LDPC 복호기가 상대적으로 작은 메모리를 사용하면서 복호 성능을 만족시킬 수 있다. 종래의 방법과의 비교를 위해 DVB-S2규격에 맞는 LDPC 부호의 복호화에 필요한 데이터를 모두 저장하는데 필요한 비트수를 계산하면 도 5와 같다.
특히 1/4 code rate을 사용할 경우 5bit을 |submin|에 할당하는 경우 대비 97200 bit의 메모리 절약이 가능하다. 본 발명의 일실시예에 따른 복호 방법을 적용하여 LDPC 부호의 복호화에 필요한 전체 메모리의 크기를 계산할 경우, 약 210,600 Byte가 필요하다. 그러면, 종래의 방법에 따라 복호화할 때 필요한 메모리 양인 259,200 Byte 대비 약 19%의 메모리 양이 절약될 수 있다.
도 6은 본 발명의 일실시예에 따른 LDPC 부호 복호기가 수행하는 복호 방법을 도시한 도면이다.
단계(601)에서, LDPC 부호 복호기는 변수 노드(V-node)의 메시지를 계산할 수 있다. 일례로, LDPC 부호 복호기는 이전 레이어에 대응하는 채널의 로그 우도비 데이터와 이전 반복 횟수에 대응하는 체크 노드의 메시지를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산할 수 있다. 여기서, 체크 노드는 현재 레이어에 대응하는 변수 노드와 관련될 수 있다.
본 발명의 일실시예에 따르면, LDPC 부호 복호기는 최소-합계(Min-Sum) 알고리즘을 이용하여 현재 레이어의 변수 노드의 메시지를 계산할 수 있다. 일반적으로 변수 노드의 메시지를 계산할 때, 이전 반복 횟수에 대응하는 체크 노드의 메시지를 그대로 이용하면 매번 반복할 때마다 발생되는 체크 노드를 저장하기 위해 필요한 메모리 양이 증가한다. 그래서, 최소-합계 알고리즘을 통해 체크 노드의 메시지를 보다 효과적으로 저장할 수 있다. 최소-합계 알고리즘에 따르면, LDPC 부호 복호기는 체크 노드의 메시지 대신에 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 제1 최소 절대값을 제외한 제2 최소 절대값(|submin|), 최소 절대값을 갖는 변수 노드의 위치(Index), 및 변수 노드들의 사인 비트(sign bit)를 이용할 수 있다.
특히, LDPC 부호 복호기는 필요한 메모리 양을 추가로 줄이기 위해 채널의 로그 우도 데이터보다 작은 비트를 이용하여 제1 최소 절대값(|min|)과 제2 최소 절대값(|submin|)을 저장할 수 있다. 구체적으로, 제1 계산부(101)는 제2 최소 절대값을 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB))로 대체하여 저장할 수 있다. 여기서, 제2 최소 절대값과 관련된 함수값은 제2 최소 절대값과 제1 최소 절대값 간의 차이(|submin|-|min|)일 수 있다. 또는, 제2 최소 절대값과 관련된 함수값은 제2 최소 절대값(|submin|)일 수 있다.
단계(602)에서, LDPC 부호 복호기는 체크 노드(C-node)의 메시지를 계산할 수 있다. LDPC 부호 복호기는 현재 레이어의 체크 노드와 관련된 모든 변수 노드의 메시지를 이용하여 현재 레이어의 체크 노드의 메시지를 계산할 수 있다.
단계(603)에서, LDPC 부호 복호기는 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: LDPC 부호 복호기
101: 제1 계산부
102: 제2 계산부
103: 제3 계산부

Claims (15)

  1. LDPC(Low Density Parity-Check Code) 복호기가 수행하는 복호 방법에 있어서,
    변수 노드(V-node)의 메시지를 계산하는 단계;
    상기 체크 노드(C-node)의 메시지를 계산하는 단계;
    상기 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산하는 단계
    를 포함하고,
    상기 복호기는,
    상기 단계들을 복수의 레이어들 각각에 대해 반복적으로 수행하는 것을 특징으로 하는 복호 방법.
  2. 제1항에 있어서,
    상기 변수 노드의 메시지를 계산하는 단계는,
    이전 레이어에 대응하는 채널의 로그 우도비 데이터와 이전 반복 횟수에 대응하는 체크 노드의 메시지를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산하는 것을 특징으로 하는 복호 방법.
  3. 제1항에 있어서,
    상기 체크 노드의 메시지를 계산하는 단계는,
    현재 레이어의 체크 노드와 관련된 모든 변수 노드의 메시지를 이용하여 현재 레이어의 체크 노드의 메시지를 계산하는 것을 특징으로 하는 복호 방법.
  4. 제1항에 있어서,
    상기 변수 노드의 메시지를 계산하는 단계는,
    최소-합계(Min-Sum) 알고리즘을 이용하여 현재 레이어의 변수 노드의 메시지를 계산하는 것을 특징으로 하는 복호 방법.
  5. 제1항에 있어서,
    상기 변수 노드의 메시지를 계산하는 단계는,
    상기 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 상기 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB)), 상기 최소 절대값을 갖는 변수 노드의 위치(Index), 및 상기 변수 노드들의 사인 비트(sign bit)를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산하는 것을 특징으로 하는 복호 방법.
  6. 제5항에 있어서,
    상기 제2 최소 절대값과 관련된 함수값은,
    상기 제2 최소 절대값과 상기 제1 최소 절대값 간의 차이인 것을 특징으로 하는 복호 방법.
  7. 제5항에 있어서,
    상기 제2 최소 절대값과 관련된 함수값은,
    상기 제2 최소 절대값인 것을 특징으로 하는 복호 방법.
  8. LDPC(Low Density Parity-Check Code) 복호기에 있어서,
    변수 노드(V-node)의 메시지를 계산하는 제1 계산부;
    상기 체크 노드(C-node)의 메시지를 계산하는 제2 계산부; 및
    상기 변수 노드의 메시지와 상기 체크 노드의 메시지를 이용하여 채널의 로그 우도비 데이터를 계산하는 제3 계산부
    를 포함하고,
    상기 복호기는,
    복수의 레이어들 각각에 대해 변수 노드의 메시지, 체크 노드의 메시지, 채널의 로그 우도비 데이터를 반복적으로 계산하는 것을 특징으로 하는 LDPC 부호 복호기.
  9. 제8항에 있어서,
    상기 제1 계산부는,
    이전 레이어에 대응하는 채널의 로그 우도비 데이터와 이전 반복 횟수에 대응하는 체크 노드의 메시지를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산하는 것을 특징으로 하는 LDPC 부호 복호기.
  10. 제8항에 있어서,
    상기 제2 계산부는,
    현재 레이어의 체크 노드와 관련된 모든 변수 노드의 메시지를 이용하여 현재 레이어의 체크 노드의 메시지를 계산하는 것을 특징으로 하는 LDPC 부호 복호기.
  11. 제8항에 있어서,
    상기 제1 계산부는,
    최소-합계(Min-Sum) 알고리즘을 이용하여 현재 레이어의 변수 노드의 메시지를 계산하는 것을 특징으로 하는 LDPC 부호 복호기.
  12. 제8항에 있어서,
    상기 제1 계산부는,
    상기 체크 노드와 연결된 변수 노드들 각각의 메시지의 제1 최소 절대값 (|min|), 상기 제1 최소 절대값을 제외한 제2 최소 절대값과 관련된 함수값에 대한 상위 비트(f(|submin|MSB)), 상기 최소 절대값을 갖는 변수 노드의 위치(Index), 및 상기 변수 노드들의 사인 비트(sign bit)를 이용하여 현재 레이어에 대응하는 변수 노드의 메시지를 계산하는 것을 특징으로 하는 LDPC 부호 복호기.
  13. 제12항에 있어서,
    상기 제2 최소 절대값과 관련된 함수값은,
    상기 제2 최소 절대값과 상기 제1 최소 절대값 간의 차이인 것을 특징으로 하는 LDPC 부호 복호기.
  14. 제12항에 있어서,
    상기 제2 최소 절대값과 관련된 함수값은,
    상기 제2 최소 절대값인 것을 특징으로 하는 LDPC 부호 복호기.
  15. 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
KR1020120041138A 2012-04-19 2012-04-19 Ldpc 부호 복호기 및 복호 방법 KR101881877B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120041138A KR101881877B1 (ko) 2012-04-19 2012-04-19 Ldpc 부호 복호기 및 복호 방법
US13/862,686 US9088302B2 (en) 2012-04-19 2013-04-15 Low-density parity-check code decoder and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120041138A KR101881877B1 (ko) 2012-04-19 2012-04-19 Ldpc 부호 복호기 및 복호 방법

Publications (2)

Publication Number Publication Date
KR20130118162A true KR20130118162A (ko) 2013-10-29
KR101881877B1 KR101881877B1 (ko) 2018-07-25

Family

ID=49381302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120041138A KR101881877B1 (ko) 2012-04-19 2012-04-19 Ldpc 부호 복호기 및 복호 방법

Country Status (2)

Country Link
US (1) US9088302B2 (ko)
KR (1) KR101881877B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110474647A (zh) * 2019-07-03 2019-11-19 深圳市通创通信有限公司 有限域构造的ldpc码的译码方法、装置、译码器及存储介质
US10778249B2 (en) 2017-11-30 2020-09-15 Korea University Research And Business Foundation Method and apparatus for deciding decoding order for shuffled decoding of LDPC codes

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
US10509603B2 (en) * 2016-07-29 2019-12-17 Western Digital Technologies, Inc. Hierarchical variable code rate error correction coding
CN109245775B (zh) * 2017-07-10 2022-08-09 深圳市中兴微电子技术有限公司 一种译码器及其实现译码的方法
WO2021049888A1 (en) 2019-09-10 2021-03-18 Samsung Electronics Co., Ltd. Method and apparatus for data decoding in communication or broadcasting system
KR102525414B1 (ko) 2020-07-29 2023-04-25 한국전자통신연구원 LDPC(low-density parity-check) 부호의 복호화 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090040215A (ko) * 2007-10-19 2009-04-23 소니 가부시끼 가이샤 수신장치와 방법 및 프로그램
KR20090092892A (ko) * 2008-02-28 2009-09-02 엘지전자 주식회사 Ldpc 코드를 이용한 복호화 방법
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7941737B2 (en) 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
US20080028282A1 (en) 2006-07-25 2008-01-31 Legend Silicon receiver architecture having a ldpc decoder with an improved llr update method for memory reduction
US8429512B2 (en) 2008-06-23 2013-04-23 Romat At Tel Aviv University Ltd. Reduced complexity LDPC decoder
CN102484484B (zh) * 2009-08-25 2014-08-20 富士通株式会社 发送机、编码装置、接收机以及解码装置
KR20110043337A (ko) 2009-10-21 2011-04-27 금오공과대학교 산학협력단 Ldpc 복호기의 체크노드 갱신값 저장 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090040215A (ko) * 2007-10-19 2009-04-23 소니 가부시끼 가이샤 수신장치와 방법 및 프로그램
KR20090092892A (ko) * 2008-02-28 2009-09-02 엘지전자 주식회사 Ldpc 코드를 이용한 복호화 방법
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10778249B2 (en) 2017-11-30 2020-09-15 Korea University Research And Business Foundation Method and apparatus for deciding decoding order for shuffled decoding of LDPC codes
CN110474647A (zh) * 2019-07-03 2019-11-19 深圳市通创通信有限公司 有限域构造的ldpc码的译码方法、装置、译码器及存储介质
CN110474647B (zh) * 2019-07-03 2023-05-23 深圳市通创通信有限公司 有限域构造的ldpc码的译码方法、装置、译码器及存储介质

Also Published As

Publication number Publication date
US20130283117A1 (en) 2013-10-24
KR101881877B1 (ko) 2018-07-25
US9088302B2 (en) 2015-07-21

Similar Documents

Publication Publication Date Title
JP6555759B2 (ja) 構造化されたldpcのコーディング方法、デコーディング方法、コーディング装置及びデコーディング装置
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
KR20130118162A (ko) Ldpc 부호 복호기 및 복호 방법
JP4062435B2 (ja) 誤り訂正符号復号装置
JP5231459B2 (ja) 低密度パリティ検査(ldpc)符号を符号化し復号するための方法及び装置
US8996972B1 (en) Low-density parity-check decoder
US9048871B2 (en) LDPC multi-decoder architectures
US8443257B1 (en) Rate-scalable, multistage quasi-cyclic LDPC coding
US9195536B2 (en) Error correction decoder and error correction decoding method
JP5723975B2 (ja) Ldpcコードの復号のための方法、システム、およびプログラム
US10084480B1 (en) Systems and methods for decoding cascade LDPC codes
JP2008035527A (ja) ハードウェア共用および直列和積アーキテクチャを用いる低密度パリティ検査復号の方法および装置
US8504894B1 (en) Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
CN112204888A (zh) 具有高效编码和良好误码平层特性的一类qc-ldpc码
US9015548B2 (en) Error detection correction method and semiconductor memory apparatus
JP2009177416A (ja) 復号装置および方法、プログラム、並びに記録媒体
WO2011067954A1 (ja) 復号装置および復号方法
US9548764B1 (en) Memory efficient decoders for low-density parity-check codes
KR102511779B1 (ko) 극 부호 연속 제거 비트 반전 복호 장치 및 방법
JP5510447B2 (ja) 復号装置および復号方法
WO2017193614A1 (zh) 结构化ldpc的编码、译码方法及装置
KR101154923B1 (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법
TWI551059B (zh) 用於具有不同GF(2m)中m值的BCH碼之多模式秦式搜尋電路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant