KR101813132B1 - 디코딩 장치 및 방법과 신호 전송 시스템 - Google Patents

디코딩 장치 및 방법과 신호 전송 시스템 Download PDF

Info

Publication number
KR101813132B1
KR101813132B1 KR1020177001722A KR20177001722A KR101813132B1 KR 101813132 B1 KR101813132 B1 KR 101813132B1 KR 1020177001722 A KR1020177001722 A KR 1020177001722A KR 20177001722 A KR20177001722 A KR 20177001722A KR 101813132 B1 KR101813132 B1 KR 101813132B1
Authority
KR
South Korea
Prior art keywords
code
update
code element
codeword
quantization range
Prior art date
Application number
KR1020177001722A
Other languages
English (en)
Other versions
KR20170058912A (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 KR20170058912A publication Critical patent/KR20170058912A/ko
Application granted granted Critical
Publication of KR101813132B1 publication Critical patent/KR101813132B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/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/1131Scheduling of bit node or check node processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1157Low-density generator matrices [LDGM]
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/43Majority logic or threshold decoding
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/6591Truncation, saturation and clamping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations

Abstract

본 발명의 실시예는 디코딩 장치를 개시한다. LDPC 코드의 코드 워드를 업데이트하는 과정에서 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행함으로써, 디코딩 장치는 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는 경우의 업데이트를 선택적으로 포기할 수 있으며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선한다.

Description

디코딩 장치 및 방법과 신호 전송 시스템 {DECODING DEVICE AND METHOD AND SIGNAL TRANSMISSION SYSTEM}
본 발명은 데이터 처리 기술 분야에 관한 것으로, 구체적으로는 LDPC 코드에 적용되는 디코딩 장치 및 디코딩 방법과, LDPC 코드를 사용하는 신호 전송 시스템 및 데이터 저장 시스템에 관한 것이다.
저밀도 패리티 체크(Low Density Parity Check, LDPC) 코드는 1963년 Gallager에 의해 처음 제안되었으며, 정보 비트와 패리티 비트를 포함하는 선형 블록 코드이다. LDPC 코드가 n의 코드 길이를 가지며 정보 비트의 크기(길이)가 k인 것을 가정하면, 패리티 비트의 크기는 n-k이고, 비율 R=k/n은 코드 레이트(code rate)로서 언급된다. LDPC 코드 인코딩 장치는 코드 워드(code word)를 생성하기 위해 생성 행렬(generator matrix)(또는 G 행렬로도 언급됨)에 따라서 전송되어야 할 신호를 처리한다. 일반적으로, 이러한 코드 워드의 일부 코드 엘리먼트는 전송되어야 할 신호를 포함하고 또한 정보 비트로서 언급되며, 일부 코드 엘리먼트는 체크를 위해 사용되는 패리티 비트를 포함한다. 그 후에, LDPC 코드 인코딩 장치는 통신 채널을 통해서 LDPC 코드 디코딩 장치에게 코드 워드를 전송한다. 그 후, LDPC 코드 디코딩 장치는 이 코드 워드를 디코딩한다. 즉, 코드 워드가 체크 결정을 통과하는지를 검증한다. 만일 코드 워드가 통신 채널을 통한 전송 과정에서 잡음에 의해 간섭을 받아서 오류가 발생하는 것을 지시하여 결정을 통과하지 못하는 경우, LDPC 코드 디코딩 장치는, 업데이트되는 코드 워드가 결정을 통과할 수 있을 때까지, 검토 행렬 H를 사용하여 코드 워드에 대한 반복 업데이트(iterative update)를 수행할 필요가 있다.
일반적으로, 저장 제어기에서, 로직/칩 또는 이와 유사한 것들이 LDPC 코드 디코딩 장치를 구현하는 데 사용된다. 따라서, 구체적인 구현 과정에서, 디코딩 장치에 의해 내부적으로 처리되는 데이터는 양자화되고, 계산되며, 저장되고, 양자화 과정은 LDPC 코드 디코딩 장치의 오류 정정 능력을 감소시킨다.
본 출원은 디코딩 장치를 제공하며, 여기서 디코딩 장치는 코드 엘리먼트 양자화 범위가 코드 엘리먼트 업데이트 과정에서 초과되는 경우에 처리를 수행할 수 있고 디코딩 장치의 LDPC 코드 오류 정정 능력을 개선할 수 있다.
측면에 따르면, 본 발명의 실시예는 디코딩 장치를 제공하며, 여기서 디코딩 장치는 LDPC 코드를 디코딩하도록 구성되고, 제1 코드 워드(code word), 예를 들어, -9, +7, -12, +4, +7, +10, -11을 획득하도록 구성된 획득 유닛 - 상기 제1 코드 워드는 생성 행렬(generator matrix)에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트(code element)를 포함하며, M은 양의 정수이고, 이전의 예에서 M은 7임 -; 검토 행렬(check matrix)의 n번째 행(row)에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위(code element quantization range)를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성된 처리 유닛 - 예를 들어, n이 1로 설정되는 경우 상기 검토 행렬의 제1 행에 대한 세 개의 엘리먼트가 1이고, 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및 상기 제2 코드 워드를 획득하고, 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된 결정 유닛을 포함한다. 디코딩되어야 할 제1 코드 워드를 획득한 후, 디코딩 장치는, 제1 코드 워드에 대해, 검토 행렬의 n번째 행에 대응하는 처리를 수행할 필요가 있고, 처리 과정에서 제1 코드 워드 내의 코드 엘리먼트를 업데이트할 수 있으며, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는 경우 이러한 업데이트를 포기할 필요가 있다. 즉, 이러한 측면에서, 코드 엘리먼트에 대응하는 업데이트가 코드 엘리먼트 양자화 범위를 초과하는 경우, 코드 엘리먼트에 대응하는 업데이트는 포기된다.
선택적으로, 이러한 측면에서, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것일 수 있거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 이러한 측면에서의 디코딩 장치는 회로에 의해 구현되고, 상기 디코딩 장치 내에 포함되는 상기 획득 유닛, 상기 처리 유닛, 및 상기 결정 유닛은 또한 회로에 의해 구현된다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트와 상기 제1 코드 워드 내에 있는 다른 제1 코드 엘리먼트로서 상기 검토 행렬의 n번째 행과 관련없는 상기 다른 제1 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 각 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
가능한 설계에 따르면, 상기한 처리 유닛은 저장 모듈을 포함하며, 상기 저장 모듈은 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, 상기 P개의 제2 업데이트 값을 저장하도록 추가로 구성되며, 상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 상기 저장 모듈 내에 저장된 상기 a번째 제1 코드 엘리먼트를 판독하고, 상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 상기 b번째 제1 코드 엘리먼트를 업데이트하기 위해, 상기 저장 모듈 내에 저장된 상기 b번째 제2 업데이트 값을 판독한다. 업데이트된 코드 엘리먼트가 상기 코드 엘리먼트 양자화 범위를 초과하는 전술한 경우가 발생하는 경우, 업데이트 전의 코드 엘리먼트는 이러한 업데이트를 포기하도록 판독될 필요가 있다. 따라서, 상기 저장 모듈은 상기 P개의 제2 업데이트 값과 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되어, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는지에 상관없이 필요한 값이 상기 저장 모듈로부터 획득될 수 있고 디코딩 과정에서 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하거나 또는 초과하지 않는 경우에 유연하게 대응할 수 있는 것을 보장할 수 있다.
다른 측면에 따라서, 본 출원의 실시예는 디코딩 장치를 제공하며, 여기서 디코딩 장치는 LDPC 코드를 디코딩하도록 구성되고, 제1 코드 워드, 예를 들어 -9, +7, -12, +4, +7, +10, -11을 획득하도록 구성된 획득 유닛 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수이고, 이전의 예에서 M은 7임 -; 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 상기 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 P개의 제2 업데이트 값을 사용하여 상기 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성된 처리 유닛 - 예를 들어, 상기 검토 행렬의 제1 행에 대한 세 개의 엘리먼트가 1인 경우 P는 3이며, 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및 상기 제2 코드 워드를 획득하고, 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된 결정 유닛을 포함한다. 디코딩되어야 할 제1 코드 워드를 획득한 후, 디코딩 장치는, 제1 코드 워드에 대해, 검토 행렬의 n번째 행에 대응하는 처리를 수행할 필요가 있고, 처리 과정에서 제1 코드 워드 내의 코드 엘리먼트를 업데이트할 수 있으며, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는 경우 이러한 업데이트를 포기할 필요가 있다. 즉, 이러한 측면에서, 코드 엘리먼트에 대응하는 업데이트가 코드 엘리먼트 양자화 범위를 초과하는 경우, 코드 엘리먼트에 대응하는 업데이트는 포기된다.
선택적으로, 이러한 측면에서, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것일 수 있거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 이러한 측면에서의 디코딩 장치는 회로에 의해 구현되고, 상기 디코딩 장치 내에 포함되는 상기 획득 유닛, 상기 처리 유닛, 및 상기 결정 유닛은 또한 회로에 의해 구현된다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트와 상기 제1 코드 워드 내에 있는 다른 제1 코드 엘리먼트로서 상기 검토 행렬의 n번째 행과 관련없는 상기 다른 제1 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 각 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
가능한 설계에 따르면, 상기한 처리 유닛은 저장 모듈을 포함하며, 상기 저장 모듈은 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, 상기 P개의 제2 업데이트 값을 저장하도록 추가로 구성되며, 상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 상기 저장 모듈 내에 저장된 상기 P개의 제1 코드 엘리먼트를 판독하고, 상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 상기 P개의 제1 코드 엘리먼트를 업데이트하기 위해, 상기 저장 모듈 내에 저장된 상기 P개의 제2 업데이트 값을 판독한다. 업데이트된 코드 엘리먼트가 상기 코드 엘리먼트 양자화 범위를 초과하는 전술한 경우가 발생하는 경우, 업데이트 전의 모든 P개의 제1 코드 엘리먼트는 이러한 업데이트를 포기하도록 판독될 필요가 있다. 따라서, 상기 저장 모듈은 상기 P개의 제2 업데이트 값과 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되어, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는지에 상관없이 필요한 값이 상기 저장 모듈로부터 획득될 수 있고 디코딩 과정에서 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하거나 또는 초과하지 않는 경우에 유연하게 대응할 수 있는 것을 보장할 수 있다.
다른 측면에 따르면, 본 출원의 실시예는 디코딩 방법을 제공하며, 디코딩 방법은 LDPC 코드를 디코딩하는 데 사용되고, 제1 코드 워드, 예를 들어, -9, +7, -12, +4, +7, +10, -11을 획득하는 단계 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수이고, 이전의 예에서 M은 3임 -; 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 단계 - 예를 들어, 상기 검토 행렬의 제1 행에 대해 세 개의 엘리먼트가 1인 경우 P는 3이며, 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하는 단계를 포함한다. 디코딩 과정에서, 디코딩되어야 할 제1 코드 워드가 획득된 후, 상기 검토 행렬의 n번째 행에 대응하는 처리는 코드 워드에 대해 수행될 필요가 있고, 제1 코드 워드 내의 코드 엘리먼트는 처리 과정에서 업데이트될 수 있으며, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하는 경우 이러한 업데이트는 포기될 필요가 있다. 즉, 이러한 측면에서, 코드 엘리먼트에 대응하는 업데이트가 코드 엘리먼트 양자화 범위를 초과하는 경우, 코드 엘리먼트에 대응하는 업데이트는 포기된다.
선택적으로, 이러한 측면에서, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것일 수 있거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트와 상기 제1 코드 워드 내에 있는 다른 제1 코드 엘리먼트로서 상기 검토 행렬의 n번째 행과 관련없는 상기 다른 제1 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 각 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
다른 측면에 따르면, 본 출원의 실시예는 디코딩 방법을 제공하며, 여기서 디코딩 방법은 LDPC 코드를 디코딩하는 데 사용되고, 제1 코드 워드, 예를 들어, -9, +7, -12, +4, +7, +10, -11을 획득하는 단계 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수이고, 이전의 예에서 M은 7임 -; 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 상기 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 P개의 제2 업데이트 값을 사용하여 상기 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 단계 - 예를 들어, 상기 검토 행렬의 제1 행에 대한 세 개의 엘리먼트가 1인 경우 P는 3이며, 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하는 단계를 포함한다. 디코딩 과정에서, 디코딩되어야 할 제1 코드 워드가 획득된 후, 검토 행렬의 n번째 행에 대응하는 처리가 코드 워드에 대해 수행될 필요가 있고, 제1 코드 워드 내의 코드 엘리먼트는 처리 과정에서 업데이트될 수 있다. 즉, 이러한 측면에서, 코드 엘리먼트에 대응하는 업데이트가 코드 엘리먼트 양자화 범위를 초과하는 경우, 검토 행렬의 이러한 행에 대응하는 모든 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트에 대응하는 업데이트가 포기된다.
선택적으로, 이러한 측면에서, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것일 수 있거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트와 상기 제1 코드 워드 내에 있는 다른 제1 코드 엘리먼트로서 상기 검토 행렬의 n번째 행과 관련없는 상기 다른 제1 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
선택적으로, 이러한 측면에서, 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 것은 상기 검토 행렬의 각 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 상기 제2 코드 워드를 생성하는 것을 포함한다.
다른 측면에 따르면, 본 출원의 실시예는 전술한 측면 중 어느 하나에서 언급된 LDPC 코드 인코딩 장치 및 디코딩 장치를 포함하는 신호 전송 시스템을 제공하며, 여기서 상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고, 통신 채널을 통해 상기 디코딩 장치에게 상기 제1 코드 워드를 전송하도록 구성된다. 신호 전송 시스템을 사용하는 과정에서, 통신 채널에서의 전송 중에 전송되어야 할 신호에 대한 잡음의 영향이 고려되고, 따라서, LDPC 코드 인코딩 장치는 전송되어야 할 신호를 LDPC 코드로 인코딩하는 데 사용되며, LDPC 코드는 디코딩 장치측에서 디코딩되어, 디코딩 장치의 디코딩 결과가 원래의 전송되어야 할 신호를 포함하는 것을 보장할 수 있다. 이러한 신호 전송 시스템에서, 전술한 측면의 어느 하나에서 언급된 디코딩 장치가 사용되며, 이것은 LDPC 코드를 디코딩할 때 디코딩 장치의 정확도를 개선시키고 또한 신호 전송 시스템에서 전송되는 신호의 신뢰도를 개선시킬 수 있다.
다른 측면에 따르면, 본 출원의 실시예는 LDPC 코드 인코딩 장치, 전술한 측면의 어느 하나에서 언급된 디코딩 장치 및 저장 매체를 포함하는 데이터 저장 시스템을 제공하며, 여기서, 상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하여, 상기 저장 매체 내에 상기 제1 코드 워드를 저장하도록 구성되고, 상기 디코딩 장치는 상기 저장 매체로부터 상기 제1 코드 워드를 획득하도록 구성된다. 데이터 저장 시스템의 과정에서, 저장되어야 할 신호가 매우 긴 시간동안 저장 매체에 저장되는 경우 발생되거나 또는 다른 요인에 의해 영향을 받는 신호 변화가 고려되며, 따라서, LDPC 코드 인코딩 장치는 저장되어야 할 신호를 LDPC 코드로 인코딩하는 데 사용되고, 그 후 LDPC 코드를 저장 매체에 저장하며, LDPC 코드는 판독되어 디코딩 장치측에서 디코딩되어, 디코딩 장치의 디코딩 결과가 원래의 저장되어야 할 신호를 포함하는 것을 보장할 수 있다. 이러한 데이터 저장 시스템에서, 전술한 측면의 어느 하나에서 언급된 디코딩 장치가 사용되며, 이것은 LDPC 코드를 디코딩할 때 디코딩 장치의 정확도를 개선시키고 또한 데이터 저장 시스템에서 저장되는 신호의 신뢰도를 개선시킬 수 있다.
종래 기술과 비교하여, 본 출원에서 제공되는 해결수단에서의 코드 워드 업데이트 과정에 따르면, 디코딩 장치는 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선시킨다.
본 발명의 실시예 또는 종래 기술의 기술적 해결수단을 더욱 명확히 기술하기 위해, 이하에서 본 발명의 실시예를 설명할 때 필요한 첨부 도면을 간략하게 소개한다. 분명한 것은, 이어질 설명에서 첨부된 도면은 단지 본 발명의 몇 가지 실시예를 나타내며, 통상의 기술자라면 첨부된 도면으로부터 창작 능력 없이도 다른 도면을 도출해 낼 수 있다는 것이다.
도 1은 본 발명의 실시예에 따른 LDPC 코드 인코딩 및 디코딩 구조도이다.
도 2는 본 발명의 실시예에 따른 다른 LDPC 코드 인코딩 및 디코딩 구조도이다.
도 3은 본 발명의 장치 실시예 1에 따른 디코딩 장치의 복합 구조의 개략적인 구성도이다.
도 4는 본 발명의 장치 실시예 2에 따른 디코딩 장치의 복합 구조의 개략적인 구성도이다.
도 5는 본 발명의 장치 실시예 3에 따른 디코딩 장치의 복합 구조의 개략적인 구성도이다.
도 6은 본 발명의 장치 실시예 3 및 장치 실시예 4에 따른 디코딩 장치에 적용되는 검토 행렬에 대응하는 태너 다이아그램이다.
도 7은 본 발명의 장치 실시예 4에 따른 디코딩 장치의 복합 구조의 개략적인 구성도이다.
도 8은 본 발명의 방법 실시예 1에 따른 디코딩 방법의 개략적인 흐름도이다.
도 9는 본 발명의 방법 실시예 2에 따른 디코딩 방법의 개략적인 흐름도이다.
도 10은 본 발명의 방법 실시예 3에 따른 디코딩 방법의 개략적인 흐름도이다.
도 11은 본 발명에 따른 디코딩 장치와 종래의 디코딩 장치의 에뮬레이션 결과를 도시한 도면이다.
본 발명의 실시예의 목적, 기술적 해결수단, 및 이점을 보다 명확히 하기 위해, 이하 본 발명 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결수단을 더욱 명확하고 완전하게 기술한다. 분명한 것은, 설명되는 실시예는 본 발명의 실시예의 전부가 아니라 단지 일부일 뿐이다. 창작 능력 없이 본 발명의 실시예에 기초하여 통상의 기술자에 의해 획득되는 모든 다른 실시예는 본 발명의 보호 범위 내에 속할 것이다.
본 명세서에서, 용어 "저밀도 패리티 체크 코드(Low Density Parity Check Code)"는 선형 오류 정정 코드의 유형으로서 언급되고, 일반적으로 통신 채널을 통해서 신호를 전송하기 위해 또는 통신 분야에서의 저장 매체 내에 데이터를 저장하기 위해 사용된다.
본 명세서에서, 용어 "코드 워드(Code Word)"는 통신 채널을 통해 전송되거나 또는 저장 장치 내에 저장된 코드 엘리먼트(Code Element)의 그룹을 포함하는 신호를 언급한다. 예를 들어, LDPC 코드의 코드 워드가 7의 길이를 가지는 경우, 코드 워드는 7개의 코드 엘리먼트를 포함한다.
본 명세서에서, 용어 "코드 엘리먼트 양자화 범위(code element quantization range)"는 또한 가변 노드(Variable Node) 양자화 범위로서 언급될 수 있다. LDPC 코드를 디코딩하는 과정에서, 디코딩되어야 할 코드의 각 코드 엘리먼트는 한 개의 가변 노드에 대응하고, 검토 행렬의 각 행(row)은 한 개의 체크 노드(Check Node)에 대응한다. 상세한 것은, 도 6에서의 태너 다이아그램(Tanner Diagram)을 참조한다. 코드 엘리먼트 양자화 범위는 또한 LDPC 코드 디코딩 장치에 의해 각 코드 엘리먼트에게 할당되는 주소 공간의 크기이다. 예를 들어, 각 코드 엘리먼트에게 할당되는 주소 공간이 6비트이면, 코드 엘리먼트 양자화 범위는 -31 내지 +31이다.
본 발명의 실시예에 따른 LDPC 코드 인코딩 및 디코딩 구조
도 1은 본 발명의 실시예에 따른 LDPC 코드 인코딩 및 디코딩 구조를 도시한다. 일반적으로, (또한 정보 비트로서 언급되는 실제 정보를 운반하는) 전송되어야 할 신호의 그룹에 대해, LDPC 코드 인코딩 장치가 먼저 G 행렬로도 언급되는 생성 행렬에 따라서 전송되어야 할 신호에 대한 한 개의 코드 워드를 생성하고, 그 후 LDPC 코드 인코딩 장치가 통신 채널을 통해서 LDPC 코드 디코딩 장치에게 코드 워드를 전송한다. 일반적으로, 코드 워드는 통신 채널을 통한 전송 과정 중에 잡음에 의해 영향을 받고, 따라서, 통신 채널을 통한 전송 과정에서 코드 워드에서 오류가 발생할 수 있다. 따라서, LDPC 코드 디코딩 장치는 통신 채널을 통해 전송되는 코드 워드에 대한 오류 정정 및 체크 능력을 갖는다. 예를 들어, 전송되어야 할 신호의 그룹은 1, 0, 1, 1이다. 전송되어야 할 신호와 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되는 코드 워드는 1, 0, 1, 1, 0, 0, 1이다. LDPC 코드 인코딩 장치가 전위 신호(electric potential signal)를 사용하여 LDPC 코드 디코딩 장치에게 코드 워드를 전송한 후, LDPC 코드 디코딩 장치에 의해 수신되는 전위 신호는 -9 볼트, +7 볼트, -12 볼트, +4 볼트, +7 볼트, +10 볼트, -11 볼트이다. 본 발명에서, 통신 채널을 통해서 LDPC 코드 디코딩 장치에게 전송되는 전위 신호는 또한 코드 워드로서도 언급되며, 여기서 양의 전위는 0에 대응하고 음의 전위는 1에 대응한다. 따라서, 통신 채널을 통해서 전송된 후, 네 번째 코드 엘리먼트 1이 0에 대응하는 +4 볼트로 변한다. 즉, 통신 채널을 통해서 코드 워드의 네 번째 코드 엘리먼트를 전송하는 과정에서 오류가 발생하고, LDPC 코드 디코딩 장치는, 정정된 코드 워드 1, 0, 1, 1, 0, 0, 1을 획득하기 위해, LDPC 코드 인코딩 장치에 의해 사용된 생성 행렬에 대응하는 검토 행렬에 따라서 오류를 정정할 필요가 있다.
도 2는 본 발명의 실시예에 따른 다른 LDPC 코드 인코딩 및 디코딩 구조의 사용 시나리오를 도시한다. 전술한 예에 따르면, 저장되어야 할 신호 1, 0, 1, 1을 수신한 후, LDPC 코드 인코딩 장치는 저장되어야 할 신호와 생성 행렬에 따라서 코드 워드 1, 0, 1, 1, 0, 0, 1을 생성하고, 저장 매체 내에 코드 워드를 저장한다. LDPC 코드 디코딩 장치가 저장 매체를 액세스하는 경우, 저장 매체는 보통 전위 신호를 사용하여 데이터를 기록한다. 예를 들어, LDPC 코드 디코딩 장치에 의해 저장 매체로부터 획득되는 전위 신호는 -9 볼트, +7 볼트, -12 볼트, +4 볼트, +7 볼트, +10 볼트, -11 볼트이다. 저장 매체의 에이징(aging) 또는 다른 요인으로 인해, 저장 과정에서 네 번째 코드 엘리먼트에서 오류가 발생하고, LDPC 코드 디코딩 장치는, 정확한 코드 워드 1, 0, 1, 1, 0, 0, 1을 획득하기 위해, LDPC 코드 인코딩 장치에 의해 사용되는 생성 행렬에 대응하는 검토 행렬에 따라서 오류를 정정할 필요가 있다.
실제, 일반적으로, LDPC 코드 인코딩 장치 및 LDPC 코드 디코딩 장치는 전용의 하드웨어 장치, 예를 들어, ASIC(Appaication Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등을 사용하여 실행을 수행한다. 통신 채널을 통해 LDPC 코드 디코딩 장치에게 전송되는 전위 신호는 보통 부동 소수점 수(floating point number)이다. 또한, 잡음의 존재로 인해, 전위 신호의 값의 범위가 결정될 수 없다. 따라서, 일반적으로, 설계시, LDPC 코드 디코딩 장치는 LDPC 코드 디코딩 장치에 의해 획득되거나 오류 정정 과정에서 사용되는 코드 워드의 전위 값을 양자화한다. 예를 들어, 6비트가 양자화를 위해 사용되는 경우, 값의 범위는 -31 내지 +31이고, +31보다 큰 값은 +31로 설정되며, -31보다 작은 값은 -31로 설정된다. 실제로 복수의 양자화 방법이 있으며 양자화 결과는 반드시 정수는 아니지만, 또한 정수 부분과 분수(fractional) 부분을 포함할 수 있다. 그러나, 설계시 할당된 양자화 값의 비트의 개수에 따라서, 양자화 결과는 양자화 범위로도 불리는 고정된 값의 범위를 갖는다. 일반적으로, 가변 노드와 체크 노드는 각각의 양자화 범위를 갖는다. 본 발명의 본 명세서에서, 코드 엘리먼트 양자화 범위는 또한 가변 노드 양자화 범위이다.
장치 실시예 1
장치 실시예1은 디코딩 장치(200)를 제공하며, 여기서 디코딩 장치(200)는 LDPC 코드를 디코딩하도록 구성된다. 도 3은 디코딩 장치(200)의 합성 구조의 개략적인 구성도를 예시한다. 장치(200)는 획득 유닛(202), 처리 유닛(204), 및 결정 유닛(206)을 포함한다.
획득 유닛(202)은 제1 코드 워드를 획득하도록 구성되며, 여기서 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고 M개의 제1 코드 엘리먼트를 포함하며 M은 양의 정수이다. 상세한 것은, 상기한 LDPC 코드 인코딩 및 디코딩 구조를 참조한다.
획득 유닛(202)에 의해 획득되는 코드 워드는 통신 채널을 통해서 전송될 수 있거나, 또는 저장 매체로부터 판독될 수 있다. 여기에서 제1 코드 엘리먼트는 제1 코드 워드 내의 임의 코드 엘리먼트이다.
처리 유닛(204)은 검토 행렬의 n번째 행(row)에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 연속하여 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성되며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다.
결정 유닛(206)은 결정 처리 유닛(204)에 의해 생성되는 제2 코드 워드를 획득하고 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된다.
Figure 112017006729534-pct00001
본 실시예에서, 예를 들면, 전술한 검토 행렬은 디코딩 장치에 의해 사용된다. 즉, N은 3과 같다. 획득 유닛(202)에 의해 획득되는 제1 코드 워드는 -9, +7, -12, +4, +7, +10, -11이다. 즉, M은 7과 같다. 처리 유닛(204)은, 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행에 관련된 코드 엘리먼트에 따라서, 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행에 관련된 코드 엘리먼트에 대응하는 업데이트 값을 생성한다. 즉, n은 1과 같다. 실제 동작 중에, 처리 유닛(204)은 검토 행렬의 제1 행부터, 제2 행, 제3 행까지의 시퀀스에 따라서 처리를 수행하거나, 또는 다른 시퀀스에 따라서 처리를 수행하며, 여기서 n의 값은 검토 행렬의 행의 개수보다 작거나 같은 임의의 양의 정수일 수 있다. 검토 행렬의 제1 행에 관련된 코드 엘리먼트, 즉 첫 번째 코드 엘리먼트 -9, 두 번째 코드 엘리먼트 +7, 네 번째 코드 엘리먼트 +4를 획득(여기서 제1 코드 엘리먼트는 -9, +7, +4를 포함함)한 후, 처리 유닛(204)은 제1 코드 워드 내의 첫 번째 코드 엘리먼트에 대응하는 업데이트 값 +4, 두 번째 코드 엘리먼트에 대응하는 업데이트 값 -4, 네 번째 코드 엘리먼트에 대응하는 업데이트 값 -7을 생성한다. 즉, P는 3과 같으며, 제1 업데이트 값은 +4, -4, 및 -7을 포함한다. P개의 제1 코드 엘리먼트의 각 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 심볼은 이러한 제1 코드 엘리먼트를 제외한 다른 제1 코드 엘리먼트의 심볼의 곱(product)이고, P개의 제1 코드 엘리먼트의 각 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 절대값은 가장 작은 절대값을 갖는 제1 코드 엘리먼트의 절대값이다(이러한 제1 코드 엘리먼트 자체가 가장 작은 절대값을 갖는 제1 코드 엘리먼트이면, 이러한 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 절대값이 제2의 가작 작은 절대값을 갖는 제1 코드 엘리먼트의 절대값으로 설정된다). 예를 들어, 제1 코드 엘리먼트가 코드 엘리먼트 A, 코드 엘리먼트 B, 및 코드 엘리먼트 C를 포함하는 경우, 코드 엘리먼트 A에 대응하는 업데이트 값의 심볼은 코드 엘리먼트 B와 코드 엘리먼트 C의 심볼의 곱이고, 코드 엘리먼트 A에 대응하는 업데이트 값의 절대값은 코드 엘리먼트 B와 코드 엘리먼트 C의 절대값 중 작은 절대값이다.
제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행과 관련있는 코드 엘리먼트에 대응하는 업데이트 값을 획득한 후, 처리 유닛(204)은 제2 업데이트 값을 획득하기 위해 각 제1 업데이트 값을 그에 대응하는 제1 코드 엘리먼트에 더한다. 즉, 제2 업데이트 값은 -5 (+4와 -9의 합), +3 (+7과 -4의 합), 및 -3 (+4와 -7의 합)이다.
제2 업데이트 값을 획득한 후, 처리 유닛(204)은 계속해서 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하고; 처리 유닛(204)이 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(204)은 a번째 제2 업데이트 값을 사용하여 a번째 제1 코드 엘리먼트를 업데이트하지 않고, 즉 a번째 제1 코드 엘리먼트를 업데이트되지 않은 채로 유지하고; 처리 유닛(204)이 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우 처리 유닛(204)은 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트한다.
전술한 예에 따라서, P가 본 예에서 3과 같기 때문에, a의 값이 1, 2 또는 3일 수 있으며 제2 업데이트 값 -5, +3, 또는 -3에 각각 대응된다. 예를 들어, a가 1로 설정되고, 처리 유닛(204)은 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는 경우, -9가 -5를 사용하여 업데이트되지 않고, 즉 코드 엘리먼트 -9가 변하지 않으며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, -9는 -5를 사용하여 업데이트되며, 즉 코드 엘리먼트 -9가 -5로 업데이트된다. 처리 유닛(204)은 계속해서 본 방법에 따라서 제1 코드 엘리먼트 -9, +7, 및 +4를 처리한다. 예를 들어, 본 실시예에서 코드 엘리먼트 양자화 범위는 -15 내지 +15이다. 그 후, 어떠한 제2 업데이트 값도 코드 엘리먼트 양자화 범위를 초과하지 않는다. 처리 유닛(204)은 검토 행렬의 제1 행에 대응하는 처리를 완료한 후 제2 코드 엘리먼트를 생성한다. 제2 코드 엘리먼트는 -5, +3, 및 -3을 포함한다. 제2 코드 엘리먼트의 각 코드 엘리먼트의 생성은 대응하는 제1 코드 엘리먼트를 유지할 것이거나(대응하는 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우), 또는 대응하는 제2 업데이트 값을 사용하여 대응하는 제1 코드 엘리먼트를 업데이트할 것이다(대응하는 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 경우).
처리 유닛(204)은 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성한다. 대부분 제2 코드 워드를 생성하는 두 가지 방법은 다음과 같이 예시된다.
방법 1 : 제2 코드 워드는 제1 코드 워드 -9, +7, -12, +4, +7, +10, -11 내에 있는 코드 엘리먼트(즉, 제1 코드 엘리먼트)로서 검토 행렬의 n번째(본 예에서 n은 1과 같음) 행과 관련있는 코드 엘리먼트를, 제2 코드 엘리먼트로, 업데이트함으로써 생성되고, 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 n번째 행과 관련없는 제1 코드 엘리먼트는 보류된다. 즉, 제2 코드 워드는 -5, +3, -12, -3, +7, +10, -11이다.
방법 2 : 제1 임시 코드 워드는 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 n번째(본 예에서 n은 1과 같음) 행과 관련 있는 제1 코드 엘리먼트를, 제2 코드 엘리먼트로, 업데이트함으로써 생성되고, 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 제1 행과 관련없는 제1 코드 엘리먼트는 보류된다. 즉, 제1 임시 코드 워드는 -5, +3, -12, -3, +7, +10, -11이다.
제2 임시 코드 워드는 제1 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트를 업데이트함으로써 생성된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트 -12, +4, 및 +7가 먼저 획득된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트에 대응하는 +4, -7, 및 -4를 포함하는 제3 업데이트 값이 생성된다. 제4 업데이트 값은 제1 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트 -12, -3, 및 +7에 +4, -7, 및 -4를 더함으로써 생성되며, 여기서 제4 업데이트 값은 -8, -10, 및 +3을 포함한다. -8, -10, 및 +3 중 어느 하나가 코드 엘리먼트 양자화 범위를 초과하는지가 결정된다. 제4 업데이트 값 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는 경우, 제1 임시 코드 워드 내에서 대응되는 코드 엘리먼트는 제4 업데이트 값을 사용하여 업데이트되지 않는다. 제4 업데이트 값 중 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 제1 임시 코드 워드 -5, +3, -12, -3, +7, +10, -11은, 제2 임시 코드 워드 -5, +3, -8, -10, +3, +10, -11을 획득하기 위해, 제4 업데이트 값 -8, -10, 및 +3을 사용하여 업데이트된다.
제2 코드 워드는 제2 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트를 업데이트함으로써 생성된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트 +4, +10, 및 -11이 먼저 획득된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트에 대응하는 -10, -4, 및 +4를 포함하는 제5 업데이트 값이 생성된다. -20, +6, 및 -7을 포함하는 제6 업데이트 값은 제2 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트 -10, +10, 및 -11에 -10, -4, 및 +4를 더함으로써 생성된다. -20, +6, 및 -7 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는지가 결정된다. 제6 업데이트 값 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는 경우, 제2 임시 코드 워드 내에서 대응하는 코드 엘리먼트는 제6 업데이트 값을 사용하여 업데이트되지 않는다. 제6 업데이트 값 중 어떤 것이라도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 제2 임시 코드 워드 -5, +3, -8, -10, +3, +10, -11은 제6 업데이트 값 -20, +6, 및 -7을 사용하여 업데이트된다. 제2 코드 워드 -5, +3, -8, -10, +3, +6, -7은 -20이 코드 엘리먼트 양자화 범위를 초과하기 때문에 본 예에서 획득된다.
방법 2에서, 제2 코드 워드는 체크 매트리스의 제1 행, 제2 행으로부터 제3 행까지의 시퀀스에 따라서 제1 코드 워드를 처리함으로써 획득되지만, 방법 2의 실제 사용 과정에서, 제1 코드 워드는 검토 행렬의 다른 시퀀스에 따라서 처리될 수 있다. 예를 들어, 제1 행이 제1 임시 코드 워드를 획득하기 위해 먼저 처리될 수 있고, 그 후 제3 행이 제2 임시 코드 워드를 획득하기 위해 처리되며, 그 후 제2 행이 제2 코드 워드를 획득하기 위해 처리된다. 다수의 처리 시퀀스가 있을 수 있다. 제1 코드 워드를 사용하여 제2 코드 워드를 생성하는 과정에서, 검토 행렬의 각 행은 대응적으로 처리되고, 검토 행렬의 각 행에 대응하는 처리는 단지 한 번만 수행된다.
선택적으로, 처리 유닛(204)은 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, P개의 제2 업데이트 값을 저장하도록 추가로 구성된 저장 모듈을 포함한다. P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(204)은 저장 모듈 내에 저장된 a번째 제1 코드 엘리먼트를 판독하고; 즉, 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 처리 유닛(204)은 제2 업데이트 값을 사용하여 대응하는 제1 코드 엘리먼트를 업데이트하지 않으며, 따라서, 제2 코드 엘리먼트를 획득하기 위해, 저장 모듈로부터, 제2 업데이트 값에 대응하는 제1 코드 엘리먼트를 판독한다. P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않은 것으로 결정한 후, 처리 유닛(204)은, b번째 제1 코드 엘리먼트를 업데이트하기 위해, 저장 모듈 내에 저장된 b번째 제2 업데이트 값을 판독하며; 즉, 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 처리 유닛(204)은 제2 업데이트 값을 사용하여 대응하는 제1 코드 엘리먼트를 업데이트하고, 따라서 저장 모듈로부터 제2 업데이트 값을 판독하고, 제2 코드 엘리먼트를 획득하기 위해, 대응하는 제1 코드 엘리먼트로 대체한다.
전술한 예에 따르면, 저장 모듈은 제1 코드 엘리먼트 -9, +7, 및 +4를 저장하고, 저장 모듈은 제2 업데이트 값 -5, +3, 및 -3을 더 저장한다. 처리 유닛(204)은 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(204)은 대응하는 제1 코드 엘리먼트를 판독하고; 처리 유닛(204)이 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 처리 유닛(204)은 대응하는 제2 업데이트 값을 판독한다. 처리 유닛(204)이 방법 1을 사용하여 제2 코드 워드를 생성하는 예에서, 처리 유닛(204)은 제1 업데이트 값 -5, +3, 및 -3 중 어떠한 값도 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하고, 따라서, 제1 코드 워드를 업데이트하고 제2 코드 워드 -5, +3, -12, -3, +7, +10, -11을 생성하기 위해 제2 업데이트 값을 판독한다.
처리 유닛(204)은 결정 유닛(206)에게 제2 코드 워드를 전송하며, 여기서 결정 유닛(206)은 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된다.
처리 유닛(204)이 상기한 방법 1을 사용하여 제2 코드 워드를 생성하는 경우, 결정 유닛(206)은 제2 코드 워드 -5, +3, -12, -3, +7, +10, -11가 성공적으로 디코딩된 것으로 결정하면, 디코딩 장치(200)는 검토 행렬의 다른 행에 대응하는 업데이트를 계속 수행하고 검토 행렬의 행에 대응하는 제2 코드 워드를 생성한다. 여기서, 제2 행이 예로서 사용된다. 검토 행렬의 제2 행에 대응하는 업데이트가 완료된 후, 획득되는 제2 코드 워드는 -5, +3, -8, -10, +3, +10, -11이다. 결정 유닛(206)이 제2 코드 워드 -5, +3, -8, -10, +3, +10, -11이 성공적으로 디코딩된 것으로 결정하는 경우, 디코딩 장치(200)는 검토 행렬의 다른 행에 대응하는 업데이트를 계속 수행하고 검토 행렬의 행에 대응하는 제2 코드 워드를 생성한다. 여기서, 제3 행이 예로서 사용된다. 검토 행렬의 제3 행에 대응하는 업데이트가 완료된 후, 획득되는 제2 코드 워드는 -5, +3, -8, -10, +3, +6, -7이다. 결정 유닛(206)이 제2 코드 워드 -5, +3, -8, -10, +3, +6, -7이 성공적으로 디코딩된 것으로 결정하는 경우, 디코딩 장치(200)는, 디코딩 결과로서, -5, +3, -8, -10, +3, +6, -7를 매핑한 결과 1, 0, 1, 1, 0, 0, 1을 사용한다. 일반적으로, 처리 유닛(204)이 상기한 방법 1을 사용하여 제2 코드 워드를 생성하는 경우, 디코딩 장치(200)는 제2 코드 워드가 검토 행렬의 연속되는 행의 개수에 대응하는 결정을 통과할 수 있는 것으로 결정할 필요가 있으며, 그 후 검토 행렬의 마지막 행에 대응하는 제2 코드 워드를 매핑한 결과가 디코딩 결과이다. 예를 들어, 디코딩 장치(200)는 검토 행렬의 제1 행, 제2 행부터 제3 행까지의 시퀀스에 따라서 처리를 수행하고 검토 행렬의 세 개의 연속되는 행의 결정을 통과할 필요가 있다. 검토 행렬의 제2 행에 의해 출력되는 제2 코드 워드의 결정이 실패하고, 제3 행에 의해 출력되는 제2 코드 워드가 성공적으로 디코딩되며, 업데이트의 다음 라운드(round)에서 제1 행과 제2 행 둘 다에 의해 출력되는 제2 코드 워드가 디코딩에 성공하는 경우, 업데이트의 다음 라운드에서의 검토 행렬의 제2 행에 대응하는 제2 코드 워드를 매핑한 결과가 디코딩 결과이다. 업데이트의 각 라운드는 검토 행렬의 각 행에 대응하는 처리를 포함하고, 업데이트의 라운드에서 검토 행렬의 행에 대응하는 처리 전에 업데이트의 이전 라운드에서 검토 행렬의 행을 처리하는 과정에서 그 행에 대응하는 코드 엘리먼트의 엑시테이션(excitation)은 제거될 필요가 있다.
처리 유닛(204)이 상기한 방법 2를 사용하여 제2 코드 워드를 생성하는 경우, 결정 유닛(206)이 제2 코드 워드 -5, +3, -8, -10, +3, +6, -7이 성공적으로 디코딩되는 것으로 결정하는 경우, 제2 코드 워드를 매핑한 결과 1, 0, 1, 1, 0, 0, 1이 디코딩 결과이다. 제2 코드 워드가 디코딩에 실패하는 경우, 업데이트의 다음 라운드가 수행된다.
본 실시예는 디코딩 장치를 제공한다. 디코딩 장치는 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, LDPC 코드 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선한다.
장치 실시예 2
장치 실시예 2는 디코딩 장치(400)를 제공하며, 여기서 디코딩 장치(400)는 LDPC 코드를 디코딩하도록 구성된다. 도 4는 디코딩 장치(400)의 합성 구조의 개략적인 구성도를 예시한다. 장치(400)는 획득 유닛(402), 처리 유닛(404), 및 결정 유닛(406)을 포함한다.
획득 유닛(402)은 제1 코드 워드를 획득하도록 구성되며, 여기서 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고 M개의 제1 코드 엘리먼트를 포함하며 M은 양의 정수이다. 상세한 것은, 상기한 LDPC 코드 인코딩 및 디코딩 구조를 참조한다. 획득 유닛(402)에 의해 획득되는 코드 워드는 통신 채널을 통해서 전송될 수 있거나, 또는 저장 매체로부터 판독될 수 있다. 여기서 제1 코드 엘리먼트는 제1 코드 워드 내의 임의 코드 엘리먼트이다.
처리 유닛(204)은 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 연속하여 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성되며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다.
결정 유닛(406)은 결정 처리 유닛(404)에 의해 생성되는 제2 코드 워드를 획득하고 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된다.
Figure 112017006729534-pct00002
본 실시예에서, 예를 들면, 전술한 검토 행렬은 디코딩 장치에 의해 사용된다. 즉, N은 3과 같다. 획득 유닛(402)에 의해 획득되는 제1 코드 워드는 -9, +7, -12, +4, +7, +10, -11이다. 즉, M은 7과 같다. 처리 유닛(404)은, 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행과 관련있는 코드 엘리먼트에 따라서, 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행과 관련있는 코드 엘리먼트에 대응하는 업데이트 값을 생성한다. 즉, n은 1과 같다. 실제 동작 중에, 처리 유닛(404)은 검토 행렬의 제1 행부터, 제2 행, 제3 행까지의 시퀀스에 따라서 처리를 수행할 수 있거나, 또는 다른 시퀀스에 따라서 처리를 수행하며, 여기서 n의 값은 검토 행렬의 행의 개수보다 작거나 같은 임의의 양의 정수일 수 있다. 검토 행렬의 제1 행과 관련있는 코드 엘리먼트, 즉 제1 코드 엘리먼트 -9, 제2 코드 엘리먼트 +7, 및 제4 코드 엘리먼트 +4를 획득(여기서 제1 코드 엘리먼트는 -9, +7, 및 +4를 포함함)한 후, 처리 유닛(404)은 제1 코드 워드 내의 제1 코드 엘리먼트에 대응하는 업데이트 값 +4, 제2 코드 엘리먼트에 대응하는 업데이트 값 -4, 제4 코드 엘리먼트에 대응하는 업데이트 값 -7을 생성한다. 즉, P는 3과 같으며, 제1 업데이트 값은 +4, -4, 및 -7을 포함한다. P개의 제1 코드 엘리먼트의 각 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 심볼은 이러한 제1 코드 엘리먼트를 제외한 다른 제1 코드 엘리먼트의 심볼의 곱(product)이고, P개의 제1 코드 엘리먼트의 각 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 절대값은 가장 작은 절대값을 갖는 제1 코드 엘리먼트의 절대값이다(이러한 제1 코드 엘리먼트 자체가 가장 작은 절대값을 갖는 제1 코드 엘리먼트이면, 이러한 제1 코드 엘리먼트에 대응하는 제1 업데이트 값의 절대값이 제2의 가작 작은 절대값을 갖는 제1 코드 엘리먼트의 절대값으로 설정된다). 예를 들어, 제1 코드 엘리먼트가 코드 엘리먼트 A, 코드 엘리먼트 B, 및 코드 엘리먼트 C를 포함하는 경우, 코드 엘리먼트 A에 대응하는 업데이트 값의 심볼은 코드 엘리먼트 B와 코드 엘리먼트 C의 심볼의 곱이고, 코드 엘리먼트 A에 대응하는 업데이트 값의 절대값은 코드 엘리먼트 B와 코드 엘리먼트 C의 절대값 중 작은 절대값이다.
제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제1 행과 관련있는 코드 엘리먼트에 대응하는 업데이트 값을 획득한 후, 처리 유닛(404)은 제2 업데이트 값을 획득하기 위해 각 제1 업데이트 값을 그에 대응하는 제1 코드 엘리먼트에 더한다. 즉, 제2 업데이트 값은 -5 (+4와 -9의 합), +3 (+7과 -4의 합), 및 -3 (+4와 -7의 합)이다.
제2 업데이트 값을 획득한 후, 처리 유닛(404)은 계속해서 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하고; 처리 유닛(404)이 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(404)은 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하지 않고, 즉 P개의 제1 코드 엘리먼트를 업데이트되지 않은채로 유지하고; 처리 유닛(404)이 P개의 제2 업데이트 값의 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 처리 유닛(404)은 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트한다.
전술한 예에 따라서, P가 본 예에서 3과 같기 때문에, a의 값이 1, 2 또는 3일 수 있으며 제2 업데이트 값 -5, +3, 또는 -3에 각각 대응된다. 예를 들어, a가 1로 설정되고, 처리 유닛(404)은 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는 경우, -9가 -5를 사용하여 업데이트되지 않고, -4가 +3을 사용하여 업데이트되지 않으며, -7이 -3을 사용하여 업데이트되지 않고; 마찬가지로, 다른 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 제2 업데이트 값 중 어느 하나를 사용하여 제1 코드 엘리먼트를 업데이트하며; 제2 업데이트 값 -5, +3, 및 -3 중 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, -9는 -5를 사용하여 업데이트되고, -4는 +3을 사용하여 업데이트되며, -7은 -3을 사용하여 업데이트된다. 예를 들어, 본 실시예에서 코드 엘리먼트 양자화 범위는 -15 내지 +15이다. 그 후, 어떠한 제2 업데이트 값도 코드 엘리먼트 양자화 범위를 초과하지 않는다. 처리 유닛(404)은 검토 행렬의 제1 행에 대응하는 처리를 완료한 후 제2 코드 엘리먼트를 생성한다. 제2 코드 엘리먼트는 -5, +3, 및 -3을 포함한다. 제2 코드 엘리먼트의 각 코드 엘리먼트의 생성은 대응하는 제1 코드 엘리먼트를 유지할 것이거나(제2 업데이트 값 중 어느 하나가 코드 엘리먼트 양자화 범위를 초과하는 경우), 또는 대응하는 제2 업데이트 값을 사용하여 대응하는 제1 코드 엘리먼트를 업데이트할 것이다(제2 업데이트 값의 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우).
처리 유닛(404)은 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성한다. 대부분 제2 코드 워드를 생성하는 두 가지 방법은 다음과 같이 예시된다.
방법 1 : 제2 코드 워드는 제1 코드 워드 -9, +7, -12, +4, +7, +10, -11 내에 있는 코드 엘리먼트(즉, 제1 코드 엘리먼트)로서 검토 행렬의 n번째(본 예에서 n은 1과 같음) 행과 관련있는 코드 엘리먼트를, 제2 코드 엘리먼트로, 업데이트함으로써 생성되고, 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 n번째 행과 관련없는 제1 코드 엘리먼트는 보류된다. 즉, 제2 코드 워드는 -5, +3, -12, -3, +7, +10, -11이다.
방법 2 : 제1 임시 코드 워드는 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 n번째(본 예에서 n은 1과 같음) 행과 관련있는 제1 코드 엘리먼트를, 제2 코드 엘리먼트로, 업데이트함으로써 생성되고, 제1 코드 워드 내에 있는 제1 코드 엘리먼트로서 검토 행렬의 제1 행과 관련없는 제1 코드 엘리먼트는 보류된다. 즉, 제1 임시 코드 워드는 -5, +3, -12, -3, +7, +10, -11이다.
제2 임시 코드 워드는 제1 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트를 업데이트함으로써 생성된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트 -12, +4, 및 +7이 먼저 획득된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트에 대응하는 +4, -7, 및 -4를 포함하는 제3 업데이트 값이 생성된다. 제4 업데이트 값은 제1 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제2 행과 관련있는 코드 엘리먼트 -12, -3, 및 +7에 +4, -7, 및 -4를 더함으로써 생성되며, 여기서 제4 업데이트 값은 -8, -10, 및 +3을 포함한다. -8, -10, 및 +3 중 어느 하나가 코드 엘리먼트 양자화 범위를 초과하는지가 결정된다. 제4 업데이트 값 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는 경우, 제1 임시 코드 워드는 제4 업데이트 값을 사용하여 업데이트되지 않는다. 제4 업데이트 값 중 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 제1 임시 코드 워드 -5, +3, -12, -3, +7, +10, -11은, 제2 임시 코드 워드 -5, +3, -8, -10, +3, +10, -11을 획득하기 위해, 제4 업데이트 값 -8, -10, 및 +3을 사용하여 업데이트된다.
제2 코드 워드는 제2 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트를 업데이트함으로써 생성된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트 +4, +10, 및 -11이 먼저 획득된다. 제1 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트에 대응하는 -10, -4, 및 +4를 포함하는 제5 업데이트 값이 생성된다. -20, +6, 및 -7을 포함하는 제6 업데이트 값은 제2 임시 코드 워드 내에 있는 코드 엘리먼트로서 검토 행렬의 제3 행과 관련있는 코드 엘리먼트 -10, +10, 및 -11에 -10, -4, 및 +4를 더함으로써 생성된다. -20, +6, 및 -7 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는지가 결정된다. 제6 업데이트 값 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는 경우, 제2 임시 코드 워드는 제6 업데이트 값을 사용하여 업데이트되지 않는다. 제6 업데이트 값 중 어떤 것이라도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 제2 임시 코드 워드 -5, +3, -8, -10, +3, +10, -11은 제6 업데이트 값 -20, +6, 및 -7을 사용하여 업데이트된다. 제6 업데이트 값 -20이 코드 엘리먼트 양자화 범위를 초과하기 때문에 제2 코드 워드 -5, +3, -8, -10, +3, +10, -11이 본 예에서 획득된다.
방법 2에서, 제2 코드 워드는 체크 매트리스의 제1 행, 제2 행으로부터 제3 행까지의 시퀀스에 따라서 제1 코드 워드를 처리함으로써 획득되지만, 방법 2의 실제 사용 과정에서, 제1 코드 워드는 검토 행렬의 다른 시퀀스에 따라서 처리될 수 있다. 예를 들어, 제1 행이 제1 임시 코드 워드를 획득하기 위해 먼저 처리될 수 있고, 그 후 제3 행이 제2 임시 코드 워드를 획득하기 위해 처리되며, 그 후 제2 행이 제2 코드 워드를 획득하기 위해 처리된다. 다수의 처리 시퀀스가 있을 수 있다. 제1 코드 워드를 사용하여 제2 코드 워드를 생성하는 과정에서, 검토 행렬의 각 행은 대응적으로 처리되고, 검토 행렬의 각 행에 대응하는 처리는 단지 한 번만 수행된다.
선택적으로, 처리 유닛(404)은 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, P개의 제2 업데이트 값을 저장하도록 추가로 구성된 저장 모듈을 포함한다. P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(404)은 저장 모듈 내에 저장된 P개의 제1 코드 엘리먼트를 판독하고; 즉, 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 처리 유닛(404)은 제2 업데이트 값을 사용하여 제1 코드 엘리먼트를 업데이트하지 않으며, 따라서, 제2 코드 엘리먼트를 획득하기 위해, 저장 모듈로부터 P개의 제1 코드 엘리먼트를 판독한다. P개의 제2 업데이트 값의 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않은 것으로 결정하는 경우, 처리 유닛(404)은, 저장 모듈 내에 저장된 P개의 제2 업데이트 값을 판독하며; 즉, 제2 업데이트 값 중 어떠한 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 처리 유닛(404)은 P개의 제2 업데이트 값을 사용하여 대응하는 P개의 제1 코드 엘리먼트를 업데이트하고, 따라서 저장 모듈로부터 P개의 제2 업데이트 값을 판독하고, 제2 코드 엘리먼트를 획득하기 위해, P개의 제1 코드 엘리먼트로 대체한다.
전술한 예에 따르면, 저장 모듈은 제1 코드 엘리먼트 -9, +7, 및 +4를 저장하고, 저장 모듈은 제2 업데이트 값 -5, +3, 및 -3을 더 저장한다. 처리 유닛(404)은 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(404)은 제1 코드 엘리먼트 -9, +7, 및 +4를 판독하고, 제2 업데이트 값 중 어느 하나를 사용하여 제1 코드 엘리먼트를 업데이트하는 것을 포기한다. 처리 유닛(404)이 제2 업데이트 값 중 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 처리 유닛(404)은 P개의 제2 업데이트 값을 판독한다. 예를 들어, 처리 유닛(404)은 방법 1을 사용하여 제2 코드 워드를 생성한다. 처리 유닛(404)은 제2 업데이트 값 -5, +3, 및 -3 중 어떠한 값도 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하고, 처리 유닛(404)은, 제1 코드 워드를 업데이트하고 제2 코드 워드 -5, +3, -12, -3, +7, +10, -11을 생성하기 위해, 제2 업데이트 값 -5, +3, 및 -3을 판독한다.
처리 유닛(404)은 결정 유닛(406)에게 제2 코드 워드를 전송하며, 여기서 결정 유닛(406)은 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된다.
처리 유닛(404)이 상기한 방법 1을 사용하여 제2 코드 워드를 생성하는 경우, 결정 유닛(406)은 제2 코드 워드 -5, +3, -12, -3, +7, +10, -11이 성공적으로 디코딩된 것으로 결정하면, 디코딩 장치(400)는 검토 행렬의 다른 행에 대응하는 업데이트를 계속 수행하고 검토 행렬의 행에 대응하는 제2 코드 워드를 생성한다. 여기서, 제2 행이 예로서 사용된다. 검토 행렬의 제2 행에 대응하는 업데이트가 완료된 후, 획득되는 제2 코드 워드는 -5, +3, -8, -10, +3, +10, -11이다. 결정 유닛(406)이 제2 코드 워드 -5, +3, -8, -10, +3, +10, -11이 성공적으로 디코딩된 것으로 결정하는 경우, 디코딩 장치(400)는 검토 행렬의 다른 행에 대응하는 업데이트를 계속 수행하고 검토 행렬의 행에 대응하는 제2 코드 워드를 생성한다. 여기서, 제3 행이 예로서 사용된다. 검토 행렬의 제3 행에 대응하는 업데이트가 완료된 후, 코드 엘리먼트 -10에 대응하는 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하기 때문에, 검토 행렬의 제3 행에 대응하는 업데이트는 불가능하고, 제2 코드 워드 -5, +3, -8, -10, -11이 획득된다. 결정 유닛(406)이 제2 코드 워드 -5, +3, -8, -10, +3, +10, -11이 성공적으로 디코딩된 것으로 결정하는 경우, 디코딩 장치(400)는, 디코딩 결과로서, -5, +3, -8, -10, +3, +10, -11을 매핑한 결과 1, 0, 1, 1, 0, 0, 1을 사용한다. 일반적으로, 처리 유닛(404)이 상기한 방법 1을 사용하여 제2 코드 워드를 생성하는 경우, 디코딩 장치(400)는 제2 코드 워드가 검토 행렬의 연속되는 행의 개수에 대응하는 결정을 통과할 수 있는 것으로 결정할 필요가 있으며, 그 후 검토 행렬의 마지막 행에 대응하는 제2 코드 워드를 매핑한 결과가 디코딩 결과이다. 예를 들어, 디코딩 장치(400)는 검토 행렬의 제1 행, 제2 행부터 제3 행까지의 시퀀스에 따라서 처리를 수행하고 검토 행렬의 세 개의 연속되는 행의 결정을 통과할 필요가 있다. 검토 행렬의 제2 행에 의해 출력되는 제2 코드 워드의 결정이 실패하고, 제3 행에 의해 출력되는 제2 코드 워드가 성공적으로 디코딩되며, 업데이트의 다음 라운드(round)에서 제1 행과 제2 행 둘 다에 의해 출력되는 제2 코드 워드가 디코딩에 성공하는 경우, 업데이트의 다음 라운드에서의 검토 행렬의 제2 행에 대응하는 제2 코드 워드를 매핑한 결과가 디코딩 결과이다. 업데이트의 각 라운드는 검토 행렬의 각 행에 대응하는 처리를 포함하고, 업데이트의 라운드에서 검토 행렬의 행에 대응하는 처리 전에 업데이트의 이전 라운드에서 검토 행렬의 행을 처리하는 과정에서 그 행에 대응하는 코드 엘리먼트의 엑시테이션(excitation)은 제거될 필요가 있다.
처리 유닛(404)이 상기한 방법 2를 사용하여 제2 코드 워드를 생성하는 경우, 결정 유닛(406)이 제2 코드 워드 -5, +3, -8, -10, +3, +10, -11이 성공적으로 디코딩되는 것으로 결정하는 경우, 제2 코드 워드를 매핑한 결과 1, 0, 1, 1, 0, 0, 1이 디코딩 결과이다. 제2 코드 워드가 디코딩에 실패하는 경우, 업데이트의 다음 라운드가 수행된다.
본 실시예는 디코딩 장치를 제공한다. 디코딩 장치는 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, LDPC 코드 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선한다.
장치 실시예 3
장치 실시예 3은 디코딩 장치(600)를 제공한다. 도 5는 디코딩 장치(600)의 합성 구조의 개략적인 구성도를 예시한다. 본 실시예에서, 장치 실시예 1 내의 처리 유닛(204)의 내부 합성 구조가 처리 유닛(604)으로서 상세히 설명된다. 본 실시예에서의 처리 유닛(604)의 전체적인 기능은 장치 실시예 1에서의 처리 유닛(204)의 것과 동일하다.
이하 디코딩 장치(600)에 의해 획득되는 코드 워드가 -9, -7, -12, -4, +7, +10, -11이고, 코드 엘리먼트 양자화 범위가 -15 내지 +15이며, 다음과 같은 검토 행렬이 디코딩 장치(600)에 의해 사용되는 예를 사용하여 장치 실시예 3에서 제안되는 디코딩 장치(600)의 동작 원리에 대해 상세하게 설명한다.
Figure 112017006729534-pct00003
코드 워드 -9, +7, -12, +4, +7, +10, -11을 획득한 후, 획득 유닛(602)은 결정 유닛(606)에게 코드 워드를 먼저 전송하고, 결정 유닛(606)은 코드 워드 내의 음의 값을 1로 매핑하고, 양의 값을 0으로 매핑하여 매핑된 코드 워드 1, 0, 1, 0, 0, 0, 1을 획득하며, 체크 방정식에 따라서 매핑된 코드 워드 내의 각 코드 엘리먼트에 대해, 합계 모듈러(sum modulo) 2 또는 부가 모듈러(addition mudulo) 2 동작으로도 불리는, 익스클루시브(exclusive) OR 동작을 수행한다. 검토 행렬의 제1 행에 대한 동작에 따라서, (1+0+0) mod (2) = 1이고, 코드 워드는 디코딩에 실패할 것이다. 디코딩 장치(600)에 의해 획득되는 코드 워드가, 처리 유닛(604)에 의해 처리되기 전에, 결정 유닛(606)의 결정을 통과하는 경우 코드 워드는 다음의 처리를 할 필요가 없고, 디코딩 장치(600)는 코드 워드의 매핑 결과를 디코딩 결과로서 직접 사용한다. 코드 워드 1, 0, 1, 0, 0, 0, 1은, 결정 유닛(606)이 코드 워드가 성공적으로 디코딩된 것으로 결정하기 전에, 검토 행렬의 세 개의 모든 행에 대응하는 체크를 통과할 필요가 있다.
가변 노드 처리 유닛(variable node processing unit)(6042)은 코드 워드 -9, +7, -12, +4, +7, +10, -11를 수신하고 저장 모듈(6043)에 -9, +7, -12, +4, +7, +10, -11을 저장한다. 제1, 제2, 및 제4 가변 노드가 검토 행렬의 제1 행과 관련있다는 것, 즉 세 개의 코드 엘리먼트 -9, +7, 및 +4가 검토 행렬의 제1 행과 관련있다는 것을 검토 행렬의 제1 행으로부터 알 수 있다. 가변 노드 처리 유닛(6042)은 체크 노드 처리 유닛(6044)에게 -9, +7, 및 +4를 전송한다. 실제로, 처리는 검토 행렬의 임의 행으로부터 시작할 수 있다. 검토 행렬의 대응하는 행의 업데이트 또는 체크 맨트릭스의 모든 행에 대응하는 업데이트가 이미 수행된 경우, 가변 노드 처리 유닛(6042)은 이번 라운드의 업데이트를 수행하기 전에 코드 워드에 대한 이전 라운드의 업데이트 값의 영향을 추가로 제거할 필요가 있다.
-9, +7, 및 +4를 수신한 후, 체크 노드 처리 유닛(6044)은, 검토 행렬의 제1 행에 따라서, 제1 가변 노드에게 리턴하기 위한 업데이트 값 +4, 제2 가변 노드에게 리턴하기 위한 업데이트 값 -4, 및 제4 가변 노드에게 리턴하기 위한 업데이트 값 -7을 생성하고, 가변 노드 처리 유닛(6042)에게 세 개의 업데이트 값을 전송한다.
가변 노드 처리 유닛(6042)은 그 후에 이하의 두 가지 해결수단 중 하나를 수행할 수 있다.
해결수단 1 : 업데이트 값을 수신한 후, 가변 노드 처리 유닛(6042)은 제1, 제2, 및 제4 가변 노드의 코드 엘리먼트를 그들의 대응하는 업데이트 값에 더하고, 따라서, 제1 가변 노드에 대응하는 코드 엘리먼트는 -5로 업데이트되고, 제2 가변 노드에 대응하는 코드 엘리먼트는 +3으로 업데이트되며, 제4 가변 노드에 대응하는 코드 엘리먼트는 -3으로 업데이트되고; 제1, 제2, 및 제4 가변 노드의 업데이트된 코드 엘리먼트를 저장 모듈(6043)에 저장하며; 업데이트 과정에서 임의의 가변 노드에 대응하는 코드 엘리먼트의 업데이트 값이 코드 엘리먼트 양자화 범위, 즉 -15 내지 +15를 초과하는 경우, 가변 노드에 대응하는 코드 엘리먼트의 업데이트를 포기하고, 업데이트 전에 저장 모듈(6043)로부터 코드 엘리먼트를 판독하며, 다음의 가변 노드에 대응하는 코드 엘리먼트를 계속 업데이트하고, 제1 가변 노드, 제2 가변 노드, 및 제4 가변 노드에 대응하는 모든 코드 엘리먼트의 처리가 완료될 때까지, 다음의 가변 노드에 대응하는 코드 엘리먼트의 업데이트를 위한 전술한 결정 액션을 반복한다.
해결수단 2 : 업데이트 값을 수신한 후, 가변 노드 처리 유닛(6042)은 모든 업데이트 값을 저장하고; 제1, 제2, 및 제4 가변 노드의 코드 엘리먼트를 그들의 대응하는 업데이트 값에 더하며; 업데이트 과정에서 임의의 가변 노드에 대응하는 코드 엘리먼트의 업데이트 값이 코드 엘리먼트 양자화 범위, 즉 -15 내지 +15를 초과하는 경우, 가변 노드에 대응하는 코드 엘리먼트의 업데이트를 포기하고, 업데이트 전에 저장 모듈(6043)로부터 코드 엘리먼트를 판독하며, 다음의 가변 노드에 대응하는 코드 엘리먼트를 계속 업데이트하고; 검토 행렬의 제1 행의 업데이트가 완료된 후, 검토 행렬의 제2 행을 계속 업데이트한다. 즉, 도 6에 도시된 태너 다이아그램에서 체크 노드(2)에 대응하는 업데이트 처리를 수행한다. 도 6에서, 가변 노드 1 내지 가변 노드 7은 가변 노드 처리 유닛(6042)에 의해 수신되는 7개의 코드 엘리먼트에 각각 대응하고, 체크 노드 1 내지 체크 노드 3은 검토 행렬의 제1 행 내지 제3 행에 각각 대응한다. 도 6에서, 가변 노드 1 내지 가변 노드 7에 의해 수행되는 처리 액션은 또한 도 5에서 가변 노드 처리 유닛(6042)에 의해 수행되고, 체크 노드 1 내지 체크 노드 3에 의해 수행되는 처리 액션은 또한 도 5에서 체크 노드 처리 유닛(6044)에 의해 수행된다.
체크 노드 1이 가변 노드 1, 가변 노드 2, 및 가변 노드 4에게 업데이트 값을 리턴한 후, 가변 노드 1, 가변 노드 2, 및 가변 노드 4에 대응하는 업데이트된 코드 엘리먼트 중 어떤 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 계속해서 가변 노드 3, 가변 노드 4, 및 가변 노드 5가 체크 노드 2에게 대응하는 코드 엘리먼트를 전송하고, 체크 노드 2는 대응하는 업데이트 값을 생성하며, 그 후 대응하는 가변 노드에게 업데이트 값을 리턴하고, 코드 엘리먼트 양자화 범위가 여전히 초과되지 않는 경우, 체크 노드 3에 대응하는 업데이트가 계속된다. 이 경우, 가변 노드 4에 대응하는 코드 엘리먼트가 체크 노드 1에 대응하는 처리에 참여하고 또한 체크 노드 2에 대응하는 처리 및 체크 노드 3에 대응하는 처리에 참여하기 때문에, 도 6에서, 가변 노드 4에 대응하는 코드 엘리먼트 +4와 체크 노드 1에 의해 리턴되는 업데이트 값 -7의 합이 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, 가변 노드에 대응하는 코드 엘리먼트와 다른 체크 노드에 의해 리턴되는 업데이트 값의 합이 코드 엘리먼트 양자화 범위를 초과할 수 있다. 도 6에 예시된 예에서, 체크 노드 1, 체크 노드 2, 및 체크 노드 3에 의해 가변 노드 4에게 리턴되는 업데이트는 각각 -7, -7, 및 -10이다. 세 개의 업데이트 값이 코드 워드 +4에 더해진 후, 획득되는 -20은 코드 엘리먼트 양자화 범위를 초과한다. 모든 업데이트 값이 이미 저장되어 있기 때문에, 세 개의 업데이트 값은 코드 엘리먼트 양자화 범위의 초과에 가장 큰 영향을 미치는 업데이트 값을 획득하기 위해 정렬된다. 본 예에서, 코드 워드가 코드 엘리먼트 양자화 범위의 최소값을 초과하기 때문에, 가장 큰 영향을 갖는 업데이트 값은 가장 작은 값을 갖는 업데이트 값, 즉, -10이며, 가변 노드 4는 체크 노드 3에 의해 리턴되는 업데이트 값 -10을 버린다. 즉, 이번의 업데이트 라운드 후에, 가변 노드 4에 대응하는 코드 워드는 +4 + (-7) + (-7)이며 -10과 같다. 해결수단 2에서, 임의의 가변 노드의 코드 엘리먼트와 복수의 체크 노드에 의해 리턴되는 업데이트 값의 합이 코드 엘리먼트 양자화 범위를 초과한 후, 가변 노드에 의해 수신되는 업데이트 값이 정렬되고; 가변 노드의 코드 엘리먼트와 업데이트 값의 합이 코드 엘리먼트 양자화 범위의 최대값을 초과하는 경우, 가변 노드는 먼저 업데이트 값의 가장 큰 값을 버리며; 가변 노드의 코드 엘리먼트와 업데이트 값의 합이 코드 엘리먼트 양자화 범위의 최소값을 초과하는 경우, 가변 노드는 먼저 업데이트 값 중 가장 작은 값을 버림으로써, 이것은 버려진 업데이트 값이 디코딩 과정에서 가장 적은 영향을 미치는 것을 보장한다.
가변 노드 처리 유닛(6042)이 검토 행렬의 한 개의 행에 대응하는 코드 엘리먼트에 대한 업데이트, 즉 하나의 체크 노드에 의해 전송되는 업데이트 값에 대한 처리를 완료할 때마다, 가변 노드 처리 유닛(6042)은 결정 유닛(606)에게 업데이트된 코드 워드를 전송하고, 결정 유닛(606)은 업데이트된 코드 워드를 매핑하며, 이러한 코드 워드의 행이 결정을 통과하는지를 결정한다. 이전의 예에서, 검토 행렬의 제1 행에 대응하는 가변 노드에 대응하는 코드 엘리먼트의 업데이트가 완료된 후, 업데이트된 코드 워드는 -5, +3, -12, -3, +7, +10, -11이고, 결정 유닛(606)은 업데이트된 코드 워드에 대한 결정을 수행한다. 상세한 것은, 처리 유닛(204)이 장치 실시예 1에서 방법 1을 사용하여 제2 코드 워드를 생성하는 방법을 참조한다. 검토 행렬의 한 개의 행에 대응하는 코드 엘리먼트를 업데이트하고 업데이트된 코드 워드를 획득한 후, 가변 노드 처리 유닛(6042)은 추가로 장치 실시예 1의 처리 유닛(204)에 의해 사용되는 방법 2를 사용하여 제2 코드 워드를 계속 생성할 수 있고, 결정 유닛(606)에게 제2 코드 워드를 전송한다. 코드 워드에 대한 매핑 및 결정을 수행하기 전에, 결정 유닛(606)은 코드 워드에 대한 최소 오프셋 알고리즘(minimum offset algorithm) 처리를 더 수행하거나, 또는 코드 워드에 대한 정규화된 최소 합 알고리즘(normalized min-sum algorithm) 처리를 더 수행할 수 있다.
본 실시예는 디코딩 장치를 제공한다. 디코딩 장치는 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선한다.
장치 실시예 4
장치 실시예 4는 디코딩 장치(800)를 제공한다. 도 7은 디코딩 장치(800)의 합성 구조의 개략적인 구성도를 예시한다. 본 실시예에서, 장치 실시예 2 내의 처리 유닛(404)의 내부 합성 구조가 처리 유닛(804)으로서 상세히 설명된다. 본 실시예에서의 처리 유닛(804)의 전체적인 기능은 장치 실시예 2에서의 처리 유닛(404)의 것과 동일하다.
이하 디코딩 장치(800)에 의해 획득되는 코드 워드가 -9, -7, -12, -4, +7, +10, -11이고, 코드 엘리먼트 양자화 범위가 -15 내지 +15이며, 다음과 같은 검토 행렬이 디코딩 장치(800)에 의해 사용되는 예를 사용하여 장치 실시예 4에서 제안되는 디코딩 장치(800)의 동작 원리에 대해 상세하게 설명한다.
Figure 112017006729534-pct00004
코드 워드 -9, +7, -12, +4, +7, +10, -11을 획득한 후, 획득 유닛(802)은 결정 유닛(806)에게 코드 워드를 먼저 전송하고, 결정 유닛(806)은 코드 워드 내의 음의 값을 1로 매핑하고, 양의 값을 0으로 매핑하여 매핑된 코드 워드 1, 0, 1, 0, 0, 0, 1을 획득하며, 체크 방정식에 따라서 매핑된 코드 워드 내의 각 코드 엘리먼트에 대해, 합계 모듈러(sum modulo) 2 또는 부가 모듈러(addition mudulo) 2 동작으로도 불리는, 익스클루시브(exclusive) OR 동작을 수행한다. 검토 행렬의 제1 행에 대한 동작에 따라서, (1+0+0) mod (2) = 1이고, 코드 워드는 디코딩에 실패할 것이다. 코드 워드가 처리 유닛(804)에 의해 처리되기 전에, 디코딩 장치(800)에 의해 획득되는 코드 워드가 결정 유닛(806)의 결정을 통과하는 경우, 코드 워드는 다음의 처리를 할 필요가 없고, 디코딩 장치(800)는 코드 워드의 매핑 결과를 디코딩 결과로서 직접 사용한다. 코드 워드 1, 0, 1, 0, 0, 0, 1은, 결정 유닛(806)이 코드 워드가 성공적으로 디코딩된 것으로 결정하기 전에, 검토 행렬의 세 개의 모든 행에 대응하는 체크를 통과할 필요가 있다.
가변 노드 처리 유닛(8042)은 코드 워드 -9, +7, -12, +4, +7, +10, -11를 수신하고 저장 모듈(8043)에 -9, +7, -12, +4, +7, +10, -11을 저장한다. 제1, 제2, 및 제4 가변 노드가 검토 행렬의 제1 행과 관련있다는 것, 즉 세 개의 코드 엘리먼트 -9, +7, 및 +4가 검토 행렬의 제1 행과 관련있다는 것을 검토 행렬의 제1 행으로부터 알 수 있다. 가변 노드 처리 유닛(8042)은 체크 노드 처리 유닛(8044)에게 -9, +7, 및 +4를 전송한다. 실제로, 처리는 검토 행렬의 임의 행으로부터 시작할 수 있다. 검토 행렬의 대응하는 행의 업데이트 또는 체크 맨트릭스의 모든 행에 대응하는 업데이트가 이미 수행된 경우, 가변 노드 처리 유닛(8042)은 이번 라운드의 업데이트를 수행하기 전에 코드 워드에 대한 이전 라운드의 업데이트 값의 영향을 추가로 제거할 필요가 있다.
-9, +7, 및 +4를 수신한 후, 체크 노드 처리 유닛(8044)은, 검토 행렬의 제1 행에 따라서, 제1 가변 노드에게 리턴하기 위한 업데이트 값 +4, 제2 가변 노드에게 리턴하기 위한 업데이트 값 -4, 및 제4 가변 노드에게 리턴하기 위한 업데이트 값 -7을 생성하고, 가변 노드 처리 유닛(8042)에게 세 개의 업데이트 값을 전송한다.
가변 노드 처리 유닛(8042)은 그 후에 이하의 해결수단: 업데이트 값을 수신한 후, 제1, 제2, 및 제4 가변 노드의 코드 엘리먼트를 그들의 대응하는 업데이트 값에 더하며, 여기서 제1 가변 노드에 대응하는 코드 엘리먼트는 -5로 업데이트되고, 제2 가변 노드에 대응하는 코드 엘리먼트는 +3으로 업데이트되며, 제4 가변 노드에 대응하는 코드 엘리먼트는 -3으로 업데이트되고; 제1, 제2, 및 제4 가변 노드의 업데이트된 코드 엘리먼트를 저장 모듈(8043)에 저장하며; 업데이트 과정에서 임의의 가변 노드에 대응하는 코드 엘리먼트의 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 제1, 제2, 및 제4 가변 노드에 대응하는 코드 엘리먼트의 업데이트의 이번 라운드를 포기하고, 업데이트 전에 저장 모듈(8043)로부터 제1, 제2, 및 제4 가변 노드에 대응하는 코드 엘리먼트를 판독하는 해결수단을 수행한다.
가변 노드 처리 유닛(8042)이 검토 행렬의 한 개의 행에 대응하는 코드 엘리먼트에 대한 업데이트, 즉 한 개의 체크 노드에 의해 전송되는 업데이트 값에 대한 처리를 완료할 때마다, 가변 노드 처리 유닛(8042)은 결정 유닛(806)에게 업데이트된 코드 워드를 전송하고, 결정 유닛(806)은 업데이트된 코드 워드를 매핑하며, 이러한 코드 워드의 행이 결정을 통과하는지를 결정한다. 이전의 예에서, 검토 행렬의 제1 행에 대응하는 가변 노드에 대응하는 코드 엘리먼트의 업데이트가 완료된 후, 업데이트된 코드 워드는 -5, +3, -12, -3, +7, +10, -11이고, 결정 유닛(806)은 업데이트된 코드 워드에 대한 결정을 수행한다. 상세한 것은, 처리 유닛(404)이 장치 실시예 2에서 방법 1을 사용하여 제2 코드 워드를 생성하는 방법을 참조한다. 검토 행렬의 한 개의 행에 대응하는 코드 엘리먼트를 업데이트하고 업데이트된 코드 워드를 획득한 후, 가변 노드 처리 유닛(8042)은 추가로 장치 실시예 2의 처리 유닛(404)에 의해 사용되는 방법 2를 사용하여 제2 코드 워드를 계속 생성할 수 있고, 결정 유닛(806)에게 제2 코드 워드를 전송한다. 코드 워드에 대한 매핑 및 결정을 수행하기 전에, 결정 유닛(806)은 코드 워드에 대한 최소 오프셋 알고리즘 처리를 더 수행하거나, 또는 코드 워드에 대한 정규화된 최소 합 알고리즘 처리를 더 수행할 수 있다.
본 실시예는 디코딩 장치를 제공한다. 디코딩 장치는 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 디코딩 장치가 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드를 직접 양자화하는 것을 방지하며, 디코딩 과정에서 디코딩 장치의 오류 정정 능력을 개선한다.
방법 실시예 1
본 방법 실시예는 디코딩 방법을 제공하며, 여기서 디코딩 방법은 LDPC 코드를 디코딩하는 데 사용된다. 본 방법은 장치 실시예 1에 따라서 디코딩 장치(200)에 의해 수행될 수 있거나 또는 장치 실시예 3에 따라서 디코딩 장치(600)에 의해 수행될 수 있다. 도 8은 디코딩 방법의 개략적인 흐름도이다. 본 방법은 다음의 단계를 포함한다.
단계 1002 : 제1 코드 워드를 획득하며, 여기서 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고 M개의 제1 코드 엘리먼트를 포함하며 M은 양의 정수이다. 단계 1002의 실행에 대한 상세한 것은, 장치 실시예 1에서의 획득 유닛(202) 또는 장치 실시예 3에서의 획득 유닛(602)을 참조한다.
단계 1004 : 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 연속하여 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다. 단계 1004의 실행에 대한 상세한 것은 장치 실시예 1에서의 처리 유닛(204), 또는 장치 실시예 3에서의 처리 유닛(604)의 모든 서브유닛을 참조한다.
단계 1006 : 단계 1004에서 생성되는 제2 코드 워드가 성공적으로 디코딩되는지를 결정한다. 단계 1006의 실행에 대한 상세한 것은 장치 실시예 1에서의 결정 유닛(206) 또는 장치 실시예 3에서의 결정 유닛(606)을 참조한다.
본 실시예에서 제공되는 디코딩 방법에 따르면, 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우에 처리가 수행되며, 이것은 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, LDPC 코드 오류 정정 능력을 개선한다.
방법 실시예 2
본 방법 실시예는 디코딩 방법을 제공하며, 여기서 디코딩 방법은 LDPC 코드를 디코딩하는 데 사용된다. 본 방법은 장치 실시예 2에 따라서 디코딩 장치(400)에 의해 수힝될 수 있거나 또는 장치 실시예 4에 따라서 디코딩 장치(800)에 의해 수행될 수 있다. 도 9는 디코딩 방법의 개략적인 흐름도이다. 본 방법은 다음의 단계를 포함한다.
단계 1202 : 제1 코드 워드를 획득하며, 여기서 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고 M개의 제1 코드 엘리먼트를 포함하며 M은 양의 정수이다. 단계 1202의 실행에 대한 상세한 것은, 장치 실시예 2에서의 획득 유닛(402) 또는 장치 실시예 4에서의 획득 유닛(802)를 참조한다.
단계 1204 : 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 연속하여 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다. 단계 1204의 실행에 대한 상세한 것은 장치 실시예 2에서의 처리 유닛(404), 또는 장치 실시예 4에서의 처리 유닛(804)의 모든 서브유닛을 참조한다.
단계 1206 : 단계 1204에서 생성되는 제2 코드 워드가 성공적으로 디코딩되는지를 결정한다. 단계 1206의 실행에 대한 상세한 것은 장치 실시예 2에서의 결정 유닛(406) 또는 장치 실시예 4에서의 결정 유닛(806)을 참조한다.
본 실시예에서 제공되는 디코딩 방법에 따르면, 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우에 처리가 수행되며, 이것은 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, LDPC 코드 오류 정정 능력을 개선한다.
방법 실시예 3
본 방법은 디코딩 방법을 제공한다. LDPC 코드가 디코딩되고 있기 때문에, 본 방법은 장치 실시예 1, 또는 장치 실시예 2, 또는 장치 실시예 3, 또는 장치 실시예 4에 따른 디코딩 장치 중 어느 하나에 의해 수행될 수 있다. 본 실시예는 주로 최후의 디코딩 결과가, 처리 유닛(204), 처리 유닛(404), 처리 유닛(604), 및 처리 유닛(804)이 방법 1을 사용하여 제2 코드 워드를 획득하고 제2 코드 워드에 대한 결정을 수행하는 과정에서 획득되는 방법을 설명한다. 도 10은 디코딩 방법의 개략적인 흐름도이다. 본 방법은 다음의 단계를 포함한다.
단계 1402 : LDPC 코드 인코딩 장치에 의해 처리되는 코드 워드를 획득한다. 본 방법 실시예에서, 예를 들어, 획득된 코드 워드가 -9, +7, -12, +4, +7, +10, -11이고, 이하의 검토 행렬이 사용된다. 실제, 업데이트의 한 개의 라운드 또는 복수의 라운드가 단계 1402의 실행전에 코드 워드에 대해 이미 수행된 경우, 단계 1402에서, 코드 워드에 대한 이전 라운드의 업데이트에 의한 영향은 제거될 필요가 있다. 즉, 이전 라운드의 업데이트 값이 빠진다.
Figure 112017006729534-pct00005
단계 1404 : 코드 워드 -9, +7, -12, +4, +7, +10, -11이 성공적으로 디코딩되는지를 결정한다. 코드 엘리먼트에서의 음의 값은 1로 매핑되고 양의 값은 0으로 매핑되어 매핑된 코드 워드 1, 0, 1, 0, 0, 0, 1이 획득되고, 합계 모듈러(sum modulo) 2 또는 부가 모듈러(addition mudulo) 2 동작으로도 불리는, 익스클루시브(exclusive) OR 동작이 체크 방정식에 따라서 매핑된 코드 워드 내의 각 코드 엘리먼트에 대해 수행된다. 검토 행렬의 K번째 행에 대한 동작에 따라서, (1+0+0) mod (2) = 1이고, 코드 워드는 디코딩에 실패할 것이다. 디코딩이 단계1404에서 성공하는 경우 디코딩 결과가 출력이다.
단계 1406 : 검토 행렬의 K번째 행에 대응하는 코드 엘리먼트에 따라서, K번째 행에 대응하는 코드 엘리먼트에 대응하는 업데이트 값을 생성한다. 즉, 제1 코드 엘리먼트 -9, 제2 코드 엘리먼트 +7, 및 제4 코드 엘리먼트 +4, 세 개의 코드 엘리먼트에 대응하는 업데이트 값, 즉, 제1 코드 엘리먼트의 업데이트 값 +4, 제2 코드 엘리먼트의 업데이트 값 -4, 및 제4 코드 엘리먼트의 업데이트 값 -7이 생성된다. 여기서, K는 1부터 시작할 수 있다.
단계 1406 후에, 단계 1408 또는 단계 1410 중 하나가 수행될 수 있다.
단계 1408 : 검토 행렬의 K번째 행에 대응하는 코드 엘리먼트의 업데이트 값에 따라서, 검토 행렬의 K번째 행에 대응하는 코드 엘리먼트를 업데이트하고; 임의의 코드 엘리먼트의 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 코드 엘리먼트의 업데이트를 포기한다. 본 방법 실시예에서, 코드 엘리먼트 양자화 범위는 -15 내지 +15이고, 코드 워드 -9, +7, -12, +4, +7, +10, -11이 코드 워드 -5, +3, -12, -3, +7, +10, -11로 업데이트된다.
단계 1410 : 검토 행렬의 K번째 행에 대응하는 코드 엘리먼트의 업데이트 값에 따라서, 검토 행렬의 K번째 행에 대응하는 코드 엘리먼트를 업데이트하고; 임의의 코드 엘리먼트의 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 검토 행렬의 K번째 행에 대응하는 모든 코드 엘리먼트의 업데이트를 포기한다. 마찬가지로, 업데이트된 코드 엘리먼트가 코드 엘리먼트 양자화 범위를 초과하지 않기 때문에, 코드 워드 -9, +7, -12, +4, +7, +10, -11이 코드 워드 -5, +3, -12, -3, +7, +10, -11로 업데이트된다.
단계 1412 : 단계 1408 또는 단계 1410에서 업데이트된 코드 워드가 성공적으로 디코딩되었는지를 결정한다. 디코딩이 성공하는 경우, 카운터가 1씩 증가하고(디코딩 장치가 새로운 디코딩되어야 할 코드 워드를 획득할 때마다 카운터의 초기 값이 0이거나, 또는 디코딩 장치가 단계 1412에서 획득되는 코드 워드가 디코딩에 실패하는 것을 발견할 때만다, 카운터의 값이 0으로 리턴된다); 디코딩이 실패하는 경우, 단계 1402 내지 단계 1412가 단계 1402에서 획득되는 코드 워드로서 업데이트된 코드 워드를 사용하여 검토 행렬의 다른 행에 대해 다시 수행된다.
단계 1414 : 카운터가 미리 설정된 임계값(threshold)에 도달하는지를 결정하고; 미리 설정된 임계값이 도달되지 않는 경우, 단계 1402에서 획득되는 코드 워드로서 업데이트된 코드 워드를 사용하여 검토 행렬의 다른 행에 대해 단계 1402 내지 단계 1412를 다시 수행하며; 미리 설정된 임계값이 도달하는 경우, 코드 워드의 디코딩 결과로서, 최후로 획득되는 업데이트된 코드 워드를 매핑한 결과를 사용하여 디코딩 결과를 출력한다.
코드 워드의 최초 업데이트 과정을 제외하고, 추후의 업데이트 과정에서 단계 1404가 요구되지 않는다. 단계 1402가 수행된 후, 단계 1406이 직접 수행된다.
본 실시예에서 제공되는 디코딩 방법에 따르면, LDPC 코드 디코딩 과정의 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우에 처리가 수행되며, 이것은 LDPC 코드 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, LDPC 코드 오류 정정 능력을 개선한다.
시스템 실시예 1
본 시스템 실시예는 디코딩 장치, LDPC 인코딩 장치, 및 통신 채널을 포함하는 신호 전송 시스템을 제공한다. 디코딩 장치는 장치 실시예 1에 따른 디코딩 장치(200) 또는 장치 실시예 3에 따른 디코딩 장치(600)일 수 있다.
LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고 통신 채널을 통해 디코딩 장치에게 제1 코드 워드를 전송하도록 구성된다. 디코딩 장치가 제1 코드 워드를 처리하는 이하의 과정에 대해서는, 장치 실시예 1에 따른 디코딩 장치(200)의 구현 상세 또는 장치 실시예 3에 따른 디코딩 장치(600)의 구현 상세를 참조한다.
본 실시예는 신호 전송 시스템을 제공한다. 신호 전송 시스템 내의 디코딩 장치는 LDPC 코드 디코딩 과정 중 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 LDPC 코드 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, 신호 전송 시스템에서 전송되는 LDPC 코드 내의 오류를 정정하는 능력을 개선하고, 또한 신호 전송 시스템에서 전송되는 신호의 신뢰도를 개선한다.
시스템 실시예 2
본 시스템 실시예는 디코딩 장치, LDPC 인코딩 장치, 및 통신 채널을 포함하는 신호 전송 시스템을 제공한다. 디코딩 장치는 장치 실시예 2에 따른 디코딩 장치(400) 또는 장치 실시예 4에 따른 디코딩 장치(800)일 수 있다.
LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고 통신 채널을 통해 디코딩 장치에게 제1 코드 워드를 전송하도록 구성된다. 디코딩 장치가 제1 코드 워드를 처리하는 이하의 과정에 대해서는, 장치 실시예 2에 따른 디코딩 장치(400)의 구현 상세 또는 장치 실시예 4에 따른 디코딩 장치(800)의 구현 상세를 참조한다.
본 실시예는 신호 전송 시스템을 제공한다. 신호 전송 시스템 내의 디코딩 장치는 LDPC 코드 디코딩 과정 중 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 LDPC 코드 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, 신호 전송 시스템에서 전송되는 LDPC 코드 내의 오류를 정정하는 능력을 개선하고, 또한 신호 전송 시스템에서 전송되는 신호의 신뢰도를 개선한다.
시스템 실시예 3
본 시스템 실시예는 디코딩 장치, LDPC 인코딩 장치, 및 저장 매체를 포함하는 데이터 저장 시스템을 제공한다. 디코딩 장치는 장치 실시예 1에 따른 디코딩 장치(200) 또는 장치 실시예 3에 따른 디코딩 장치(600)일 수 있다.
LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고 저장 매체에 제1 코드 워드를 저장하도록 구성되며, 디코딩 장치는 저장 매체로부터 제1 코드 워드를 획득하도록 구성된다. 디코딩 장치가 제1 코드 워드를 처리하는 이하의 과정에 대해서는, 장치 실시예 1에 따른 디코딩 장치(200)의 구현 상세 또는 장치 실시예 3에 따른 디코딩 장치(600)의 구현 상세를 참조한다.
본 실시예는 데이터 저장 시스템을 제공한다. 데이터 저장 시스템 내의 디코딩 장치는 LDPC 코드 디코딩 과정 중 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 LDPC 코드 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, 데이터 저장 시스템 내의 디코딩 장치의 LDPC 코드 오류 정정 능력을 개선하고, 또한 데이터 저장 시스템에 저장되는 데이터의 신뢰도를 개선한다.
시스템 실시예 4
본 시스템 실시예는 디코딩 장치, LDPC 인코딩 장치, 및 저장 매체를 포함하는 데이터 저장 시스템을 제공한다. 디코딩 장치는 장치 실시예 2에 따른 디코딩 장치(400) 또는 장치 실시예 4에 따른 디코딩 장치(800)일 수 있다.
LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고 저장 매체에 제1 코드 워드를 저장하도록 구성되며, 디코딩 장치는 저장 매체로부터 제1 코드 워드를 획득하도록 구성된다. 디코딩 장치가 제1 코드 워드를 처리하는 이하의 과정에 대해서는, 장치 실시예 2에 따른 디코딩 장치(400)의 구현 상세 또는 장치 실시예 4에 따른 디코딩 장치(800)의 구현 상세를 참조한다.
본 실시예는 데이터 저장 시스템을 제공한다. 데이터 저장 시스템 내의 디코딩 장치는 LDPC 코드 디코딩 과정 중 코드 워드 업데이트 과정에서 발생하는 경우 업데이트된 코드 엘리먼트의 값이 코드 엘리먼트 양자화 범위를 초과하는 경우의 처리를 수행하며, 이것은 LDPC 코드 디코딩 과정에서 코드 엘리먼트 양자화 범위를 초과하는 업데이트된 코드 워드의 직접 양자화를 방지하며, 데이터 저장 시스템 내의 디코딩 장치의 LDPC 코드 오류 정정 능력을 개선하고, 또한 데이터 저장 시스템에 저장되는 데이터의 신뢰도를 개선한다.
도 11은 종래의 디코딩 장치와 본 발명에서 제안되는 디코딩 장치의 에뮬레이션 결과의 비교 도면이다. LDPC FPGA 에뮬레이션 플랫폼에 기초하여, FPGA를 사용하여 랜덤 시퀀스(즉, 상기한 전송되어야 할 신호)를 생성하고, 그 후 LDPC 인코딩 및 변조를 수행하며 코드 워드(즉, 상기한 제1 코드 워드)를 생성하기 위해 랜덤 백색 가우시안 잡음(random white Gaussian noise)을 추가하고, 마지막으로 코드 워드에 대해 LDPC 디코딩을 수행한다. FPGA 에뮬레이션 플랫폼은 RAWBER와 UBER에 대한 통계 수집을 완료한다. UBER의 전체 이름은 정정되지 않은 비트 오류율(Uncorrected Bit Error Rate), 즉 정정될 수 없는 비트 오류율이다. RAWBER의 전체 이름은 로(Raw) 비트 오류율(Bit Error Rate), 즉 인코딩을 수행하고 백색 잡음을 추가하여 생성되는 코드 워드의 비트 오류율이다. 따라서, RAWBER보다 더 적은 값은 이론상 디코딩되어야 할 코드 워드의 보다 낮은 비트 오류율을 지시하고, 따라서, UBER 비율은 또한 그에 맞춰 감소되어야 한다. 도 11에서 알 수 있는 바와 같이, 종래 기술에서, RAWBER이 0.0021보다 적은 경우, UBER은 더 이상 그에 맞춰 감소하지 않으며 LDPC 코드 오류 정정 능력이 병목현상에 도달한다. 그러나, 본 발명에서 제공되는 LDPC 코드 디코딩 장치가 사용되고 RAWBER이 0.0021보다 적은 경우, UBER은 여전히 그에 맞춰 계속 감소하므로, 이것은 종래의 LDPC 코드 디코딩 장치의 성능 병목현상을 깨고 LDPC 코드 오류 정정 능력을 효과적으로 개선시킨다.
장치 실시예 1에서, 처리 유닛(204)이 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성되며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다.
선택적으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것, 즉, P개의 제2 업데이트 값 중 각 제2 업데이트 값을 획득한 후, 처리 유닛(204)이 P개의 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것이거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 디코딩 장치(200)에 포함되는 획득 유닛(202), 처리 유닛(204), 및 결정 유닛(206)은 각각 회로를 사용하여 구현된다.
제2 업데이트 값을 획득한 후, 처리 유닛(204)은 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하고; 처리 유닛(204)이 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(204)은 a번째 제2 업데이트 값을 사용하여 a번째 제1 코드 엘리먼트를 업데이트하지 않고, 즉 a번째 제1 코드 엘리먼트를 업데이트되지 않은 채로 유지하고; 처리 유닛(204)이 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우 처리 유닛(204)은 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트한다.
장치 실시예 1에서의 예에 따르면, P가 본 예에서 3과 같기 때문에, a의 값이 1, 2 또는 3일 수 있고 제2 업데이트 값 -5, +3, 또는 -3에 각각 대응된다. 예를 들어, a가 1로 설정되고; 처리 유닛(204)은 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는 경우, -9가 -5를 사용하여 업데이트되지 않고, 즉 코드 엘리먼트 -9가 변하지 않으며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, -9는 -5를 사용하여 업데이트되며, 즉 코드 엘리먼트 -9가 -5로 업데이트된다. 프로세서(204)는 제2 업데이트 값 -5, +3, 및 -3이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정할 수 있거나, 또는 제2 업데이트 값 -5, +3, 및 -3이 검토 행렬의 제1 행에서의 비트 1에 대응하는 제1 코드 엘리먼트의 시퀀스, 즉, 먼저 -5, 그 후 +3, 및 그 후 -3에 따라서코드 엘리먼트 양자화 범위를 초과하는지를 결정할 수 있다.
장치 실시예 2에서, 처리 유닛(404)은 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성되며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다.
선택적으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것, 즉, P개의 제2 업데이트 값 중 각 제2 업데이트 값을 획득한 후, 처리 유닛(404)이 P개의 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것이거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
선택적으로, 디코딩 장치(400)에 포함되는 획득 유닛(402), 처리 유닛(404), 및 결정 유닛(406)은 각각 회로를 사용하여 구현된다.
제2 업데이트 값을 획득한 후, 처리 유닛(404)은 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하고; 처리 유닛(404)이 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 처리 유닛(204)은 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하지 않고, 즉 P개의 제1 코드 엘리먼트를 업데이트되지 않은 채로 유지하고; 처리 유닛(404)이 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우 처리 유닛(404)은 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트한다.
장치 실시예 1에서의 예에 따르면, P가 본 예에서 3과 같기 때문에, a의 값이 1, 2 또는 3일 수 있으며 제2 업데이트 값 -5, +3, 또는 -3에 각각 대응된다. 예를 들어, a가 1로 설정되고, 처리 유닛(404)은 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 제2 업데이트 값 -5가 코드 엘리먼트 양자화 범위를 초과하는 경우, -9가 -5를 사용하여 업데이트되지 않고, -4가 +3을 사용하여 업데이트되지 않으며, -7이 -3을 사용하여 업데이트되지 않고; 마찬가지로, 다른 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 경우, 제2 업데이트 값 중 어느 하나를 사용하여 제1 코드 엘리먼트를 업데이트하며; 제2 업데이트 값 -5, +3, 및 -3 중 어느 것도 코드 엘리먼트 양자화 범위를 초과하지 않는 경우, -9는 -5를 사용하여 업데이트되고, -4는 +3을 사용하여 업데이트되며, -7은 -3을 사용하여 업데이트된다. 프로세서(404)는 제2 업데이트 값 -5, +3, 및 -3이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정할 수 있거나, 또는 검토 행렬의 제1 행에서의 비트 1에 대응하는 제1 코드 엘리먼트의 시퀀스, 즉, 먼저 -5, 그 후 +3, 및 그 후 -3에 따라서 제2 업데이트 값 -5, +3, 및 -3을 결정할 수 있으며, 제1 코드 엘리먼트 중 어느 하나라도 코드 엘리먼트 양자화 범위를 초과하는 경우, 결정은 남아 있는 제1 코드 엘리먼트에 대해 요구되지 않는다.
장치 실시예 3에서, 가변 노드 처리 유닛(6042)은 회로를 사용하여 구현되고, 체크 노드 처리 유닛(6044)은 회로를 사용하여 구현된다.
장치 실시예 4에서, 가변 노드 처리 유닛(8042)은 회로를 사용하여 구현되고, 체크 노드 처리 유닛(8044)은 회로를 사용하여 구현된다.
방법 실시예 1에서, 단계 1004: 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다. 단계 1004의 실행에 대한 상세한 것은 장치 실시예 1에서의 처리 유닛(204), 또는 장치 실시예 3에서의 처리 유닛(604)의 모든 서브유닛을 참조한다.
선택적으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것, 즉, P개의 제2 업데이트 값 중 각 제2 업데이트 값을 획득한 후, P개의 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것이거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
방법 실시예 2에서, 단계 1204: 검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; P개의 제1 업데이트 값에 따라서, P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 P개의 제2 업데이트 값을 사용하여 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하며, 여기서 검토 행렬은 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값과 대응하는 제1 코드 엘리먼트의 합이다. 단계 1204의 실행에 대한 상세한 것은 장치 실시예 2에서의 처리 유닛(404), 또는 장치 실시예 4에서의 처리 유닛(804)의 모든 서브유닛을 참조한다.
선택적으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것, 즉, P개의 제2 업데이트 값 중 각 제2 업데이트 값을 획득한 후, P개의 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 동시에 결정하는 것이거나, 또는 검토 행렬의 n번째 행에 대응하는 P개의 코드 엘리먼트의 시퀀스에 따라서 왼쪽으로부터 오른쪽으로, P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것일 수 있다.
본 출원의 실시예에서의 설명에 없는 부분들에 대해서는 다른 실시예의 관련 설명을 참조한다. 마지막으로, 전술한 실시예는 본 발명의 기술적 해결수단을 설명하기 위한 것이지 본 발명을 한정하기 위한 것이 아니라는 것이다. 전술한 실시예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자는 여전히, 본 발명의 실시예의 기술적 해결수단의 범위를 벗어남이 없이, 전술한 실시예에 기재된 기술적 해결수단에 수정을 가하거나 그 기술적 특징의 일부를 동등물로 대체할 수 있음을 알아야 한다.

Claims (16)

  1. 저밀도 패리티 체크(Low Density Parity Check, LDPC) 코드를 디코딩하도록 구성되는 디코딩 장치로서,
    제1 코드 워드(code word)를 획득하도록 구성된 획득 유닛 - 상기 제1 코드 워드는 생성 행렬(generator matrix)에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트(code element)를 포함하며, M은 양의 정수임 -;
    검토 행렬(check matrix)의 n번째 행(row)에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위(code element quantization range)를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성된 처리 유닛 - 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및
    상기 제2 코드 워드를 획득하고, 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된 결정 유닛
    을 포함하는, 디코딩 장치.
  2. 제1항에 있어서,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것
    을 포함하는, 디코딩 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 획득 유닛, 상기 처리 유닛, 및 상기 결정 유닛 각각은 회로에 의해 형성되는,
    디코딩 장치.
  4. 제1항 또는 제2항에 있어서,
    상기 처리 유닛은 저장 모듈을 포함하며,
    상기 저장 모듈은 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, 상기 P개의 제2 업데이트 값을 저장하도록 추가로 구성되며,
    상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 상기 저장 모듈 내에 저장된 상기 a번째 제1 코드 엘리먼트를 판독하고,
    상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 상기 b번째 제1 코드 엘리먼트를 업데이트하기 위해, 상기 저장 모듈 내에 저장된 상기 b번째 제2 업데이트 값을 판독하는,
    디코딩 장치.
  5. 저밀도 패리티 체크(Low Density Parity Check, LDPC) 코드를 디코딩하도록 구성되는 디코딩 장치로서,
    제1 코드 워드를 획득하도록 구성된 획득 유닛 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수임 -;
    검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 상기 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 P개의 제2 업데이트 값을 사용하여 상기 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하도록 구성된 처리 유닛 - 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및
    상기 제2 코드 워드를 획득하고, 상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하도록 구성된 결정 유닛
    을 포함하는, 디코딩 장치.
  6. 제5항에 있어서,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것
    을 포함하는, 디코딩 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 획득 유닛, 상기 처리 유닛, 및 상기 결정 유닛 각각은 회로에 의해 형성되는,
    디코딩 장치.
  8. 제5항 또는 제6항에 있어서,
    상기 처리 유닛은 저장 모듈을 포함하며,
    상기 저장 모듈은 상기 P개의 제1 코드 엘리먼트를 저장하도록 구성되고, 상기 P개의 제2 업데이트 값을 저장하도록 추가로 구성되며,
    상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 상기 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정하는 경우, 상기 저장 모듈 내에 저장된 상기 P개의 제1 코드 엘리먼트를 판독하고,
    상기 처리 유닛은, 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정하는 경우, 상기 P개의 제1 코드 엘리먼트를 업데이트하기 위해, 상기 저장 모듈 내에 저장된 상기 P개의 제2 업데이트 값을 판독하는,
    디코딩 장치.
  9. 저밀도 패리티 체크(Low Density Parity Check, LDPC) 코드를 디코딩하는 데 사용되는 디코딩 방법으로서,
    제1 코드 워드를 획득하는 단계 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수임 -;
    검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 a번째 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 b번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 b번째 제2 업데이트 값을 사용하여 b번째 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 검토 행렬의 n번째 행에 대응하는 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 단계 - 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및
    상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하는 단계
    를 포함하는, 디코딩 방법.
  10. 제9항에 있어서,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것
    을 포함하는, 디코딩 방법.
  11. 저밀도 패리티 체크(Low Density Parity Check, LDPC) 코드를 디코딩하는 데 사용되는 디코딩 방법으로서,
    제1 코드 워드를 획득하는 단계 - 상기 제1 코드 워드는 생성 행렬에 따라서 LDPC 코드 인코딩 장치에 의해 생성되고, M개의 제1 코드 엘리먼트를 포함하며, M은 양의 정수임 -;
    검토 행렬의 n번째 행에 대응하는 P개의 제1 코드 엘리먼트를 획득하고; 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제1 업데이트 값을 획득하며; 상기 P개의 제1 업데이트 값에 따라서, 상기 P개의 제1 코드 엘리먼트에 대응하는 P개의 제2 업데이트 값을 획득하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하며; 상기 P개의 제2 업데이트 값 중 a번째 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는 것으로 결정되는 경우 상기 P개의 제1 코드 엘리먼트를 업데이트되지 않도록 유지하고; 상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하지 않는 것으로 결정되는 경우 상기 P개의 제2 업데이트 값을 사용하여 상기 P개의 제1 코드 엘리먼트를 업데이트하며; 전술한 업데이트 동작에 따라서, 상기 검토 행렬의 n번째 행에 대응하는 P개의 제2 코드 엘리먼트를 획득하고; 상기 P개의 제2 코드 엘리먼트에 따라서 제2 코드 워드를 생성하는 단계 - 상기 검토 행렬은 상기 생성 행렬에 대응하고, N개의 행을 포함하며, 1≤n≤N, P≤M, 1≤a≤P, 1≤b≤P이고, 각 제2 업데이트 값은 각 제1 업데이트 값 및 대응하는 제1 코드 엘리먼트의 합임 -; 및
    상기 제2 코드 워드가 성공적으로 디코딩되는지를 결정하는 단계
    를 포함하는, 디코딩 방법.
  12. 제11항에 있어서,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 코드 엘리먼트 양자화 범위를 초과하는지를 결정하는 것은,
    상기 P개의 제2 업데이트 값 중 각 제2 업데이트 값이 상기 코드 엘리먼트 양자화 범위를 초과하는지를 순차적으로 결정하는 것
    을 포함하는, 디코딩 방법.
  13. 신호 전송 시스템으로서,
    LDPC 코드 인코딩 장치 및 청구항 1에 따른 디코딩 장치를 포함하고,
    상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고, 통신 채널을 통해 상기 디코딩 장치에게 상기 제1 코드 워드를 전송하도록 구성되는,
    신호 전송 시스템.
  14. 신호 전송 시스템으로서,
    LDPC 코드 인코딩 장치 및 청구항 5에 따른 디코딩 장치를 포함하고,
    상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하고, 통신 채널을 통해 상기 디코딩 장치에게 상기 제1 코드 워드를 전송하도록 구성되는,
    신호 전송 시스템.
  15. 데이터 저장 시스템으로서,
    LDPC 코드 인코딩 장치, 청구항 1에 따른 디코딩 장치, 및 저장 매체를 포함하며,
    상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하여, 상기 저장 매체 내에 상기 제1 코드 워드를 저장하도록 구성되고,
    상기 디코딩 장치는 상기 저장 매체로부터 상기 제1 코드 워드를 획득하도록 구성되는,
    데이터 저장 시스템.
  16. 데이터 저장 시스템으로서,
    LDPC 코드 인코딩 장치, 청구항 5에 따른 디코딩 장치, 및 저장 매체를 포함하며,
    상기 LDPC 코드 인코딩 장치는 생성 행렬에 따라서 제1 코드 워드를 생성하여, 상기 저장 매체 내에 상기 제1 코드 워드를 저장하도록 구성되고,
    상기 디코딩 장치는 상기 저장 매체로부터 상기 제1 코드 워드를 획득하도록 구성되는,
    데이터 저장 시스템.
KR1020177001722A 2015-10-13 2015-12-14 디코딩 장치 및 방법과 신호 전송 시스템 KR101813132B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2015/091887 2015-10-13
CN2015091887 2015-10-13
PCT/CN2015/097284 WO2017063263A1 (zh) 2015-10-13 2015-12-14 译码设备、方法及信号传输系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177036878A Division KR102027354B1 (ko) 2015-10-13 2015-12-14 디코딩 장치 및 방법과 신호 전송 시스템

Publications (2)

Publication Number Publication Date
KR20170058912A KR20170058912A (ko) 2017-05-29
KR101813132B1 true KR101813132B1 (ko) 2017-12-28

Family

ID=58518218

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177001722A KR101813132B1 (ko) 2015-10-13 2015-12-14 디코딩 장치 및 방법과 신호 전송 시스템
KR1020177036878A KR102027354B1 (ko) 2015-10-13 2015-12-14 디코딩 장치 및 방법과 신호 전송 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177036878A KR102027354B1 (ko) 2015-10-13 2015-12-14 디코딩 장치 및 방법과 신호 전송 시스템

Country Status (12)

Country Link
US (1) US10447300B2 (ko)
EP (1) EP3211798B1 (ko)
JP (1) JP6426272B2 (ko)
KR (2) KR101813132B1 (ko)
CN (2) CN110289863B (ko)
AU (2) AU2015400311B2 (ko)
BR (1) BR112017000548B1 (ko)
CA (1) CA2953609C (ko)
MX (1) MX358246B (ko)
RU (2) RU2639687C1 (ko)
SG (2) SG10201707007QA (ko)
WO (1) WO2017063263A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817728B (zh) * 2020-08-03 2022-03-01 华中科技大学 一种基于硬件实现ldpc编译码的仿真系统及其工作方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1802139A2 (en) * 1995-03-15 2007-06-27 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems
US6240538B1 (en) * 1998-09-10 2001-05-29 Ericsson Inc. Method and apparatus for errors and erasures decoding
DE19907729C2 (de) * 1999-02-23 2001-02-22 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US7673223B2 (en) * 2001-06-15 2010-03-02 Qualcomm Incorporated Node processors for use in parity check decoders
WO2003021440A1 (en) * 2001-09-01 2003-03-13 Bermai, Inc. Decoding architecture for low density parity check codes
JP4351156B2 (ja) * 2002-06-20 2009-10-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Dc制御のためのバランスがとられたディスパリティチャネルコード
US7178080B2 (en) 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
JP3815557B2 (ja) * 2002-08-27 2006-08-30 ソニー株式会社 符号化装置及び符号化方法、並びに復号装置及び復号方法
US7346832B2 (en) 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
US7441178B2 (en) 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
JP4595650B2 (ja) 2005-04-25 2010-12-08 ソニー株式会社 復号装置および復号方法
US7761768B2 (en) * 2005-06-24 2010-07-20 Intel Corporation Techniques for reconfigurable decoder for a wireless system
US7129862B1 (en) * 2005-07-29 2006-10-31 Texas Instruments Incorporated Decoding bit streams encoded according to variable length codes
KR20070084952A (ko) * 2006-02-22 2007-08-27 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7774689B2 (en) * 2006-03-17 2010-08-10 Industrial Technology Research Institute Encoding and decoding methods and systems
CN101064591B (zh) 2006-04-24 2010-05-12 中兴通讯股份有限公司 低密度奇偶校验码的译码方法及其校验节点更新电路
CN100499378C (zh) 2006-05-26 2009-06-10 清华大学 采用可变范围均匀量化的低密度奇偶校验码译码方法
US7613981B2 (en) * 2006-10-06 2009-11-03 Freescale Semiconductor, Inc. System and method for reducing power consumption in a low-density parity-check (LDPC) decoder
CN1996764A (zh) 2007-01-10 2007-07-11 北京航空航天大学 基于奇偶校验矩阵的ldpc码的译码方法及译码器
CN101047387B (zh) * 2007-03-23 2010-06-09 北京大学 一种多码率兼容ldpc码的构造方法及其译码器
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
JP4572937B2 (ja) 2008-01-23 2010-11-04 ソニー株式会社 復号装置および方法、プログラム、並びに記録媒体
US8313029B2 (en) * 2008-01-31 2012-11-20 Seiko Epson Corporation Apparatus and methods for decoding images
KR101398212B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8291283B1 (en) * 2008-06-06 2012-10-16 Marvell International Ltd. Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
JP2010009719A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd 復号器及び記録再生装置
US8442021B2 (en) * 2008-11-07 2013-05-14 Motorola Mobility Llc Radio link performance prediction in wireless communication terminal
CN101741396B (zh) * 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
CN101807928B (zh) * 2009-02-13 2013-06-05 瑞昱半导体股份有限公司 记录控制器及奇偶校验码译码器
KR20100110662A (ko) * 2009-04-03 2010-10-13 아주대학교산학협력단 저밀도 패러티 검사 부호의 복호 복잡도를 감소시키는 방법 및 장치
CN102460976B (zh) * 2009-05-19 2016-02-10 诺基亚技术有限公司 用于可变长度编码的方法和设备
JP5445829B2 (ja) * 2009-05-29 2014-03-19 ソニー株式会社 受信装置、受信方法、およびプログラム、並びに受信システム
CN101854179B (zh) * 2010-05-26 2012-09-05 厦门大学 一种应用于ldpc译码的5比特量化方法
JP5556570B2 (ja) * 2010-10-13 2014-07-23 富士通株式会社 信号処理回路及び受信装置
CN102164023A (zh) 2011-03-31 2011-08-24 复旦大学 自适应动态量化ldpc码译码方法
CN102957436B (zh) * 2011-08-17 2017-11-10 北京泰美世纪科技有限公司 一种低密度奇偶校验码译码装置和译码方法
US8972817B2 (en) * 2011-08-22 2015-03-03 Telex Maglorie Ngatched Nkouatchah Two low complexity decoding algorithms for LDPC codes
US9264073B2 (en) * 2011-09-02 2016-02-16 Samsung Electronics Co., Ltd Freezing-based LDPC decoder and method
CN102545913B (zh) 2012-02-07 2015-05-27 中兴通讯股份有限公司 一种迭代译码方法及系统
US8954820B2 (en) * 2012-02-10 2015-02-10 Stec, Inc. Reduced complexity non-binary LDPC decoding algorithm
CN103873068A (zh) * 2012-12-14 2014-06-18 咏传电子科技(上海)有限公司 低密度奇偶检查的解码方法与电子装置
WO2015099331A1 (en) * 2013-12-24 2015-07-02 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
CN105049060B (zh) * 2015-08-14 2019-07-30 航天恒星科技有限公司 一种低密度奇偶码ldpc的译码方法及装置

Also Published As

Publication number Publication date
MX2017002213A (es) 2017-09-01
JP6426272B2 (ja) 2018-11-21
EP3211798A4 (en) 2018-03-14
RU2017142566A3 (ko) 2019-02-20
MX358246B (es) 2018-08-09
RU2639687C1 (ru) 2017-12-21
BR112017000548A2 (pt) 2017-11-14
AU2015400311B2 (en) 2017-11-02
CN110289863A (zh) 2019-09-27
EP3211798A1 (en) 2017-08-30
RU2688276C2 (ru) 2019-05-21
AU2015400311A1 (en) 2017-04-27
CN110289863B (zh) 2022-04-05
SG11201700048PA (en) 2017-05-30
WO2017063263A1 (zh) 2017-04-20
AU2017268580B2 (en) 2019-06-13
EP3211798B1 (en) 2019-12-04
CN107852175B (zh) 2019-05-28
KR20170058912A (ko) 2017-05-29
US10447300B2 (en) 2019-10-15
AU2017268580A1 (en) 2017-12-21
CA2953609C (en) 2018-01-30
CN107852175A (zh) 2018-03-27
KR20180054518A (ko) 2018-05-24
RU2017142566A (ru) 2019-02-20
KR102027354B1 (ko) 2019-11-04
US20180234113A1 (en) 2018-08-16
JP2017534190A (ja) 2017-11-16
SG10201707007QA (en) 2017-09-28
BR112017000548B1 (pt) 2023-04-11
CA2953609A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
Hashemi et al. Partitioned successive-cancellation list decoding of polar codes
TWI594583B (zh) 硬決定輸入之一般化低密度同位檢查軟解碼
US9490849B1 (en) Systems and methods for configuring product codes for error correction in a hard disk drive
US11025278B2 (en) Polar coding encoding/decoding method and apparatus
CN107370560B (zh) 一种极化码的编码和速率匹配方法、装置及设备
EP3364542A1 (en) Error correction coding method based on cascading of polar codes and repetition codes or multi-bit parity check codes
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
JP2019125910A (ja) メモリシステム
CN113037299A (zh) 基于迭代译码的ldpc码稀疏校验矩阵重建方法和装置
KR101813132B1 (ko) 디코딩 장치 및 방법과 신호 전송 시스템
JP6567238B1 (ja) 誤り訂正復号装置および誤り訂正復号方法
KR102159242B1 (ko) 송신 장치 및 그의 신호 처리 방법
EP3737013B1 (en) Encoding method, decoding method and device
KR20130087931A (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
CN109889210B (zh) 交织编码方法及装置
RU2575394C1 (ru) Способ декодирования циклических кодов с "жестким" решением по вектору-указателю и устройство его реализующее
RU2575399C1 (ru) Способ декодирования ldpc-кодов и устройство его реализующее
JP2021044750A (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant