KR20220062389A - 데이터 처리 방법 및 디코더 - Google Patents

데이터 처리 방법 및 디코더 Download PDF

Info

Publication number
KR20220062389A
KR20220062389A KR1020227012449A KR20227012449A KR20220062389A KR 20220062389 A KR20220062389 A KR 20220062389A KR 1020227012449 A KR1020227012449 A KR 1020227012449A KR 20227012449 A KR20227012449 A KR 20227012449A KR 20220062389 A KR20220062389 A KR 20220062389A
Authority
KR
South Korea
Prior art keywords
matrix
check
layer
nodes
check matrix
Prior art date
Application number
KR1020227012449A
Other languages
English (en)
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 KR20220062389A publication Critical patent/KR20220062389A/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/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/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/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
    • 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/1105Decoding
    • H03M13/1145Pipelined decoding at code word level, e.g. multiple code words being decoded simultaneously
    • 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
    • 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/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 출원의 실시예들은 코드 워드 시퀀스를 디코딩하는 데이터 처리 방법 및 디코더를 개시한다. 이 방법은 디지트 수량이 n인 코드 워드 시퀀스를 수신하는 단계(201); 차수 m×n의 체크 행렬을 결정하는 단계- 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬임 -(202); 베이스 행렬에 기초하여 L개의 변수 노드를 설정하는 단계- L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상임 -(203); 체크 노드 각각의 유효 부분 행렬들을 L개의 변수 노드에 개별적으로 매핑하는 단계(204); L개의 매핑된 변수 노드 각각에, 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하는 단계; 및 수신된 데이터를 사용하여 L개의 변수 노드에 의해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하는 단계(205)를 포함한다.

Description

