KR101112121B1 - 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 - Google Patents

저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 Download PDF

Info

Publication number
KR101112121B1
KR101112121B1 KR1020090133678A KR20090133678A KR101112121B1 KR 101112121 B1 KR101112121 B1 KR 101112121B1 KR 1020090133678 A KR1020090133678 A KR 1020090133678A KR 20090133678 A KR20090133678 A KR 20090133678A KR 101112121 B1 KR101112121 B1 KR 101112121B1
Authority
KR
South Korea
Prior art keywords
variable
check
node
message
value
Prior art date
Application number
KR1020090133678A
Other languages
English (en)
Other versions
KR20110077189A (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 KR1020090133678A priority Critical patent/KR101112121B1/ko
Publication of KR20110077189A publication Critical patent/KR20110077189A/ko
Application granted granted Critical
Publication of KR101112121B1 publication Critical patent/KR101112121B1/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/1131Scheduling of bit node or check node processing
    • 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

저밀도 패리티 검사 부호를 위한, 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치가 개시된다. 본 발명에 따른 복호 방법은, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법으로서, 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중 기 설정된 경계 값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들을 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택하는 단계; 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 단계; 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 단계; 및 상기 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 단계를 포함하는 것을 특징으로 한다.
저밀도 패리티 검사 부호, LDPC, 복호

Description

저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치{Method for decoding using reduced complexity-and-latency dynamic scheduling scheme for low density parity check codes and apparatus thereof}
본 발명은 저밀도 패리티 검사 부호의 복호 방법 및 장치에 관한 것으로, 보다 상세하게는 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치에 관한 것이다.
차세대 이동 통신 시스템의 높은 데이터 전송률을 만족시키기 위해, 짧은 길이로 효과적인 성능을 갖는 부호화 방식과 빠른 수렴 속도의 복호화 방식에 대한 연구가 진행되고 있으며, 특히 저밀도 패리티 검사 부호(low density parity check codes: 이하, LDPC 부호라고 함)의 다양한 혹호 방식에 대한 연구가 활발히 이루어지고 있다.
LDPC 부호의 복호 방식은 기본적으로 체크 노드 또는 변수 노드가, 이와 이웃하는 소정 수의 이웃 노드로부터 메시지를 받아 업데이트 처리하고 갱신 처리된 메시지를 다시 해당 이웃 노드로 돌려보내는 과정의 반복을 통하여 오류를 정정해 나가면서 복호를 한다. 변수 노드 또는 체크 노드의 출력 메시지는 메시지가 보내질 선 즉, 에지(edge)에서 들어오는 메시지를 제외하고 그 노드로 들어오는 모든 메시지들의 함수이다.
이러한 메시지들의 업데이트 순서를 결정하는 것을 스케줄링(scheduling) 이라고 하며, 스케줄링 복호 방식은 고정된 순서에 따라 순차적으로 메시지들을 업데이트 하는 정적 스케줄링 복호 방식과, 동적으로 메시지들을 업데이트 하는 동적 스케줄링 복호 방식이 있다.
정적 스케줄링 복호 방식은 변수 노드 방향으로 업데이트하는지 체크 노드 방향으로 업데이트 하는지에 따라, SBP(Shuffled Belief Propagation)와 LBP (Layered Belief Propagation)로 구분된다. SBP와 LBP가 소개된 이후로 다양한 변형된 형태의 기법들이 연구되어 왔다.
최근 동적 스케줄링 기법을 사용한 더욱 효과적인 복호 방식이 소개되었다. RBP(Residual Belief Propagation)라 불리는 이 동적 스케줄링 복호 방식은 체크 노드에서 변수 노드로 전달되는 메시지의 업데이트 전후 값의 차이가 큰 순서대로 스케줄링 함으로써 복호 수렴 속도를 빠르게 하였다.
그러나 기존의 LDPC 부호를 위한 동적 스케줄링 복호 방식은 체크 노드에서 변수 노드로 전달되는 메시지의 업데이트 전후 값의 차이가 큰 순서대로 스케줄링을 수행하기 때문에, 복호 수렴 속도는 빨라졌지만, 체크 노드에서 변수 노드로 전달되는 메시지는 오직 하나의 체크 식에만 근거하기 때문에 신뢰도가 떨어지는 단점이 있다. 구체적으로 메시지를 잘못 판단할 가능성이 크기 때문에, 잘못 판단된 메시지가 먼저 업데이트 되어 새로운 에러가 발생하게 되는 문제점이 있다.
상기된 문제점을 고려하여 본 특허출원의 출원인은 특허출원 10-2008-0126676(2008.12.12)에서 소위 변수-체크 RBP(variable-to-check RBP, VCRBP) 방법과 노드-와이즈(node-wise) VCRBP(NVCRBP) 방법을 특허출원한 바 있다.
상기 VCRBP(variable-to-check RBP) 방법은 변수 노드에서 체크 노드로 전달되는 메시지의 업데이트 전후 값의 차이가 큰 순서대로 스케줄링 함으로써 작은 반복 횟수만으로 탁월한 성능 개선을 얻을 수 있다. 또한, RBP에서의 불필요한 연산 및 재정렬을 피함으로써 복잡도를 현저하게 줄일 수 있다.
이와 더불어 상기 NVCRBP(Node-wise VCRBP) 방법은 스케줄링 시에 메시지의 업데이트 전후의 값의 차이가 큰 엣지를 선택했던 VCRBP와 달리, 업데이트 전후의 메시지 값의 차가 큰 노드를 선택함으로써 VCRBP에 비해서도 복호 과정의 복잡도를 줄이고 성능은 유지할 수 있다.
그러나, 상기 NVCRBP를 포함한 모든 동적 스케줄링 복호 방식들은 정적 스케줄링 복호 방식에 비하여 업데이트 전후의 차이 값(레지듀얼 값)을 추가적으로 계산하고 정렬해야 함에 따른 복잡도와 대기시간의 증가가 불가피하다는 문제점이 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는 LDPC 부호를 위한 보다 복잡도와 대기시간이 낮은 동적 스케줄링 기법을 이용한 복호 방법 및 장치를 제공하는 데 있다.
또한, 본 발명이 이루고자 하는 기술적 과제는 복잡도와 대기시간을 줄이면서 기존의 동적 스케줄링 기법에 근접한 성능을 내는 복호 방법 및 장치를 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 태양에 따른, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법은, (a) 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중 기 설정된 경계 값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들을 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택하는 단계; (b) 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 단계; (c) 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 단계; 및 (d) 상기 (c) 단계에서 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 복호 방법은, 상기 선택된 변수-체크 메시지에 해당하는 제 1 변수 노드에서 상기 제 1 체크 노드로 전달되는 변수-체크 메시지들의 정렬 기준 값들을 기 설정된 값으로 초기화시키는 단계를 더 포함할 수 있다.
또한, 상기 (a) 내지 (d) 단계는 순차적으로 복수 회 반복 수행되며, 소정의 종료 조건을 만족하면 상기 반복 수행은 종료될 수 있다.
여기서, 상기 종료 조건은 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되는 조건일 수 있다.
또한, 상기 정렬 기준 값은 해당 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 차이일 수 있다.
또한, 상기 복호 방법은, 상기 (a) 단계 이전에, 체크 노드에서 변수 노드로 전달되는 모든 체크-변수 메시지들을 초기화하는 단계; 및 변수 노드에서 체크 노드로 전달되는 모든 변수-체크 메시지들을 초기화하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 태양에 따른, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법은, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법에서, (a) 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중에서 정렬 기준값의 부호가 특정 부호인 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지를 선택하는 단계; (b) 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 단계; (c) 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 단계; 및 (d) 상기 (c) 단계에서 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값과 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호가 반전되면 음수로, 반전되지 않으면 양수로 정의될 수 있다.
여기서, 상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값의 부호와 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호의 곱으로 정의될 수 있다.
또한, 상기 (a) 단계에서 상기 특정 부호는 음수일 수 있다.
또한, 상기 복호 방법은, 상기 선택된 변수-체크 메시지에 해당하는 제 1 변수 노드에서 상기 제 1 체크 노드로 전달되는 변수-체크 메시지들의 정렬 기준 값들을 기 설정된 값으로 초기화시키는 단계를 더 포함할 수 있다.
또한, 상기 (a) 내지 (d) 단계는 순차적으로 복수 회 반복 수행되며, 소정의 종료 조건을 만족하면 상기 반복 수행은 종료될 수 있다.
여기서, 상기 종료 조건은 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되는 조건일 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 태양에 따른, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 장치는, 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중 기 설정된 경계 값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들을 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택하는 처리부; 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 변수 노드 업데이트부; 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 체크 노드 업데이트부; 및 상기 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 기준값 산출부를 포함하는 것을 특징으로 하는 복호 장치.
여기서, 상기 정렬 기준 값은 해당 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 차이일 수 있다.
또한, 상기 복호 장치는 체크 노드에서 변수 노드로 전달되는 모든 체크-변수 메시지들을 초기화하고, 변수 노드에서 체크 노드로 전달되는 모든 변수-체크 메시지들을 초기화하는 초기화부를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 태양에 따른, 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 장치는, 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중에서 정렬 기준값의 부호가 특정 부호인 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지를 선택하는 처리부; 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 변수 노드 업데이트부; 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 체크 노드 업데이트부; 및 상기 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 기준값 산출부를 포함하는 것을 특징으로 한다.
여기서, 상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값과 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호가 반전되면 음수로, 반전되지 않으면 양수로 정의될 수 있다.
여기서, 상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값의 부호와 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호의 곱으로 정의될 수 있다.
또한, 상기 특정 부호는 음수일 수 있다.
상기된 본 발명에 의하면, LDPC 부호를 위한 보다 복잡도와 대기시간이 낮은 동적 스케줄링 기법을 이용한 복호 방법 및 장치를 제공하며, 또한, 복잡도와 대기시간을 줄이면서 기존의 동적 스케줄링 기법에 근접한 성능을 내는 복호 방법 및 장치를 제공한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
본 발명에 따른 복호 방법은 패리티 검사 행렬과 태너 그래프를 이용해서 수행되며, 패리티 검사 행렬은 태너 그래프로 표현될 수 있다. 행의 수만큼의 체크 노드들이 만들어지고, 열의 개수만큼의 변수 노드들이 만들어져 태너 그래프를 형성한다. 만일 행렬의
Figure 112009081497855-pat00001
원소가 1이면
Figure 112009081497855-pat00002
번째 변수 노드와
Figure 112009081497855-pat00003
번째 체크 노드가 에지로 연결되어 서로 이웃하는 노드들이 된다.
LDPC 부호의 반복 복호는 변수 노드와 체크 노드 간의 반복적인 메시지 전달을 통하여 이루어진다. 변수 노드
Figure 112009081497855-pat00004
와 체크 노드
Figure 112009081497855-pat00005
가 이웃하는 노드라고 할 때, 메시지들은 다음과 같이 생성될 수 있다.
Figure 112009081497855-pat00006
Figure 112009081497855-pat00007
여기서,
Figure 112009081497855-pat00008
는 변수 노드
Figure 112009081497855-pat00009
에서 체크 노드
Figure 112009081497855-pat00010
로 전송되는 메시지의 업데이트 함수이며, 이를 변수-체크 메시지라고 명명할 수 있다.
Figure 112009081497855-pat00011
는 체크 노드
Figure 112009081497855-pat00012
에서 변수 노드
Figure 112009081497855-pat00013
로 전송되는 메시지의 업데이트 함수이며, 이를 체크-변수 메시지라고 명명할 수 있다.
또한,
Figure 112009081497855-pat00014
는 변수 노드
Figure 112009081497855-pat00015
에 대한 채널 정보이며,
Figure 112009081497855-pat00016
와 같이 나타낼 수 있다. 여기서,
Figure 112009081497855-pat00017
는 수신 신호를 나타낸다.
또한,
Figure 112009081497855-pat00018
Figure 112009081497855-pat00019
번째 변수 노드에 연결된 모든 체크 노드들 중에서
Figure 112009081497855-pat00020
번째 체크 노드를 제외한 체크 노드들을 나타낸다.
Figure 112009081497855-pat00021
는 체크 노드(
Figure 112009081497855-pat00022
)들에 연결된 모든 변수 노드들 중에서
Figure 112009081497855-pat00023
번째 변수 노드를 제외한 변수 노드들을 나타낸다.
이러한 특징을 갖는 LDPC 부호를 이용한 본 발명의 실시 예에 따른 복호 방법을 설명하기 전에, 먼저 일반적인 복호 방법에 대해 설명한다.
LDPC 부호의 일반적인 복호 방법은
Figure 112009081497855-pat00024
번째 반복 과정에서 체크-변수 메시지는
Figure 112009081497855-pat00025
번째 반복 과정에서 얻어진 변수-체크 메시지 값을 사용하여 업데이트 된다. 그런 다음, 모든 변수-체크 메시지들은 이전 단계에서 새롭게 얻어진 체크-변수 메시지를 사용하여 업데이트 된다. 이러한 과정은 정지 조건이 만족될 때까지 계속된다. 여기서 변수-체크 메시지는 위의 수학식 1로 나타낼 수 있으며, 체크-변 수 메시지는 수학식 2로 나타낼 수 있다.
특히, NVCRBP 복호 방식은 레지듀얼(residual)이라 불리는 정렬 기준 값을 가장 크게 갖는 메시지를 우선 업데이트하는 방식이다. 이때, 정렬 기준 값은 업데이트 전후의 변수-체크 메시지 값의 차이로부터 산출되며, 다음과 같이 나타낼 수 있다.
Figure 112009081497855-pat00026
여기서,
Figure 112009081497855-pat00027
는 정렬 기준 값이며,
Figure 112009081497855-pat00028
는 업데이트에 의하여 새롭게 산출된 변수-체크 메시지 값이다.
도 1은 NVCRBP 방법에 따른 복호 과정을 설명하기 위한 참고도이고, 도 2는 NVCRBP 방법에 따른 복호 알고리즘의 수도코드를 나타낸다. 도 1을 참조하면, NVCRBP 방법에 따른 복호 과정은 두 단계로 나타낼 수 있다. 도 1에서, 변수 노드와 체크 노드는 각각 원과 사각형으로 나타내었다.
첫 번째 단계(도 1의 (a))에서, 가장 큰 정렬 기준 값을 가지는 변수-체크 메시지에 해당하는 변수 노드를 선택한다. 예컨대, 변수 노드
Figure 112009081497855-pat00029
가 선택되었다고 하자. 선택된 변수 노드
Figure 112009081497855-pat00030
와 이웃 체크 노드
Figure 112009081497855-pat00031
에 대응되는
Figure 112009081497855-pat00032
의 값들 중 일부가 크게 변화하므로, 해당 체크 노드에 연결된 변수 노드들이 다른 값으로 결정될 확률이 높다. 그러므로 해당 변수 노드에 대한 변수-체크 메시지를 먼저 업데이트하면 다른 노드들을 바르게 결정하는데 도움이 되어 전체 복호 속도 를 향상시킬 수 있다. 따라서 가장 큰 값의 정렬 기준 값을 가지는 변수-체크 메시지를 포함하는 변수 노드를 먼저 선택하는 것이다.
이후, 선택된 변수 노드
Figure 112009081497855-pat00033
에 대응되는 모든
Figure 112009081497855-pat00034
에 해당하는 에지들을 다음 처리 대상에서 제외시킨다. 즉, 변수 노드
Figure 112009081497855-pat00035
와 이웃 체크노드
Figure 112009081497855-pat00036
들에 연결된 에지를 통하여 전송되는 변수-체크 메시지의 정렬 기준 값을 0으로 처리하여 (
Figure 112009081497855-pat00037
), 현재의 반복 복호 과정에서 더 이상 선택되지 않도록 한다. 이는 도 1의 (a)에서 점선으로 표시되었다. 그런 다음, 모든
Figure 112009081497855-pat00038
에 대해
Figure 112009081497855-pat00039
값들을 이용하여
Figure 112009081497855-pat00040
값들을 계산하고 업데이트한다. 즉,
Figure 112009081497855-pat00041
번째 체크 노드에 연결되어 있는 변수 노드들 중에서 상기에서 제외 처리된 에지에 연결된
Figure 112009081497855-pat00042
번째 변수 노드(
Figure 112009081497855-pat00043
)를 제외한 모든 변수 노드들(
Figure 112009081497855-pat00044
)에 대하여 체크-변수 메시지 값을 산출한다.
다음 두 번째 단계(도 1의 (b))에서, 모든
Figure 112009081497855-pat00045
에 대해서
Figure 112009081497855-pat00046
값 및
Figure 112009081497855-pat00047
를 계산한다. 구체적으로, 새롭게 얻어진 변수-체크 메시지들에 대한 값(
Figure 112009081497855-pat00048
)을 토대로, 체크 노드들(
Figure 112009081497855-pat00049
)에 연결된 변수 노드들 중에서 상기에서 제외 처리된 에지에 연결된
Figure 112009081497855-pat00050
번째 변수 노드(
Figure 112009081497855-pat00051
)를 제외한 변수 노드들(
Figure 112009081497855-pat00052
)에 대한 체크-변수 메시지들의 업데이트 전후의 차이 값인 정렬 기준 값(
Figure 112009081497855-pat00053
)을 산출한다.
이처럼 변수-체크 메시지들에 대한 업데이트 전후의 값들의 차이를 토대로 스케줄링이 이루어지는데 변수 노드들(
Figure 112009081497855-pat00054
)에서 체크 노드들(
Figure 112009081497855-pat00055
)로 전달되는 메시지가 업데이트되었기 때문에, 이러한 메시지들에 대응하는 에지들에 대한 정렬 기준 값들을 산출해주는 단계가 수행되는 것이다.
위의 단계들을 통하여, 모든 메시지(또는 에지)들은 한 번의 반복 복호 과정 내에서 한 번씩만 업데이트 된다.
상기된 NVCRBP 복호 방법은, 빠른 복호 수렴속도를 가지는 효과적인 복호 방법임에도 불구하고, 복잡도와 대기시간을 개선할 필요가 있다. 다시 말하면, 기존에 제안된 다른 동적 스케줄링 복호 방식들과 마찬가지로, NVCRBP 방식은 정적 스케줄링 복호 방식에 비하여 업데이트 전후의 차이 값(레지듀얼 값)을 추가적으로 계산하고 정렬해야함에 따른 복잡도와 대기시간의 증가가 불가피하다는 문제점이 있다.
따라서 본 발명의 실시예에서는 동적 스케줄링 복호 방식의 단점인 복잡도와 대기시간의 증가를 최소화시키는 복호 방법을 제공하고자 한다. 특히 복잡도와 대기시간은 증가는 최소화하면서 성능은 기존의 동적 스케줄링 복호 방식과 거의 근접하도록 한다.
도 3은 본 발명의 제 1 실시예에 따른 복호 방법의 흐름도이다. 본 발명의 제 1 실시 예에 따른 방법은 강제수렴 NVCRBP(forced-convergence NVCRBP, 이하 FC-NVCRBP) 방법이라고 명명하기로 한다.
먼저, 도 3에 도시된 바와 같이, 체크 노드에서 변수 노드로 전달되는 모든 체크-변수 메시지들의 값을 제 1 값(여기서는 "0")으로 초기화(
Figure 112009081497855-pat00056
) 하고(S100), 변수 노드에서 체크 노드로 전달되는 모든 변수-체크 메시지들의 값을 제 2 값(여기서는
Figure 112009081497855-pat00057
이며, 이는 채널 값을 나타낸다.)으로 초기화(
Figure 112009081497855-pat00058
)한다(S110).
다음으로, 초기의 복호 과정에서는 이전에 수행된 복호 과정이 없으므로, 모든 정렬 기준값을
Figure 112009081497855-pat00059
으로 초기화한다(S120). 단, 이때에는 해당 메시지에 대하여 업데이트 대상에서 제외시키지 않는다.
다음으로, 메시지의 업데이트를 위하여 변수-체크 메시지(
Figure 112009081497855-pat00060
)를 선택하는데, 상기 초기화 다음에는 변수-체크 메시지(
Figure 112009081497855-pat00061
)를 임의로 선택한다. 예를 들어 연결된 체크 노드의 수가 가장 많은 변수 노드에 해당하는 변수-체크 메시지 중 하나를 선택할 수 있다. 그러나 그 이후로는 후술할 S185단계를 통하여 기 설정된 경계 값(rth)보다 큰 정렬 기준값을 가지는 변수-체크 메시지들 중에서 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택한다(S130). 변수-체크 메시지(
Figure 112009081497855-pat00062
)가 선택되면 그에 해당하는 변수 노드(
Figure 112009081497855-pat00063
)가 선택된다.
다음으로, 상기 선택된 변수-체크 메시지에 해당하는 변수 노드(
Figure 112009081497855-pat00064
)에서 그 에 연결된 체크 노드(
Figure 112009081497855-pat00065
)로 전달되는 변수-체크 메시지의 정렬 기준값들을 기 설정된 값(여기서는 "0")으로 초기화한다. 즉, 모든
Figure 112009081497855-pat00066
에 대하여 정렬 기준 값을 0으로 함으로써(
Figure 112009081497855-pat00067
), 처리 대상에서 제외시킨다(S140).
그리고 도 1의 (a)에서와 같이, 모든
Figure 112009081497855-pat00068
에 대하여, 이전에 계산된(혹은 초기화된)
Figure 112009081497855-pat00069
값들을 이용하여
Figure 112009081497855-pat00070
값들을 계산하여 업데이트한다. 즉, 체크 노드(
Figure 112009081497855-pat00071
)에 연결되어 있는 변수 노드들 중에서
Figure 112009081497855-pat00072
번째 변수 노드(
Figure 112009081497855-pat00073
)를 제외한 모든 변수 노드들(
Figure 112009081497855-pat00074
)에 대하여, 체크-변수 메시지들의 값
Figure 112009081497855-pat00075
들을 계산하여 업데이트한다(S150).
그런 다음, 도 1의 (b)에서와 같이, 모든
Figure 112009081497855-pat00076
에 대하여, 이전 단계(S150)에서 계산된
Figure 112009081497855-pat00077
값들을 이용하여
Figure 112009081497855-pat00078
값들을 계산하여 업데이트한다. 즉, 변수 노드들(
Figure 112009081497855-pat00079
)에 연결되어 있는 체크 노드들 중에서 체크 노드(
Figure 112009081497855-pat00080
)를 제외한 체크 노드들(
Figure 112009081497855-pat00081
)에 대한 변수-체크 메시지들의 값 들을 계산하여 업데이트한다(S160).
다음으로, 복호 과정을 종료하기 위한 소정의 종료 조건이 만족되었는지를 판단하여(S170), 종료 조건이 만족되지 않은 경우에는, 이전 단계(S160)에서 구해진 변수-체크 메시지들(
Figure 112009081497855-pat00083
)의 값을 토대로 업데이트 전후의 차이 값인 정렬 기 준 값(
Figure 112009081497855-pat00084
)을 산출한다(S180). 상기 정렬 기준값은 해당 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 차이로서, 다음과 같이 나타낼 수 있다.
Figure 112009081497855-pat00085
여기서,
Figure 112009081497855-pat00086
는 정렬 기준 값이며,
Figure 112009081497855-pat00087
는 업데이트에 의하여 새롭게 산출된 변수-체크 메시지 값을 나타낸다.
그리고, 정렬 기준값이
Figure 112009081497855-pat00088
이 기 설정된 경계 값(
Figure 112009081497855-pat00089
)보다 큰(
Figure 112009081497855-pat00090
>
Figure 112009081497855-pat00091
) 변수-체크 메시지들의 정렬 기준값을 서로 비교하고(S185), 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택한다(S130). 즉, 상기 수학식 4를 토대로 변수 체크 메시지들의 정렬 기준값
Figure 112009081497855-pat00092
을 구한 다음에, 모든 변수-체크 메시지들의 정렬 기준값
Figure 112009081497855-pat00093
들 중에서 경계값(
Figure 112009081497855-pat00094
)보다 큰 정렬 기준값들끼리만 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택한다.
종료 조건(S170)에 따라서 상기 단계들(S130~S185)은 순차적으로 반복 수행된다. 즉, 종료 조건이 만족하면 복호 과정은 종료된다. 종료 조건은 일반적으로 상기 단계들(S130~S185)의 반복을 통해 모든 변수 노드가 선택되면 종료되는 조건 으로 할 수 있다. 또한, 반복 복호에서는 도 3에 도시된 복호 과정 전체가 미리 정해진 횟수만큼 반복된다.
상술한 본 발명의 제 1 실시예에 의하면, 기 설정된 경계값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들끼리만 비교함으로써, 변수-체크 메시지의 정렬 기준값이 상기 경계값보다 작은 경우 그 변수-체크 메시지는 수렴된 것으로 보고 업데이트 및 비교 대상에서 제외시키게 된다. 따라서 불필요한 연산량과 비교 대상을 줄임으로써 복호 복잡도 뿐만 아니라 대기시간도 감소시킬 수 있다.
한편, 상술한 본 발명의 제 1 실시예에 따른 복호 방법에 의하면, 메시지의 업데이트 전후의 차이가 가장 큰 메시지(또는 에지)에 해당하는 변수 노드를 선택한다. 이로 인하여, 한 번에 하나의 노드가 선택되며, 한 번의 복호 과정이 끝나기 위해서는 모든 노드가 선택되어야 한다.
그런데 상기 경계값(
Figure 112009081497855-pat00095
)은 실험적인 값이기 때문에 목표로 하는 성능을 얻기 위하여 얼마나 큰 경계값을 설정해야하는지 매번 예측하는 것은 쉽지 않다. 그러므로 복호에 사용할 메시지들을 선택함에 있어서 실제 사용할 메시지의 비율을 정하여 복잡도와 대기시간을 줄일 수 있는데 이러한 방법을 근사 FC-NVCRBP(Approximate FCNVCRBP, 이하 AFC-NVCRBP) 방법이라 명명하기로 한다.
근사 FC-NVCRBP 방법은, 종료 조건(S170)으로 상기된 일반적인 종료 조건을 사용하지 않고, 한 번의 복호 과정이 끝나기 위하여 모든 변수 노드가 한 번씩 선택되는 것이 아니라, 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되면 종료되는 조건으로 한다. 예컨대, 상기 비율을 50%로 하고, 종료 조건(S170)에서 상기 단계들(S130~S185)의 반복을 통해 전체 변수 노드들 중 50% 이상의 변수 노드가 한 번씩 선택되었는지 검사하여, 그러한 경우에 복호 과정을 종료한다. 근사 FC-NVCRBP 방법에 의하면, 강제수렴 NVCRBP 방법에 비해 복잡도와 대기 시간을 더욱 줄일 수 있다.
도 4는 본 발명의 제 2 실시 예에 따른 복호 방법의 흐름도이다. 본 발명의 제 2 실시 예에 따른 방법은, 부호기반 NVCRBP(sign-based NVCRBP, 이하 S-NVCRBP) 방법이라고 명명하기로 한다.
먼저, 도 4에 도시된 바와 같이, 체크 노드에서 변수 노드로 전달되는 모든 체크-변수 메시지들의 값을 제 1 값(여기서는 "0")으로 초기화(
Figure 112009081497855-pat00096
) 하고(S200), 변수 노드에서 체크 노드로 전달되는 모든 변수-체크 메시지들의 값을 제 2 값(여기서는
Figure 112009081497855-pat00097
이며, 이는 채널 값을 나타낸다.)으로 초기화(
Figure 112009081497855-pat00098
)한다(S210).
다음으로, 초기의 복호 과정에서는 이전에 수행된 복호 과정이 없으므로, 모든 정렬 기준값을
Figure 112009081497855-pat00099
으로 초기화한다(S220). 단, 이때에는 해당 메시지에 대하여 업데이트 대상에서 제외시키지 않는다.
다음으로, 메시지의 업데이트를 위하여 변수-체크 메시지(
Figure 112009081497855-pat00100
)를 선택하는데, 상기 초기화 다음에는 변수-체크 메시지(
Figure 112009081497855-pat00101
)를 임의로 선택한다. 예를 들어 연결된 체크 노드의 수가 가장 많은 변수 노드에 해당하는 변수-체크 메시지 중 하나를 선택할 수 있다. 그러나 그 이후로는 후술할 S280단계를 통하여 계산된 정렬 기준값
Figure 112009081497855-pat00102
의 부호에 따라서
Figure 112009081497855-pat00103
의 부호가 특정 부호인 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지를 선택한다(S230). 변수-체크 메시지(
Figure 112009081497855-pat00104
)가 선택되면 그에 해당하는 변수 노드(
Figure 112009081497855-pat00105
)가 선택된다.
다음으로, 상기 선택된 변수-체크 메시지에 해당하는 변수 노드(
Figure 112009081497855-pat00106
)에서 그에 연결된 체크 노드(
Figure 112009081497855-pat00107
)로 전달되는 변수-체크 메시지의 정렬 기준값들을 기 설정된 값(여기서는 "0")으로 초기화한다. 즉, 모든
Figure 112009081497855-pat00108
에 대하여 정렬 기준 값을 0으로 함으로써(
Figure 112009081497855-pat00109
), 처리 대상에서 제외시킨다(S240).
그리고 도 1의 (a)에서와 같이, 모든
Figure 112009081497855-pat00110
에 대하여, 이전에 계산된(혹은 초기화된)
Figure 112009081497855-pat00111
값들을 이용하여
Figure 112009081497855-pat00112
값들을 계산하여 업데이트한다. 즉, 체크 노드(
Figure 112009081497855-pat00113
)에 연결되어 있는 변수 노드들 중에서
Figure 112009081497855-pat00114
번째 변수 노드(
Figure 112009081497855-pat00115
)를 제외한 모든 변수 노드들(
Figure 112009081497855-pat00116
)에 대하여, 체크-변수 메시지들의 값
Figure 112009081497855-pat00117
들을 계산하여 업데이트한다(S250).
그런 다음, 도 1의 (b)에서와 같이, 모든
Figure 112009081497855-pat00118
에 대하여, 이전 단계(S250)에서 계산된
Figure 112009081497855-pat00119
값들을 이용하여
Figure 112009081497855-pat00120
값들을 계산하여 업데이 트한다. 즉, 변수 노드들(
Figure 112009081497855-pat00121
)에 연결되어 있는 체크 노드들 중에서 체크 노드(
Figure 112009081497855-pat00122
)를 제외한 체크 노드들(
Figure 112009081497855-pat00123
)에 대한 변수-체크 메시지들의 값
Figure 112009081497855-pat00124
들을 계산하여 업데이트한다(S260).
다음으로, 복호 과정을 종료하기 위한 소정의 종료 조건이 만족되었는지를 판단하여(S270), 종료 조건이 만족되지 않은 경우에는, 이전 단계(S260)에서 구해진 변수-체크 메시지들(
Figure 112009081497855-pat00125
)의 값을 토대로 정렬 기준 값(
Figure 112009081497855-pat00126
)을 산출한다.(S280). 본 실시예에서 상기 정렬 기준값(
Figure 112009081497855-pat00127
)은 해당 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 부호가 반전되었는지 여부를 나타내는 값이다. 예컨대, 정렬 기준값(
Figure 112009081497855-pat00128
)은 해당 변수-체크 메시지의 업데이트 전후에 부호가 반전되면 음수(여기서는 "-1")로, 반전되지 않으면 양수로(여기서는 "1") 정의될 수 있다. 업데이트 전후에 그 부호가 반전되는 변수-체크 메시지는 업데이트 전후의 차이 값이 크다고 추정할 수 있으므로, 그에 해당하는 변수 노드에 대한 변수-체크 메시지를 먼저 업데이트할 수 있다.
정렬 기준값은 또한 다음과 같이 변수-체크 메시지의 업데이트되기 전의 값의 부호와 업데이트된 후의 값의 부호의 곱으로 정의될 수 있다.
Figure 112009081497855-pat00129
여기서,
Figure 112009081497855-pat00130
는 업데이트에 의하여 새로이 산출된 변수-체크 메시지의 값 을 나타내며
Figure 112009081497855-pat00131
의 값이 양수이면
Figure 112009081497855-pat00132
Figure 112009081497855-pat00133
의 값이 음수이면
Figure 112009081497855-pat00134
로 정의한다. 따라서 변수-체크 메시지의 값의 부호가 업데이트 전후로 반전되면
Figure 112009081497855-pat00135
이고 그렇지 않은 경우
Figure 112009081497855-pat00136
이 된다.
S280 단계 이후에, S230 단계에서는, 정렬 기준값
Figure 112009081497855-pat00137
Figure 112009081497855-pat00138
에 해당하는 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지와 그에 해당하는 변수 노드를 선택한다. 여기서, 임의의 변수-체크 메시지를 선택하여 그에 해당하는 변수 노드를 선택할 수 있으나, 바람직하게는 연결된 체크 노드의 수가 가장 많은 변수 노드를 선택할 수 있다. 만약
Figure 112009081497855-pat00139
을 만족하는 변수-체크 메시지가 없다면, 미리 정해진 기준에 따라서(예를 들어 연결된 체크 노드의 수가 가장 많은 변수 노드) 변수 노드를 선택한다.
상기된 제 1 실시예와 마찬가지로, 종료 조건(S270)에 따라서 상기 단계들(S230~S280)은 순차적으로 반복 수행된다. 즉, 종료 조건이 만족하면 복호 과정은 종료된다. 종료 조건은 일반적으로 상기 단계들(S230~S280)의 반복을 통해 모든 변수 노드가 선택되면 종료되는 조건으로 할 수 있다. 또한, 반복 복호에서는 도 4에 도시된 복호 과정 전체가 미리 정해진 횟수만큼 반복된다.
상술한 제 2 실시예에도 역시 상기된 근사 FC-NVCRBP 방법이 적용될 수 있다. 즉, 종료 조건(S270)으로 상기된 일반적인 종료 조건을 사용하지 않고, 한 번의 복호 과정이 끝나기 위하여 모든 변수 노드가 한 번씩 선택되는 것이 아니라, 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되면 종료되는 조건으로 할 수 있다. 이러한 방법을 AFC-S-NVCRBP 방법이라 명명하기로 한다.
상술한 본 발명의 제 2 실시예에 의하면, 정렬 기준값을 단순히 변수-체크 메시지의 업데이트되기 전의 값의 부호와 업데이트된 후의 값의 부호의 곱으로 정의하고 이러한 정렬 기준값의 부호에 따라서 변수-체크 메시지를 선택함으로써, 업데이트 전후의 차이 값 연산과 정렬 기준값의 비교 연산을 수행하지 않아도 되므로 복잡도와 대기 시간을 현저히 감소시킬 수 있다.
위에 기술된 바와 같은 본 발명의 실시예들에 따른 복호 방법들은 다음과 같은 구조로 이루어지는 복호 장치를 통하여 구현될 수 있다.
본 발명의 실시예에 따른 복호 장치는 패리티 검사 행렬과 태너 그래프를 이용해서 본 발명의 실시 예에 따른 복호 방법들을 토대로 입력되는 수신 신호에 대한 복호를 수행한다. 입력되는 수신 신호는 복호되기 위해 길이
Figure 112009081497855-pat00140
의 부호어로 처리될 수 있다. 검사 행렬은 태너 그래프로 표현될 수 있다. 행의 수만큼의 체크 노드들이 만들어지고, 열의 개수만큼의 변수 노드들이 만들어져서 태너 그래프를 형성한다. 만일 행렬의
Figure 112009081497855-pat00141
원소가 1이면
Figure 112009081497855-pat00142
번째 변수 노드와
Figure 112009081497855-pat00143
번째 체크 노드가 에지로 연결되어 서로 이웃하는 노드들이 된다.
도 5는 본 발명의 실시예에 따른 복호 장치의 블록도이다.
본 발명의 실시 예에 따른 복호 장치는 첨부한 도 5에 도시된 바와 같이, 모든 변수 노드에서 모든 체크 노드로 전달되는 변수-체크 메시지들을 초기화하고, 모든 체크 노드에서 모든 변수 노드로 전달되는 체크-변수 메시지들을 초기화 하는 초기화부(10), 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들의 업데이트를 수행하는 체크 노드 업데이트부(20), 체크 노드에서 변수 노드로 전달되는 체크-변수 메시지들의 업데이트를 수행하는 변수 노드 업데이트부(30), 스케줄링을 위한 정렬 기준 값 즉, 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 차이(혹은, 변수-체크 메시지의 업데이트되기 전의 값의 부호와 업데이트된 후의 값의 부호의 곱)을 산출하는 기준값 산출부(40), 산출된 정렬 기준 값들을 토대로 소정의 변수-체크 메시지와 그에 해당하는 변수 노드를 선택하고, 그에 따라 체크 노드 업데이트부(20), 변수 노드 업데이트부(30)를 동작시켜 복호를 수행하는 처리부(50)을 포함하며, 이외에도 체크 노드 업데이트부(20), 변수 노드 업데이트부(30)에 의한 업데이트 결과가 저장되는 메모리(60)를 더 포함할 수 있다.
처리부(50)는 위에 기술된 바와 같은 복호 방법들을 토대로 변수-체크 메시지들 중 기 설정된 경계 값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들을 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택하거나, 또는 정렬 기준값의 부호가 특정 부호인 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지를 선택한다. 그리고 이를 토대로 변수 노드 업데이트부(30)와 체크 노드 업데이트부(20)를 동작시킨다.
상술한 본 발명의 실시예들에 따른 복호 방법을 적용하여 모의 실험한 결과 다음과 같은 결과를 얻을 수 있었다.
도 6은 본 발명의 제 1 실시 예에 따른 복호 방법 FC-NVCRBP와 제 2 실시 예 에 따른 복호 방법 S-NVCRBP 성능을 기존의 복호 방법들(BP, LBP, NRBP, NVCRBP)과 비교하여 나타낸 그래프이다. 특히 도 6은 IEEE 802.16e 표준의 부호길이 576, 부호율1/2인 부호를 사용하고 최대 반복횟수를 8번으로 고정한 경우, 각 방법들에 따른 FER(Frame Error Rate)을 나타낸 그래프이다. 도 6을 참조하면, 본 발명의 제 1 실시 예에 따른 복호 방법으로, FC-NVCRBP가 NRBP보다 절반 이하의 낮은 복잡도와 대기 시간으로 더 나은 성능을 보인다. 또한, 본 발명의 제 2 실시예에 따른 복호 방법으로, S-NVCRBP 역시 복잡도와 대기 시간을 현저하게 줄이면서 NVCRBP에 매우 근접한 성능을 보인다.
도 7은 신호대 잡음비(SNR)를 2.5dB로 고정하고 반복 복호 횟수를 최대 50회까지 증가시키면서, 본 발명의 제 1 실시예에 따른 복호 방법 FC-NVCRBP와 제 2 실시예에 따른 복호 방법 S-NVCRBP의 오류 정정 성능을 기존의 복호 방법들(BP, LBP, NRBP, NVCRBP)와 비교하여 나타낸 그래프이다. 도 7을 참조하면, 본 발명의 실시예에 따른 복호 방법들이 작은 반복 복호 횟수에서 뿐만 아니라 많은 반복 복호 후에도 NVCRBP에 비하여 낮은 복잡도와 대기시간으로 근접한 성능을 보임을 확인할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인 터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 NVCRBP 방법에 따른 복호 과정을 설명하기 위한 참고도이다.
도 2는 NVCRBP 방법에 따른 복호 알고리즘의 수도코드를 나타낸다.
도 3은 본 발명의 제 1 실시예에 따른 복호 방법의 흐름도이다.
도 4는 본 발명의 제 2 실시 예에 따른 복호 방법의 흐름도이다.
도 5는 본 발명의 실시예에 따른 복호 장치의 블록도이다.
도 6 및 도 7은 본 발명의 실시예들에 따른 복호 방법의 성능을 나타내는 그래프이다.

Claims (20)

  1. 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법에서,
    (a) 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중 기 설정된 경계 값보다 큰 정렬 기준값을 가지는 변수-체크 메시지들의 정렬 기준값들을 비교하여 가장 큰 정렬 기준값을 가지는 변수-체크 메시지를 선택하는 단계;
    (b) 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 단계;
    (c) 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 단계; 및
    (d) 상기 (c) 단계에서 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 단계를 포함하고,
    상기 (a) 내지 (d) 단계는 순차적으로 복수 회 반복 수행되며, 소정의 종료 조건을 만족하면 상기 반복 수행은 종료되고,
    상기 종료 조건은 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되는 조건인 것을 특징으로 하는 복호 방법.
  2. 제 1 항에 있어서,
    상기 선택된 변수-체크 메시지에 해당하는 제 1 변수 노드에서 상기 제 1 체크 노드로 전달되는 변수-체크 메시지들의 정렬 기준 값들을 기 설정된 값으로 초 기화시키는 단계를 더 포함하는 것을 특징으로 하는 복호 방법.
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 정렬 기준 값은 해당 변수-체크 메시지의 업데이트되기 전의 값과 업데이트된 후의 값의 차이인 것을 특징으로 하는 복호 방법.
  6. 제 1 항에 있어서,
    상기 (a) 단계 이전에,
    체크 노드에서 변수 노드로 전달되는 모든 체크-변수 메시지들을 초기화하는 단계; 및
    변수 노드에서 체크 노드로 전달되는 모든 변수-체크 메시지들을 초기화하는 단계를 더 포함하는 것을 특징으로 하는 복호 방법.
  7. 패리티 검사 행렬로부터 복수의 체크 노드와 변수 노드를 정의하고 이를 토대로 복호를 수행하는 방법에서,
    (a) 변수 노드에서 체크 노드로 전달되는 변수-체크 메시지들 중에서 정렬 기준값의 부호가 특정 부호인 변수-체크 메시지들 중 어느 하나의 변수-체크 메시지를 선택하는 단계;
    (b) 상기 선택된 변수-체크 메시지에 해당하는 제 1 체크 노드에 연결된 제 2 변수 노드에 대하여, 상기 제 1 체크 노드에서 상기 제 2 변수 노드로 전달되는 체크-변수 메시지를 업데이트하는 단계;
    (c) 상기 제 2 변수 노드에 연결된 제 2 체크 노드에 대하여, 상기 제2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지를 업데이트하는 단계; 및
    (d) 상기 (c) 단계에서 업데이트된 변수-체크 메시지를 토대로, 상기 제 2 변수 노드에서 상기 제 2 체크 노드로 전달되는 변수-체크 메시지의 정렬 기준 값을 산출하는 단계를 포함하고,
    상기 (a) 내지 (d) 단계는 순차적으로 복수 회 반복 수행되며, 소정의 종료 조건을 만족하면 상기 반복 수행은 종료되고,
    상기 종료 조건은 전체 변수 노드들 중 미리 정해진 비율의 변수 노드들이 한 번씩 선택되는 조건인 것을 특징으로 하는 복호 방법.
  8. 제 7 항에 있어서,
    상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값과 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호가 반전되면 음수로, 반전되지 않으면 양수로 정의되는 것을 특징으로 하는 복호 방법.
  9. 제 8 항에 있어서,
    상기 정렬 기준값은 해당 변수-체크 메시지가 업데이트되기 전의 값의 부호와 상기 해당 변수-체크 메시지가 업데이트된 후의 값의 부호의 곱으로 정의되는 것을 특징으로 하는 복호 방법.
  10. 제 8 항에 있어서,
    상기 (a) 단계에서 상기 특정 부호는 음수인 것을 특징으로 하는 복호 방법.
  11. 제 7 항에 있어서,
    상기 선택된 변수-체크 메시지에 해당하는 제 1 변수 노드에서 상기 제 1 체크 노드로 전달되는 변수-체크 메시지들의 정렬 기준 값들을 기 설정된 값으로 초기화시키는 단계를 더 포함하는 것을 특징으로 하는 복호 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020090133678A 2009-12-30 2009-12-30 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 KR101112121B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090133678A KR101112121B1 (ko) 2009-12-30 2009-12-30 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090133678A KR101112121B1 (ko) 2009-12-30 2009-12-30 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110077189A KR20110077189A (ko) 2011-07-07
KR101112121B1 true KR101112121B1 (ko) 2012-03-14

Family

ID=44916796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090133678A KR101112121B1 (ko) 2009-12-30 2009-12-30 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101112121B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973316B (zh) * 2013-02-04 2017-08-08 爱思开海力士有限公司 具有使用定标常数的可变节点更新器的解码方法和解码系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068168A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068168A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jung-Hyun Kim et al. "Reduced complexity and latency variable to check residual belief propagation decoding algorithms for LDPC codes," IWSDA '09, pp. 76-69, 19-23 Oct. 2009.

Also Published As

Publication number Publication date
KR20110077189A (ko) 2011-07-07

Similar Documents

Publication Publication Date Title
KR101431162B1 (ko) 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법
KR100891782B1 (ko) 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
CN102412847B (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
KR100846869B1 (ko) 저 복잡도 ldpc복호 장치 및 그 방법
TWI411912B (zh) 使用寫入驗證之代碼之錯誤底限減緩
US8826109B2 (en) LDPC decoder irregular decoding of regular codes
KR101718543B1 (ko) 개선된 비트 반전 알고리즘 기반의 저밀도 패리티 검사 부호를 위한 복호 방법, 장치 및 이를 위한 기록 매체
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
US8650451B2 (en) Stochastic stream decoding of binary LDPC codes
JP2009100222A (ja) 低密度パリティ検査符号の復号装置およびその方法
TW201126918A (en) Improved turbo-equalization methods for iterative decoders
CN106803759A (zh) 基于高斯构造的Polar码有效自适应译码方法
JP4253332B2 (ja) 復号装置、方法およびプログラム
CN110233628B (zh) 极化码的自适应置信传播列表译码方法
CN110784232B (zh) 一种空间耦合ldpc码滑窗译码方法
US10892783B2 (en) Apparatus and method for decoding polar codes
KR20060032464A (ko) 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치
CN113328756B (zh) 用于提升分层qc-ldpc译码器硬件处理性能的方法
Hatami et al. A threshold-based min-sum algorithm to lower the error floors of quantized LDPC decoders
CN111130567B (zh) 添加噪声扰动和比特翻转的极化码置信传播列表译码方法
KR20130012549A (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
CN114421971A (zh) 一种适用于多元ldpc码的动态多符号翻转译码方法
CN107872231B (zh) Ldpc译码方法与装置
KR101112121B1 (ko) 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치
CN111130564A (zh) 译码方法及装置

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: 20150202

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160125

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee