KR101698875B1 - Ldpc 부호의 복호 방법 및 장치 - Google Patents

Ldpc 부호의 복호 방법 및 장치 Download PDF

Info

Publication number
KR101698875B1
KR101698875B1 KR1020130027184A KR20130027184A KR101698875B1 KR 101698875 B1 KR101698875 B1 KR 101698875B1 KR 1020130027184 A KR1020130027184 A KR 1020130027184A KR 20130027184 A KR20130027184 A KR 20130027184A KR 101698875 B1 KR101698875 B1 KR 101698875B1
Authority
KR
South Korea
Prior art keywords
check node
inputs
comparison result
result
absolute value
Prior art date
Application number
KR1020130027184A
Other languages
English (en)
Other versions
KR20140112744A (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 KR1020130027184A priority Critical patent/KR101698875B1/ko
Priority to US14/031,882 priority patent/US9336077B2/en
Publication of KR20140112744A publication Critical patent/KR20140112744A/ko
Application granted granted Critical
Publication of KR101698875B1 publication Critical patent/KR101698875B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/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/112Soft-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 with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Abstract

LDPC 부호의 복호 방법 및 장치가 제공된다. 본 명세서는 입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하여, 상기 제1 결과 및 상기 제2 결과를 입력으로 하여 검사노드를 계산함을 포함한다.

Description

LDPC 부호의 복호 방법 및 장치{APPARATUS AND METHOD FOR DECODING OF LDPC CODE}
본 발명은 LDPC 부호의 복호에 관한 것이며, 보다 자세하게는 복잡도가 낮은 고성능 복호 방법에 관한 것이다.
LDPC(Low Density Parity Check) 부호의 복호 방법은 합곱(Sum-Product) 알고리즘, 최소합(Min-Sum) 알고리즘, 오프셋-최소합(Offset Min-Sum) 알고리즘, 정규화된 최소합(Normalized Min-Sum) 등의 알고리즘이 있다.
합곱 알고리즘은 성능이 우수하지만 복잡도가 높고 채널잡음의 분산 추정이 요구된다. 최소합 알고리즘은 복잡도가 매우 낮고 채널잡음의 분산을 추정할 필요가 없지만 성능이 떨어진다.
최소합 알고리즘의 성능 저하를 개선하기 위해 정규화된 최소합 알고리즘 및 오프셋-최소합 알고리즘과 같은 변형된 최소합 알고리즘이 제안되었다.
정규화된 최소합 알고리즘 및 오프셋-최소합 알고리즘은 규칙적인(regular) LDPC 부호에서는 매우 우수한 성능을 보이지만, 비규칙적인(irregular) LDPC 부호에서는 여전히 성능 저하가 존재한다.
최소합 알고리즘, 정규화된 최소합 및 오프셋 최소합 알고리즘을 사용하는데 있어서 발생하는 LDPC 부호의 성능열화를 개선하기 위해 새로운 최소합 알고리즘을 제안하며, LDPC 복호 알고리즘을 낮은 복잡도로 구현하기 위한 검사노드 계산방법을 제안한다.
본 발명의 기술적 과제는 최소합 알고리즘을 효율적으로 적용함에 있다.
본 발명의 다른 기술적 과제는 다수의 입력을 가지는 검사노드의 계산을 수행하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 LDPC 의 복호 장치 및 방법을 제공함에 있다.
본 발명의 일 양태에 따르면, LDPC 부호의 복호 알고리즘에 적용되는 검사노드의 계산방법은 입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하는 단계, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하는 단계 및 상기 제1 결과 및 상기 제2 결과를 입력으로 하여 검사노드를 계산하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, LDPC 부호의 복호 방법은 입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하고, 상기 제1 결과 및 상기 제2 결과를 입력으로 하여 검사노드를 계산하는 단계를 포함한다.
본 발명의 또 다른 양태에 따르면, LDPC 부호의 복호 장치는 검사노드값을 저장하거나 갱신하는 메모리 및 상기 검사노드값을 이용하여 복호 연산을 수행하는 연산부를 포함하며, 상기 연산부는 입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하고, 상기 제1 결과 및 상기 제2 결과를 입력으로 하여 검사노드를 계산한다.
본 발명에 따르면, 통신 및 방송 시스템의 수신 성능을 개선하고 복잡도를 낮출 수 있다.
도 1은 본 발명이 적용되는 변수 노드의 일 예를 나타내고, 도 2는 본 발명이 적용되는 검사 노드의 일 예를 나타낸다.
도 3은 본 발명이 적용되는 다수의 입력을 가지는 변수노드를 나타내고, 도 4는 본 발명이 적용되는 다수의 입력을 가지는 검사노드를 나타낸다.
도 5는 본 발명에 따라서 입력이 다수인 검사노드를 계산하는 것의 일 예를 나타낸다.
도 6은 본 발명에 따라서 다수의 입력을 가지는 검사노드의 출력을 계산하는 방법의 일 예를 나타내는 순서도이다.
도 7은 본 발명에 따라서 입력이 다수인 검사노드를 계산하는 것의 다른 예를 나타낸다.
도 8은 본 발명에 따라서 입력이 6개인 검사노드의 에지의 출력을 계산하는 방법의 일 예를 나타낸다.
도 9는 복호 알고리즘과 개선된 알고리즘의 BER 성능을 비교한 것이다. 부호
도 10은 본 발명에 따른 LDPC 부호의 복호화 장치의 일 예를 도시한 블록도이다.
도 11은 ln(cosh()) 함수의 근사화의 일 예를 나타낸 도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
본 발명의 목적 및 효과는 하기의 설명에 의해서 자연스럽게 이해되거나 보다 분명해 질 수 있으며, 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다.
본 발명의 목적, 특징 및 장점은 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하기로 한다.
일반적으로 LDPC 부호는 변수노드(variable node)와 검사노드(check node)로 구성될 수 있다. 검사노드와 변수노드들의 반복적인 정보 전달을 통해 복호가 수행된다. 이를 반복복호(iterative decoding)라고도 한다.
도 1은 본 발명이 적용되는 변수 노드의 일 예를 나타내고, 도 2는 본 발명이 적용되는 검사 노드의 일 예를 나타낸다. 입력이 두 개이며, 3개의 에지(edge)를 가지는 경우이다. 여기서, 에지는 각 노드를 연결하는 선(line)을 의미한다.
먼저, LDPC 부호의 복호를 위한 합곱 알고리즘을 설명한다.
합곱 알고리즘의 일 예로, 입력이 두 개인 경우, 변수 노드에서의 정보 갱신은 다음 수학식 1과 같고, 검사 노드에서의 정보 갱신은 다음 수학식 2와 같다.
Figure 112013022107864-pat00001
Figure 112013022107864-pat00002
여기서, L(u)와 L(v)는 각 노드의 입력정보를, L(r)은 각 노드의 출력정보를 각각 나타낸다. 또한, BI-AWGNC (Binary Input-Additive White Gaussian Noise Channel)에서 L(m)은 다음 수학식과 같다.
Figure 112013022107864-pat00003
여기서, σ2는 채널잡음의 분산을 나타낸다.
즉, 합곱 알고리즘의 경우, 변수노드에서 출력정보는 입력정보들의 합으로 표현되고, 검사노드에서 출력정보는 입력정보들의 'tanh()'함수의 곱으로 표현된다.
따라서, 합곱 알고리즘을 이용해 LDPC 부호를 복호하기 위해서는 채널잡음의 분산(즉, σ2)를 추정해야 할 뿐만 아니라, 'tanh()'함수를 계산하거나 'ln(cosh())' 함수를 계산해야 한다. 일반적으로 'tanh()' 함수 또는 'ln(cosh())' 함수는 룩-업(look-up) 테이블로 구현된다.
'tanh()' 또는 'ln(cosh())'를 계산하거나 채널잡음의 분산을 추정하는 것을 회피하기 위하여 최소합 알고리즘이 이용될 수 있다.
이어서, LDPC 부호의 복호를 위한 최소합 알고리즘을 설명한다.
최소합 알고리즘의 일 예로, 입력이 두 개인 경우, 변수노드에서의 정보 갱신은 다음 수학식 4와 같고, 검사노드에서의 정보 갱신은 다음 수학식 5와 같다.
Figure 112013022107864-pat00004
Figure 112013022107864-pat00005
여기서, 'u'와 'v'는 각 노드의 입력정보를, 'r'은 각 노드의 출력정보를 각각 나타낸다.'sign()'는 입력 값의 부호를 나타낸다. 'min()'은 입력값 들 중 최소값을 나타낸다.
즉, 최소합 알고리즘의 경우, 변수노드에서 출력정보는 입력정보들의 합으로, 검사노드에서 출력정보는 입력정보들의 부호가 곱해진 최소값으로 표현된다.
최소합 알고리즘을 이용하여 LDPC 부호를 복호하면, 채널잡음의 분산을 추정할 필요가 없고 계산량이 적지만, 성능이 합곱 알고리즘에 비해 떨어진다.
최소합 알고리즘의 사용으로 인한 성능 열화를 개선하기 위해 정규화된 최소합 알고리즘 또는 오프셋 최소합 알고리즘이 이용될 수 있다.
이어서, LDPC 부호의 복호를 위한 정규화된(normalized) 최소합 알고리즘을 설명한다.
정규화된 최소합 알고리즘의 일 예로, 입력이 두 개인 경우, 변수노드에서의 정보 갱신은 다음 수학식 6과 같고, 검사노드에서의 정보 갱신은 다음 수학식 7과 같다.
Figure 112013022107864-pat00006
Figure 112013022107864-pat00007
여기서, α는 검사노드의 정규화를 위한 상수이며(일 예로, 'α<1'이다), α는 사용되는 LDPC 부호에 따라 적절히 선택될 수 있다.
이어서, LDPC 부호의 복호를 위한 오프셋-최소합 알고리즘을 설명한다.
오프셋-최소합 알고리즘의 일 예로, 입력이 두 개인 경우, 변수노드에서의 정보 갱신은 다음 수학식 8과 같고, 검사노드에서의 정보 갱신은 다음 수학식 9와 같다.
Figure 112013022107864-pat00008
Figure 112013022107864-pat00009
여기서 β는 검사노드의 오프셋 값이며, 사용되는 LDPC 부호에 따라 적절히 선택될 수 있다.
부호율이 0.4인 LDPC 부호의 복호 알고리즘에 따른 BER(Bit Error Rate) 성능을 분석한 결과, 부호율이 0.4인 LDPC 부호의 성능을 가장 우수하게 하도록 α(=0.83) 및 β(=0.3)이 선택될 수 있다. 부호율인 0.4인 LDPC 복호 알고리즘은 유럽의 디지털 위성방송 표준(DVB-S2)에서 사용된다.
이어서,'개선된 최소합 알고리즘'을 설명한다. 개선된 최소합 알고리즘은 합곱 알고리즘 중'ln(cosh())' 함수를 선형(linear) 또는 스텝(step) 근사화하고, 최소합 알고리즘으로 변환한다. 채널잡음의 추정 과정을 없애 복잡도는 낮으며 성능은 합곱 알고리즘에 근접하다.
도 11은 ln(cosh()) 함수의 근사화의 일 예를 나타낸 도이다.
도 11을 참조하면, 'ln(cosh())'함수는 다음 수학식과 같이 근사화 될 수 있다.
Figure 112013022107864-pat00010
여기서, a는 ln cosh() 함수를 일차함수로 근사화한 식의 기울기이며, b는 수직축의 절편이며, A는 '(b+ln2)/(1-a)'이다.
상기 수학식 10을 이용하면, 입력이 두 개인 경우, 변수노드에서의 정보 갱신은 다음 수학식 11과 같고, 검사노드에서의 정보 갱신은 다음 수학식 12와 같다.
Figure 112013022107864-pat00011
Figure 112013022107864-pat00012
여기서, 'Coffset'값은 '(σ2 op)(b+ln 2)/4'이다. 'σ 2 op'는 동작지점(operating point)에서의 채널잡음의 분산이며, 'σ2 op'는 정규화된 최소합 알고리즘의 정규화 상수(α), 또는 오프셋-최소합 알고리즘의 오프셋 값(β)처럼 LDPC 부호에 따라 적절히 선택된다. 'σ2 op'는 LDPC에 부호에 따라 다르게 선택될 수 있지만, 초기에 설정된 이후에 변경되지는 않는 값이다.
도 3은 본 발명이 적용되는 다수의 입력을 가지는 변수노드를 나타내고, 도 4는 본 발명이 적용되는 다수의 입력을 가지는 검사노드를 나타낸다. 알고리즘(예, 합곱 알고리즘, 최소합 알고리즘, 정규화된 최소합 알고리즘, 오프셋 최소합 알고리즘 또는 개선된 최소합 알고리즘)을 입력이 n개인 경우로 확장한 것이다. 즉, 'n+1'개의 에지를 가지는 경우이다.
도 3 및 도 4를 참조하면, 입력이 n개인 경우의 합곱 알고리즘의 변수노드(variable node)에서의 정보 갱신은 다음 수학식 13과 같고, 검사노드(check node)에서의 정보 갱신은 다음 수학식 14와 같다.
Figure 112013022107864-pat00013
Figure 112013022107864-pat00014
또한, 입력이 n개인 경우의 최소합 알고리즘의 변수노드에서의 정보 갱신은 다음 수학식 15와 같고, 검사노드에서의 정보 갱신은 다음 수학식 16과 같다.
Figure 112013022107864-pat00015
Figure 112013022107864-pat00016
또한, 입력이 n개인 경우의 정규화된 최소합 알고리즘의 변수노드에서의 정보 갱신은 다음 수학식 17과 같고, 검사노드에서의 정보 갱신은 다음 수학식 18과 같다.
Figure 112013022107864-pat00017
Figure 112013022107864-pat00018
또한, 입력이 n개인 경우의 오프셋-최소합 알고리즘의 변수노드에서의 정보 갱신은 다음 수학식 19와 같고, 검사노드에서의 정보 갱신은 다음 수학식 20과 같다.
Figure 112013022107864-pat00019
Figure 112013022107864-pat00020
또한, 입력이 n개인 경우의 개선된 최소합 알고리즘은 입력이 n개인 검사노드를 계산하기 위해서는 입력이 2개인 경우를 순환적(recursive)으로 계산한다.
입력이 n개인 경우의 개선된 최소합 알고리즘의 변수노드에서의 정보 갱신은 다음 수학식 21과 같고, 검사노드에서의 정보 갱신은 다음 수학식 22와 같다.
Figure 112013022107864-pat00021
Figure 112013022107864-pat00022
여기서, 입력이 2개인 경우의 검사노드 계산방법은 다음 수학식과 같다.
Figure 112013022107864-pat00023
이제, 본 발명에 따라서 입력이 n개인 검사노드(CHK(u1,u2,…,un))를 계산방법을 설명한다. 제안되는 검사노드 계산방법은 복잡도가 낮은 구현방법이다.
도 5는 본 발명에 따라서 입력이 다수인 검사노드를 계산하는 것의 일 예를 나타낸다. 입력이 n개인 경우이다.
도 5를 참조하면, n개의 에지를 가지는 검사노드의 i 번째 에지의 출력(5-i,단, 1≤i≤n)을 계산한다.
검사노드의 i번째 에지의 출력(5-i)은 n개의 에지 중 i번째 에지를 제외한 n-1 개의 에지(5-1,5-2,…,5-(i-1),5-(i+1),5-n)를 입력으로 사용하여 계산한다.
한편, 'n-1'개의 입력을 가지는 함수 'CHK(u1,u2,…,ui -1,ui +1,…,un)'는 2개의 입력을 가지는 함수'CHK(x,y)'를 순환적으로 계산하는 함수일 수 있다. CHK(x,y) 함수의 사용횟수를 최소화함으로써 'CHK(u1,u2,…,ui -1,ui +1,…,un)'의 복잡도를 낮출 수 있다.
도 6은 본 발명에 따라서 다수의 입력을 가지는 검사노드의 출력을 계산하는 방법의 일 예를 나타내는 순서도이다. 입력이 n개라고 가정한다.
도 6을 참조하면, 다수의 노드에 대해서 순방향으로 2개의 입력을 이용하는 검사노드의 계산을 순환적으로 수행한다(S600). 일 예로, 제1 에지와 제2 에지에 대하여 검사노드를 갱신하고, 그 결과와 제3 에지에 대하여 검사노드를 갱신하고, 그 결가와 제4 에지에 대하여 검사노드를 갱신하며, 이러한 과정을 반복한다. 검사노드의 갱신은 상기 수학식 23을 이용할 수 있다.
다수의 노드에 대해서 역방향으로 2개의 입력을 이용하는 검사노드의 계산을 순환적으로 수행한다(S605). 일 예로, 제n 에지와 제n-1 에지에 대하여 검사노드를 갱신하고, 그 결과와 제n-2 에지에 대하여 검사노드를 갱신하고, 그 결가와 제n-3 에지에 대하여 검사노드를 갱신하며, 이러한 과정을 반복한다. 검사노드의 갱신은 상기 수학식 23을 이용할 수 있다.
이어서, 순방향 순환 계산 결과와 역방향 순환 계산 결과(즉, S600의 결과와 S605의 결과)를 입력으로 하여 검사노드의 갱신을 수행한다(S610). 검사노드의 갱신은 상기 수학식 23을 이용할 수 있다.
도 7은 본 발명에 따라서 입력이 다수인 검사노드를 계산하는 것의 다른 예를 나타낸다.
도 7을 참조하면, n개의 에지를 가지는 검사노드의 i 번째 에지의 출력을CHK(u1,u2,…,ui -1,ui +1,…,un)라 한다. 이하에서, CHK(x,y)는 상기 수학식 23을 이용하여 계산될 수 있다.
CHK(u1,u2,…,ui -1,ui +1,…,un)은 입력이 2개인 CHK(x,y)를 순방향(forward)과 역방향(backward)으로 'n-3'번째 단계까지 순차적으로 계산하고, 순방향으로 계산된 값과 역방향으로 계산된 값을 CHK(x,y)의 입력으로 사용하여 계산한다.
구체적으로, 입력이 2개인 CHK(x,y)를 이용하여 순방향 계산 'Fi=CHK(Fi-1,ui+1)' 와 역방향 계산 'Bi=CHK(Un -i,Bi -1)' 를 'n-3' 번째 단계까지 계산한다. 즉, 순방향 'F1,F2,…,Fn -3'과 역방향 'B1,B2,…,Bn -3'를 순환적으로 계산한다. 다.
이어서, 순방향 Fi와 역방향 Bi를 이용하여 검사노드 i번째 에지의 출력(i-th edge output, 단, 1≤i≤n)을 다음 수학식과 같이 순차적으로 계산한다.
Figure 112013022107864-pat00024
본 발명에 따르면, n개의 에지를 가지는 검사노드의 모든 에지에서의 출력을 계산하기 위해 함수인 CHK(x,y) 함수의 총 수는 '2(n-3)+n', 즉, '3n-6'개이다.
도 8은 본 발명에 따라서 입력이 6개인 검사노드의 에지의 출력을 계산하는 방법의 일 예를 나타낸다. 6개의 에지를 가지는 검사노드의 i 번째 에지의 출력을 낮은 복잡도로 계산하는 방법이다.
도 8을 참조하면, 6개의 에지를 가지는 검사노드의 i 번째 에지의 출력을CHK(u1,u2,…,ui -1,ui +1,…,un)라 한다. 이하에서, CHK(x,y)는 상기 수학식 23을 이용하여 계산될 수 있다.
CHK(u1,u2,…,ui -1,ui +1,…,un)은 입력이 2개인 CHK(x,y)를 순방향(forward)과 역방향(backward)으로 '3'번째 단계까지 순차적으로 계산하고, 순방향으로 계산된 값과 역방향으로 계산된 값을 CHK(x,y)의 입력으로 사용하여 계산한다.
구체적으로, 입력이 2개인 CHK(x,y)를 이용하여 순방향 계산 'Fi=CHK(Fi-1,ui+1)' 와 역방향 계산 'Bi=CHK(Un -i,Bi -1)' 를 '3' 번째 단계까지 계산한다. 즉, 순방향 'F1,F2,…,F3'과 역방향 'B1,B2,…,B3'를 순환적으로 계산한다. 다.
이어서, 순방향 Fi와 역방향 Bi를 이용하여 검사노드 i번째 에지의 출력(i-th edge output, 단, 1≤i≤n)을 다음 수학식과 같이 순차적으로 계산한다.
Figure 112013022107864-pat00025
여기서 사용된 CHK(x,y) 함수의 총 수는 12이다.
도 9는 복호 알고리즘과 개선된 알고리즘의 BER 성능을 비교한 것이다. 부호율이 0.4인 LDPC 부호의 복호 알고리즘이다.
도 9를 참조하면,'Proposed Method 1'은 선형 근사화(a=0,5, b=0)를 통한 LDPC 복호이며, 'Proposed Method 2'는 스텝 근사화(a=0, b=0)를 통한 LDPC 복호이다.
'Proposed Method 1'을 위한 동작지점에서의 σ(=1.0)와 'Proposed Method 2'를 위한 동작지점에서의 σ(=1.14)는 부호율이 0.4인 LDPC 부호의 성능을 가장 우수하게 하도록 선택된 값이다.
선형 및 스텝 근사화를 통한 두 가지 LDPC 복호방법 모두 합곱 알고리즘에 비해 약 0.05 dB 열악한 반면, 오프셋-최소합 알고리즘보다 0.15 dB 우수하다.
도 10은 본 발명에 따른 LDPC 부호의 복호화 장치의 일 예를 도시한 블록도이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 LDPC 부호의 복호화 장치(1000)는 연산부(1010), 수신부(1040), 송신부(1050) 또는 저장부(1060)를 포함한다.
연산부(1010)는 하나 이상의 채널로부터 수신되는 LDPC 부호가 포함된 신호 또는 채널 정보를 합곱 알고리즘, 최소합 알고리즘, 오프셋-최소합 알고리즘, 정규화된 최소합 또는 개선된 최소합 알고리즘을 이용하여 연산한다. 연산부(1010)는 변수 노드와 검사 노드를 갱신하여, 각 에지의 출력을 계산한다.
연산부(1010)는 상기 LDPC 부호의 복호에 사용되는 노드 갱신식(특히, 검사 노드)을 기설정된 연산 공식에 따라 연산하는 제1 연산부(1015)를 더 포함할 수 있다. 이때, 상기 수학식 1 내지 상기 수학식 24에 따라서 변수 노드 또는 검사 노드가 갱신될 수 있다.
또한, 개선된 최소합 알고리즘의 적용을 위하여, 연산부(1010)는 LDPC 부호의 복호에 사용되는 합곱 알고리즘의 검사 노드 갱신식에 포함된 자연로그 하이퍼볼릭 탄젠트 함수를 선형화 또는 스텝 근사화 하여, 상기 선형화된 함수를 최소합 알고리즘의 검사 노드 갱신식에 대응하도록 변환하는 제2 연산부(1020)를 더 포함할 수 있다.
수신부(1040)는 하나 이상의 채널로부터 수신되는 LDPC 부호가 포함된 신호 또는 채널 정보를 수신하고, 연산부(1010)를 통하여 LDPC 부호의 복호에 사용되는 알고리즘을 적용할 수 있다.
송신부(1050)는 연산부(1010)에서 연산한 결과를 전송할 수 있다.
저장부(1060)는 수신부(1040)를 통하여 수신되는 LDPC 부호가 포함된 신호 또는 채널 정보 등의 데이터를 저장할 수 있다.
또한 저장부(1060)는 연산부(1010)를 이용하여 연산된 데이터를 저장하여 관리할 수 있다.
저장부(1060)는 읽기 동작 및 쓰기 동작이 동시에 수행되는 듀얼 포트 메모리인일 수 있다.
한편, 본 발명에 따른 LDPC 부호의 복호화 방법은 입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하고, 상기 제1 결과 및 상기 제2 결과를 입력으로 하여 검사노드를 계산하는 단계를 포함할 수 있다.
또한, 복호 방법은 상기 수학식 23을 이용하여 입력이 2개인 검사노드의 계산을 수행할 수 있다.
이때, 상기 제1 결과를 계산하는 단계는 제1 에지 및 제2 에지를 입력으로 하여 상기 수학식 1을 계산하고, 제3 에지와 상기 계산 결과를 입력으로 하여 상기 수학식 1을 다시 계산하는 것일 수 있다.
또한, 상기 제2 결과를 계산하는 단계는 마지막 에지 및 뒤에서 두번째 에지를 입력으로 하여 상기 수학식 1을 계산하고, 뒤에서 세번째 에지와 상기 계산 결과를 입력으로 하여 상기 수학식 1을 다시 계산하는 것일 수 있다.
또한, 상기 검사노드의 임의의 에지의 출력은 전체 에지들 중 출력에 해당하는 에지를 제외한 나머지 에지를 입력으로 사용하여 계산될 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서, 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.

Claims (19)

  1. 삭제
  2. LDPC 부호의 복호 알고리즘에 적용되는 검사노드의 계산방법에 있어서,
    입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하는 단계;
    입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하는 단계; 및
    상기 제1 결과 및 상기 제2 결과 중 어느 하나 이상을 입력으로 하여 검사노드를 계산하는 단계를 포함하고,
    상기 입력이 2개인 검사노드의 계산은,
    2개의 입력의 합에 대한 제1 절대값을 기설정된 기준값과 비교한 제1 비교결과, 및 상기 2개의 입력의 차에 대한 제2 절대값을 상기 기준값과 비교한 제2 비교결과의 조합에 따라 둘 이상의 서로 다른 프로세스들로 수행되는 것을 특징으로 하는 검사노드 계산방법.
  3. 제 2 항에 있어서,
    상기 둘 이상의 서로 다른 프로세스들은
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제1 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 2개의 입력의 절대값을 이용하여 산출된 최소 절대값 및 기설정된 제1 상수를 이용하여 수행되는 제1 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제2 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되는 제2 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제3 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되고, 상기 제2 프로세스와 상이한 제3 프로세스; 및
    상기 제1 비교결과 및 상기 제2 비교결과의 조합의 제4 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호 및 상기 최소 절대값을 이용하여 수행되는 제4 프로세스를 포함하는 것을 특징으로 하는 검사노드 계산 방법.
  4. 제 2 항에 있어서,
    상기 검사노드는 n(n은 3보다 큰 자연수)개의 에지들에 상응하고,
    상기 제1 결과를 계산하는 단계는 상기 순방향으로 n-3개의 상기 제1 결과를 계산하고,
    상기 제2 결과를 계산하는 단계는 상기 역방향으로 n-3개의 상기 제2 결과를 계산하는 것을 특징으로 하는 검사노드 계산방법.
  5. 제 4 항에 있어서,
    상기 검사 노드를 계산하는 단계는,
    상기 검사노드의 첫 번째 에지의 출력 및 상기 검사노드의 두 번째 에지의 출력을 모두 n-3에 상응하는 상기 제2 결과를 이용하여 계산하고,
    상기 검사노드의 마지막 에지의 출력 및 뒤에서 두번째 에지의 출력을 모두 n-3에 상응하는 상기 제1 결과를 이용하여 계산하는 것을 특징으로 하는 검사노드 계산방법.
  6. 삭제
  7. 삭제
  8. LDPC 부호의 복호 방법에 있어서,
    입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하고, 상기 제1 결과 및 상기 제2 결과 중 어느 하나 이상을 입력으로 하여 검사노드를 계산하는 단계를 포함하고,
    상기 입력이 2개인 검사노드의 계산은,
    2개의 입력의 합에 대한 제1 절대값을 기설정된 기준값과 비교한 제1 비교결과, 및 상기 2개의 입력의 차에 대한 제2 절대값을 상기 기준값과 비교한 제2 비교결과의 조합에 따라 둘 이상의 서로 다른 프로세스들로 수행되는 것을 특징으로 하는 복호 방법.
  9. 제 8 항에 있어서,
    상기 둘 이상의 서로 다른 프로세스들은
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제1 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 2개의 입력의 절대값을 이용하여 산출된 최소 절대값 및 기설정된 제1 상수를 이용하여 수행되는 제1 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제2 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되는 제2 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제3 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되고, 상기 제2 프로세스와 상이한 제3 프로세스; 및
    상기 제1 비교결과 및 상기 제2 비교결과의 조합의 제4 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호 및 상기 최소 절대값을 이용하여 수행되는 제4 프로세스를 포함하는 것을 특징으로 하는 복호 방법.
  10. 제 8 항에 있어서,
    상기 검사노드는 n(n은 3보다 큰 자연수)개의 에지들에 상응하고,
    상기 순방향으로 n-3개의 상기 제1 결과가 계산되고,
    상기 역방향으로 n-3개의 상기 제2 결과가 계산되는 것을 특징으로 하는 복호 방법.
  11. 제 10 항에 있어서,
    상기 검사 노드를 계산하는 단계는,
    상기 검사노드의 첫 번째 에지의 출력 및 상기 검사노드의 두 번째 에지의 출력을 모두 n-3에 상응하는 상기 제2 결과를 이용하여 계산하고,
    상기 검사노드의 마지막 에지의 출력 및 뒤에서 두번째 에지의 출력을 모두 n-3에 상응하는 상기 제1 결과를 이용하여 계산하는 것을 특징으로 하는 복호 방법.
  12. 삭제
  13. 삭제
  14. LDPC 부호의 복호 장치에 있어서,
    검사노드값을 저장하거나 갱신하는 메모리;
    상기 검사노드값을 이용하여 복호 연산을 수행하는 연산부를 포함하며,
    상기 연산부는,
    입력이 2개인 검사노드의 계산을 순방향(forward)으로 순환적(recursive)으로 수행하여 제1 결과를 계산하고, 입력이 2개인 검사노드의 계산을 역방향(backward)으로 순환적으로 수행하여 제2 결과를 계산하고, 상기 제1 결과 및 상기 제2 결과 중 어느 하나 이상을 입력으로 하여 검사노드를 계산하고,
    상기 연산부는
    2개의 입력의 합에 대한 제1 절대값을 기설정된 기준값과 비교한 제1 비교결과, 및 상기 2개의 입력의 차에 대한 제2 절대값을 상기 기준값과 비교한 제2 비교결과의 조합에 따라 둘 이상의 서로 다른 프로세스들로 상기 입력이 2개인 검사노드의 계산을 수행하는 것을 특징으로 하는 복호 장치.
  15. 제 14 항에 있어서,
    상기 둘 이상의 서로 다른 프로세스들은
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제1 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 2개의 입력의 절대값을 이용하여 산출된 최소 절대값 및 기설정된 제1 상수를 이용하여 수행되는 제1 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제2 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되는 제2 프로세스;
    상기 제1 비교결과 및 상기 제2 비교결과의 조합이 제3 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호, 상기 최소 절대값 및 기설정된 제2 상수를 이용하여 수행되고 상기 제2 프로세스와 상이한 제3 프로세스; 및
    상기 제1 비교결과 및 상기 제2 비교결과의 조합의 제4 조건에 상응하는 경우에 적용되고, 상기 2개의 입력 각각의 부호 및 상기 최소 절대값을 이용하여 수행되는 제4 프로세스를 포함하는 것을 특징으로 하는 복호 장치.
  16. 제 14 항에 있어서,
    상기 검사노드는 n(n은 3보다 큰 자연수)개의 에지들에 상응하고,
    상기 순방향으로 n-3개의 상기 제1 결과가 계산되고,
    상기 역방향으로 n-3개의 상기 제2 결과가 계산되는 것을 특징으로 하는 복호 장치.
  17. 제 16 항에 있어서,
    상기 연산부는,
    상기 검사노드의 첫 번째 에지의 출력 및 상기 검사노드의 두 번째 에지의 출력을 모두 n-3에 상응하는 상기 제2 결과를 이용하여 계산하고,
    상기 검사노드의 마지막 에지의 출력 및 뒤에서 두번째 에지의 출력을 모두 n-3에 상응하는 상기 제1 결과를 이용하여 계산하는 것을 특징으로 하는 복호 장치.
  18. 삭제
  19. 제 14항에 있어서,
    상기 메모리는,
    읽기 동작 및 쓰기 동작이 동시에 수행되는 듀얼 포트 메모리인 것을 특징으로 하는 복호 장치.
KR1020130027184A 2013-03-14 2013-03-14 Ldpc 부호의 복호 방법 및 장치 KR101698875B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130027184A KR101698875B1 (ko) 2013-03-14 2013-03-14 Ldpc 부호의 복호 방법 및 장치
US14/031,882 US9336077B2 (en) 2013-03-14 2013-09-19 Method and apparatus for decoding LDPC code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130027184A KR101698875B1 (ko) 2013-03-14 2013-03-14 Ldpc 부호의 복호 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140112744A KR20140112744A (ko) 2014-09-24
KR101698875B1 true KR101698875B1 (ko) 2017-01-24

Family

ID=51534241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130027184A KR101698875B1 (ko) 2013-03-14 2013-03-14 Ldpc 부호의 복호 방법 및 장치

Country Status (2)

Country Link
US (1) US9336077B2 (ko)
KR (1) KR101698875B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569488B1 (ko) * 2016-07-21 2023-08-22 고려대학교 산학협력단 Ldpc 복호화기의 슬라이스 절감 장치 및 그 방법
KR102231278B1 (ko) 2017-06-07 2021-03-23 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
CN114661444A (zh) * 2022-03-30 2022-06-24 阿里巴巴(中国)有限公司 调度方法、第一计算节点、第二计算节点以及调度系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020868A1 (en) * 2004-07-21 2006-01-26 Tom Richardson LDPC decoding methods and apparatus
US20060274772A1 (en) * 2005-06-01 2006-12-07 Yong-Woon Kim Apparatus and methods for message passing decoding using simultaneous memory accesses
WO2012032371A1 (en) * 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127659B2 (en) 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
RU2323520C2 (ru) 2006-03-21 2008-04-27 Самсунг Электроникс Ко., Лтд. Способ передачи голосовых данных в системе цифровой радиосвязи и способ перемежения последовательности кодовых символов (варианты)
US7941737B2 (en) 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
KR101206137B1 (ko) 2011-02-23 2012-11-28 금오공과대학교 산학협력단 모바일 와이맥스용 ldpc 복호기

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020868A1 (en) * 2004-07-21 2006-01-26 Tom Richardson LDPC decoding methods and apparatus
US20060274772A1 (en) * 2005-06-01 2006-12-07 Yong-Woon Kim Apparatus and methods for message passing decoding using simultaneous memory accesses
WO2012032371A1 (en) * 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.

Also Published As

Publication number Publication date
US9336077B2 (en) 2016-05-10
KR20140112744A (ko) 2014-09-24
US20140281795A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
JP5705106B2 (ja) ユークリッド空間リード−マラー符号の軟判定復号を実行する方法
US10498363B2 (en) Low density parity check decoder using binary logarithm and decoding method thereof
KR100846869B1 (ko) 저 복잡도 ldpc복호 장치 및 그 방법
US8601337B2 (en) Decoding method and decoding device
KR101749096B1 (ko) Ldpc 부호의 복호화 방법 및 장치
US10790857B1 (en) Systems and methods for using decoders of different complexity in a hybrid decoder architecture
KR20030095144A (ko) 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US20110145675A1 (en) Calculation technique for sum-product decoding method (belief propagation method) based on scaling of input log-likelihood ratio by noise variance
KR101817168B1 (ko) 극 부호의 근사화된 신뢰전파 복호화 방법 및 장치
JP4227481B2 (ja) 復号装置および復号方法
JP2001352258A (ja) 復号装置及び復号方法
KR20080011631A (ko) 디코딩 방법 및 디코더
KR101698875B1 (ko) Ldpc 부호의 복호 방법 및 장치
Hatami et al. A threshold-based min-sum algorithm to lower the error floors of quantized LDPC decoders
US20150113027A1 (en) Method for determining a logarithmic functional unit
KR101600759B1 (ko) 연속 제거 극 부호 복호기를 위한 간단한 병합 처리 연산 방법 및 장치
KR102241416B1 (ko) 디지털 비디오 방송 시스템에서 LDPC(Low Density Parity Check) 복호기 및 LDPC 복호기의 복호화 방법
EP2214322A1 (en) Iterative MAP decoding of block codes using sub-trellises
KR101976315B1 (ko) 이산대칭채널에서의 극 부호 설계 방법 및 그 장치
JP2010535459A (ja) 線形計画法復号のための座標上昇法
US20190179572A1 (en) Management of non-universal and universal encoders
US20140233680A1 (en) Map decoder having low latency and operation method of the same
KR101583242B1 (ko) 바이패스 신호를 이용한 저밀도 패리티 검사 코드의 복호화 방법 및 그 방법에 따른 장치
JP5991580B2 (ja) ターボ復号器、それに用いられる対数尤度比演算装置、ターボ復号方法、対数尤度比演算方法、ターボ復号プログラム及び対数尤度比演算プログラム

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
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4