데이터 처리 방법 및 디코더
본 출원은 2019년 9월 30일자로 중국 지적 재산권 관리국(China National Intellectual Property Administration)에 출원되고 발명의 명칭이 "DATA PROCESSING METHOD AND DECODER)"인 중국 특허 출원 제201910945369.2호에 대한 우선권을 주장하며, 이 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 통신 분야에 관한 것으로, 특히, 데이터 처리 방법 및 디코더에 관한 것이다.
준-순환 저밀도 패리티-체크(quasi-cyclic low-density parity-check, QC-LDPC)는 유연한 구조의 특징을 갖는 LDPC 코드의 일반적인 타입이고, 체크 코드로서 사용될 수 있고, 통상적으로 체크 행렬로서 표현된다. 구체적으로, 송신단은, 미리 설정된 체크 행렬을 사용하여, 전송될 필요가 있는 정보 시퀀스를 인코딩하여, 코드 워드 시퀀스를 생성하고, 코드 워드 시퀀스를 수신단에 전송할 수 있다. 코드 워드 시퀀스 코드를 수신한 후에, 수신단은 정보 시퀀스를 획득하기 위해 동일한 체크 행렬을 사용하여 코드 워드 시퀀스를 디코딩할 수 있다.
일반적으로 사용되는 디코딩 알고리즘은 계층화된 디코딩 알고리즘(layered decoding algorithm, LDA)을 포함한다. LDA의 구현 동안, 체크 베이스 행렬은 베이스 행렬의 행들에 기초하여 수 개의 계층들로 수직으로 분할되고, 코드 워드 시퀀스를 업데이트하기 위해 디코딩 동안 계층별로 사용된다. 계층이 사용될 때마다, 획득된 새로운 시퀀스가 입력 값으로서 사용되고, 체크 행렬의 마지막 계층이 사용될 때까지, 체크 행렬의 다음 계층을 사용하여 새로운 시퀀스가 업데이트된다. 획득된 최신 시퀀스는 정보 시퀀스로서 사용된다.
체크 행렬은 차수 m×n의 행렬이고, 체크 행렬의 베이스 행렬의 확장 인자는 Z이며, 베이스 행렬은 차수 mb×nb의 행렬이고, 여기서 mb=m/Z이고 nb=n/Z라고 가정된다. 현재, 하드웨어 협력의 관점에서, LDA는 주로 행-레벨 병렬 해결책을 사용하여 구현된다. 행-레벨 병렬 해결책에서, nb개의 변수 노드 및 Z개의 체크 노드가 배치될 필요가 있고, 코드 워드 시퀀스는 체크 행렬의 각각의 계층에서의 행을 사용하여 계산된다. 체크 행렬이 비교적 큰 경우, 비교적 더 많은 하드웨어 자원이 요구되고, 비용이 비교적 높다.
본 출원의 실시예들은 코드 워드 시퀀스를 디코딩하기 위한 데이터 처리 방법 및 디코더를 제공한다.
제1 양태에 따르면, 본 출원은 데이터 처리 방법을 제공한다. 이 방법은 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 사용하고, 디지트 수량이 n인 코드 워드 시퀀스를 수신하는 단계- n은 양의 정수임 -; 차수 m×n의 체크 행렬을 결정하는 단계- 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있음 -; 베이스 행렬에 기초하여 L개의 변수 노드를 설정하는 단계- L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타냄 -; 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 L개의 변수 노드에 개별적으로 매핑하는 단계- 상이한 유효 부분 행렬들은 상이한 변수 노드들에 매핑되고, 유효 부분 행렬은 베이스 행렬에서 -1이 아닌 값에 의해 표현되는 부분 행렬이고, 체크 노드의 계층은 베이스 행렬의 행에 의해 표현되는 부분 행렬임 -; L개의 매핑된 변수 노드 각각에, 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하는 단계; 및 수신된 데이터를 사용하여 L개의 변수 노드에 의해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하는 단계를 포함한다.
일부 실현가능한 실시예들에서, L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량과 동일하다.
따라서, 계층화된 정규화된 최소-합 디코딩 알고리즘은 비교적 적은 수량의 L개의 변수 노드를 사용하여 수행될 수 있고, 비교적 적은 하드웨어 자원이 요구됨으로써, 비용을 효과적으로 감소시킨다.
일부 실현가능한 실시예들에서, 차수 m×n의 체크 행렬을 결정하는 단계는: n, Z, 및 랩터형 구조를 갖는 미리 설정된 행렬에 기초하여 차수 mb×nb의 베이스 행렬을 결정하는 단계; 및 베이스 행렬을 확장하여 차수 m×n의 체크 행렬을 획득하는 단계를 포함한다. 따라서, 체크 행렬은 요건에 기초하여 결정될 수 있다.
일부 실현가능한 실시예들에서, 이 방법은:
P개의 체크 노드를 설정하는 단계- P는 Z보다 작은 양의 정수이고, 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수(rounding up function)이고, 각각의 부분 계층은 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함함 -; 체크 행렬의 각각의 계층의 각각의 부분 계층 내의 행들을 P개의 체크 노드에 대응하도록 개별적으로 만드는 단계- 상이한 행들은 상이한 체크 노드들에 대응함 -; P개의 체크 노드를 사용하여 데이터를 수신하는 단계; 및 각각의 부분 계층 내의 대응하는 행을 사용하여 데이터에 대해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하는 단계를 추가로 포함한다. 따라서, 비교적 적은 체크 노드들이 배치될 수 있고, 비교적 적은 하드웨어 자원들이 요구됨으로써, 비용들을 효과적으로 감소시킨다.
일부 실현가능한 실시예들에서, P개의 체크 노드를 설정한 후에, 본 방법은:
오프셋 값을 결정하고, 오프셋 값에 기초하여, 체크 행렬의 계층의 부분 계층들을 사용하는 시퀀스를 조정하는 단계를 추가로 포함한다. 따라서, 행렬에 대한 변환을 수행하기 위해 적절한 오프셋 값이 발견될 수 있고, 변환된 행렬을 사용함으로써 디코더의 처리율 속도에 대한 판독과 기입 사이의 충돌의 영향이 특정 정도로 완화될 수 있다.
제2 양태에 따르면, 본 출원은 디코더를 제공한다. 디코더는 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 사용하고, 디지트 수량이 n인 코드 워드 시퀀스를 수신하도록 구성된 송수신기 모듈- n은 양의 정수임 -; 및 차수 m×n의 체크 행렬을 결정하도록 구성된 처리 모듈- 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있음 -을 포함한다. 처리 모듈은 베이스 행렬에 기초하여 L개의 변수 노드를 설정하도록 추가로 구성되고, 여기서 L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타낸다. 처리 모듈은 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 L개의 변수 노드에 개별적으로 매핑하도록 추가로 구성되고, 여기서 상이한 유효 부분 행렬들은 상이한 변수 노드들에 매핑되고, 유효 부분 행렬은 베이스 행렬에서 -1이 아닌 값에 의해 표현되는 부분 행렬이고, 체크 노드의 계층은 베이스 행렬의 행에 의해 표현되는 부분 행렬이다. 처리 모듈은 L개의 매핑된 변수 노드 각각에, 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하도록 추가로 구성된다. L개의 변수 노드는 수신된 데이터를 사용하여 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성된다.
일부 실현가능한 실시예들에서, 처리 모듈은 구체적으로: n, Z, 및 랩터형 구조를 갖는 미리 설정된 행렬에 기초하여 차수 mb×nb의 베이스 행렬을 결정하고; 베이스 행렬을 확장하여 차수 m×n의 체크 행렬을 획득하도록 구성된다.
일부 실현가능한 실시예들에서, 처리 모듈은 P개의 체크 노드를 설정하도록 추가로 구성되며, 여기서 P는 Z보다 작은 양의 정수이고, 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수이고, 각각의 부분 계층은 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함한다. 디코더는: 체크 행렬의 각각의 계층의 각각의 부분 계층 내의 행들을 P개의 체크 노드에 대응하도록 개별적으로 만들고- 상이한 행들은 상이한 체크 노드들에 대응함 -; 데이터를 수신하고, 각각의 부분 계층 내의 대응하는 행을 사용하여 데이터에 대해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성된 P개의 체크 노드를 추가로 포함한다.
일부 실현가능한 실시예들에서, 처리 모듈은 오프셋 값을 결정하고, 오프셋 값에 기초하여, 체크 행렬의 계층의 부분 계층들을 사용하는 시퀀스를 조정하도록 추가로 구성된다.
제3 양태에 따르면, 본 출원은 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 제품이 실행될 때, 컴퓨터 프로그램 제품은 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하기 위해 사용된다.
제4 양태에 따르면, 본 출원은 컴퓨터 판독가능 저장 매체를 제공한다. 컴퓨터 판독가능 저장 매체는 명령어들을 저장하고, 명령어들은 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하기 위해 사용된다.
전술한 기술적 해결책들에 따르면, 본 출원의 실시예들은 다음의 장점들을 갖는다는 것을 알 수 있다:
디지트 수량이 n인 코드 워드 시퀀스가 수신될 때, 차수 m×n의 체크 행렬이 결정될 수 있다. 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, 여기서 mb는 m/Z와 동일하고, nb는 n/Z와 동일하며, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있다. 그 다음, L개의 변수 노드가 베이스 행렬에 기초하여 설정되고, 여기서, L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타낸다. 따라서, 계층화된 정규화된 최소-합 디코딩 알고리즘은 비교적 적은 수량의 L개의 변수 노드를 사용하여 수행될 수 있고, 비교적 적은 하드웨어 자원이 요구됨으로써, 비용을 효과적으로 감소시킨다.
도 1a는 본 출원에서의 컴퓨터 디바이스의 개략도이고;
도 1b는 변수 노드와 체크 노드 사이의 상호작용의 프로세스의 개략도이고;
도 1c는 변수 노드 및 체크 노드를 포함하는 구조의 개략도이고;
도 2a는 본 출원에 따른 데이터 처리 방법의 개략도이고;
도 2b는 랩터형 구조에서의 미리 설정된 행렬의 개략도이고;
도 2c는 미리 설정된 행렬 내의 코어 행렬 및 확장된 행렬의 개략도이고;
도 2d는 코어 행렬의 개략도이고;
도 2e는 체크 행렬을 획득하는 방식의 개략도이고;
도 2f는 판독과 기입 사이의 충돌의 개략도이고;
도 2g는 체크 행렬의 하나의 계층을 3개의 부분 계층 행렬로 분할하는 개략도이고;
도 3은 본 출원에 따른 디코더의 개략도이다.
본 출원의 실시예들은 코드 워드 시퀀스를 디코딩하기 위한 데이터 처리 방법 및 디코더를 제공한다.
본 출원에서, 명세서, 청구항들, 및 첨부 도면들에서의 "제1", "제2", "제3", 및 "제4"(존재하는 경우)와 같은 용어들은 유사한 대상들을 구별하도록 의도되지만, 반드시 특정 순서 또는 시퀀스를 표시하는 것은 아니다. 이러한 방식으로 사용되는 데이터는 본 명세서에 설명되는 실시예들이 본 명세서에 예시되는 또는 설명되는 순서와 다른 순서들로 구현될 수 있도록 적절한 경우들에서 교체가능하다는 점이 이해되어야 한다. 게다가, "포함하다", "구비하다"라는 용어들 및 임의의 다른 변형들은 비배타적인 포함을 커버하고자 하는 것이며, 예를 들어, 단계들 또는 유닛들의 리스트를 포함하는 프로세스, 방법, 시스템, 제품, 또는 디바이스는 반드시 그러한 단계들 또는 유닛들로 제한되는 것은 아니고, 명시적으로 열거되지 않은 또는 그러한 프로세스, 방법, 시스템, 제품, 또는 디바이스에 고유한 다른 단계들 또는 유닛들을 포함할 수 있다.
QC-LDPC 코드는 일반적인 타입의 LDPC 코드이고, QC-LDPC 코드의 체크 행렬 H는 차수 Z×Z의 일련의 요소 부분 행렬들을 포함하며, 여기서 Z는 요소 부분 행렬의 확장 인자 또는 차원이라고 지칭된다. 각각의 요소 부분 행렬은 제로 행렬 또는 단위 행렬(identity matrix)의 순환 우측 시프트이다. 따라서, 요소 부분 행렬은 또한 값으로 표현될 수 있다. 예를 들어, 제로 행렬은 -1로서 표현되고, 단위 행렬은 0으로서 표현되며, 단위 행렬의 순환 우측 시프트는 단위 행렬의 우측 시프트의 오프셋으로서 표현된다.
체크 행렬은 또한 비교적 적은 수량의 행과 열을 갖는 행렬로 표현될 수 있고, 이 행렬은 베이스 행렬이라고 지칭된다. 따라서, 차수 m×n의 체크 행렬에 대응하는 베이스 행렬은 차수 mb×nb의 행렬이고, 여기서 mb는 m/Z와 동일하고, nb는 n/Z와 동일하다는 것을 알 수 있다. Z는 m과 n으로 나눌 수 있다는 것이 명확하다.
다음의 체크 행렬이 설명을 위한 예로서 사용된다. 체크 행렬은 다음과 같다고 가정한다:
Figure pct00001
확장 인자가 2와 동일하다고 가정하면, 체크 행렬의 베이스 행렬이 획득될 수 있다:
Figure pct00002
이러한 방식으로, 저장 부담이 감소될 수 있다.
다른 예로서, 비교적 큰 데이터 양을 갖는 체크 행렬은 차수 4×11의 다음의 베이스 행렬로서 표현될 수 있고, 여기서 베이스 행렬의 확장 인자는 256과 동일하다.
Figure pct00003
베이스 행렬 내의 각각의 값은 차수 256×256의 행렬로 확장될 수 있다. 따라서, 체크 행렬을 저장하지 않고 베이스 행렬만이 저장될 수 있다. 사용될 때, 행렬은 체크 행렬로 확장될 수 있고, 이는 저장 부담을 감소시키고 매우 편리하다.
코드 워드 시퀀스를 수신한 후에, 수신단은 체크 행렬 및 미리 설정된 디코딩 알고리즘을 사용하여 코드 워드 시퀀스를 디코딩하여, 정보 시퀀스를 획득할 수 있다. 공통 디코딩 알고리즘은 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 포함한다. 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘은 하드웨어 복잡도를 효과적으로 감소시킬 수 있고 디코딩 반복의 수량을 상당히 감소시킬 수 있으며, 따라서 디코더 설계시 널리 사용된다.
계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘이 구현될 때, 체크 행렬은 먼저 수 개의 계층들로 수직으로 분할된다. 예를 들어, 체크 행렬의 것이고 베이스 행렬의 행으로 표현되는 부분 행렬이 체크 행렬의 계층으로서 사용된다. 구체적으로, 체크 행렬은 차수 m×n의 행렬이고, 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, 확장 인자는 Z인데, 즉, mb=m/Z이고nb=n/Z이며, 여기서 Z는 m과 n 둘 다에 의해 나누어질 수 있다고 가정된다. 이것은 체크 행렬을 mb 계층들로 나누는 것과 동등하고, 각각의 계층은 차수 Z×nb의 행렬이다. 차수 4×11의 베이스 행렬로 표현되는 전술한 체크 행렬은 4개의 계층으로 분할될 수 있고, 각각의 계층은 차수 256×11의 행렬이다.
디코딩이 수행될 때, mb개의 라운드의 디코딩이 개별적으로 수행되고, 체크 행렬의 대응하는 계층이 각각의 라운드에서 사용된다. 먼저, 제1 라운드에서, 코드 워드 시퀀스가 체크 행렬의 위에서 아래로 카운팅된 제1 계층을 사용하여 처리됨으로써, 새로운 시퀀스를 획득한다. 그 후, 새로운 시퀀스는 체크 행렬의 제2 계층을 사용하여 처리된다. 유추에 의해, 코드 워드 시퀀스는 체크 행렬의 마지막 계층이 사용될 때까지 반복되고, 마지막으로 획득된 시퀀스는 정보 시퀀스로서 사용된다.
구체적으로, (베이스 행렬의 j번째 행에 의해 표현될 수 있는- j의 값은 0, 1, ..., mb-1임 -) 체크 행렬의 j번째 계층에 대해, 코드 워드 시퀀스는 다음의 3개의 수학식을 사용하여 디코딩된다:
Figure pct00004
전술한 수학식들에서, nj는 좌측에서 우측으로 베이스 행렬의 열의 시퀀스 번호를 나타내고 0, 1, ..., nb의 값을 갖는다. 또한, N(j)은 베이스 행렬의 j번째 행에서 -1과 동일하지 않은 모든 값들이 위치하는 열들의 세트를 나타내고, 여기서 차수 4×11의 베이스 행렬로 표현되는 체크 행렬에 대해, N(j)은 0, 2, 3, 4, 5, 6, 및 7을 포함하고; k는 체크 행렬의 계층에서의 행의 시퀀스 번호를 나타내고 0, 1, ..., Z-1의 값을 가지며; λ는 입력 코드 워드 시퀀스, 즉 수신된 코드 워드 시퀀스 또는 이전 계층에서의 반복 후에 획득된 코드 워드 시퀀스를 나타내고, 여기서 차수 m×n의 체크 행렬에 대해, λ는 n개의 값을 가질 수 있고; r은 다음 계층의 입력 값으로서 사용될, 코드 워드 시퀀스와 함께 업데이트되고 반복되기 위해 사용되는 순환 변수를 나타내고, 또한 n개의 값을 가지며, 여기서 r의 초기 값은 0으로 설정될 수 있고; q는 중간 변수를 나타내고 연산(전술한 3개의 수학식에서의 연산들)에서 λ를 업데이트하고 반복하기 위해 사용되고; α는 보정 인자를 나타내고 보통 약 0.8의 값을 가지며; V(j)\nj는 N(j)에서의 nj 이외의 값들의 세트를 나타내고; sign()는 심볼 함수를 나타내고, 구체적으로, 심볼 함수의 파라미터가 0보다 크면, 값은 1이고; 파라미터가 0 미만이면, 값이 -1이거나; 또는 파라미터가 0과 동일하면, 값은 0이고;
Figure pct00005
는 누적 곱 함수를 나타내고; min()은 최소 함수를 나타낸다.
전술한 3개의 수학식을 통해, 코드 워드 시퀀스는 체크 행렬을 사용하여 반복되어 최종적으로 정보 시퀀스를 획득한다. 구체적으로, 코드 워드 시퀀스는 먼저 체크 행렬의 제1 계층을 사용하여 연산되어
Figure pct00006
Figure pct00007
을 획득한다. 그 다음,
Figure pct00008
Figure pct00009
은 체크 행렬의 모든 계층들이 사용될 때까지, 체크 행렬의 다음 계층을 계속 사용함으로써 계속 연산하기 위한 입력 값으로서 사용된다. 최종적으로 획득된 새로운 코드 워드 시퀀스가 정보 시퀀스로서 사용된다.
본 출원의 이 실시예에서, 하드웨어의 관점에서, 코드 워드 시퀀스는 체크 행렬을 사용하여 변수 노드 및 체크 노드에 의해 연산될 필요가 있다. 변수 노드는 수학식 (1)을 수행하고, 그 후 획득된 결과를 체크 노드에 전달하여, 체크 노드가 수학식 (2)를 수행하고, 그 후 획득된 결과를 변수 노드에 반환하도록 구성된다. 변수 노드는 수학식 (3)을 수행하여 λ에 관련된 하나의 반복을 완료한다.
더 나은 설명을 위해, 본 출원에서의 아키텍처가 아래에 간단히 설명된다.
전술한 연산 프로세스와 협력하기 위해, 도 1a를 참조하면, 컴퓨터 디바이스(100)가 본 출원에서 사용될 필요가 있다. 컴퓨터 디바이스(100)는 메모리(110) 및 처리 모듈(120)을 포함한다. 처리 모듈(120)은 체크 행렬을 사용하여 코드 워드 시퀀스를 연산시키도록 구성된다. 복수의 변수 노드 및 복수의 체크 노드가 처리 모듈(120)에 배치된다. 변수 노드는 코드 워드 시퀀스를 수신하도록 구성되고, 체크 노드는 체크 행렬을 저장하고 변수 노드에 제공하도록 구성된다.
도 1b에 도시된 바와 같이, 변수 노드는 λnj[k](그 초기 값은 코드 워드 시퀀스임)를 수신하고, 체크 노드에 의해 전송된 rj,nj[k](그 초기 값은 모두 0일 수 있음)를 수신하고, 계산을 통해 qj,nj[k]를 획득하기 위해 수학식 (1)을 수행하고, qj,nj[k]를 체크 노드로 전송하도록 구성된다. 변수 노드에 의해 전송된 q를 수신한 후, 체크 노드는 수학식 (2)를 수행하여 계산을 통해 new_rj,nj[k]를 획득하고, 새로운 new_rj,nj[k]를 변수 노드로 전송하고, new_r을 다음 계층에서의 계산에 사용되는 r로서 사용한다. 최종적으로, 변수 노드는 다음 계층에서의 계산에 사용되는 λ로서 사용되는 계산을 통해 new_λj,nj[k], 즉 λj+1,nj[k]를 획득하기 위해 수학식 (3)을 수행한다.
효율을 개선하고 노드들의 낭비를 감소시키기 위해, 적절한 수량의 변수 노드들 및 체크 노드들과 적절한 상호작용 방식이 결정될 필요가 있다. 현재, 행-레벨 병렬 해결책은 주로 변수 노드들 및 체크 노드들을 배열하기 위해 사용된다.
행-레벨 병렬 해결책에서, nb개의 변수 노드 및 Z개의 체크 노드가 배치되고, 여기서 nb개의 변수 노드는 베이스 행렬의 nb개의 열과 일대일 대응관계에 있고, nb개의 변수 노드는 수학식 (1)을 동시에 수행하고, 계산 결과들을 동일한 체크 노드에 전송한다. Z개의 체크 노드는 체크 행렬의 각각의 계층에서의 행들과 일대일 대응관계에 있다. 체크 노드는 수학식 (2)를 수행하고, 획득된 결과를 변수 노드에 전송한다. 변수 노드는 수학식 (3)을 수행하여 다음 계층에서 요구되는 λ및 r을 획득한다. QC-LDPC의 직교 특징으로 인해, 도 1c에 도시된 Z개의 구조들이 동시에 처리될 수 있다.
체크 행렬의 계층에 대해, 베이스 행렬의 열들은 직교하고, 따라서 nb개의 변수 노드는 연산을 동시에 수행한다. 체크 행렬의 동일한 계층에서의 행들이 또한 직교하기 때문에, 행들은 행들에 의해 동일한 코드 워드 시퀀스에 대한 연산들을 수행하기 위해 동시에 사용될 수 있고, Z개의 체크 노드는 효율을 개선하기 위해 동시에 수행되고 사용될 수 있다.
행-레벨 병렬 해결책은 계산 효율을 제공할 수 있다. 그러나, nb가 비교적 크거나 Z가 비교적 크면, 비교적 더 많은 하드웨어 자원들(변수 노드들 또는 체크 노드들)이 요구되어, 비교적 높은 비용을 초래한다. 특히, 현재의 5G 기술에서, QC-LDPC 코드의 베이스 행렬의 최대 사용 확장 인자 Z는 384일 수 있고, 최대 nb는 68일 수 있다. 따라서, 행-레벨 병렬 해결책에 기초하여 직접 구현되는 것은 어렵다. 또한, QC-LDPC 코드의 베이스 행렬은 보통 희소성의 특징을 갖는다. 많은 경우에, 행 내의 유효 노드들의 수량은 nb개의 노드의 총 수량보다 훨씬 적다. 결과적으로, 노드 자원들은 행-레벨 병렬 해결책에서 낭비된다.
따라서, 본 출원은 데이터 처리 방법 및 시스템을 제공한다. 디지트 수량이 n인 코드 워드 시퀀스가 수신될 때, 차수 m×n의 체크 행렬이 결정될 수 있다. 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, 여기서 mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있다. 그 다음, 베이스 행렬에 기초하여 L개의 변수 노드가 설정되고, 여기서 L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타낸다. 따라서, 계층화된 정규화된 최소-합 디코딩 알고리즘은 비교적 적은 수량의 L개의 변수 노드를 사용하여 수행될 수 있고, 비교적 적은 하드웨어 자원이 요구됨으로써, 비용을 효과적으로 감소시킨다.
구체적으로, 도 2a를 참조한다. 본 출원의 실시예는 다음의 단계들을 포함하는 데이터 처리 방법을 제공한다.
201. 디지트 수량이 n인 코드 워드 시퀀스를 수신하며, 여기서 n은 양의 정수이다.
통신 프로세스에서, 송신단은 체크 행렬에 기초하여 정보 시퀀스에 대해 채널 인코딩을 수행하여 코드 워드 시퀀스를 획득한다. 수신단은 코드 워드 시퀀스를 획득하고, 획득된 대응하는 코드 워드 시퀀스를 채널을 통해 송신하고, 미리 설정된 디코딩 알고리즘을 사용하여 체크 행렬 또는 베이스 행렬에 기초하여 코드 워드 시퀀스에 대해 채널 디코딩을 수행함으로써, 코드 워드 시퀀스에 포함된 정보 시퀀스를 획득할 수 있다.
예를 들어, n은 8과 동일하고, 코드 워드 시퀀스는 다음과 같이 λ로 각각 표현되는 8개의 디지트를 갖는다:
λ0=3, λ1=2, λ2=-5, λ3=-7, λ4=4, λ5=1, λ6=-9, 및 λ7=10
202. 차수 m×n의 체크 행렬을 결정하고, 여기서 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있다.
본 출원의 이 실시예에서, 차수 mb×nb의 베이스 행렬은 먼저 n, Z, 및 랩터형(raptor-like) 구조를 갖는 미리 설정된 행렬에 기초하여 결정될 수 있고, 그 후 베이스 행렬을 확장하여 차수 m×n의 체크 행렬을 획득한다.
랩터형 구조에서의 체크 행렬은 2개의 부분: 코어 행렬 및 확장 행렬을 포함한다는 점에 유의해야 한다. 코어 행렬은 802.11n에서의 이중 대각선 형태와 유사한 형태일 수 있고, 높은 비트 레이트를 지원한다. 확장된 행렬은 단일-열 재체크(recheck)의 형태이고 낮은 비트 레이트를 지원한다. 베이스 행렬의 상이한 수량 mb개의 행을 선택하고 사용함으로써 상이한 비트 레이트들이 유연하게 획득될 수 있다.
예를 들어, 도 2b는 랩터형 구조에서의 미리 설정된 행렬의 개략도이다. 미리 설정된 행렬이 과도하게 큰 데이터 수량을 갖기 때문에, 미리 설정된 행렬은 도 2b에서 슬래시로 대체된다. 슬래시가 통과하는 부분은 체크 행렬에서 1을 나타내고, 나머지 부분은 0을 나타낸다. 차수 Z×Z의 각각의 부분 행렬은 제로 행렬, 단위 행렬, 또는 단위 행렬의 오프셋을 나타내고, 부분 행렬이 단위 행렬 또는 단위 부분 행렬의 오프셋임을 표시한다.
도 2c에 도시된 바와 같이, 좌측 상부 코너에 있는 블랙 박스 내의 부분은(도 2d에 도시된 바와 같은) 코어 행렬이고, 나머지 부분은 확장된 행렬이다.
랩터형 구조에서의 미리 설정된 행렬은 송신단 및 수신단 각각에 미리 설정된다. 송신단은 전송될 필요가 있는 정보 시퀀스에 기초하여 미리 설정된 행렬로부터 요구되는 베이스 행렬을 결정한다. 이것은 (도 2e에 도시된 바와 같이) "미리 설정된 행렬로부터 블록을 커팅하는 것"과 유사하다. 그 후, 코드 워드 시퀀스는 베이스 행렬에 의해 표현되는 체크 행렬을 사용하여 인코딩되어, 코드 워드 시퀀스를 획득하고 코드 워드 시퀀스를 수신단에 전송한다. 디지트 수량이 n인 코드 워드 시퀀스를 수신한 후에, 수신단은 미리 설정된 Z에 기초하여 nb(nb=n/Z)를 결정하고; 그 후, nb 및 미리 설정된 행렬에 기초하여 mb를 결정하는데, 즉, 미리 설정된 행렬로부터 차수 mb×nb의 베이스 행렬을 "커팅(cutting)"하고; 최종적으로 베이스 행렬로 표현되는 체크 행렬을 결정한다. 그 다음, 수신단은 Z에 기초한 베이스 행렬을 확장하여 체크 행렬을 획득한다.
203. 베이스 행렬에 기초하여 L개의 변수 노드를 설정하고, 여기서 L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타낸다.
베이스 행렬에는 3개의 값: -1, 0, 및 0보다 큰 정수가 있을 수 있다는 점에 유의해야 하는데, 여기서 -1은 체크 행렬에서의 차수 Z×Z의 제로 행렬을 나타내고, 0은 체크 행렬에서의 차수 Z×Z의 단위 행렬을 나타내고, 0보다 큰 정수는 차수 Z×Z의 단위 행렬의 오프셋을 나타낸다. 따라서, 베이스 행렬에서의 비-1 값은 0 또는 0보다 큰 정수를 나타낸다.
예를 들어, Z는 6이고, 차수 Z×Z의 요소 부분 행렬은 차수 6×6의 행렬이다. 이 경우, -1은 제로 행렬을 나타내고;
Figure pct00010
0은 단위 행렬을 나타내고;
Figure pct00011
1은 단위 행렬이 우측으로 1 비트만큼 시프트된다는 것을 나타내고;
Figure pct00012
2는 단위 행렬이 우측으로 2 비트만큼 시프트된다는 것을 나타내고;
Figure pct00013
기타 등등이다.
베이스 행렬은 mb개의 행을 가지며, 각각의 행의 행 가중치는 행에서 -1이 아닌 값들의 수량이고, 베이스 행렬의 행들에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량은 베이스 행렬의 최대 행 가중치이다. 예를 들어, 다음의 베이스 행렬에 대해, 제로번째 행의 행 가중치는 3이고, 제1 행의 행 가중치는 2이다. 이 경우, -1이 아닌 값들의 최대 수량을 갖는 행이 제로번째 행이다. 행의 행 가중치는 3이고, 따라서 베이스 행렬의 최대 행 가중치는 3이다.
Figure pct00014
본 출원의 이 실시예에서, L개의 변수 노드는 베이스 행렬의 최대 행 가중치에 기초하여 배치될 수 있고, 여기서 L은 베이스 행렬의 최대 행 가중치 이상이다. 선택적으로, L은 베이스 행렬의 최대 행 가중치와 동일하게 설정될 수 있다.
203. 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 L개의 변수 노드에 개별적으로 매핑하고, 여기서 상이한 유효 부분 행렬들은 상이한 변수 노드에 대응한다.
체크 노드의 계층은 베이스 행렬의 행으로 표현되는 부분 행렬이라는 점에 유의해야 한다.
예를 들어, 이하의 체크 행렬에 대해,
Figure pct00015
체크 행렬의 베이스 행렬의 확장 인자는 2인데, 즉, 베이스 행렬은:
Figure pct00016
이 경우, 베이스 행렬의 제로번째 행은 체크 행렬의 제로번째 행 계층에서의 부분 행렬을 나타내는데, 즉:
Figure pct00017
베이스 행렬의 제로번째 행은 체크 행렬의 제로번째 행 계층에서의 부분 행렬을 나타내는데, 즉:
Figure pct00018
또한, 유효 부분 행렬은 베이스 행렬에서 -1이 아닌 값으로 표현되는 부분 행렬이다. 전술한 베이스 행렬의 유효 부분 행렬은 체크 행렬의 것인 그리고 0 및 1로 표현되는 부분 행렬이고, 체크 행렬의 제로번째 계층 내의 유효 노드들은 각각 다음과 같다:
Figure pct00019
체크 행렬의 제1 계층의 유효 노드들은 각각 다음과 같다:
Figure pct00020
체크 행렬의 최대 행 가중치는 3이기 때문에, L은 변수 노드 0, 변수 노드 1, 및 변수 노드 2를 획득하기 위해 3과 동일하게 설정될 수 있다. 따라서, 체크 노드의 각각의 계층 내의 유효 부분 행렬들은 L개의 변수 노드에 매핑되어 다음을 획득하는데, 여기서 상이한 유효 부분 행렬들은 상이한 변수 노드에 대응한다.
Figure pct00021
-> 변수 노드 0
Figure pct00022
-> 변수 노드 1
체크 노드의 각각의 계층 내의 유효 부분 행렬들은 L개의 변수 노드에 매핑되어 다음을 획득하는데, 여기서 상이한 유효 부분 행렬들은 상이한 변수 노드에 대응한다.
Figure pct00023
-> 변수 노드 0
Figure pct00024
-> 변수 노드 1
Figure pct00025
-> 변수 노드 2
204. L개의 매핑된 변수 노드 각각에, 체크 행렬의 각각의 계층에서의 각각의 유효 부분 행렬에 대응하는 데이터를 전송한다.
205. 수신된 데이터를 사용하여 L개의 변수 노드에 의해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행한다.
본 출원의 이 실시예는 계층화된 정규화된 최소-합 디코딩 알고리즘에 의해 구현된다는 점에 유의해야 한다. 구체적으로, (베이스 행렬의 j번째 행에 의해 표현될 수 있는- j의 값은 0, 1, ..., mb-1임 -) 체크 행렬의 j번째 계층에 대해, 코드 워드 시퀀스는 다음의 3개의 수학식을 사용하여 디코딩된다:
Figure pct00026
전술한 수학식들에서, nj는 좌측에서 우측으로 베이스 행렬의 열의 시퀀스 번호를 나타내고 0, 1, ..., nb의 값을 갖는다. 또한, N(j)은 베이스 행렬의 j번째 행에서 -1과 동일하지 않은 모든 값들이 위치하는 열들의 세트를 나타내고, 여기서 차수 4×11의 베이스 행렬로 표현되는 체크 행렬에 대해, N(j)은 0, 2, 3, 4, 5, 6, 및 7을 포함하고; k는 체크 행렬의 계층에서의 행의 시퀀스 번호를 나타내고 0, 1, ..., Z-1의 값을 가지며; λ는 입력 코드 워드 시퀀스, 즉 수신된 코드 워드 시퀀스 또는 이전 계층에서의 반복 후에 획득된 코드 워드 시퀀스를 나타내고, 여기서 차수 m×n의 체크 행렬에 대해, λ는 n개의 값을 가질 수 있고; r은 다음 계층의 입력 값으로서 사용될, 코드 워드 시퀀스와 함께 업데이트되고 반복되기 위해 사용되는 순환 변수를 나타내고, 또한 n개의 값을 가지며, 여기서 r의 초기 값은 0으로 설정될 수 있고; q는 중간 변수를 나타내고 연산(전술한 3개의 수학식에서의 연산들)에서 λ를 업데이트하고 반복하기 위해 사용되고; α는 보정 인자를 나타내고 보통 약 0.8의 값을 가지며; V(j)\nj는 N(j)에서의 nj 이외의 값들의 세트를 나타내고; sign()는 심볼 함수를 나타내고, 구체적으로, 심볼 함수의 파라미터가 0보다 크면, 값은 1이고; 파라미터가 0 미만이면, 값이 -1이거나; 또는 파라미터가 0과 동일하면, 값은 0이고;
Figure pct00027
는 누적 곱 함수를 나타내고; min()은 최소 함수를 나타낸다.
전술한 3개의 수학식을 통해, 코드 워드 시퀀스는 체크 행렬을 사용하여 반복되어 최종적으로 정보 시퀀스를 획득한다. 구체적으로, 코드 워드 시퀀스는 먼저 체크 행렬의 제1 계층을 사용하여 연산되어
Figure pct00028
Figure pct00029
을 획득하고; 그 후,
Figure pct00030
Figure pct00031
은 체크 행렬의 모든 계층들이 사용될 때까지, 체크 행렬의 다음 계층을 계속 사용함으로써 계속 연산하기 위한 입력 값으로서 사용되고; 최종적으로 획득된 새로운 코드 워드 시퀀스가 정보 시퀀스로서 사용된다.
본 출원의 이 실시예에서, 하드웨어의 관점에서, 코드 워드 시퀀스는 체크 행렬을 사용하여 변수 노드 및 체크 노드에 의해 연산될 필요가 있다. 변수 노드는 수학식 (1)을 수행하고, 그 후 획득된 결과를 체크 노드에 전달하여, 체크 노드가 수학식 (2)를 수행하고, 그 후 획득된 결과를 변수 노드에 반환하도록 구성된다. 변수 노드는 수학식 (3)을 수행하여 λ에 관련된 하나의 반복을 완료한다.
본 출원의 이 실시예에서, L개의 변수 노드에 대한 체크 노드의 각각의 계층에서의 유효 부분 행렬들의 매핑이 결정되기 때문에, 코드 워드 시퀀스의 계산을 완료하기 위해, nb개의 변수 노드를 배치할 필요가 없고, L개의 변수 노드만이 배치될 필요가 있다.
다음은 설명을 위해 예를 사용한다.
λ의 값들의 수량이 8이라고, 즉 8개의 디지트(digit)의 코드 워드 시퀀스가 수신된다고 가정하고, λ0=3, λ1=2, λ2=-5, λ3=-7, λ4=4, λ5=1, λ6=-9, 및 λ7=10이라고 가정한다.
체크 행렬은 다음과 같다고 가정한다:
Figure pct00032
체크 행렬의 확장 인자가 2인 베이스 행렬은 다음과 같다:
Figure pct00033
체크 행렬의 제1 계층(체크 행렬은 총 2개의 계층을 포함하고, 각각의 계층은 2개의 행을 포함함)을 사용하여 코드 워드 시퀀스에 대해 연산 처리가 수행되고, 입력 값은 수신된 코드 워드 시퀀스이다. λnj[k]는 체크 행렬의 것이고 그리고 베이스 행렬의 nj번째 행으로 표현되는 k번째 행이라는 것을 알 수 있다. 구체적으로, j=0일 때, nj의 값들은 각각 0, 2, 및 3인데, 즉, 처리될 필요가 있는 코드 워드 시퀀스는 λ0[0]=λ0, λ2[0]=λ5, λ3[0]=λ6, λ0[1]=λ1, λ2[1]=λ4, λ3[1]=λ7, 등이다. λnj[k]에 대해 연산 처리가 수행된 후에, 새로운 시퀀스가 획득된다. 새로운 시퀀스는 다음 계층의 입력 값으로서 사용되는데, 즉 j=1일 때 유사한 연산이 수행된다.
본 출원의 이 실시예에서는, 4개의 변수 노드를 배치할 필요가 없다. 베이스 행렬의 최대 행 가중치(즉, 3)가 계속 결정되고, 그 후 그 수량이 최대 행 가중치 이상인 변수 노드들만이 배치될 필요가 있다고, 즉 3개의 변수 노드(각각 변수 노드 0, 변수 노드 1, 및 변수 노드 2)가 배치될 수 있다고 결정된다. 그 다음, 체크 행렬의 각각의 유효 노드로부터 각각의 변수 노드로의 매핑이, 예를 들어, 체크 노드의 제로번째에서 설정되고, 매핑은 다음과 같다:
Figure pct00034
-> 변수 노드 0
Figure pct00035
-> 변수 노드 1
Figure pct00036
-> 변수 노드 2
체크 노드의 제1 계층에서, 매핑은 다음과 같다:
Figure pct00037
-> 변수 노드 0
Figure pct00038
-> 변수 노드 1
Figure pct00039
-> 변수 노드 2
변수 노드는 수학식 (1) 및 (3)을 연산하는데 사용되고, 체크 노드는 수학식 (2)을 연산하는데 사용된다.
먼저, λ0=3, λ1=2, λ2=-5, λ3=-7, λ4=4, λ5=1, λ6=-9, 및 λ7=10에 대해, r의 초기 값이 0이라고, 즉 rj,nj[0]이 0이라고 가정한다. 이 경우, 수학식 (1)에 따라 계산될 필요가 있는 λ가 λ0, λ5, 및 λ6이고, 그 후 λ0가 변수 노드 0에 전송되고, λ5가 변수 노드 1에 전송되고,λ6가 변수 노드 2에 전송되어, 계산을 통해 다음을 획득한다고 결정될 수 있다:
수학식 (1):
Figure pct00040
그 다음, q0,0, q0,2, 및 q0,3가 체크 노드에 전송되고, 체크 노드는 수학식 (2)를 수행한다:
수학식 (2):
Figure pct00041
new_r0,0[0], new_r0,2[0], 및 new_r0,3[0]이 획득된 후에, new_r0,0[0], new_r0,2[0], 및 new_r0,3[0]이 변수 노드로 전송되어, 변수 노드는 수학식 (3)을 수행한다:
수학식 (3):
Figure pct00042
따라서, new_λ0,0[0], new_λ0,2[0], 및 new_λ0,3[0]이 획득되고, 나머지 λ1, λ2, λ3, λ4, 및 λ7는 모두 변화가 없다.
유사하게, 전술한 3개의 수학식은 행 k=1을 사용하여 다음을 획득함으로써 계속 사용될 수 있다:
수학식 (1):
Figure pct00043
수학식 (2):
Figure pct00044
수학식 (3):
Figure pct00045
전술한 연산 후에, λ1, λ4, 및 λ7도 변한다.
체크 행렬의 하나의 계층은 2개의 행을 가지며, 코드 워드 시퀀스가 2개의 행에 의해 연산된 후에, 획득된 새로운 λ는 다음과 같다:
λ0=2, λ1=2, λ2=-5, λ3=-7, λ4=-2, λ5=-2, λ6=-8, 및 λ7=-8
그 다음, 이러한 시퀀스는 입력 값으로서 다음 계층에 전달된다. 4개의 변수 노드는 이러한 시퀀스를 동일한 방식으로 처리하고, 획득된 최신의 시퀀스가 정보 시퀀스로서 사용된다.
체크 행렬에서 계층 j=1을 사용하여 계산이 수행된 후, 다음이 획득된다:
수학식 (1):
Figure pct00046
수학식 (2):
Figure pct00047
수학식 (3):
Figure pct00048
유사하게, 전술한 3개의 수학식은 행 k=1을 사용하여 다음을 획득함으로써 계속 사용될 수 있다:
수학식 (1):
Figure pct00049
수학식 (2):
Figure pct00050
수학식 (3):
Figure pct00051
따라서, 마지막 정보 시퀀스는 (0, 0, 0, -7, 0, -2, -6, -6)이다.
전술한 예에서, Z개의 체크 노드가 필요하다는 점에 유의해야 한다. 체크 행렬의 각각의 계층에 대해, Z개의 체크 노드는 실행 효율을 개선하기 위해 동시에 수행된다. 일부 실현가능한 실시예들에서, P개의 체크 노드가 배치될 수 있고, 여기서 P는 Z보다 작은 양의 정수이고, 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수(rounding up function)이고, 각각의 부분 계층은 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함한다. 계층화된 정규화된 최소-합 디코딩 알고리즘이 수행될 때, 체크 행렬의 각각의 계층의 각각의 부분 계층에서의 행들은 개별적으로 P개의 체크 노드에 대응하고, 여기서 상이한 행들은 상이한 체크 노드들에 대응한다. 데이터를 수신한 후, P개의 체크 노드는 각각의 부분 계층 내의 대응하는 행을 사용하여 데이터에 대해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행한다.
예를 들어, 체크 행렬의 계층은 8개의 행을 갖는데, 즉 베이스 행렬의 확장 인자 Z는 8과 동일하다. 체크 행렬의 단위 행렬은 유효한 부분 행렬의 인스턴스로서 사용된다.
Figure pct00052
체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되며, 여기서 ceiling()은 반올림 함수이고, 각각의 부분 계층은 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함한다. P=3, 즉, ceiling(Z/P)=3이라고 가정하면, 다음이 획득된다:
Figure pct00053
이러한 방식으로, P개(즉, 3개)의 체크 노드만이 배치될 필요가 있으며, 이들은 각각 전술한 부분 계층들 0, 1 및 2의 연산들을 수행하고 사용한다.
계층화된 디코딩 알고리즘에서, 각각의 계층의 계산은 상위 계층의 계산 결과에 의존한다는 점에 유의해야 한다. 계산 유닛(변수 노드 또는 체크 노드)의 처리는 특정한 지연을 갖기 때문에, 판독될 필요가 있고 i번째 계층에서 처리되는 데이터가 (i-1)번째 계층에서 처리된 후에 RAM에 기입되지 않으면, 판독과 기입 사이에 충돌이 존재한다. 이 경우, 도 2f에 도시된 바와 같이, 디코더의 처리율 속도에 영향을 미치는 추가적인 대기 시간이 도입될 필요가 있다.
상위 계층에서의 처리와 하위 계층에서의 처리 사이의 충돌은 2개의 계층의 준-순환 행렬 시프트 값들에 관련된다. QC-LDPC 코드의 준-순환 특징에 기초하여, 베이스 행렬의 행 내의 Z개의 체크 노드는 직교하고, Z개의 노드의 처리는 시퀀스를 갖지 않으며, 따라서 결과들은 동일하다. 베이스 행렬의 행에서 -1이 아닌 모든 값들에 동일한 오프셋 값 변환이 추가되어, 체크 노드들의 시퀀스가 조정될 수 있다.
예를 들어, 도 2g에 도시된 바와 같이, 분할을 통해 획득된 전술한 3개의 부분 계층 행렬의 연산 시퀀스가 조정된다. 행렬에 대해 하기에 나타낸 시퀀스 변환을 수행하기 위해 적절한 오프셋 값을 찾는다. 변환된 행렬이 사용될 때, 디코더의 처리율 속도에 대한 판독과 기입 사이의 충돌의 영향이 특정 정도로 완화될 수 있다.
도 3을 참조한다. 본 출원은 디코더(300)를 제공한다. 디코더(300)는 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 사용하고, 송수신기 모듈(301), 처리 모듈(302), 및 L개의 변수 노드(303)를 포함한다.
송수신기 모듈(301)은 디지트 수량이 n인 코드 워드 시퀀스를 수신하도록 구성되며, 여기서 n은 양의 정수이다.
처리 모듈(302)은 차수 m×n의 체크 행렬을 결정하도록 구성되며, 여기서 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있다.
처리 모듈(302)은 베이스 행렬에 기초하여 L개의 변수 노드를 설정하도록 추가로 구성되고, 여기서 L은 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 베이스 행렬에서 -1이 아닌 값은 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 나타낸다.
처리 모듈(302)은 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 L개의 변수 노드에 개별적으로 매핑하도록 추가로 구성되고, 여기서 상이한 유효 부분 행렬들은 상이한 변수 노드들에 매핑되고, 유효 부분 행렬은 베이스 행렬에서 -1이 아닌 값에 의해 표현되는 부분 행렬이고, 체크 노드의 계층은 베이스 행렬의 행에 의해 표현되는 부분 행렬이다. 처리 모듈은 L개의 매핑된 변수 노드 각각에, 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하도록 추가로 구성된다.
L개의 변수 노드(303)는 수신된 데이터를 사용하여 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성된다.
일부 실현가능한 실시예들에서, 처리 유닛(302)은 구체적으로:
n, Z, 및 랩터형 구조를 갖는 미리 설정된 행렬에 기초하여 차수 mb×nb의 베이스 행렬을 결정하고;
베이스 행렬을 확장하여 차수 m×n의 체크 행렬을 획득하도록 구성된다.
일부 실현가능한 실시예들에서, 처리 유닛(302)은:
P개의 체크 노드를 설정하도록 추가로 구성되고, 여기서 P는 Z보다 작은 양의 정수이고, 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수이고, 각각의 부분 계층은 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함한다.
디코더는: 체크 행렬의 각각의 계층의 각각의 부분 계층 내의 행들을 P개의 체크 노드에 대응하도록 개별적으로 만들고- 상이한 행들은 상이한 체크 노드들에 대응함 -; 데이터를 수신하고; 각각의 부분 계층 내의 대응하는 행을 사용하여 데이터에 대해 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성된 P개의 체크 노드(304)를 추가로 포함한다.
일부 실현가능한 실시예들에서, 처리 유닛(302)은:
오프셋 값을 결정하고, 오프셋 값에 기초하여, 체크 행렬의 계층의 부분 계층들을 사용하는 시퀀스를 조정하도록 추가로 구성된다.
전술된 실시예들의 전부 또는 일부는, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합을 사용하는 것에 의해 구현될 수 있다. 소프트웨어가 실시예들을 구현하기 위해 사용될 때, 실시예들은 컴퓨터 프로그램 제품의 형태로 완전히 또는 부분적으로 구현될 수 있다.
컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어들이 컴퓨터에 로딩되어 실행될 때, 본 발명의 실시예들에 따른 절차들 또는 기능들의 전부 또는 일부가 생성된다. 이러한 컴퓨터는, 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치일 수 있다. 이러한 컴퓨터 명령어들은 컴퓨터 판독가능 저장 매체에 저장될 수 있거나 또는 컴퓨터 판독가능 저장 매체로부터 다른 컴퓨터 판독가능 저장 매체로 송신될 수 있다. 예를 들어, 이러한 컴퓨터 명령어들은 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 유선(예를 들어, 동축 케이블, 광 섬유 또는 DSL(digital subscriber line)) 또는 무선(예를 들어, 적외선, 라디오, 또는 마이크로웨이브) 방식으로, 다른 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로 송신될 수 있다. 컴퓨터 판독가능 저장 매체는 하나 이상의 이용가능 매체들을 통합하는 서버 또는 데이터 센터와 같은 컴퓨터 또는 데이터 저장 디바이스에 의해 액세스가능한 임의의 이용가능 매체일 수 있다. 사용가능한 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드 스테이트 디스크(SSD)) 등일 수 있다.
전술한 시스템, 장치 및 유닛의 상세한 동작 프로세스에 대해, 편리하고 간단한 설명을 위해, 전술한 방법 실시예들에서의 대응하는 프로세스를 참조하는 것이 본 기술분야의 통상의 기술자에 의해 명확하게 이해될 수 있다. 세부사항들은 여기에서 다시 설명하지 않는다.
본 출원에 제공되는 수개의 실시예들에서, 개시된 시스템들, 장치들, 및 방법들이 다른 방식들로 구현될 수 있다는 점이 이해되어야 한다. 예를 들어, 설명된 장치 실시예들은 단지 예들이다. 예를 들어, 유닛 분할은 단지 논리 기능 분할이고 실제 구현 동안 다른 분할일 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 결합되거나 다른 시스템에 통합되거나, 일부 특징이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접적 결합 또는 통신 접속은 소정의 인터페이스를 통해 구현될 수도 있다. 장치들 또는 유닛들 사이의 간접적인 결합 또는 통신 접속은 전자적, 기계적 또는 기타의 형태로 구현될 수도 있다.
개별 부분들로서 설명된 유닛들은 물리적으로 분리되거나 분리되지 않을 수 있으며, 유닛들로서 표시된 부분들은 물리적 유닛들이거나 아닐 수 있고, 하나의 위치에 위치될 수 있거나, 또는 복수의 네트워크 유닛상에 분산될 수 있다. 유닛들의 일부 또는 전부는 실시예들의 해결책들의 목적들을 달성하기 위해 실제 요건들에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예들의 기능적 유닛들은 하나의 처리 유닛 내로 통합될 수 있거나, 유닛들 각각은 단독으로 물리적으로 존재할 수 있고, 또는 2개 이상의 유닛들이 하나의 유닛 내로 통합된다. 통합 유닛은 하드웨어의 형태로 구현될 수 있거나, 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립 제품으로 판매되거나 사용될 때, 통합된 유닛은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 출원의 기술적 해결책들은 본질적으로, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결책들의 전부 또는 일부는, 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, (퍼스널 컴퓨터, 서버, 네트워크 디바이스일 수 있는) 컴퓨터 디바이스에게 본 출원의 실시예들에서 설명된 방법들의 단계들의 전부 또는 일부를 수행하라고 지시하기 위한 여러 명령어들을 포함한다. 저장 매체는 USB 플래시 드라이브, 착탈 가능 하드 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
전술한 실시예들은, 본 출원을 제한하기 위해서가 아니라, 단지 본 출원의 기술적 해결책들을 설명하기 위해 의도된다. 본 출원이 전술한 실시예들을 참조하여 상세히 설명되지만, 본 기술분야의 통상의 기술자들은 여전히, 본 출원의 실시예들의 기술적 해결책들의 사상 및 범위로부터 벗어나지 않고서, 전술한 실시예들에서 설명되는 기술적 해결책들에 대한 수정들을 행할 수 있거나 그 일부 기술적 특징들에 대한 동등한 대체들을 행할 수 있다는 점이 이해되어야 한다.

Claims (11)

  1. 데이터 처리 방법- 상기 방법은 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 사용함 -으로서,
    디지트 수량이 n인 코드 워드 시퀀스를 수신하는 단계- n은 양의 정수임 -;
    차수 m×n의 체크 행렬을 결정하는 단계- 상기 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 상기 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있음 -;
    상기 베이스 행렬에 기초하여 L개의 변수 노드를 설정하는 단계- L은 상기 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 상기 베이스 행렬에서 -1이 아닌 값은 상기 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 표현함 -;
    상기 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 상기 L개의 변수 노드에 개별적으로 매핑하는 단계- 상이한 유효 부분 행렬들은 상이한 변수 노드들에 매핑되고, 상기 유효 부분 행렬은 상기 베이스 행렬에서 -1이 아닌 값에 의해 표현되는 부분 행렬이고, 상기 체크 노드의 계층은 상기 베이스 행렬의 행에 의해 표현되는 부분 행렬임 -;
    상기 L개의 매핑된 변수 노드 각각에, 상기 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하는 단계; 및
    상기 수신된 데이터를 사용하여 상기 L개의 변수 노드에 의해 상기 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하는 단계를 포함하는 데이터 처리 방법.
  2. 제1항에 있어서,
    L은 상기 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량과 동일한 데이터 처리 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 차수 m×n의 체크 행렬을 결정하는 단계는:
    n, Z, 및 랩터형 구조를 갖는 미리 설정된 행렬에 기초하여 차수 mb×nb의 베이스 행렬을 결정하는 단계; 및
    상기 베이스 행렬을 확장하여 차수 m×n의 상기 체크 행렬을 획득하는 단계를 포함하는 데이터 처리 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 방법은:
    P개의 체크 노드를 설정하는 단계- P는 Z보다 작은 양의 정수이고, 상기 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수(rounding up function)이고, 각각의 부분 계층은 상기 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함함 -; 및
    상기 체크 행렬의 각각의 계층의 각각의 부분 계층 내의 행들을 상기 P개의 체크 노드에 대응하도록 개별적으로 만들고- 상이한 행들은 상이한 체크 노드들에 대응함 -; 상기 P개의 체크 노드를 사용하여 데이터를 수신하고; 각각의 부분 계층 내의 대응하는 행을 사용하여 상기 데이터에 대해 상기 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하는 단계를 추가로 포함하는 데이터 처리 방법.
  5. 제4항에 있어서,
    상기 P개의 체크 노드를 설정하는 단계 이후에,
    오프셋 값을 결정하고, 상기 오프셋 값에 기초하여, 상기 체크 행렬의 계층의 부분 계층들을 사용하는 시퀀스를 조정하는 단계를 추가로 포함하는 데이터 처리 방법.
  6. 디코더- 상기 디코더는 계층화된 정규화된 최소-합에 기초한 디코딩 알고리즘을 사용함 -로서,
    디지트 수량이 n인 코드 워드 시퀀스를 수신하도록 구성된 송수신기 모듈- n은 양의 정수임 -; 및
    차수 m×n의 체크 행렬을 결정하도록 구성된 처리 모듈- 상기 체크 행렬의 베이스 행렬은 차수 mb×nb의 행렬이고, mb는 m/Z와 동일하고, nb는 n/Z와 동일하고, Z는 상기 베이스 행렬의 확장 인자이고, m과 Z 둘 다는 양의 정수이고, Z는 m과 n 둘 다에 의해 나눌 수 있음 -을 포함하고;
    상기 처리 모듈은 상기 베이스 행렬에 기초하여 L개의 변수 노드를 설정하도록 추가로 구성되고- L은 상기 베이스 행렬에서 -1이 아닌 값들의 최대 수량을 갖는 행에서 -1이 아닌 값들의 수량 이상이고, 상기 베이스 행렬에서 -1이 아닌 값은 상기 체크 행렬에서 차수 Z×Z의 비제로 부분 행렬을 표현함 -;
    상기 처리 모듈은 상기 체크 노드의 각각의 계층 내의 유효 부분 행렬들을 상기 L개의 변수 노드에 개별적으로 매핑하도록 추가로 구성되고- 상이한 유효 부분 행렬들은 상이한 변수 노드들에 매핑되고, 상기 유효 부분 행렬은 상기 베이스 행렬에서 -1이 아닌 값에 의해 표현되는 부분 행렬이고, 상기 체크 노드의 계층은 상기 베이스 행렬의 행에 의해 표현되는 부분 행렬임 -;
    상기 처리 모듈은 상기 L개의 매핑된 변수 노드 각각에, 상기 체크 행렬의 각각의 계층 내의 각각의 유효 부분 행렬에 대응하는 데이터를 전송하도록 추가로 구성되고;
    상기 L개의 변수 노드는 상기 수신된 데이터를 사용하여 상기 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성되는 디코더.
  7. 제6항에 있어서,
    상기 처리 모듈은 구체적으로:
    n, Z, 및 랩터형 구조를 갖는 미리 설정된 행렬에 기초하여 차수 mb×nb의 베이스 행렬을 결정하고;
    상기 베이스 행렬을 확장하여 차수 m×n의 상기 체크 행렬을 획득하도록 구성되는 디코더.
  8. 제6항 또는 제7항에 있어서,
    상기 처리 모듈은:
    P개의 체크 노드를 설정하도록 추가로 구성되고, P는 Z보다 작은 양의 정수이고, 상기 체크 행렬의 각각의 계층은 ceiling(Z/P) 부분 계층들로 분할되고, ceiling()은 반올림 함수(rounding up function)이고, 각각의 부분 계층은 상기 체크 행렬의 P개의 행을 초과하지 않는 행들을 포함하고;
    상기 디코더는:
    상기 체크 행렬의 각각의 계층의 각각의 부분 계층 내의 행들을 상기 P개의 체크 노드에 대응하도록 개별적으로 만들고 - 상이한 행들은 상이한 체크 노드들에 대응함 -; 데이터를 수신하고; 각각의 부분 계층 내의 대응하는 행을 사용하여 상기 데이터에 대해 상기 계층화된 정규화된 최소-합 디코딩 알고리즘에서 대응하는 연산 단계를 수행하도록 구성된 P개의 체크 노드를 추가로 포함하는 디코더.
  9. 제8항에 있어서,
    상기 처리 모듈은:
    오프셋 값을 결정하고, 상기 오프셋 값에 기초하여, 상기 체크 행렬의 계층의 부분 계층들을 사용하는 시퀀스를 조정하도록 추가로 구성되는 디코더.
  10. 컴퓨터 프로그램 제품으로서,
    실행될 때, 상기 컴퓨터 프로그램 제품은 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 구성되는 컴퓨터 프로그램 제품.
  11. 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 저장 매체는 명령어들을 저장하고, 상기 명령어들은 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하기 위해 사용되는 컴퓨터 판독가능 저장 매체.
KR1020227012449A 2019-09-30 2020-07-24 데이터 처리 방법 및 디코더 KR20220062389A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910945369.2A CN112583420B (zh) 2019-09-30 2019-09-30 一种数据处理方法和译码器
CN201910945369.2 2019-09-30
PCT/CN2020/104335 WO2021063091A1 (zh) 2019-09-30 2020-07-24 一种数据处理方法和译码器

Publications (1)

Publication Number Publication Date
KR20220062389A true KR20220062389A (ko) 2022-05-16

Family

ID=75117051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227012449A KR20220062389A (ko) 2019-09-30 2020-07-24 데이터 처리 방법 및 디코더

Country Status (6)

Country Link
US (1) US20220224357A1 (ko)
EP (1) EP4027525A4 (ko)
JP (1) JP7383134B2 (ko)
KR (1) KR20220062389A (ko)
CN (1) CN112583420B (ko)
WO (1) WO2021063091A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113328756B (zh) * 2021-04-26 2023-04-11 深圳市科思科技股份有限公司 用于提升分层qc-ldpc译码器硬件处理性能的方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
KR101339120B1 (ko) * 2007-01-24 2013-12-09 퀄컴 인코포레이티드 가변 크기들의 패킷들의 ldpc 인코딩 및 디코딩
CN101207386B (zh) * 2007-11-23 2010-05-19 中山大学 一种二进制低密度奇偶校验码的构造方法
CN101471673A (zh) * 2007-12-28 2009-07-01 三星电子株式会社 Ldpc码存储单元划分方法以及一种ldpc码存储器
US8433972B2 (en) * 2009-04-06 2013-04-30 Nec Laboratories America, Inc. Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes
CN103384153B (zh) * 2013-07-03 2016-05-18 清华大学 准循环ldpc码译码方法及系统
GB2510932B (en) * 2013-08-27 2015-01-21 Imagination Tech Ltd An improved decoder for low-density parity-check codes
US9548759B1 (en) * 2013-11-26 2017-01-17 Marvell International Ltd. Systems and methods for processing LDPC codes with different circulant sizes
CN105846830B (zh) * 2015-01-14 2019-07-30 北京航空航天大学 数据处理装置
KR20170083432A (ko) * 2016-01-08 2017-07-18 삼성전자주식회사 레이트 호환 가능 저밀도 패리티 검사 코드를 지원하는 통신 시스템에서 신호를 송신 및 수신하는 장치 및 방법
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
CN110024294B (zh) * 2016-11-21 2021-08-27 华为技术有限公司 空间耦合准循环ldpc码的生成
EP3373488B1 (en) * 2017-03-07 2020-05-06 Commissariat à l'Energie Atomique et aux Energies Alternatives Stopping criterion for decoding quasi-cyclic ldpc codes
WO2019001090A1 (zh) * 2017-06-27 2019-01-03 华为技术有限公司 信息处理的方法、装置和通信设备
US10484012B1 (en) * 2017-08-28 2019-11-19 Xilinx, Inc. Systems and methods for decoding quasi-cyclic (QC) low-density parity-check (LDPC) codes
CN108365849B (zh) * 2018-01-10 2021-03-09 东南大学 基于simd指令集的多码率多码长ldpc码解码方法
CN110289933B (zh) * 2018-03-19 2022-04-12 华为技术有限公司 通信方法、通信装置和系统
CN109309502B (zh) * 2018-08-03 2021-05-04 西安电子科技大学 5g nr标准的分层ldpc基矩阵处理译码方法
KR102631407B1 (ko) * 2018-10-24 2024-01-31 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN109586733B (zh) * 2018-11-23 2021-06-25 清华大学 一种基于图形处理器的ldpc-bch译码方法
CN109921802B (zh) * 2019-02-26 2023-02-07 北京中科晶上科技股份有限公司 一种qc-ldpc码的译码方法、模块及装置

Also Published As

Publication number Publication date
CN112583420B (zh) 2024-01-09
WO2021063091A1 (zh) 2021-04-08
EP4027525A1 (en) 2022-07-13
US20220224357A1 (en) 2022-07-14
JP2022550768A (ja) 2022-12-05
CN112583420A (zh) 2021-03-30
EP4027525A4 (en) 2022-11-16
JP7383134B2 (ja) 2023-11-17

Similar Documents

Publication Publication Date Title
US7627801B2 (en) Methods and apparatus for encoding LDPC codes
CN105075128B (zh) 用于经提升ldpc码的方法、计算机可读存储介质和设备
CN106685586B (zh) 生成用于在信道中传输的低密度奇偶校验码的方法及设备
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
US8438459B2 (en) Apparatus and method for decoding using channel code
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
WO2004019268A1 (en) Methods and apparatus for encoding ldpc codes
EP3556021A1 (en) Efficiently decodable qc-ldpc code
BRPI0514179B1 (pt) Ldpc coding method
US8996965B2 (en) Error correcting decoding device and error correcting decoding method
JP6990259B2 (ja) 疑似サイクリック低密度パリティチェックの設計方法および装置
KR102019893B1 (ko) 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
CN105811996B (zh) 一种基于准循环ldpc的数据处理方法及系统
CN108270510A (zh) 基于ldpc码的通信方法和通信设备
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
KR20220062389A (ko) 데이터 처리 방법 및 디코더
CN111384970B (zh) 一种译码方法、装置及通信设备
CN112204888A (zh) 具有高效编码和良好误码平层特性的一类qc-ldpc码
KR102250284B1 (ko) 시퀀스 결정을 위한 방법 및 장치, 디바이스 및 저장 매체
CN108234066A (zh) 基于ldpc的通信方法和通信设备
CN111313912A (zh) 一种ldpc码编码器及编码方法
CN106130565B (zh) 一种由rc-ldpc分组码获得rc-ldpc卷积码的方法
CN110324048B (zh) 一种通信调制系统中ra-ldpc-cc的编码方法及编码器
WO2018202142A1 (zh) 序列确定方法及装置、设备、存储介质
CN108400836B (zh) 一种多码率多码长qc-ldpc码的构造和编码方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal