KR100574306B1 - Ldpc 코드를 디코딩하기 위한 방법 및 시스템 - Google Patents

Ldpc 코드를 디코딩하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100574306B1
KR100574306B1 KR1020030044955A KR20030044955A KR100574306B1 KR 100574306 B1 KR100574306 B1 KR 100574306B1 KR 1020030044955 A KR1020030044955 A KR 1020030044955A KR 20030044955 A KR20030044955 A KR 20030044955A KR 100574306 B1 KR100574306 B1 KR 100574306B1
Authority
KR
South Korea
Prior art keywords
parity check
signal constellation
ldpc codes
information
bit
Prior art date
Application number
KR1020030044955A
Other languages
English (en)
Other versions
KR20040004162A (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 KR20040004162A publication Critical patent/KR20040004162A/ko
Application granted granted Critical
Publication of KR100574306B1 publication Critical patent/KR100574306B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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
    • 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
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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/31Coding, 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 combining coding for error detection or correction and efficient use of the spectrum
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/18Phase-modulated carrier systems, i.e. using phase-shift keying
    • H04L27/20Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/36Modulator circuits; Transmitter circuits

Abstract

LDPC(low density parity check) 코드를 사용하여 메시지를 송신하는 방법이 제시된다. 입력 메시지는 패리티 체크 매트릭스의 서브-매트릭스에 제한을 가하는 구성화된 패리티 체크 매트릭스에 따라 인코딩되어 LDPC 코드를 생성한다. LDPC 코드는 무선 통신 시스템(100)(예를 들어, 위성 네트워크) 상에서 송신되고, 상기 무선 통신 시스템(100) 상에서 통신하는 리시버(300)는 상기 LDPC 코드와 관련된 신호 컨스텔레이션(signal constellation)에 따라 수신된 LDPC 코드를 반복적으로 디코딩하도록 구성된다. 리시버(300)는 일 회 이상의 디코딩 반복 후에 신호 배열 비트 매트릭스를 반복적으로 재생성하도록 구성된다.
패리티 체크 매트릭스, LDPC 코드, 신호 컨스텔레이션, 비트 메트릭 발생기

Description

LDPC 코드를 디코딩하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR DECODING LOW DENSITY PARITY CHECK(LDPC) CODES}
첨부 도면에서 본 발명은 제한적이 아니라 예시적으로 도시된 것이며 도면 내의 동일한 참조 번호는 유사한 구성요소를 참조한다.
도 1은 본 발명의 일실시예에 따라 LDPC(Low Density Parity Check) 코드를 이용하도록 구성된 통신 시스템의 도면.
도 2는 도 1의 시스템의 예시적인 트랜스미터의 도면.
도 3은 도 1의 시스템의 예시적인 리시버의 도면.
도 4는 본 발명의 일실시예에 따른 스파스 패리티 체크 매트릭스(sparse parity check matrix)를 도시하는 도면.
도 5는 도 4의 매트릭스의 LDPC 코드의 이분 그래프를 도시하는 도면.
도 6은 본 발명의 일실시예에 따른 스파스 패리티 체크 매트릭스의 서브-매트릭스를 나타내는 도면으로, 서브 매트릭스는 하부 삼각 영역에 제한되는 패리티 체크 값을 포함한다.
도 7은 제한되지 않은 패리티 체크 매트릭스(H 매트릭스)를 이용하는 코드들 간의 성능 대 도 6에 도시된 서브-매트릭스를 갖는 제한된 H 매트릭스를 도시하는 도면.
도 8a와 8b는 각각 비그레이(non-Gray) 8-PSK 변조 방식과, 그레이(Gray) 8-PSK 변조를 도시하는 도면으로, 각각은 도 1의 시스템에 이용될 수 있다.
도 9는 그레이 라벨링 대 비그레이 라벨링을 이용한 코드들 간의 성능을 도시하는 도면.
도 10은 본 발명의 일실시예에 따라, 비그레이 매핑을 사용한 LDPC 디코더의 동작을 도시하는 흐름도.
도 11은 본 발명의 일실시예에 따라, 그레이 매핑을 사용한 도 3의 LDPC 디코더의 동작을 도시하는 흐름도.
도 12a-12c는 본 발명의 일실시예에 따라, 디코딩 프로세스에서 체크 노드와 비트 노드 간의 상호작용을 도시하는 도면.
도 13a와 13b는 본 발명의 다양한 실시예에 따라, 각각 포워드-백워드 방식과 병렬 방식을 이용하는 체크 노드와 비트 노드들 간의 출력 메세지를 계산하는 프로세스를 도시하는 흐름도.
도 14a-14c는 본 발명의 다양한 실시예에 따라 생성된 LDPC 코드의 시뮬레이션 결과를 도시하는 도면.
도 15a 및 15b는 본 발명의 일실시예에 따라, 구성화된 액세스를 지원하여 LDPC 코딩의 임의성(randomness)을 실현하도록 구성된 메모리의 상단과 하단 각각을 도시하는 도면.
도 16은 본 발명의 일실시예에 따라, LDPC 코드를 인코딩하고 디코딩하는 프로세스를 수행할 수 있는 컴퓨터 시스템의 도면.
<도면의 주요 부분에 대한 부호의 설명>
101 : 트랜스미터
103 : 채널
105 : 리시버
307 : 비트 메트릭 발생기
203 : LDPC 인코더
본 발명은 통신 시스템, 특히 코딩된 시스템에 관한 것이다.
통신 시스템들은 잡음이 있는 통신 채널에 걸쳐 신뢰성있는 통신을 보장하기 위하여 코딩을 채용한다. 이들 통신 채널은 이론적인 상한(샤논 한계; Shannon limit)를 정의하는, 일정 신호 대 잡음비(SNR)에서 심볼 당 비트로 표현될 수 있는 고정된 커패시티를 갖는다. 그 결과, 코딩 설계는 이 샤논 한계에 근접하는 레이트를 달성하는 것을 목적으로 해 왔다. 샤논 한계에 근접하는 코드의 한 분류가 LDPC(Low Density Parity Check) 코드이다.
전통적으로, LDPC 코드는 많은 단점들로 인해 널리 채용되지 않았다. 한가지 단점으로는, LDPC 인코딩 기술은 매우 복잡하다는 것이다. 생성기 매트릭스를 사용하여 LDPC 코드를 인코딩하는 것은 매우 큰, 비 스파스 매트릭스(non-sparse matrix)를 저장할 것을 요한다. 또한, LDPC 코드는 효과적이기 위해 큰 블록이 요구되므로, 결과적으로 LDPC 코드의 패리티 체크 매트릭스가 스파스 매트릭스이더라도 이들 매트릭스를 저장하는 것은 문제가 된다.
실시를 하는 관점에서 많은 문제들에 봉착하게 된다. 예를 들어, LDPC 코드가 실제로 보편화되지 못한데 대한 주요한 원인은 저장 문제이다. 또한, LDPC 코드 구현에서 주된 과제는 디코더의 몇가지 프로세싱 엔진(노드)들 간의 네트워크 접속을 달성하는 방법이다. 또한, 디코딩 프로세스에서 계산상의 부하, 특히 노드 동작의 체크가 문제가 된다.
따라서, 단순한 인코딩 및 디코딩 프로세스를 채택한 LDPC 통신 시스템이 필요하다. 또한 LDPC 코드를 이용하여 복잡성을 더하지 않고도, 높은 데이터 레이트를 효과적으로 지원할 필요가 있다. 또한, LDPC 인코더와 디코더의 성능을 향상시킬 필요가 있다. 또한, LDPC 코딩을 구현을 위한 저장 요건을 최소화할 필요가 있다. LDPC 디코더의 프로세싱 노드 간의 통신을 단순화하는 구성이 더 필요하다.
이와 같은 필요성 및 다른 필요성이 본 발명에 의해 언급되고 있으며, 구성화된 LDPC 코드를 디코딩하는 방법이 제시된다. 패리티 체크 매트릭스의 일부를 하부 삼각형에 제한함으로써 및/또는 디코더의 프로세싱 노드들 간의 통신이 매우 간단해지도록 다른 요건을 만족시키게 함으로써 상기 LDPC 코드의 구조가 제공된다. 또한, 송신된 비트에 대한 LDPC 코드의 불균등한 에러 방지 능력을 유리하게 이용하여 더 취약한 비트의 고차 변조 컨스텔레이션(예를 들어, 8-PSK(Phase Shift Keying))에 추가적인 에러 방지를 제공한다. 디코딩 프로세스는 각 디코더 또는 몇몇 디코더의 반복 후에 LDPC 디코더로 신호 컨스텔레이션 비트 메트릭을 반복적으로 재생성하는 과정을 포함한다. 상기 구성은 LDPC 코드를 디코딩하는 효과적인 산출 방법을 제공한다.
본 발명의 일실시예에 따라, LDPC 코드를 디코딩하는 방법이 개시된다. 이 방법은 수신된 노이지 심볼 점들 및 상기 LDPC 코드와 관련된 신호 배열(signal constellation)의 심볼 점들 간의 거리에 관련된 거리 벡터 정보에 기초하여 사전 확률 정보를 수신하는 단계를 포함한다. 이 방법은 또한 사전 확률 정보에 기초하여 사후 확률 정보를 송신하는 단계를 포함한다. 이 방법은 또한 사전 확률 및 사후 확률 정보에 따라 상기 LDPC 코드와 관련된 패리티 체크 방정식이 만족되는지를 판정하는 단계를 포함한다. 부가적으로, 상기 방법은 상기 판정 단계에 기초하여 상기 신호 배열 비트 매트릭스를 선택적으로 재생성하는 단계를 포함한다. 또한, 상기 방법은 상기 재생성된 신호 배열 비트 매트릭스에 기초하여 디코딩된 메시지를 출력하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, LDPC 코드를 디코딩하는 시스템이 개시된다. 이 시스템은 수신한 잡음 심볼 점과 상기 LDPC 코드와 관련된 신호 배열의 심볼 점들 간의 거리에 관련된 거리 벡터 정보에 기초한 사전 확률 정보를 수신하는 수단을 포함한다. 이 시스템은 또한 사전 확률 정보에 기초한 사후 확률 정보를 송신하는 수단을 포함한다. 부가적으로, 이 시스템은 사전 확률 및 사후 확률 정보에 따라 상기 LDPC 코드와 관련된 패리티 체크 방정식이 만족되는지를 판정하는 수단 을 포함한다. 이 시스템은 상기 판정에 기초하여 신호 컨스텔레이션 비트 메트릭을 선택적으로 재생성하는 수단을 포함한다. 또한, 이 시스템은 재생성된 신호 컨스텔레이션 비트 메트릭에 기초하여 디코딩된 메시지를 출력하는 수단을 포함한다.
본 발명의 실시예의 다른 양태에 따르면, LDPC 코드를 디코딩하는 리시버가 개시된다. 이 리시버는 수신된 노이지 심볼 점들과 LDPC 코드와 관련된 신호 컨스텔레이션의 심볼 점들 간의 거리에 관련한 거리 벡터 정보에 기초하여 사전 확률 정보를 생성하도록 구성된 비트 메트릭 생성기를 포함한다. 이 리시버는 또한 비트 메트릭 생성기로부터 수신한 사전 확률 정보에 기초하여 사후 확률 정보를 출력하도록 구성된 디코더를 포함하고, 이 디코더는 또한 사전 확률 및 사후 확률 정보에 따라 LDPC 코드와 관련된 패리티 체크 방정식이 만족되는지를 판정하도록 구성된다. 이 디코더는 상기 패리티 체크 방정식이 만족되지 않으면 재생성된 신호 컨스텔레이션 비트 메트릭에 기초하여 디코딩된 메시지를 출력한다.
본 발명의 다른 양태에 따르면, LDPC 코드를 사용하여 메시지를 송신하는 방법이 개시된다. 이 방법은 상기 패리티 체크 매트릭스의 서브-매트릭스에 제한을 가하는 구성화된 패리티 체크 매트릭스에 따라 입력 메시지를 인코딩하여 LDPC 코드를 생성하는 하는 단계를 포함한다. 이 방법은 또한, 상기 LDPC 코드를 무선 통신 시스템 상에서 송신하는 단계를 포함하고, 상기 무선 통신 시스템 상에서 통신하는 리시버는 상기 LDPC 코드와 관련된 신호 컨스텔레이션에 따라 상기 수신된 LDPC 코드를 반복적으로 디코딩하도록 구성된다. 이 리시버는 일 회 이상의 디코딩 반복 후 신호 컨스텔레이션 비트 메트릭을 반복적으로 재생성하도록 구성된다.
본 발명의 다른 양태, 특징, 및 장점들은 본 발명을 실시하기 위한 최적의 모드를 포함한 다수의 특정 실시예와 구현예를 간단히 도시함으로써, 이하의 상세한 설명으로부터 명백할 것이다. 본 발명은 또한 본 발명의 사상과 범위 내에서, 다른 실시가 가능하며 그 세부사항은 다양하게 변경될 수 있다. 따라서, 상기 도면 및 상세한 설명은 제한적인 적이 아니라 예시적인 성질의 것으로 취급되어야 한다.
<실시예>
구성화된 LDPC 코드를 효과적으로 디코딩하기 위한 시스템, 방법 및 소프트웨어가 기술된다. 이하의 상세한 설명에서는 본 발명의 완벽한 이해를 제공하기 위해 구체적인 기재를 많이 사용하여 설명을 한다. 그러나, 본 발명의 기술 분야에서 숙련된 자는 이러한 구체적인 기재나 균등한 구성 없이도 본 발명을 실시할 수 있음이 명백하다. 한편, 불필요하게 본 발명을 모호하게 하는 것을 피하기 위해 공지의 구조와 장치는 블록도로 도시한다.
도 1은 본 발명의 실시예에 따라, LDPC 코드를 이용하도록 구성된 통신 시스템을 도시하는 도면이다. 디지털 통신 시스템(100)은 신호 파형을 생성하여 통신 채널(103)을 통해 리시버(105)로 송신하는 트랜스미터(101)를 포함한다. 이 이산(discrete) 통신 시스템(100)에 있어서, 트랜스미터(101)는 가능한 메시지의 이산 세트를 생성하는 메시지 소스를 갖고, 상기 가능한 메시지 각각은 대응 신호 파형을 갖는다. 이들 신호 파형은 통신 채널(103)에 의해, 감쇠하거나 변경된다. 잡음 채널(103)에 대항하기 위해, LDPC 코드가 이용된다.
트랜스미터(101)에 의해 생성되는 LDPC 코드는 성능의 손실 없이 고속 실현을 가능하게 한다. 트랜스미터(101)로부터 출력되는 이들 구성화된 LDPC 코드는 변조 방식(예컨대, 8-PSK)으로 이미 채널 에러에 취약한 비트 노드에 소수의 체크 노드를 할당하는 것을 막는다.
이러한 LDPC 코드는 병렬화 가능한 디코딩 알고리즘(터보 코드와 다름)을 갖는데, 이는 부가, 비교 및 표 검색과 같은 간단한 동작을 유리하게 포함한다. 더욱이, 철저히 설계된 LDPC 코드는 어떠한 에러 플로어(floor)층의 기미도 보이지 않는다.
본 발명의 일실시예에 따르면, 트랜스미터(101)는 상대적으로 간단한 인코딩 기술을 이용하여, 패리티 체크 매트릭스(디코딩 동안 효과적인 메모리 액세스를 촉진하는)에 기초한 LDPC 코드를 생성하여 리시버(105)와 통신한다. 트랜스미터(101)는 블록 길이가 충분히 크다면, 연쇄 터보+RS(Reed-Solomon) 코드의 성능을 능가할 수 있는 LDPC 코드를 채용한다.
도 2는 도 1의 시스템의 예시적인 트랜스미터의 도면이다. 정보 소스(201)로부터의 입력을 수취하고 리시버(105)에서 에러 정정 프로세스에 적합한 더 높은 리던던시를 갖는 코딩된 스트림을 출력하는 LDPC 인코더(203)를 포함한다. 정보 소스(201)는 이산 알파벳 X로부터 k개의 신호를 생성한다. LDPC 코드는 패리티 체크 매트릭스에 특정되어 있다. 반면, LDPC 코드를 인코딩하는 데에는, 일반적으로, 생성기 매트릭스를 특정할 필요가 있다. 가우스 소거법을 사용하여 패리티 체크 매트릭스로부터 생성기 매트릭스를 얻는 것이 가능하지만, 결과적으로 얻은 매 트릭스는 더 이상 스파스 매트릭스가 아니며 큰 생성기 매트릭스를 저장하는 것은 복잡할 수 있다.
인코더(203)는 패리티 체크 매트릭스 상에 구조를 부여함으로써 패리티 체크 매트릭스만을 이용하는 간단한 인코딩 기술을 사용하여 알파벳 Y로부터 변조기(205)에 신호를 생성한다. 특히, 매트릭스의 특정 부분이 삼각형이 되도록 제한함으로써 패리티 체크 매트릭스에 제한을 둔다. 이러한 패리티 체크 매트릭스의 구성은 이하 도 6에 보다 상세히 기술된다. 이러한 제한 결과, 성능의 손실이 무시할 정도이고, 따라서, 흥미로운 트레이드-오프를 구성하게 된다.
변조기(205)는 인코더(203)로부터의 인코딩된 메세지를, 송신 안테나(207)로 송신될 신호 파형에 매핑하고, 이 파형을 통신 채널(103)을 통하여 방출한다. 따라서, 인코딩된 메세지는 변조되고, 송신 안테나(207)로 분산된다. 송신 안테나(207)로부터의 전송은 리시버로 전파되며, 이하에서 설명된다.
도 3은 도 1의 시스템에서의 예시적인 리시버의 도면이다. 수신 측에서, 리시버(300)는 트랜스미터(200)로부터의 수신 신호의 복조를 수행하는 복조기(301)를 포함한다. 이 신호들은 복조를 위해 수신 안테나(303)에서 수신된다. 복조 후에, 수신된 신호들은 디코더(305)로 보내어져서, 비트 메트릭 발생기(307)와 함께 메세지 X'을 생성함으로써, 원래의 소스 메세지를 재구성하는 것을 시도한다. 비 그레이(non-Gray) 매핑을 함으로써, 비트 메트릭 발생기(307)는 디코딩 프로세스 중에 앞뒤로(반복적으로) 디코더(305)와 확률 정보를 교환하며, 이는 도 10에 상세하게 나와 있다. 대안으로, 그레이 매핑이 사용되면(본 발명의 일 실시예에 따라), 비 트 메트릭 발생기의 하나의 패스로 충분하며, 여기서 각 LDPC 디코더 반복 후에 비트 메트릭 생성을 더 시도하는 것은 제한된 성능 개선을 가져올 것이고, 이러한 접근법은 도 11에 관하여 더욱 상세히 설명된다. 본 발명에 의해 제공된 이점을 이해하기 위해서는, 도 4에 논의된 바와 같이, LDPC 코드들이 생성되는 방법을 조사하는 것이 유용하다.
도 4는 본 발명의 실시예에 따른 스파스 패리티 체크 매트릭스(sparse parity check matrix)의 도면이다. LDPC 코드는 스파스 패리티 체크 매트릭스 H(n-k)xn 를 갖는 긴 선형의 블록 코드들이다. 통상적으로, 블록 길이 n은 수천 내지 수만 비트의 범위이다. 예를 들어, 도 4에 길이 n=8 및 레이트 1/2의 LDPC 코드에 대한 패리티 체크 매트릭스가 도시되어 있다. 동일한 코드가 도 5에서와 같이 이분 그래프로 등가적으로 표현될 수 있다.
도 5는 도 4의 매트릭스의 LDPC 코드의 이분 그래프의 도면이다. 패리티 체크 방정식은, 각 체크 노드에 대해 모든 인접한 비트 노드들의 합(GF(Galois Field)(2) 전체에 대해서)이 영(zero)이라는 것을 의미한다. 도면에 도시되어 있는 바와 같이, 비트 노드들은 그래프의 좌측을 점유하고, 소정의 관계에 따라 하나 이상의 체크 노드들과 관련된다. 예를 들어, 체크 노드 m1에 대응하여, 비트 노드들에 대하여 다음의 표현, n1+n4+n5+n8=0이 존재한다.
리시버(300)로 되돌아가면, LDPC 디코더(305)는 메세지 통과 디코더로 여겨짐에 따라, 디코더(305)는 비트 노드들의 값을 찾는 것을 목적으로 한다. 이 임무 를 달성하기 위하여, 비트 노드와 체크 노드는 서로 반복하여 통신한다. 이 통신의 특징이 이하에 기술된다.
체크 노드로부터 비트 노드까지, 각 체크 노드는 다른 인접한 비트 노드로부터 들어오는 정보에 기초한 그 비트 노드의 값에 대한 예측("의견(opinion)")을 인접한 비트 노드에게 제공한다. 예를 들어, 상기 예에서, n4, n5 및 n6의 합이 0 내지 m1 "처럼 보이면(looks like)", m1은, n1의 값이 0(n1 +n4+n5+n8=0 이므로)이라고 생각되는 n1을 나타내고, 다른 한편으로 m1은, n1의 값이 1이라고 생각되는 n1을 나타낸다. 추가적으로, 연판정(soft decision) 디코딩을 위해서는, 신뢰도 측정이 추가된다.
비트 노드로부터 체크 노드까지, 각 비트 노드는 그것의 다른 인접한 체크 노드로부터 들어오는 피드백에 기초하여 그 자신의 값에 대한 예측을, 인접한 체크 노드로 중계한다. 상기 예에서, n1은 오직 두개의 인접한 체크 노드 m1 및 m3 를 갖는다. m3으로부터 m1으로 들어오는 피드백이, n1 값이 아마도 0일 것이라는 것을 나타내면, n1은 m1에게 n1 자신의 예측값이 0임을 통지한다. 비트 노드가 2 이상의 인접한 체크 노드를 갖는 경우에 대해서는, 비트 노드는 그것이 통신하는 체크 노드로 그 판정을 통지하기 전에 다른 인접한 체크 노드로부터 들어오는 피드백에 대해 다수결(연판정)을 수행한다. 상술한 프로세스는 모든 비트들이 옳다고 여겨질 때까지(즉, 모든 패리티 체크 방정식을 만족할 때까지) 또는 소정의 최대 수의 반복 에 도달할 때까지 반복됨으로써, 디코딩 실패를 알린다.
도 6은 스파스 패리티 체크 매트릭스의 서브 매트릭스의 다이어그램으로, 이 다이어그램에서 서브 매트릭스는 본 발명의 실시예에 따라 하부 삼각 영역으로 제한되는 패리티 체크 값을 포함한다. 앞에서 기술한 바와 같이, 인코더(203)(도 2의)는 패리티 체크 매트릭스의 하부 삼각 영역의 값을 제한함으로써 간단한 인코딩 기술을 채용할 수 있다. 본 발명의 실시예에 따라, 패리티 체크 매트릭스에 부과되는 제한은 다음의 형태이다.
H(n~k)xn=[A(n-k)xkB(n-k)x(n-k)]
여기서, B는 하부 삼각형이다.
임의의 정보 블록 i=(i0, i1,..., ik-1)은 Hc T=0을 사용하여 패리티 비트에 대해 반복적으로 풀어서, 코드워드(codeword) c=(i0, i1,...,ik-1,p0 ,p1,...,pn-k-1)로 인코딩된다. 예를 들어,
a00i0 + a01i1 + ... + a0,k-1ik-1 + p0 = 0 ⇒ p0를 풀고,
a10i0 + a11i1 + ... + a1,k-1ik-1 + b10p0 + p1 = 0 ⇒ p1를 푼다.
p2, p3,...pn-k-1에 대해서도 유사하다.
도 7은 도 6의 제한된 H 매트릭스 대 무제한의 패리티 체크 매트릭스(H 매트릭스)를 이용하는 코드들 사이의 성능을 보여주는 그래프이다. 그래프는 두개의 LDPC 코드들 사이의 성능 비교를 보여주는데, 하나는 일반적인 패리티 체크 매트릭 스를 가지며, 다른 하나는 하부 삼각형으로 제한된 패리티 체크 매트릭스를 가지고 인코딩을 간단하게 한다. 이 시뮬레이션에 대해, 변조 방법은 8-PSK이다. 성능 손실은 0.1dB 내이다. 따라서, 성능 손실은 하부 삼각 H 매트릭스들의 제한에 기초하여 무시할만한 한편, 인코딩 기술의 간단함에 있어서의 이득은 현저하다. 따라서, 행 및/또는 열 교환 하에서 하부 삼각형 또는 상부 삼각형에 등가인 임의의 패리티 체크 매트릭스가 동일 목적에 대해 사용될 수 있다.
도 8a 및 8b는 각각 비 그레이 8-PSK 변조 방법 및 그레이 8-PSK 변조의 도면이며, 각각이 도 1의 시스템에서 사용될 수 있다. 도 8a의 비 그레이 8-PSK 변조 방법은 도 3의 리시버에 사용되어 매우 낮은 프레임 소거율(FER;Frame Erasure Rate)을 필요로 하는 시스템을 제공할 수 있다. 이러한 요건은 도 8b에 도시된 바와 같이, Bose, Chaudhuri, 및 Hocquenghem(BCH), Hamming, 또는 Reed-Solomon(RS) 코드 등의 외부 코드와 함께 그레이 8-PSK 방법을 이용함으로써 만족될 수 있다.
이러한 방법 하에서, LDPC 디코더(305)(도 3)와, 8-PSK 변조를 사용할 수 있는 비트 메트릭 발생기(307) 사이에서 반복할 필요성이 없다. 외부 코드가 없는 경우에는, 그레이 라벨링을 이용하는 LDPC 디코더(305)는 후술하는 도 9에 도시된 바와 같이, 초기의 에러 플로어(error floor)를 나타낸다.
도 9는 도 8a 및 8b의 그레이 라벨링 대 비 그레이 라벨링을 사용하는 코드들 사이의 성능을 보여주는 그래프이다. 에러 플로어는 LDPC 디코더(305)로부터의 정확한 피드백을 가정했을 때, 알려진 두 비트를 갖는 두개의 8-PSK 심볼들이 비 그레이 라벨링과 더 떨어져 있기 때문에, 8-PSK 비트 메트릭의 재생성이 비 그레이 라벨링에 더욱 정확하다는 사실로부터 나온다. 이것은 높은 신호 대 잡음비(SNR)에서 동작하는 것으로써 등가적으로 보여질 수 있다. 따라서, 그레이 또는 비 그레이 라벨링을 이용하는 동일한 LDPC 코드의 에러 점근선이 동일한 기울기(즉, 서로 평행함)를 갖는다 해도, 비 그레이 라벨링을 갖는 것은 임의의 SNR에서 낮은 FER을 통과한다.
한편, 매우 낮은 FER을 필요로 하는 시스템에 대해서, 매번의 LDPC 디코더 반복 전에 8-PSK 비트 메트릭을 재생성하는 것이 추가의 복잡함을 야기시키기 때문에, LDPC 디코더(305)와 8-PSK 비트 메트릭 발생기(307) 사이의 임의의 반복을 하지 않는 그레이 라벨링이 더욱 적합하다. 또한, 그레이 라벨링이 이용되는 경우, 매번의 LDPC 디코더 반복 전에 8-PSK 비트 메트릭을 재생성하는 것은 단지 매우 작은 성능 개선만을 가져온다. 상술한 바와 같이, 외부 코드가 구현된다고 가정하면, 반복없는 그레이 라벨링은 매우 낮은 FER을 필요로 하는 시스템에 이용될 수 있다.
그레이 라벨링과 비 그레이 라벨링 사이에서의 선택은 또한 LDPC 코드의 특성에 의존한다. 전형적으로, 높은 노드 차수에 대해서, LDPC 디코더(305)로부터 8-PSK(또는 유사한 상위의 변조) 비트 메트릭 발생기(307)로의 초기 피드백이 비 그레이 라벨링에서 더욱 악화되기 때문에, 비트 또는 체크 노드의 차수가 높을수록, 그레이 라베링에 더욱 적합해진다.
8-PSK(또는 유사한 상위의) 변조를 이진 디코더에 이용할 때, 3(또는 그 이상) 비트의 심볼이 "동일한 잡음으로" 수신되지 않는다는 점을 인식하게 된다. 예 를 들어 그레이 8-PSK 라벨링으로, 심볼의 세번째 비트가 다른 두개의 비트들보다 디코더에 더 노이지한 것으로 여겨진다. 따라서, LDPC 코드 설계는 8-PSK 심볼의 "더 노이지한" 세번째 비트들에 의해 표현되는 이들 비트 노드들에게 작은 수의 에지를 할당하지 않으므로, 그러한 비트들은 두번 곤란하게 되지는 않는다.
도 10은 본 발명의 실시예에 따라 비 그레이 매핑을 사용하는 LDPC 디코더의 동작의 흐름도이다. 이 접근법 하에서, LDPC 디코더와 비트 메트릭 생성기는 차례로 반복한다. 이 예에서는, 8-PSK 변조가 이용되지만, 동일한 원리가 다른 높은 변조 방법에도 마찬가지로 적용될 수 있다. 이러한 계획 하에서, 복조기(301)가, 비트 메트릭 발생기(307)에 대해 수신된 노이지 심볼 점들과 8-PSK 심볼 점들 사이의 거리를 나타내는 거리 벡터 d를 출력한다고 가정하면, 이에 따라 벡터 성분은 다음과 같이 된다:
Figure 112003024310041-pat00001
8-PSK 비트 메트릭 발생기(307)는 LDPC 디코더(305)와 통신하여, 각각 u 및 a로써 나타내어지는 사전(a priori) 확률 정보("선험적 확률 정보"라고도 함) 및 사후(a posteriori) 확률 정보를 교환한다. 즉, 벡터 u 및 a는 각각 코딩된 비트들의 로그 상관비(log likelihood ratio)의 사전 및 사후 확률을 나타낸다.
8-PSK 비트 매트릭 발생기(307)는 3 비트의 각 그룹에 대해 다음과 같이 사전 상관비를 생성한다. 첫째로, 코딩된 비트들에 대한 외부적 정보를 얻는다.
ej = aj - uj j=0,1,2.
다음에, 8-PSK 심볼 확률, pi (i=0,1,...7)가 결정된다.
* yj = -f(0,ej) j=0,1,2 여기서 f(a,b)=max(a,b)+LUTf(a,b)이며,
LUTf(a,b)=ln(1+e
Figure 112003024310041-pat00002
)이다.
Figure 112003024310041-pat00003
다음에, 비트 메트릭 발생기(307)는 LDPC 디코더(305)에 대한 입력으로서, 코딩된 비트의 사전 로그 상관비를 다음과 같이 결정한다
Figure 112003024310041-pat00004
두개 이상의 변수를 갖는 함수 f(.)가 순환적으로 구해질 수 있다는 점을 주의한다. 예를 들어, f(a,b,c)=f(f(a,b),c)이다.
비 그레이 매핑을 사용하는 LDPC 디코더(305)의 동작을 이제 설명한다. 단계 1001에서, LDPC 디코더(305)는 다음 식에 따른 첫번째 반복 전에(또한 도 12a에 도시된 바와 같이), 코딩된 비트의 로그 상관비를 초기화한다.
Figure 112003024310041-pat00005
, n=0,1,...,N-1, i=1,2,...,deg(비트 노드 n)
여기서,
Figure 112003024310041-pat00006
은 비트 노드 n으로부터 그의 인접합 체크 노드 ki까지 가는 메세지를 의미하고, un은 비트 n에 대한 복조기 출력을 의미하며, N은 코드워드 크기이다.
단계 1003에서, 체크 노드 k가 업데이트됨으로써, 입력 v는 출력 w를 가져온다. 도 12b에 도시되어 있는 바와 같이, 비트 노드들에 인접한 그의 dc로부터 체크 노드 k로의 들어오는 메세지는
Figure 112003024310041-pat00007
로 표현된다. 본 목적은 체크 노드 k로부터 인접하는 비트 노드 dc로 되돌아가는 발신(outgoing) 메세지를 산출하는 것이다. 이 메세지들은
Figure 112003024310041-pat00008
에 의해 나타내어지며, 여기서
Figure 112003024310041-pat00009
이다.
함수 g()은 다음과 같이 정의된다:
Figure 112003024310041-pat00010
이때,
Figure 112003024310041-pat00011
이다. 함수 f와 유사하게, 둘 이상의 변수를 갖는 함수 g는 순환적으로 계산될 수 있다.
다음에, 단계 1005에 따라 디코더(305)는 사후(posteriori) 확률 정보를 출력하여(도 12c), 다음 식이 되도록 한다.
Figure 112003024310041-pat00012
단계 1007에 따라, 모든 패리티 체크 방정식을 만족하는지의 여부가 판정된다. 이러한 패리티 체크 방정식을 만족시키지 않으면, 디코더(305)는 단계 1009에서와 같이, 8-PSK 비트 메트릭 및 채널 입력 un을 재구동시킨다. 다음에, 단계 1011에서와 같이 비트 노드가 업데이트된다. 도 14c에 도시된 바와 같이, 체크 노드들에 인접한 dv로부터 비트 노드 n으로의 인입(incoming) 메세지는
Figure 112003024310041-pat00013
에 의해 표현된다. 비트 노드 n으로부터 발신 메세지는 체크 노드들에 인접한 dv로 되돌아가 계산되며, 이러한 메세지들은
Figure 112003024310041-pat00014
에 의해 표현되고, 다음과 같이 계산된다:
Figure 112003024310041-pat00015
단계 1013에서, 디코더(305)는 경판정(hard decision)을 출력한다(모든 패리티 체크 방정식을 만족시키는 경우에).
Figure 112003024310041-pat00016
상기 접근법은 비 그레이 라벨링을 사용할 때 적합하다. 그러나, 그레이 라벨링을 구현할 때, 도 11의 프로세스가 실행된다.
도 11은 본 발명의 실시예에 따라 그레이 매핑을 이용하는, 도 3의 LDPC 디코더의 동작의 흐름도이다. 그레이 라벨링이 이용되는 경우, 매 LDPC 디코더 반복 후에 비트 메트릭을 재생성하는 것이 명목적인 성능 개선을 발생시킬 수 있기 때문에 LDPC 디코더 전에, 오직 한번 비트 메트릭이 유용하게 생성된다. 도 10의 단계 1001 및 1003에서처럼, 코딩된 비트 v의 로그 상관비의 초기화가 수행되고, 단계 1101 및 1103에 따라 체크 노드가 업데이트된다. 다음에, 단계 1105에서처럼 비트 노드 n은 업데이트된다. 그 후에, 디코더는 사후 확률 정보를 출력한다(단계 1107). 단계 1109에서는, 모든 패리티 체크 방정식을 만족시키는지의 여부에 대한 판정이 행해지고, 만약 만족시킨다면, 디코더는 경판정을 출력한다(단계 1111). 그렇지 않으면, 단계 1103-1107이 반복된다.
도 13a는 본 발명의 실시예에 따라, 포워드-백워드 접근법을 이용하여 체크 노드들과 비트 노드들 사이의 발신 메세지를 산출하기 위한 프로세스의 흐름도이다. 에지에 인접한 dc를 갖는 체크 노드에 대해, dc(dc-1) 연산과 다수의 g(.,.) 함수들이 수행된다. 그러나, 포워드-백워드 접근법은 3(dc-2)에 대한 연산의 복잡성을 감소시켜주며, dc-1 변수들이 저장된다.
도 12b를 참조하면, 비트 노드들에 인접한 dc로부터 체크 노드 k로의 발신 메세지들은
Figure 112003024310041-pat00017
에 의해 표현된다. 발신 메세지들은 체크 노드 k로부터 비트 노드들에 인접한 dc로 되돌아가 계산되는 것이 바람직하며, 이들 발신 메세지들은
Figure 112003024310041-pat00018
에 의해 표현된다.
이들 발신 메세지들을 산출하기 위한 포워드-백워드 접근법 하에서, 포워드 변수들인 f1, f2,...fdc는 다음과 같이 정의된다.
Figure 112003024310041-pat00019
단계 1301에서, 이러한 포워드 변수들(forward variables)이 산출되고, 단계 1303에 따라서 저장된다.
유사하게, 백워드 변수들(backward variables)(b1, b2, ..., bdc)은 다음과 같이 정의된다.
Figure 112003024310041-pat00020
단계 1305에서, 이러한 백워드 변수들이 산출된다. 그 후, 단계 1307과 같이, 저장된 포워드 변수 및 산출된 백워드 변수에 기초하여 발신 메시지가 산출된 다. 발신 메시지는 다음과 같이 산출된다.
Figure 112003024310041-pat00021
이러한 접근법에서는, 포워드 변수(f2, f3, ..., fdc)만이 저장될 필요가 있다. 백워드 변수 bi가 산출될 경우, 발신 메시지 Wk->i가 동시에 산출됨으로써 백워드 변수를 저장할 필요가 없다.
다음에 설명하는 바와 같이, 병렬 접근법에 의해 산출시의 부하가 더 개선될 수 있다.
도 13b는 본 발명의 일실시예에 따라 체크 노드들과 비트 노드들 사이의 발신 메시지들을 병렬 접근법을 사용하여 산출하는 프로세스의 흐름도이다. 인접한 비트 노드 dc로부터의 입력들
Figure 112003024310041-pat00022
을 갖는 체크 노드 k에 대해, 단계 1311과 같이, 다음 파라미터가 산출된다.
Figure 112003024310041-pat00023
주의할 점은 g(.,.) 함수도 다음과 같이 표현될 수 있다는 것이다.
Figure 112003024310041-pat00024
g(.,.)함수의 회귀 성질을 이용하면, 다음식이 얻어진다.
Figure 112003024310041-pat00025
따라서,
Figure 112003024310041-pat00026
는 다음 방식으로 해석될 수 있다.
Figure 112003024310041-pat00027
ln|ex - 1| 함수를 나타내는 검색 테이블 LUTx를 사용하여 상기 식의 ln(.) 항목이 얻어질 수 있다(단계 1313). 다른 검색 테이블 LUTf 또는 LUTg와 달리, 테이블 LUTx는 양자화 레벨들의 개수만큼 많은 엔트리들을 필요로 할 수 있다. 일단 γk가 얻어지면, 단계 1315에 따라, 상기 식을 사용하여 모든 ni에 대해
Figure 112003024310041-pat00028
의 계산이 병렬적으로 발생할 수 있다.
γk의 계산 레이턴시(computational latency)는 유리하게 logz(dc)이다.
도 14a 내지 14c는 본 발명의 다양한 실시예들에 따라 생성된 LDPC 코드들의 시뮬레이션 결과를 나타내는 그래프이다. 특히, 도 14a 내지 14c는 보다 상위 변조를 갖는 LDPC 코드들의 성능 및 3/4(OPSK, 1.485비트/심볼), 2/3(8-PSK, 1.980 비트/심볼) 및 5/6(8-PSK, 2.474비트/심볼)의 코드 레이트를 나타낸다.
체크 노드들과 비트 노드들 사이의 상호접속(interconnection)을 구현하는데 에는 두가지 접근법: (1) 완전 병렬 접근법, 및 (2) 부분 병렬 접근법이 존재한다. 완전 병렬 아키텍쳐에서는, 모든 노드들 및 그들의 상호접속들이 물리적으로 구현된다. 이러한 아키텍쳐의 장점은 속도이다.
그러나, 완전 병렬 아키텍쳐는 모든 노드들 및 그들의 상호접속들을 구현하는데 보다 큰 복잡성을 수반한다. 따라서, 완전 병렬 아키텍쳐에서는, 복잡성을 감소시키기 위해 보다 작은 블록 크기가 요구될 수 있다. 이 경우, 동일한 클럭 주파수에 대해, 처리능력의 비례적인 감소 및 FER 대 Es/No 성능의 소정의 저하가 유발될 수 있다.
LDPC 코드들을 구현하기 위한 제2 접근법은 노드들의 전체 개수의 서브세트만을 물리적으로 실현하고 이처럼 "물리적인(physical)" 노드들의 제한된 개수만을 사용하여 코드의 모든 "기능적(functional)" 노드들을 처리하는 것이다. LDPC 디코더의 동작이 아주 간단할 수 있고 병렬로 실행될 수 있더라도, 설계시의 추가적인 문제점은 "무작위적으로(randomly)" 분포된 비트 노드들 및 체크 노드들 사이에 통신을 확립하는 방법이다. 본 발명의 일실시예에 따르면, (도 3의) 디코더(305)는, 표면상으로 무작위 코드를 구현하기 위해, 구성화된 방식(structured way)으로 메모리를 액세스함으로써 이러한 문제점을 해결한다. 도 15a 및 15b에 대해 이러한 접근법이 설명된다.
도 15a 및 15b는 각각, 본 발명의 일실시예에 따라, LDPC 코딩시 무작위성을 실현하도록 구성화된 액세스를 지원하기 위해 조직화된 메모리의 상부 에지(top edge) 및 하부 에지(bottom edge)의 도면이다. 패리티 체크 매트릭스의 생성에 초 점을 맞춤으로써 진정한 무작위 코드의 성능을 절충하지 않고 구성화된 액세스가 성취될 수 있다. 일반적으로, 패리티 체크 매트릭스는 체크 노드들과 비트 노드들의 연결에 의해 특정될 수 있다. 예를 들면, 비트 노드들은 392(392는 예시적으로 제공됨)개의 그룹들로 분할된다. 또한, 차수(degree) 3의 제1 비트 노드에 연결된 체크 노드들이, 예를 들어, a, b, 및 c로 번호가 매겨진다면, 제2 비트 노드에 연결된 체크 노드들은 a+p, b+p, 및 c+p로 번호가 매겨지고, 제3 비트 노드에 연결된 체크 노드들은 a+2p, b+2p 및 c+2p 등과 같이 번호가 매겨진다. 392개 비트 노드들의 다음 그룹에 대해, 제1 비트 노드에 연결된 체크 노드들은 a, b, c와 상이하기 때문에, p를 적당히 선택하여 모든 체크 노드들이 동일한 차수를 가진다. 자유 상수(free constants)에 대해 무작위 검색이 실행되어 결과적인 LDPC 코드는 사이클-4 및 사이클-6 프리(cycle-6 free)이다.
상기 구성은 체크 노드 및 비트 노드 프로세싱 동안 메모리 액세스를 용이하게 한다. 이분 그래프(bipartite graph) 내의 에지들의 값들이, 랜덤 액세스 메모리(RAM)와 같은, 저장 매체에 저장될 수 있다. 주의할 점은, 체크 노드 및 비트 노드 프로세싱 동안 진정한 무작위 LDPC 코드에 대해, 무작위 방식으로 하나씩 에지들의 값들이 액세스될 필요가 있다는 것이다. 그러나, 고속 데이터 응용에 대해서는 그러한 액세스 방식이 너무 느리다. 도 15a 및 15b의 RAM은, 관련된 에지들의 큰 그룹이 한 클럭 사이클에서 페치(fetch)될 수 있고, 따라서, 이러한 값들이 메모리 내에 "함께(together)" 위치되는 방식으로 조직화된다. 실제, 체크 노드들 (및 각각의 비트 노드들)의 그룹에 대해 진정한 무작위 코드라더라도, 관련된 에지 들은 RAM 내에 하나 건너서 서로 접하여 배치될 수 있으나, 비트 노드들(각각 체크 노드들)의 그룹에 인접한 관련된 에지들은 RAM 내에 무작위로 흩어져 있을 수 있다. 따라서, 본 발명에서의 "일체성(togetherness)"이라는 것은 패리티 체크 매트릭스 그 자체의 설계에서 비롯된다. 즉, 체크 매트릭스 설계는 비트 노드들 및 체크 노드들의 그룹에 대해 관련된 에지들이 RAM 내에 동시에 함께 배치되도록 보장한다.
도 15a 및 15b에서 보는 바와 같이, 각 박스는 다중 비트(예를 들면, 6)인, 에지의 값을 가진다. 본 발명의 일실시예에 따르면, 에지 RAM은 두개 부분들: 상부 에지 RAM(도 15a) 및 하부 에지 RAM(도 15b)으로 분할된다. 하부 에지 RAM은, 예를 들면, 차수 2의 비트 노드들과 체크 노드들 사이의 에지들을 가진다. 상부 에지 RAM은 2보다 큰 차수를 갖는 비트 노드들과 체크 노드들 사이의 에지를 가진다. 따라서, 매 체크 노드에 대해, 2개의 인접한 에지들이 하부 RAM 내에 저장되고 에지들의 나머지는 상부 에지 RAM에 저장된다.
상기 예에 대해 계속 설명하면, 392개 비트 노드들 및 392개 체크 노드들의 그룹이 한번에 프로세싱을 위해 선택된다. 392개 체크 노드 프로세싱에 있어, q개 연속 로우(row)들이 상부 에지 RAM으로부터 액세스되고 2개의 연속 로우들이 하부 에지 RAM으로부터 액세스된다. 이 경우, q+2는 각 체크 노드의 차수이다. 비트 노드 프로세싱에 있어, 392개 비트 노드들의 그룹이 차수 2를 가지면, 그들의 에지들은 하부 에지 RAM의 2개 연속 로우들에 위치한다. 비트 노드들이 d > 2 차수를 가지면, 그들의 에지들은 상부 에지 RAM의 소정의 d개 로우에 위치한다. 이러한 d 개 로우들의 어드레스는 ROM과 같은 불휘발성 메모리에 저장될 수 있다. 로우들중 하나에 있는 에지들은 392 비트 노드들의 제1 에지들에 대응되고, 다른 로우의 에지들은 392 비트 노드들의 제2 에지들에 대응된다. 더우기, 각 로우에 대해, 392 그룹 내의 제1 비트 노드에 속하는 에지의 컬럼 인덱스도 ROM 내에 저장될 수 있다. 제2, 제3 .. 비트 노드들에 대응하는 에지들이 "감는 방식(wrapped around fashion)"으로 시작 컬럼 인덱스에 후속한다. 예를 들면, 로우 내의 j번째 에지가 제1 비트 노드에 속하면, (j+1)번째 에지는 제2 비트 노드에 속하고, (j+2)번째 에지는 제3 비트 노드에 속하며, ..., (j-1)번째 에지는 392번째 비트 노드에 속한다.
(도 15a 및 15b에 도시된) 상기 구성에 따르면, 메모리 액세스 속도는 LDPC 코딩 동안 크게 개선된다.
도 16은 본 발명에 따른 일실시예가 구현될 수 있는 컴퓨터 시스템(1600)을 나타낸다. 컴퓨터 시스템(1600)은 정보를 통신하기 위해 버스(1601) 또는 다른 통신 기구, 및 정보를 처리하기 위해 버스(1601)에 연결된 프로세서(1603)를 포함한다. 컴퓨터 시스템(1600)은 또한 프로세서(1603)에 의해 실행될 명령 및 정보를 저장하기 위해 버스(1601)에 연결된, RAM 또는 다른 동적 저장 디바이스와 같은 메인 메모리(1605)를 포함한다. 메인 메모리(1605)는 또한 프로세서(1603)에 의해 실행될 명령의 실행동안 일시적인 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨터 시스템(1600)은 프로세서(1603)에 대한 명령 및 정적인 정보를 저장하기 위해 버스(1601)에 연결된 ROM 또는 다른 정적인 저장 디바이스를 더 포함한다. 자기 디스크 또는 광디스크와 같은 저장 디바이스(1609)가 정보 및 명령을 저장하기 위해 버스(1601)에 추가로 연결될 수 있다.
컴퓨터 시스템(1600)은 정보를 컴퓨터 사용자에게 표시하기 위해 버스(1601)를 통해, CRT, 액정 디스플레이, 액티브 매트릭스 디스플레이 또는 플라즈마 디스플레이와 같은 디스플레이(1611)에 연결될 수 있다. 프로세서(1603)와 정보 및 명령 선택을 통신하기 위해 알파벳 및 다른 키들을 포함하는 키보드와 같은 입력 디바이스(1613)가 버스(1601)에 연결된다. 다른 형태의 사용자 입력 디바이스는, 프로세서(1603)와 방향 정보 및 커맨드 선택을 통신하며, 디스플레이(1611) 상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향키와 같은 커서 컨트롤(1615)이다.
본 발명의 일실시예에 따르면, 메인 메모리(1605) 내에 포함된 명령들의 구성을 실행하는 프로세서(1603)에 응답하여 컴퓨터 시스템(1600)에 의해 LDPC 코드가 발생된다. 그러한 명령들은 저장 디바이스(1609)와 같은, 다른 컴퓨터 판독가능한 매체로부터 메인 메모리(1605)로 판독될 수 있다. 메인 메모리(1605) 내에 포함된 명령들의 구성의 실행은 프로세서(1603)로 하여금 본원에 상술한 처리 단계들을 실행하게끔 한다. 메인 메모리(1605)에 포함된 명령들을 실행하기 위해 멀티-프로세싱 구성의 하나 이상의 프로세서들이 채용될 수도 있다. 선택적 실시예에서, 본 발명의 실시예를 구현하기 위해 소프트웨어 명령들을 대신하거나 이와 조합하여 배선에 의해 연결된 회로(hard-wired circuitry)가 사용될 수 있다. 따라서, 본 발명의 실시예는 하드웨어 회로 및 소프트웨어의 임의의 특정 조합에 한 정되지 않는다.
컴퓨터 시스템(1600)은 또한 버스(1601)와 연결된 통신 인터페이스(1617)를 포함한다. 통신 인터페이스(1617)는 로컬 네트워크(1621)에 접속된 네트워크 링크(1619)와 연결된 양방향 데이터 통신을 제공한다. 예를 들면, 통신 인터페이스(1617)는, 데이터 통신 접속을 대응하는 유형의 전화 선로에 제공하기 위한, 디지털 가입자 선로(DSL) 카드 또는 모뎀일 수 있고, ISDN(Integrated services digital network) 카드, 케이블 모뎀 또는 전화 모뎀일 수 있다. 다른 예로서, 통신 인터페이스(1617)는 호환성 LAN에 데이터 통신 접속을 제공하기 위한, (예를 들면, 이더넷TM, 또는 ATM 네트워크용) LAN(Local Area Network) 카드일 수 있다. 또한, 무선 링크가 구현될 수도 있다. 이러한 임의의 구현에서, 통신 인터페이스(1617)는, 다양한 유형의 정보를 나타내는 디지털 데이터 스트림을 운반하는 전기 신호, 전자기 신호, 또는 광신호를 송신하고 수신한다. 또한, 통신 인터페이스(1617)는 USB 인터페이스, PCMCIA(Personal Computer Memory Card International Association) 인터페이스 등과 같은 주변장치 인터페이스 디바이스들을 포함할 수 있다.
네트워크 링크(1619)는 일반적으로 하나 이상의 네트워크를 통해 다른 데이터 디바이스들에 데이터 통신을 제공한다. 예를 들면, 네트워크 링크(1619)는 로컬 네트워크(1621)를 통해 호스트 컴퓨터(1623)에 접속을 제공할 수 있는데, 이는 네트워크(1625)(예를 들면, WAN, 또는 "인터넷"으로 일반적으로 나타내는 글로벌 패킷 데이터 통신 네트워크) 또는 서비스 제공자에 의해 동작되는 데이터 장비에 대한 연결성을 가진다. 로컬 네트워크(1621) 및 네크워크(1625) 모두 전기 신호, 전자기 신호, 또는 광신호를 사용하여 정보 및 명령들을 운반한다. 컴퓨터 시스템(1600)과 디지털 데이터를 통신하는, 다양한 네트워크들을 통한 신호 및 네트워크 링크(1619) 및 통신 인터페이스(1617)를 통한 신호들은 정보 및 명령들을 갖는 반송파의 예시적인 형태이다.
컴퓨터 시스템(1600)은, 네트워크, 네트워크 링크(1619) 및 통신 인터페이스(1617)을 통해, 프로그램 코드를 포함하는, 메시지를 송신하고 데이터를 수신할 수 있다. 예를 들어, 인터넷에서, 서버(도시하지 않음)가, 본 발명의 일실시예를 구현하기 위한 응용 프로그램에 속하는 요구된 코드를 네트워크(1625), 로컬 네트워크(1621) 및 통신 인터페이스(1617)를 통해 전송할 수 있다. 프로세서(1603)는, 수신하면서 전송된 코드를 실행하거나 및/또는 나중에 실행하기 위해 저장 디바이스(1609) 또는 다른 불휘발성 저장매체에 코드를 저장할 수 있다. 이러한 방식에서, 컴퓨터 시스템(1600)은 반송파 형태의 응용 코드를 얻을 수 있다.
본원에 사용된 것과 같은 "컴퓨터 판독가능한 매체(computer readable medium)"라는 용어는 실행을 위해 프로세서(1603)에 명령을 제공하는데 관여하는 임의의 매체를 나타낸다. 이러한 매체는, 불휘발성 매체, 휘발성 매체 및 전송 매체에 한정되지 않고 이를 포함하는 많은 형태를 취할 수 있다. 예를 들면, 불휘발성 매체는 저장 디바이스(1609)와 같은, 광디스크, 또는 자기 디스크를 포함한다. 휘발성 매체는 메인 메모리(1605)와 같은, 동적 메모리를 포함한다. 전송 매체는, 버스(1601)를 포함하는 배선을 포함하여, 동축 케이블, 구리 배선 및 광섬유(fiber-optic)를 포함한다. 전송 매체는 또한 무선 주파수(RF) 및 적외선(IR) 데이터 통신 동안에 생성되는 것과 같은, 음파, 광파 또는 전자기파의 형태를 취할 수 있다. 예를 들어, 컴퓨터 판독가능한 매체의 일반적인 형태들은 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 디스크, 임의의 다른 자성 매체, CD-ROM, CDRW, DVD, 임의의 다른 광매체, 펀치 카드, 종이 테이프, 광 마크 시트, 홀 또는 광학적으로 인식가능한 다른 인덱스들의 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, 및 EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 반송파 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
컴퓨터 판독가능한 매체의 다양한 형태들은 실행을 위해 프로세서에 명령을 제공하는데 관여할 수 있다. 예를 들면, 본 발명의 적어도 일부분을 실행하기 위한 명령들은 초기에 원격 컴퓨터의 자기 디스크에 포함될 수 있다. 이러한 시나리오에서, 원격 컴퓨터는 명령들을 메인 메모리에 로드시키고 모뎀을 이용하여 전화 회선을 통해 명령들을 송신한다. 로컬 컴퓨터 시스템의 모뎀은 전화 회선으로 데이터를 수신하고 적외선 송신기를 사용하여 데이터를 적외선 신호로 변환하고 적외선 신호를, PDA 및 랩톱과 같은 휴대용 컴퓨팅 디바이스에 전송한다. 휴대용 컴퓨팅 디바이스의 적외선 검출기는 적외선 신호에 담겨진 정보 및 명령들을 수신하고 데이터를 버스로 보낸다. 버스는 데이터를 메인 메모리로 전송하고, 이로부터 프로세서는 명령을 검색하고 실행한다. 메인 메모리에 의해 수신된 명령들은 프로세 서에 의해 실행되기 이전 또는 이후에 저장 디바이스에 선택적으로 저장될 수 있다.
따라서, 본 발명의 다양한 실시예들은 인코더 및 디코더를 간단화하도록, 구성화된 LDPC(Low Density Parity Check) 코드를 생성하기 위한 접근법을 제공한다. LDPC 코드의 구성은 패리티 체크 매트릭스를 하부 삼각(lower triangular)으로 제한함으로써 제공된다. 또한, 상기 접근법은, (8-PSK(Phase Shift Keying)과 같은) 상위 변조 컨스텔레이션(high order modulation constellation)의 보다 취약한 비트에 대한 여분의 방지 보호를 제공하기 위해 전송된 비트들에 대한 LDPC 코드들의 동일하지 않은 에러 방지 능력을 유리하게 이용할 수 있다. 디코딩 프로세스는, 각 디코더 반복 또는 몇개의 디코더 반복 이후 신호 컨스텔레이션 비트 매트릭을 LDPC 디코더로 반복적으로 재생성하는 과정을 포함한다. 상기 접근법은 성능의 희생없이도 복잡성을 줄일 수 있는 이점이 있다.
본 발명은 많은 실시예 및 구현과 연계하여 설명되었으나, 본 발명은 이에 제한되지 않고 다양한 변형 및 동등한 구성을 포함하며, 이는 첨부된 청구범위의 범주에 속한다.

Claims (24)

  1. LDPC(low density parity check) 코드들을 디코딩하기 위한 방법에 있어서,
    수신된 노이지 심볼 점들(received noisy symbol points)과 상기 LDPC 코드들과 관련된 신호 컨스텔레이션(signal constellation)의 심볼 점들 사이의 거리들에 대한 정보를 포함하는 거리 벡터 정보(distance vector information)에 기초하여 사전 확률 정보(a priori probability information)를 수신하는 단계 - 신호 컨스텔레이션 메트릭들(signal constellation metrics)은 상기 거리 벡터 정보에 기초하여 결정되고, 상기 신호 컨스텔레이션의 더 취약한 비트들(vulnerable bits)은 덜 취약한 비트들보다 더 많은 패리티 체크 방정식들(parity check equations)이 할당됨 - ;
    상기 사전 확률 정보에 기초하여 사후 확률 정보(a posteriori probability information)를 결정하는 단계;
    상기 LDPC 코드들과 관련된 패리티 체크 방정식들이 상기 사전 확률 및 상기 사후 확률 정보에 따라 만족되는지를 결정하는 단계;
    상기 결정 단계에 기초하여 상기 신호 컨스텔레이션 비트 메트릭들을 선택적으로 재생성하는 단계; 및
    상기 재생성된 신호 컨스텔레이션 비트 메트릭들에 기초하여 디코딩된 메시지들을 출력하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 사후 확률 정보와 사전 확률 정보에 기초하여 외부 정보(extrinsic information)를 결정하는 단계; 및
    상기 외부 정보에 따라 상기 신호 컨스텔레이션과 관련된 심볼 확률들을 출력하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 신호 컨스텔레이션의 심볼들은 그레이 코딩(gray coded)되는 방법.
  4. 제1항에 있어서,
    상기 LDPC 코드들의 비트 노드들에 대응하는 에지 값들(edge values)을 인접하는 물리적 메모리 위치들(contiguous physical memory locations)의 제1 세트에 저장하는 단계, 및 상기 LDPC 코드들의 체크 노드들에 대응하는 에지 값들을 인접하는 물리적 메모리 위치들의 제2 세트에 동시에 저장하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 LDPC 코드들은 구성화된 패리티 체크 매트릭스(structured parity check matrix) - 상기 구성화된 패리티 체크 매트릭스는 상기 패리티 체크 매트릭스의 서브 매트릭스에 제한(restrictions)을 가함 - 를 사용하여 인코딩되는 방법.
  6. 제1항에 있어서,
    상기 신호 컨스텔레이션은 8-PSK(Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 및 QPSK(Quadrature Phase Shift Keying) 중 하나를 포함하는 방법.
  7. LDPC 코드들을 디코딩하기 위한 명령들(instructions)을 포함하는 컴퓨터 판독가능한 매체로서,
    상기 명령은 실행시, 하나 이상의 프로세서들이 제1항의 방법을 수행하도록 배열되는 컴퓨터 판독가능한 매체.
  8. LDPC 코드들을 디코딩하기 위한 시스템에 있어서,
    수신된 노이지 심볼 점들과 상기 LDPC 코드들과 관련된 신호 컨스텔레이션의 심볼 점들 사이의 거리들에 대한 정보를 포함하는 거리 벡터 정보에 기초하여 사전 확률 정보를 수신하기 위한 수단 - 신호 컨스텔레이션 메트릭들은 상기 거리 벡터 정보에 기초하여 결정되고, 상기 신호 컨스텔레이션의 더 취약한 비트들은 덜 취약한 비트들보다 더 많은 패리티 체크 방정식들이 할당됨 - ;
    상기 사전 확률 정보에 기초하여 사후 확률 정보를 결정하기 위한 수단;
    상기 LDPC 코드들과 관련된 패리티 체크 방정식들이 상기 사전 확률과 상기 사후 확률 정보에 따라 만족되는지를 결정하기 위한 수단;
    상기 결정에 기초하여 상기 신호 컨스텔레이션 비트 메트릭들을 선택적으로 재생성하기 위한 수단; 및
    상기 재생성된 신호 컨스텔레이션 비트 메트릭들에 기초하여 디코딩된 메시지들을 출력하기 위한 수단
    을 포함하는 시스템.
  9. 제8항에 있어서,
    상기 사후 확률 정보와 사전 확률 정보에 기초하여 외부 정보를 결정하기 위한 수단; 및
    상기 외부 정보에 따라 상기 신호 컨스텔레이션과 관련된 심볼 확률들을 출력하기 위한 수단
    을 더 포함하는 시스템.
  10. 제8항에 있어서,
    상기 신호 컨스텔레이션의 심볼들은 그레이 코딩되는 시스템.
  11. 제8항에 있어서,
    상기 LDPC 코드들의 비트 노드들 및 체크 노드들에 관한 정보를 인접하는 물리적 메모리 위치들에 저장하기 위한 수단
    을 더 포함하는 시스템.
  12. 제8항에 있어서,
    상기 LDPC 코드들은 구성화된 패리티 체크 매트릭스 - 상기 구성화된 패리티 체크 매트릭스는 상기 패리티 체크 매트릭스의 서브 매트릭스에 제한을 가함 - 를 사용하여 인코딩되는 시스템.
  13. 제8항에 있어서,
    상기 신호 컨스텔레이션은 8-PSK(Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 및 QPSK(Quadrature Phase Shift Keying) 중 하나를 포함하는 시스템.
  14. LDPC 코드들을 디코딩하기 위한 리시버에 있어서,
    수신된 노이지 심볼 점들과 상기 LDPC 코드들과 관련된 신호 컨스텔레이션의 심볼 점들 사이의 거리들에 대한 정보를 포함하는 거리 벡터 정보에 기초하여 사전 확률 정보를 생성하도록 구성된 비트 메트릭 발생기 - 신호 컨스텔레이션 메트릭들은 상기 거리 벡터 정보에 기초하여 결정되고, 상기 신호 컨스텔레이션의 더 취약한 비트들은 덜 취약한 비트들보다 더 많은 패리티 체크 방정식들이 할당됨 - ; 및
    상기 비트 메트릭 발생기로부터 수신된 상기 사전 확률 정보에 기초하여 사후 확률 정보를 출력하도록 구성된 디코더 - 상기 디코더는, 상기 LDPC 코드들과 관련된 패리티 체크 방정식들이 상기 사전 확률과 사후 확률 정보에 따라 만족되는지를 결정하도록 더 구성되며, 상기 디코더는, 상기 패리티 체크 방정식들이 만족되면 재생성된 신호 컨스텔레이션 비트 메트릭들에 기초하여 디코딩된 메시지들을 출력함 -
    를 포함하는 리시버.
  15. 제14항에 있어서,
    상기 비트 메트릭 발생기는 상기 사후 확률 정보와 사전 확률 정보에 기초하여 외부 정보를 결정하고 상기 외부 정보에 따라 상기 신호 컨스텔레이션과 관련된 심볼 확률들을 출력하도록 더 구성되는 리시버.
  16. 제14항에 있어서,
    상기 신호 컨스텔레이션의 심볼들은 그레이 코딩되는 리시버.
  17. 제14항에 있어서,
    상기 LDPC 코드들의 비트 노드들의 에지 값들을 인접하게 저장하도록 구성된 제1 구획(first section), 및 상기 LDPC 코드들의 체크 노드들의 에지 값들을 인접하게 저장하도록 구성된 제2 구획을 갖는 메모리
    를 더 포함하는 리시버.
  18. 제14항에 있어서,
    상기 LDPC 코드들은 구성화된 패리티 체크 매트릭스 - 상기 구성화된 패리티 체크 매트릭스는 상기 패리티 체크 매트릭스의 서브 매트릭스에 제한을 가함 - 를 사용하여 인코딩되는 리시버.
  19. 제14항에 있어서,
    상기 신호 컨스텔레이션은 8-PSK(Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 및 QPSK(Quadrature Phase Shift Keying) 중 하나를 포함 하는 리시버.
  20. LDPC 코드들을 이용하여 메시지들을 전송하기 위한 방법에 있어서,
    LDPC 코드들을 생성하도록 구성화된 패리티 체크 매트릭스 - 상기 구성화된 패리티 체크 매트릭스는 상기 패리티 체크 매트릭스의 서브 매트릭스에 제한을 가함 - 에 따라 입력 메시지들을 인코딩하는 단계; 및
    무선 통신 시스템(radio communication system)을 통해 상기 LDPC 코드들을 전송하는 단계
    를 포함하며,
    상기 무선 통신 시스템을 통해 통신하는 리시버는, 상기 LDPC 코드들과 관련된 신호 컨스텔레이션에 따라 상기 수신된 LDPC 코드들을 반복적으로(iteratively) 디코딩하도록 구성되고, 상기 리시버는, 1회 이상의 디코딩 반복(decoding iterations) 후에 신호 컨스텔레이션 비트 메트릭들을 반복적으로 재생성하도록 구성되며,
    상기 리시버는, 수신된 노이지 심볼 점들과 상기 LDPC 코드들과 관련된 신호 컨스텔레이션의 심볼 점들 사이의 거리들에 관한 거리 벡터 정보에 기초하여 비트 메트릭 발생기에 의해 생성되는 사전 확률 정보에 기초하여 사후 확률 정보를 생성하도록 구성되는 LDPC 디코더를 포함하고,
    상기 디코더는, 상기 LDPC 코드들과 관련된 패리티 체크 방정식들이 상기 사전 확률과 사후 확률 정보에 따라 만족되는지를 결정하며,
    신호 컨스텔레이션 메트릭들은 상기 거리 벡터 정보에 기초하여 결정되고, 상기 신호 컨스텔레이션의 더 취약한 비트들은 덜 취약한 비트들보다 더 많은 패리티 체크 방정식들이 할당되는 방법.
  21. 삭제
  22. 제20항에 있어서,
    상기 신호 컨스텔레이션은 8-PSK(Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 및 QPSK(Quadrature Phase Shift Keying) 중 하나를 포함하는 방법.
  23. 제20항에 있어서,
    상기 무선 통신 시스템은 상기 LDPC 코드들의 전송을 지원하기 위한 위성을 포함하는 방법.
  24. LDPC 코드들을 이용하여 메세지들을 전송하는 명령들을 포함하는 컴퓨터 판독가능한 매체로서,
    상기 명령은 실행시, 하나 이상의 프로세서들이 제20항의 방법을 수행하도록 배열되는 컴퓨터 판독가능한 매체.
KR1020030044955A 2002-07-03 2003-07-03 Ldpc 코드를 디코딩하기 위한 방법 및 시스템 KR100574306B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39345702P 2002-07-03 2002-07-03
US60/393,457 2002-07-03

Publications (2)

Publication Number Publication Date
KR20040004162A KR20040004162A (ko) 2004-01-13
KR100574306B1 true KR100574306B1 (ko) 2006-04-27

Family

ID=29720448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030044955A KR100574306B1 (ko) 2002-07-03 2003-07-03 Ldpc 코드를 디코딩하기 위한 방법 및 시스템

Country Status (5)

Country Link
EP (1) EP1379001A3 (ko)
JP (1) JP3917563B2 (ko)
KR (1) KR100574306B1 (ko)
CN (1) CN1282312C (ko)
HK (1) HK1068463A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197690B2 (en) 2002-05-31 2007-03-27 Broadcom Corporation Bandwidth efficient coded modulation scheme based on MLC (multi-level code) signals having multiple maps
KR100543154B1 (ko) * 2002-07-26 2006-01-20 휴우즈 일렉트로닉스 코오포레이션 저밀도 패리티 검사 코드 생성 방법 및 시스템
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
KR100918763B1 (ko) 2003-11-14 2009-09-24 삼성전자주식회사 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법
US7383487B2 (en) * 2004-01-10 2008-06-03 Broadcom Corporation IPHD (iterative parallel hybrid decoding) of various MLC (multi-level code) signals
DE202005021953U1 (de) 2004-01-20 2012-06-28 Nec Corporation Vorrichtung zum Generieren einer Paritätsprüfmatrix, Datenübertragungssystem, Codiervorrichtung, Decodiervorrichtung
KR100594818B1 (ko) 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
KR20050118056A (ko) 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
CN100362755C (zh) * 2004-06-28 2008-01-16 华为技术有限公司 一种符号的估计方法
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
AU2005272268B2 (en) * 2004-08-10 2008-07-31 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding a block low density parity check code
FI121431B (fi) 2004-09-13 2010-11-15 Tamfelt Pmc Oy Paperikoneessa käytettävä kudosrakenne ja menetelmä sen valmistamiseksi
WO2006027818A1 (ja) * 2004-09-03 2006-03-16 Mitsubishi Denki Kabushiki Kaisha Ldpc符号生成方法および通信装置
KR100641052B1 (ko) * 2004-12-08 2006-11-02 한국전자통신연구원 Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
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
CN100454768C (zh) * 2005-06-01 2009-01-21 西南交通大学 非对数域最大后验概率Turbo译码方法
US7526715B2 (en) 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
ATE534999T1 (de) * 2005-10-17 2011-12-15 Univ Ramot Probabilistische fehlerkorrektur in einem mehrbit-pro-zelle-flash-speicher
JP4727380B2 (ja) * 2005-10-24 2011-07-20 Kddi株式会社 復号装置および方法、ならびに復調復号装置および方法
CN102386996B (zh) * 2010-09-01 2015-11-25 国家广播电影电视总局广播科学研究院 一种卫星双向通信中物理层数据传输方法和装置
CN102638629A (zh) * 2012-03-30 2012-08-15 西安烽火电子科技有限责任公司 一种短波调制解调器及其调制解调方法
CN103067025B (zh) * 2013-01-01 2017-03-01 中国传媒大学 基于块行循环的cmmb中ldpc编码器和编码方法
US10148326B2 (en) * 2015-07-06 2018-12-04 Qualcomm Incorporated Methods and apparatus for extended receiver processing time
TWI705446B (zh) * 2015-09-18 2020-09-21 韓商愛思開海力士有限公司 具有改良硬解碼處理量的vss低密度同位檢驗解碼器
CN107733570B (zh) * 2017-09-27 2020-08-14 西安邮电大学 基于代数交织器的星座映射方法和映射方式的搜索方法
CN111786680B (zh) * 2019-04-03 2023-01-13 华为技术有限公司 一种生成矩阵的确定方法及装置
WO2021190722A1 (en) * 2020-03-23 2021-09-30 Huawei Technologies Co., Ltd. Communication devices and methods for iterative code design

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2310186A1 (en) * 2000-06-02 2001-12-02 Jeffrey P. Castura Method and system for decoding

Also Published As

Publication number Publication date
HK1068463A1 (en) 2005-04-29
EP1379001A2 (en) 2004-01-07
CN1527499A (zh) 2004-09-08
JP2004080753A (ja) 2004-03-11
KR20040004162A (ko) 2004-01-13
JP3917563B2 (ja) 2007-05-23
CN1282312C (zh) 2006-10-25
EP1379001A3 (en) 2004-03-10

Similar Documents

Publication Publication Date Title
KR100574306B1 (ko) Ldpc 코드를 디코딩하기 위한 방법 및 시스템
US7203887B2 (en) Method and system for routing in low density parity check (LDPC) decoders
US7020829B2 (en) Method and system for decoding low density parity check (LDPC) codes
US7962830B2 (en) Method and system for routing in low density parity check (LDPC) decoders
KR100543154B1 (ko) 저밀도 패리티 검사 코드 생성 방법 및 시스템
US8095854B2 (en) Method and system for generating low density parity check codes
EP2273683B1 (en) Encoding of low density parity check (LDPC) 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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130411

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140410

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160407

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 14