KR101431162B1 - 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법 - Google Patents

주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법 Download PDF

Info

Publication number
KR101431162B1
KR101431162B1 KR1020097003351A KR20097003351A KR101431162B1 KR 101431162 B1 KR101431162 B1 KR 101431162B1 KR 1020097003351 A KR1020097003351 A KR 1020097003351A KR 20097003351 A KR20097003351 A KR 20097003351A KR 101431162 B1 KR101431162 B1 KR 101431162B1
Authority
KR
South Korea
Prior art keywords
nodes
node
check
decoding
variable
Prior art date
Application number
KR1020097003351A
Other languages
English (en)
Other versions
KR20090048465A (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 꼼미사리아 아 레네르지 아토미끄 에뜨 옥스 에너지스 앨터네이티브즈
Publication of KR20090048465A publication Critical patent/KR20090048465A/ko
Application granted granted Critical
Publication of KR101431162B1 publication Critical patent/KR101431162B1/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/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 복수의 변수 (variable) 노드들 및 복수의 체크 (check) 노드들을 포함하는 이분 (bipartite) 그래프에서 디스플레이될 수 있는 에러 정정 코드의 디코딩을 위한, 메시지 전달 (message passing)에 따른 반복적 (iterative) 방법에 관한 것이다. 이 방법의 복수의 디코딩 이터레이션들 (iterations) 중 각각의 이터레이션마다,
- 변수 노드들 또는 체크 노드들이 이 노드들의 이웃들
Figure 112009010129174-pct00255
에서 입수가능한 디코딩 정보의 해당 신뢰도들의 함수로서 분류되는데 (720), 높은 신뢰도를 가진 노드가 낮은 신뢰도를 가진 노드 앞에 분류되고;
- 그렇게 분류된 각 노드가 그러한 분류에 의해 규정된 순서에 따라 인접하는 한 노드로 적어도 한 메시지
Figure 112009010129174-pct00256
를 전달한다 (725).
본 발명은 또한 위의 디코딩 방법을 구현하도록 디자인된 컴퓨터 프로그램과도 관련이 있다.

Description

주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법{Message-passing decoding method with sequencing according to reliability of vicinity}
본 발명은 원격통신 또는 데이터 레코딩 분야에서의 에러 정정 코드들의 디코딩에 관한 것이다. 더 구체적으로 말하면, 본 발명은 LDPC (Low Density Parity Check) 코드들 또는 터보코드들 같이 이분 그래프 내에 디스플레이 될 수 있는 에러 정정 코드들의 디코딩을 위한, 메시지 전달에 따른 반복적 (iterative) 방법에 관한 것이다.
이분 그래프 (bipartite graph)에 의해 디스플레이 될 수 있는 에러 정정 코드들은 폭넓은 종류의 코드들을 커버하는데, 특히 그러한 코드들에는 최근에 흥미로운 특성들이 재발견되었던, R. Gallager에 의해 "Low density parity check codes (저밀도 패리티 체크 코드들)"라는 제목으로 1962년 공개된 IEEE 정보 분과 회보, IT-8권, 21-28쪽들에서 최초로 논의된 LDPC 코드들과, C. Berrou 등에 의해 "Near optimum error correcting coding and decoding: turbo-codes (근최적 에러 정정 코딩 및 디코딩: 터보-코드들)"이라는 제목으로 1996년 공개된 IEEE 정보 분과 회보, 44권 10호, 1261-1271쪽의 논문에서 소개된 터보코드들이 있다.
이분 그래프는, 모든 노드들이 두 개의 독자적 부분집합으로 이뤄지는데, 한 부분집합 내 임의의 두 노드들은 그래프의 에지에 의해 서로 연결되어 있지 않도록 되는 무방향성 (non-oriented) 그래프이다.
일부 에러 정정 코드들은 이분 그래프로서 디스플레이 될 수 있다. 이 그래프는 코드워드를 이루는 심볼들과 관련된 노드들로 된 제1부분집합, 및 코드의 구속요건들, 통상적으로 패리티 체크들과 관련된 노드들로 된 제2부분집합으로 분할된다. 구속요건들의 그룹과 관련된 이분 그래프는 태너 (Tanner) 그래프라고도 불린다.
코드워드로 내 심볼들은 보통 갈루아 (Galois) 체 (body) 엘리먼트들인 F2={0,1}, 즉 비트들이지만, 보다 일반적으로 말해 임의의 2 지표 (characteristic), 결과적으로 2p 진수의 알파벳을 가진 체
Figure 112009010129174-pct00001
의 원소들일 수 있다. 이하에서는 일반성의 상실 없이, p=1인 경우로, 즉 이진 코드들의 경우로 논의를 한정할 것이다.
이분 그래프에 의한 부가적 표현 코드들은 반복적 메시지 전달 (MP, message passing) 또는 BP (Belief Propagation) 디코딩을 이용해 디코딩될 수 있다. 이러한 디코딩 방법에 대한 일반적 내용이 N. Wiberg에 의한 "Codes and decoding on general graphs (일반 그래프들 상의 코드들 및 디코딩)"라는 제하의 1996년 논문에 나와 있다. MP 타입 반복 디코딩은 실제로 디코딩 분야에서 널리 알려진 알고리즘들, 즉 터보코드들에 사용되는 "포워드-백워드 (forward-backwad)" 알고리즘 및 LDPC 코드들을 위한 Gallarer 알고리즘을 일반화한 것이다.
단순화의 취지로, 이하에서는 LDPC 코드 체계에서의 메시지 전달에 따른 반복 디코딩 원리에 대한 내용을 포함한다. 선형 코드 (K, N)를 고려할 것이며, 여기서 K는 정보 비트들의 개수를 나타내는 코드의 규모이고, N은 코딩된 비트들의 개수를 나타내는 코드의 길이이다. M=N-K는 패리티 비트들의 개수 또는 그와 등가적인 것으로서 패리티 구속요건의 개수에 해당한다.
도 1은 선형 코드 (K,N)의 태너 그래프를 보인다. 이 그래프의 좌측은 "가변 (variable)" 타입 노드들 또는 단순히 "변수들 (variables)"로도 불리는, 코드 내 비트들에 대응하는 노드들을 보이고 있고, 우측은 "체크" 타입 노드들 또는 더 간단하게 "체크들"이라고도 불리는, 패리티 체크들에 대응하는 노드들을 보인다. 이 그래프의 입사 행렬 (incidence matrix)은 MxN 차원을 갖는, 코드의 패리티 행렬에 해당한다. 따라서, 이분 그래프는 N 개의 "가변" 타입 노드들 및 M 개의 "체크" 타입 노드들을 포함하며, 가변 노드 n은 hmn=1인 경우에만 체크 노드 m과 연결된다. 예를 들어, 도 1의 그래프는 아래의 패리티 행렬을 갖는 코드 (10, 5)에 해당한다:
Figure 112009010129174-pct00002
(1)
일반적으로, 엘리먼트들이 이진수 값들이고 코드 워드 x = (x1, x2,..,xN)가 아래의 식 (2)를 이용해 정보 비트들 a = (a1, a2,..,aK)을 갖는 한 워드로부터 얻어지는 생성 행렬 (generating matrix)에 의해 정의된다는 것을 기억해야 한다.
x = aG (2)
모든 코드워드들은 패리티 체크들을 만족하므로, 다음과 같은 관계식을 얻는다:
H.G T = 0 (3)
여기서 G T 는 행렬 G의 전치행렬을 의미한다.
코드워드 x는 통신 채널로 전송되거나 데이터 서포트 (data support) 상에 기록된다. x의 잡음 버전, 즉 y = (y1, y2,..,yN)은, 수신시에나 상기 서포트를 판독할 때 복구된다. 디코딩 동작은 관측버전 (observation) y에서 시작해 x를 얻고 그에 따라 a를 얻는 동작으로 이뤄진다.
반복적 메시지 전달 디코딩의 원리를 설명하기 전에 다음과 같은 용어들에 대해 합의할 것이다:
H(n)은 이분 그래프 내 변수 n과 관련한 모든 테스트들, 즉 노드 n에 인접한 모든 노드들을 의미한다.
H(m)은 이분 그래프 내 체크 m에 연결된 변수들의 집합, 즉 노드 m에 인접한 모든 노드들을 의미한다.
Figure 112009010129174-pct00003
은 이분 그래프의 변수 n과 관련한 사전 (priori) 정보, 즉 코드워드 내 n 번째 비트와 관련된 사전 정보를 나타낸다. 이 정보는 수신된 신호 및 전송 채널의 특성을 고려한 것이다. 그것이 디코더로의 입력을 형성하고, 보통 소프트 밸류 (soft values)의 형태로, 즉 다음 식과 같은 우도 (likelihoods) 식으로서 복조기에 의해 제공되거나,
Figure 112009010129174-pct00004
(4)
여기서,
Figure 112009010129174-pct00005
이다.
보다 편리하게, 다음과 같은 로그 우도비 (logarithmic likelihood ration, LLR)의 형식으로 제공된다.
Figure 112009010129174-pct00006
따라서, 중앙집중형 백색 가우스 잡음 (centered Gaussian white noise) 및 BPSK 변조에 있어서, 복조기는 간단히 다음과 같은 것을 산출한다:
Figure 112009010129174-pct00007
여기서
Figure 112009010129174-pct00008
는 잡음 분산 (noise variance)이다.
Figure 112009010129174-pct00009
은 변수 n에 의해 체크
Figure 112009010129174-pct00010
으로 전달되는 메시지를 나타낸 다. 터보코드들을 참고할 때,
Figure 112009010129174-pct00011
은 외부 정보 (extrinsic information)라고도 불린다;
Figure 112009010129174-pct00012
은 체크 m에 의해 변수
Figure 112009010129174-pct00013
으로 전달되는 메시지를 대칭적으로 나타낸 것이다. 이것 역시 외부 정보로서의 자격을 갖춘다;
Figure 112009010129174-pct00014
은 변수 n과 관련된 사후 정보를 나타낸다: 이것은 디코딩 중 인접한 체크들로부터 변수 n에 의해 수신된 메시지
Figure 112009010129174-pct00015
및 사전 정보
Figure 112009010129174-pct00016
를 모두 고려한다;
Figure 112009010129174-pct00017
은 소프트 밸류
Figure 112009010129174-pct00018
에 대응하는 하드 밸류, 즉 비트
Figure 112009010129174-pct00019
에 대해 이뤄진 결정 (decision)이 된다.
도 2는 메시지 전달에 의한 반복 디코딩의 원리를 보인 것이다.
210 단계에서,
Figure 112009010129174-pct00020
이 각 변수 n 및 체크
Figure 112009010129174-pct00021
쌍마다 초기화된다. 메시지들
Figure 112009010129174-pct00022
은 보통 사전 정보에 의해 초기화된다, 즉
Figure 112009010129174-pct00023
이다. 이터레이션 (iteration, 반복) 카운터 Iter 또한 0으로 초기화된다.
초기화 단계 다음에는 아래의 단계들을 포함하는 이터레이션 루프가 이어진 다:
220 단계에서, 체크들이 초기화된다. 더 세밀히 말해, 각각의 체크 m에 대해 체크 m으로부터 해당 변수들
Figure 112009010129174-pct00024
로 가는 메시지들
Figure 112009010129174-pct00025
이 산출된다:
Figure 112009010129174-pct00026
여기서 Fc는 체크 프로세싱 함수이다. 임의로 주어진 한쌍의 노드들인 m,
Figure 112009010129174-pct00027
에 대해, 메시지
Figure 112009010129174-pct00028
이, 체크 m 스스로가 변수들인
Figure 112009010129174-pct00029
으로부터 수신했던 메시지들의 함수로서 산출된다. 궁극적으로, 어떠한 외부 정보도 한 변수 노드로부터 그 스스로에게 포워드되지 않는다는 것을 관찰하게 된다. 체크 프로세싱 단계는 수평 (horizontal) 단계라고도 불린다.
230 단계에서, 변수들은 대칭적으로 처리된다. 더 상세하게 말하면, 각 변수 n에 대해, 대응하는 체크들
Figure 112009010129174-pct00030
을 지향하는 메시지들
Figure 112009010129174-pct00031
이 산출된다:
Figure 112009010129174-pct00032
여기서 변수 프로세싱 함수는 Fv라고 표시된다. 주어진 노드 쌍 n,
Figure 112009010129174-pct00033
에 대해, 변수 n 스스로가 체크들
Figure 112009010129174-pct00034
로부터 수신 했던 메시지들의 함수로서 메시지
Figure 112009010129174-pct00035
이 산출되고, 상술한 바와 같이 어떠한 외부 정보도 한 노드에서 그 스스로에게 포워드 되지 않도록 된다. 변수 프로세싱 단계는 수직 단계라고도 불린다.
240 단계에서, 사후 정보
Figure 112009010129174-pct00036
가 인근 체크 노드들
Figure 112009010129174-pct00037
로부터 변수 n에 의해 수신된 메시지들
Figure 112009010129174-pct00038
및 사전 정보
Figure 112009010129174-pct00039
로부터 추정되고, 아래와 같은 기호로서 표현된다:
Figure 112009010129174-pct00040
여기서 사후 추정 함수는 FAP로 표시된다.
250 단계에서, 소프트 밸류
Figure 112009010129174-pct00041
로부터 하드 밸류
Figure 112009010129174-pct00042
에 대한 결정이 다음과 같이 이뤄진다:
Figure 112009010129174-pct00043
여기서 결정 함수는 FD라고 표시된다. 보통, BPSK 변조에 있어서, 결정은, 소프트 밸류의 부호 (sign)에 대해 행해진다, 즉
Figure 112009010129174-pct00044
이 된다. 이하에서는 편리성을 위해 한 비트의 값이 그 변조 값을 가지고 식별될 것이다. 통상적으로, 비트 "0"은 "+1"로 표현될 것이고, 비트 "1"은 "-1"로 표현될 것이다.
260 단계에서,
Figure 112009010129174-pct00045
벡터가 어떤 코드워드인지, 즉, 그것이 패리티 체크들을 만족하는지가 체크된다. 체크에 대해 긍정인 경우, 루프는 265 단계에서 종료되고, 디코딩된 워드는
Figure 112009010129174-pct00046
가 된다. 부정으로 체크되는 경우, 267 단계에서 이터레이션 수가 증가되고 270 단계에서 그 증가된 이터레이션 회수 Iter이 문턱 값 Iter_max에 도달했는지를 판단한다. 도달하지 못했으면, 220 단계로 루프를 돌아가 반복 디코딩이 계속된다. 디폴트로서, 디코딩 동작이 실패했다고 결론짓고 275 단계에서 루프가 종료된다.
이터레이션 루프 내 단계들의 순서는 도 2에 도시된 순서와 다를 수 있다. 특히, 변수들 및 체크들의 프로세싱 순서가 바뀔 수 있고, 메시지들을 초기화하는 것으로 시작하는 것이 가능하다,
Figure 112009010129174-pct00047
Figure 112009010129174-pct00048
.
도 2에 도시된 반복 디코딩의 원리에 따르면, 모든 체크들이 우선 처리되고 이어서 모든 변수들이 따라오거나, 상술한 것처럼, 모든 변수들이 먼저 처리되고 다음에 모든 체크들이 따라올 수 있다. 이것을 "병렬 스케줄링" 또는 "플러딩 스케줄링 (flooding scheduling)"이라 부른다. 다른 스케줄링 타입들이 문헌상으로 제안되고 있는데, 이들은 두 카테고리로 분류될 수 있다:
- 직렬 타입 스케줄링으로서, "직렬 스케줄링", "셔플형-BP (shuffled-BP)", "수평 셔플 (horizontal shuffled)", 또는 "수직 셔플 (vertical shuffled)" 스케줄링을 포함할 수 있는 카테고리. 직렬 타입 스케줄링은 체크들 및 변수들에 동등하게 적용될 수 있다. 체크들에 대한 응용에 있어서, 디코딩은 다음과 같은 전략을 이용한다:
● 우선, 변수들
Figure 112009010129174-pct00049
로 보내질 메시지들
Figure 112009010129174-pct00050
을 산출함으로써 하나의 체크 m이 처리된다;
● 각각의 변수
Figure 112009010129174-pct00051
로부터 체크들
Figure 112009010129174-pct00052
로 보내질 메시지들
Figure 112009010129174-pct00053
이 업데이트된 후 전송된다. 이러한 변수들과 관련된 사후 정보
Figure 112009010129174-pct00054
또한 업데이트된다;
● 다음 체크가 처리되고, 더 이상의 체크가 존재하지 않을 때까지 앞의 두 단계들이 반복된다.
이와 유사하게, 체크 바이 체크 (check by check) 프로세싱 대신 변수 바이 변수 프로세싱이 채택될 수 있다. 꾀하는 경우에 따라, "수평 셔플" 또는 "수직 셔플" 스케줄링이라는 용어가 사용될 수 있다.
상술한 두 스케줄링 타입들은 "혼합형" 내지 "그룹 셔플형" 스케줄링의 형태로 하이브리드화 될 수도 있다. 혼합형 스케줄링에 해당하는 디코딩 전략에 대한 설명은 J. Zhang 등이 "Shuffled iterative decoding (셔플형 반복 디코딩)"이라는 제목으로 2005년 2월 IEEE 통신 분과 회보 53권 제2호의 209-213 쪽에 공개된 논문에 주어져 있다. 그 전략은 그룹별 노드들의 분할에 기반하며, 프로세싱은 한 그룹 안에서 병렬로 행해지고, 한 그룹에서 다음 그룹으로는 직렬로 행해진다. 더 자세히 말하면, 체크 그룹들의 한 분포에 있어서:
● i=1,..., g일 때, 변수들
Figure 112009010129174-pct00055
로 보내질 메시지들
Figure 112009010129174-pct00056
을 산출함으로써 체크들
Figure 112009010129174-pct00057
로 이뤄진 제1그룹 G가 프로세싱된다.
● i=1,...,g일 때 대응하는 체크들
Figure 112009010129174-pct00058
로 전송될, 각각의 변수
Figure 112009010129174-pct00059
에 대한 메시지들
Figure 112009010129174-pct00060
이 업데이트된 후 전송된다. 이 변수들에 대한 사후 정보
Figure 112009010129174-pct00061
역시 업데이트된다;
● 다음 체크 그룹이 프로세싱되고, 더 이상의 체크 그룹들이 존재하지 않을 때까지 앞의 두 단계들이 반복된다.
이와 마찬가지로, 프로세싱이 체크들의 그룹별 분할이 아닌, 변수들의 그룹별 분할에 기반할 수도 있다.
도 3, 4 및 5는 각각 병렬 스케줄링, 직렬 스케줄링 및 혼합형 스케줄링을 위한 메시지 전달 메커니즘을 도식적으로 보인 것이다. 체크들은 변수들이 처리되기 전에 처리된다고 전제한다. 도 3은 체크들의 프로세싱 중 제1단계 (a)와 변수들의 프로세싱 중 제1단계 (b)를 보인다. 도 4 및 5는 체크들을 프로세싱할 때의 제1단계 (a) 및 제2단계 (c), 그리고 변수들을 처리할 때의 제1단계 (b) 및 제2단계 (d)를 보인다. 도 5에서, 모든 체크 노드들은 G1 및 G2라 표기되는 두 그룹들로 분할되었고, 이들은 순차적으로 프로세싱된다.
직렬 스케줄링 및 병렬 스케줄링은 혼합형 스케줄링의 특별 케이스들처럼 간주될 수 있으며, 전자는 그룹들이 싱글턴들 (singletons)로 감축된 케이스에 해당하고, 후자는 한 그룹이 모든 체크 노드들 (및 변수 노드들)을 포함하는 케이스에 해당한다.
LDPC 코드들에 대해 두 개의 주된 주요 반복적 메시지 전달 디코딩 알고리즘들이 알려져 있다, 즉 "log-BP"로도 불리는 SPA (Sum Product Algorithm) 알고리즘과 "based BP"로도 불리는 "Min-Sum" 알고리즘이 그들이다. 이 두 알고리즘들에 대한 상세 내용은 W.E. Ryan이 "An introduction to LDPC codes (LDPC 코드 입문)"이라는 제목으로 www.csee.wvu.edu/wcrl/ldpc.htm 링크에서 입수가능한, 레코딩 시스템들을 위한 코딩 및 신호 처리의 CRC 핸드북에 공개된 논문에 주어져 있다.
SPA와 Min-Sum 알고리즘들 간 유일한 차이는 체크-프로세싱 단계에 있으며, 여기에 대해서는 나중에 설명할 것이다. 다른 단계들은 동일하다, 즉:
변수 프로세싱 단계(230)는 다음 식과 같은 메시지들
Figure 112009010129174-pct00062
을 산출하는 단계로 이뤄진다:
Figure 112009010129174-pct00063
여기서
Figure 112009010129174-pct00064
은 변수 n에 의해 체크들
Figure 112009010129174-pct00065
로부터 수신된 모든 메시지들
Figure 112009010129174-pct00066
을 나타내고,
Figure 112009010129174-pct00067
은 그러한 체크들 각각에 대해 검증된 패리티 체크에 해당하는 결과를 나타낸다.
Figure 112009010129174-pct00068
값들이 독립적인 것이라고 가정할 때,
Figure 112009010129174-pct00069
이 다음과 같이 LLR의 형식으로 표현될 수 있다:
Figure 112009010129174-pct00070
사후 정보를 추정하는 240 단계는 아래의 식을 산출하는 단계로 이뤄진다:
Figure 112009010129174-pct00071
Figure 112009010129174-pct00072
은 변수 n에 의해 모든 H(n) 체크들로부터 수신된 메시지들을 나타내고,
Figure 112009010129174-pct00073
은 그러한 체크들 각각에 대해 검증된 패리티 체크에 해당하는 결과를 나타낸다. 위에서와 동일한 전제에 기초해,
Figure 112009010129174-pct00074
이 아래의 식으로서 LLR 형식에 따라 표현될 수 있다:
Figure 112009010129174-pct00075
(11) 및 (13)에 따라, 다음과 같은 식을 얻을 수 있다:
Figure 112009010129174-pct00076
결국, 변수 프로세싱 단계(230)는 사후 정보의 추정 다음에, 이터레이션의 마지막에 놓일 수 있다. 식 (14)는, 노드 (m)이 외부 정보 (이 케이스에서
Figure 112009010129174-pct00077
)를 그 노드 스스로에게 리턴하지 못한다는 사실을 말해준다.
하드 밸류들의 의사결정 단계(250)가 다음 식에 의해 간단하게 수행된다:
Figure 112009010129174-pct00078
(15)
여기서 x가 포지티브이면 sgn(x)=1이고, 그외의 경우에는 sgn(x)=-1이다.
260 단계에서 하드 밸류들에 대한 패리티 체크들의 검증은 패리티 체크들의 계산을 이용한다:
Figure 112009010129174-pct00079
아래의 식에 해당할 때에만 모든 패리티 체크들이 만족된다:
Figure 112009010129174-pct00080
체크-프로세싱 단계(220)는 SPA 알고리즘을 위해 아래의 식을 산출하는 단계로 이뤄진다:
Figure 112009010129174-pct00081
cm=1은 체크 m에 대해 만족되는 패리티 조건을 의미하고,
Figure 112009010129174-pct00082
은 체크 m에 의해 변수들
Figure 112009010129174-pct00083
로부터 수신된 모든 메시지들
Figure 112009010129174-pct00084
을 나타 낸다.
Figure 112009010129174-pct00085
이 다음과 같이 표현될 수 있다는 것을 알 수 있다:
Figure 112009010129174-pct00086
여기서,
Figure 112009010129174-pct00087
이다.
Min-Sum 알고리즘에 따른 체크들의 프로세싱은 식 (19)의 단순화 결과에 해당한다. 함수
Figure 112009010129174-pct00088
의 빠른 쇠락 (fast decay) 및
Figure 112009010129174-pct00089
이 그 역수와 동일하다는 사실, 즉
Figure 112009010129174-pct00090
로 인해, 정당하게 다음과 같은 근사식을 만들 수 있다:
Figure 112009010129174-pct00091
Min-Sum 디코딩 알고리즘은 SPA 디코딩 알고리즘보다 훨씬 더 단순한데, 그 이유는 Min-Sum 디코딩 알고리즘이 가산, 비교 및 부호 (sign) 바꾸기만을 수행하기 때문이다. 또, Min-Sum 알고리즘의 수행은 잡음 분산
Figure 112009010129174-pct00092
의 추정에 대해 독립적이다.
SPA 디코딩 알고리즘의 성능이 Min-Sum 알고리즘의 성능보다 낫다고 하나, 전자의 성능은 잡음 파워가 틀리게 추정되는 경우 심각하게 저하될 수 있다.
본 발명의 일반적인 목적은 이분 (bipartite) 그래프로 나타낼 수 있는 에러 정정 코드를 디코딩하기 위해, 최신 기술로서 알려진 동일 타입의 알고리즘들보다 에러율 및 수렴율 면에서 더 우수한 성능을 가진, 반복 메시지 전달 타입 디코딩 알고리즘을 제안하는 데 있다.
본 발명의 제1목적은, SPA 알고리즘에 비해 크게 낮은 복잡도를 가지고, 한편 주어진 신호 대 잡음비에 있어 필적하거나 더 우수한 에러율 성능을 가지며, 또한 잡음 파워의 추정을 요하지 않는, LDPC 코드를 디코딩하기 위한 반복 메시지 전달 타입 디코딩 알고리즘을 제안하는 데 있다.
본 발명의 또 하나의 특별한 목적은, SPA 또는 Min-Sum 알고리즘들에 비해 높은 수렴율을 가지는, LDPC 코드들을 디코딩할 메시지 전달 타입 디코딩 알고리즘을 제안하는 데 있다.
본 발명은 복수의 변수 노드들 (variable nodes) 및 복수의 체크 노드들 (check nodes)을 포함하는 이분 (bipartite) 그래프에서 디스플레이될 수 있는 에러 정정 코드의 디코딩을 위한 메시지 전달에 따른 반복적 방법으롤서 정의되며, 그 방법은, 복수의 디코딩 이터레이션 (iteration)들의 각 이터레이션에 있어서,
- 변수 노드들 또는 체크 노드들이 그 노드들의 이웃에서 입수가능한 디코딩 정보의 해당 신뢰도의 함수로서 분류되는데, 높은 신뢰도를 가진 노드가 낮은 신뢰도를 가진 노드 앞에 분류되고;
- 그렇게 분류된 각각의 노드가 상기 분류에 의해 규정된 순서에 따라 적어도 한 메시지를 인접한 한 노드로 전달한다.
제1실시예에 따르면, 분류될 각 노드에 대해, 상기 분류는 이분 그래프의 해당 노드로부터 소정 거리보다 멀지 않은 곳에 있는 노드들에 의해 수신되거나 전송되거나 존재하는 정보의 신뢰도 측정치 산출, 및 그렇게 얻어진 상기 측정치 값들의 소팅 (sorting)을 포함한다.
상기 복수개의 각 이터레이션 마다, 상기 분류된 노드들이 상기 분류에 의해 규정된 순서에 따라 순차적으로 프로세싱되고, 각각의 분류된 노드에 대해, 그 노드에 인접한 노드들로 보내지는 메시지들이 산출되고, 각각의 상기 인접한 노드에 대해, 상기 인접한 노드에 인접한 노드들로의 메시지들이 산출된다.
제2실시예에 따르면, 분류될 각 노드에 대해, 상기 분류는 이분 그래프의 해당 노드로부터 소정 거리보다 멀지 않은 곳에 위치하는 노드들에 의해 수신, 전송 또는 존재하는 정보의 신뢰도 측정치 산출을 포함한다. 노드들은 상기 측정치 값들의 구간별로 그룹화된다.
신뢰도 측정치가 정수 값들을 사용하면, 각각의 상기 정수 값에 대해, 신뢰도 측정치가 그 값과 동일한 노드들의 인덱스들이 그와 관련된 메모리 영역에 저장된다.
상기 복수개의 각 이터레이션 마다, 상기 분류에 의해 규정된 순서로 노드 그룹들이 순차 처리되고, 각 노드 그룹에 대해 그 그룹 내 노드들에 인접한 노드들로의 메시지들이 산출되고, 상기 인접한 노드들 각각에 대해 상기 인접한 노드들에 인접한 노드들 당사자로의 메시지들 역시 산출된다.
하나의 변형예에 따르면, 상기 이분 그래프의 각 변수 노드마다, 상기 복수개의 각 이터레이션은, 해당 노드에 이미 존재하는 사전 (priori) 정보의 함수인 사후 (posteriori) 정보, 및 해당 노드에 의해 인접하는 체크 노드들로부터 수신된 메시지들을 산출하는 단계를 포함한다.
사후 정보 산출 단계 다음에 상기 변수의 하드 밸류 (hard value)에 대한 결정 단계가 따라온다.
다음 단계는, 그렇게 얻어진 변수들의 하드 밸류들이 그래프의 모든 체크 노드들과 관련된 패리티 체크들을 만족하는지 테스트하는 것으로, 그를 만족하는 경우, 상기 하드 밸류들로 이뤄진 워드가 디코딩된 워드로서 주어진다.
바람직하게도, 상기 분류는 소정 회수의 디코딩 이터레이션들 뒤에 중단되며, 그러면 상기 변수 노드들이나 상기 체크 노드들에 대한 상기 분류의 부재 시에 상기 디코딩 방법이 자신의 디코딩 이터레이션들을 계속한다.
상기 변수들의 사후 값들 및 사전 값들 간 차들 (differences)의 절대값의 최소치가 소정 문턱 값보다 크면 상기 분류가 중단되고, 상기 가변 노드들이나 상기 체크 노드들에 대한 상기 분류의 부재시에 상기 디코딩 방법이 자신의 디코딩 반복들을 재개한다.
제1어플리케이션에서, 상기 에러 정정 코드는 터보코드 (turbocode)이다.
제2어플리케이션에서, 상기 에러 정정 코드는 N 개의 변수 노드들 및 M=N-K 개의 체크 노드들을 가진 이분 그래프에 의해 나타내지는 LDPC 코드 (K, N)이다.
후자의 경우, 인덱스
Figure 112009010129174-pct00093
를 갖는 한 체크 노드로부터 인덱스
Figure 112009010129174-pct00094
을 가진 한 변수 노드로의
Figure 112009010129174-pct00095
메시지가 다음과 같이 산출될 수 있다:
Figure 112009010129174-pct00096
여기서
Figure 112009010129174-pct00097
는 인덱스 n'를 가진 변수 노드로부터 인덱스 m을 가진 체크 노드로의 메시지를 나타내고, H(m)은 인덱스 m을 가진 체크 노드에 인접한 모든 변수 노드들을 나타내며, x가 양이면 sgn(x)=1이고 그렇지 않은 경우에는 sgn(x)=-1이며,
Figure 112009010129174-pct00098
이다.
이와 달리, 인덱스
Figure 112009010129174-pct00099
을 갖는 한 체크 노드로부터 인덱스
Figure 112009010129174-pct00100
을 갖는 한 변수 노드로의 메시지
Figure 112009010129174-pct00101
이 다음과 같이 산출될 수도 있다:
Figure 112009010129174-pct00102
여기서,
Figure 112009010129174-pct00103
는 인덱스 n'를 가진 변수 노드로부터 인덱스 m을 가진 체크 노드로의 메시지를 나타내고, H(m)은 인덱스 m을 가진 체크 노드에 인접한 모든 변수 노드들을 나타내며, x가 양이면 sgn(x)=1이고 그렇지 않은 경우에는 sgn(x)=-1이다.
일 실시예에 따르면, 상기 분류가 체크 노드들에 적용되고, 상기 소정 거리는 2와 같다. 그러면 인덱스 m을 가진 체크 노드의 신뢰도 측정치가 다음과 같이 산출된다:
Figure 112009010129174-pct00104
H(m)은 인덱스 m을 가진 체크 노드에 인접한 변수 노드들의 집합을 나타내고, H(n)은 인덱스 n을 가진 변수 노드와 인접한 체크 노드들의 집합을 나타내며, Card(.)는 집합의 기수 (cardinal)를 나타내는데, 여기서
Figure 112009010129174-pct00105
이면 c=0 이고,
Figure 112009010129174-pct00106
이면
Figure 112009010129174-pct00107
이고,
Figure 112009010129174-pct00108
는 이분 그래프의 체크 노드들의 최대 등급 (degree)이고,
Figure 112009010129174-pct00109
/
Figure 112009010129174-pct00110
는 각각 패리티 체크가 인덱스 m을 가진 체크 노드에 대해 만족되고/만족되지 않음을 의미한다.
마지막으로, 본 발명은 컴퓨터로 실행될 때 위에서 정의된 디코딩 방법의 구현 단계들에 적응되는 소프트웨어 수단을 구비한 컴퓨터 프로그램에 관한 것이다.
도 1은 (K, N) 코드에 대한 태너 (Tanner) 그래프의 예를 보인 것이다.
도 2는 종래 기술에 의해 알려진 반복 메시지 전달 디코딩의 원리를 다이어그램으로 보인 것이다.
도 3은 병렬 타입 스케줄링에 따른 메시지 전달에 의한 반복 디코딩의 제1이터레이션들을 보인 것이다.
도 4는 직렬 타입 스케줄리에 따른 메시지 전달에 의한 반복 디코딩의 제1이터레이션들을 보인 것이다.
도 5는 혼합된 타입의 스케줄링에 따른 메시지 전달에 의한 반복 디코딩의 제1이터레이션들을 보인 것이다.
도 6a 및 6b는 각각 한 노드의 차수 1 및 차수 2 이웃들을 보인 것이다.
도 7은 본 발명에 따른 메시지 전달에 의한 반복 디코딩의 원리를 보인다.
도 8은 본 발명의 제1실시예에 따른 메시지 전달에 의한 반복 디코딩 방법을 보인다.
도 9은 본 발명의 제2실시예에 따른 메시지 전달에 의한 반복 디코딩 방법을 보인다.
도 10은 LDPC 코드를 디코딩하기 위한 본 발명에 따른 디코딩 방법의 전형적인 어플리케이션을 보인 것이다.
도 11은 특정 LDPC 코드에 대해, 최신 기술에 따른 기타의 방법들과 비교한 본 발명에 따른 디코딩 방법에 의해 얻어진 에러율을 보인 것이다.
다시 한번 N 개의 변수들 (variables) 및 M 개의 체크들 (checks)을 가진 이분 그래프로 나타내어질 수 있는 에러 정정 코드를 고려할 것이다.
그래프 상에서 두 노드들
Figure 112012059586561-pct00111
을 연결하는, 그래프를 통과하는 최단 경로의 길이를 거리 (distance)라고 하고, 그 길이는 엣지들의 개수 (number of edges)로서 표현된
Figure 112012059586561-pct00112
로 나타낸다. 이분 그래프의 정의를 고려할 때, 동일한 타입의 두 노드들 사이의 거리는 짝수로, 서로 다른 타입의 두 노드들 간 거리는 홀수로 추정한다.
그래프
Figure 112009010129174-pct00113
의 임의 노드
Figure 112009010129174-pct00114
에 대한 차수 d인 이웃은,
Figure 112009010129174-pct00115
로부터의 d보다 작거나 같은 거리에 위치한 노드들의 집합
Figure 112009010129174-pct00116
로 정의한다:
Figure 112009010129174-pct00117
그에 따라, 한 노드의 차수 0인 이웃은 노드 자신으로 이뤄지고, 차수 1인 이웃은 차수 0인 이웃과 그 노드에 인접한 모든 노드들과의 조합이며, 차수 2인 이웃은 차수 1인 이웃 및, 그 차수 1인 이웃 내 노드들과 인접한 모든 노드들과의 조합이 되는 식으로 된다. n 개의 변수들 및 m개의 체크들로 이뤄진 이분 그래프에 대해, 이들 노드들의 차수 0 내지 2인 이웃들이 다음과 같이 주어진다:
Figure 112009010129174-pct00118
싱글턴 {n} (또는 {m})은
Figure 112009010129174-pct00119
(또는
Figure 112009010129174-pct00120
)의 식에 나타나지 않는데, 그 이유는 인접 관계의 대칭성을 고려해 이미 그것이 조합의 두번째 항에 포함되어 있기 때문임을 주지할 수 있을 것이다.
일반적으로, 이분 그래프의 노드
Figure 112009010129174-pct00121
의 이웃들은 순환 관계 (recurrence relation)를 이용해 얻어질 수 있다:
Figure 112009010129174-pct00122
도 6a 및 6b는 도 1의 그래프 상의 체크 노드 m의 차수 1 및 차수 2인 이웃들을 보인 것으로, 이웃 (neighbourhood concept) 개념을 설명하기 위한 것이다. 상기 이웃들에 속하는 노드들은 회색으로 보여지고 있다.
상세 설명의 나머지 부분에서, 그래프
Figure 112009010129174-pct00123
의 한 노드
Figure 112009010129174-pct00124
에 대한 차수 d 신뢰도 측정치라는 용어가, 이웃
Figure 112009010129174-pct00125
에서 입수가능한 디코딩 정보에 의존하는 변수
Figure 112009010129174-pct00126
를 지칭하는데 사용될 것인데, 달리 말해 상기 정보는 디코딩 동작의 로컬 신뢰도를 가리키는 것으로 상기 이웃에 속하는 노드들에 의해 존재하거나 전송되거나 수신된 정보가 된다. 신뢰도가 증가하면서
Figure 112009010129174-pct00127
가 커질 때 상기 측정치를 "포지티브 (positive)"라 할 수 있고, 그렇지 않은 경우를 "네거티브 (negative)"라 할 수 있다.
체크 노드 m에서 이용가능한 디코딩 정보는 먼저 패리티 체크가 검증되는지 안되는지 여부를 가리키는 값
Figure 112009010129174-pct00128
을 포함하고, 두번째로 인접 변수 노드들
Figure 112009010129174-pct00129
로 전송되는
Figure 112009010129174-pct00130
메시지들을 포함한다. 이 값
Figure 112009010129174-pct00131
및 메시지들
Figure 112009010129174-pct00132
은 디코딩에 대한 신뢰도 정보를 보유한다.
변수 노드 n에서 이용가능한 정보는 사전 정보
Figure 112009010129174-pct00133
, 사후 정보
Figure 112009010129174-pct00134
, 인접 체크 노드들
Figure 112009010129174-pct00135
로 전송될 외부 정보 메시지들
Figure 112009010129174-pct00136
및 하드 밸류들
Figure 112009010129174-pct00137
을 포함한다.
하드 밸류들을 제외한 상술한 정보들은 디코딩에 대한 신뢰도 정보를 보유한다.
일반적으로, LLR 형식으로 표현된 소프트 밸류들
Figure 112009010129174-pct00138
을 고려하면, 그 절대 값들이 보다 높을 때 디코딩이 더 안정적일 것이라 간주될 것이다.
아래에서는 차수 0부터 2에 대한 신뢰도 측정치들의 일부 예시적이고 비한정적인 예들을 포함한다:
- 차수 0 신뢰도 측정치들:
이제 그 이웃은 노드 자신으로 감소된다. 아래의 함수를 선택해 변수 노드 n에 대한 0 차수 신뢰도를 측정할 수 있다:
Figure 112009010129174-pct00139
위의 식은 하드 밸류
Figure 112009010129174-pct00140
의 신뢰도를 가리킨다.
체크 노드 m에 대해, 간단히 아래와 같은 함수를 선택할 수 있을 것이다:
Figure 112009010129174-pct00141
패리터 채크가 만족될 때 (
Figure 112009010129174-pct00142
), 그것이 만족되지 않을 때보다 디코딩이 더 안정적이 될 것임을 알 수 있다.
- 차수 1 신뢰도 측정치들:
변수 노드 및 체크 노드에 대한 프로세싱은 다시 한번 상이하다. 한 변수 노드에 대해, 아래의 함수들 중 하나가 차수 1 신뢰도 측정치로서 선택될 수 있다:
Figure 112009010129174-pct00143
Figure 112009010129174-pct00144
식 (27)은 패리티 체크가 검증된 변수 노드 n에 연결된 체크 노드들 m의 개수를 나타낸다.
식 (28)은 코드의 불규칙성 (달리 말해 변수 노드들이 서로 다른 등급들 (degrees)을 가질 가능성)을 고려하여 검증된 패리티 체크들과 검증되지 않은 패리티 체크들의 개요(summary)를 도출한 것이다.
식 (27') 및 (28')는 포지티브 측정치들 (27) 및 (28)에 대응하는 네거티브 측정치들이다.
인접 체크 노드들로부터 수신된 신뢰도 정보의 감축에 기반하고 있기 때문에, (29)에 나타낸 신뢰도 측정치는 낮춰잡은 것이다.
체크 노드 m에 대해서, 차수 1 신뢰도 측정치를 위한 이하의 함수들 중 하나를 선택할 수도 있다:
Figure 112009010129174-pct00145
Figure 112009010129174-pct00146
식 (30)은 체크 m이 연결되는 변수들의 신뢰도들 (사후 정보) 중 최소치를 가리킨다.
식 (31)은 유사한 기준을 나타내나 외부 정보에 적용되는 것이다. 이것은 식 (29)와 짝을 이룬다는 것을 알아야 한다.
식 (32)는 정보의 두 아이템들의 데카르트 곱을 나타낸 것으로, 궁극적으로 그들을 함께 고려하는데, 첫째 것은 패리티 체크에 대한 검증에 적용되고, 두 번째는 (30)에서와 같은 사후 정보에 적용된다.
- 차수 2 신뢰도 측정치들:
이하의 함수는 변수 노드 n에 대해 선택될 수 있다:
Figure 112009010129174-pct00147
식 (33)은 네거티브 디코딩 신뢰도 측정치를 나타낸다; 이것은 패리티 조건 이 충족되지 않는 변수 n과 관련된 체크들의 개수를 가리키는 것으로 변수 n은 그러한 체크들에 인접한 모든 변수들 가운데 신뢰도가 가장 낮은 것이 된다. 사실, 측정치 (33)은 측정치들 (27') 및 (30)의 합성버전이라고 간주될 수도 있다.
이하의 함수들 중 하나가 체크 노드 m에 대해 선택될 수 있을 것이다:
Figure 112009010129174-pct00148
여기서,
Figure 112009010129174-pct00149
이면 c=0 이고,
Figure 112009010129174-pct00150
이면
Figure 112009010129174-pct00151
이고,
Figure 112009010129174-pct00152
는 이분 그래프의 체크 노드들의 최대 등급 (degree), 즉
Figure 112009010129174-pct00153
이다.
식 (34)는 m 자신을 배제하고 m의 차수 2인 이웃에서 만족되지 않는 패리티 체크들의 개수를 제공한다. 이것은 디코딩 신뢰성의 네거티브 측정치를 나타낸다. 식 (34)의 두 번째 등식은 관련 이웃에 길이 4의 사이클들이 존재하지 않는 경우에만 만족된다는 것을 알아야 한다. 실제로, 태너 그래프들이 최장 가능 사이클들을 가지는 코드들이 사용되므로, 상기 등식은 보통 실증된다.
식 (35)는 m 자신을 배제하고 적어도 하나의 만족되지 않은 체크와 연결된, m에 인접한 변수들의 개수를 가리킨다. 결국, 그것은 디코딩 신뢰도의 네거티브 측정치를 나타낸다. 합 (sum) 부호 하에서의 항들이 0 또는 1이기 때문에, 측정치는 0과
Figure 112009010129174-pct00154
사이에 있게 된다.
식 (35)는 노드 m에 대해 패리티 체크가 검증되는지 안되는지 여부에 따른 차이를 두지 않는다. 이 정보를 고려하기 위해, 체크 m의 검증에 좌우되는 값을 가진 바이어스 (bias) c가 식 (36)에 도입되었다. 상술한 바이어스 값들
Figure 112009010129174-pct00155
에 있어서, 신뢰도 측정치는 검증된 체크에 대해 0과
Figure 112009010129174-pct00156
사이의 값에, 검증된 체크에 대해
Figure 112009010129174-pct00157
Figure 112009010129174-pct00158
사이의 값에 해당한다. 이것은 위에서 규정된 맥락에서 볼 때 네거티브 신뢰도 측정치이다, 즉
Figure 112009010129174-pct00159
의 값이 낮을수록, 체크 m의 값의 신뢰도가 더 높다는 것에 주목해야 한다. 따라서, (35)의 값과 관계없이, 검증된 체크의 신뢰도는 검증되지 않은 체크의 신뢰도보다 언제나 높다.
위에서 정의된 함수들 중 일부, 특히 함수들 (34) 내지 (36)은 정수 값들이라는 것을 알아야 한다. 따라서, 이들은 마이크로프로세서 구성에 특히 적합하다.
중요한 것은, 위에서 정의된 함수들 중 일부, 특히 함수들 (34) 내지 (36)이 오직 하드 밸류들
Figure 112009010129174-pct00160
만을 사용하는 것이다.
Figure 112009010129174-pct00161
이기 때문에, 잡음 파워
Figure 112009010129174-pct00162
의 값은 그들 함수들의 계산시에는 나타나지 않는다는 것을 알 수 있다.
본 발명의 기본 개념은 그래프의 노드들을 그들의 신뢰도 함수로서 분류하고, 직렬 또는 혼합 타입 방식을 사용하여, 가장 신뢰성있는 노드나 노드들의 그룹부터 시작하는 메시지 전달에 의한 디코딩을 수행한다는 것이다. 이것은 수렴율 및 비트 에러율 (BER) 측면들 모두에서 디코딩 성능을 크게 향상시킨다.
가장 신뢰성 있는 노드들에 의해 전송되는 메시지들이, 인접한 노드들을 디코딩하는데 가장 효과적으로 기여할 수 있다는 것이 이해될 것이다. 따라서, 하나의 이터레이션에서 다음 이터레이션으로, 그리고 노드에서 노드로 빠른 신뢰도 전파가 있게 되고, 이와 상관하여, 이터레이션이 진행하면서 외부 정보의 절대 값의 상당한 증가가 있게 된다.
도 7은 본 발명에 따른 디코딩 원리를 보인 다이어그램이다. 나중에 상세히 설명할 초기화 단계(710) 후에, 이터레이션 루프가 시작된다. 그래프의 체크 노드들이나 변수 노드들이 그들의 신뢰도 등급에 따라 분류된다(720 단계). 여기서는, 체크 노드들이 분류되는 것으로 전제할 것인데, 변수 노드들의 분류는 대칭적 단계들이 되기 때문이다.
직렬 프로세싱 또는 혼합형 프로세싱이 행해진다(730 단계). 직렬 타입 프로세싱에 있어서, 체크 노드들이 순차적으로 처리되고, 각각의 체크 노드에 인접한 변수 노드들 역시 순차적으로 처리되는데, 가장 신뢰성있는 체크 노드부터 시작하여 신뢰도가 감소하는 방향으로 진행해 나간다. 혼합형 타입 프로세싱에 있어서, 체크 노드들은 신뢰도 그룹들로 분류되었을 것인데, 제1그룹은 가장 신뢰성있는 노드들로 이뤄지고, 제2그룹은 그보다 덜 신뢰성있는 노드들로 이뤄지는 등으로 그룹들이 형성된다. 제1그룹의 변수 노드들 및 체크 노드들에 대해 병렬 프로세싱이 수행되고, 그리고 나서 다음 그룹의 변수 노드들과 체크 노드들에 대해 병렬 프로세싱이 행해지는 등, 더 이상의 그룹들이 존재하지 않을 때까지 그러한 처리가 행해진다. 740, 750, 760, 765, 767, 770, 775 단계들은 각자 도 2의 240, 250, 260, 265, 267, 270, 275에 해당하므로, 더 상세히 설명하지는 않을 것이다.
도 8은 직렬 스케줄링을 사용하는 본 발명의 일 실시예의 세부 사항을 보인 것이다.
메시지들
Figure 112009010129174-pct00163
Figure 112009010129174-pct00164
이 초기화된다(810 단계). 예를 들어, 각각의 변수 n 및 체크
Figure 112009010129174-pct00165
쌍에 있어서,
Figure 112009010129174-pct00166
Figure 112009010129174-pct00167
으로 초기화 된다. 마찬가지로, 각각의 체크 m 및 변수
Figure 112009010129174-pct00168
쌍에 대해,
Figure 112009010129174-pct00169
Figure 112009010129174-pct00170
로 초기화 된다.
그런 다음 신뢰도 측정치들
Figure 112012059586561-pct00171
을 이용해 신뢰도를 낮춤으로써 체크들이 소팅된다(820 단계). 즉, 포지티브 측정치에 대해, 체크들은
Figure 112012059586561-pct00172
이 되도록 소팅되고, 네거티브 측정치에 대해 그 반대의 순서로 소팅된다. 측정치가 포지티브인가 네거티브인가에 따라, 데카르트 곱 측정 (예를 들어 (32) 참조)에 대해 사전식 순서 (lexicographic order) 또는 역 사전식 순서가 사용된다. 체크 노드들의 카운터 역시 초기화 된다, j=0.
그런 다음 현재의 체크
Figure 112009010129174-pct00173
가 선택되고(825 단계), 변수들
Figure 112009010129174-pct00174
이 프로세싱 된다(830 단계), 즉
Figure 112009010129174-pct00175
이 산출된다.
그런 다음 835 단계가 현재의 체크 프로세싱 m을 수행한다, 즉
Figure 112009010129174-pct00176
에 대해
Figure 112009010129174-pct00177
가 산출된다.
한 변형 실시예에 따르면, 830 및 835 단계들은 거꾸로 된다.
체크 노드 카운터가 증가되고(837 단계) 그들이 모두 프로세싱 되었는지를 알기 위한 테스트가 수행된다(839 단계). 모두 프로세싱 되지 않았으면, 프로세싱은 다시 825 단계의 루프로 돌아가고, 처리되었으면 각각 사후 정보의 계산, 하드 밸류들에 대한 결정 및 패리티 체크들의 검증을 가리키는 단계들(840 내지 860 단계들)을 계속한다. 840, 850, 860, 865, 867, 870, 875 단계들은 각각 도 2의 240, 250, 260, 265, 270, 275 단계들과 동일하다.
다른 대안적 실시예에따르면, 체크들 대신 변수들이 소팅된다. 내부 루프 ( 825부터 839)가 한 번에 한 변수에 전과 같은 방식으로 적용되며, 현재의 변수는 그와 인접한 체크들의 프로세싱 전이나 후에 처리될 수 있다.
도 9는 혼합형 스케줄링을 이용하는 본 발명의 일 실시예를 보인 것이다.
910 단계에서, 도 8의 810 단계에서처럼 메시지들
Figure 112009010129174-pct00178
Figure 112009010129174-pct00179
이 초기화된다.
920 단계에서, 모든 체크 노드들 또는 변수 노드들은, 각각이 서로 다른 신뢰 등급에 대응하는 그룹들로 분할된다. 예를 들어, 한 신뢰 등급은 신뢰도 측정치의 구간 (interval)을 사용해 정의된다. 이 실시예는 측정치가 정수 값들을 사용할 때 특히 유리하다. 다음으로, 어떤 정수 값이나 복수의 연속적인 정수 값들에 하나의 영역 (범위)을 할당하고, 한 테이블 안에 노드들의 인덱스들을 그에 대응하는 등급들의 함수로서 저장할 수 있다. 순차적으로 서로 다른 신뢰도 등급들
Figure 112009010129174-pct00180
을 나타내는데, 여기서
Figure 112009010129174-pct00181
는 가장 높은 신뢰도를 가진 등급이고,
Figure 112009010129174-pct00182
는 가장 낮은 신뢰도를 가진 등급이며,
Figure 112009010129174-pct00183
는 대응되는 노드 그룹들이다. 아래에서는 체크 노드들에 대해 분할이 이뤄졌다고 전제한다.
신뢰 등급들에 대한 카운터 역시 초기화한다, j=0.
925 단계에서, 현재의 신뢰도 등급
Figure 112009010129174-pct00184
에 대응하는 노드들의 그룹, 즉
Figure 112009010129174-pct00185
를 선택한다.
930 단계에서, 변수들
Figure 112009010129174-pct00186
이 병렬로 처리된다, 즉 메시지들
Figure 112009010129174-pct00187
,
Figure 112009010129174-pct00188
이 산출된다.
935 단계에서, 체크들
Figure 112012059586561-pct00189
이 병렬로 처리된다, 즉 메시지들
Figure 112012059586561-pct00190
이 산출된다.
하나의 변형 실시예에 따르면, 930 및 935 단계들은 거꾸로 된다.
937 단계에서, 등급 카운터가 증가되고, 939 단계에서 이들이 모두 프로세싱 되었는지를 판단하도록 등급 카운터가 테스트 된다. 모두 프로세싱 되지 않았다면, 프로세싱은 925 단계의 루프로 다시 돌아가고, 모두 처리되었으면 사후 정보의 산출, 하드 밸류들에 대한 결정 및 패리티 체크들의 검증을 각각 나타내는 940 내지 960 단계들을 계속한다. 940, 950, 960, 965, 970, 975 단계들은 도 2의 240, 250, 260, 265, 267, 270, 275 단계들과 동일하다.
도 10은 정수값들을 가진 신뢰도 측정치에 기초하는 혼합형 스케줄링을 이용하는 LDPC 코드의 디코딩에 대한 본 발명의 특정 어플리케이션을 보인 것이다. 이 케이스에서, (36)에 정의된 체크 노드들에 대한 네거티브 측정을 선택한다.
1010 단계에서, 소프트 사후 값들
Figure 112009010129174-pct00191
이 해당 관측값들
Figure 112009010129174-pct00192
로 초기화되고,
Figure 112009010129174-pct00193
은 0으로 초기화된다.
이터레이션 카운터 역시 0으로 초기화한다.
1015 단계에서, 하드 밸류들, 즉
Figure 112009010129174-pct00194
에 대한 결정이 이뤄진다.
1020 단계는 값
Figure 112009010129174-pct00195
을 산출하는데, 여기서
Figure 112009010129174-pct00196
값들은 패리티 체 크들
Figure 112009010129174-pct00197
이다.
1023 단계는
Figure 112009010129174-pct00198
인지를 테스트한다, 즉 모든 패리티 체크들이 검증되는지를 테스트한다. 모든 패리티 체크들이 검증되면, 코드워드를 제공함으로써 1025 단계에서 디코딩 알고리즘을 빠져 나온다. 모든 패리티 체크들이 검증되지 않으면, 1027 단계에서 측정치 (36)를 사용해 체크 노드들의 신뢰도 측정치들을 산출함으로써 프로세싱이 계속된다. 이 측정치가
Figure 112009010129174-pct00199
가운데 정수 값들에 해당하고,
Figure 112009010129174-pct00200
는 체크 노드들 중 최대 등급이라는 것을 기억해야 한다. 이 케이스에서, 정수 값으로서 신뢰등급, 즉
Figure 112009010129174-pct00201
을 할당하고 여기서
Figure 112009010129174-pct00202
이고, 여기서 등급
Figure 112009010129174-pct00203
는 측정치 값
Figure 112009010129174-pct00204
에 대응한다.
1029 단계에서, 현재의 신뢰 등급
Figure 112009010129174-pct00205
에 해당하는 노드들의 그룹, 즉
Figure 112009010129174-pct00206
이 선택된다.
1030 단계에서, 변수들
Figure 112009010129174-pct00207
의 프로세싱은 병렬로 수행된다, 즉 메시지들
Figure 112009010129174-pct00208
이 산출된다.
체크들
Figure 112009010129174-pct00209
이 병렬로 프로세싱된다(1035 단계), 즉 변수들
Figure 112009010129174-pct00210
로 보내질 메시지들, 구체적으로 도면의 이 케이스에서 지시된 것처럼 SPA 프로세싱에 대해
Figure 112009010129174-pct00211
가, 간략화된 Min-Sum 타입 프로세싱에 대해서는
Figure 112009010129174-pct00212
가 산출된다. 그런 다음
Figure 112009010129174-pct00213
을 사용해 사후 정보가 산출된다(1040 단계). 합산에 사용되는 체크들
Figure 112009010129174-pct00214
의 일부는 그룹
Figure 112009010129174-pct00215
의 일부를 형성하지 않는다는 것과, 그에 따라 그 체크들로부터 파생된 메시지들
Figure 112009010129174-pct00216
은 1035 단계에서 재산출되지 않았다는 것에 주목해야 할 것이다. 또, 변수 n이 여러 개의 체크들
Figure 112009010129174-pct00217
에 인접해 있으므로, H(n)의 체크들이 프로세싱되면서
Figure 112009010129174-pct00218
의 산출이 수차례 행해질 것이다. 1040 단계에서 합산이 수차례 계산되는 것과, 변경되지 않은 어떤 메시지들
Figure 112009010129174-pct00219
이 매회 재산출되는 것을 피하기 위해, 1035 및 1040 단계들은 아래의 연산을 포함하는 하나의 단계로 유리하게 대체될 수 있다:
Figure 112009010129174-pct00220
- 구 메시지를 뺀다, 즉:
Figure 112009010129174-pct00221
- 새 메시지를 산출한다, 즉:
Figure 112009010129174-pct00222
- 새 메시지를 더하여 사후 정보를 업데이트한다:
Figure 112009010129174-pct00223
이렇게 하여, 체크들
Figure 112009010129174-pct00224
에 의해 변수 n으로 전송되는 새 메시지들이 산출됨에 따라 사후 정보
Figure 112009010129174-pct00225
가 업데이트된다. 이것이 사후 정보 산출에 수행되는 연산의 회수를 크게 감소시킬 수 있다.
다음 1043 단계는 신뢰 등급 카운터를 증가시키고, 그런 다음 1045 단계에서 모든 등급들이 프로세싱되었는지를 테스트하도록 한다. 모든 등급들이 프로세싱되지 않았다면, 다음 신뢰 등급을 프로세싱하기 위해 1029 단계가 반복된다. 모든 등급들이 프로세싱되었으면, 1050 단계에서 이터레이션 카운터가 증가된다. 1053 단계는 종료 기준이 만족되는지, 즉 이터레이션의 최대 회수에 도달했는지를 테스트한다. 종료 기준이 만족되면, 1055 단계에서 루프가 종료되어, 디코딩이 실패했다고 결론짓는다. 종료 기준이 만족되지 않으면, 프로세싱은 새 이터레이션을 위해 1015 단계로 다시 루프를 돈다.
도 10에서, 하드 벨류들에 대한 결정 및, 패리티 체크 검증을 위한 단계가 신뢰도 산출 및 노드 프로세싱 단계들에 앞선다는 것을 알 수 있다. 이것은 여기서 이용된 신뢰도 측정치 (식 (36))가 하드 결정들 (hard decisions) cm을 요구하고 그 결과 그들이 미리 산출될 필요가 있다는 사실에 기인한다.
도 10에 도시된 알고리즘은 이 분야의 최신 기술에 따른 SPA나 Min-Sum 알고리즘보다 단지 약간 더 복잡할 뿐이다. 한편, 이웃 신뢰도에 따른 스케줄링은 수렴성 (convergence)을 가속화하여, 동일한 신호 대 잡음비 (SNR)에 있어 보다 낮은 비트 에러율 (BER)에 도달하게 한다. 이와 달리, 동일한 세트 밸류 (set value) 에러율에 있어, 본 발명에 따른 디코딩 방법은 보다 낮은 코딩 이득을 가진 코드들을 사용할 수 있다.
도 11은 넓은 범위의 신호 대 잡음비들에 대해, Min-Sum-FV로 표시되고 이웃 신뢰도에 따른 스케줄링을 사용하는 Min-Sum 알고리즘과, 일반적인 Min-Sum 및 SPA 알고리즘들의 성능들을 비트 에러율 (BER) 관점에서 비교한 것이다. 사용된 코드들은 불규칙성 LDPC 코드들 [1008,2016] 및 [4032,8064]이고, 그에 따라 1/2의 효율성을 가진다. 이터레이션 회수는 상기 세 알고리즘들에 있어 200이 된다.
본 발명에 따른 Min-Sum-FV 알고리즘은 일반 SPA 알고리즘을 능가하면서도 그 복잡도는 살짝 더 낮다는 것을 알 수 있다.
도 7 내지 10에서 보인 본 발명에 따른 디코딩 방법에서, 이웃 신뢰도에 따른 스케줄링이 디코딩 듀레이션 전체에 걸쳐 이용된다고 전제된다. 한 변형예에 따르면, 이러한 스케줄링은 관측치들에서 잡음을 제거하고, 그런 다음에는 일반 프로세싱으로 전환하기 위해 최초 이터레이션들 도중에만 적용될 수가 있다. 전환 기준은 이터레이션들의 회수 Iterf일 수 있고, 아니면 바람직하게, 외부 정보의 절대 값과 기준 문턱치와의 비교에 기초하는 것일 수 있다. 예를 들어, 반복 디코딩시 아래 식이 만족되자 마자, Min-Sum이나 일반 SPA 프로세싱으로 리턴하는 것이 가능할 것이다:
Figure 112009010129174-pct00226
여기서 Tf는 최소 신뢰도 문턱치를 나타낸다. 이 변형예는 디코딩된 값들이 충분히 신뢰성이 있게 되고 수렴도가 확실하게 되고 나서 곧 노드들을 소팅 및 분류하는 것을 막는다.
본 발명은 이분 그래프로 표현될 수 있는 에러 정정 코드들, 특히 LDPC 코드들이나 터보코드들의 디코딩에 적용될 수 있다. 그것은 데이터 레코딩이나 통신 분야 내에서, 특히 IEEE 802.3a (이더넷 10Gbits/s), DVB-S2 (위성 비디오 방송), IEEE 802.16 (WiMAX) 규격에 따르는 전기 통신 시스템등과 같이 이미 LDPC 코드들을 사용하거나, 가령 IEEE 802.11 (WLAN) 및 IEEE 802.20 (모바일 광역 무선 액세스, Mobile Broadband Wireless Access) 규격들을 만족하는 시스템들 같이 그러한 코드들을 사용할 수 있는 통신 시스템들에 사용될 수 있다.

Claims (17)

  1. 복수의 변수 (variable) 노드들 및 복수의 체크 (check) 노드들을 포함하는 이분 (bipartite) 그래프에서 디스플레이될 수 있는 에러 정정 코드의 디코딩을 위한, 메시지 전달 (message passing)에 따른 반복적 (iterative) 방법에 있어서,
    복수의 디코딩 이터레이션들 (iterations) 중 각각의 이터레이션마다,
    - 변수 노드들 또는 체크 노드들이 이 노드들의 이웃들
    Figure 112009010129174-pct00227
    에서 입수가능한 디코딩 정보의 해당 신뢰도들의 함수로서 분류되는데 (720), 높은 신뢰도를 가진 노드가 낮은 신뢰도를 가진 노드 앞에 분류되고;
    - 상기 분류된 각 노드가 상기 분류에 의해 규정된 순서에 따라 인접하는 한 노드로 적어도 한 메시지
    Figure 112009010129174-pct00228
    를 전달함 (725)을 특징으로 하는 디코딩 방법.
  2. 제1항에 있어서, 분류될 각 노드에 대해, 상기 분류는 상기 이분 그래프의 상기 각 노드에서 소정 거리 (d)보다 멀지 않은 곳에 있는 노드들에 의해 수신되거나 전송되거나 존재하는 정보의 신뢰도 측정치
    Figure 112009010129174-pct00229
    의 산출, 및 그렇게 얻어진 측정치의 값들에 대한 소팅 (sorting)을 포함함을 특징으로 하는 디코딩 방법.
  3. 제2항에 있어서, 상기 복수 개의 각 이터레이션에 있어서 상기 분류된 노드들은 상기 분류에 의해 규정된 순서에 따라 순차적으로 프로세싱되고, 분류된 각각의 노드 (825)에 대해 그 노드에 인접한 노드들로 보내지는 메시지들이 산출되고 (835), 상기 인접한 각각의 노드에 대해 상기 인접한 노드와 인접하는 노드들로의 메시지들이 산출 (830)됨을 특징으로 하는 디코딩 방법.
  4. 제1항에 있어서, 분류될 각 노드에 대해, 상기 분류는 상기 이분 그래프의 상기 각 노드에서 소정 거리 (d)보다 멀지 않은 곳에 위치한 노드들에 의해 수신되거나 전송되거나 존재하는 정보의 신뢰도 측정치
    Figure 112009010129174-pct00230
    의 산출을 포함하고, 상기 측정치 값들의 구간별로 노드들이 그룹화됨을 특징으로 하는 디코딩 방법.
  5. 제4항에 있어서, 상기 신뢰도 측정치는 정수 값들을 사용하고, 상기 각 정수 값에 대해, 상기 신뢰도 측정치가 상기 각 정수 값에 해당하는 노드들의 인덱스들이 그와 연관된 메모리 영역 안에 저장됨을 특징으로 하는 디코딩 방법.
  6. 제4항 또는 제5항에 있어서, 상기 복수개의 각 이터레이션에 있어서 노드 그룹들은 상기 분류에 의해 규정된 순서에 따라 순차적으로 프로세싱되고, 각 노드 그룹
    Figure 112009010129174-pct00231
    에 대해 그 그룹 내 노드들과 인접한 노드들로의 메시지들이 산출되고 (935), 상기 인접한 노드들 각각에 대해 상기 인접한 노드들과 인접하는 노드들 각자들로의 메시지들 역시 산출됨 (930)을 특징으로 하는 디코딩 방법.
  7. 제1항에 있어서, 상기 이분 그래프의 각 변수 노드에 대해, 상기 복수의 각 이터레이션은 상기 각 변수 노드에 이미 존재하는 사전 정보
    Figure 112014000050004-pct00232
    의 함수인 사후 정보
    Figure 112014000050004-pct00233
    , 및 상기 각 변수 노드에 의해 인접한 체크 노드들로부터 수신한 메시지들
    Figure 112014000050004-pct00234
    을 산출하는 단계 (740, 840, 940) 역시 포함함을 특징으로 하는 디코딩 방법.
  8. 제7항에 있어서, 상기 사후 정보 산출 단계 뒤에 상기 변수의 하드 밸류 (hard value)
    Figure 112009010129174-pct00235
    에 대한 결정 단계 (750, 850, 950)가 이어짐을 특징으로 하는 디코딩 방법.
  9. 제8항에 있어서, 그 다음 단계 (760, 860, 960)는 상기와 같이 얻어진 변수들의 하드 밸류들이 상기 그래프 내 모든 체크 노드들과 관련된 패리티 체크들을 만족하는지를 테스트하고, 만족하는 경우 상기 하드 밸류들로 이뤄진 워드가 디코 딩된 워드로서 제공됨을 특징으로 하는 디코딩 방법.
  10. 제1항에 있어서, 상기 분류는 소정 회수의 디코딩 이터레이션들 (Iterf) 뒤에 중단되고, 그런 다음 상기 디코딩 방법은 상기 분류가 중단된 이후 디코딩 이터레이션들을 계속함을 특징으로 하는 디코딩 방법.
  11. 제7항에 있어서, 상기 변수들의 사후 값들 및 사전 값들 사이의 차의 절대값의 최소치가 소정 문턱치 (Tf)보다 큰 경우 상기 분류가 중단되고, 그러면 상기 디코딩 방법은 상기 분류가 중단된 이후 디코딩 이터레이션들을 계속함을 특징으로 하는 디코딩 방법.
  12. 제1항에 있어서, 상기 에러 정정 코드는 터보코드 (turbocode)임을 특징으로 하는 디코딩 방법.
  13. 제1항에 있어서, 상기 에러 정정 코드는 N 개의 변수 노드들과 M=N-K 개의 체크 노드들이 포함된 이분 그래프에 의해 표현되는 LDPC 코드 (K, N)임을 특징으로 하는 디코딩 방법.
  14. 제13항에 있어서, 인덱스
    Figure 112009010129174-pct00236
    을 가진 체크 노드로부터 인덱스
    Figure 112009010129174-pct00237
    을 가진 변수 노드로의
    Figure 112009010129174-pct00238
    메시지가 다음과 같이 산출되고,
    Figure 112009010129174-pct00239
    여기서
    Figure 112009010129174-pct00240
    는 인덱스 n'를 가진 변수 노드로부터 인덱스 m을 가진 체크 노드로의 메시지를 나타내고, H(m)은 인덱스 m을 가진 상기 체크 노드와 인접하는 모든 변수 노드들을 나타내고, x가 포지티브 (positive)이면 sgn(x)=1이고, 그외에는 sgn(x)=-1이고,
    Figure 112009010129174-pct00241
    임을 특징으로 하는 디코딩 방법.
  15. 제13항에 있어서, 인덱스
    Figure 112009010129174-pct00242
    을 가진 체크 노드로부터 인덱스
    Figure 112009010129174-pct00243
    을 가진 변수 노드로의
    Figure 112009010129174-pct00244
    메시지가 다음과 같이 산출되고,
    Figure 112009010129174-pct00245
    여기서
    Figure 112009010129174-pct00246
    는 인덱스 n'를 가진 변수 노드로부터 인덱스 m을 가진 체크 노드로의 메시지를 나타내고, H(m)은 인덱스 m을 가진 상기 체크 노드와 인접하는 모든 변수 노드들을 나타내고, x가 포지티브 (positive)이면 sgn(x)=1이고, 그외에는 sgn(x)=-1임을 특징으로 하는 디코딩 방법.
  16. 제5항에 있어서, 상기 분류가 체크 노드들에 적용되고, 상기 소정 거리는 2이고, 이때 인덱스 m을 가진 체크 노드의 신뢰도 측정치는 다음과 같이 산출되고,
    Figure 112014000050004-pct00247
    여기서 H(m)은 인덱스 m을 가진 체크 노드에 인접하는 변수 노드들의 집합을 나타내고, H(n)은 인덱스 n을 가진 변수 노드에 인접하는 체크 노드들의 집합을 나타내고, Card(.)는 한 집합의 기수 (cardinal)이며,
    Figure 112014000050004-pct00248
    가 상기 이분 그래프 내 체크 노드들의 최대 등급일 때
    Figure 112014000050004-pct00249
    이면
    Figure 112014000050004-pct00250
    이고,
    Figure 112014000050004-pct00251
    이면
    Figure 112014000050004-pct00252
    이고,
    Figure 112014000050004-pct00253
    /
    Figure 112014000050004-pct00254
    은 각각 인덱스 m을 가진 체크 노드에 대해 패리티 체크가 만족되고 /만족되지 않는다는 것을 의미함을 특징으로 하는 디코딩 방법.
  17. 컴퓨터에 의해 실행될 때, 제1항에 따른 디코딩 방법의 단계들을 구현하도록 구성된 소프트웨어 수단을 구비함을 특징으로 하는 컴퓨터 프로그램.
KR1020097003351A 2006-07-27 2007-07-25 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법 KR101431162B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0653148A FR2904499B1 (fr) 2006-07-27 2006-07-27 Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
FR06/53148 2006-07-27
PCT/EP2007/057644 WO2008012318A1 (fr) 2006-07-27 2007-07-25 Procédé de décodage à passage de messages avec ordonnancement selon une fiabilité de voisinage.

Publications (2)

Publication Number Publication Date
KR20090048465A KR20090048465A (ko) 2009-05-13
KR101431162B1 true KR101431162B1 (ko) 2014-08-18

Family

ID=37989156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097003351A KR101431162B1 (ko) 2006-07-27 2007-07-25 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법

Country Status (10)

Country Link
US (1) US8245115B2 (ko)
EP (1) EP2047605B1 (ko)
JP (1) JP5199255B2 (ko)
KR (1) KR101431162B1 (ko)
CN (1) CN101496292B (ko)
AT (1) ATE454750T1 (ko)
DE (1) DE602007004224D1 (ko)
ES (1) ES2339295T3 (ko)
FR (1) FR2904499B1 (ko)
WO (1) WO2008012318A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219878B1 (en) 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8219873B1 (en) * 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8935601B1 (en) 2008-12-03 2015-01-13 Marvell International Ltd. Post-processing methodologies in decoding LDPC codes
CN102859885B (zh) * 2010-04-09 2015-10-07 Sk海尼克斯存储技术公司 Ldpc选择性解码调度的实现
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
US9203432B2 (en) * 2012-08-28 2015-12-01 Marvell World Trade Ltd. Symbol flipping decoders of non-binary low-density parity check (LDPC) codes
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US20140019879A1 (en) * 2013-02-01 2014-01-16 Concurix Corporation Dynamic Visualization of Message Passing Computation
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
FR3003711B1 (fr) 2013-03-21 2015-04-17 Commissariat Energie Atomique Systeme de communication cooperatif a strategie de retransmission de paquets adaptive
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
WO2015071777A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Software component recommendation based on multiple trace runs
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
KR102504550B1 (ko) * 2015-12-28 2023-02-28 삼성전자주식회사 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법
CN106936444B (zh) * 2015-12-29 2020-09-01 北京航空航天大学 一种集合译码方法和集合译码器
EP3242405B1 (en) * 2016-05-02 2024-02-21 Université de Bretagne Sud Non-binary check node processing with pre-sorted input
KR102626162B1 (ko) * 2016-06-14 2024-01-18 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
KR20180009558A (ko) 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
US10530392B2 (en) * 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
FR3072851B1 (fr) * 2017-10-23 2019-11-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'allocation de ressources de transmission a apprentissage par renforcement
CN110569974B (zh) * 2018-06-06 2021-08-24 天津大学 可包含人造碱基的dna存储分层表示与交织编码方法
CN109586844B (zh) * 2018-10-30 2020-08-04 北京航空航天大学 一种基于集合的非均等保护译码方法及系统
KR20230019636A (ko) * 2021-08-02 2023-02-09 삼성전자주식회사 통신 및 방송 시스템에서 데이터 복호화 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268204A1 (en) 2004-05-31 2005-12-01 Kabushiki Kaisha Toshiba Decoding apparatus and decoding circuit
JP2006279396A (ja) * 2005-03-29 2006-10-12 Kitakyushu Foundation For The Advancement Of Industry Science & Technology Ldpc符号検出装置及びldpc符号検出方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450535A (en) * 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
FR2753026B1 (fr) * 1996-08-28 1998-11-13 Pyndiah Ramesh Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede
US7085969B2 (en) * 2001-08-27 2006-08-01 Industrial Technology Research Institute Encoding and decoding apparatus and method
US6704376B2 (en) * 2002-01-23 2004-03-09 Bae Systems Information And Electronic Systems Integration Inc. Power and confidence ordered low complexity soft turbomud with voting system
US7020829B2 (en) * 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
EP1414158A1 (en) * 2002-10-24 2004-04-28 STMicroelectronics N.V. Method of decoding an incident turbo-code encoded signal in a receiver, and corresponding receiver, in particular for mobile radio systems
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
JP2005210238A (ja) * 2004-01-21 2005-08-04 Nec Corp ターボ復号装置及びその方法並びにその動作プログラム
JP4296949B2 (ja) * 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
US7251769B2 (en) * 2004-03-17 2007-07-31 Lucent Technologies Inc. Methods and apparatus for communication using generalized low density parity check codes
JP3891186B2 (ja) * 2004-03-22 2007-03-14 住友電気工業株式会社 復号装置および前処理装置
JP3875693B2 (ja) * 2004-03-24 2007-01-31 株式会社東芝 Lpc符号を用いた符号化ビットのマッピング方法及び送信装置
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
US20060195765A1 (en) * 2005-02-28 2006-08-31 Texas Instruments Incorporated Accelerating convergence in an iterative decoder
KR100943623B1 (ko) * 2005-09-30 2010-02-24 삼성전자주식회사 저밀도 패러티 검사 부호의 천공기법
EP2025062A1 (en) * 2006-04-28 2009-02-18 Intel Corporation Multi-theshold message passing decoding of low density parity check codes using the min-sum principle
KR100981501B1 (ko) * 2006-11-06 2010-09-10 연세대학교 산학협력단 통신 시스템에서 신호 송신 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268204A1 (en) 2004-05-31 2005-12-01 Kabushiki Kaisha Toshiba Decoding apparatus and decoding circuit
JP2006279396A (ja) * 2005-03-29 2006-10-12 Kitakyushu Foundation For The Advancement Of Industry Science & Technology Ldpc符号検出装置及びldpc符号検出方法

Also Published As

Publication number Publication date
US8245115B2 (en) 2012-08-14
WO2008012318A1 (fr) 2008-01-31
ES2339295T3 (es) 2010-05-18
CN101496292B (zh) 2014-02-19
KR20090048465A (ko) 2009-05-13
EP2047605A1 (fr) 2009-04-15
ATE454750T1 (de) 2010-01-15
US20090313525A1 (en) 2009-12-17
DE602007004224D1 (de) 2010-02-25
FR2904499A1 (fr) 2008-02-01
FR2904499B1 (fr) 2009-01-09
EP2047605B1 (fr) 2010-01-06
CN101496292A (zh) 2009-07-29
JP2009545220A (ja) 2009-12-17
JP5199255B2 (ja) 2013-05-15

Similar Documents

Publication Publication Date Title
KR101431162B1 (ko) 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법
US8209579B2 (en) Generalized multi-threshold decoder for low-density parity check codes
Angarita et al. Reduced-complexity min-sum algorithm for decoding LDPC codes with low error-floor
Trifonov et al. Generalized concatenated codes based on polar codes
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
CN107528597B (zh) 一种基于crc校验码的ldpc码后处理译码方法
JP2010511337A (ja) ガロア体gf(q)におけるldpc符号を復号する方法および機器
KR101718543B1 (ko) 개선된 비트 반전 알고리즘 기반의 저밀도 패리티 검사 부호를 위한 복호 방법, 장치 및 이를 위한 기록 매체
US20040243917A1 (en) Apparatus and method for decoding a low density parity check code in a communication system
US10742239B2 (en) Method for decoding a polar code with inversion of unreliable bits
KR20180028981A (ko) 비-2진 ldpc 코드 디코딩을 위한 신드롬 계산을 위한 기본 체크 노드 처리
US8201049B2 (en) Low density parity check (LDPC) decoder
US11177834B2 (en) Communication method and apparatus using polar codes
Yuan et al. Construction and decoding algorithms for polar codes based on 2× 2 non-binary kernels
US8468436B2 (en) Message-passing and forced convergence decoding method
Xiao et al. Error rate estimation of low-density parity-check codes decoded by quantized soft-decision iterative algorithms
US8543889B2 (en) Method of list decoding and relative decoder for LDPC codes
EP1536568A1 (en) Belief propagation decoder cancelling the exchange of unreliable messages
US9614548B1 (en) Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
KR101699749B1 (ko) 짧은 길이의 극 부호를 위한 향상된 bp 복호 방법 및 그 장치
Hashemi et al. A tree search approach for maximum-likelihood decoding of Reed-Muller codes
CN112491422A (zh) 基于高斯优化的比特翻转串行消除列表译码方法和系统
Zheng et al. Performance evaluation of irregular low-density parity-check codes at high signal-to-noise ratio
KR101630114B1 (ko) 최소합 알고리즘을 이용한 ldpc 복호화 장치 및 방법
Yatribi et al. Gradient-descent decoding of one-step majority-logic decodable codes

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
LAPS Lapse due to unpaid annual fee