KR100891782B1 - 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법 - Google Patents

고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법 Download PDF

Info

Publication number
KR100891782B1
KR100891782B1 KR1020020032690A KR20020032690A KR100891782B1 KR 100891782 B1 KR100891782 B1 KR 100891782B1 KR 1020020032690 A KR1020020032690 A KR 1020020032690A KR 20020032690 A KR20020032690 A KR 20020032690A KR 100891782 B1 KR100891782 B1 KR 100891782B1
Authority
KR
South Korea
Prior art keywords
message
node
value
check
variable node
Prior art date
Application number
KR1020020032690A
Other languages
English (en)
Other versions
KR20030095144A (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 KR1020020032690A priority Critical patent/KR100891782B1/ko
Priority to US10/458,204 priority patent/US7137060B2/en
Publication of KR20030095144A publication Critical patent/KR20030095144A/ko
Application granted granted Critical
Publication of KR100891782B1 publication Critical patent/KR100891782B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/005Control of transmission; Equalising
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

가. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 디지털 통신 시스템에서 순방향 오류 정정(Forward Error Correction : FEC)에 관한 장치 및 방법에 관한 것으로, 특히 고속의 데이터를 전송하는 디지털 통신 시스템에서 순방향 오류 정정 부호를 복호하는 장치 및 방법에 관한 것이다.
나. 발명이 해결하고자 하는 기술적 과제
본 발명은 간단한 순방향 오류 정정 부호의 복호 장치 및 방법을 제공하며, sum-product 알고리즘을 사용하는 경우 간단하게 처리할 수 있고, 각 노드마다의 계산량을 줄일 수 있으며, LDPC 성능을 최대한 유지하는 장치 및 방법을 제공함에 있다.
다. 발명의 해결방법의 요지
본 발명의 방법은 저밀도 패리티 검사 코드를 이용하는 통신 시스템에서 순방향 오류 정정 부호를 복호하는 방법에 있어서, 무선 채널을 통해 수신된 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우드율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하는 과정과, 각 변수 노드로 입력된 메시지를 상기 각 변수 노드와 연결된 각 검사 노드로 전달하는 전달 과정과, 상기 각 검사 노드가 자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하는 검사 노드 갱신 과정과, 상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 각각 상기 갱신된 메시지를 수신하고, 상기 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하는 변수 노드 갱신 과정과, 상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 수신한 메시지들과 초기 입력된 로그 우도율을 가산하여 로그 우도율을 갱신하는 과정과, 상기 갱신된 로드 우도율값들을 경판정하고, 상기 경판정된 값들을 이용하여 저밀도 패리티 코드 행렬의 패리티 검사를 수행하는 패리티 검사 과정을 포함한다.
또한, 본 발명은 행들과 열들의 저밀도 패리티 검사 행렬들로 상기 열의 수를 가지는 이진 비트들을 부호화하여 무선 채널을 통해 전송된 부호 비트들을 복호화하는 순방향 오류 정정 부호를 복호하는 장치에 있어서, 상기 무선 채널을 통해 수신된 상기 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우도율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하고, 입력된 메시지를 자신과 연결된 검사 노드들로 전달한 후, 상기 자신과 연결된 검사 노드들로부터 각각 갱신된 메시지들을 수신하며, 상기 검사 노드들로부터 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지들의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하여 이를 출력하는 변수 노드 메시지 결정 장치와, 자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하여 출력하는 검사 노드 메시지 결정 장치와, 상기 각 변수 노드와 연결된 노드들로부터 상기 각 변수 노드로 입력되는 메시지들에 상기 가중치를 곱하고, 상기 가중치를 곱한 값을 가산한 값에 상기 초기 메시지의 값을 더한 값으로 상기 로그 우도율 값을 갱신하여 출력하는 로그 우도율 결정기와, 상기 로그 우도율 결정기의 출력 값을 영(zero) 또는 일의 값의 이진수로 복호하여 경판정을 수행하는 경판정 장치와, 상기 경판정 된 값들을 이용하여 저밀도 패리티 검사 코드 행렬의 패리티 검사를 수행하는 패리티 검사 장치를 포함한다.
라. 발명의 중요한 용도
저밀도 패리티 검사 코드를 사용하는 데이터 전송 시스템에 사용된다.
LDPC, sum-product, LLR, 검사 노드(check node), 변수 노드(variable node)

Description

고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및 방법{APPARATUS AND METHOD FOR CORRECTING OF FORWARD ERROR IN HIGH DATA TRANSMISSION SYSTEM}
도 1은 길이가 4인 짧은 순환의 예에 따른 도면,
도 2는 본 발명에 따라 LDPC 부호의 반복 복호 시 가중치를 갖는 수정 sum-product 알고리즘에 따른 제어 흐름도,
도 3a는 본 발명의 실시 바람직한 예에 따라 임의의 검사 노드에서 메시지의 갱신 시 제어 흐름도,
도 3b는 본 발명의 바람직한 실시 예에 따라 도 3a의 과정을 수행하는 검사 노드와 연결된 변수 노드에서 메시지 갱신 시의 제어 흐름도,
도 4a는 본 발명의 바람직한 실시 예에 따라 검사 노드 갱신 시 신호의 흐름을 도시한 도면,
도 4b는 본 발명의 바람직한 실시 예에 따라 변수 노드 및 LLR 갱신 시 신호의 흐름을 도시한 도면,
도 5a는 본 발명의 일 실시 예에 따라 도 4a의 검사 노드 프로세서의 블록 구성도,
도 5b는 본 발명의 일 실시 예에 따라 도 4b의 변수 노드 및 LLR 갱신 프로 세서의 블록 구성도,
도 6은 최대 반복횟수를 50회로 설정하였을 경우 길이가 짧은 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프,
도 7은 최대 반복횟수를 200회로 설정하였을 경우 길이가 짧은 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프,
도 8은 최대 반복횟수를 50회로 설정하였을 경우 길이가 긴 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프,
도 9는 최대 반복횟수를 200회로 설정하였을 경우 길이가 긴 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프.
본 발명은 디지털 통신 시스템에서 순방향 오류 정정(Forward Error Correction : FEC)에 관한 장치 및 방법에 관한 것으로, 특히 고속의 데이터를 전송하는 디지털 통신 시스템에서 순방향 오류 정정 부호를 복호하는 장치 및 방법에 관한 것이다.
통상적으로 디지털 통신 시스템은 전송로에서 발생하는 잡음에 의해 오류가 발생하며, 상기 발생된 오류를 제거하기 위해 다양한 방식으로 오류를 정정하고 있다. 최근 표준화가 진행중인 3GPP 혹은 3GPP2를 적용하는 무선 통신 시스템에서는 음성 및 제어 신호의 전송을 위해 컨볼루셔널 코드(convolutional code)의 사용이 제안되고 있으며, 고속 데이터의 효과적인 전송을 위해서는 터보 코드(turbo code)의 사용이 제안되고 있다. 상기한 코드들 중 고속 데이터의 전송을 위한 터보 코드(turbo code)는 낮은 신호 대 잡음비에서 매우 낮은 비트 에러율(bit error rate)을 얻을 수 있는 장점을 가진다. 그러나 성능과 구현면에 있어 하기와 같은 문제점이 있다.
첫째로, 상기 터보 코드(Turbo code)는 부호어의 최소 거리(minimum distance)가 비교적 짧다. 따라서 터보 코드로 코딩된 신호의 복호 시 원하는 비트 오율(bit error rate)지점에서 오류 마루(error floor)가 발생할 수 있다. 또한 복호 시 오류가 발생한 부호어(codeword)에 대한 검출 불가능 확률(undetected error probability)이 비교적 높은 문제가 있다.
둘째로, 상기 터보 코드의 복호 과정에서는 복호 시간과 복호 과정의 전력 소비를 줄이기 위해 효율적인 복호 정지를 필요로 한다. 따라서 효율적인 복호 정지를 제공하기 위해서는 매 반복 복호마다 오류 검출을 위한 CRC 검사 과정이나, 복호 정지를 위한 추가적인 알고리즘이 필요한 문제가 있다.
셋째로, 상기 터보 코드의 복호를 위한 알고리즘은 병렬 구조(parallel architecture)로 구현이 불가능하여 복호 속도 개선에 한계를 가지는 문제가 있다.
따라서 최근에는 상기 터보 코드와 유사하거나, 오히려 우수한 성능을 가지면서 이러한 문제점들을 해결할 수 있는 부호로서 저밀도 패리티 검사 코드(low density parity check code : 이하 "LDPC code"라 칭함)가 새롭게 부각되고 있다. 상기 LDPC code는 code를 정의하는 패리티 검사 행렬(parity check matrix)의 각 행과 열에 '1'의 수가 매우 적은 부호로서, 검사 노드(check node)와 변수 노드(variable node), 그리고 이들을 연결하는 가지(edge)로 구성된 펙터 그래프(factor graph)에 의해 그 구조가 정의될 수 있는 부호이다. 상기 LDPC code는 동일한 길이의 터보 코드에 비해 최소 거리가 크고, 이에 따라 오류 마루가 터보 코드에 비해 매우 낮은 비트 오율에서 발생하며, 오류가 발생한 부호어에 대한 검출 불가능 확률이 매우 낮아 실험적으로 '0'에 가깝다고 알려져 있다. 또한, 병렬 구조로의 구현이 가능하여 복호 시간을 획기적으로 단축시킬 수 있고, 매 반복 복호마다 수행하는 패리티 검사를 통해 추가로 부가되는 CRC와 같은 오버헤드(overhead) 또는 복호 정지 알고리즘 없이도 효율적인 복호 정지가 가능하다.
이러한 상기 LDPC code의 복호 과정은 "sum-product" 알고리즘에 의한 반복 복호(iterative decoding)에 의해 이루어진다. 이때, 최적의 sum-product 알고리즘은 다소 복잡한 계산식을 포함하고 있다. 따라서 상기 sum-product 알고리즘을 사용할 경우 복호 과정에서 많은 계산량을 필요로 한다. 이로 인해 상기 sum-product 알고리즘을 사용하는 경우에 하드웨어(hardware)의 복잡도가 증가하는 단점이 있 다.
따라서, 상기 LDPC code를 사용하는 경우 실제 구현 시에는 최적의 복호 알고리즘을 보다 단순화시키는 것이 필요하다. 그리고, 이를 이용한 복호 과정에서 단순화된 알고리즘에 의한 성능 열화를 최소화하기 위해 복호 과정에서 생성된 부가 정보(extrinsic information)에 가중치 (weighting factor)를 고려하도록 한다.
그러면 먼저 LDPC code에 대하여 좀 더 상세히 살펴본다. 상기 LDPC code는 펙터 그래프에 의해 그 구조가 정의될 수 있다. 상기 펙터 그래프는 정해진 LDPC code의 패리티 검사식을 나타내는 검사 노드(check node)와, 각 code 심볼을 나타내는 변수 노드(variable node), 그리고 이들의 연관성(dependency)을 나타내는 가지(edge)로 이루어진다. 상기 가지는 각 검사 노드에서 상기 검사 노드가 나타내는 패리티 검사식에 포함되는 코드 심볼에 해당하는 변수 노드를 연결시키게 된다. 이 때, 모든 검사 노드에 연결된 변수 노드의 수가
Figure 112002018219221-pat00001
개로 일정하고, 또 모든 변수 노드에 연결된 체크 노드의 수가
Figure 112002018219221-pat00002
개로 항상 일정하면, 이러한 LDPC code를 "정규 LDPC 부호"(regular LDPC code)라 한다. 그리고, 각 검사 노드와 변수 노드에 연결된 가지의 수가 일정하지 않으면 이를 "비정규 LDPC 부호"(irregular LDPC code)라 한다. 이하에서 설명되는 본 문서에서는 정규 LDPC 부호에 대해서만 생각하기로 한다.
상기 LDPC code를 복호하는 과정은 펙터 그래프(factor graph) 상의 변수 노드와 검사 노드들이 각 노드별로 생성, 업데이트 한 메시지들을 서로 교환하는 과정이 반복되어 이루어진다. 이때, 각 노드에서는 sum-product 알고리즘을 이용하여 메시지를 업데이트 하게 된다. 상기 LDPC code의 복호를 위한 로그 우도율(log likelihood ratio : 이하 "LLR"이라 함)을 이용하여 정의되는 sum-product 알고리즘과, 이에 기초한 LDPC code의 반복 복호 과정을 정리하면 다음과 같다.
첫째로 초기화(j = 0)는 하기와 같이 이루어진다. 변수 노드 n의 초기 메시지는 수신 부호어의 n번째 심볼의 채널 신뢰도(channel reliability)로 정의하며, 이는 하기 <수학식 1>과 같이 도시할 수 있다.
Figure 112002018219221-pat00003
상기 <수학식 1>에서
Figure 112002018219221-pat00004
은 최초 정의되는 변수 노드 메시지의 초기 값이고,
Figure 112002018219221-pat00005
은 최초 정의되는 변수 노드에 대한 초기 LLR 값이다. 그리고,
Figure 112002018219221-pat00006
은 각각 정보 심볼 0과 1에 대한 전송로 천이 확률(transition probability)이다.
상기와 같이 초기화 과정이 이루어진 이후에는 반복 복호가 이루어져야 한다. 그러면 이에 대한 일반적인 개념인 j 번째 반복에서의 반복 복호에 대하여 살펴본다. 상기 j 번째 반복에서는 검사 노드 메시지의 갱신(check node message update)을 수행한다. 즉, 검사 노드 n에서 변수 노드 n으로 전달하는 메시지가 된다. 이를 수학식으로 도시하면 하기 <수학식 2>와 같이 도시할 수 있다.
Figure 112002018219221-pat00007
상기 <수학식 2>의
Figure 112002018219221-pat00008
은 준 반복 복호 과정에서 j 번째 반복 복호 과정에서 얻게 되는 값으로 검사 노드 m에서 변수 노드 n으로 전달하는 메시지이다. 그리고,
Figure 112002018219221-pat00009
는 j 번째 반복 복호 과정에서 변수 노드 I로부터 검사 노드 m으로 전달되는 메시지이다. 이때, i 는 검사 노드 m에 연결된 변수 노드들을 0 부터
Figure 112002018219221-pat00010
까지 재 정렬한 값이다. 따라서 i 가 0인 경우에는 변수 노드 n을 의미한다.
상기 <수학식 2>와 같이 변수 노드가 갱신되면, 변수 노드는 검사 노드로 새로운 메시지를 전달한다. 이와 같이 전달되는 메시지는 변수 노드 n에서 검사 노드 m으로 전달하는 메시지가 되며, 이를 수학식으로 도시하면 하기 <수학식 3>과 같이 도시할 수 있다.
Figure 112002018219221-pat00011
상기 <수학식 3>에서
Figure 112002018219221-pat00012
은 j 번째 반복 복호 과정에서 얻게 되는 값으로 변수 노드 n에서 검사 노드 m으로 전달하는 메시지이다. 이때
Figure 112002018219221-pat00013
은 j 번째 반복 과정에서 검사 노드 i로부터 변수 노드 n으로 전달되는 메시지이며, i는 변수 노드 n에 연결된 검사 노드들을 0부터
Figure 112002018219221-pat00014
까지 재 정렬한 값이다. 따라서 i가 0인 경우에는 검사 노드 m을 의미한다.
상기 <수학식 1> 내지 상기 <수학식 3>에 도시한 바와 같이 초기화를 수행한 후 반복 복호의 과정을 거치고, 검사 노드와 변수 노드간 메시지를 주고받는 과정을 통해 LLR 갱신(update)이 이루어진다. 상기한 바에 따른 이루어지는 LLR 갱신은 하기 <수학식 4>와 같이 이루어진다.
Figure 112002018219221-pat00015
상기 <수학식 4>에서
Figure 112002018219221-pat00016
은 j번째 반복 복호 과정에서 변수 노드 n에 정의되는 LLR 값이다.
상기 <수학식 4>와 같이 LLR의 갱신이 이루어지면, 이후 판정(decision) 과정을 수행한다. 상기 판정 과정은 상기 <수학식 4>와 같이 계산된 LLR 갱신 결과에 따라 이루어지며, 모든 코드 심볼에 대하여 수행한다. 이와 같은 판정을 수행하는 방법은 하기 <수학식 5>와 같이 도시할 수 있다.
Figure 112002018219221-pat00017
상기 <수학식 5>에서
Figure 112002018219221-pat00018
은 임의의 복호 시점에서 변수 노드 n에 정의된 LLR 값이다. 즉, 상기 <수학식 4>의
Figure 112002018219221-pat00019
과 동일하며,
Figure 112002018219221-pat00020
은 복호 과정을 통해 추정 한 부호어 심볼이다.
상기 <수학식 5>에 도시한 바와 같이 판정을 수행한 이후, 복호된 부호어가 모든 패리티 검사식을 만족하는 경우 반복을 중단한다. 그러나 복호된 부호어가 모든 패리티 검사식을 만족하지 못하는 경우 상기 j 값을 1 증가시킨 후 상기 <수학식 2> 내지 상기 <수학식 5>의 과정을 반복하여 수행한다. 이러한 반복은 미리 반복 횟수를 결정하여 수행하도록 구성할 수 있다. 따라서 미리 결정한 최대 반복 복호의 횟수 이후에도 부호어가 모든 패리티 검사식을 만족하지 않는 경우 복호를 중단하고, 복호 실패를 선언하도록 구성한다.
이상의 설명에서 각 노드에서 메시지 갱신(message update)에 사용되는 sum-product 알고리즘을 "최적(optimum)의 sum-product 알고리즘"이라 칭한다. 상기 최적의 sum-product 알고리즘은 어떠한 근사화 과정 없이 이론적인 계산 과정을 통해 쉽게 유도될 수 있다.
그러나 상기 <수학식 2>에 도시한 검사 노드 메시지 갱신 과정은 하기 <수학식 6>과 같이 단순화하여 근사화 할 수 있다.
Figure 112002018219221-pat00021
상기 <수학식 6>에서
Figure 112002018219221-pat00022
는 상기 검사 노드로 입력되는 변수 노드 메시지이다. 그리고, sgn(x)는 x가 0보다 크면 1, 0보다 작으면 -1의 값을 갖는 함수이다.
상기 <수학식 6>은 근사화 과정을 통해 최적의 sum-product 알고리즘에서 검사 노드 메시지 갱신 과정의 계산을 보다 단순화시킨 것이다. 즉, 임의의 검사 노드 m에서 갱신되는 메시지는 검사 노드 m으로 입력되는 임의의 두 가지(edge) 위의 변수 노드 메시지의 부호들을 곱하여 임시 결과 메시지의 부호로 한다. 그리고 상기 변수 노드 메시지들의 절대값 가운데 작은 값을 택하여 임시 결과 메시지의 크기로 정한다. 또한 상기한 근사화 과정으로 인한 오류를 보정하기 위해 미리 정한 규칙에 의해 정해진 교정 값(correction factor, c)을 상기 임시 결과 메시지에 더하여 임시 결과 메시지를 갱신한다. 그리고, 변수 노드 n과 연결되는 가지를 제외한 검사 노드 m으로 입력되는 다른 가지들에 대해 이러한 과정을 반복, 적용하여 검사 노드 메시지를 최종 갱신한다. 이를 이용한 sum-product 알고리즘을 "교정 값을 갖는 sum-product 알고리즘(sum-product algorithm with correction factor)"이라 부르도록 한다. 교정 값을 갖는 sum-product 알고리즘에 의한 LDPC 부호의 반복 복호는 최적의 sum-product 알고리즘에 의한 LDPC 부호의 복호 과정에서 검사 노드 메시지 갱신 과정의 tanh()라는 다소 복잡한 계산을 수행하지 않으면서도, 최적의 sum-product 알고리즘에 의해 얻을 수 있는 복호 성능에 매우 근접하는 우수한 성능을 나타낸다.
전술한 최적의 sum-product 알고리즘은 상기 <수학식 2>에서 알 수 있는 바 와 같이 임의의 반복 복호 시점에서 검사 노드 메시지를 갱신하기 위해서 검사 노드로 입력되는 검사 노드 메시지들에 대해 각각 tanh() 함수 계산을 수행해야 한다. 이는 tanh() 함수의 복잡한 계산식으로 인해 하드웨어 구현 시 복잡도를 증가시킨다. 따라서 이러한 문제점을 해결하기 위해 검사 노드 메시지 업데이트 과정을 근사화 과정을 통해 단순화하고, 이러한 근사화 과정으로 인한 성능 열화를 최소화 하기 위해 근사화 과정에 교정 값을 고려하는 알고리즘이 제안되었다. 그러나, 상기 교정 값을 갖는 sum-product 알고리즘은 검사 노드 메시지를 최종적으로 갱신하기 위해서 검사 노드로 입력되는 모든 가지(edge)들에 대해, 상기 가지로부터 전달되는 변수 노드 메시지에 따라 교정 값을 정하여 주어야 한다. 또 이러한 연산이 모든 가지에 대해 순차적으로 진행되어야 하므로, 각 검사 노드마다 비교적 많은 연산과 시간을 필요로 하게 되는 문제가 있다.
따라서 본 발명의 목적은 간단한 순방향 오류 정정 부호의 복호 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 sum-product 알고리즘을 사용하는 경우 간단하게 처리할 수 있는 LDPC 복호 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 sum-product 알고리즘을 사용하는 경우 각 노드마다의 계산량을 줄일 수 있는 LDPC 복호 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 LDPC 성능을 최대한 유지하면서 계산량을 줄일 수 있는 sum-product 알고리즘을 수행하는 장치 및 그 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명은 저밀도 패리티 검사 코드를 이용하는 통신 시스템에서 순방향 오류 정정 부호를 복호하는 방법에 있어서, 무선 채널을 통해 수신된 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우드율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하는 과정과, 각 변수 노드로 입력된 메시지를 상기 각 변수 노드와 연결된 각 검사 노드로 전달하는 전달 과정과, 상기 각 검사 노드가 자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하는 검사 노드 갱신 과정과, 상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 각각 상기 갱신된 메시지를 수신하고, 상기 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하는 변수 노드 갱신 과정과, 상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 수신한 메시지들과 초기 입력된 로그 우도율을 가산하여 로그 우도율을 갱신하는 과정과, 상기 갱신된 로드 우도율값들을 경판정하고, 상기 경판정된 값들을 이용하여 저밀도 패리티 코드 행렬의 패리티 검사를 수행하는 패리티 검사 과정을 포함한다.
또한, 본 발명은 행들과 열들의 저밀도 패리티 검사 행렬들로 상기 열의 수를 가지는 이진 비트들을 부호화하여 무선 채널을 통해 전송된 부호 비트들을 복호화하는 순방향 오류 정정 부호를 복호하는 장치에 있어서, 상기 무선 채널을 통해 수신된 상기 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우도율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하고, 입력된 메시지를 자신과 연결된 검사 노드들로 전달한 후, 상기 자신과 연결된 검사 노드들로부터 각각 갱신된 메시지들을 수신하며, 상기 검사 노드들로부터 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지들의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하여 이를 출력하는 변수 노드 메시지 결정 장치와, 자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하여 출력하는 검사 노드 메시지 결정 장치와, 상기 각 변수 노드와 연결된 노드들로부터 상기 각 변수 노드로 입력되는 메시지들에 상기 가중치를 곱하고, 상기 가중치를 곱한 값을 가산한 값에 상기 초기 메시지의 값을 더한 값으로 상기 로그 우도율 값을 갱신하여 출력하는 로그 우도율 결정기와, 상기 로그 우도율 결정기의 출력 값을 영(zero) 또는 일의 값의 이진수로 복호하여 경판정을 수행하는 경판정 장치와, 상기 경판정 된 값들을 이용하여 저밀도 패리티 검사 코드 행렬의 패리티 검사를 수행하는 패리티 검사 장치를 포함한다.
삭제
삭제
삭제
삭제
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요 소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
또한 하기 설명에서는 구체적인 장치 또는 프로세서 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명은 LDPC 코드를 사용하는 복호 시에 사용되는 sum-product 알고리즘을 수정하였다. 이하의 설명에서 본 발명에 따라 LDPC 코드의 복호 알고리즘을 "수정 sum-product 알고리즘"이라 칭한다.
본 발명에 따른 수정 sum-product 알고리즘은 종래기술에서 설명한 검사 노드 메시지 갱신 과정인 <수학식 2>를 하기 <수학식 7>과 같이 변경한다.
Figure 112002018219221-pat00023
상기 <수학식 7>은 교정 값을 갖는 sum-product 알고리즘의 검사 노드 메시지 갱신 과정에서 교정 값을 고려하지 않는 식이다. 상기 <수학식 7>과 같이 검사 노드 메시지 갱신이 수정되면, 종래기술에서 변수 노드 메시지 갱신 과정으로 상술한 <수학식 3>은 본 발명에서 하기 <수학식 8>과 같이 변경된다.
Figure 112002018219221-pat00024
상기 <수학식 8>에서 sgn(x)함수는 x값의 부호를 나타내는 함수로서, x가 0보다 크면 sgn(x)는 1이고, x가 0보다 작으면 sgn(x)는 -1이 된다. 그리고,
Figure 112007087578499-pat00025
는 변수 노드 n으로 입력되는 가지(edge)의 수이다. 본 발명에서는 모든 검사 노드와 모든 변수 노드로 입력되는 가지의 수가 각각 동일한 정규(regular) LDPC code를 고려하고 있으므로,
Figure 112007087578499-pat00026
는 모든 변수 노드에 대해 일정하다. 또한 상기 <수학식 8>은 변수 노드로 입력되는 검사 노드 메시지와 채널 신뢰도(channel reliability)의 부호가 모두 동일하면 가중치(weighting factor)를 고려하지 않고, 이 부호들 가운데 하나라도 다른 것이 있으면 1보다 작은 값을 갖는 가중치를 고려하는 것이다. 이때, 1보다 작은 가중치를 고려하는 이유는 상기 <수학식 7>과 같은 검사 노드 메시지 갱신 과정의 근사화를 통해 발생한 검사 노드 메시지 오류의 영향을 상쇄시키고, 또 LDPC code를 정의하는 펙터 그래프(factor graph)상에 존재할 수 있는 "짧은 순환(short cycle)"으로 인해 궤환되는 자가-정보(self-information)의 영향을 상쇄시키기 위함이다. 여기서 순환(cycle)이란 펙터 그래프(factor graph)상에서 몇몇 가지(edge)들이 루프를 형성하는 경우를 뜻하며, 길이가 짧은 순환을 짧은 순환이라 한다. 일반적으로 짧은 순환은 임의의 변수 노드로부터 출력된 메시지가 순환(cycle) 길이의 1/2에 해당하는 회수의 반복 복호 과정을 통해 갱신된 후, 다시 해당 변수 노드로 입력되기 때문에 해당 노드에 대응하는 code 심볼의 복호에 좋지 않은 영향을 끼치는 것으로 알려져 있다. 이와 같은 예를 도면으로 도시하면 도 1과 같이 도시할 수 있다. 상기 도 1은 길이가 4인 짧은 순환의 예에 따른 도면이다. 상기 도 1에서 아래쪽의 동그라미 부분이 변수 노드가 되며, 위쪽 네모에 십자 표시가 된 부분이 검사 노드가 된다. 상기 변수 노드들 중 첫 번째 변수 노드와 세 번째 변수 노드 및 두 번째 검사 노드와 세 번째 검사노드 간에는 굵은 라인으로 도시하여 짧은 순환의 예를 표시하였다.
상술한 바와 같이 상기 <수학식 7> 및 <수학식 8>과 같은 계산에 따르면 LLR의 갱신 과정은 종래기술에서 상술한 <수학식 4>가 하기 <수학식 9>와 같이 변경된다.
Figure 112002018219221-pat00027
상기 <수학식 8>과 상기 <수학식 9>의 가중치를 통해 존재 가능한 짧은 순환으로 인한 자가-정보(self-information)의 영향을 감쇄시켜 성능 개선을 기대할 수 있다.
이때, 임의의 변수 노드로 입력되는 검사 노드 메시지와 채널 신뢰도는 각각 해당 변수 노드가 '0'또는 '1'의 값을 가질 확률을 나타내므로, 이들의 부호가 동일하지 않으면 전송로에서, 또는 복호 과정에서 오류가 발생되었다고 간주할 수 있다. 따라서 이러한 경우 상기 메시지들을 통해 얻게 되는 변수 노드 메시지나 LLR은, 변수 노드로 입력되는 모든 메시지들의 부호가 동일한 경우 얻게 되는 변수 노드 메시지나 LLR에 비해 신뢰도가 떨어진다고 볼 수 있다. 그러므로 변수 노드로 입력되는 모든 메시지들의 부호가 동일하지 않으면 해당 변수 노드 메시지와 LLR값에 1보다 작은 가중치를 곱한다. 또한 상기 가중치의 값은 실험을 통해 적절한 값으로 설정할 수 있다.
이하의 설명에서 상술한 바와 같이 적응형 가중치를 고려한 수정 sum-product 알고리즘을 "가중치를 갖는 수정 sum-product 알고리즘(sum-product algorithm with weighting)"이라 칭한다.
도 2는 본 발명에 따라 LDPC 부호의 반복 복호 시 가중치를 갖는 수정 sum-product 알고리즘에 따른 제어 흐름도이다. 이하 도 2를 참조하여 본 발명에 따른 LDPC 부호의 반복 복호 시 가중치를 갖는 수정 sum-product 알고리즘에 따른 제어 과정을 상세히 설명한다.
200단계는 초기화 과정을 도시하였다. 초기화 과정에서는 LDPC code 구조를 나타내는 펙터 그래프(factor graph)의 변수 노드 메시지의 초기 값을 설정한다. 상기 변수 노드 메시지의 초기 값은 해당 변수 노드에 대응하는 수신 code 심볼에 대한 채널 신뢰도로 한다. 이때, 가중치를 갖는 수정 sum-product 알고리즘은 LLR 도메인(domain)에서의 연산을 수행하므로, 채널 신뢰도는 수신 심볼에 신호 대 잡음비(SNR)를 곱한 형태이다. 이에 따라 펙터 그래프(Factor graph)상의 모든 변수 노드에 대해 메시지 초기화를 수행한다.
상기한 바와 같이 초기화 과정을 수행한 후 202단계로 진행한다. 상기 202단계는 검사 노드 메시지의 갱신 과정이다. 상기 검사 노드 메시지의 갱신 과정은 전술한 <수학식 7>을 이용하여 검사 노드 메시지를 갱신한다. 즉, 변수 노드 n으로 출력되는 검사 노드 메시지의 갱신 과정은, 검사 노드로 입력되는 메시지 가운데 변수 노드 n으로부터의 입력을 제외한 모든 입력 메시지들의 부호를 모두 곱하여 출력 메시지의 부호로 한다. 그리고 상기 입력 메시지들의 절대값 가운데 가장 최소 값을 택하여 출력 메시지의 크기로 한다. 이러한 방식으로 상기 도 1과 같은 펙터 그래프 상의 모든 검사 노드에 대해 메시지 갱신을 수행한다.
상기 검사 노드 메시지의 갱신이 완료되면, 변수 노드 메시지의 갱신을 수행하는 204단계로 진행한다. 상기 <수학식 8>을 이용하여 변수 노드 메시지를 갱신한다. 즉, 검사 노드 n으로 출력되는 변수 노드 메시지의 업데이트 과정은, 변수 노드로 입력되는 메시지 가운데 검사 노드 m으로부터의 입력을 제외한 모든 입력 메시지들에 가중치를 곱하고, 이 값들을 가산한다. 그리고, 변수 노드 메시지의 초기 값인 채널 신뢰도를 더하여 이루어진다. 이때, 변수 노드로 입력되는 모든 메시지의 부호와 채널 신뢰도의 부호가 모두 동일하면 가중치는 1이고, 그렇지 않으면 가중치는 1보다 작은 값이 된다. 상기 변수 노드 메시지의 갱신 과정인 204단계에서도 상기 도 1과 같은 형태의 펙터 그래프 상의 모든 변수 노드에 대해 메시지 업데이트를 수행한다.
그런 후 LLR 갱신을 위해 206단계로 진행한다. 206단계로 진행하면, 상기 <수학식 9>를 이용하여 변수 노드에 해당하는 code 심볼에 대한 LLR 값을 갱신한다. LLR 갱신 과정은 변수 노드로 입력되는 모든 메시지에 가중치를 곱하고, 이를 가산한 값에 변수 노드 메시지의 초기 값인 채널 신뢰도를 더한 값이다. 이때, 가중치의 값은 상기 204단계에서와 동일한 방식에 의해 정해진다. LLR 갱신 과정 또한 펙터 그래프 상의 모든 code 심볼에 대한 LLR 업데이트를 수행한다.
이후 208단계로 진행하여 경판정(hard decision) 과정을 수행한다. 상기 경판정 과정은 LDPC 부호의 임의의 한 심볼에서 LLR 값이 0보다 크면 이진수 '0'을 복호하고, LLR 값이 0보다 작으면 이진수 '1'을 복호하여 이 값을 저장한다. 하나의 LDPC 부호어(codeword)를 이루는 모든 code 심볼에 대해 경판정을 수행하고, 복호된 부호어를 얻는다. 이와 같이 경판정을 수행한 후 210단계로 진행한다.
상기 210단계 및 214단계는 패리티 검사를 통해 오류가 발생하였는가를 검사하는 과정이다. 상기 LDPC 부호의 모든 code 심볼에 대한 경판정이 완료되면 이들로부터 하나의 부호어(codeword)를 얻을 수 있게 된다. 상기 얻어진 부호어에 대하여 패리티 검사 행렬에 의해 정의되는 모든 패리티 검사식을 적용하여 오류가 검출되지 않으면 212단계로 진행하여 복호를 중지한다. 그리고 해당 부호어를 복호 완료된 부호어로 저장한다. 반면에 상기 210단계의 검사결과 오류가 발생하면 214단계로 진행하여 미리 설정된 최대 횟수만큼 수행하였는가를 검사한다. 상기 검사결과 미리 설정된 횟수만큼 수행하지 않은 경우 218단계로 진행하여 복호 회수를 1만큼 증가시킨 후 202단계로 진행하여 반복 복호를 계속 수행한다. 그러나 상기 214단계의 검사결과 미리 설정한 횟수만큼 반복 복호의 과정을 거친 후에도 오류가 계속 검출되면 216단계로 진행하여 복호를 중지한다. 그리고, 복호 실패(decoding failure)를 선언하고, 해당 부호어는 버린다.
도 3a는 본 발명의 실시 바람직한 예에 따라 임의의 검사 노드에서 메시지의 갱신 시 제어 흐름도이다. 이하 도 3a를 참조하여 임의의 검사 노드에서 메시 갱신 시 제어 과정을 상세히 설명한다.
상기 300단계는 임의의 변수 노드로부터 임의의 검사 노드로 입력되는 메시지들을 재 정렬하는 단계이다. 즉, 임의의 검사 노드 m으로 입력되는 메시지 가운데 변수 노드 n으로부터 입력되는 메시지의 인덱스를 새로운 메시지 인덱스 i의 최초 인덱스 (i=0)로 할당한다. 302단계는 검사 노드로 입력되는 메시지 가운데 메시지 인덱스 i가 0인 경우를 제외한 모든 메시지의 절대값을 비교하여 그 가운데 최소 값을 찾는 단계이다. 이와 같이 최소 값을 갖는 메시지 인덱스를 찾은 후 304단계로 진행한다. 상기 304단계는 검사 노드로 입력되는 메시지 가운데 메시지 인덱스 i가 0인 경우를 제외한 모든 메시지의 부호를 곱하는 단계이다. 그리고 상기 306단계로 진행한다. 상기 306단계는 상기 302단계에서 구한 메시지 절대값의 최소값 과, 상기 304단계로부터 구한 메시지 부호를 곱하여 최종 메시지, 즉 임의의 검사노드 m으로부터 임의의 변수 노드 n으로 전달되는 메시지를 구하는 단계이다. 결과적으로 도 3a는 상기 <수학식 7>을 구하는 과정을 도시한 것이다.
도 3b는 본 발명의 바람직한 실시 예에 따라 상기 도 3a의 과정을 수행하는 검사 노드와 연결된 변수 노드에서 메시지 갱신 시의 제어 흐름도이다. 이하 도 3a 및 도 3b를 참조하여 본 발명에 따라 소정 검사 노드와 연결된 변수 노드에서 메시지 갱신 시의 제어 과정을 상세히 설명한다.
상기 310단계는 임의의 검사 노드로부터 임의의 변수 노드로 입력되는 메시지를 재 정렬하는 과정이다. 즉, 임의의 변수 노드 n으로 입력되는 메시지 가운데 검사 노드 m으로부터 입력되는 메시지의 인덱스를 새로운 메시지 인덱스 i의 최초 인덱스 (i=0)로 할당한다. 그런 후 312단계로 진행한다. 상기 312단계는 임의의 변수 노드로 입력되는 모든 메시지의 부호와, 상기 변수 노드에 대한 초기 메시지 값의 부호를 더하여 임의의 변수 s를 구하는 단계이다. 이와 같이 임의의 변수를 구한 후 314단계로 진행한다. 상기 314단계는 상기 312단계에서 구한 s의 절대값을 변수 노드로 입력되는 모든 메시지의 수에 1을 더한 값과 비교한다. 상기 비교 결과 s의 절대값이 변수 노드 입력 메시지의 수에 1을 더한 값과 일치하면, 316단계로 진행하고, 그렇지 않은 경우 318단계로 진행한다. 여기서 상기 s의 절대값이 변수 노드 입력 메시지의 수에 1을 더한 값과 일치하는가를 검사하는 것은 변수 노드로부터 입력되는 모든 메시지 및 변수 노드 메시지의 초기 값의 부호가 모두 일치하는가를 검사하는 것이다. 이와 같은 검사 결과 변수 노드로 입력되는 모든 메시지 및 변수 노드 메시지의 초기 값의 부호가 모두 일치하여 316단계로 진행하면 상기 변수 노드에 대한 가중치의 값을 1로 설정한다. 그러나 s의 절대값이 변수 노드 입력 메시지의 수에 1을 더한 값과 일치하지 않으면, 즉 변수 노드로 입력되는 모든 메시지 및 변수 노드 메시지의 초기 값의 부호가 하나라도 불일치하면, 318단계로 진행하여 상기 변수 노드에 대한 가중치의 값을 미리 설정한 1보다 작은 값으로 설정한다. 그런 후 316단계 또는 318단계를 수행한 후 320단계로 진행한다. 상기 320단계는 316단계 또는 318단계에서 구한 가중치와, 임의의 변수 노드에 대한 초기 메시지와, 임의의 변수 노드로 입력되는 검사 노드 메시지 가운데 메시지 인덱스 i가 0인 경우를 제외한 모든 메시지들의 합을 이용하여 임의의 변수 노드 n으로부터 임의의 검사 노드 m으로 전달되는 메시지를 구한다. 그리고 322단계로 진행한다. 상기 322단계는 상기 316단계 또는 상기 318단계로부터 구한 가중치와, 임의의 변수 노드에 대한 초기 LLR 메시지와, 임의의 변수 노드로 입력되는 모든 검사 노드 메시지들의 합을 이용하여 임의의 변수 노드 n에 대한 LLR 메시지를 구한다.
이하에서 본 발명에 따른 각 노드에서의 메시지 갱신을 위한 프로세서의 구현 실시 예를 살피기로 한다. 우선 간단한 구현 실시 예를 위해 임의의 검사 노드와 변수 노드의 입력 가지 수는 각각 3개로 가정한다. 이에 대한 임의의 검사 노드 m과 변수 노드 n에서의 메시지 갱신을 도면으로 도시하면 각각 도 4a 및 도 4b와 같이 도시할 수 있다. 또한 상기 도 4a 및 도 4b에 도시된 바와 같이 구성될 경우 각 노드에 대한 프로세서를 도면으로 도시하면 각각 도 5a와 도 5b로 도시할 수 있다.
상기 도 5a 및 도 5b에 도시한 도면은 각 node로의 입력 가지 수를 항상 3으로 가정하였으므로, 검사 노드 프로세서의 입출력 포트(port)의 수는 각각 3이고, 변수 노드 프로세서의 입출력 포트(port) 수는 LLR을 고려하여 각각 4개이다. 실제의 정규 LDPC code에 대한 각 노드 프로세서의 입출력 포트(port) 수는 각 노드의 입력 가지 수인
Figure 112002018219221-pat00028
Figure 112002018219221-pat00029
에 따라 정해진다. 프로세서 내부의 구조는 본 발명에서 제안한 가중치를 갖는 수정 sum-product 메시지 갱신 룰(rule)을 구현한 것이다.
상기 도 5a는 입력 변수 노드 메시지를 가공하여 검사 노드 메시지를 구하는 상기 <수학식 7>을 구현한 하드웨어 장치의 예이다. 상기 도 5a의 절대값 계산 장치들(500)은 입력 변수 노드 메시지의 절대값을 구한다. 그리고 입력 변수 계산 장치(502)는 입력 변수 노드 메시지의 부호를 구하는 장치들이다. 상기 절대값 계산 장치(500)에서 계산된 각 절대값들은 최소 값 선택 장치들(504)로 입력되어 두 개의 입력에 대한 최소 값을 선택한다. 곱셈 장치들(506)은 두 개의 입력 값을 곱한 값을 구하는 곱셈기 장치들이다. 먼저 입력 변수 계산장치들(502)에서 출력된 값들은 2개씩 쌍으로 구성되어 3개의 곱셈 장치들(506)로 입력된다. 여기서 입력 변수 계산장치들(502)로부터의 값을 쌍으로 계산하는 곱셈 장치들(506)이 3개로 구성된 것은 검사 노드로 입력되는 가지가 3개인 것으로 가정하였기 때문이다. 이와 같이 상기 입력 변수 계산장치들(502)로부터의 출력 값을 2개씩 쌍으로 구성하여 곱셈을 수행한 3개의 곱셈 장치들의 출력과 상기 최소 값 선택 장치들(504)의 출력신호들은 다시 3개의 곱셈 장치들(506)로 입력된다. 이와 같이 3개의 곱셈 장치들(503)은 입력된 두 값을 곱해서 각 변수 노드들로 전송할 값들(rm0, rm1, rm2)을 생성한다.
상기 도 5b는 입력 검사 노드 메시지와 LLR 메시지를 가공하여 변수 노드 메시지와 새로운 LLR 메시지를 구하는 상기 <수학식 8> 및 상기 <수학식 9>를 구현한 하드웨어 장치의 예이다. 상기 도 5b의 앞단에 구비된 3개의 가산기 장치들(510)은 각 검사 노드로부터의 입력 중 2개씩 쌍으로 구성되어 입력되는 입력을 더하여 출력한다. 또한 4개의 부호 검출 장치들(512)은 입력 검사 노드 메시지와 최초 입력되는 채널의 신뢰도에 따른 LLR값의 부호를 계산하여 출력한다. 상기 부호 검출 장치들(512)의 출력은 가산 장치(514)로 입력된다. 상기 가산 장치(514)는 각 입력 신호들을 더하여 출력한다. 그리고 상기 가산 장치(514)에서 계산된 값은 절대값 계산 장치(516)로 입력된다. 그러면 절대값 계산 장치(516)는 상기 입력된 값의 절대값을 계산하여 출력한다. 상기 절대값 계산 장치(516)의 출력과 고정된 임의의 값을 입력으로 하는 비교 장치(518)는 두 개의 입력에 대하여, 두 입력 값이 서로 같으면 '1'의 값을, 그렇지 않으면 '0'의 값을 출력한다. 상기 출력된 값은 선택 장치(520)의 제어 신호로 입력된다. 상기 선택 장치(520)는 선택 신호의 값 - 0 또는 1- 에 따라 두 개의 입력(1 또는 fg) 중 하나를 선택하여 출력한다. 또한 4개의 곱셈 장치들(522)은 먼저 상기 검사 노드로부터 수신된 값을 쌍으로 가산한 3개의 가산기들(510)의 출력들을 입력으로 가지는 곱셈기들이 있다. 또한 상기 검사 노드로부터 수신되는 신호 중 첫 번째 검사노드로부터 수신되는 신호를 입력으로 가지는 곱셈기가 구비된다. 이와 같이 곱셈기들은 총 4개로 구성된다. 상기 4개의 모든 곱셈기들(522)은 상기 선택 장치(520)의 출력을 다른 입력으로 가진다. 따라서 상기 각 곱셈기들(522)은 입력된 두 신호의 곱을 계산하여 출력한다. 이와 같이 출력된 값들은 각 가산 장치들(510)로 입력되어 가산된 값을 출력한다. 또한 상기 가산장치들(510) 또한 4개로 구성되는데, 가산되는 값은 서로 다른 값을 가지고 가산이 이루어진다. 이를 상술하면, 3개의 가산기들은 앞에서 상술한 3개의 곱셈기의 각 출력을 하나의 입력으로 한다. 그리고 상기 3개의 가산기들의 다른 입력은 수신 부호어의 채널 신뢰도로 정의되는 초기 값을 다른 입력으로 한다. 상기 3개의 가산기들은 이와 같은 각 입력들을 각각 가산하여 출력한다. 또한 상기 다른 하나의 곱셈기의 출력을 입력으로 하는 가산기는 제1검사 노드로 출력되는 신호를 다른 입력으로 한다. 따라서 제1검사 노드로 입력되는 신호와 상기 곱셈기의 출력을 가산하여 LLR 값을 결정하기 위한 출력으로 한다.
그러면 상술한 바와 같이 구성하여 LDPC 코드를 복호할 경우 모의 실험 결과에 대하여 살펴본다. 상기 모의 실험은 2가지 경우로 구분하였다. 첫째로, 길이가 짧은 LDPC 부호에 대한 모의 실험과, 둘째로, 길이가 긴 LDPC 부호에 대한 모의 실험으로 구분된다.
그러면 먼저 길이가 짧은 LDPC 부호에 대한 모의 실험에 대하여 살펴본다. 우선 실험 환경은 하기와 같이 구성한다.
(1) 펙터 그래프(Factor graph) 상에서 검사 노드로 입력되는 가지(edge)의 수가 6개로 항상 일정하고, 변수 노드로 입력되는 가지의 수가 3개로 항상 일정한 정규 LDPC code를 사용한다. 그리고, 길이가 6보다 작은 짧은 순환(short cycle)은 펙터 그래프(factor graph) 생성 과정에서 제거한다.
(2) 검사 노드의 수는 252개, 변수 노드의 수는 504개로 한다.
(3) 모의 실험상에서 LDPC 부호를 생성하는 모든 정보 bit는 모두 '0'으로 가정한다. 따라서 전송되는 LDPC 부호어 심볼 또한 모두 '0'으로 가정하였다. LDPC 부호는 선형 부호(linear code)이므로, 이러한 실험에 의해 얻는 결과는 일반성을 잃지 않는다.
(4) BPSK 복조 방식 및 채널 환경은 AWGN 전송로로 가정한다.
(5) 최대 반복 복호에 이르지 않고 복호 완료된 부호어는 항상 오류가 없다고 가정한다. 즉, Undetected error 확률은 0이라 가정한다.
(6) 변수 노드 메시지 갱신 과정의 1보다 작은 가중치는
Figure 112002018219221-pat00030
로 설정한다.
(7) 복호 성능 기준은 정보 bit 당 energy (Eb/No)에 대한 부호어 오류 확률(Word error rate, WER)로 설정한다.
(8) 최대 반복 복호 회수는 50회 및 200회로 설정한다.
상기한 바와 같은 조건 하에서 실험한 결과는 도 6과 같이 도시된다. 도 6은 최대 반복횟수를 50회로 설정하였을 경우 길이가 짧은 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프이다.
상기 도 6에서 'opt'는 최적의 sum-product 알고리즘에 의한 복호 성능을 나타내며, 'with corr.'는 교정 값을 갖는 sum-product 알고리즘에 의한 복호 성능을 나타내고, 'with weight'는 본 발명에서 제안하는 가중치를 갖는 수정 sum-product 알고리즘에 의한 복호 성능을 나타낸다. 상기 도 6에서 보듯이 높은 신호 대 잡음비에서 본 발명에서 제안하는 가중치를 갖는 sum-product 알고리즘에 의한 복호 성능이 가장 우수한 WER 성능을 보이고 있음을 알 수 있다. 이는 길이가 짧은 LDPC 부호의 경우, 랜덤하게 정의된 펙터 그래프 상에 짧은 순환들이 존재할 확률이 높고, 이에 따라 궤환되는 자가-정보(self-information)에 의한 영향이 복호 성능에 나쁜 영향을 미치는 경우가 많아지기 때문이다. 일반적으로 펙터 그래프 상의 순환에 의한 영향은 길이가 짧은 LDPC 부호에서는 짧은 순환의 발생 확률이 높고, 이에 따라 복호 성능의 열화를 발생시킬 확률 또한 높아지게 된다. 반면, LDPC 부호의 길이가 길어질수록, 짧은 순환의 발생 확률이 줄어들기 때문에 그 영향은 점차 감소하게 되는 것으로 알려져 있다. 그리고, 짧은 순환이 존재한다 하더라도 반복 복호 회수를 증가시키면 이에 의한 복호 성능의 영향은 또한 감소하는 것으로 알려져 있다.
본 발명에서 제안한 가중치를 갖는 수정 sum-product 알고리즘은 변수 노드 메시지 갱신 과정에서 1보다 작은 가중치를 고려하고, 이 가중치에 의해 펙터 그래 프 상에 존재하는 짧은 순환에 의해 궤환되는 자가-정보(self-information)의 영향을 줄일 수 있기 때문에 가장 우수한 성능을 나타내는 것으로 보인다. 따라서, 가중치를 갖는 수정 sum-product 알고리즘은 길이가 짧고, 랜덤하게 생성한 정규 LDPC 부호의 복호에 있어 연산 복잡도(computational complexity)가 낮으면서도 가장 우수한 WER 성능을 보이고 있음을 확인할 수 있었다.
도 7은 최대 반복횟수를 200회로 설정하였을 경우 길이가 짧은 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프이다.
상기 도 7을 살펴보면 LDPC 부호에 대한 세 가지 방식의 복호 결과에 따른 WER 성능 차이가 최대 반복 회수를 50으로 하였을 때에 비해 감소하여 이들간의 성능 차이가 미미함을 보이고 있음을 알 수 있다. 이는 반복 복호의 회수가 증가하면 LDPC 부호의 짧은 순환에 의한 영향이 감소하기 때문인 것으로 보여진다.
다음으로 길이가 긴 LDPC 부호에 대한 모의 실험에 대하여 살펴본다. 우선 실험 환경은 앞선 실험과 동일하되, LDPC 부호의 검사 노드의 수와 변수 노드의 수를 각각 4986개와 9972개로 증가시켰다. 즉, 임의의 한 LDPC 부호어의 code 심볼의 수를 9972개로 증가시켜 길이가 긴 LDPC 부호에 대한 복호 실험을 수행하였다. 그리고, 가중치를 갖는 sum-product 알고리즘의 변수 노드 메시지 갱신 과정의 1보다 작은 가중치 또한 짧은 LDPC 부호의 실험과 동일하게 설정한다.
도 8은 최대 반복횟수를 50회로 설정하였을 경우 길이가 긴 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프이고, 도 9는 최대 반복횟수를 200회로 설정하였을 경우 길이가 긴 LDPC 부호의 복호를 본 발명에 따른 방법과, 종래의 방법 및 최적의 방법 사용 시 부호어의 오류 확률을 비교한 그래프이다.
상기 길이가 긴 LDPC 부호는 길이가 짧은 LDPC 부호에 비해 펙터 그래프 상에서 짧은 순환이 발생할 확률이 줄어들기 때문에, 짧은 순환이 성능에 미치는 영향은 길이가 짧은 LDPC 부호에 비해 미미하다고 알려져 있다. 따라서, 길이가 긴 LDPC부호의 경우에는 도 8에서와 같이 최적의 sum-product 알고리즘에 의한 복호 성능이 가장 우수한 것을 알 수 있다. 그리고, 최적의 sum-product 알고리즘과 유사한, 교정 값을 갖는 sum-product 알고리즘에 의한 복호 성능이 그 다음으로 우수하고, 본 발명에서 제안하는 가중치를 갖는 수정 sum-product 알고리즘에 의한 복호 성능이 가장 좋지 않은 것으로 확인되었다. 이는 본 발명에서 제안하는 가중치가 짧은 순환에 의한 자가-정보(self-information) 뿐 아니라, 올바른 정보까지도 감쇄시키는 영향이 있기 때문이다. 이는 짧은 LDPC 부호에서는 그리 문제가 되지 않았으나, 길이가 긴 LDPC 부호에서는 복호 성능의 열화로 나타나기 때문이다. 그러나 도 8에서 보듯이 가중치를 갖는 sum-product 알고리즘에 의한 성능 열화는 매우 미미하여,
Figure 112002018219221-pat00031
의 WER에서 최적의 sum-product 알고리즘에 의한 성능에 비해 0.05 dB 정도 차이가 있고, 교정 값을 갖는 sum-product 알고리즘에 의한 성능 차이는 0.01 dB 정도로 무시할 만한 수준임을 확인할 수 있다. 상기 도 8 및 도 9를 비교해보면 최대 반복 복호 회수를 증가시키면 이들간의 성능 차이가 좀 더 감소함을 알 수 있다.
상술한 바와 같이 본 발명에서 제안한 수정 sum-product 알고리즘의 사용으로 인해 복호 과정의 연산 복잡도(computational complexity)를 감소시킬 수 있는 이점이 있다. 또한 최적의 sum-product 알고리즘을 사용하여 얻을 수 있는 복호 성능보다 우수하거나, 이에 근접하는 성능을 얻을 수 있는 이점이 있다.

Claims (14)

  1. 저밀도 패리티 검사 코드를 이용하는 통신 시스템에서 순방향 오류 정정 부호를 복호하는 방법에 있어서,
    무선 채널을 통해 수신된 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우드율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하는 과정과,
    각 변수 노드로 입력된 메시지를 상기 각 변수 노드와 연결된 각 검사 노드로 전달하는 전달 과정과,
    상기 각 검사 노드가 자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하는 검사 노드 갱신 과정과,
    상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 각각 상기 갱신된 메시지를 수신하고, 상기 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하는 변수 노드 갱신 과정과,
    상기 각 변수 노드가 자신과 연결된 검사 노드들로부터 수신한 메시지들과 초기 입력된 로그 우도율을 가산하여 로그 우도율을 갱신하는 과정과,
    상기 갱신된 로드 우도율값들을 경판정하고, 상기 경판정된 값들을 이용하여 상기 저밀도 패리티 코드 행렬의 패리티 검사를 수행하는 패리티 검사 과정을 포함함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
  2. 제1항에 있어서,
    상기 패리티 검사를 수행한 결과 오류가 발생 시 미리 결정된 반복 횟수 이하인 경우, 상기 전달 과정부터 상기 패리티 검사 과정까지를 반복 수행함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
  3. 제1항에 있어서, 상기 검사 노드 갱신 과정은,
    하기 <수학식 10>을 통해 상기 갱신된 메시지를 구하는 것임을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
    Figure 112008088457981-pat00044
    상기 <수학식 10>에서
    Figure 112008088457981-pat00045
    은 준 반복 복호 과정에서 j 번째 반복 복호 과정에서 얻게 되는 값으로 검사 노드 m에서 변수 노드 n으로 전달하는 메시지이며,
    Figure 112008088457981-pat00046
    는 j 번째 반복 복호 과정에서 변수 노드 I로부터 검사 노드 m으로 전달되는 메시지이다. 이때, i 는 검사 노드 m에 연결된 변수 노드들을 0부터
    Figure 112008088457981-pat00047
    까지 재 정렬한 값이다.
  4. 제1항에 있어서,
    상기 변수 노드 갱신 과정에서 상기 초기 메시지는 하기 <수학식 11>을 통해 갱신됨을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
    Figure 112008088457981-pat00048
    상기 <수학식 11>에서
    Figure 112008088457981-pat00049
    은 j 번째 반복 복호 과정에서 얻게 되는 값으로 변수 노드 n에서 검사 노드 m으로 전달하는 메시지이며,
    Figure 112008088457981-pat00050
    은 j 번째 반복 과정에서 검사 노드 i로부터 변수 노드 n으로 전달되는 메시지이고, i는 변수 노드 n에 연결된 검사 노드들을 0부터
    Figure 112008088457981-pat00051
    까지 재 정렬한 값이다. 또한 sgn(x)함수는 x값의 부호를 나타내는 함수로서, x가 0보다 크면 sgn(x)는 1이고, x가 0보다 작으면 sgn(x)는 -1이 된다. 그리고,
    Figure 112008088457981-pat00052
    는 변수 노드 n으로 입력되는 가지(edge)의 수이다.
  5. 제1항에 있어서,
    상기 로그 우도율을 갱신하는 과정에서 상기 로그 우드율은, 하기 <수학식 12>와 같이 갱신됨을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
    Figure 112008088457981-pat00053
    상기 <수학식 12>에서
    Figure 112008088457981-pat00054
    은 j번째 반복 복호 과정에서 변수 노드 n에 정의되는 로그 우도율 값이다.
  6. 제1항에 있어서,
    상기 패리티 검사를 수행한 결과 오류가 발생하지 않은 경우, 상기 복호를 중지하는 복호 중지 과정을 더 포함함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 방법.
  7. 삭제
  8. 행들과 열들의 저밀도 패리티 검사 행렬들로 상기 열의 수를 가지는 이진 비트들을 부호화하여 무선 채널을 통해 전송된 부호 비트들을 복호화하는 순방향 오류 정정 부호를 복호하는 장치에 있어서,
    상기 무선 채널을 통해 수신된 상기 부호 비트들이 영(zero)일 확률과 일일 확률의 비로 나타나는 로그 우도율(LLR) 값으로 변환된 값을 변수 노드들의 초기 메시지의 값으로 설정하고, 입력된 메시지를 자신과 연결된 검사 노드들로 전달한 후, 상기 자신과 연결된 검사 노드들로부터 각각 갱신된 메시지들을 수신하며, 상기 검사 노드들로부터 수신된 갱신된 메시지들의 각 부호와 상기 초기 메시지의 부호가 모두 동일할 경우 1의 가중치를 적용하고, 적어도 하나의 부호가 동일하지 않은 경우 1보다 작은 미리 설정된 값의 가중치를 상기 갱신된 메시지를 전달한 검사 노드를 제외한 다른 모든 검사 노드들로부터 수신된 메시지들의 합에 적용한 값과 해당 변수 노드의 상기 초기 메시지의 값을 가산하여 상기 초기 메시지를 갱신하여 이를 출력하는 변수 노드 메시지 결정 장치와,
    자신과 연결된 변수 노드들로부터 전달된 메시지들 중 절대값이 최소인 값을 가지는 메시지를 검사하고, 갱신된 메시지를 전달할 변수 노드로부터 전달된 메시지를 제외한 다른 메시지들의 부호의 곱을 계산하여 상기 최소인 값을 가지는 메시지의 부호로 결정하고, 상기 결정된 부호와 상기 최소인 값을 가지는 메시지를 상기 갱신된 메시지로 구하여 출력하는 검사 노드 메시지 결정 장치와,
    상기 각 변수 노드와 연결된 검사 노드들로부터 상기 각 변수 노드로 입력되는 메시지들에 상기 가중치를 곱하고, 상기 가중치를 곱한 값을 가산한 값에 상기 초기 메시지의 값을 더한 값으로 상기 로그 우도율 값을 갱신하여 출력하는 로그 우도율 결정기와,
    상기 로그 우도율 결정기의 출력 값을 영(zero) 또는 일의 값의 이진수로 복호하여 경판정을 수행하는 경판정 장치와,
    상기 경판정 된 값들을 이용하여 저밀도 패리티 검사 코드 행렬의 패리티 검사를 수행하는 패리티 검사 장치를 포함함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 장치.
  9. 제8항에 있어서, 상기 패리티 검사 장치는,
    상기 패리티 검사를 수행한 결과 오류가 발생하지 않은 경우, 상기 수신된 부호 비트들에 대한 복호를 중지시키는 동작을 더 수행함을 특징으로 하는 순방향 오류 정정부호를 복호하는 장치.
  10. 삭제
  11. 제9항에 있어서,
    상기 패리티 검사를 수행한 결과 오류가 발생 시 미리 결정된 반복 횟수 이하인 경우, 상기 변수 노드 결정 장치가 상기 초기 메시지를 해당 검사 노드들로 전달한 이후 상기 패리티 검사 장치가 상기 패리티 검사를 수행하기까지의 동작을 반복 수행함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 장치.
  12. 제8항에 있어서, 상기 검사 노드 메시지 결정 장치는,
    하기 <수학식 13>을 통해 상기 갱신된 메시지를 구하는 것임을 특징으로 하는 순방향 오류 정정 부호를 복호하는 장치.
    Figure 112008088457981-pat00055
    상기 <수학식 13>에서
    Figure 112008088457981-pat00056
    은 준 반복 복호 과정에서 j 번째 반복 복호 과정에서 얻게 되는 값으로 검사 노드 m에서 변수 노드 n으로 전달하는 메시지이며,
    Figure 112008088457981-pat00057
    는 j 번째 반복 복호 과정에서 변수 노드 I로부터 검사 노드 m으로 전달되는 메시지이다. 이때, i 는 검사 노드 m에 연결된 변수 노드들을 0부터
    Figure 112008088457981-pat00058
    까지 재 정렬한 값이다.
  13. 제8항에 있어서,
    상기 변수 노드 메시지 결정 장치는, 하기 <수학식 14>을 통해 상기 초기 메시지를 갱신함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 장치.
    Figure 112008088457981-pat00059
    상기 <수학식 14>에서
    Figure 112008088457981-pat00060
    은 j 번째 반복 복호 과정에서 얻게 되는 값으로 변수 노드 n에서 검사 노드 m으로 전달하는 메시지이며,
    Figure 112008088457981-pat00061
    은 j 번째 반복 과정에서 검사 노드 i로부터 변수 노드 n으로 전달되는 메시지이고, i는 변수 노드 n에 연결된 검사 노드들을 0부터
    Figure 112008088457981-pat00062
    까지 재 정렬한 값이다. 또한 sgn(x)함수는 x값의 부호를 나타내는 함수로서, x가 0보다 크면 sgn(x)는 1이고, x가 0보다 작으면 sgn(x)는 -1이 된다. 그리고,
    Figure 112008088457981-pat00063
    는 변수 노드 n으로 입력되는 가지(edge)의 수이다.
  14. 제8항에 있어서,
    상기 로그 우도율 결정기는, 하기 <수학식 15>를 통해 상기 로그 우도율을 갱신함을 특징으로 하는 순방향 오류 정정 부호를 복호하는 장치.
    Figure 112008088457981-pat00064
    상기 <수학식 15>에서
    Figure 112008088457981-pat00065
    은 j번째 반복 복호 과정에서 변수 노드 n에 정의되는 로그 우도율(LLR) 값이다.
KR1020020032690A 2002-06-11 2002-06-11 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법 KR100891782B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020020032690A KR100891782B1 (ko) 2002-06-11 2002-06-11 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
US10/458,204 US7137060B2 (en) 2002-06-11 2003-06-11 Forward error correction apparatus and method in a high-speed data transmission system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020032690A KR100891782B1 (ko) 2002-06-11 2002-06-11 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법

Publications (2)

Publication Number Publication Date
KR20030095144A KR20030095144A (ko) 2003-12-18
KR100891782B1 true KR100891782B1 (ko) 2009-04-07

Family

ID=29707768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020032690A KR100891782B1 (ko) 2002-06-11 2002-06-11 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법

Country Status (2)

Country Link
US (1) US7137060B2 (ko)
KR (1) KR100891782B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10804939B2 (en) 2018-07-03 2020-10-13 SK Hynix Inc. Memory controller and operating method thereof

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959411B2 (en) * 2002-06-21 2005-10-25 Mediatek Inc. Intelligent error checking method and mechanism
US7694190B2 (en) * 2003-01-16 2010-04-06 Nxp B.V. Preventing distribution of modified or corrupted files
US7296216B2 (en) * 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
KR20040101743A (ko) * 2003-05-26 2004-12-03 삼성전자주식회사 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법
CN100412979C (zh) * 2003-10-08 2008-08-20 宇田控股有限公司 错误码更正方法与装置
US7340671B2 (en) * 2003-10-10 2008-03-04 Regents Of The University Of California Decoding low density parity codes
KR100538281B1 (ko) * 2003-12-26 2005-12-22 한국전자통신연구원 채널 신뢰도 값의 비균일 양자화를 이용한 복호 전처리장치 및 그를 이용한 저밀도패리티검사 복호 시스템
JP4296949B2 (ja) * 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
US7171603B2 (en) * 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
KR100762619B1 (ko) * 2004-05-21 2007-10-01 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
JP4138700B2 (ja) * 2004-05-31 2008-08-27 株式会社東芝 復号装置および復号回路
GB0418263D0 (en) * 2004-08-16 2004-09-15 Ttp Communications Ltd Soft decision enhancement
JP4551740B2 (ja) * 2004-11-08 2010-09-29 株式会社東芝 低密度パリティチェック符号復号器及び方法
KR100703271B1 (ko) * 2004-11-23 2007-04-03 삼성전자주식회사 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치
KR100846869B1 (ko) * 2004-12-16 2008-07-16 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법
EP1715589A1 (en) * 2005-03-02 2006-10-25 STMicroelectronics N.V. LDPC decoder in particular for DVB-S2 LDCP code decoding
EP1717959A1 (en) * 2005-04-29 2006-11-02 STMicroelectronics N.V. Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
EP1881610B1 (en) * 2005-05-13 2015-06-03 NEC Corporation Weighted LDPC decoding using the MaxLog approximation
US7562279B2 (en) * 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
CN101248583B (zh) * 2005-07-13 2012-04-18 三菱电机株式会社 通信装置以及解码方法
KR100804793B1 (ko) * 2005-10-07 2008-02-20 삼성전자주식회사 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
JP4807063B2 (ja) * 2005-12-20 2011-11-02 ソニー株式会社 復号装置、制御方法、およびプログラム
US20100279603A1 (en) * 2006-02-27 2010-11-04 Matsushita Electric Industrial Co., Ltd. Radio communication apparatus and relay transmission method
WO2007102344A1 (ja) * 2006-02-28 2007-09-13 Matsushita Electric Industrial Co., Ltd. 無線通信装置および中継送信方法
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
US7941737B2 (en) * 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
US7895500B2 (en) * 2006-07-28 2011-02-22 Via Telecom Co., Ltd. Systems and methods for reduced complexity LDPC decoding
US8209582B1 (en) 2006-11-07 2012-06-26 Marvell International Ltd. Systems and methods for optimizing a product code structure
KR100919779B1 (ko) * 2007-03-06 2009-10-01 재단법인서울대학교산학협력재단 저밀도 패리티 검사 부호를 위한 복호화기 및 복호화 방법
TW200838160A (en) * 2007-03-09 2008-09-16 Univ Nat Chiao Tung Cyclic comparison method of low density parity check decoder
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US20090013239A1 (en) * 2007-07-02 2009-01-08 Broadcom Corporation LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
KR101363411B1 (ko) * 2007-10-19 2014-02-18 포항공과대학교 산학협력단 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호수신 장치 및 방법
EP2066038A1 (en) * 2007-11-30 2009-06-03 Deutsche Telekom AG Method and system for constructing and decoding rateless codes with partial information
KR100956592B1 (ko) * 2007-12-13 2010-05-11 한국전자통신연구원 메시지 전달 알고리즘을 이용한 ldpc 코드 부호화 장치및 그 방법
US8327215B2 (en) 2007-12-13 2012-12-04 Electronics And Telecommunications Research Institute Apparatus and method for encoding LDPC code using message passing algorithm
US8291292B1 (en) * 2008-01-09 2012-10-16 Marvell International Ltd. Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes
US8201049B2 (en) * 2008-02-23 2012-06-12 Montage Technology Inc. Low density parity check (LDPC) decoder
US8443033B2 (en) * 2008-08-04 2013-05-14 Lsi Corporation Variable node processing unit
US8219873B1 (en) * 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
US8307255B2 (en) * 2008-11-12 2012-11-06 Texas Instruments Incorporated Scalable decoder architecture for low density parity check codes
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
JP5197544B2 (ja) * 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
TWI419481B (zh) 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
KR101718543B1 (ko) * 2010-11-17 2017-03-22 한국과학기술원 개선된 비트 반전 알고리즘 기반의 저밀도 패리티 검사 부호를 위한 복호 방법, 장치 및 이를 위한 기록 매체
US9294129B2 (en) * 2013-01-16 2016-03-22 Maxlinear, Inc. Low-power low density parity check decoding
US9331714B1 (en) 2013-04-26 2016-05-03 Altera Corporation Circuit structure and method for high-speed forward error correction
WO2015020395A1 (ko) * 2013-08-05 2015-02-12 엘지전자 주식회사 무선접속시스템에서 신호 수신 방법 및 장치
US8930790B1 (en) 2013-09-13 2015-01-06 U-Blox Ag Method and apparatus for identifying selected values from among a set of values
CN104518802B (zh) * 2013-09-30 2017-12-12 中国科学院声学研究所 一种基于似然比信息对ldpc编码进行解码的方法及***
US9595352B2 (en) 2014-03-17 2017-03-14 Seagate Technology Llc Manufacturer self-test for solid-state drives
KR102265220B1 (ko) * 2015-03-09 2021-06-16 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10691451B2 (en) * 2015-12-28 2020-06-23 Coherent Logix, Incorporated Processor instructions to accelerate FEC encoding and decoding
KR20180009558A (ko) 2016-07-19 2018-01-29 삼성전자주식회사 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
CN106789798B (zh) * 2016-11-22 2020-04-17 北京邮电大学 基于空间耦合数据传输技术的数据发送、接收方法及装置
KR102231278B1 (ko) * 2017-06-07 2021-03-23 한국전자통신연구원 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법
US10680647B2 (en) * 2017-09-25 2020-06-09 SK Hynix Inc. Min-sum decoding for LDPC codes
CN108574492A (zh) * 2018-05-03 2018-09-25 重庆邮电大学 一种改进的ldpc码和积译码方案
CN112005499B (zh) * 2018-10-18 2023-02-03 华为技术有限公司 Ldpc码的译码方法和装置
US20220021400A1 (en) * 2018-12-03 2022-01-20 Université De Bretagne Sud Iterative decoder for decoding a code composed of at least two constraint nodes
US20220052784A1 (en) * 2019-01-14 2022-02-17 Nokia Technologies Oy Data processing in channel decoding
CN113424454A (zh) 2019-02-22 2021-09-21 三菱电机株式会社 纠错解码装置和纠错解码方法
CN111464190B (zh) * 2020-05-14 2023-01-13 中国科学院微电子研究所 Ldpc码与crc结合的交换校验译码方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010092900A (ko) * 2000-03-27 2001-10-27 정명식 터보 복호기에서 반복 복호를 중지하는 장치 및 이를구비한 터보 복호기
US20020034269A1 (en) * 2000-07-28 2002-03-21 Victor Demjanenko Use of soft-decision or sum-product inner coders to improve the performance of outer coders
US20020042899A1 (en) * 2000-06-16 2002-04-11 Tzannes Marcos C. Systems and methods for LDPC coded modulation
WO2002037731A2 (en) * 2000-11-03 2002-05-10 Cute Ltd. Decoding of low density parity check codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
JP4389373B2 (ja) * 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US7000167B2 (en) * 2001-08-01 2006-02-14 International Business Machines Corporation Decoding low density parity check codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010092900A (ko) * 2000-03-27 2001-10-27 정명식 터보 복호기에서 반복 복호를 중지하는 장치 및 이를구비한 터보 복호기
US20020042899A1 (en) * 2000-06-16 2002-04-11 Tzannes Marcos C. Systems and methods for LDPC coded modulation
US20020034269A1 (en) * 2000-07-28 2002-03-21 Victor Demjanenko Use of soft-decision or sum-product inner coders to improve the performance of outer coders
WO2002037731A2 (en) * 2000-11-03 2002-05-10 Cute Ltd. Decoding of low density parity check codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10804939B2 (en) 2018-07-03 2020-10-13 SK Hynix Inc. Memory controller and operating method thereof

Also Published As

Publication number Publication date
KR20030095144A (ko) 2003-12-18
US20030229843A1 (en) 2003-12-11
US7137060B2 (en) 2006-11-14

Similar Documents

Publication Publication Date Title
KR100891782B1 (ko) 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
KR100804793B1 (ko) 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
KR100846869B1 (ko) 저 복잡도 ldpc복호 장치 및 그 방법
JP6009717B2 (ja) 低複雑度受信機および低密度シグネチャ変調のための方法
Trifonov Design of polar codes for Rayleigh fading channel
KR20040056972A (ko) 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기
KR20040008945A (ko) 터보 부호의 복호 장치 및 방법
KR20040101743A (ko) 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법
US10193568B2 (en) Optical coherent receiver with forward error correction
Jayasooriya et al. A new density evolution approximation for LDPC and multi-edge type LDPC codes
Abbas et al. Low complexity belief propagation polar code decoder
KR102092634B1 (ko) Ldpc 부호 복호기 및 복호 방법
KR20100008849A (ko) 통신 시스템에서 순환중복검사 방법 및 장치
Sun et al. Low complexity polar decoder for 5G eMBB control channel
US11545998B2 (en) Offset value determination in a check node processing unit for message-passing decoding of non-binary codes
KR20090012189A (ko) Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법
Yang et al. Error-aware SCFlip decoding of polar codes
KR20210099388A (ko) Ldpc 복호 방법 및 ldpc 복호 장치
Dai et al. Noisy gradient descent bit-flipping decoder based on adjustment factor for LDPC codes
Zhao et al. Fast list decoding of PAC codes with sequence repetition nodes
Kam et al. Low-latency polar decoder using overlapped SCL processing
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
CN109004940B (zh) 一种基于蒙特卡洛的极化码构造方法及***
Kim Improved trellis-based decoder for non-binary LDPC codes
US11245421B2 (en) Check node processing methods and devices with insertion sort

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee