KR20180015011A - Ldpc 코드의 디코딩을 위한 장치 및 방법 - Google Patents

Ldpc 코드의 디코딩을 위한 장치 및 방법 Download PDF

Info

Publication number
KR20180015011A
KR20180015011A KR1020160098563A KR20160098563A KR20180015011A KR 20180015011 A KR20180015011 A KR 20180015011A KR 1020160098563 A KR1020160098563 A KR 1020160098563A KR 20160098563 A KR20160098563 A KR 20160098563A KR 20180015011 A KR20180015011 A KR 20180015011A
Authority
KR
South Korea
Prior art keywords
value
variable
node
check
variable node
Prior art date
Application number
KR1020160098563A
Other languages
English (en)
Other versions
KR102568716B1 (ko
Inventor
이명우
김태현
백종현
허준
Original Assignee
삼성전자주식회사
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 고려대학교 산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020160098563A priority Critical patent/KR102568716B1/ko
Priority to US15/667,465 priority patent/US10511327B2/en
Publication of KR20180015011A publication Critical patent/KR20180015011A/ko
Application granted granted Critical
Publication of KR102568716B1 publication Critical patent/KR102568716B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/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
    • 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/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1162Array based LDPC codes, e.g. array 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]
    • 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/2948Iterative 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/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65583GPP2

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 개시는 LTE(Long Term Evolution)와 같은 4G(4th generation) 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G(5th generation) 또는 pre-5G 통신 시스템에 관련된 것이다. 다양한 실시 예들에 따른, 장치는 저밀도 패리티 검사(low density parity check, LDPC) 코드에 대한 반복(iteration) 디코딩(decoding) 기법을 수행하는 장치일 수 있다. 상기 장치는 제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된 (encoded) 신호를 수신하는 수신부와 상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 프로세서를 포함할 수 있다.

Description

LDPC 코드의 디코딩을 위한 장치 및 방법{APPARATUS AND METHOD FOR DECODING DATA USING LOW DENSITY PARITY CHECK CODE}
본 개시(disclosure)는 일반적으로 디코딩에 관한 것이다. 보다 구체적으로, 저밀도 패리티 검사(low density parity check, LDPC) 코드의 디코딩(decoding)을 위한 장치 및 방법에 관한 것이다.
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(Post LTE) 시스템이라 불리어지고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역(예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO, FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나(large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크(cloud radio access network, cloud RAN), 초고밀도 네트워크(ultra-dense network), 기기 간 통신(Device to Device communication, D2D), 무선 백홀(wireless backhaul), 이동 네트워크(moving network), 협력 통신(cooperative communication), CoMP(Coordinated Multi-Points), 및 수신 간섭제거(interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation, ACM) 방식인 FQAM(Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.
통신 기술이 발전함에 따라, 보다 높은 효율을 얻을 수 있는 채널 코딩 방법에 대한 요구(needs)가 있다. 이러한 요구를 반영하기 위하여, 저밀도 패리티 검사(low density parity check, LDPC)가 새로운 대안으로 떠오르고 있다. 하지만, LDPC 코드를 이용한 디코딩은 상대적으로 많은 연산량을 필요로 한다. 따라서, LDPC 코드를 이용하는 디코딩에서, 연산량을 감소시키기 위한 방안이 요구되고 있다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는 디코딩 연산량을 감소시키는 구조적 디코딩 기법을 수행하는 장치 및 방법을 제공한다.
본 개시의 다양한 실시 예들에 따르면, 저밀도 패리티 검사(low density parity check, LDPC) 코드에 대한 반복(iteration) 디코딩(decoding) 기법을 수행하는 장치의 동작 방법은, 제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된(encoded) 신호를 수신하는 과정과, 상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 과정을 포함할 수 있다
본 개시의 다양한 실시 예들에 따르면, LDPC 코드에 대한 반복 디코딩 기법을 수행하는 장치는, 제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된 신호를 수신하는 수신부와 상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 프로세서를 포함할 수 있다.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은, LDPC(low density parity check) 코드의 디코딩(decoding)시, 패리티 행렬의 구조를 반영함으로써, 연산량을 감소시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 다양한 실시 예들에 따른 송신 장치와 수신 장치의 블록도를 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 변수 노드(variable node)의 비활성화(deactivation)의 예를 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 체크 노드(check node)의 비활성화의 예를 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 변수 노드의 재활성화(re-activation)의 예를 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 흐름을 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 변수 노드 임계값 결정의 예를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 체크 노드 임계값 및 재활성 임계값 결정의 예를 도시한다.
도 8은 본 개시의 다양한 실시 예들에 따른 임계값 정보를 결정하는 동작의 흐름을 도시한다.
도 9는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 기능적 구성의 예를 도시한다.
도10a는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 그래프를 도시한다.
도10b는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 다른 그래프를 도시한다.
도10c는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 또 다른 그래프를 도시한다.
도10d는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 또 다른 그래프를 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다. 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU(central processing unit) 또는 application processor)를 의미할 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 송신 장치와 수신 장치의 블록도를 도시한다. 이하 사용되는 '...부', '...기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하 도 1에서는 다양한 실시 예들을 설명하기 위하여 필요한 용어들에 대하여 정의한다. 이하 설명에서 사용되는 제어 정보를 지칭하는 용어, 연산 상태를 위한 용어(예: 노드(node), 동작(operation)), 데이터를 지칭하는 용어(예: 부호어(codeword), 정보어(information word), 비트열(bit sequence)), 망 객체(network entity)들을 지칭하는 용어, 메시지들을 지칭하는 용어(예: 패킷, 신호), 장치의 구성 요소를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 발명이 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
도 1을 참조하면, 상기 송신 장치는 송신 장치 110일 수 있다. 상기 송신 장치 110은 채널 인코딩부(channel encoding unit) 120, 변조부(modulation unit) 130, 및 송신부 140을 포함할 수 있다. 상기 수신 장치는 수신 장치 160일 수 있다. 상기 수신 장치 160은 수신부 170, 복조부(demodulation unit) 180 및 채널 디코딩부(channel decoding unit) 190을 포함할 수 있다. 상기 송신 장치 110은 신호를 상기 수신 장치 160에게 송신할 수 있다.
송신 장치 110이 상기 신호를 전송하는 경우, 상기 신호가 전송되는 채널의 잡음으로 인한 영향, 전송 거리에 따라 발생하는 감쇠현상, 전송시 지연에 따른 왜곡 현상 등으로 인하여, 전송 오류가 발생할 수 있다. 오류가 발생한 경우, 상기 수신 장치 160은 오류 제어(error control)를 수행할 것이 요구될 수 있다. 즉, 상기 수신 장치 160은, 오류 검출(error detection) 또는 오류 정정(error correction)을 수행할 것이 요구될 수 있다. 상기 수신 장치 160에서 상기 오류 검출 또는 오류 제어가 수행되도록, 상기 송신 장치 110은 채널 코딩(channel coding)을 수행할 수 있다. 다시 말해, 상기 송신 장치 110은 정보어(information word)를 상기 수신 장치 160에게 송신하기 위하여, 상기 정보어에 대한 채널 코딩을 수행할 수 있다. 상기 정보어는 소스 코딩(source coding)이 수행된 비트열(bit sequence)일 수 있다.
상기 채널 인코딩부 120은, 채널 코딩을 통하여, 상기 정보어에 대한 부호어(codeword)를 생성할 수 있다. 상기 채널 인코딩부 120은, LDPC(low density parity check) 코드를 이용한 채널 코딩을 통하여, 상기 부호어를 생성할 수 있다. 예를 들어, 상기 정보어는 k 비트들을 가지는 비트열일 수 있다. 상기 채널 인코딩부 120은, 상기 k 비트들의 정보어에 적어도 하나의 패리티 비트를 추가하여 n 비트의 부호어를 생성할 수 있다. 상기 적어도 하나의 패리티 비트의 비트 수는 n-k일 수 있다. 구체적으로, 상기 채널 인코딩부 120은 하기의 수학식 1에 기반하여, 상기 부호어를 생성할 수 있다.
Figure pat00001
m은 정보어에 대한 정보 행렬을 나타내고, c는 부호어에 대한 부호 행렬을 나타낸다. G는 상기 정보어로부터 상기 부호어를 생성하기 위한 생성 행렬(generation matrix)를 나타낸다. 상기 정보 행렬은 1 x n의 차원을 가지는 행렬일 수 있다. 상기 부호 행렬은 1 x k의 차원을 가지는 행렬일 수 있다. 상기 생성 행렬은 n x k의 차원을 가지는 행렬일 수 있다.
상기 채널 인코딩부 120은, 상기 생성된 부호어를 상기 변조부 130에게 제공(또는 전달)할 수 있다.
상기 변조부 130은, 상기 생성된 부호어에 대하여 변조를 수행할 수 있다. 상기 변조부 130은 다양한 변조 기법으로 상기 생성된 부호어를 변조할 수 있다. 예를 들어, 상기 변조부 130은 상기 생성된 부호어를 BPSK(binary pashe shift keying) 방식으로 변조를 수행하고, 심볼 맵핑을 수행할 수 있다. 다른 예를 들어, 상기 변조부 130은 상기 생성된 부호어를 16 QAM(quadrature amplitude modulation) 방식으로 변조를 수행하고, 심볼 맵핑을 수행할 수도 있다. 상기 변조부 130은 상기 부호어를 변조하여, 신호를 생성할 수 있다. 상기 변조부 130은 상기 생성된 신호를 상기 송신부 140에게 전달할 수 있다.
상기 송신부 140은 상기 송신부 140과 상기 수신부 160 사이의 채널 100을 통하여 상기 수신 장치 160에게 상기 신호를 송신할 수 있다. 상기 송신부 140은 상기 신호를 기저대역 신호에서 RF 대역 신호로 상향 변환(up-convert)하여 안테나를 통해 송신할 수 있다.
상기 채널 100은 잡음을 포함하는 채널일 수 있다. 예를 들어, 상기 채널 100은 AWGN(additive white Gaussian noise) 채널일 수 있다. 상기 AWGN 채널은 주파수 대역에서 잡음 신호의 전력 스펙트럼 밀도가 가우시안 분포를 가지는 채널이다. 다른 예를 들면, 상기 채널 100은 페이딩(fading) 채널일 수도 있다. 상기 페이딩 채널은 다중 경로에 따라 전송되는 신호의 진폭, 위상이 불규칙하게 변하는 채널이다.
상기 수신부 170은 상기 채널 100을 통하여, 상기 송신 장치 110으로부터 상기 신호를 수신할 수 있다. 상기 수신부 170은 상기 안테나를 통해 수신되는 상기 신호를 RF 대역 신호에서 기저대역 신호로 하향 변환(down-convert)할 수 있다. 상기 수신부 170은 상기 하향 변환된 신호를 상기 복조부 180에게 전달할 수 있다.
상기 복조부 180은 상기 신호를 복조하여, 비트열을 생성할 수 있다. 상기 복조부 180은 상기 변조부 130에서 변조한 방식에 따라, 상기 신호를 복조할 수 있다. 예를 들어, 상기 변조부 130에서 BPSK 방식을 이용한 경우, 상기 복조부 180은 상기 BPSK 방식을 이용하여, 상기 신호를 복조할 수 있다. 상기 복조부 180은 상기 생성된 비트열을 채널 디코딩부 190에게 전달할 수 있다.
상기 채널 디코딩부 190은 상기 비트열을 디코딩할 수 있다. 상기 채널 디코딩부 190은, 상기 채널 인코딩부 120이 사용한 채널 코딩의 방식에 따라, 상기 비트열을 디코딩할 수 있다. 예를 들어, 상기 채널 인코딩부 120이 LDPC 코드를 사용하여 인코딩을 수행한 경우, 상기 채널 디코딩부 190은 LDPC 코드를 사용하여, 상기 비트열을 디코딩할 수 있다. 상기 채널 디코딩부 190은 상기 수신 장치 160에 저장된 패리티 행렬(parity matrix) H를 이용하여 상기 비트열을 디코딩할 수 있다. 상기 비트열은 n개의 비트를 가지는 비트열일 수 있다.
상기 채널 디코딩부 190은, 디코딩된 비트열이, 하기 수학식 2를 만족하는지 여부를 결정할 수 있다. 하기 수학식 2는 디코딩 성공 조건(decoding success condition)으로 지칭될 수 있다.
Figure pat00002
H는 패리티 행렬을 나타내고, c는 디코딩된 비트열에 대한 부호 행렬일 수 있다. 상기 패리티 행렬은 (n-k) x n의 차원을 가지는 행렬일 수 있다. 상기 부호 행렬은 1 x n의 차원을 가지는 행렬일 수 있다.
상기 디코딩된 비트열이 상기 수학식 2를 만족하지 않는 경우, 상기 채널 디코딩부 160은, 상기 비트열 각각에 대한 우도값에 기반하여, 상기 비트열 내의 비트들 각각의 값(value)이 0인지, 1인지 여부를 다시 결정할 수 있다. 예를 들어, 상기 채널 디코딩부 160은, 합-곱 알고리즘(sum-product algorithm, SPA), 신뢰도 전파 알고리즘(belief propagation algorithm, BPA)을 사용하여 상기 비트열 각각의 값을 다시 결정할 수 있다.
상기 비트열이 하기의 수학식 2를 만족하는 경우, 상기 채널 디코딩부 190은, 성공적으로 디코딩하였다고 결정할 수 있다. 성공적으로 디코딩되었다고 판단된 경우, 상기 채널 디코딩부 190은 최종적으로 디코딩된 비트열을 부호어로 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 부호어에 기반하여 정보어를 검출할 수 있다. 상기 정보어는 상기 송신 장치 110이 상기 수신 장치 160에게 전송하고자 하는 정보 비트들을 포함할 수 있다.
채널 디코딩부 190은, 상기 비트열을 성공적으로 디코딩하기 위하여, 부호어의 비트열 내의 비트들 각각의 값이 0인지, 1인지 여부를 결정하는 동작을 반복하여 수행할 수 있다. 이러한 반복 동작은 상기 채널 디코딩부 190의 전력 소모를 가져올 수 있다. 따라서, 채널 디코딩부 190의 연산량을 감소시키는 방법이 요구된다.
도 2는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 변수 노드(variable node, VN)의 비활성화(deactivation)의 예를 도시한다. 상기 채널 디코딩부는 상기 도 1의 채널 디코딩부 190일 수 있다. 본 개시에서 비활성된 노드(변수 노드 또는 체크 노드)는 해당 노드에서 다른 노드로 전달하기 위한 우도(likilhood)값을 갱신하지 않을 수 있다. 상기 노드에서 갱신되는 우도값에 대한 자세한 정의는 후술된다.
이하, 본 개시는 LDPC 코드의 디코딩 동작을 설명한다. 구체적으로, 이하 본 개시는, LBP(layerd belief propagation) 기법을 이용하는, LDPC 코드에 대한 디코딩 동작을 설명한다. 상기 LDPC 코드는 규칙적인 구조의 패리티 행렬을 갖는 QC-LDPC(quasi-cycle) LDPC 코드일 수 있다. LDPC 코드의 디코딩 방식을 설명하기 위하여, 태너 그래프(Tanner graph)가 참조될 수 있다. 태너 그래프는 LDPC 코드의 패리티 행렬의 구조를 도식화한 그래프이다.
이하, 설명의 편의를 위하여, 3 비트들의 정보어 및 4 비트들의 패리티 비트로 구성되는 7 비트들의 부호어의 디코딩 동작이 예로 설명하나, 이러한 기재에 한정되지 않는다. 상기 부호어를 검출하기 위하여, 4x7 차원을 갖는 패리티 행렬이 요구될 수 있다. 상기 패리티 행렬은 도 2의 패리티 행렬 200일 수 있다. 즉, 상기 패리티 행렬은 하기의 수학식과 같이 설정될 수 있다.
Figure pat00003
도 2를 참조하면, 상기 태너 그래프 210은 7개의 변수 노드들 211, 212, 213, 214, 215, 216, 217을 포함한다. 상기 태너 그래프 210은 4개의 체크 노드들 222, 222, 223, 224를 포함한다. 패리티 행렬의 행(row)들 각각은 상기 태너 그래프 210에 포함된 체크 노드들 각각에 대응한다. 상기 패리티 행렬의 열(column)들 각각은 상기 태너 그래프 210에 포함된 변수 노드들 각각에 대응한다. 즉, 상기 패리티 행렬 200은 4개의 체크 노드와 7개의 변수 노드를 가질 수 있다.
상기 변수 노드들 각각은 입력되는 비트열의 비트들 각각에 대응한다. 상기 입력되는 비트열은 상기 도 1의 송신 장치 110가 송신한 부호어일 수 있다. 예를 들어, 변수 노드 211은 상기 송신된 부호어의 첫번째 비트값에 대응할 수 있다. 수신 장치 160은, 후술하는 LDPC 코드의 디코딩 동작을 통해, 상기 변수 노드 211의 우도값에 기반하여, 상기 첫번째 비트값을 결정할 수 있다. 상기 우도값은 후술하는 APP LLR값일 수 있다.
패리티 행렬의 원소들 각각은 태너 그래프 210에 포함된 각각의 변수 노드들 211 내지 217과 체크 노드들 221 내지 224들 간 연결 상태를 나타낸다. 예를 들어, 상기 패리티 행렬 200의 2행 3열 성분이 1인 경우, 2번째 체크 노드(check node, CN)와 3번째 변수 노드가 연결되어 있음을 나타낸다. 다른 예를 들어, 상기 패리티 행렬 200의 3행 2열 성분이 0인 경우, 3번째 체크 노드와 2번째 변수 노드 212가 연결되어 있지 않음을 나타낸다. 임의의 체크 노드와 임의의 변수 노드를 연결하는 선을 엣지(edge)라고 지칭할 수 있다.
패리티 행렬의 구조는 변수 노드들 각각의 차수(degree)에 따라 결정된다. 노드의 차수는 상기 노드에 연결되어 있는 엣지의 수에 따라 결정될 수 있다. 예를 들어, 3번째 변수 노드인 변수 노드 213은 2개의 엣지와 연결되므로, 상기 변수 노드 213의 차수는 2차이다. 다른 예를 들어, 변수 노드 217은 1개의 엣지와 연결되므로, 상기 변수 노드 217의 차수는 1차이다.
패리티 행렬의 연산은 레이어 단위로 수행될 수 있다. 패리티 행렬에서, 하나의 행은 하나의 체크 노드에 대응한다. 다시 말해, 패리티 행렬의 행의 개수가 많은 경우, 연산량이 증가할 수 있다. 따라서, 디코딩 연산량의 감소를 위하여, 채널 디코딩부 190은 디코딩 동작 시, 레이어 단위로 연산을 수행할 수 있다. 상기 레이어는 적어도 하나의 체크 노드를 포함할 수 있다. 상기 레이어는 패리티 행렬의 행을 구분하는 단위일 수 있다. 예를 들어, 상기 패리티 행렬 200은 2개의 레이어를 가질 수 있다. 상기 패리티 행렬 200의 1행 및 2행은 제1 레이어, 상기 패리티 행렬 200의 3행 및 4행은 제2 레이어로 구분될 수 있다.
채널 디코딩부 190은, 상기 복수의 변수 노드들 및 상기 복수의 체크 노드들에 기반하여, 입력되는 비트열을 디코딩할 수 있다.
LBP 디코딩 기법에 의할 때, 상기 채널 디코딩부 190은, 레이어 단위로, 상기 입력되는 비트열을 디코딩할 수 있다. 예를 들어, 상기 채널 디코딩부 190은 제1 레이어에 포함되는 제1 체크 노드들과, 상기 제1 레이어에 포함되는 체크 노드들과 연결된 제1 변수 노드들에 기반하여, 상기 비트열을 디코딩할 수 있다. 상기 디코딩된 비트열이 상기 수학식 2의 디코딩 성공 조건을 만족하지 않는 경우, 상기 채널 디코딩부 190은 제2 레이어에 대하여, 비트열을 다시 디코딩할 수 있다. 이와 같은 방식으로, 상기 채널 디코딩부 190은 모든 레이어에 대하여, 비트열을 디코딩할 수 있다. 상기 채널 디코딩부 190은, 마지막 레이어에서 디코딩된 비트열이 상기 수학식 2의 조건을 만족하지 않는 경우, 재차 제1 레이어에 대하여 비트열을 디코딩할 수 있다.
상기 채널 디코딩부 190은, 디코딩 동작을 반복할 때 마다, 비트열에 대한 우도값을 갱신할 수 있다. 상기 우도값은 사후 확률(a posteriori probability, APP) 로그 우도비(log likelihood raito, LLR)값일 수 있다. 상기 비트열에 포함되는 비트의 APP LLR 값은 상기 비트가 0인지, 1인지를 가리키는 우도값일 수 있다. 상기 채널 디코딩부 190은, 상기 우도값을 갱신함으로써, 더 정확한 LLR 값들을 획득할 수 있다. 상기 채널 디코딩부 190은, 더 정확한 LLR값들을 획득함으로써, 디코딩 성공률(decoding success rate)을 높일 수 있다.
상기 채널 디코딩부 190은, 입력되는 비트열에 대한 디코딩을 수행하기 전에, 상기 복수의 변수 노드들 및 상기 복수의 체크 노드들에 대한 설정을 초기화할 수 있다.
상기 채널 디코딩부 190은, 상기 복수의 체크 노드들에서의 체크 노드 연산값을 초기화할 수 있다. 체크 노드 연산값은 임의의 체크 노드에서 임의의 변수 노드로 전달하는 우도값(예: LLR(log likelihood ratio))을 지칭할 수 있다. 예를 들어, m번째 체크 노드에서의 체크 노드 연산값은, 상기 m번째 체크 노드와 연결된 임의의 변수 노드로 전달하는 LLR 값을 지칭할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드 연산값의 초기값을 모두 0으로 설정할 수 있다.
상기 채널 디코딩부 190은, 상기 복수의 변수 노드들에서의 변수 노드 연산값을 초기화할 수 있다. 변수 노드 연산값은 임의의 변수 노드에서 임의의 체크 노드로 전달되는 우도값을 지칭할 수 있다. 예를 들어, 상기 복수의 변수 노드들 중 n번째 변수 노드는, 상기 n번째 변수 노드와 연결된 임의의 체크 노드로 전달하는 LLR값을 초기화할 수 있다. 일부 실시 예들에서, 상기 채널 디코딩부 190은 상기 복수의 변수 노드들에서의 변수 노드 연산값을 0으로 설정할 수 있다. 다른 일부 실시 예들에서, 상기 채널 디코딩부 190은, 상기 복수의 변수 노드 연산값의 초기값으로, 후술하는 APP LLR값의 초기값을 설정할 수 있다.
상기 채널 디코딩부 190은 상기 복수의 변수 노드들 각각의 우도값을 초기화할 수 있다. 상기 우도값은 APP LLR 값일 수 있다. 전술한 바와 같이, 상기 APP LLR 값은, 상기 복수의 변수 노드들에 각각 대응하는 비트열의 비트 값이 0인지, 1인지를 나타내는 우도값일 수 있다. 예를 들어, 상기 비트열 중 3번째 비트의 APP LLR값이 3.2인 경우, 상기 채널 디코딩부 190은 상기 3번째 비트의 값이 1이라고 결정할 수 있다. 다른 예를 들어, 상기 비트열 중 5번째 비트의 APP LLR값이 -2.2인 경우, 상기 채널 디코딩부 190은 상기 5번째 비트의 값이 0이라고 결정할 수 있다. 상기 채널 디코딩부 190은, 수신되는 신호의 값, 및 상기 신호의 채널에 포함되는 잡음값에 기반하여 상기 복수의 변수 노드들 각각의 APP LLR 값을 결정할 수 있다. 예를 들어, BPSK 방식으로 변조된 신호를 수신하는 경우, 상기 채널 디코딩부 190은 하기의 수학식 4에 따라, 상기 APP LLR 값의 초기값을 설정할 수 있다.
Figure pat00004
Figure pat00005
는 n 번째 변수 노드로 전달되는, APP LLR 값의 초기값을 나타낸다.
Figure pat00006
는 n번째 변수 노드의 비트에 대응하는 메시지 값을 나타내고,
Figure pat00007
는 채널(channel, CH)에서의 잡음의 분산을 나타낸다.
이하, i번째 반복 디코딩 동작 중, k번째 레이어에서의 연산 동작을 설명한다. 설명의 편의를 위하여, i번째 반복(iteration) 디코딩 동작 중, m번째 체크 노드에서 n번째 변수 노드로 전달하는 체크 노드 연산값은
Figure pat00008
로 나타낼 수 있다. i번째 반복 디코딩 동작 중, n번째 변수 노드에서 m번째 체크 노드로 전달하는 변수 노드 연산값은
Figure pat00009
로 나타낼 수 있다. i번재 반복 디코딩 동작 중, n번째 변수 노드에서 우도값은
Figure pat00010
로 나타낼 수 있다.
상기 채널 디코딩부 190은, k번째 레이어(layer)에 포함되는 체크 노드들에서의 체크 노드 연산값을 갱신할 수 있다. 상기 k번째 레이어는 m번째 체크 노드를 포함할 수 있다. 상기 채널 디코딩부 190은, 하기의 수학식에 기반하여, 상기 체크 노드 연산값을 갱신할 수 있다. n번째 변수 노드는 상기 m번째 체크 노드와 연결된 임의의 변수 노드일 수 있다
Figure pat00011
Figure pat00012
는 i번째 반복 디코딩 동작 중, m번째 체크 노드에서 n번째 변수 노드로 전달하는 체크 노드 연산값을 나타낸다. 상기 체크 노드 연산값은 LLR 값이다. N(m)은 상기 m번째 체크 노드와 연결된 변수 노드의 집합을 나타낸다.
예를 들어, 상기 채널 디코딩부 190은, 체크 노드 연산값 262인
Figure pat00013
을 체크 노드 222에서의 연산값으로 결정할 수 있다. 상기 채널 디코딩부 190은 체크 노드 연산을 위하여, 변수 노드 연산값 251, 변수 노드 연산값 253, 변수 노드 연산값 254를 획득할 수 있다. 이 때, 상기 변수 노드 연산값 253, 및 상기 변수 노드 연산값 254는 i-1번째 반복 디코딩 동작 중 갱신된 변수 노드 연산값이다. 상기 채널 디코딩부 190은, 상기 수학식 5에 따라 상기 변수 노드 연산값 253 및 상기 변수 노드 연산값 254 중 가장 작은 값을 이용하여, 상기 체크 노드 연산값 262를 결정할 수 있다.
상기 채널 디코딩부 190은, 체크 노드 연산값을 결정할 때, 다수의 연산을 동시에 수행할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 1번째 레이어의 반복 디코딩 동작 수행 중인 경우, 체크 노드 221 및 체크 노드 222 에서의 체크 노드 연산값들을 병렬적으로 갱신할 수 있다.
일부 실시 예들에서, 상기 채널 디코딩부 190은, 상기 체크 노드 연산값을 병렬적으로 갱신하는 경우, 연산량을 감소시키기 위하여, 제2 최소값 알고리즘(second minimum algorithm)을 사용할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 체크 노드 연산값 262를 갱신하기 위하여, 변수 노드 연산값 253, 체크 노드 연산값 254 외에 체크 노드 연산값 251을 획득할 수 있다. 즉, 상기 채널 디코딩부 190은, 해당 체크 노드에서 연결되는 모든 변수 노드들로부터 변수 노드 연산값들을 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 연산값들 중에서, 가장 작은 크기를 갖는 제1 변수 노드 연산값과 두번째로 작은 크기를 갖는 제2 변수 노드 연산값을 결정할 수 있다. 이후, 상기 채널 디코딩부 190은, 체크 노드 연산값 262를 갱신하기 위하여, 연결된 변수 노드 211을 확인한다. 상기 제1 변수 노드 연산값이 상기 변수 노드 211로부터 획득되지 않은 경우, 상기 채널 디코딩부 190은, 상기 수학식 5에 따라 상기 체크 노드 연산값 262를 갱신할 때, 상기 제1 변수 노드 연산값을 이용할 수 있다. 그러나, 상기 제1 변수 노드 연산값이 상기 변수 노드 211로부터 획득된 경우, 상기 채널 디코딩부 190은, 상기 수학식 5에 따라 상기 체크 노드 연산값 262를 갱신할 때, 상기 제2 변수 노드 연산값을 이용할 수 있다. 이 때, 상기 디코딩부 190은, 상기 체크 노드 222의 다른 체크 노드 연산값을 갱신 시 상기 제1 변수 노드 연산값을 이용할 수 있다.
이와 같이, 상기 채널 디코딩부 190은, 하나의 체크 노드에서 다수의 체크 노드 연산값을 갱신할 때, 제2 최소 알고리즘을 이용하여 연산 횟수를 감소시킬 수 있다. 또한, 상기 채널 디코딩부 190은 후술하는, 체크 노드를 비활성화할 것인지 여부 및 변수 노드를 재활성화할 것인지 여부를 판단할 경우에도 상기 제2 최소 알고리즘을 이용하여 연산 횟수를 감소시킬 수 있다.
상기 채널 디코딩부 190은, k번째 레이어에 대응하는 변수 노드들에서의 변수 노드 연산값을 갱신할 수 있다. 상기 변수 노드들은, 상기 k번째 레이어에 포함되는 체크 노드들과 적어도 하나의 엣지로 연결되는 변수 노드들일 수 있다. 상기 변수 노드들은 n번째 변수 노드를 포함할 수 있다. 상기 k번째 레이어에 포함되는 체크 노드들은 m번째 체크 노드를 포함할 수 있다. 상기 채널 디코딩부 190은, 하기의 수학식에 기반하여 상기 변수 노드 연산값을 갱신할 수 있다.
Figure pat00014
Figure pat00015
는 i번째 반복 디코딩 동작 중, n번째 변수 노드에서 m번째 체크 노드로 전달하는 변수 노드 연산값을 나타낸다. 상기 변수 노드 연산값은 LLR 값이다. M(n)는 상기 n번째 변수 노드와 연결되는 체크 노드의 집합을 나타낸다.
예를 들어, 상기 채널 디코딩부 190은, 변수 노드 211의 변수 노드 연산값으로, 변수 노드 연산값 271인,
Figure pat00016
을 결정할 수 있다. 상기 채널 디코딩부 190은, i번째 반복 디코딩 동작시, i-1번째의 변수 노드 연산값 251인
Figure pat00017
을 i번째 변수 노드 연산값 271인
Figure pat00018
로 갱신할 수 있다. 상기 채널 디코딩부 190은, 변수 노드 연산값의 갱신을 위하여, 체크 노드 연산값 261, 체크 노드 연산값 262, 체크 노드 연산값 264를 획득할 수 있다. 이 때, 상기 체크 노드 연산값 261, 체크 노드 연산값 262, 체크 노드 연산값 264은 i번째 반복 디코딩 동작 중 갱신된 체크 노드 연산값이다. 상기 채널 디코딩부 190은, 상기 수학식 6에 따라, 체크 노드 연산값 261 및 상기 체크 노드 연산값 264을 이용하여, 상기 변수 노드 연산값 271을 결정할 수 있다.
상기 채널 디코딩부 190은, 변수 노드 연산값을 결정하는 경우, 다수의 연산을 동시에 수행할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 1번째 레이어의 반복 디코딩 동작 수행 중인 경우, 체크 노드 221 및 체크 노드 222와 연결되는 변수 노드들 211, 212, 213, 214, 216에서의 변수 노드 연산값을 병렬적으로 갱신할 수 있다.
상기 채널 디코딩부 190은, 갱신된 변수 노드 연산값들 및 체크 노드 연산값들에 기반하여, 패리티 행렬의 복수의 변수 노드들 각각의 우도값을 갱신할 수 있다. 상기 채널 디코딩부 190은, 하기의 수학식에 따라, 상기 복수의 변수 노드들 각각의 우도값을 갱신할 수 있다. 상기 우도값은 APP LLR 값일 수 있다.
Figure pat00019
Figure pat00020
는 i번째 반복 디코딩 동작 중, n번째 변수 노드에서의 우도값을 나타낸다. M(n)은, n번째 변수 노드와 연결되는 체크 노드들의 집합을 나타낸다. 상기 채널 디코딩부 190은, 레이어의 구분없이, 상기 복수의 노드들 전체에 대하여 상기 우도값을 갱신할 수 있다.
본 개시의 다양한 실시 예들에 따를 때, 상기 채널 디코딩부 190은, 연산량을 감소시키기 위하여, 복수의 변수 노드들 중에서 비활성화할 비활성 변수 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, 우도값에 기반하여, 상기 비활성 변수 노드를 결정할 수 있다. 상기 우도값은 APP LLR 값일 수 있다. 구체적으로, 상기 채널 디코딩부 190은, 하기의 수학식에 기반하여 상기 비활성 변수 노드를 결정할 수 있다.
Figure pat00021
Figure pat00022
는 i번째 반복 디코딩 동작 중, n번째 변수 노드에서의 우도값을 나타낸다.
Figure pat00023
는 n 번째 변수 노드의 우도값의 초기값을 나타낸다. M(n)은 n번째 변수 노드와 연결되는 체크 노드의 집합을 나타낸다.
Figure pat00024
은 n번째 변수 노드의 차수에 따라 결정되는 변수 노드 임계값(VN threshold)을 나타낸다.
상기 채널 디코딩부 190은, 복수의 변수 노드들 중, 상기 수학식 8을 만족하는 적어도 하나의 변수 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 적어도 하나의 변수 노드를 비활성화 집합(deactivation set)에 포함시킬 수 있다. 상기 채널 디코딩부 190은, 이후 디코딩 동작 수행 시부터, 상기 비활성화 집합에 포함되는 비활성 변수 노드에 대해서는, 해당 변수 노드의 변수 노드 연산값을 갱신하지 않을 수 있다. 즉, 상기 채널 디코딩부 190은, i+1 번째 변수 노드 연산값을 i번째 변수 노드 연산값과 동일하게 설정할 수 있다. 상기 채널 디코딩부 190은, i+1번째 변수 노드 연산값에 대한 연산 과정이 생략될 수 있다.
예를 들어, 상기 채널 디코딩부 190은, 변수 노드 213의 APP LLR 값으로,
Figure pat00025
을 결정할 수 있다. 상기 채널 디코딩부 190은 수학식 8에 따라, 체크 노드 연산값 272 및 체크 노드 연산값 273을 이용하여, 상기 변수 노드 213의 APP LLR 값을 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 213의 APP LLR 값과
Figure pat00026
를 비교하여, 상기 변수 노드 213의 비활성화 여부를 결정할 수 있다. 구체적으로, 상기 채널 디코딩부 190은, 메모리로부터 변수 노드 임계값을 가리키는 정보를 획득할 수 있다. 상기 변수 노드 213은 2개의 엣지와 연결되어 있어 2차의 차수를 가질수 있다. 즉, 상기 채널 디코딩부 190은, 상기 메모리로부터, 2차의 차수에 대한 변수 노드 임계값을 가리키는 정보를 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 2차의 차수에 대한 변수 노드 임계값 및 상기 변수 노드 213의 APP LLR값을 비교하여, 상기 변수 노드 213의 비활성화 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 213을 비활성화하기로 결정한 경우, 상기 변수 노드 213을 비활성화 집합에 포함시킬 수 있다. 상기 변수 노드 213에서의 변수 노드 연산값은 이후 반복 동작에서 갱신되지 않는다.
다른 예를 들어, 상기 채널 디코딩부 190은, 변수 노드 211의 APP LLR 값으로,
Figure pat00027
을 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 211의 APP LLR 값과
Figure pat00028
을 비교하여, 상기 변수 노드 211의 비활성화 여부를 결정할 수 있다. 상기 변수 노드 211은 3차의 차수를 가지는 바, 상기 채널 디코딩부 190은, 3차에 대한 변수 노드 임계값을 가리키는 정보를 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 3차의 차수에 대한 변수 노드 임계값 및 상기 변수 노드 211의 APP LLR값을 비교하여, 상기 변수 노드 211의 비활성화 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 211을 비활성화 하지 않기로 결정한 경우, 상기 변수 노드 211을 비활성화 집합에 포함시키지 않을 수 있다. 상기 변수 노드 211에서의 변수 노드 연산값은 이후 반복 동작에서 갱신될 수 있다.
상기 채널 디코딩부 190은 변수 노드를 비활성화 시킴으로써, 변수 노드 연산값을 갱신하기 위한 연산을 생략할 수 있다. 상기 채널 디코딩부 190은, 복수의 변수 노드들 중 차수가 다른 변수 노드들 간에는 다른 임계값을 적용함으로써, 적용된 LDPC 코드의 구조를 반영할 수도 있다. 모든 변수 노드들에 대해서 동일한 임계값을 적용함에 따라 차수가 상대적으로 낮은 변수 노드에 대해서는 연산량 감소 효과를 보지 못하는 경우와 달리, 다양한 실시 예들에 따른 상기 채널 디코딩부 190은, 상기 적용된 LDPC 코드의 구조를 반영함으로써, 디코딩 동작 수행시 최적의 연산량을 감소시키는 효과를 얻을 수 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 체크 노드의 비활성화의 예를 도시한다. 상기 채널 디코딩부는 상기 도 1의 채널 디코딩부 190일 수 있다. 이하 상기 채널 디코딩부 190이 i번째 반복 디코딩 동작 중, 2번째 레이어의 체크 노드 연산값을 갱신하는 상황이 설명된다.
도 3을 참조하면, 상기 채널 디코딩부 190은, 상기 도 2의 패리티 행렬 200을 이용하여 디코딩을 수행할 수 있다. 따라서, 상기 채널 디코딩부 190은, 태너 그래프 300 및 태너 그래프 350을 통하여, 3 비트들의 정보어 및 4 비트들의 패리티 비트로 구성되는 7 비트들의 부호어의 디코딩 동작을 수행한다.
상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 2번째 레이어에 포함되는 체크 노드들의 체크 노드 연산값들을 갱신할 수 있다. 구체적으로, 상기 채널 디코딩부 190은 상기 수학식 5에 따라, 상기 체크 노드 연산값들을 갱신할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 2번째 레이어에 포함되는 체크 노드 223에 연결된 변수 노드 213, 215, 217 으로부터의 변수 노드 연산값들(
Figure pat00029
)을 각각 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 2번째 레이어에 포함되는 체크 노드 224에 연결된 변수 노드 211, 216으로부터의 변수 노드 연산값들(
Figure pat00030
)을 각각 획득할 수 있다. 상기 채널 디코딩부 190은, 획득된 변수 노드 연산값들에 기반하여, 상기 체크 노드 223의 체크 노드 연산값들(
Figure pat00031
) 및 상기 체크 노드 224의 체크 노드 연산값들(
Figure pat00032
)을 갱신할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 상기 채널 디코딩부 190은, 비활성화할 체크 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 비활성화할 체크 노드를 결정하기 위하여, 2가지 조건을 충족하는지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, 복수의 체크 노드들 중, 상기 2가지 조건을 모두 충족하는, 체크 노드를 결정할 수 있다.
상기 채널 디코딩부 190은, 상기 2가지 조건 중 제1 조건이 충족하는지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, k번째 레이어에 포함되는 체크 노드 연산값들을 갱신하기 위하여, 변수 노드 연산값들을 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 획득된 변수 노드 연산값들에 기반하여 상기 제1 조건을 충족하는 지 여부를 판단할 수 있다. 구체적으로, 상기 채널 디코딩부 190은, 하기의 수학식에 따라 상기 제1 조건을 충족하는지 여부를 결정할 수 있다.
Figure pat00033
Figure pat00034
은 i-1번째 반복 디코딩 동작 중, n'번째 변수 노드에서 m번째 체크 노드로 전달하는 변수 노드 연산값을 나타낸다. m번째 체크 노드는 k번째 레이어에 포함되는 체크 노드이다. 상기 변수 노드 연산값은 LLR 값이다. N(m)은 m번째 체크 노드에 연결되는 변수 노드의 집합을 나타낸다.
Figure pat00035
는 k번째 레이어에서 적용되는, 체크 노드 임계값(CN threshold)을 나타낸다.
상기 채널 디코딩부 190은, 상기 수학식 9를 만족하는 경우, 상기 제1 조건이 충족된다고 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 제1 조건의 충족 여부를 가리키는 지시 정보를 저장할 수 있다. 상기 채널 디코딩부 190은 상기 지시 정보에 따라, 후술되는 제2 조건을 충족하는지 여부를 판단할 수 있다. 예를 들어, 상기 제1 조건이 충족하는 경우, 상기 채널 디코딩부 190은 상기 제2 조건을 충족하는지 여부를 판단할 수 있다. 다른 예를 들어, 상기 제1 조건을 충족하지 않는 경우, 상기 채널 디코딩부 190은, 상기 제2 조건을 충족하는지 여부를 판단하지 않을 수 있다.
일부 실시 예들에서, 상기 채널 디코딩부 190은, 체크 노드 연산값을 갱신할 때 사용한 제2 최소 알고리즘의 결과를 이용하여, 상기 비활성화할 체크 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, 체크 노드 연산값을 갱신하기 위하여 획득된 변수 노드 연산값들 중 가장 작은 크기를 갖는 제1 변수 노드 연산값을 이용할 수 있다. 상기 채널 디코딩부 190은, 상기 제1 변수 노드 연산값과 체크 노드 임계값을 비교하여 상기 제1 조건이 만족하는 지 여부를 판단할 수 있다. 상기 채널 디코딩부 190은, 체크 노드 연산값 갱신시 수행된 연산 결과를 활용함으로써, 반복적인 연산량을 감소시킬 수 있다.
상기 채널 디코딩부 190은, 상기 2가지 조건 중 제2 조건을 충족하는지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, k번째 레이어에 포함되는 체크 노드들 중, 신드롬(syndrome) 비트가 0인 경우, 해당 체크 노드가 상기 제2 조건을 충족한다고 결정할 수 있다. 상기 신드롬 비트는
Figure pat00036
로 나타낸다. m은 체크 노드의 번호로, 패리티 행렬의 특정 행을 가리킬 수 있다. 상기 채널 디코딩부 190은, 상기 패리티 행렬의 특정 행과 입력되는 비트열을 곱한 값이 0인 경우, 상기 특정 행에 대응하는 체크 노드의 신드롬 비트를 0으로 결정할 수 있다.
상기 채널 디코딩부 190은, 상기 적어도 하나의 체크 노드를 비활성화 집합에 포함시킬 수 있다. 상기 채널 디코딩부 190은, 이후 디코딩 동작 수행시부터, 상기 비활성화 집합에 포함되는 비활성 체크 노드에 대해서는, 해당 체크 노드의 체크 노드 연산값을 갱신하지 않을 수 있다. 즉, 상기 채널 디코딩부 190은, i+1번째 체크 노드 연산값을 i번째 체크 노드 연산값과 동일하게 설정할 수 있다. 상기 채널 디코딩부 190은, i+1번째 체크 노드 연산값에 대한 연산 과정을 생략할 수 있다.
태너 그래프 300은 상기 채널 디코딩부 190의 i번째 반복 디코딩 동작을 나타낸다. 상기 태너 그래프 300을 참조하면, 상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 2번째 레이어에 대한 체크 노드 연산값들을 갱신할 수 있다. 상기 채널 디코딩부 190은, 체크 노드 223은 체크 노드 연산값 310을 갱신하고, 체크 노드 224는 체크 노드 연산값 320을 갱신할 수 있다. 상기 체크 노드 연산값 310은
Figure pat00037
로, 상기 체크 노드 연산값 320은
Figure pat00038
로 나타낼 수 있다. 상기 채널 디코딩부 190은, 2번째 레이어에 대한 체크 노드 연산값들을 갱신하기 위해 변수 노드 연산값들을 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 획득된 변수 노드 연산값들에 기반하여, 상기 수학식 9에 따라 비활성 체크 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, 2번째 레이어의 체크 노드들이 상기 수학식 9를 만족하는지 여부를 판단하기 위하여, 메모리로부터 2번째 레이어에 대한 임계값을 가리키는 정보를 획득할 수 있다. 상기 채널 디코딩부 190은,
Figure pat00039
각각의 절대값 중 최소값이 2번째 레이어에 대한 체크 노드 임계값
Figure pat00040
보다 크고, 패리티 행렬의 4번째 행과 입력되는 비트열의 곱이 0인 경우, 체크 노드 224를 비활성 체크 노드로 결정할 수 있다.
태너 그래프 350은 상기 채널 디코딩부 190의 i+1번째 반복 디코딩 동작을 나타낸다. 상기 태너 그래프 350을 참조하면, 상기 채널 디코딩부 190은, i+1번째 반복 디코딩 동작 중, 2번째 레이어에 대한 체크 노드 연산값들을 결정할 수 있다. 구체적으로, 상기 채널 디코딩부 190은, 체크 노드 223의 체크 노드 연산값 360을 갱신할 수 있다. 상기 체크 노드 연산값 360은
Figure pat00041
로 나타낼 수 있다. 상기 채널 디코딩부 190은, 하기 수학식 10에 기반하여, 상기 체크 노드 연산값 360을 갱신할 수 있다.
Figure pat00042
상기 채널 디코딩부 190은, 체크 노드 224의 체크 노드 연산값 370을 결정할 수 있다. 상기 체크 노드 연산값 370은
Figure pat00043
로 지시될 수 있다. 상기 채크 노드 224는 i번째 반복 디코딩 동작 중, 비활성화 체크 노드로 결정되었는 바, 상기 채널 디코딩부 190은, 상기 체크 노드 연산값 370을 갱신하기 위한 별도의 연산을 수행하지 않을 수 있다. 즉, 상기 채널 디코딩부 190은, 상기 체크 노드 연산값 370을 하기의 수학식 11에 따라 결정할 수 있다.
Figure pat00044
상기 채널 디코딩부 190은, 체크 노드를 비활성화 시킴으로써, 체크 노드 연산값을 갱신하기 위한 연산을 생략할 수 있다. 상기 채널 디코딩부 190은, 복수의 체크 노드들 중에서 레이어가 다른 체크 노드들 간에는, 다른 임계값을 적용함으로써, 특정 레이어에 따라, 해당되는 변수 노드와 체크 노드가 달라지는 LDPC 코드의 구조를 반영할 수 있다.
상기 채널 디코딩부 190은, 체크 노드를 비활성화 시킴으로써, 비활성 체크 노드와 연결되는 변수 노드의 변수 노드 연산값을 갱신하기 위한 연산 동작의 연산량을 감소시킬 수 있다. 채널 디코딩부 190은, 변수 노드의 변수 노드 연산값을 갱신하기 위하여, 상기 변수 노드와 연결되는 체크 노드의 체크 노드 연산값을 획득하는 것이 요구된다. 상기 변수 노드와 연결되는 체크 노드가 비활성화 체크 노드인 경우, 채널 디코딩부 190은, 이전 반복 디코딩 동작에서 수행되었던 체크 노드 연산값을 이용함으로써, 상기 변수 노드 연산값을 갱신하기 위한 연산량을 감소시킬 수 있다.
또한, QC-LDPC 구조는 하나의 레이어에서 하나의 변수 노드는 하나의 체크 노드와 연결되어 있는 구조이므로, QC-LDPC 구조에서, 상기 채널 디코딩부 190은 체크 노드를 비활성화 하는 경우, 상기 체크 노드가 포함된 레이어에서, 상기 체크 노드와 연결되는 변수 노드는 반복 디코딩 동작을 하더라도 일정한 변수 노드 연산값을 유지한다. 따라서, 상기 채널 디코딩부 190은, 비활성화 체크 노드를 결정함으로써, 상기 체크 노드와 연결되는 변수 노드를 비활성화 시키는 결과를 가져올 수 있다. 이러한 효과를 통하여, 상기 채널 디코딩부 190은 전체 연산 동작을 감소시키는 효과를 얻을 수 있다.
도 4는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 변수 노드의 재활성화(re-activation)의 예를 도시한다. 상기 채널 디코딩부는 상기 도 1의 채널 디코딩부 190일 수 있다. 상기 채널 디코딩부 190이 i번째 반복 디코딩 동작 중, 1번째 레이어의 체크 노드 연산값을 갱신하는 상황이 설명된다.
도 4을 참조하면, 상기 채널 디코딩부 190은, 상기 도 2의 패리티 행렬 200을 이용하여 디코딩을 수행할 수 있다. 따라서, 상기 채널 디코딩부 190은, 태너 그래프 400 및 태너 그래프 450을 통하여, 3 비트들의 정보어 및 4 비트들의 패리티 비트로 구성되는 7 비트들의 부호어의 디코딩 동작을 수행한다.
상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 2번째 레이어에 포함되는 체크 노드들의 체크 노드 연산값들을 갱신할 수 있다. 구체적으로, 상기 채널 디코딩부 190은 수학식 5에 따라 상기 체크 노드 연산값들을 갱신할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 1번째 레이어에 포함되는 체크 노드 221에 연결된 변수 노드 211, 212, 216 으로부터의 변수 노드 연산값들(
Figure pat00045
)을 각각 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 1번째 레이어에 포함되는 체크 노드 222에 연결된 변수 노드 213, 214로부터의 변수 노드 연산값들(
Figure pat00046
)을 각각 획득할 수 있다. 상기 채널 디코딩부 190은, 획득된 변수 노드 연산값들에 기반하여, 상기 체크 노드 221의 체크 노드 연산값들(
Figure pat00047
) 및 상기 체크 노드 222의 체크 노드 연산값들(
Figure pat00048
)을 갱신할 수 있다.
본 개시의 다양한 실시 예들에 따르면, 상기 채널 디코딩부 190은, 재활성화시킬 변수 노드를 결정할 수 있다. 상기 채널 디코딩부 190은, k번째 레이어에 대한 체크 노드 연산값들을 갱신하기 위하여 획득된 변수 노드 연산값들에 기반하여, 상기 k번째 레이어에 포함되는 체크 노드와 연결되는 비활성 변수 노드들을 재활성화할 것인지 여부를 결정할 수 있다. 구체적으로, 상기 채널 디코딩부 190은 하기의 수학식에 기반하여 비활성 변수 노드들을 재활성화할 것인지 여부를 결정할 수 있다.
Figure pat00049
Figure pat00050
은 i-1번째 반복 디코딩 동작 중, n'번째 변수 노드에서 m번째 체크 노드로 전달하는 변수 노드 연산값을 나타낸다. m번째 체크 노드는 k번째 레이어에 포함되는 체크 노드이다. 상기 변수 노드 연산값은 LLR 값이다. N(m)은 m번째 체크 노드에 연결되는 변수 노드의 집합을 나타낸다.
Figure pat00051
는 k번째 레이어에서 적용되는, 재활성 임계값(re-activation threshold)을 나타낸다. 즉, 재활성 임계값은 레이어에 따라 각각 다르게 설정될 수 있다.
상기 채널 디코딩부 190은, m번째 체크 노드에서 상기 수학식을 만족하는 경우, 비활성화 집합에 포함된 변수 노드들 중 상기 m번째 체크 노드에 연결된 변수 노드들 모두에 대하여, 상기 비활성화 집합에서 제외할 수 있다. 이에 따라, 상기 채널 디코딩부 190은, 재활성화된 변수 노드에 대한 변수 노드 연산값을 갱신하기 위하여, 상기 수학식 6의 연산 동작을 수행할 수 있다.
태너 그래프 400은 상기 채널 디코딩부 190의 i번째 반복 디코딩 동작을 나타낸다. 상기 태너 그래프 400을 참조하면, 변수 노드 211 및 변수 노드 213은, 비활성 변수 노드일 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 211 및 변수 노드 213에 대한 변수 노드 연산값들을 결정하기 위하여, 체크 노드 연산값들을 합하는 상기 수학식 6의 연산 동작을 수행하지 않을 수 있다.
상기 채널 디코딩부 190은, 체크 노드 222에 대한 체크 노드 연산값을 갱신하기 위하여, 변수 노드 연산값을 획득할 수 있다. 예를 들어, 체크 노드 연산값
Figure pat00052
을 갱신하기 위하여, 상기 채널 디코딩부 190은
Figure pat00053
을 획득할 수 있다. 상기 채널 디코딩부 190은, 하기의 수학식 13에 기반하여 체크 노드 222와 연결된 변수 노드 전체를 활성할 것인지 여부를 결정할 수 있다. 즉, 상기 채널 디코딩부 190은 하기의 수학식 13에 기반하여 변수 노드 211 및 213을 재활성화할 것인지 여부를 결정할 수 있다.
Figure pat00054
Figure pat00055
는 1번째 레이어에 대한 재활성 임계값을 나타낸다. 상기 채널 디코딩부 190은,
Figure pat00056
각각의 절대값 중 최소값이 1번째 레이어에 대한 재활성 임계값보다 작은 경우, 상기 변수 노드 211 및 상기 변수 노드 213을 재활성화할 수 있다.
태너 그래프 450은 상기 채널 디코딩부 190의 i+1번째 반복 디코딩 동작을 나타낸다. 상기 태너 그래프 400을 참조하면, 상기 채널 디코딩부 190은, i+1번째 반복 디코딩 동작 중, 1번째 레이어에 대한 변수 노드 연산값들을 결정할 수 있다. 상기 채널 디코딩부 190은, i+1번째의 변수 노드 연산값들을 갱신할 수 있다. 이 때, 상기 채널 디코딩부 190은, 재활성화된 변수 노드 211의 변수 노드 연산값을 갱신하기 위하여,
Figure pat00057
을 획득할 수 있다. 즉, 상기 채널 디코딩부 190은,
Figure pat00058
을 결정하기 위하여,
Figure pat00059
을 그대로 적용하지 않고, 하기의 수학식을 수행하는 연산 동작을 수행할 수 있다.
Figure pat00060
변수 노드의 비활성화는 반복 디코딩 동작의 연산량을 감소시킬 수 있으나, 잦은 변수 노드들의 비활성화는 디코딩의 정확도를 낮추는 결과를 가져올 수 있다. 반면, 디코딩의 정확도를 올리기 위하여, 많은 수의 변수 노드들을 재활성화할 경우, 연산량이 증가할 수 있다. 따라서, 본 개시의 다양한 실시 예들에 따른, 채널 디코딩부 190은, 레이어에 따라 다른 재활성 임계값을 적용함으로써, 변수 노드의 불필요한 재활성화를 최소화할 수 있다. 불필요한 재활성화를 방지함으로써, 채널 디코딩부 190은 디코딩의 정확도를 보증하면서, 연산량을 감소시킬 수 있다.
도 5는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 흐름을 도시한다. 상기 채널 디코딩부는 상기 도 1의 채널 디코딩부 190일 수 있다.
510 동작에서, 채널 디코딩부 190은 체크 노드 연산값, 변수 노드 연산값, 및 변수 노드의 우도값 각각의 초기값을 설정할 수 있다.
상기 채널 디코딩부 190은, 변수 노드 연산값의 초기값을 설정할 수 있다. 상기 변수 노드 연산값은 임의의 변수 노드에서 임의의 체크 노드로 전달되는 우도값일 수 있다. 상기 채널 디코딩부 190은, 변수 노드 연산값의 초기값을 0으로 설정할 수 있다. 동작의 순서에 따라, 상기 채널 디코딩부 190은, 변수 노드의 변수 노드 연산값의 초기값을 상기 변수 노드의 APP LLR값의 초기값으로 설정할 수도 있다.
상기 채널 디코딩부 190은, 체크 노드 연산값의 초기값을 설정할 수 있다. 상기 체크 노드 연산값은 임의의 체크 노드에서 임의의 변수 노드로 전달되는 우도값일 수 있다. 상기 채널 디코딩부 190은, 체크 노드 연산값의 초기값을 0으로 설정할 수 있다.
상기 채널 디코딩부 190은, 변수 노드의 우도값의 초기값을 설정할 수 있다. 상기 변수 노드의 우도값은 상기 변수 노드의 APP LLR값일 수 있다. 변수 노드의 APP LLR값은, 상기 변수 노드에 대응하는 비트 값이 0인지, 1인지 여부를 가리키는 LLR 값일 수 있다. 예를 들어, 3번째 변수 노드의 우도값이 3.7인 경우, 상기 채널 디코딩부 190은, 비트열의 3번째 비트가 1이라고 결정할 수 있다. 다른 예를 들어, 2번째 변수 노드의 변수 노드의 우도값이 -2.1인 경우, 상기 채널 디코딩부 190은 비트열의 2번째 비트가 0이라고 결정할 수 있다.
상기 채널 디코딩부 190은 상기 결정된 초기값들에 기반하여 첫번째 반복 디코딩 동작을 수행할 수 있다. 상기 채널 디코딩부 190은 하나의 반복 디코딩 동작 수행시, 레이어 단위로 수행할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 세번째 반복 디코딩 동작 수행시, 1번째 레이어에 대하여 520 동작 내지 590 동작을 반복하여 수행하고, 2번째 레이어에 대하여 520 동작 내지 590 동작을 반복하여 수행할 수 있다. 마지막 레이어에 대하여, 520 동작 내지 590 동작을 수행한 경우, 상기 채널 디코딩부 190은, 다음 반복 디코딩 동작인, 네번째 반복 디코딩 동작 중, 1번째 레이어에 대하여 디코딩 동작을 수행할 수 있다. 이하, i번째 반복 디코딩 동작 중, k번째 레이어에 대한 체크 노드 연산값을 갱신하는 상황이 설명된다.
520 동작에서, 상기 채널 디코딩부 190은, 체크 노드 연산값을 갱신할 수 있다. 상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 상기 k번째 레이어에 포함되는 체크 노드들에 대한 체크 노드 연산값들을 갱신할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드 연산값들을 갱신하기 위하여, i-1번째 갱신된 변수 노드 연산값들을 이용할 수 있다.
530 동작에서, 상기 채널 디코딩부 190은, 체크 노드를 비활성화할 것인지 여부에 대한 제1 조건이 충족되는지 여부를 판단할 수 있다. 상기 제1 조건은 상기 수학식 9이다. 상기 채널 디코딩부 190은, 상기 제1 조건의 충족 여부를 판단하기 위하여, 상기 체크 노드가 포함된 레이어의 인덱스를 확인할 수 있다. 상기 채널 디코딩부 190은, 메모리로부터, 상기 인덱스에 따른 체크 노드 임계값을 획득할 수 있다. 상기 메모리는 수신 장치 160에 포함되는 메모리일 수 있다. 상기 메모리는 레이어들 각각에 대한 임계값을 저장할 수 있다. 예를 들어, 상기 메모리는 저장된 패리티 행렬의 레이어가 3개인 경우, 3개의 임계값을 저장할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드에 대하여 갱신된 체크 노드 연산값과 상기 체크 노드 임계값을 비교할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드 연산값이 상기 체크 노드 임계값보다 큰 경우, 상기 체크 노드의 비활성화에 대한 제1 조건을 만족한다고 결정할 수 있다.
상기 채널 디코딩부 190은, 상기 520 동작의 연산을 수행하면서 획득된 i-1번째 갱신된 변수 노드 연산값들을 이용하여, 체크 노드의 비활성화 여부를 결정할 수 있다. 즉, 상기 채널 디코딩부 190은, 520 동작 이후 바로 530 동작을 수행함으로써, 체크 노드의 비활성화 여부를 결정하기 위하여 요구되는 연산인 i-1번째 갱신된 변수 노드 연산값에 대한 연산을 생략할 수 있다. 이러한 동작의 생략은, 소모되는 전략량을 감소시킬 수 있다.
540 동작에서, 상기 채널 디코딩부 190은, 변수 노드를 재활성화할 것인지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, 변수 노드를 재활성화할 것인지 여부를 결정하기 위하여, 디코딩 동작 중인 레이어의 인덱스를 확인할 수 있다. 상기 변수 노드는 상기 레이어에 포함된 체크 노드와 연결되는 변수 노드일 수 있다. 상기 채널 디코딩부 190은, 상기 메모리로부터 상기 레이어의 인덱스에 따른 재활성 임계값을 획득할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드에 대하여 갱신된 체크 노드 연산값과 상기 재활성 임계값을 비교할 수 있다. 상기 채널 디코딩부 190은, 상기 체크 노드 연산값이 상기 변수 노드 임계값보다 작은 경우, 상기 체크 노드와 연결된 변수 노드들을 모두 활성화할 수 있다.
상기 채널 디코딩부 190은, 상기 520 동작의 연산을 수행하면서 획득된 i-1번째 갱신된 변수 노드 연산값들을 이용하여, 변수 노드의 재활성화 여부를 결정할 수 있다. 즉, 상기 채널 디코딩부 190은, 520 동작 이후 540 동작을 수행함으로써, 변수 노드의 재활성화 여부를 결정하기 위한 i-1번째 갱신된 변수 노드 연산값에 대한 연산을 생략할 수 있다.
도 5는, 530 동작 이후 540 동작이 수행되는 것으로 도시하였으나, 이는 설명을 위한 예시일 뿐이다. 도 5와 달리, 530 동작 및 540 동작은 동시에 수행되거나, 역순으로 수행될 수도 있다.
550 동작에서, 상기 채널 디코딩부 190은, 상기 변수 노드 연산값을 갱신할 수 있다. 상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 상기 k번째 레이어에 포함되는 체크 노드들과 연결된 변수 노드들에 대한 변수 노드 연산값들을 갱신할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드 연산값들을 갱신하기 위하여, i번째 갱신된 변수 노드 연산값들을 이용할 수 있다.
560 동작에서, 상기 채널 디코딩부 190은, 변수 노드의 우도값을 갱신할 수 있다. 상기 변수 노드의 우도값은, 상기 변수 노드에 해당하는 비트의 APP LLR값을 지칭한다. 상기 채널 디코딩부 190은, i번째 반복 디코딩 동작 중, 상기 k번째 레이어에 대응하는 변수 노드들에 포함되는 변수 노드의 우도값을 갱신할 수 있다. 상기 k번째 레이어에 대응하는 변수 노드들은 상기 k번째 레이어에 포함되는 체크 노드들과 연결된 변수 노드들이다. 상기 채널 디코딩부 190은, 상기 우도값을 갱신하기 위하여, i번째 갱신된 체크 노드 연산값들을 이용할 수 있다.
이하 설명에서는, 570 동작 이후 580 동작을 수행하는 것으로 설명하였으나, 이는 설명을 위한 것일 뿐이다. 도 5와 달리, 570 동작 및 580 동작은 동시에 수행되거나, 역순으로 수행될 수도 있다.
570 동작에서, 상기 채널 디코딩부 190은, 변수 노드를 비활성화할 것인지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, k번째 레이어에 대응하는 변수 노드들에 포함되는 변수 노드를 비활성화할 것인지 여부를 판단할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드의 차수를 결정할 수 있다. 예를 들어, 상기 변수 노드와 연결되는 체크 노드의 수가 3개인 경우, 상기 채널 디코딩부 190은, 상기 변수 노드의 차수를 3으로 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 메모리로부터 상기 변수 노드의 차수에 따른 변수 노드 임계값을 획득할 수 있다. 상기 메모리는 차수들 각각에 대한 임계값을 저장할 수 있다. 예를 들어, 상기 메모리는 저장된 패리티 행렬의 변수 노드의 차수가 1차, 2차, 3차로만 이루어진 구조인 경우, 3개의 임계값을 저장할 수 있다. 상기 채널 디코딩부 190은, 상기 560 동작에서 갱신한 변수 노드의 우도값과 상기 변수 노드의 차수에 따른 변수 노드 임계값을 비교할 수 있다. 상기 채널 디코딩부 190은, 상기 변수 노드의 우도값이 상기 변수 노드 임계값보다 큰 경우, 상기 변수 노드를 비활성화할 수 있다.
580 동작에서, 상기 채널 디코딩부 190은, 디코딩 동작이 성공하였는지 여부를 판단할 수 있다.
상기 채널 디코딩부 190은, 상기 560 동작에서 갱신한 변수 노드의 우도값에 따라, 상기 채널 디코딩부 190에 입력된 비트열을 디코딩할 수 있다. 예를 들어, 부호어에 대해 입력된 비트열이 7비트의 비트열이고, 상기 560 동작에서 갱신한 변수 노드의 우도값이 {1.3, 3.2, -2.1, -2.3, -33.2, -13.4, 0.7}인 경우, 상기 채널 디코딩부 190은 디코딩 비트열을 {1, 1, 0, 0, 0, 0, 1}로 결정할 수 있다. 상기 디코딩 비트열은, 반복 디코딩 동작이 반복됨에 따라, 갱신되는 비트열이다.
상기 채널 디코딩부 190은, 상기 디코딩 비트열이 디코딩 성공 조건을 만족하는 지 여부를 판단할 수 있다. 상기 채널 디코딩부 190은, 상기 디코딩 성공 조건을 판단하기 위하여, 메모리에 저장된 패티리 행렬을 이용할 수 있다. 구체적으로, 상기 채널 디코딩부 190은 상기 디코딩 비트열이 상기 수학식 2를 만족하는지 여부를 판단할 수 있다. 다시 말해서, 상기 채널 디코딩부 190은 체크 노드 각각에 대한 신드롬 비트가 0인지 여부를 판단할 수 있다.
상기 디코딩 비트열이 상기 디코딩 성공 조건을 만족하는 경우, 상기 채널 디코딩부 190은 디코딩 동작 전체를 종료할 수 있다. 상기 채널 디코딩부 190은, 상기 디코딩 비트열을 수신한 부호어로 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 결정된 부호어를 출력할 수 있다. 상기 디코딩 비트열이 상기 디코딩 성공 조건을 만족하지 않는 경우, 상기 채널 디코딩부 190은 585 동작을 수행할 수 있다.
585 동작에서, 상기 채널 디코딩부 190은, 체크 노드를 비활성화할 것인지 여부를 결정할 수 있다. 상기 채널 디코딩부 190은, 상기 540 동작에서, 상기 체크 노드가 제1 조건을 충족하지 않는 경우, 상기 체크 노드를 활성 상태로 유지할 수 있다. 이후, 상기 채널 디코딩부 190은 590 동작을 수행할 수 있다. 상기 채널 디코딩부 190은, 상기 540 동작에서, 상기 체크 노드가 제1 조건을 충족하는 경우, 상기 체크 노드가 제2 조건을 충족하는지 여부를 판단할 수 있다.
상기 채널 디코딩부 190은, 상기 체크 노드의 신드롬 비트가 0인 경우, 상기 제2 조건을 충족한다고 판단할 수 있다. 상기 채널 디코딩부 190은, 상기 580 동작에서 수행한 결과를 활용하여, 상기 체크 노드의 신드롬 비트가 0인지 여부를 판단할 수 있다. 상기 채널 디코딩부 190은, 상기 동작 540의 상기 체크 노드가 제1 조건을 충족하고, 상기 체크 노드의 신드롬 비트가 0인 경우, 상기 체크 노드를 비활성화 시킬 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 3번째 체크 노드에 대한 신드롬 비트가 0이고, 상기 3번째 체크 노드가 수학식 9를 만족하는 경우, 상기 체크 노드를 비활성화 시킬 수 있다. 이후, 상기 채널 디코딩부 190은 590 동작을 수행할 수 있다.
상기 채널 디코딩부 190은, 상기 체크 노드의 신드롬 비트가 0이 아닌 경우, 상기 체크 노드를 활성 상태로 유지할 수 있다. 이후, 상기 채널 디코딩부 190은 590 동작을 수행할 수 있다.
590 동작에서, 상기 채널 디코딩부 190은, 반복 파라미터를 설정할 수 있다. 상기 반복 파라미터는 레이어의 번호 또는 반복 디코딩 동작의 수행 횟수일 수 있다.
상기 채널 디코딩부 190은, 디코딩을 수행할 레이어를 설정할 수 있다. 예를 들어, 상기 채널 디코딩부 190은, 4번째 반복 디코딩 동작 수행 중, 1번째 레이어에 대한 디코딩 동작을 수행한 경우, 다음 반복 동작을 수행할 레이어의 번호를 2번째 레이어의 번호로 변경할 수 있다. 상기 채널 디코딩부 190은, 이후, 4번째 반복 디코딩 동작시, 2번째 레이어에 대하여 디코딩을 수행할 수 있다.
상기 채널 디코딩부 190은, 반복 디코딩 동작의 수행 횟수를 설정할 수 있다. i번째 반복 디코딩 동작은, 모든 레이어에 대하여 변수 노드 연산값, 체크 노드 연산값, 변수 노드의 우도값을 갱신하는 동작을 i번 반복하는 것을 의미한다. 예를 들어, 상기 채널 디코딩부 190은, 4번째 반복 디코딩 동작 중, 마지막 레이어에 대한 디코딩 동작을 수행한 경우, 반복 디코딩 동작의 횟수를 5로 설정할 수 있다. 상기 채널 디코딩부 190은, 이후 5번째 반복 디코딩 동작시, 첫번째 레이어에 대하여 디코딩을 수행할 수 있다.
상기 도 2 내지 도 5의 채널 디코딩부 190의 동작에 대한 설명에서는, 하나의 반복 디코딩 동작에서, 상기 채널 디코딩부 190이 체크 노드 연산값을 갱신하고, 변수 노드 연산값을 갱신하고, 이후, 변수 노드의 우도값을 갱신하는 순서로 설명하였으나, 이러한 기재에 한정되지 않는다. 즉, 동작의 순서는 하나의 반복 디코딩 동작에서 변경될 수도 있다.
다양한 실시 예들에 따른, LDPC 코드에 대한 반복 디코딩 기법을 수행하는 장치의 동작 방법은, 제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된(encoded) 신호를 수신하는 과정과, 상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 과정을 포함할 수 있다.
다양한 실시 예들에 따를 때, 상기 데이터를 생성하는 과정은, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제1 레이어(layer)에 대응하는 제1 변수 노드들에서 상기 제1 레이어에 포함되는 제1 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신(update)하는 과정과, 상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제1 체크 노드들에서 상기 제1 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하는 과정과, 상기 갱신된 적어도 하나의 체크 노드 연산값에 기반하여, 상기 복수의 변수 노드들 각각의 우도값을 z 번째 갱신하는 과정과, 상기 갱신된 우도값에 기반하여 상기 데이터를 생성하는 과정을 포함할 수 있다. 상기 제1 변수 노드들 중 상기 적어도 하나의 변수 노드에 포함되는 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신될 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 임계값은, 반복 횟수에 대한, 상기 제1 차수를 가지는 노드들 각각의 상호 정보량(mutual information, MI)의 평균값의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 데이터를 생성하는 과정은, 상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 체크 노드 임계값에 기반하여, 상기 제1 체크 노드들 중 적어도 하나의 체크 노드를 비활성화시키는 과정을 더 포함하고, 상기 비활성화된 적어도 하나의 체크 노드 각각에 대한 i+1 번째 갱신되는 체크 노드 연산값은, z+1번째 우도값 갱신 시, 상기 적어도 하나의 체크 노드 각각에 대한 i번째 갱신된 체크 노드 연산값일 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 레이어에 대응하는 체크 노드 임계값은, 반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 데이터를 생성하는 과정은, 상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 활성 임계값에 기반하여, 상기 제1 변수 노드들 중에서 상기 적어도 하나의 변수 노드에 포함되는 변수 노드를 재활성화 시키는 과정과, i+1번째 반복 디코딩시, i+1번째 갱신되는 체크 노드 연산값에 기반하여 상기 상기 재활성화된 변수 노드에 대한 변수 노드 연산값을 i+1번째 갱신하는 과정을 더 포함할 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 레이어에 대응하는 체크 노드 임계값은, 반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 적어도 하나의 변수 노드는 상기 제1 차수를 가지는 제3 변수 노드를 포함하고, 상기 제3 변수 노드의 우도값은 상기 제1 임계값보다 큰 값을 가질 수 있다.
다양한 실시 예들에 따를 때, 상기 데이터를 생성하는 과정은, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제2 레이어에 대응하는 제2 변수 노드들 각각에서 상기 제2 레이어에 포함되는 제2 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신하는 과정과, 상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제2 체크 노드들에서 상기 제2 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하는 과정과, 상기 갱신된 체크 노드 연산값에 기반하여 상기 복수의 변수 노드들 각각의 우도값을 z+1 번째 갱신하는 과정과, 상기 갱신된 우도값에 기반하여 상기 데이터를 생성하는 과정을 더 포함하고, 상기 제2 변수 노드들 중 상기 적어도 하나의 변수 노드에 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신되는 방법.
다양한 실시 예들에 따를 때, 상기 제1 임계값 및 상기 제2 임계값은 PEXIT 차트 기법에 기반하여 결정될 수 있다.
다양한 실시 예들에 따른 변수 노드 임계값, 체크 노드 임계값, 또는 재활성 임계값은 LDPC 코드의 인코딩 및 디코딩에 사용되는 패리티 행렬에 따라 적응적으로(adaptively) 결정될 수 있다. 상기 임계값들을 결정하기 위하여, 다양한 기법이 이용될 수 있다. 예를 들어, 정확한 임계치를 결정하기 위하여, MET(multi-edge type) density evolution 기법이 이용될 수 있다. 다른 예를 들어, RCA-Density Evolution 기법이 이용될 수 있다. 또 다른 예를 들어, 복잡도 감소를 위하여 PEXIT(Protograph EXIT) 차트 기법이 이용될 수도 있다. 이하, 상기 임계값들을 결정하기 위한 방법으로 PEXIT 차트 기법이 예로 설명되나, 본 개시의 다양한 실시 예들은 이러한 예에 한정되지 않는다.
이하 설명에서, 전자 장치가 상기 PEXIT 차트 기법을 수행하는 것으로 설명한다. 일부 실시 예들에서, 상기 전자 장치는 상기 도 1의 수신 장치 160과 별도의 하드웨어로 구성될 수 있다. 다른 일부 실시 예들에서, 상기 전자 장치는 상기 도 1의 수신 장치 160과 하나의 하드웨어로 구성될 수도 있다.
다양한 실시 예들에 따를 때, 상기 전자 장치는 상호 정보(mutual information, MI)를 이용하여, 임계값들을 결정할 수 있다. 상기 전자 장치는 패리티 행렬로부터 기본 행렬(base matrix, B)을 결정할 수 있다. 상기 기본 행렬은 상기 패리티 행렬에서 비슷한 특성을 갖는 변수 노드와 체크 노드를 간략히 표시한 행렬이다. 상기 패리티 행렬은 M개의 변수 노드 그룹과 N개의 체크 노드 그룹을 가질 수 있다. 상기 전자 장치는 상기 기본 행렬의 각 원소에 대한 상호 정보량을 이용하여, 임계값들을 결정할 수 있다. 구체적인, 임계값 결정을 위한, 상호 정보량을 결정하는 동작은 하기와 같다.
상기 전자 장치는 채널을 통하여 신호를 수신할 수 있다. 상기 전자 장치는 수신한 신호에 기반하여, 상기 채널에 대한 상호 정보량을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식에 기반하여 상기 채널에 대한 상호 정보량을 결정할 수 있다.
Figure pat00061
I ch 는 채널에 대한 상호 정보량을 나타낸다. SNR TH 는 LDPC 코드에서 사용되는 SNR(signal-to-noise ratio)의 임계값을 나타내고, R은 신호의 부호율(code rate)을 나타낸다.
Figure pat00062
는 0과 1의 확률이 동일한 이진 랜덤 변수 X와, 평균이 X이고 분산이
Figure pat00063
인 가우시안 랜덤 변수 간의 상호 정보량에 대한 함수이다.
상기 전자 장치는 상기 채널에 의한 상호 정보량과 체크 노드와 연결된 변수 노드들로부터 받은 변수 노드 상호 정보량(VN MI)에 기반하여 하기의 수학식 16과 같이, 상기 체크 노드에서 변수 노드로 전달하는 체크 노드 상호 정보량(CN MI)을 결정할 수 있다. 이 때, 상기 전자 장치는,
Figure pat00064
를 채널에 대한 상호 정보량인 I ch 로 설정할 수 있다.
Figure pat00065
는 초기 반복 디코딩 동작 수행시 기본 행렬 B의 j행에 포함되는 변수 노드들에서 i행에 포함되는 체크 노드들로 전달되는 우도값의 상호 정보량을 나타낸다.
Figure pat00066
Figure pat00067
l 번째 반복 디코딩 동작 수행 시, 기본 행렬 B의 i행에 포함되는 체크 노드들에서 j열에 포함되는 변수 노드들로 전달되는 우도값의 상호 정보량을 나타낸다. 상기 상호 정보량은 체크 노드 상호 정보량으로 지칭될 수 있다. b i,s 는 상기 기본 행렬 B에서 i행 s열에 해당하는 원소를 의미한다. l은 반복 디코딩 동작의 반복 횟수를 나타낸다. N은 상기 기본 행렬 B의 열의 개수를 나타낸다. 즉, 상기 N은 변수 노드 그룹의 개수를 나타낸다.
상기 전자 장치는 상기 수학식 16에 따라 결정된 체크 노드 상호 정보량에 기반하여, 변수 노드 상호 정보량을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식에 따라 변수 노드 상호 정보량을 결정할 수 있다.
Figure pat00068
Figure pat00069
l 번째 반복 디코딩 동작 수행 시, 기본 행렬 B의 j행에 포함되는 변수 노드들에서 i행에 포함되는 체크 노드들로 전달되는 우도값의 상호 정보량을 나타낸다. 상기 상호 정보량은 변수 노드 상호 정보량으로 지칭될 수 있다. M은 상기 기본 행렬 B의 행의 개수를 나타낸다. 즉, 상기 M은 체크 노드 그룹의 개수를 나타낸다.
상기 전자 장치는 상기 수학식 17에 따라 결정된 변수 노드 상호 정보량에 기반하여, 변수 노드의 APP 상호 정보량(APP MI)을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식 18에 따라 상기 변수 노드의 APP 상호 정보량을 결정할 수 있다. 상기 변수 노드는 기본 행렬 B의 j열에 포함되는 변수 노드일 수 있다.
Figure pat00070
Figure pat00071
l 번째 반복 디코딩 동작 수행 시, 기본 행렬 B의 j행에 포함되는 변수 노드들의 우도값의 상호 정보량을 나타낸다. 상기 우도값은 APP LLR 값일 수 있다. 상기 상호 정보량은 APP 상호 정보량으로 지칭될 수 있다.
이하, 도 6 내지 도 8은 상기 방식으로 결정되는 체크 노드 상호 정보량, 변수 노드 상호 정보량, APP 상호 정보량에 기반하여, 변수 노드 임계값, 체크 노드 임계값, 또는 재활성 임계값을 결정하는 기법을 설명한다.
도 6은 본 개시의 다양한 실시 예들에 따른 변수 노드 임계값 결정의 예를 도시한다.
도 6을 참조하면, 그래프 600은 반복 디코딩 동작의 반복 횟수에 따른 APP 상호 정보량을 도시한다. 상기 그래프 600에서, 가로축 605는 반복 횟수를 가리키고, 세로축 610은 APP 상호 정보량을 가리킨다. 상기 그래프 600은 변수 노드의 차수가 1일 때에 대응하는 라인 621, 변수 노드의 차수가 2일 때에 대응하는 라인 623, 변수 노드의 차수가 3일 때에 대응하는 라인 625, 변수 노드의 차수가 4일 때에 대응하는 라인 627을 포함한다. 상기 라인 621 내지 627은 상기 수학식 18에 기반하여 결정된다. 예를 들어, 상기 라인 621은 차수가 1인 모든 변수 노드들의 APP 상호 정보량의 평균 값이다. 다른 예를 들어, 상기 라인 627은 차수가 4인 모든 변수 노드들의 APP 상호 정보량의 평균값이다. 변수 노드의 차수가 달라짐에 따라, 상기 전자 장치는 변수 노드 비활성화 동작을 수행하는 경우 다른 변수 노드 임계값을 이용할 수 있다.
본 개시의 다양한 실시 예들에 따른, 전자 장치는 APP 상호 정보량과 반복 횟수의 관계, 및 변수 노드의 차수에 따라 변수 노드 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식 19 및 20에 기반하여 변수 노드 임계값을 결정할 수 있다.
Figure pat00072
Figure pat00073
은 l번째 반복 디코딩 동작 중, n번째 변수 노드의 차수를 갖는 변수 노드들에 대한 APP 상호 정보량의 평균값을 나타낸다.
Figure pat00074
는 반복 디코딩 동작의 반복 횟수에 대한 상기
Figure pat00075
의 변화량을 최대가 되게 하는 반복 횟수를 나타낸다. 상기 반복 횟수는 정수일 수 있다. 상기 반복 횟수는 제1 임계 반복 횟수로 지칭될 수 있다.
상기 제1 임계 반복 횟수는 상기 그래프 600에 포함된 라인들 각각에서 접선의 기울기가 최대가 되도록 하는 반복 횟수의 올림값일 수 있다. 예를 들어, 접선의 기울기가 최대가 되도록 하는 반복 횟수가 231.7번인 경우, 상기 전자 장치는 상기 제1 임계 반복 횟수를 232번으로 결정할 수 있다. 그래프 600을 참조하면, 상기 전자 장치는 1차에 대한 제1 임계 반복 횟수를 반복 횟수 631로 결정할 수 있다. 상기 전자 장치는 2차에 대한 제1 임계 반복 횟수를 반복 횟수 633으로 결정할 수 있다. 상기 전자 장치는 3차에 대한 제1 임계 반복 횟수를 반복 횟수 635으로 결정할 수 있다. 상기 전자 장치는 4차에 대한 제1 임계 반복 횟수를 반복 횟수 637으로 결정할 수 있다. 즉, 상기 전자 장치는 차수마다 다른 제1 임계 반복 횟수를 결정할 수 있다.
상기 전자 장치는 상기 제1 임계 반복 횟수
Figure pat00076
을 결정한 뒤, 하기의 수학식에 따라 변수 노드 임계값을 결정할 수 있다.
Figure pat00077
Figure pat00078
는 n번째 변수 노드의 차수에 대한 변수 노드 임계값을 나타낸다.
상기 전자 장치는 패리티 행렬의 변수 노드들이 갖는 차수들 각각에 대하여 변수 노드 임계값을 결정할 수 있다. 상기 전자 장치는 상기 결정되는 변수 노드 임계값들을 메모리에 저장할 수 있다.
도 7은 본 개시의 다양한 실시 예들에 따른 체크 노드 임계값 및 재활성 임계값 결정의 예를 도시한다.
도 7을 참조하면, 그래프 700은 반복 디코딩 동작의 반복 횟수에 대한 체크 노드 상호 정보량을 도시한다. 상기 그래프 700에서, 가로축 705는 반복 횟수를 가리키고, 세로축은 상기 체크 노드 상호 정보량을 가리킨다. 상기 그래프 700은 레이어 1에 대응하는 라인 721, 레이어 2에 대응하는 라인 722, 레이어 3에 대응하는 라인 723, 레이어 4에 대응하는 라인 724, 레이어 5에 대응하는 라인 725, 레이어 6에 대응하는 라인 726, 레이어 7에 대응하는 라인 727, 레이어 8에 대응하는 라인 728을 포함한다. 상기 라인 721 내지 728은 상기 수학식 16에 기반하여 결정된다. 예를 들어, 상기 라인 722은 레이어 2에 포함되는 모든 체크 노드들의 체크 노드 상호 정보량의 평균값이다. 다른 예를 들어, 상기 라인 727은 레이어 7에 포함되는 모든 체크 노드들의 체크 노드 상호 정보량의 평균값이다. 체크 노드가 포함되는 레이어가 달라짐에 따라, 전자 장치는 체크 노드 비활성화 또는 변수 노드 재활성화 동작을 수행하는 경우, 다른 체크 노드 임계값 또는 다른 재활성 임계값을 이용할 수 있다.
다양한 실시 예들에 따른, 전자 장치는 체크 노드 상호 정보량과 반복 횟수의 관계, 및 레이어에 따라 체크 노드 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식 21 및 22에 기반하여 체크 노드 임계값을 결정할 수 있다.
Figure pat00079
Figure pat00080
은 l번째 반복 디코딩 동작 중, k번째 레이어에 포함되는 체크 노드들의 체크 노드 상호 정보량의 평균값을 나타낸다.
Figure pat00081
는 반복 디코딩 동작의 반복 횟수에 대한 상기
Figure pat00082
의 변화량을 최대가 되게 하는 반복 횟수를 나타낸다. 상기 반복 횟수는 정수일 수 있다. 상기 반복 횟수는 제2 임계 반복 횟수로 지칭될 수 있다.
상기 제2 임계 반복 횟수는 상기 그래프 700에서 포함된 라인들 각각에서 접선의 기울기가 최대가 되도록 하는 반복 횟수의 올림값일 수 있다. 예를 들어, 접선의 기울기가 최대가 되도록 하는 반복 횟수가 333.2번인 경우, 상기 전자 장치는 상기 제2 임계 반복 횟수를 334번으로 결정할 수 있다. 그래프 700을 참조하면, 상기 전자 장치는 2번째 레이어에 대한 제2 임계 반복 횟수를 반복 횟수 742로 결정할 수 있다.
상기 전자 장치는,
Figure pat00083
를 결정한 뒤, 하기의 수학식에 따라, 체크 노드 임계값을 결정할 수 있다.
Figure pat00084
Figure pat00085
는 k번째 레이어에 포함되는 체크 노드에 대한 체크 노드 임계값을 나타낸다.
본 개시의 다양한 실시 예들에 따른, 전자 장치는 체크 노드 상호 정보량과 반복 횟수의 관계, 및 레이어에 따라 재활성 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 하기의 수학식 23 및 24에 기반하여 재활성 임계값을 결정할 수 있다.
Figure pat00086
Figure pat00087
은 l번째 반복 디코딩 동작 중, k번째 레이어에 포함되는 체크 노드들의 체크 노드 상호 정보량의 평균값을 나타낸다.
Figure pat00088
은 반복 디코딩 동작의 반복 횟수에 대한 상기
Figure pat00089
의 변화량을 최대가 되게 하는 반복 횟수를 나타낸다. 상기 반복 횟수는 정수일 수 있다.
Figure pat00090
Figure pat00091
에서 1회를 감산한 값일 수 있다. 상기
Figure pat00092
은 제3 임계 반복 횟수로 지칭될 수 있다.
상기 제3 임계 반복 횟수는 상기 그래프 700에서 포함된 라인들 각각에서 접선의 기울기가 최대가 되도록 하는 반복 횟수의 내림값일 수 있다. 예를 들어, 접선의 기울기가 최대가 되도록 하는 반복 횟수가 547.1번인 경우, 상기 전자 장치는 상기 제3 임계 반복 횟수를 547번으로 결정할 수 있다. 그래프 700을 참조하면, 상기 전자 장치는 2번째 레이어에 대한 제3 임계 반복 횟수를 반복 횟수 732로 결정할 수 있다.
상기 전자 장치는,
Figure pat00093
를 결정한 뒤, 하기의 수학식에 따라, 재활성 임계값을 결정할 수 있다.
Figure pat00094
Figure pat00095
는 k번째 레이어에 포함되는 체크 노드와 연결되는 변수 노드들의 재활성을 위한, 재활성 임계값을 나타낸다.
상기 전자 장치는 패리티 행렬을 구분하는 레이어의 수만큼 변수 체크 노드 임계값, 재활성 임계값을 결정할 수 있다. 상기 전자 장치는 상기 결정되는 체크 노드 임계값들 및 상기 재활성 임계값들을 메모리에 저장할 수 있다.
도 8은 본 개시의 다양한 실시 예들에 따른 임계값 정보를 결정하는 동작의 흐름을 도시한다. 상기 임계값 정보는 상기 도 6의 변수 노드 임계값, 상기 도 7의 체크 노드 임계값, 재활성 임계값에 관한 정보를 포함할 수 있다.
도 8을 참조하면, 810 동작에서, 전자 장치는 패리티 행렬로부터 기본 행렬을 검출할 수 있다. 상기 패리티 행렬은 송신 장치 110의 인코딩 및 수신 장치 160의 디코딩 동작을 위하여 설정되는 패리티 행렬일 수 있다. 상기 기본 행렬은 상기 패리티 행렬에 기반하여 검출되는 행렬이다. 예를 들어, 상기 전자 장치는, 상기 패리티 행렬에 포함되는 단위 행렬, 0 행렬(zero matrix), 단위 행렬에서의 시프팅 팩터(shifting factor)를 이용하여, 기본 행렬을 검출할 수 있다. 일부 실시 예들에서, 상기 전자 장치는 패리티 행렬에 포함되는 42 x 42 차원의 행렬을 상기 기본 행렬 내의 하나의 원소(element)로 나타낼 수 있다.
820 동작에서, 상기 전자 장치는 PEXIT 차트를 이용하여 상호 정보량을 검출할 수 있다. 상기 전자 장치는 810 동작에서 검출한 기본 행렬에 기반하여, 체크 노드 상호 정보량, 변수 노드 상호 정보량 APP 상호 정보량을 결정할 수 있다. 구체적으로, 상기 전자 장치 810 동작은, 수학식 16 내지 18을 이용하여, 체크 노드 상호 정보량, 변수 노드 상호 정보량 APP 상호 정보량을 결정할 수 있다. 상기 전자 장치는 상기 PEXIT 차트를 통하여, 반복 횟수 및 변수 노드의 차수에 따른, APP 상호 정보량의 평균값을 검출할 수 있다. 또한, 상기 전자 장치는 상기 PEXIT 차트를 통하여, 반복 횟수 및 체크 노드의 레이어 인덱스에 따른, 체크 노드 상호 정보량의 평균값을 검출할 수도 있다.
830 동작에서, 상기 전자 장치는 상호 정보량의 변화율을 최대로 하는 반복 횟수를 결정할 수 있다. 상기 전자 장치는 APP 상호 정보량의 평균값의 변화율을 최대로 하는 반복 횟수를 결정할 수 있다. 상기 반복 횟수는 제1 임계 반복 횟수일 수 있다. 구체적으로, 상기 전자 장치는 상기 수학식 19에 따라 상기 제1 임계 반복 횟수를 결정할 수 있다.
또한, 상기 전자 장치는 체크 노드 상호 정보량의 평균값을 변화율을 최대로 하는 반복 횟수를 결정할 수 있다. 상기 반복 횟수는 제2 임계 반복 횟수일 수 있다. 구체적으로, 상기 전자 장치는 상기 수학식 21에 따라, 상기 제2 임계 반복 횟수를 결정할 수 있다.
또한, 상기 전자 장치는 체크 노드 상호 정보량의 평균값을 변화율을 최대로 하는 반복 횟수로부터 제3 임계 반복 횟수를 결정할 수 있다. 구체적으로, 상기 전자 장치는 상기 수학식 23에 따라, 상기 제3 임계 반복 횟수를 결정할 수도 있다.
840 동작에서, 상기 전자 장치는 상기 결정되는 반복 횟수에 기반하여 임계값 정보를 결정할 수 있다. 상기 임계값 정보는 차수에 따른 변수 노드 임계값들, 레이어에 따른 체크 노드 임계값들, 레이어에 따른 재활성 노드 임계값들을 가리키는 정보일 수 있다.
상기 전자 장치는 상기 제1 임계 반복 횟수에 따라 변수 노드 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 수학식 20에 따라, 상기 변수 노드 임계값을 결정할 수 있다. 상기 변수 노드 임계값은, 변수 노드의 차수에 따라 각각 달리 결정될 수 있다.
상기 전자 장치는 상기 제2 임계 반복 횟수에 따라 체크 노드 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 수학식 22에 따라, 상기 체크 노드 임계값을 결정할 수 있다. 상기 체크 노드 임계값은, 체크 노드가 포함되는 레이어에 따라 각각 달리 결정될 수 있다.
상기 전자 장치는 상기 제3 임계 반복 횟수에 따라 재활성 임계값을 결정할 수 있다. 구체적으로, 상기 전자 장치는 수학식 24에 따라, 상기 재활성 임계값을 결정할 수 있다. 상기 재활성 임계값은, 변수 노드와 연결된 체크 노드에 해당하는 레이어에 따라 각각 달리 결정될 수 있다.
상기 전자 장치는 결정되는 임계값들을 메모리에 저장할 수 있다. 상기 임계값들은, 상기 도 1의 채널 디코딩부 190의 연산에 이용될 수 있다. 일부 실시 예들에서, 상기 메모리는 상기 도 1의 수신 장치 160과 별도의 하드웨어로 구성될 수 있다. 상기 메모리는 상기 수신 장치 160에 포함될 수도 있다.
도 9는 본 개시의 다양한 실시 예들에 따른 채널 디코딩부의 기능적 구성의 예를 도시한다. 상기 채널 디코딩부는 상기 도 1의 채널 디코딩부 190일 수 있다.
도 9를 참조하면, 상기 채널 디코딩부 190은 연산부 910 및 판단부 920을 포함할 수 있다. 일부 실시 예들에서, 메모리 930은 상기 채널 디코딩부 190에 포함될 수 있다. 다른 일부 실시 예들에서, 상기 메모리 930은 수신 장치 160 내의 다른 하드웨어 구성일 수 있다. 또 다른 일부 실시 예들에서, 상기 메모리 930은 수신 장치 160과 별도의 하드웨어 장치일 수도 있다. 이하, 상기 메모리 930은 상기 채널 디코딩부 190과 별도의 하드웨어인 것으로 설명하나, 이러한 기재에 한정되지 않는다.
상기 연산부 910은, 초기값을 설정할 수 있다. 예를 들어, 상기 연산부 910은, 체크 노드 연산값의 초기값, 변수 노드 연산값의 초기값, 변수 노드의 우도값의 초기값을 설정할 수 있다.
상기 연산부 910은, 체크 노드 연산값을 갱신할 수 있다. 상기 연산부 910은, 상기 체크 노드 연산값을 갱신하기 위하여 변수 노드 연산값들을 획득할 수 있다.
상기 연산부 910은, 획득된 변수 노드 연산값들에 기반하여, 체크 노드의 비활성화 여부에 대한 제1 조건의 충족 여부를 결정할 수 있다. 상기 연산부 910은, 상기 체크 노드 연산값을 갱신하는 경우, 변수 노드 연산값들을 획득함으로써, 중첩적인 연산을 피할 수 있다. 상기 연산부 910은 상기 제1 조건이 만족하는 경우, 상기 체크 노드의 신드롬 비트가 0인지 여부를 판단하여 제2 조건이 충족되는지 여부를 결정할 수 있다. 상기 연산부 910은, 상기 체크 노드를 비활성화 시키는 경우, 상기 체크 노드에 대한 갱신을 생략할 수 있다. 따라서, 상기 연산부 910은, i+1번째 반복 디코딩 동작 중, 체크 노드 연산값 갱신시 i번째 반복 디코딩 동작 수행시 갱신한 체크 노드 연산값을 이용할 수 있다. 이러한 경우, 상기 연산부 910은 메모리 930에 저장되는 체크 노드 연산값 정보 933을 활용하여 체크 노드 연산값을 갱신할 수 있다.
상기 연산부 910은, 상기 획득된 변수 노드 연산값들에 기반하여, 변수 노드를 재활성화할 것인지 여부를 결정할 수도 있다. 상기 연산부 910은, 상기 체크 노드의 체크 노드 연산값 갱신을 위하여, 변수 노드 연산값들을 획득함으로써, 상기 체크 노드와 연결되는 변수 노드들을 재활성화할 것인지 여부를 판단하는 데 필요한 연산을 생략할 수 있다. 상기 연산부 910은 상기 수학식 12에 따라 변수 노드를 재활성화할 것인지 여부를 결정할 수 있다. 상기 연산부 910은 상기 체크 노드가 포함되는 레이어에 따라 다른 체크 노드 임계값을 적용할 수 있다. 상기 연산부 910은 상기 재활성화 여부 결정시 체크 노드가 어떤 레이어에 있는지 여부를 판단할 수 있다. 상기 연산부 910은 상기 메모리 930으로부터 상기 체크 노드가 포함되는 레이어에 대한 체크 노드 임계값을 획득할 수 있다. 상기 연산부 910은 상기 획득된 체크 노드 임계값에 기반하여, 상기 체크 노드와 연결되는 변수 노드들 모두를 활성화 시킬지 여부를 결정할 수 있다. 이전 반복 디코딩 동작 중, 비활성화된 변수 노드의 경우, 상기 연산부 910은 상기 변수 노드를 재활성화할 수 있다. 이전 반복 디코딩 동작에서, 비활성화되지 않은 변수 노드들의 경우, 상기 연산부 910은 해당 변수 노드의 활성 상태를 유지할 수 있다. 상기 연산부 910은 레이어에 따라 다른 임계값을 적용함으로써, 불필요한 재활성화를 최소화시킬 수 있다.
상기 연산부 910은, 변수 노드 연산값을 갱신할 수 있다. 상기 연산부 910은, 상기 변수 노드 연산값을 갱신하기 위하여 체크 노드 연산값들을 획득할 수 있다.
상기 연산부 910은 획득된 체크 노드 연산값들에 기반하여, 변수 노드의 우도값을 갱신할 수 있다. 상기 우도값은 APP LLR값일 수 있다. 상기 연산부 910은, 상기 변수 노드의 갱신된 APP LLR값에 기반하여, 상기 변수 노드를 비활성화할것인지 여부를 결정할 수 있다. 상기 연산부 910은 패리티 행렬의 복수의 변수 노드들 중에서, 비활성화할 적어도 하나의 변수 노드를 결정할 수 있다. 상기 연산부 910은 상기 적어도 하나의 변수 노드를 비활성화함으로써, 연산량을 감소시킬 수 있다. 또한, 상기 연산부 910은 변수 노드의 차수에 따라 다른 변수 노드 임계값을 적용함으로써, 낮은 차수의 변수 노드에 대해서도 최적의 연산량 감소 효과를 얻을 수 있다.
상기 연산부 910은, 갱신된 변수 노드의 우도값에 따른, 비트열을 결정할 수 있다. 상기 연산부 910은 결정된 비트열이 송신 장치에서 송신한 부호어에 해당하는지 여부를 판단하도록, 상기 판단부 920에게 전달할 수 있다.
상기 판단부 920은, 상기 비트열이 디코딩 성공 조건을 만족하는지 여부를 결정할 수 있다. 상기 디코딩 성공 조건은 상기 수학식 2일 수 있다. 상기 판단부 920은, 상기 디코딩 성공 조건이 만족하는지 여부를 결정하기 위하여, 메모리 930에 저장된 패리티 행렬을 사용할 수 있다. 상기 판단부 920은 상기 패리티 행렬의 체크 노드들 각각에 대응하는 신드롬 비트가 0인지 여부를 판단할 수 있다. 상기 판단부 920은 모든 체크 노드들의 신드롬 비트들이 0인 경우, 상기 비트열이 상기 디코딩 성공 조건을 만족한다고 결정할 수 있다.
상기 비트열이 디코딩 성공 조건을 만족하는 경우, 상기 판단부 920은 상기 비트열에 대한 디코딩 동작을 종료할 수 있다. 상기 비트열이 디코딩 성공 조건을 만족하지 않는 경우, 상기 판단부 920은 상기 비트열에 대한 우도값을 다시 갱신하도록, 상기 연산부 910을 제어할 수 있다.
상기 메모리 930은 디코딩 연산 시 필요한 정보를 저장할 수 있다.
상기 메모리 930은 패리티 행렬 931을 저장할 수 있다. 상기 패리티 행렬 931은 미리 설정된 패리티 행렬일 수 있다. 상기 패리티 행렬 931은 송신 장치와의 협상(negotiation)을 통해 결정된 행렬일 수 있다. 상기 패리티 행렬 931은 송신 장치와 공유되는 행렬일 수 있다. 상기 패리티 행렬 931은 송신 장치에서 전달하는 부호어의 생성 행렬에 대한 패리티 행렬일 수 있다. 상기 패리티 행렬 931은 상기 연산부 910에서 체크 노드, 변수 노드, 엣지를 설정하는데 사용될 수 있다. 또한, 상기 패리티 행렬 931은 상기 판단부 920에서 디코딩 성공 조건의 만족 여부를 판단하는데 사용될 수도 있다.
상기 메모리 930은 체크 노드 연산값 정보 933을 포함할 수 있다. 상기 연산부 910은 변수 노드 연산값 갱신시, 체크 노드 연산값들을 획득할 수 있다. 이 때, 상기 메모리 930은 상기 획득된 체크 노드 연산값들을 상기 체크 노드 연산값 정보 933으로 저장할 수 있다. 상기 메모리 930은 상기 연산부 910이, 변수 노드 연산값을 갱신하거나, 다른 연산 동작을 수행하는 경우, 상기 체크 노드 연산값 정보 933을 출력할 수 있다.
도 9에서는 변수 노드 연산값 정보를 저장하지 않는 것으로 도시하였으나, 이는 예시를 위한 것이다. 도 9에 도시된 예와 달리, 상기 메모리 930은 변수 노드 연산값 정보를 저장할 수도 있다. 메모리 930에 저장되는 정보는 상기 연산부 910의 연산 순서에 따라 달리 결정될 수 있다.
상기 메모리 930은 APP LLR 정보 935를 포함할 수 있다. 상기 메모리 930은 변수 노드의 갱신되는 우도값, 즉, APP LLR값을 저장할 수 있다. 상기 APP LLR 정보 935는 반복 디코딩 동작, 레이어에 대한 디코딩 동작 등 APP LLR을 갱신할 때 마다 저장되는 APP LLR 값일 수 있다.
상기 메모리 930은 임계값 정보 937을 포함할 수 있다. 상기 임계값 정보 937은, 변수 노드의 차수에 따라 상기 변수 노드의 비활성화 여부를 결정하기 위한 변수 노드 임계값을 포함할 수 있다. IEEE 802.11ad에서 정의하고 있는 WiGig LDPC 코드일 경우, 양자화 레벨(quantization level)은 8비트일 수 있다. 임계값은 크기를 기준으로 결정되는 바, 부호 비트는 요구되지 않을 수 있다. 따라서, 임계값을 나타내기 위한 값은 7비트로 표현될 수 있다. 예를 들어, 패리티 행렬의 변수 노드들의 차수의 개수가 4개인 경우, 변수 노드 임계값들을 저장하기 위하여 28비트가 요구될 수 있다.
상기 임계값 정보 937은, 체크 노드의 레이어에 따라 상기 체크 노드의 비활성화 여부를 결정하기 위한 체크 노드 임계값을 포함할 수 있다. 상기 임계값 정보 937은, 체크 노드의 레이어에 따라 상기 체크 노드와 연결되는 변수 노드들의 활성화 여부를 결정하기 위한 재활성 임계값을 포함할 수도 있다. 예를 들어, 패리티 행렬에 포함되는 레이어가 8개인 경우, WiGig LDPC 코드에 대해, 상기 체크 노드 임계값을 저장하기 위하여, 56비트가 요구될 수 있다. 상기 재활성 임계값을 저장할 때도, 56비트가 요구될 수 있다. 따라서, 상기 체크 노드 임계값 및 변수 노드 임계값의 저장을 위하여, 총 112비트가 요구될 수 있다.
다양한 실시 예들에 따른, LDPC 코드에 대한 반복 디코딩 기법을 수행하는 장치는, 제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된 (encoded) 신호를 수신하는 수신부와, 상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 프로세서를 포함할 수 있다.
다양한 실시 예들에 따를 때, 상기 프로세서는, 상기 데이터를 생성하기 위하여, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제1 레이어(layer)에 대응하는 제1 변수 노드들에서 상기 제1 레이어에 포함되는 제1 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i번째 갱신(update)하고, 상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제1 체크 노드들에서 상기 제1 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i번째 갱신하고, 상기 갱신된 적어도 하나의 체크 노드 연산값에 기반하여, 상기 복수의 변수 노드들 각각의 우도값을 z번째 갱신하고, 상기 갱신된 우도값에 기반하여 상기 데이터를 생성하도록 구성되고, 상기 제1 변수 노드들 중 상기 적어도 하나의 변수 노드에 포함되는 변수 노드에서의 변수 노드 연산값은, i-1번째에서 갱신된 변수 노드 연산값으로 갱신될 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 임계값은, 반복 횟수에 대한, 상기 제1 차수를 가지는 노드들 각각의 상호 정보량(mutual information, MI)의 평균값의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 프로세서는, 상기 데이터를 생성하기 위하여, 상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 체크 노드 임계값에 기반하여, 상기 제1 체크 노드들 중 적어도 하나의 체크 노드를 비활성화시키도록 추가적으로 구성되고, 상기 비활성화된 적어도 하나의 체크 노드 각각에 대한 i+1 번째 갱신되는 체크 노드 연산값은, z+1번째 우도값 갱신 시, 상기 적어도 하나의 체크 노드 각각에 대한 i번째 갱신된 체크 노드 연산값일 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 레이어에 대응하는 체크 노드 임계값은, 반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 프로세서는, 상기 데이터를 생성하기 위하여, 상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 활성 임계값에 기반하여, 상기 제1 변수 노드들 중에서 상기 적어도 하나의 변수 노드에 포함되는 변수 노드를 재활성화 시키고, i+1번째 반복 디코딩시, i+1번째 갱신되는 체크 노드 연산값에 기반하여 상기 상기 재활성화된 변수 노드에 대한 변수 노드 연산값을 i+1번째 갱신하도록 추가적으로 구성될 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 레이어에 대응하는 체크 노드 임계값은, 반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정될 수 있다.
다양한 실시 예들에 따를 때, 상기 적어도 하나의 변수 노드는 상기 제1 차수를 가지는 제3 변수 노드를 포함하고, 상기 제3 변수 노드의 우도값은 상기 제1 임계값보다 큰 값을 가질 수 있다.
다양한 실시 예들에 따를 때, 상기 프로세서는, 상기 데이터를 생성하기 위하여, 상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제2 레이어에 대응하는 제2 변수 노드들 각각에서 상기 제2 레이어에 포함되는 제2 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신하고, 상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제2 체크 노드들에서 상기 제2 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하고, 상기 갱신된 체크 노드 연산값에 기반하여 상기 복수의 변수 노드들 각각의 우도값을 z+1 번째 갱신하고, 상기 갱신된 우도값에 기반하여 상기 데이터를 생성하도록 추가적으로 구성되고, 상기 제2 변수 노드들 중 상기 적어도 하나의 변수 노드에 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신될 수 있다.
다양한 실시 예들에 따를 때, 상기 제1 임계값 및 상기 제2 임계값은 PEXIT 차트 기법에 기반하여 결정될 수 있다.
도 10은 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 효과를 설명하기 위한 그래프를 도시한다. 상기 구조적 디코딩 기법은 LDPC 코드의 디코딩 기법이다. 상기 LDPC 코드는 QC-LDPC 코드일 수 있다. 상기 구조적 디코딩 기법은 QC-LDPC의 패리티 행렬의 구조를 반영하여 디코딩을 수행하는 기법일 수 있다.
도10a는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 그래프를 도시한다. 도 10a는 상기 구조적 디코딩 기법이 종래의 LDPC 코드의 디코딩 기법과 비교할 때, 성능 열화가 없음을 도시한다. 종래의 LDPC 코드의 디코딩 기법으로, 플러딩(flooding) 기법과 일반적인 LBP 디코딩 기법이 이용된다. 도 10a에서 도시하는 그래프들의 시뮬레이션(simulation) 환경은, 부호어의 길이는 672비트, 사용되는 변조 방식은 BPSK인 WiGig의 LDPC 코드 환경이다. 코드율은 1/2이다.
도 10a를 참조하면, 그래프 1010은 AWGN 채널에서 신호 품질에 따른 프레임 오류율(frame error rate, FER)을 나타낸다. 상기 신호 품질은 SNR값일 수 있다. 상기 그래프 1010에서, 가로축 1011은 SNR값을 나타내고, 세로축 1012는 상기 프레임 오류율을 나타낸다. 상기 그래프 1010은, 플러딩 기법에 대응하는 라인 1015-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1015-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1015-3을 포함한다.
상기 그래프 1010을 참조하면, 라인 1015-3은 다른 라인들 1015-1 및 1015-2와 차이가 미비함을 확인할 수 있다. 즉, 상기 구조적 디코딩 기법은 AWGN 채널에서 다른 디코딩 기법들에 비하여 성능 열화가 거의 없다.
그래프 1020은 페이딩 채널에서 신호 품질에 따른 프레임 오류율을 나타낸다. 상기 신호 품질은 SNR값일 수 있다. 상기 그래프 1020에서, 가로축 1021은 SNR값을 나타내고, 세로축 1022는 상기 프레임 오류율을 나타낸다. 상기 그래프 1020은, 플러딩 기법에 대응하는 라인 1025-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1025-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1025-3을 포함한다.
상기 그래프 1020을 참조하면, 라인 1025-3은 다른 라인들 1025-1 및 1025-2와 차이가 미비함을 확인할 수 있다. 즉, 상기 구조적 디코딩 기법은 페이딩 채널에서도 다른 디코딩 기법들에 비하여 성능 열화가 극히 적다.
도10b는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 다른 그래프를 도시한다. 도 10b는 상기 구조적 디코딩 기법이 종래의 LDPC 코드의 디코딩 기법과 비교할 때, AWGN 채널에서 연산량 감소 효과가 있음을 도시한다. 종래의 LDPC 코드의 디코딩 기법으로, 플러딩 기법과 일반적인 LBP 디코딩 기법이 이용된다. 도 10b에서 도시하는 그래프들의 시뮬레이션 환경은, 부호어의 길이는 672비트, 사용되는 변조 방식은 BPSK인, WiGig의 LDPC 코드 환경이다. 코드율은 1/2이다.
도 10b를 참조하면, 그래프 1030은 AWGN 채널에서 신호 품질에 따른 변수 노드에서의 연산량을 나타낸다. 상기 신호 품질은 SNR값일 수 있다. 그래프 1030은, 일반적인 LBP 디코딩 기법의 경우 변수 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1030에서, 가로축 1031은 SNR값을 나타내고, 세로축 1032는 상기 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1030은, 플러딩 기법에 대응하는 라인 1035-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1035-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1035-3을 포함한다. 상기 그래프 1030을 참조하면, SNR값이 2.2dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 구조적 디코딩 기법은 변수 노드의 연산량을 30프로 감소시킬 수 있다. SNR값이 2.4dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 상기 구조적 디코딩 기법은 변수 노드의 연산량을 33프로 감소시킬 수 있다.
그래프 1040은 AWGN 채널에서 SNR값에 따른 체크 노드에서의 연산량을 나타낸다. 그래프 1040은, 일반적인 LBP 디코딩 기법의 경우 체크 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 체크 노드에서의 연산량을 나타낸다. 상기 그래프 1040에서, 가로축 1041은 SNR값을 나타내고, 세로축 1042는 상기 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1040은, 플러딩 기법에 대응하는 라인 1045-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1045-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1045-3을 포함한다. 상기 그래프 1040을 참조하면, SNR값이 2.2dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 구조적 디코딩 기법은 체크 노드의 연산량을 10프로 감소시킬 수 있다. SNR값이 2.4dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 상기 구조적 디코딩 기법은 체크 노드의 연산량을 11프로 감소시킬 수 있다.
도10c는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 또 다른 그래프를 도시한다. 도 10c는 상기 구조적 디코딩 기법이 종래의 LDPC 코드의 디코딩 기법과 비교할 때, 페이딩 채널에서 연산량 감소 효과가 있음을 도시한다. 종래의 LDPC 코드의 디코딩 기법으로, 플러딩 기법과 일반적인 LBP 디코딩 기법이 이용된다. 도 10c에서 도시하는 그래프들의 시뮬레이션 환경은, 부호어의 길이는 672비트, 사용되는 변조 방식은 BPSK인, WiGig의 LDPC 코드 환경이다. 코드율은 1/2이다.
도 10c를 참조하면, 그래프 1050은 페이딩 채널에서 신호의 SNR값에 따른 변수 노드에서의 연산량을 나타낸다. 그래프 1050은, 일반적인 LBP 디코딩 기법의 경우 변수 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1050에서, 가로축 1051은 SNR값을 나타내고, 세로축 1052는 상기 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1050은, 플러딩 기법에 대응하는 라인 1055-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1055-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1055-3을 포함한다. 상기 그래프 1050을 참조하면, SNR값이 4.4dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 구조적 디코딩 기법은 변수 노드의 연산량을 20프로 감소시킬 수 있다. SNR값이 5dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 상기 구조적 디코딩 기법은 변수 노드의 연산량을 19프로 감소시킬 수 있다.
그래프 1060은 페이딩 채널에서 신호의 SNR값에 따른 체크 노드에서의 연산량을 나타낸다. 그래프 1060은, 일반적인 LBP 디코딩 기법의 경우 체크 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 체크 노드에서의 연산량을 나타낸다. 상기 그래프 1060에서, 가로축 1061은 SNR값을 나타내고, 세로축 1062는 상기 변수 노드에서의 복잡도를 나타낸다. 상기 그래프 1060은, 플러딩 기법에 대응하는 라인 1065-1, 일반적인 LBP 디코딩 기법에 대응하는 라인 1065-2, 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법에 대응하는 라인 1065-3을 포함한다. 상기 그래프 1060을 참조하면, SNR값이 4.4dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 구조적 디코딩 기법은 체크 노드의 연산량을 4프로 감소시킬 수 있다. SNR값이 5dB인 경우, 일반적인 LBP 디코딩 기법에 비하여, 상기 구조적 디코딩 기법은 체크 노드의 연산량을 3프로 감소시킬 수 있다.
도10d는 본 개시의 다양한 실시 예들에 따른 구조적 디코딩 기법의 성능을 나타내기 위한 또 다른 그래프를 도시한다. 도 10d는 상기 구조적 디코딩 기법이 일반적인 LBP 디코딩 기법과 비교할 때, 다양한 코드율에서 연산량 감소 효과가 있음을 도시한다. 도 10d에서 도시하는 그래프들의 시뮬레이션 환경은, 부호어의 길이는 672비트, 사용되는 변조 방식은 BPSK인, WiGig의 LDPC 코드 환경이다.
도 10d를 참조하면, 그래프 1070은 AWGN 채널에서 신호의 SNR 값에 따른, 변수 노드에서의 연산량을 나타낸다. 그래프 1070은, 일반적인 LBP 디코딩 기법의 경우 변수 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1070에서, 가로축 1071은 SNR값을 나타내고, 세로축 1072는 상기 변수 노드에서의 연산량을 나타낸다. 상기 그래프 1070은, 코드율이 1/2일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1075-1, 구조적 디코딩 기법에 대응하는 라인 1075-2, 코드율이 5/8일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1076-1, 구조적 디코딩 기법에 대응하는 라인 1076-2, 코드율이 3/4일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1077-1, 구조적 디코딩 기법에 대응하는 라인 1077-2을 포함한다. 상기 그래프 1070을 참조하면, 구조적 디코딩 기법은, 코드율을 다르게 설정 하더라도 일반적인 LBP 디코딩 기법보다 변수 노드에서 연산량 감소 효과를 얻을 수 있다.
그래프 1080은 AWGN 채널에서 신호의 SNR 값에 따른, 체크 노드에서의 연산량을 나타낸다. 그래프 1080은, 일반적인 LBP 디코딩 기법의 경우 체크 노드에서의 연산량을 1이라고 가정할때, 다른 기법들의 체크 노드에서의 연산량을 나타낸다. 상기 그래프 1080에서, 가로축 1081은 SNR값을 나타내고, 세로축 1082는 상기 체크 노드에서의 연산량을 나타낸다. 상기 그래프 1080은, 코드율이 1/2일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1085-1, 구조적 디코딩 기법에 대응하는 라인 1085-2, 코드율이 5/8일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1086-1, 구조적 디코딩 기법에 대응하는 라인 1086-2, 코드율이 3/4일 때 일반적인 LBP 디코딩 기법에 대응하는 라인 1087-1, 구조적 디코딩 기법에 대응하는 라인 1087-2을 포함한다. 상기 그래프 1080을 참조하면, 구조적 디코딩 기법은, 코드율을 다르게 설정 하더라도 일반적인 LBP 디코딩 기법보다 체크 노드에서 연산량 감소 효과를 얻을 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 저밀도 패리티 검사(low density parity check, LDPC) 코드에 대한 반복(iteration) 디코딩(decoding) 기법을 수행하는 장치의 동작 방법에 있어서,
    제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된(encoded) 신호를 수신하는 과정과,
    상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 과정을 포함하는 방법.
  2. 청구항 1에 있어서, 상기 데이터를 생성하는 과정은,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제1 레이어(layer)에 대응하는 제1 변수 노드들에서 상기 제1 레이어에 포함되는 제1 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신(update)하는 과정과,
    상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제1 체크 노드들에서 상기 제1 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하는 과정과,
    상기 갱신된 적어도 하나의 체크 노드 연산값에 기반하여, 상기 복수의 변수 노드들 각각의 우도값을 z 번째 갱신하는 과정과,
    상기 갱신된 우도값에 기반하여 상기 데이터를 생성하는 과정을 포함하고,
    상기 제1 변수 노드들 중 상기 적어도 하나의 변수 노드에 포함되는 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신되는 방법.
  3. 청구항 2에 있어서, 상기 제1 임계값은,
    반복 횟수에 대한, 상기 제1 차수를 가지는 노드들 각각의 상호 정보량(mutual information, MI)의 평균값의 변화율에 기반하여 결정되는 방법.
  4. 청구항 2에 있어서, 상기 데이터를 생성하는 과정은,
    상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 체크 노드 임계값에 기반하여, 상기 제1 체크 노드들 중 적어도 하나의 체크 노드를 비활성화시키는 과정을 더 포함하고,
    상기 비활성화된 적어도 하나의 체크 노드 각각에 대한 i+1 번째 갱신되는 체크 노드 연산값은, z+1번째 우도값 갱신 시, 상기 적어도 하나의 체크 노드 각각에 대한 i번째 갱신된 체크 노드 연산값인 방법.
  5. 청구항 4에 있어서, 상기 제1 레이어에 대응하는 체크 노드 임계값은,
    반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정되는 방법.
  6. 청구항 2에 있어서, 상기 데이터를 생성하는 과정은,
    상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 활성 임계값에 기반하여, 상기 제1 변수 노드들 중에서 상기 적어도 하나의 변수 노드에 포함되는 변수 노드를 재활성화 시키는 과정과,
    i+1번째 반복 디코딩시, i+1번째 갱신되는 체크 노드 연산값에 기반하여 상기 상기 재활성화된 변수 노드에 대한 변수 노드 연산값을 i+1번째 갱신하는 과정을 더 포함하는 방법.
  7. 청구항 6에 있어서, 상기 제1 레이어에 대응하는 체크 노드 임계값은,
    반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정되는 방법.
  8. 청구항 2에 있어서,
    상기 적어도 하나의 변수 노드는 상기 제1 차수를 가지는 제3 변수 노드를 포함하고,
    상기 제3 변수 노드의 우도값은 상기 제1 임계값보다 큰 값을 가지는 방법.
  9. 청구항 2에 있어서, 상기 데이터를 생성하는 과정은,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제2 레이어에 대응하는 제2 변수 노드들 각각에서 상기 제2 레이어에 포함되는 제2 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신하는 과정과,
    상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제2 체크 노드들에서 상기 제2 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하는 과정과,
    상기 갱신된 체크 노드 연산값에 기반하여 상기 복수의 변수 노드들 각각의 우도값을 z+1 번째 갱신하는 과정과,
    상기 갱신된 우도값에 기반하여 상기 데이터를 생성하는 과정을 더 포함하고,
    상기 제2 변수 노드들 중 상기 적어도 하나의 변수 노드에 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신되는 방법.
  10. 청구항 1에 있어서, 상기 제1 임계값 및 상기 제2 임계값은 PEXIT 차트 기법에 기반하여 결정되는 방법.
  11. 저밀도 패리티 검사(low density parity check, LDPC) 코드에 대한 반복(iteration) 디코딩(decoding) 기법을 수행하는 장치에 있어서,
    제1 차수를 가지는 제1 변수 노드 및 제2 차수를 가지는 제2 변수 노드를 포함하는 복수의 변수 노드들을 위해 설정된 패리티 행렬에 기반하여 부호화된 (encoded) 신호를 수신하는 수신부와,
    상기 복수의 변수 노드들 중에서, 상기 제1 차수에 따라 결정되는 제1 임계값 및 상기 제2 차수에 따라 결정되는 제2 임계값에 기반하여 적어도 하나의 변수 노드를 결정하고,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 신호로부터 복호화된 데이터를 생성하는 프로세서를 포함하는 장치.
  12. 청구항 11에 있어서, 상기 프로세서는, 상기 데이터를 생성하기 위하여,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제1 레이어(layer)에 대응하는 제1 변수 노드들에서 상기 제1 레이어에 포함되는 제1 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i번째 갱신(update)하고,
    상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제1 체크 노드들에서 상기 제1 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i번째 갱신하고,
    상기 갱신된 적어도 하나의 체크 노드 연산값에 기반하여, 상기 복수의 변수 노드들 각각의 우도값을 z번째 갱신하고,
    상기 갱신된 우도값에 기반하여 상기 데이터를 생성하도록 구성되고,
    상기 제1 변수 노드들 중 상기 적어도 하나의 변수 노드에 포함되는 변수 노드에서의 변수 노드 연산값은, i-1번째에서 갱신된 변수 노드 연산값으로 갱신되는 장치.
  13. 청구항 12에 있어서, 상기 제1 임계값은,
    반복 횟수에 대한, 상기 제1 차수를 가지는 노드들 각각의 상호 정보량(mutual information, MI)의 평균값의 변화율에 기반하여 결정되는 장치.
  14. 청구항 12에 있어서, 상기 프로세서는, 상기 데이터를 생성하기 위하여,
    상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 체크 노드 임계값에 기반하여, 상기 제1 체크 노드들 중 적어도 하나의 체크 노드를 비활성화시키도록 추가적으로 구성되고,
    상기 비활성화된 적어도 하나의 체크 노드 각각에 대한 i+1 번째 갱신되는 체크 노드 연산값은, z+1번째 우도값 갱신 시, 상기 적어도 하나의 체크 노드 각각에 대한 i번째 갱신된 체크 노드 연산값인 장치.
  15. 청구항 14에 있어서, 상기 제1 레이어에 대응하는 체크 노드 임계값은,
    반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정되는 장치.
  16. 청구항 12에 있어서, 상기 프로세서는, 상기 데이터를 생성하기 위하여,
    상기 i번째 갱신된 변수 노드 연산값 및 상기 제1 레이어에 대한 활성 임계값에 기반하여, 상기 제1 변수 노드들 중에서 상기 적어도 하나의 변수 노드에 포함되는 변수 노드를 재활성화 시키고,
    i+1번째 반복 디코딩시, i+1번째 갱신되는 체크 노드 연산값에 기반하여 상기 상기 재활성화된 변수 노드에 대한 변수 노드 연산값을 i+1번째 갱신하도록 추가적으로 구성되는 장치.
  17. 청구항 16에 있어서, 상기 제1 레이어에 대응하는 체크 노드 임계값은,
    반복 횟수에 대한, 상기 제1 체크 노드들에서 상기 제1 변수 노드들에게 전달되는 상호 정보량의 변화율에 기반하여 결정되는 장치.
  18. 청구항 12에 있어서,
    상기 적어도 하나의 변수 노드는 상기 제1 차수를 가지는 제3 변수 노드를 포함하고,
    상기 제3 변수 노드의 우도값은 상기 제1 임계값보다 큰 값을 가지는 장치.
  19. 청구항 12에 있어서, 상기 프로세서는, 상기 데이터를 생성하기 위하여,
    상기 결정된 적어도 하나의 변수 노드에 기반하여, 상기 패리티 행렬의 제2 레이어에 대응하는 제2 변수 노드들 각각에서 상기 제2 레이어에 포함되는 제2 체크 노드들로 전달되는 적어도 하나의 변수 노드 연산값을 i 번째 갱신하고,
    상기 갱신된 적어도 하나의 변수 노드 연산값에 기반하여, 상기 제2 체크 노드들에서 상기 제2 변수 노드들로 전달되는 적어도 하나의 체크 노드 연산값을 i 번째 갱신하고,
    상기 갱신된 체크 노드 연산값에 기반하여 상기 복수의 변수 노드들 각각의 우도값을 z+1 번째 갱신하고,
    상기 갱신된 우도값에 기반하여 상기 데이터를 생성하도록 추가적으로 구성되고,
    상기 제2 변수 노드들 중 상기 적어도 하나의 변수 노드에 변수 노드에서의 변수 노드 연산값은, i-1 번째에서 갱신된 변수 노드 연산값으로 갱신되는 장치.
  20. 청구항 11에 있어서, 상기 제1 임계값 및 상기 제2 임계값은 PEXIT 차트 기법에 기반하여 결정되는 장치.
KR1020160098563A 2016-08-02 2016-08-02 Ldpc 코드의 디코딩을 위한 장치 및 방법 KR102568716B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160098563A KR102568716B1 (ko) 2016-08-02 2016-08-02 Ldpc 코드의 디코딩을 위한 장치 및 방법
US15/667,465 US10511327B2 (en) 2016-08-02 2017-08-02 Apparatus and method for decoding LDPC code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160098563A KR102568716B1 (ko) 2016-08-02 2016-08-02 Ldpc 코드의 디코딩을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180015011A true KR20180015011A (ko) 2018-02-12
KR102568716B1 KR102568716B1 (ko) 2023-08-21

Family

ID=61069931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160098563A KR102568716B1 (ko) 2016-08-02 2016-08-02 Ldpc 코드의 디코딩을 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US10511327B2 (ko)
KR (1) KR102568716B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991447B1 (ko) * 2018-09-10 2019-06-20 국방과학연구소 블록 간섭 및 블록 페이딩에 강인한 고부호율 프로토그래프 기반 ldpc 부호 설계 기법
KR102045438B1 (ko) * 2018-10-15 2019-11-15 고려대학교 산학협력단 Ldpc 부호의 복호를 위한 방법 및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680647B2 (en) * 2017-09-25 2020-06-09 SK Hynix Inc. Min-sum decoding for LDPC codes
CN109150401B (zh) * 2018-08-21 2021-01-29 哈尔滨工业大学 基于时间资源scma和mpa迭代检测的多天线复用传输方法
KR102606829B1 (ko) * 2019-01-09 2023-11-27 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
WO2020146990A1 (en) * 2019-01-14 2020-07-23 Nokia Shanghai Bell Co., Ltd. Data processing in channel decoding
US11309915B1 (en) * 2019-07-11 2022-04-19 Arrowhead Center, Inc. Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders
TWI739157B (zh) * 2019-09-18 2021-09-11 慧榮科技股份有限公司 快閃記憶體控制器、儲存裝置及讀取方法
KR20210061504A (ko) * 2019-11-19 2021-05-28 삼성전자주식회사 에러 정정 회로, 및 그것을 동작하는 방법
CN112234998A (zh) * 2020-08-17 2021-01-15 西安电子科技大学 一种使用滑动窗口译码空间耦合ldpc码的方法及装置
CN117955504A (zh) * 2024-03-27 2024-04-30 华侨大学 一种分析有损p-ldpc信源码性能的数学辅助方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100724922B1 (ko) * 2004-05-12 2007-06-04 포항공과대학교 산학협력단 가변 부호화율을 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR20140091643A (ko) * 2013-01-11 2014-07-22 연세대학교 산학협력단 저밀도 패리티 검사 부호의 차수 분포 설계 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504890B2 (en) 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
FR2912574B1 (fr) 2007-02-13 2010-09-17 Commissariat Energie Atomique Procede de decodage a passage de messages et a convergence forcee.
WO2010019169A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Rom list-decoding of near codewords
US8504887B1 (en) 2009-12-24 2013-08-06 Marvell International Ltd. Low power LDPC decoding under defects/erasures/puncturing
US8595576B2 (en) * 2011-06-30 2013-11-26 Lsi Corporation Systems and methods for evaluating and debugging LDPC iterative decoders
US9337868B2 (en) * 2013-07-22 2016-05-10 Nec Corporation Iterative decoding for cascaded LDPC and TCM coding
KR101599336B1 (ko) 2014-04-22 2016-03-04 아주대학교 산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치
US10078540B2 (en) * 2014-06-13 2018-09-18 Cisco Technology, Inc. Accurate and fast in-service estimation of input bit error ratio of low density parity check decoders
KR102461276B1 (ko) * 2016-03-10 2022-10-31 삼성전자주식회사 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100724922B1 (ko) * 2004-05-12 2007-06-04 포항공과대학교 산학협력단 가변 부호화율을 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR20140091643A (ko) * 2013-01-11 2014-07-22 연세대학교 산학협력단 저밀도 패리티 검사 부호의 차수 분포 설계 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101991447B1 (ko) * 2018-09-10 2019-06-20 국방과학연구소 블록 간섭 및 블록 페이딩에 강인한 고부호율 프로토그래프 기반 ldpc 부호 설계 기법
KR102045438B1 (ko) * 2018-10-15 2019-11-15 고려대학교 산학협력단 Ldpc 부호의 복호를 위한 방법 및 장치

Also Published As

Publication number Publication date
KR102568716B1 (ko) 2023-08-21
US20180041227A1 (en) 2018-02-08
US10511327B2 (en) 2019-12-17

Similar Documents

Publication Publication Date Title
KR102568716B1 (ko) Ldpc 코드의 디코딩을 위한 장치 및 방법
CN109921882B (zh) 一种基于深度学习的mimo解码方法、装置及存储介质
CN110226289B (zh) 接收器和用于解码的方法
EP3248292B1 (en) Method for adaptive modulation and coding, amc, and amc controller
KR100630177B1 (ko) 최대 다이버시티 이득을 가지는 시공간 저밀도 패리티검사 부호 부호화/복호화 장치 및 방법
RU2716044C1 (ru) Способы и системы кодирования и декодирования ldpc кодов
US10469201B2 (en) Method and apparatus for coding/decoding in a communication or broadcasting system using high-order modulation
KR100574306B1 (ko) Ldpc 코드를 디코딩하기 위한 방법 및 시스템
US10211952B2 (en) Scheme for communication using integer-forcing scheme in wireless communication system
US20080065947A1 (en) Method and system for decoding low density parity check (ldpc) codes
US8539304B1 (en) Parallel encoder for low-density parity-check (LDPC) codes
US10454535B2 (en) Apparatus and method for receiving signal in wireless communication system
EP2894804B1 (en) Apparatus and method for adaptively selecting channel code based on non-gaussianity of channel in wireless communication system
KR20090131230A (ko) 적어도 두 개의 주파수 대역들을 이용하는 저 밀도 패리티코드 인코딩 장치 및 디코딩 장치
US11451244B2 (en) Device and method for encoding and decoding using polar code in wireless communication system
US10461890B2 (en) Apparatus and method for processing signal in wireless communication system
US11171667B2 (en) Apparatus and method for decoding of low-density parity check codes in wireless communication system
CN110352562B (zh) 在无线通信系统中基于ldpc码的奇偶校验矩阵执行编码的方法和使用其的终端
JP2005039585A (ja) 情報送信方法及び装置
EP3797480B1 (en) Transmitter device and receiver device for efficient transmission of information messages
US9755784B2 (en) Receiver and decoding method thereof
US20140157093A1 (en) Method and device for improving decoding of data received from one source by several receivers
CN105556852A (zh) 用于共享公共硬件资源的不同的低密度奇偶校验(ldpc)码的低密度奇偶校验编码
US11005596B2 (en) Apparatus and method for determining polar code in wireless communication system
KR20080042383A (ko) 다중 안테나 시스템에서 수신장치 및 방법

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