KR20090012189A - Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 - Google Patents

Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 Download PDF

Info

Publication number
KR20090012189A
KR20090012189A KR1020080073655A KR20080073655A KR20090012189A KR 20090012189 A KR20090012189 A KR 20090012189A KR 1020080073655 A KR1020080073655 A KR 1020080073655A KR 20080073655 A KR20080073655 A KR 20080073655A KR 20090012189 A KR20090012189 A KR 20090012189A
Authority
KR
South Korea
Prior art keywords
scaling factor
variable node
sum
scaling
unit
Prior art date
Application number
KR1020080073655A
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 고려대학교 산학협력단
Publication of KR20090012189A publication Critical patent/KR20090012189A/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
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Abstract

본 발명은 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법을 제공하기 위한 것으로, 반복횟수가 0일 때 수신된 심볼을 받고, 반복이 진행되면 Lc를 받아서 가변노드의 LLR을 갱신하는 가변노드 갱신부와; 상기 가변노드 갱신부의 결과를 전달받고, 정해진 반복횟수 이상인지 여부를 판단하는 반복 비교부와; 상기 반복 비교부의 판단결과를 전달받고, 스케일링 팩터를 곱하는 스케일링 팩터 곱셈부와; 상기 스케일링 팩터 곱셈부에서 스케일링 팩터가 곱해진 Lv에 대해서 갱신을 수행하는 검사노드 갱신부와; 상기 검사노드 갱신부의 갱신 결과를 전달받고, 스케일링 팩터를 구하는 벡터 최적화부와; 상기 벡터 최적화부에서 구한 스케일링 팩터에 대해 밀도 전개를 수행하여 한계치를 구하는 밀도 전개부와; 상기 밀도 전개부의 결과를 전달받고, 현재의 반복에서 한계치가 이전에 구한 한계치와 비교하는 비교부와; 상기 반복 비교부의 결과를 전달받아 출력을 결정하는 결정부;를 포함하여 구성함으로서, LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용하여 SUM-PRODUCT 알고리즘에 비해 성능의 열화는 적으면서도 복잡도를 줄일 수 있으므로 단순한 구조로 하드웨어 구현이 가능하게 되는 것이다.
LDPC, 스케일링, MIN-SUM 알고리즘, 복호 방법, 가변노드, 검사노드

Description

LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법{Apparatus and method for decoding using performance enhancement algorithm for LDPC codes with scaling based MIN-SUM iterative decoding}
본 발명은 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법에 관한 것으로, 특히 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용하여 SUM-PRODUCT 알고리즘에 비해 성능의 열화는 적으면서도 복잡도를 줄일 수 있으므로 단순한 구조로 하드웨어 구현이 가능하기에 적당하도록 한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법에 관한 것이다.
본 발명은 정보의 전달과정에서 생기는 데이터의 오류를 효과적으로 복원하기 위해 사용되는 기술로 정보를 주고받는 통신환경, 특히 무선통신에서 이루어지는 mobile, wireless LAN 등과 같이 데이터의 오류가 자주 쉽게 발생할 수 있는 분야에서 사용될 수 있다.
일반적으로 LDPC 코드(Low Density Parity Check Codes)는 1962년 Gallager에 의해 처음 제안되었고 1996년 Mackay와 Neal이 이를 재발견 한 후 채널 코딩 기술들 중에서 가장 앞선 기술로 자리매김하고 있다. 다른 채널 코딩 기술에 비하여 LDPC 코드가 갖는 큰 장점으로는 고속 데이터 전송에 필요한 높은 코드 레이트에서의 탁월한 성능을 들 수 있다. 진보된 채널 코딩 기술의 하나인 터보 코드 기술이 높은 코드 레이트를 만들기 위해 필요한 puncturing으로 인하여 에러 플로어 등의 성능 저하를 보인다는 점에서 볼 때 향후 이동 통신에서 LDPC 코드가 선호되고 있는 이유 중 하나라고 볼 수 있다. 또한 LDPC 코드의 디코딩에 사용되는 BP(Belief Propagation) 알고리즘은 하드웨어 구현에 있어서도 전체적으로 패러럴 프로세싱이 가능하여 고속 데이터 전송에 돋보이는 장점으로 여겨지고 있다. 이러한 많은 장점들을 가지고 있는 LDPC 코드 기술의 단점은 인코딩에 있어서 많은 계산 량을 가진다는 것이다. 이러한 단점을 보완하기 위해 인코딩 계산 량을 줄이는 방법 중의 하나로 parity check 행렬 H의 parity 비트에 상응하는 부분을 듀얼 다이어고날의 형태로 나타내면 parity 생성 블록을 누적기(Accumulator)로 나타낼 수 있으며, H 행렬 중 불규칙하게 결정되는 systematic data 부분은 반복부호(repetition code)와 인터리버 그리고 puncturing의 결합으로 나타낼 수 있다. 다시 말해서 LDPC 부호 중에서 H 행렬 구조에 제한을 두어서 인코딩 계산 량을 줄이는 LDPC 부호군을 structured-LDPC라고 한다. 현재까지 repetition 코드와 accumulator 블록을 하나의 인터리버를 통하여 연결하는 구조로 구성되어 간단한 인코딩을 가능하게 하는 RA(Repeat Accumulate) 코드, LDPC 코드의 parity check 행렬 H를 정보 비트에 해당하는 Hd, 패리티 비트에 해당하는 Hp로 나누어 Hd 부분을 일정한 규칙으로 구성한 Semi-random LDPC 코드, Li Ping에 의해 제안된 Zigzag 코드를 여러 개 사용한 CZZ(Concatenated Zigzag) 코드 등이 structured-LDPC 코드로 소개되고 있다.
그리고 LDPC 부호의 디코딩시 사용되는 MIN-SUM 알고리즘은 SUM-PRODUCT 알고리즘에 복잡도를 줄일 수 있어 하드웨어로 구현하는데 이점이 있으나, 성능의 열화가 발생한다. 성능 열화를 개선하기 위해 매 반복 복호시에 고정된 상수값인 scaling factor를 사용한 MIN-SUM 알고리즘 역시 부호의 따라 SUM-PRODUCT 알고리즘에 비해 성능의 열화가 다소 크게 발생하게 된다.
도 1은 가우시안 추정법(Gaussian approximation)을 사용한 DE(Density Evolution) 기법을 이용해서 SUM-PRODUCT와 MIN-SUM 알고리즘의 한계값(threshold)을 LDPC 코드의 다양한 부호율에 따라 구한 것이다.
또한 도 4에서 참조번호 21은 가변노드(variable Node, 또는 변수노드라고도 함)이고, 22는 검사노드(Check Node, 또는 체크노드라고도 함)이며, 23은 에지(Edge)이다.
LDPC 코드들은 도 4에 도시된 그래프와 같이 종종 태너(Tanner) 그래프들로 지칭되는 이분 그래프들에 의해서 잘 도시되었다. 한 세트의 노드들의 태너 그래프들에서 가변노드(21)들은 코드워드의 비트에 상응한다. 다른 세트의 노드들에서 검사노드(22)들은 구속 노드라고도 불리며, 코드를 정의하는 패리티-검사 세트에 상응한다. 그래프에서 에지(23)들은 가변노드(21)들을 검사노드(22)들에 연결한다. 가변노드(21) 및 검사노드(22)는 만약 그들이 그래프에서 에지(23)에 의해 연결된다면 이웃들로 지칭된다. 통상적으로는 노드 쌍이 기껏해야 하나의 에지에 의해서 연결된다는 것이 가정된다. LDPC 코드들은 패리티 검사 행렬을 사용하여 등가적으로 표현될 수 있다.
각각의 가변노드(21)에는 코드워드의 1 비트가 연관된다. 일부 경우에는, 이들 비트들 중 일부가 펑처링될 수도 있다. 펑처링된 비트들은 특정 코드 구조들에서는 유리할 수 있으며, 전송되는 코드워드로부터 배제된다.
가변노드(21)의 시퀀스와 일-대-일로 연관된 비트 시퀀스는, 각각이 검사노드(22)에 대해서 구속에 이웃하는 비트들의(그들의 가변 노드들과의 연관성을 통해) 합이 제로 모듈로 2인 경우, 즉, 그들이 짝수개의 1들을 포함하는 경우에 한 해서, 코드의 코드워드이다.
LDPC 코드워드들을 디코딩하기 위해서 사용되는 디코더 및 디코딩 알고리즘들은 에지(23)를 따라 그래프에서 메시지들을 교환함으로써 그리고 인입 메시지들에 기초하여 노드들에서 계산들을 수행하여 이러한 메시지들을 업데이팅함으로써 동작한다. 이러한 알고리즘들은 메시지 통과 알고리즘들로서 일반적으로 지칭될 것이다.
노드, 즉 가변노드(21) 또는 검사노드(22)에 부여되는 에지(22)의 수는 노드의 등급(degree)으로 지칭된다. 규칙적인 그래프 또는 코드는 모든 가변노드(21)가 동일한 등급(j)을 갖고 또한 모든 구속 노드들이 동일한 등급(k)을 갖는 것이다. 이 경우에는 코드가 (j,k) 규칙 코드라고 언급된다. 이들은 Gallager(1961)에 의해 서 본래 고려되는 코드들이다. "규칙적인" 코드와는 대조적으로, 불규칙적인 코드는 상이한 등급들의 가변노드(21) 및/또는 검사노드(22)를 갖는다. 예컨대, 일부 가변노드(21)는 등급이 4일 수 있고, 다른 가변노드(21)는 등급이 3일 수 있으며, 또 다른 가변노드(21)는 등급이 2일 수 있다.
도 4에서 (a)의 경우 위에서부터 가변노드(21)의 에지의 수는 위에서부터 각각 2, 3, 1, 1, 1, 2가 된다. 또한 검사노드(22)의 에지의 수는 위에서부터 각각 4, 3, 3이 된다.
또한 도 1에서 dv는 도 4에서의 가변노드(21)를 나타내고, 연결된 에지(23)의 개수는 dv의 숫자가 된다. 또한 도 1에서 dc는 도 4에서의 검사노드(22)를 나타내고, 연결된 에지(23)의 개수는 dc의 숫자가 된다.
또한 보내고자 하는 데이터에 LDPC 부호를 사용하여 패리티를 붙인다. 채널을 통해서는 패리티가 붙은 데이터가 보내지게 되고, 수신단에서 LDPC 복호를 하여 원래 보낸 데이터를 찾게 된다. 그래서 도 1에서 rate는 채널을 통해 보내는 데이터 속에 원래의 데이터가 차지하는 비율을 나타낸다. 예를 들어, 10개의 데이터와 1개의 패리티를 보내면 rate는 10/11이 된다. LDPC 부호의 특성 중에서 rate는 rate = 1 - dv/dc으로 정의된다.
또한 도 1에서
Figure 112008054320815-PAT00001
sum-product(합-곱)와
Figure 112008054320815-PAT00002
min-sum(최소-합)은 sum-product 알고리즘과 min-sum 알고리즘을 사용했을 때의 LDPC 부호의 한계치(threshold)를 나타낸다. threshold는 LDPC 부호가 오류를 정정할 수 있는 최소의 파워를 나타낸 다. 즉, threshold 이하에서는 LDPC는 오류 정정이 불가능하고, threshold 이상에서 오류정정이 가능하다.
또한
Figure 112008054320815-PAT00003
Figure 112008054320815-PAT00004
값을 dB로 변환한 값으로서,
Figure 112008054320815-PAT00005
=
Figure 112008054320815-PAT00006
이 된다.
그래서 도 1을 참조하면, 부호율이 0.75일 경우는 0.18dB(= 2.44dB - 2.26dB) 밖에 안 나지만 0.33일 경우는 1.31dB(= 3.04dB - 1.73dB)나 차이가 나는 것을 알 수 있다.
이는 MIN- SUM 알고리즘이 복잡도를 줄이는 장점이 있으나 경우에 따라 성능의 열화가 클 수 있다는 문제점이 있었다.
이를 개선하기 위해 LDPC 부호의 복호 알고리즘을 ASIC으로 설계하는 경우에 MIN-SUM 알고리즘을 바탕으로 이루어지며 이 경우에 전달되는 연판성 정보(Soft information)에 특정한 상수값을 곱하면 성능이 좋아진다는 본 발명자의 논문이 발표된 바 있다. 그러나, 보다 개선된 성능을 위한 MIN-SUM 알고리즘이 필요하다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 매 반복 횟수마다 서로 다른 상수값을 곱함으로써 성능을 더욱 향상시킬 수 있으며, 각 반복 횟수(Iteration) 마다 가장 적합한 상수 값(scaling factor)을 적용한 MIN-SUM 알고리즘을 통해 부호에 따라 성능의 저하가 다소 크게 생기는 것을 SUM-PRODUCT 알고리즘에 근접한 부분까지 성능을 향상시킬 수 있는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법을 제공하는데 있다.
또한 본 발명의 또 다른 목적은 매 반복 횟수에 가장 적합한 상수값(Scaling factor)을 찾을 수 있는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법을 제공하는데 있다.
도 2는 본 발명의 일 실시예에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치의 블록구성도이다.
이에 도시된 바와 같이, 반복횟수(iteration)가 0일 때 수신된 심볼을 받고, 반복(iteration)이 진행되면 Lc를 받아서 가변노드(variable node)(21)의 LLR(Log Likelihood Ratio)을 갱신하는 가변노드 갱신부(variable node update block)(11)와; 상기 가변노드 갱신부(11)의 결과를 전달받고, 정해진 반복횟수(iteration) 이상인지 여부를 판단하는 반복 비교부(Iteration compare block)(12)와; 상기 반복 비교부(12)의 판단결과를 전달받고, 스케일링 팩터(scaling factor)를 곱하는 스케일링 팩터 곱셈부(scaling factor multiplier)(13)와; 상기 스케일링 팩터 곱셈부(13)에서 스케일링 팩터(scaling factor)가 곱해진 Lv에 대해서 갱신(update)을 수행하는 검사노드 갱신부(check node update block)(14)와; 상기 검사노드 갱신부(14)의 갱신 결과를 전달받고, 스케일링 팩터를 구하는 벡터 최적화부(vector optimization block)(15)와; 상기 벡터 최적화부(15)에서 구한 스케일링 팩터에 대해 밀도 전개(Density Evolution, DE)를 수행하여 한계치(Threshold)를 구하는 밀도 전개부(Density evolution block)(16)와; 상기 밀도 전개부(16)의 결과를 전달받고, 현재의 반복(iteration)에서 한계치(threshold)가 이전에 구한 한계치(threshold)와 비교하는 비교부(compare block)(17)와; 상기 반복 비교부(12)의 결과를 전달받아 출력을 결정하는 결정부(decision block)(18);를 포함하여 구성된 것을 특징으로 한다.
상기 반복 비교부(12)는, 상기 가변노드 갱신부(11)의 결과를 전달받고, 정해진 반복횟수(iteration) 이상이면 디코딩(decoding)을 끝내고 출력(output)을 결정하기 위한 결정부(decision block)(18)로 값을 보내주며, 반복(iteration)이 끝나지 않았으면 검사노드의 갱신을 진행하도록 상기 스케일링 팩터 곱셈부(13)로 Lv를 전달하는 것을 특징으로 한다.
상기 비교부(17)는, 현재의 반복(iteration)에서 한계치(threshold)가 이전에 구한 한계치(threshold) 보다 작으면 상기 가변노드 갱신부(11)가 수행되도록 하고, 그렇지 않으면 한계치(threshold)가 가장 작은 스케일링 팩터(scaling factor)를 가질 수 있도록 상기 벡터 최적화부(15)로 리턴하는 것을 특징으로 한다.
도 3은 본 발명의 일 실시예에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 방법을 보인 흐름도이다.
이에 도시된 바와 같이, 반복횟수(iteration)가 0일 때 수신된 심볼을 받고, 반복(iteration)이 진행되면 Lc를 받아서 가변노드(variable node)(21)의 LLR(Log Likelihood Ratio)을 갱신하는 가변노드 갱신단계(ST1)와; 상기 가변노드 갱신단계의 결과를 전달받고, 정해진 반복횟수(iteration) 이상인지 여부를 판단하는 반복 비교단계(ST2)와; 상기 반복 비교단계에서 계속할 것으로 판단하면, 스케일링 팩터(scaling factor)를 곱하는 스케일링 팩터 곱셈단계(ST3)와; 상기 스케일링 팩터 곱셈단계에서 스케일링 팩터(scaling factor)가 곱해진 Lv에 대해서 갱신(update)을 수행하는 검사노드 갱신단계(ST4)와; 상기 검사노드 갱신단계의 갱신 결과를 전달받고, 스케일링 팩터를 구하는 벡터 최적화단계(ST5)와; 상기 벡터 최적화단계에서 구한 스케일링 팩터에 대해 밀도 전개(Density Evolution, DE)를 수행하여 한계치(Threshold)를 구하는 밀도 전개단계(ST6)와; 상기 밀도 전개단계의 결과를 전달받고, 현재의 반복(iteration)에서 한계치(threshold)가 이전에 구한 한계치(threshold)와 비교하는 비교단계(ST7)와; 상기 반복 비교단계에서 반복을 종료하는 것으로 판단하면, 출력을 결정하는 결정단계(ST8, ST9);를 포함하여 수행하는 것을 특징으로 한다.
상기 반복 비교단계(ST2)는, 상기 가변노드 갱신단계의 결과를 전달받고, 정해진 반복횟수(iteration) 이상이면 디코딩(decoding)을 끝내고 출력(output)을 결 정하기 위한 결정단계가 수행되도록 하며, 반복(iteration)이 끝나지 않았으면 상기 스케일링 팩터 곱셈단계가 수행되도록 하는 것을 특징으로 한다.
상기 비교단계(ST7)는, 현재의 반복(iteration)에서 한계치(threshold)가 이전에 구한 한계치(threshold) 보다 작으면 상기 가변노드 갱신단계가 수행되도록 하고, 그렇지 않으면 한계치(threshold)가 가장 작은 스케일링 팩터(scaling factor)를 가질 수 있도록 상기 벡터 최적화단계로 리턴하는 것을 특징으로 한다.
본 발명에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법은 MIN-SUM 알고리즘을 사용했을 때 성능 열화를 줄이기 위해 매 반복 복호시에 곱하는 scaling factor를 달리하여 SUM-PRODUCT 알고리즘의 성능에 근접한 결과를 도출할 수 있는 효과가 있게 된다.
이와 같이 구성된 본 발명에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치 및 그 방법의 바람직한 실시예를 첨부한 도면에 의거하여 상세히 설명하면 다음과 같다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략 할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있으며, 이에 따라 각 용어의 의미는 본 명세서 전반에 걸친 내용을 토대로 해석되어야 할 것이다.
먼저 본 발명은 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용하여 SUM-PRODUCT 알고리즘에 비해 성능의 열화는 적으면서도 복잡도를 줄일 수 있으므로 단순한 구조로 하드웨어 구현이 가능하도록 하고자 한 것이다.
도 4는 본 발명의 바람직한 실시예에 따른 매 반복 횟수(Iteration) 마다 사용되는 가장 적합한 상수(scaling factor)를 도시한 LDPC 코드의 이분(bipartite) 그래프이다.
도 4를 참조하면, 참조번호 21은 가변노드(variable node, 또는 변수노드라고도 함)를 나타내고 참조번호 22는 검사노드(check node, 체크노드라고도 함)를 나타낸다. LDPC 코드(Low Density Party Check code)의 디코딩 방법은 기본적으로 반복적인 과정을 거친다.
같은 그림이 반복해서 나타나는 것은 각 디코딩 매 반복 횟수(Iteration)를 나타낸다. 디코딩시 각 반복횟수(Iteration) 마다 가변노드(variable node)와 검사노드(check node) 사이에 LLR(Log Likelihood Ratio) 정보를 주고받게 되는 데, 이 LLR 정보에 임의의 크기의 스케일링 팩터(scaling factor)를 곱하여 값을 조절하게 된다. 이를 통해 성능의 향상을 가져올 수 있는 근거는 다음과 같다.
LDPC 코드 디코딩시 LLR(Log Likelihood Ratio) 값은 크기의 대수만을 비교하는 것이기 때문에 로그(log)를 취할 경우 SUM-PRODUCT 알고리즘과 MIN-SUM 알고리즘의 성능 차이는 실질적으로 min*와 min의 차이에 의해 발생한다. 여기서 min*-sum은 sum-product에 log를 취한 형태이다. log를 크기가 변하게 되는데, LDPC 복호에서 관심을 두는 것은 LLR의 크기가 아니라 두 LLR의 크기 비교이기 때문에 log를 취해줘도 성능에는 아무런 영향을 미치지 못한다. 결국 sum-product와 min-sum 알고리즘을 비교하는 것은 min*-sum과 min-sum 을 비교하는 것과 같다고 할 수 있다.
다음의 수학식 1은 본 발명의 바람직한 실시예에 따른 min*와 min의 관계를 도시한 것이다.
Figure 112008054320815-PAT00007
여기서 x, y는 임의의 변수이고, min(x,y)는 x와 y 중에서 최소값을 나타내는 함수를 나타낸다. 또한 min*는 -ln(e-x+e-y)로 정의되는 함수이며, 이는 도 5에서 min*와 min과의 관계를 나타냈다. 또한 sum-product(합-곱)에 -log를 붙이면(LLR은 크기를 비교하는 값이기 때문에 log를 붙이나 -log를 붙이나 성능에는 영향을 미치지 않는다.) min*-sum이 된다는 것이고, max-product(최대-곱)에 -log를 붙이면 min-sum이 된다. max-product는 sum-product 알고리즘에서 sum 연산 대신에 maximum 값을 취하는 연산을 했을 때의 알고리즘을 나타낸다.
수학식 1에서
Figure 112008054320815-PAT00008
는 결국 그 차이를 나타낸다. 실제 수학식 1을 계산하여 디코딩 하면 좋지만 연산의 복잡도가 커지기 때문에 MIN-SUM 알고리즘이 가지고 있던 복잡도의 간소화의 의미가 사라지게 된다.
따라서 min으로 구한 값에 가장 적합한 상수값(
Figure 112008054320815-PAT00009
, scaling factor)을 곱하여 값을 조절하게 된다. 이때 min을 취한 값에서 음의 연산이 되기 때문에
Figure 112008054320815-PAT00010
의 범위는 0~1 사이의 값이 된다.
도 5는 본 발명의 바람직한 실시예에 따른 LDPC 부호의 디코딩 알고리즘에서 체크노드 연산을 개략적으로 도시한 것이다.
도 5에서 (a)는 검사노드(Check node)(22) 쪽에 연결된 에지(edge)(23)와 에지(egde)로 들어오는 LLR값을 나타내고, (b)는 그 때의 MIN-SUM 알고리즘 연산을 수식으로 나타낸 것이다.
Figure 112008054320815-PAT00011
는 검사노드(check node)(22)에서 가변노드(variable node)(21)로 전달되는 edge i의 LLR 값이고,
Figure 112008054320815-PAT00012
는 가변노드(variable node)(21)에서 검사노드(check node)(22)로 전달되는 edge j의 LLR 값이다.
그리고 dc는 체크노드(check node)의 degree를 나타낸다. 이 연산에서
Figure 112008054320815-PAT00013
Figure 112008054320815-PAT00014
를 곱하여 min*의 값에 근접하게 다가가는 방법을 취하게 된다.
도 6은 본 발명의 바람직한 실시예에 따른 LDPC 부호의 디코딩 알고리즘에서 각각의 스케일링 값이 곱해지는 것을 도시한 것이다.
도 6에서 L은 LLR을 나타내며,
Figure 112008054320815-PAT00015
는 가변노드(21)에서 검사노드(22)로 입력되는 LLR을 나타내고,
Figure 112008054320815-PAT00016
,
Figure 112008054320815-PAT00017
는 각각 1번째부터, j 번째까지의 LLR을 나타낸다.
이때 본 발명에서는 min-sum 알고리즘을 위해 다음의 수학식 2를 사용한다.
Figure 112008054320815-PAT00018
또한 본 발명에서는 min-sum 알고리즘을 위해 도 5의 (b) 및 다음의 수학식 3을 사용한다.
Figure 112008054320815-PAT00019
여기서
Figure 112008054320815-PAT00020
는 j번째 가변노드(21)의 LLR의 부호(+ 또는 -)이며,
Figure 112008054320815-PAT00021
은 모든 입력의 각 절대값 중에서 가장 작은 값을 나타낸다. 이 경우
Figure 112008054320815-PAT00022
즉, I번째 검사노드(check node)(22)의 LLR을 계산할 때는 j와 I가 같지 않을 때(
Figure 112008054320815-PAT00023
)만 계산하게 된다.
그래서 수학식 3의 연산에서
Figure 112008054320815-PAT00024
에 를
Figure 112008054320815-PAT00025
를 곱하여 min*의 값에 근접하게 다가가는 방법을 취하게 된다. 즉,
Figure 112008054320815-PAT00026
는 가변노드(variable node)(21)에서 검사노드(check node)(22)로 들어오는 LLR값인데, 이 값 대신
Figure 112008054320815-PAT00027
Figure 112008054320815-PAT00028
를 곱해서 새로운
Figure 112008054320815-PAT00029
를 만들어서 수학식 3에 사용한다면 min-sum 알고리즘을 사용해도 min*-sum 알고리즘 성능에 근접하게 된다.
이처럼 본 발명은 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용하여 SUM-PRODUCT 알고리즘에 비해 성능의 열화는 적으면서도 복잡도를 줄일 수 있으므로 단순한 구조로 하드웨어 구현이 가능하게 되는 것이다.
이상에서 본 발명의 바람직한 실시예에 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 다양한 변화와 변경 및 균등물을 사용할 수 있다. 따라서 본 발명은 상기 실시예를 적절히 변형하여 응용할 수 있고, 이러한 응용도 하기 특허청구범위에 기재된 기술적 사상을 바탕으로 하는 한 본 발명의 권리범위에 속하게 됨은 당연하다 할 것이다.
도 1은 가우시안 추정법(Gaussian approximation)을 사용한 DE(Density Evolution) 기법을 이용해서 SUM-PRODUCT와 MIN-SUM 알고리즘의 한계값(threshold)을 LDPC 코드의 다양한 부호율에 따라 구한 것이다.
도 2는 본 발명의 일 실시예에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치의 블록구성도이다.
도 3은 본 발명의 일 실시예에 의한 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 방법을 보인 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 따른 매 반복 횟수(Iteration) 마다 사용되는 가장 적합한 상수(scaling factor)를 도시한 LDPC 코드의 이분(bipartite) 그래프이다.
도 5는 본 발명의 바람직한 실시예에 따른 LDPC 부호의 디코딩 알고리즘에서 체크노드 연산을 개략적으로 도시한 것이다.
도 6은 본 발명의 바람직한 실시예에 따른 LDPC 부호의 디코딩 알고리즘에서 각각의 스케일링 값이 곱해지는 것을 도시한 것이다.
* 도면의 주요 부분에 대한 부호의 설명 *
11 : 가변노드 갱신부
12 : 반복 비교부
13 ; 스케일링 팩터 곱셈부
14 : 검사노드 갱신부
15 : 벡터 최적화부
16 : 밀도 전개부
17 : 비교부
18 : 결정부
21 : 가변노드
22 : 검사노드
23 : 에지

Claims (6)

  1. 반복횟수가 0일 때 수신된 심볼을 받고, 반복이 진행되면 Lc를 받아서 가변노드의 LLR을 갱신하는 가변노드 갱신부와;
    상기 가변노드 갱신부의 결과를 전달받고, 정해진 반복횟수 이상인지 여부를 판단하는 반복 비교부와;
    상기 반복 비교부의 판단결과를 전달받고, 스케일링 팩터를 곱하는 스케일링 팩터 곱셈부와;
    상기 스케일링 팩터 곱셈부에서 스케일링 팩터가 곱해진 Lv에 대해서 갱신을 수행하는 검사노드 갱신부와;
    상기 검사노드 갱신부의 갱신 결과를 전달받고, 스케일링 팩터를 구하는 벡터 최적화부와;
    상기 벡터 최적화부에서 구한 스케일링 팩터에 대해 밀도 전개를 수행하여 한계치를 구하는 밀도 전개부와;
    상기 밀도 전개부의 결과를 전달받고, 현재의 반복에서 한계치가 이전에 구한 한계치와 비교하는 비교부와;
    상기 반복 비교부의 결과를 전달받아 출력을 결정하는 결정부;
    를 포함하여 구성된 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치.
  2. 청구항 1에 있어서,
    상기 반복 비교부는,
    상기 가변노드 갱신부의 결과를 전달받고, 정해진 반복횟수 이상이면 디코딩을 끝내고 출력을 결정하기 위한 결정부로 값을 보내주며, 반복이 끝나지 않았으면 검사노드의 갱신을 진행하도록 상기 스케일링 팩터 곱셈부로 Lv를 전달하는 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 비교부는,
    현재의 반복에서 한계치가 이전에 구한 한계치 보다 작으면 상기 가변노드 갱신부가 수행되도록 하고, 그렇지 않으면 한계치가 가장 작은 스케일링 팩터를 가질 수 있도록 상기 벡터 최적화부로 리턴하는 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 장치.
  4. 반복횟수가 0일 때 수신된 심볼을 받고, 반복이 진행되면 Lc를 받아서 가변노드의 LLR을 갱신하는 가변노드 갱신단계와;
    상기 가변노드 갱신단계의 결과를 전달받고, 정해진 반복횟수 이상인지 여부를 판단하는 반복 비교단계와;
    상기 반복 비교단계에서 계속할 것으로 판단하면, 스케일링 팩터를 곱하는 스케일링 팩터 곱셈단계와;
    상기 스케일링 팩터 곱셈단계에서 스케일링 팩터가 곱해진 Lv에 대해서 갱신을 수행하는 검사노드 갱신단계와;
    상기 검사노드 갱신단계의 갱신 결과를 전달받고, 스케일링 팩터를 구하는 벡터 최적화단계와;
    상기 벡터 최적화단계에서 구한 스케일링 팩터에 대해 밀도 전개를 수행하여 한계치를 구하는 밀도 전개단계와;
    상기 밀도 전개단계의 결과를 전달받고, 현재의 반복에서 한계치가 이전에 구한 한계치와 비교하는 비교단계와;
    상기 반복 비교단계에서 반복을 종료하는 것으로 판단하면, 출력을 결정하는 결정단계;
    를 포함하여 수행하는 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 방법.
  5. 청구항 4에 있어서,
    상기 반복 비교단계는,
    상기 가변노드 갱신단계의 결과를 전달받고, 정해진 반복횟수 이상이면 디코딩을 끝내고 출력을 결정하기 위한 결정단계가 수행되도록 하며, 반복이 끝나지 않았으면 상기 스케일링 팩터 곱셈단계가 수행되도록 하는 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 방법.
  6. 청구항 4 또는 청구항 5에 있어서,
    상기 비교단계는,
    현재의 반복에서 한계치가 이전에 구한 한계치 보다 작으면 상기 가변노드 갱신단계가 수행되도록 하고, 그렇지 않으면 한계치가 가장 작은 스케일링 팩터를 가질 수 있도록 상기 벡터 최적화단계로 리턴하는 것을 특징으로 하는 LDPC 부호의 성능 개선을 위한 스케일링 기반의 개선된 MIN-SUM 반복복호알고리즘을 이용한 복호 방법.
KR1020080073655A 2007-07-27 2008-07-28 Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 KR20090012189A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070075373 2007-07-27
KR20070075373 2007-07-27

Publications (1)

Publication Number Publication Date
KR20090012189A true KR20090012189A (ko) 2009-02-02

Family

ID=40683103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080073655A KR20090012189A (ko) 2007-07-27 2008-07-28 Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법

Country Status (1)

Country Link
KR (1) KR20090012189A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140099820A (ko) * 2013-02-04 2014-08-13 에스케이 하이닉스 메모리 솔루션 인코퍼레이티드 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
KR101476049B1 (ko) * 2013-08-28 2014-12-23 세종대학교산학협력단 Ldpc 복호 시스템을 이용한 펑쳐링된 데이터의 복원 방법 및 그 장치
KR20170015191A (ko) 2015-07-31 2017-02-08 고려대학교 산학협력단 터보 복호기 및 ldpc 복호기를 위한 다중 복호 방법 및 그 장치
KR20170059018A (ko) * 2012-12-03 2017-05-29 디지털 파워라디오, 엘엘씨 연접 코딩 시스템의 개선된 반복 디코딩 및 채널 추정을 위한 시스템 및 방법
CN103973316B (zh) * 2013-02-04 2017-08-08 爱思开海力士有限公司 具有使用定标常数的可变节点更新器的解码方法和解码***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170059018A (ko) * 2012-12-03 2017-05-29 디지털 파워라디오, 엘엘씨 연접 코딩 시스템의 개선된 반복 디코딩 및 채널 추정을 위한 시스템 및 방법
KR20190032635A (ko) * 2012-12-03 2019-03-27 디지털 파워라디오, 엘엘씨 연접 코딩 시스템의 개선된 반복 디코딩 및 채널 추정을 위한 시스템 및 방법
KR20140099820A (ko) * 2013-02-04 2014-08-13 에스케이 하이닉스 메모리 솔루션 인코퍼레이티드 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
CN103973316B (zh) * 2013-02-04 2017-08-08 爱思开海力士有限公司 具有使用定标常数的可变节点更新器的解码方法和解码***
KR101476049B1 (ko) * 2013-08-28 2014-12-23 세종대학교산학협력단 Ldpc 복호 시스템을 이용한 펑쳐링된 데이터의 복원 방법 및 그 장치
KR20170015191A (ko) 2015-07-31 2017-02-08 고려대학교 산학협력단 터보 복호기 및 ldpc 복호기를 위한 다중 복호 방법 및 그 장치

Similar Documents

Publication Publication Date Title
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
KR100891782B1 (ko) 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
JP4627317B2 (ja) 通信装置および復号方法
KR102231278B1 (ko) 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
CN107612560B (zh) 基于部分信息比特似然比的极化码早期迭代停止方法
KR20080053346A (ko) 저밀도 패리티 검사 디코더용 방법 및 장치
CN107565978B (zh) 基于Tanner图边调度策略的BP译码方法
CN110784232B (zh) 一种空间耦合ldpc码滑窗译码方法
CN109586732B (zh) 中短码ldpc编解码***和方法
CN110830050B (zh) 一种ldpc译码方法、***、电子设备及存储介质
KR20150137430A (ko) 통신 시스템에서 비-이진 ldpc 부호를 복호화하는 방법 및 장치
Abbas et al. Low complexity belief propagation polar code decoder
CN110830049A (zh) 一种基于密度进化改进偏移最小和的ldpc译码方法
Kamenev et al. A new permutation decoding method for Reed-Muller codes
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
JP2008199623A (ja) メッセージパッシングおよび強制収斂復号法
Levin et al. Lazy scheduling forLDPC decoding
CN111034055A (zh) 在非二进制ldpc解码器中简化的校验节点处理
Roberts et al. An improved low-complexity sum-product decoding algorithm for low-density parity-check codes
KR20210099388A (ko) Ldpc 복호 방법 및 ldpc 복호 장치
CN113228520A (zh) 用于对由至少两个约束节点组成的代码进行解码的迭代解码器
WO2021073338A1 (zh) 译码方法和译码器
JP5493602B2 (ja) 復号化装置及び復号化方法
US11894862B2 (en) Method and device for polar code encoding and decoding
Wu et al. Improved MS LDPC decoder based on Jacobian Logarithm

Legal Events

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