KR20100099264A - 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치 - Google Patents

저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치 Download PDF

Info

Publication number
KR20100099264A
KR20100099264A KR1020107014998A KR20107014998A KR20100099264A KR 20100099264 A KR20100099264 A KR 20100099264A KR 1020107014998 A KR1020107014998 A KR 1020107014998A KR 20107014998 A KR20107014998 A KR 20107014998A KR 20100099264 A KR20100099264 A KR 20100099264A
Authority
KR
South Korea
Prior art keywords
matrix
code
length
generation matrix
low density
Prior art date
Application number
KR1020107014998A
Other languages
English (en)
Other versions
KR101248991B1 (ko
Inventor
진 쉬
쥔 쉬
즈펑 위앤
위앤리 팡
송 리
리우쥔 후
Original Assignee
지티이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지티이 코포레이션 filed Critical 지티이 코포레이션
Publication of KR20100099264A publication Critical patent/KR20100099264A/ko
Application granted granted Critical
Publication of KR101248991B1 publication Critical patent/KR101248991B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치에 관한 것으로서, 상기 코딩 방법은, P 개의 코드율이 R 0 인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 저밀도 생성 행렬 코드 마더 코드 집합을 구축하는 바, 그 중 상기 저밀도 생성 행렬 코드 마더 코드 집합은 균일한 기초 행렬
Figure pct00140
을 구비하고,
Figure pct00141
이며, kb는 기초 행렬의 행 수이고, nb는 기초 행렬의 열 수이며; 저밀도 생성 행렬 코드 마더 코드 집합 중의 코딩할 정보 비트 시퀀스의 길이 K와 중간 변수의 길이 L 의 관계에 근거하여, 중간 변수의 길이 L을 취득하고; 중간 변수의 길이 L과 기초 행렬의 행 수 kb를 이용하여 기초 행렬을 처리하는 확장 인수 zk를 취득하고, 확장 인수 zk를 이용하여 행렬에 대하여 보정과 확장을 진행하여 생성 행렬 Gldgc를 취득하며; 생성 행렬의 L 행과 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 코딩할 정보 비트 시퀀스를 코딩하는 것을 포함한다.

Description

저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치{Coding method, coding device, decoding method and decoding device for low density generator matrix code}
본 발명은 통신 업계에 관한 것으로서, 특히 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치에 관한 것이다.
소거 채널은 중요한 채널 모델이다. 예를 들면, 파일이 인터넷 상에서 전송될 때 패킷을 기반으로 통신을 진행하는데, 일반적으로 각 패킷은 에러 없이 수신단에 의해 수신되거나, 또는 아예 수신단에 수신되지 못한다. 전송 제어 프로토콜(Transmission Control Protocol, TCP)에서, 네트워크 패킷 손실에 대한 방법으로는 에러 검사 재전송 매커니즘으로서, 즉 입력단으로부터 출력단까지의 피드백 채널을 이용하여 재전송 하여야 할 패킷을 제어한다. 수신단은 패킷 손실을 발견하면 재전송 제어 신호를 발생하며, 정확하게 완전한 패킷을 수신할 때까지 진행하며; 수신단에서 패킷 수신 시, 마찬가지로 수신 확인 신호를 발생한다. 발송단도 각 패킷을 추적하여 피드백 된 알림 신호를 수신할 때까지 진행하며, 그렇지 않으면 재전송을 진행한다.
스트림 모드와 파일 다운로드 모드 기반의 데이터 방송 서비스는 점대점 서비스로서, 피드백을 허용하지 않으므로 종래의 에러 검사 재전송 매커니즘을 사용할 수 없으며, 순방향 에러 보정(Forward Error Correction, FEC)을 이용하여 신뢰성 있는 전송을 확보한다. 전형적인 응용층 FEC에는 RS 코드(Reed-Solomon codes)와 디지털 파운틴 코드(Fountain codes) 등이 포함된다. RS 코드는 코딩/디코딩이 복잡하기 때문에, 일반적으로 코드 길이가 비교적 작은 상황에 적용된다. LT 코드(Luby Transform codes)와 Raptor 코드는 실제 응용 가능한 두 가지 디저털 파운틴 코드이다. LT 코드는 선형의 코딩 및 디코딩 시간을 갖고 있고, RS 코드에 비하여 본질적인 향상이 있으며, Raptor 코드는 프리 코딩 기술을 이용하였기 때문에, 더욱 높은 디코딩 효율을 구비하고 있다. 3GPP의 멀티미디어 브로드 캐스팅/멀티 캐스팅 서비스(Multimedia Broadcast/Multicast Service, MBMS) 및 디지털 비디오 브로드 캐스팅(Digital Video Broadcasting, DVB)에서는 모두 Raptor 코드를 FEC 코딩 방안으로 이용하고 있다.
저밀도 생성 행렬 코드(Low Density Generator Matrix Codes, LDGC)는 선형 패킷 코드로서, 이의 생성 행렬 중의 영(0)이 아닌 요소는 일반적으로 희소하다. 아울러, LDGC 또 시스템 코드로서, 이의 생성 행렬 중의 첫 k 열로 구성된 정방 행렬은 일반적으로 상삼각 또는 하삼각 행렬로서, 이러한 행렬의 역은 일반적으로 반복을 통하여 완성할 수 있다. LDGC의 코딩은 우선 시스템 코드 중 정보 비트와 중간 변수의 대응 관계를 이용하여 중간 변수를 구하여, 이어 다시 중간 변수에 생성 행렬을 곱하여 코딩 후의 코드 워드를 취득한다. LDGC의 디코딩 과정은 우선 생성 행렬을 이용하여 중간 변수를 구하고, 이어 정보 비트와 중간 변수의 변환 관계에 의하여 정보 비트를 구한다. LDGC의 코딩 복잡성은 Raptor 코드보다 훨씬 낮고, 임의 정보 패킷 길이와 임의 코드율 코딩을 지원하고, 성능 상에서는 Raptor 코드와 유사하며, 모두 이론적인 최적의 성능에 도달할 수 있다.
구조화 된 저밀도 생성 행렬 코드(LDGC 코드)에 비하여, LT 코드는 시스템 코드의 코딩 방식을 지원하지 않기 때문에, LT 코드는 일부 실제의 FEC 코딩 요구를 만족시킬 수 없고; Raptor 코드는 시스템 코드를 지원하기는 하지만, Raptor 코드는 독립적인 프리 코딩 과정을 필요로 하는 바, 즉 하나의 프로 코딩 행렬을 필요로 하기 때문에, 코딩의 복잡성이 높지만, LDGC 코드는 직접 생성 행렬을 이용하여 코딩하기 때문에, 기타 프로 코딩 행렬을 필요로 하지 않으며, 아울러 LDGC 코딩에서는 후진 대입법으로 상삼각(또는 하삼각)을 풀기 때문에, 코딩이 복잡성이 Raptor 코드보다 훨씬 낮다. 총적으로 말하면, LT 코드와 비하면, LDGC의 우세는 시스템 코드를 지원하는 것이고; 아울러 Raptor 코드와 비하면, LDGC의 우세는 코딩 복잡성이 낮다는 것이다.
상기 하나 또는 복수 개의 문제를 해결하기 위하여, 본 발명에서는 구조화 된 저밀도 생성 행렬 코드의 코딩 방법을 제공한다.
본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 코딩 방법은, 1단계: P개의 코드율이 R 0 인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 저밀도 생성 행렬 코드 마더 코드 집합을 구축하는 바, 그 중에서 상기 저밀도 생성 행렬 코드 마더 코드 집합은 균일한 기초 행렬
Figure pct00001
을 구비하고,
Figure pct00002
이며, 여기에서 k b 는 기초 행렬의 행의 개수이고, n b 는 기초 행렬의 열의 개수이며; 2단계: 저밀도 생성 행렬 코드 마더 코드 집합 중의 코딩할 정보 비트 시퀀스의 길이 K와 중간 변수의 길이 L 의 관계에 의하여, 중간 변수의 길이 L을 취득하며; 3단계: 중간 변수의 길이 L과 기초 행렬의 행의 개수 k b 를 이용하여 기초 행렬을 처리하는 확장 인수
Figure pct00003
를 취득하고, 확장 인수
Figure pct00004
를 이용하여 행렬에 대하여 보정과 확장을 진행하여 생성 행렬 Gldgc를 취득하며; 그리고 4단계: 생성 행렬의 L 행과 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 코딩할 정보 비트 시퀀스를 코딩하는; 등 단계를 포함하여 구성된다.
그 중에서, 2단계에서 공식
Figure pct00005
을 통하여, 코딩할 정보 비트 시퀀스의 길이 K를 이용하여 중간 변수의 길이 L을 취득하고, 그 중에서,
Figure pct00006
는 정수를 취하는 보정하는 것을 뜻하는 바, 보정 방법으로는 올림, 내림 또는 반올림하기가 있으며, a는 1보다 큰 정 유리수이고, b는 정정수이다.
그 중에서, 3단계는, a단계: 공식
Figure pct00007
를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 k b 를 이용하여 확장 인수 Z t' 를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
Figure pct00008
로 구성된 확장 인수 집합 Z set 중에서, 확장 인수 Z t Z k
Figure pct00009
의 관계를 갖는 기초 행렬을 처리하는 확장 인수 Z k 를 취득하며; b단계: 기초 행렬을 처리하는 확장 인수 Z k 를 이용하여 기초 행렬을 보정하여, 보정된 기초 행렬
Figure pct00010
를 취득하며; c단계: 기초 행렬을 처리하는 확장 인수 Z k 를 이용하여 보정된 기초 행렬을 확장하여, 미보정된 생성 행렬 G'를 취득하며; 및 d단계: 미보정된 생성 행렬 G' 를 보정하여, 생성 행렬 Gldgc를 취득하는; 단계를 포함하여 구성된다.
그 중에서, 4단계는, e단계: L-K 개의 이미 알고 있는 비트를 코딩할 정보 비트 시퀀스 중에 추가하여 길이가 L인 정보 비트 시퀀스 m을 생성하며; f단계: 공식 IㅧGldgc(1:L, 1:L)=m에 의하여, 생성 행렬의 L행, 첫 L열로 구성된 정방 행렬 Gldgc(1:L, 1:L)와 길이가 L인 정보 비트 시퀀스 m을 이용하여 중간 변수 I를 취득하고, 아울러 공식 C=Gldgc에 의하여, 생성 행렬의 L행과 첫 N+L-K열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 중간 변수를 코딩하여, 길이가 N+L-K인 제1 코딩 결과를 생성하며; g단계: 길이가 N+L-K인 제1 코딩 결과에서 L-K 개의 이미 알고 있는 비트를 삭제하여, 길이가 N인 제2 코딩 결과를 생성하는; 단계를 포함하여 구성된다.
그 중에서, 기초 행렬의 행의 개수 k b 는 2보다 큰 정수이고, 기초 행렬의 열의 개수 n b 는 1보다 크거나 같은 정수이다. d단계에서, 미보정된 생성 행렬 G'의 특정 열의 열 무게를 증가하는 것을 통하여 생성 행렬 Gldgc를 취득한다.
본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 코딩 장치는, P개의 코드율이 R 0 인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 구축한 저밀도 생성 행렬 코드 마더 코드 집합의 균일한 기초 행렬
Figure pct00011
을 저장하고, 그 중에서,
Figure pct00012
이고, k b 는 기초 행렬의 행의 개수이고, n b 는 기초 행렬의 열의 개수인 기초 행렬 저장 유닛; 저밀도 생성 행렬 코드 마더 코드 집합 중의 코딩할 정보 비트 시퀀스의 길이 K와 중간 변수의 길이 L 의 관계에 의하여, 중간 변수의 길이 L을 계산하고, 중간 변수의 길이 L과 기초 행렬의 행의 개수 k b 를 이용하여 기초 행렬을 처리하는 확장 인수
Figure pct00013
를 취득하고, 확장 인수
Figure pct00014
를 이용하여 행렬에 대하여 보정과 확장을 진행하여 생성 행렬 Gldgc를 취득하는 행렬 파라미터 계산 유닛; L-K 개의 이미 알고 있는 비트를 코딩할 정보 비트 시퀀스 중에 추가하여 길이가 L인 정보 비트 시퀀스 m을 생성하는 비트 충전 유닛; 공식 Gldgc(1:L, 1:L)=m에 의하여, 생성 행렬의 L행, 첫 L열로 구성된 정방 행렬 Gldgc(1:L,1:L)와 길이가 L인 정보 비트 시퀀스 m을 이용하여 중간 변수 I를 취득하는 프리 코딩 유닛; 생성 행렬의 L행과 첫 N+L-K열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 중간 변수를 코딩하여, 길이가 N+L-K인 제1 코딩 결과를 생성하는 패킷 코드 코딩 유닛; 길이가 N+L-K인 제1 코딩 결과에서 L-K 개의 이미 알고 있는 비트를 삭제하여, 길이가 N인 제2 코딩 결과를 생성하는 비트 삭제 유닛;을 포함하여 구성된다. 그 중에서, 기초 행렬의 k b 행, 첫 k b 열로 구성된 정방 행렬
Figure pct00015
는 상삼각 또는 하삼각 행렬이다.
그 중에서, 행렬 파라미터 계산 유닛은 공식
Figure pct00016
를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 k b 를 이용하여 확장 인수 Z t ,를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
Figure pct00017
로 구성된 확장 인수 집합 Z set 중에서, 확장 인수 Z t Z k
Figure pct00018
관계를 갖는 기초 행렬을 처리하는 확장 인수 Z k 를 취득한다.
그 중에서, 행렬 파라미터 계산 유닛은 기초 행렬을 처리하는 확장 인수 Z k 를 이용하여 기초 행렬을 보정하여, 보정된 기초 행렬
Figure pct00019
를 취득하고, 기초 행렬을 처리하는 확장 인수 Z k 를 이용하여 보정된 기초 행렬을 확장하여, 미보정된 생성 행렬 G'를 취득하며, 미보정된 생성 행렬 G' 를 보정하여, 생성 행렬 Gldgc를 취득한다.
그 중에서, 행렬 파라미터 계산 유닛은 미보정된 생성 행렬 G'의 특정 열의 열 무게를 증가하는 것을 통하여 미보정된 생성 행렬 G'를 보정한다.
본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 디코딩 방법은, 1단계: 코딩 과정에 사용된 확장 인수 Z k 를 이용하여, 기초 행렬
Figure pct00020
에 대하여 보정과 확장을 진행하여, 수신 생성 행렬 Gldgc(:,r1,r2,...ri)를 생성하며; 2단계: L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드 중에 충전시켜 디코딩을 진행할 저밀도 생성 행렬 코드 C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]를 생성하는 바, 그 중에서, I
Figure pct00021
를 만족시키는 정정수이고, L은 코딩 과정에 사용된 중간 변수의 길이이며, N은 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드의 길이이고, K는 코딩 전 저밀도 생성 행렬 코드의 길이이며; 3단계: 공식 C(:,r1,r2,...ri)=I*Gldgc (:,r1,r2,...ri)에 의하여, 수신 생성 행렬과 디코딩을 진행할 저밀도 생성 행렬 코드를 이용하여 1*L의 수신. 중간 변수 I를 취득하며; 4단계: 공식 I*Gldgc (1:L,1:L)=m에 의하여, 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L,1:L)와 수신. 중간 벡터를 이용하여, 길이가 L인 디코딩 결과 m을 취득하며; 및 5단계: 길이가 L인 디코딩 결과 m 중에서 L-K 개의 이미 알고 있는 비트를 삭제하여 길이가 K인 디코딩 결과를 취득하는; 단계를 포함하여 구성된다.
그 중에서, 수신 생성 행렬은 디코딩 과정에 사용된 생성 행렬의 L 행, 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L, 1:N+L-K) 중의 모든 비 소거 일련번호와 대응되는 열 벡터를 보류하고 있다.
그 중에서, 3단계는, a단계: 가우스 소거법을 이용하여, 수신 생성 행렬 Gldgc (:,r1,r2,...ri)에 대하여 행 치환, 열 치환 및/또는 행 소거 연산을 진행하여, L*L 상삼각 행렬을 포함하는 행렬을 취득하며; b단계: L*L 상삼각 행렬을 포함하는 행렬을 이용하여, 디코딩을 진행할 저밀도 생성 행렬 코드에 대하여 치환 및 중첩을 진행하고, 코딩 과정에 사용된 중간 변수를 치환하며; 및 c단계: 후진 대입법에 의하여 상삼각 점화식을 풀어 수신. 중간 벡터 I를 취득하는; 단계를 포함하여 구성된다.
그 중에서, a단계는, 수신 생성 행렬 중의 행 무게가 가장 가벼운 일 행을 선택하여 제j행과 행 교환을 진행하며; 행 교환된 수신 생성 행렬 중의 j행의 제1개 영(0)이 아닌 요소가 위치하는 열과 행 교환된 수신 생성 행렬의 제j열을 열 교환 시키며; 및 행 소거 방법을 이용하여, 열 교환된 수신 생성 행렬의 제j행 제j열의 요소를 이용하여, 열 교환된 수신 생성 행렬의 j열 중의 제j+1행과 최후 행 의 영(0)이 아닌 요소를 소거하는; 단계를 포함한다.
본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 디코딩 장치는, P개의 코드율이 R0인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 구축한 저밀도 생성 행렬 코드 마더 코드 집합의 균일한 기초 행렬
Figure pct00022
을 저장하고, 그 중에서,
Figure pct00023
이고, kb는 기초 행렬의 행의 개수이고, nb는 기초 행렬의 열의 개수인 기초 행렬 저장 유닛; 코딩 과정에 사용된 확장 인수 Z k 를 이용하여, 기초 행렬
Figure pct00024
에 대하여 보정과 확장을 진행하여, 수신 생성 행렬 Gldgc(:,r1,r2,...ri)를 생성하는 행렬 파라미터 계산 유닛; L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드 중에 충전시켜 디코딩을 진행할 저밀도 생성 행렬 코드 C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]를 생성하는 바, 그 중에서, I
Figure pct00025
를 만족시키는 정정수이고, L은 코딩 과정에 사용된 중간 변수의 길이이며, N은 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드의 길이이고, K는 코딩 전 저밀도 생성 행렬 코드의 길이인 비트 충전 유닛; 가우스 소거법을 이용하여, 수신 생성 행렬 Gldgc (:,r1,r2,...ri)에 대하여 행 치환, 열 치환 및/또는 행 소거 연산을 진행하여, L*L 상삼각 행렬을 포함하는 행렬을 취득하는 상삼각 행렬 계산 유닛; 공식 C(:,r1,r2,...ri)=I*Gldgc (:,r1,r2,...ri)에 의하여, L*L 상삼각 행렬을 포함하는 행렬과 디코딩을 진행할 저밀도 생성 행렬 코드를 이용하여 1*L의 수신 중간 변수 I를 취득하는 중간 변수 계산 유닛; 공식 I*Gldgc (1:L,1:L)=m에 의하여, 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L,1:L)와 수신. 중간 벡터를 이용하여, 길이가 L인 디코딩 결과 m을 취득하는 패킷 코드 디코딩 유닛; 및 길이가 L인 디코딩 결과 m 중에서 L-K 개의 이미 알고 있는 비트를 삭제하여 길이가 K인 디코딩 결과를 취득하는 비트 삭제 유닛;을 포함하여 구성된다.
그 중에서, 행렬 파라미터 계산 유닛은 공식
Figure pct00026
를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 k b 를 이용하여 확장 인수 Z t ,를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
Figure pct00027
로 구성된 확장 인수 집합 Z set 중에서, 확장 인수 Z t Z k
Figure pct00028
관계를 갖는 코딩 과정에 사용된 확장 인수 Z k 를 취득한다.
그 중에서, 행렬 파라미터 계산 유닛은 코딩 과정에 사용된 확장 인수 Z k 를 이용하여 기초 행렬을 보정하여 보정된 기초 행렬
Figure pct00029
를 취득하고, 코딩 과정에 사용된 확장 인수 Z k 를 이용하여 보정된 기초 행렬을 확장시켜 기초 생성 행렬 G를 취득한 후, 기초 생성 행렬 G의 L 행과 디코딩을 진행할 저밀도 생성 행렬 코드의 일련번호와 대응되는 열을 취하여 수신 생성 행렬을 생성한다.
그 중에서, 상삼각 행렬 계산 유닛은 수신 생성 행렬 중의 행 무게가 가장 가벼운 일 행을 선택하여 제j행과 행 교환을 진행하고, 행 교환된 수신 생성 행렬 중의 j행의 제1개 영(0)이 아닌 요소가 위치하는 열과 행 교환된 수신 생성 행렬의 제j열을 열 교환 시키며, 행 소거 방법을 이용하여, 열 교환된 수신 생성 행렬의 제j행 제j열의 요소를 이용하여, 열 교환된 수신 생성 행렬의 j열 중의 제j+1행과 최후 행 의 영(0)이 아닌 요소를 소거하여, L*L 상삼각 행렬을 포함하는 행렬을 취득한다.
그 중에서, 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L,1:L)가 좌측 상삼각 또는 좌측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드 앞에 충전시킨다. 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L,1:L)가 우측 상삼각 또는 우측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드의 K-E개 비트 뒤에 충전시키는 바, 그 중에서, E는 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드가 소거 채널 통과 후, 첫 K 개 코드 워드 중에서 소거된 코드 워드의 수량이다.
본 발명을 통하여 저밀도 생성 행렬 코드의 코드 길이 영활성을 향상시킬 수 있고, 기초 행렬의 저장 공간을 감소시킬 수 있어, 코딩/디코딩의 복잡성을 낮출 수 있다.
여기에서의 도면은 본 발명에 대한 이해를 돕기 위한 것으로서, 본 출원의 일부분에 속하며, 본 발명의 예시적 실시예 및 이에 대한 설명은 본 발명을 설명하기 위한 것이며, 본 발명을 제한하는 것이 아니다. 도면 중에서,
도1은 위, 하삼각 기초 행렬 도면.
도2는 본 발명의 실시예에 의한 LDGC의 코딩 방법 흐름도.
도3은 본 발명의 실시예에 의한 LDGC 생성 행렬 도면.
도4는 본 발명의 실시예에 의한 LDGC의 디코딩 방법 흐름도.
도5는 본 발명의 실시예에 의한 소거 채널을 통과한 LDGC 생성 행렬 도면.
도6은 본 발명의 실시예에 의한 가우스 소거법을 이용하여 LDGC 생성 행렬에서 생성된 우측 상삼각 행렬 도면.
도7은 본 발명의 실시예에 의한 LDGC의 코딩 장치 블럭도.
도8은 본 발명의 실시예에 의한 LDGC의 디코딩 장치 블럭도.
본 발명에 의한 LDGC 코드의 코딩 방법은 부동한 코드 길이에 적용 가능하고, 표기하기 간단하여 표준화에 유리하고, 또한 기초 행렬의 저장에 유리하여 더욱 큰 범용성을 구비하고 있다. 상기 LDGC 코드의 생성 행렬 G를 (K×z)×(N×z) 행렬로 가정하면, 이는 K×N 개의 독립 행렬로 구성된 것으로서, 각 독립 행렬은 모두 Z×Z의 기본 치환 행렬의 부동한 멱(冪)이다. 기본 치환 행렬이 단위 행렬 시, 이는 단위 행렬의 순환 이동 행렬(본 명세서에서는 기본으로 우측으로 이동)이다. 하기와 같은 형식을 갖추는 바, 만일
Figure pct00030
이면,
Figure pct00031
이고; 만일
Figure pct00032
가 0보다 크거나 같은 정수이면,
Figure pct00033
로 정의하고, P는 하나의 Z×Z의 표준 치환 행렬로서 하기와 같다.
Figure pct00034
이러한
Figure pct00035
을 통하여 유일하게 각 독립 행렬을 표시할 수 있고, 단위 행렬의 멱은 0으로 표시할 수 있으며, 0 행렬은 일반적으로 -1로 표시한다. 이렇게 G의 각 독립 행렬을 모두 이의 멱으로 대체하면,
Figure pct00036
의 멱 행렬 Gb를 취득할 수 있다. 여기에서, Gb를 G의 기초 행렬, G를 Gb의 확장 행렬로 정의한다. 실제 코딩 시, z=코드 길이/기초 행렬의 열의 개수 nb이며, 확장 인수로 불린다.
예를 들면, 행렬 G는 하기의 파라미터 z와 하나의 2×4의 기초 행렬 Gb 를 확장하여 취득할 수 있는 바, z=3이고
Figure pct00037
이면,
Figure pct00038
이다.
그러므로, 본 발명에 의한 LDGC의 인코더는 기초 행렬 Gb, 확장 인수 z 및 선택된 기본 치환 행렬에 의하여 유일하게 생성된다고 말할 수 있다.
만일 각 부동한 확장 인수에 대하여 LDGC가 모두 하나의 기초 행렬을 사용한다면, 각 부동한 코드 길이에 대하여, LDGC 인코더는 모두 하나의 기초 행렬을 저장하여야 하며, 코드 길이가 아주 많으면, 많은 기초 행렬을 저장하여야 하기 때문에, 표시와 저장의 문제가 존재하게 된다. 그러므로, 코드 길이를 변화시키야 할 경우, 동일 코드율의 일정 범위 내의 여러 가지 코드 길이의 저밀도 생성 행렬 코드는 균일한 형식의 기초 행렬을 사용하며, 여기에서 균일한 기초 행렬을
Figure pct00039
으로 정의한다. 부동한 코드 길이 시, 만일
Figure pct00040
에 대하여 보정과 확장을 진행하면, 생성 행렬 G를 취득할 수 있어, 생성된 인코더는 코드 길이가 변화되는 경우에 사용될 수 있다.
보정은 부동한 코드 길이의 확장 인수를 이용하여 기초 행렬 Gb 중의 비음값을 보정하는 것으로서, 보정된 요소 값은 해당 코드 길이 하의 확장 인수 값보다 작아야 한다. 보정 알고리즘은 여러 가지가 있는 바, 예를 들면, 나머지 연산(mod), 내림 연산(scale+floor), 또는 반올림 연산(scale+round) 등이 있다.
Figure pct00041
를 기초 행렬Gb의 제I행 제j열의 비음 1 요소,
Figure pct00042
를 보정된 행렬
Figure pct00043
의 제I행 제j열의 비음 1 요소로 가정하면, 나머지 연산(mod) 방법에 있어서,
Figure pct00044
이고; 내림 연산(scale+floor) 방법에 있어서,
Figure pct00045
이며; 반올림 연산(scale+round) 방법에 있어서,
Figure pct00046
이다. 그 중에서, z는 현재 코드 길이에 대응되는 확장 인수인 바, 즉 독립 정방 행렬의 행의 개수 또는 열의 개수이고;
Figure pct00047
는 최대로 지원하는 코드 길이에 대응되는 확장 인수이다. mod는 나머지 연산 조작이고,
Figure pct00048
는 무조건 내림 조작이며, Round는 반올림 조작이다.
본 발명에 의한 저밀도 생성 행렬 코드는 가변 코드 길이의 LDGC 마더 코드 집합을 기초로, 하나의 균일한 기초 행렬로부터 보정, 확장 등 조작을 거쳐, 임의 코드 길이의 저밀도 생성 행렬 코드의 코딩/디코딩을 구현하는 것이다. 아래, 도면을 참조하여 본 발명의 구체적인 실시예를 설명하면 하기와 같다.
도2를 참조하여, 본 발명의 실시예에 의한 LDGC의 코딩 방법을 설명하기로 한다. 그 중에서, 도2에 도시된 방법은 길이가 K인 정보 비트 신호 스트림에 대하여 코딩한 후, 길이가 N인 코딩된 정보 비트 신호 스트림을 후속 처리 유닛에 제공하여 처리하도록 하는 과정이다. 그 중에서, 체크 비트의 길이 M=N-K이고, 코드율은 r=K/N이다. 도2에 도시된 바와 같이, 상기 방법은 하기 단계를 포함하여 구성된다.
S202: 특정 코드율 R0인 저밀도 생성 행렬 코드 마더 코드 집합의 균일한 기초 행렬
Figure pct00049
을 확정한다. 그 중에서, 상기 저밀도 생성 행렬 코드 마더 코드 집합은 P개의 코드율이 R0인, 부동한 코드 길이
Figure pct00050
의 저밀도 생성 행렬 코드로 구성된다. 그 중에서,
Figure pct00051
이고, 실제 코딩에 필요한 코드율보다 훨씬 작다. Zset은 확장 인수 집합으로서, 확장 인수 z는 Zset 중의 임의 요소일 수 있고, Zset은 P개의 0보다 큰 정정수
Figure pct00052
로 구성된 집합이다. 그 중에서, nb(2보다 큰 확정된 정수)는 기초 행렬
Figure pct00053
의 열의 개수이고, kb(0보다 큰 확정된 정수)는 기초 행렬
Figure pct00054
의 행의 개수이다. 도 1에 도시된 바와 같이, 기초 행렬
Figure pct00055
의 kb 행, 첫 kb 열로 구성된 정방 행렬
Figure pct00056
(1:kb,1:kb)는 특수한 상삼각 또는 하삼각 행렬로서, 모든 실제 코드율이 R0보다 큰 LDGC 코드는 코두 기초 행렬
Figure pct00057
코딩을 통하여 생성할 수 있다.
S204: 정보 비트 신호 스트림의 길이 K와 중간 변수의 길이 L 의 관계에 의하여 L값을 취득한다. 구체적으로 말하면, 정보 비트 신호 스트림의 길이 K와 중간 변수의 길이 L 에 일정한 관계가 있는 바, 즉
Figure pct00058
이며, 그 중에서,
Figure pct00059
는 정수를 취하는 보정을 뜻하고, 보정 방법은 무조건 올림(ceIl), 무조건 내림(floor), 또는 반올림(round) 일 수 있다. 그 중에서, a는 1보다 약간 큰 정 유리수이고, b는 정정수이며, 이 관계에 의하여 L를 취득할 수 있다.
S206: 정보 패킷 길이 매칭에 의해 확장 인수를 확정하여, 확장 인수와 기초 행렬
Figure pct00060
에 의하여 코딩에 필요한 파라미터와 행렬을 확정한다. 그 중에서, 특정 확장 인수 공식
Figure pct00061
에 의하여 확장 인수 Zt를 확정하고, Zt와 Zset 중의 요소가
Figure pct00062
와 같은 관계가 있음을 확정하며, 그 중에서, Zk -1, Zk는 Zset 중에서 크기가 이어지는 요소이고, 코딩에 필요한 확장 인수는 Zk이다.
S208: 균일한 기초 행렬
Figure pct00063
와 확장 인수 Zk를 기반으로, 특정 보정 알고리즘에 의하여 보정된 기초 행렬
Figure pct00064
를 취득하고, 확장 인수 Zk를 이용하여
Figure pct00065
를 확장하여 미보정된 생성 행렬 G'를 취득하며; G'을 보정하는 바, 보정 방법은 일부 열의 열 무게 (즉 열 중의 요소 1의 수량을 증가)을 증가하여 최종의 발샐기 행렬 Gldgc를 취득한다. 그 중에서, 생성 행렬 Gldgc의 L 행과 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)는 코딩에 필요한 행렬이다.
지적해야 할 바로는, 열 무게를 증가하는 방법은, 따로 생성된 일부 비교적 무거운 열로 G' 중의 일부 열을 교체시키거나, 또는 G' 중의 기타 열을 이러한 열에 누적시켜 완성하거나, 또는 이러한 열 중에 직접 요소 1의 수량을 증가시키는 것일 수 있으나 이에 제한되지 않으며, 하지만 최종 생성 행렬 Gldgc의 L 행, 첫 L 열로 구성된 정방 행렬이 여전히 상삼각 또는 하삼각 행렬어야 한다.
S210: 기초 행렬
Figure pct00066
k b 행, 첫 k b 열로 구성된 정방 행렬
Figure pct00067
(1:kb,1:kb)가 좌측 상삼각 또는 좌측 하삼각일 시, L-K 개의 이미 알고 있는 비트를 코딩할 K 비트의 정보 비트 신호 스트림(정보 비트 s) 앞에 충전하여, 길이가 L인 새 정보 비트 신호 스트림 m을 생성하고;
Figure pct00068
(1:kb,1:kb)가 우측 상삼각 또는 우측 하삼각일 시, L-K 개의 이미 알고 있는 비트를 코딩할 K 비트의 정보 비트 신호 스트림(정보 비트 s) 뒤에 충전하여, 길이가 L인 새 정보 비트 신호 스트림 m을 생성한다. 지적해야 할 바로는, 비트를 충전하는 위치는 이에 제한되지 않는다.
S212: LDGC가 시스템 코드이기 때문에, 충전된 정보 비트 신호 스트림 m에 대하여, Gldgc (1:L, 1:L)=m에 의하여, 생성 행렬 Gldgc의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc(1:L,1:L)와 길이가 L인 정보 비트 신호 스트림 m을 이용하여 중간 변수 I를 생성한다.
S214: C=I×Gldgc에 의하여, 생성 행렬 Gldgc를 이용하여 중간 변수 I를 코딩하여 길이가 N+L-K인 코딩 신호 스트림을 생성한다.
S216: 길이가 N+L-K인 코딩 신호 스트림에서 L-K 개의 이미 알고 있는 비트를 삭제하여, 길이가 N인 코딩 신호 스트림을 생성한다.
아래, 실제의 예를 통하여 본 발명 실시예에 의한 저밀도 생성 행렬 코드의 코딩 방법을 설명하기로 한다.
우선, 저밀도 생성 행렬 코드의 마더 코드 집합을 보정하여 보정된 기초 행렬을 취득한다. 코드율이 R0=1/3이고, 복수 개 코드 길이 구조를 가진 저밀도 생성 행렬 코드의 마더 코드 집합의 균일한 기초 행렬 크기는
Figure pct00069
이며, 상기 마더 코드 집합의 확장 인수는 1을 스탭 크기로 하여 z mI n=2로부터 z m ax=683로 증가되며,
Figure pct00070
로 표시한다. 한 특정 코드 길이 N이 한 특정 확장 인수 z와 대응되기 때문에, 정보 패킷 길이는 k b 를 스탭 크기로
Figure pct00071
에서부터
Figure pct00072
로 증가되며,
Figure pct00073
로 표시한다. 코드율이 R0=1/3인 마더 코드 집합의 균일한 기초 행렬
Figure pct00074
Figure pct00075
로 표시된다. 그 중에서,
Figure pct00076
=
Figure pct00077
Figure pct00078
=
Figure pct00079
하나의 1*K=1*24 의 이진 정보 비트 수 데이트 스트림 s(s를 헥사로 표기하면 D8AB13이다)가 본 발명의 실시예에 의한 방법을 이용하여 72 비트의 LDGC 코딩 코드 워드를 생성하여야 하기 때문에, K=24, N=72이다.
정보 패킷 길이 K와 중간 변수 길이 L 의 관계에 의하여 L=48를 취득하고; 특정 확장 인수 공식
Figure pct00080
에 의하여 확장 인수 Zt = 48/12 = 4를 확정하며, Zt와 Zset 중의 요소가
Figure pct00081
의 관계가 있음을 확정할 수 있는 바, 그 중에서, zk -1, zk는 Zset 중에서 크기가 이어지는 요소이고, 그러면 z = zk = 4는 코딩에 필요한 확장 인수이다.
Figure pct00082
저밀도 생성 행렬 코드의 코딩/디코딩을 구현하기 위하여, 상기 어느 보정 연산과 확장 인수 z를 이용하여 균일한 기초 행렬
Figure pct00083
을 보정하여 보정된 기초 행렬
Figure pct00084
를 취득하고,
Figure pct00085
와 z 에 의하여 생성 행렬을 취득할 수 있다. 본 실시예에서는 내림 연산(Scale+floor) 보정 공식에 의하여 균일한 기초 행렬을 보정하는 바, 보정은
Figure pct00086
의 비 제로 정방 행렬을 표시하는 요소
Figure pct00087
에 대해 진행하는 것으로서, 여기에서 zmax는=683이며;
Figure pct00088
이다.
상기
Figure pct00089
에 대한 보정을 거쳐, 저밀도 생성 행렬 코드와 대응되는 하기와 같은 보정된 기초 행렬을 취득할 수 있다.
Figure pct00090
=
Figure pct00091
확장 인수 zk를 이용하여
Figure pct00092
을 확장하여 L*(N+L-K)의 생성 행렬 G'를 취득하고, G'의 제L-zk=44열부터 제L+zk=52열까지 보정을 진행하며, G'(:,L-zk:L+zk)의 열 무게를 증가 (즉 열 중의 요소 1의 수량을 증가)하며; 아울러 G'의 제1열부터 제zk열까지도 보정을 진행하여, G' 행렬의 제1열부터 zk열 중의 일부 열의 무게가 2가 되도록 하고, 보정된 행렬은 Gldgc(1:L,1:N+L-K)=Gldgc(1:48,1:96)이고, 보정된 행렬 Gldgc는 많은 zk*zk의 정방 행렬로 구성되고; 도3에 도시된 바와 같다(그 중에서, 검은 점은 요소 1을 표시하고, 공백 위치는 요소 0을 표시한다).
기초 행렬
Figure pct00093
k b 행, 첫 k b 열로 구성된 정방 행렬
Figure pct00094
(1:kb,1:kb)는 우측 상삼각 행렬이기 때문에, 정보 스트림 s를 입력한 뒤에, d=L-K=24 개의 이미 알고 있는 충전 비트 p(p를 헥사로 표시하면 9A0C2C)를 충전하여, 1*L=1*48의 정보 비트 스트림 m(m을 헥사로 표시하면 D8AB139A0C2C)을 생성한다.
LDGC가 시스템 코드인 특징(LDGC 코드가 시스템 코디이기 때문에, G ldgc (1:48, 1:48)=m)에 의하고, Gldgc (1:L,1:L)=Gldgc (1:48,1:48)가 우측 상삼각 행렬인 것을 이용하여, 충전된 1*L=1*48의 정보 비트 스트림 m에 대하여 방정식 풀이 연산을 진행하여, 1*L=1*48의 중간 변수 I(I를 헥사로 표시하면 942DA94E0A24)를 취득한다.
c= G ldgc에 의하여, 입력된 중간 변수 I을 코딩하여, 1*(N+d)=1*96의 이진 코드 워드 c(c를 헥사로 표시하면 D8AB139A0C2CCD3AC516ED52)를 취득한다.
추가된 d=24 개 충전 비트를 1*(N+d)=1*96의 이진 코드 워드 c로부터 삭제하여, 최종으로 N=72 비트의 코딩 코드 워드(헥사로 표시하면 D8AB13CD3AC516ED52)를 취득하여 발송한다.
도4를 참조하여, 본 발명의 실시예에 의한 LDGC의 디코딩 방법을 설명하기로 한다. 도4에 도시된 방법은 소거 채널을 통과한 정보 비트 신호 스트림에 대하여 디코딩을 진행하여, 길이가 K인 정보 비트 신호 스트림을 출력하여 후속 처리 유닛에 제공하는 것이다. 소거 채널을 통과한 후, 첫 K개 비트 중에서 E개 비트가 소거된다. 도4에 도시된 바와 같이, 상기 방법은 하기 단계를 포함하여 구성된다.
S402: 기초 행렬
Figure pct00095
을 보정하고 확장하여, 수신 생성 행렬 Gldgc (:,r1,r2,...ri)를 생성한다. 그 중에서, 구체적인 방법은 코딩 방법 중의 대응되는 단계를 참조할 수 있다.
S404: 소거 채널은 통과한 수신. 비트 신호 스트림에 대하여, L-K 개의 이미 알고 있는 비트를 충전하여, 인코더의 입력 신호 스트림C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]을 구성하는 바, 그 중에서, i는 정정수이고, 아울러
Figure pct00096
이다. 그 중에서, 코딩 중에 사용된 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc(1:L,1:L)이 좌측 상삼각 또는 좌측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 수신. 비트 신호 스트림 앞에 충전시키고; 코딩 중에 사용된 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc(1:L,1:L)이 우측 상삼각 또는 우측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 수신. 비트 신호 스트림 중 K-E 개 비트 뒤에 충전시킨다. 지적해야 할 바로는, 비트를 충전하는 위치는 이에 제한되지 않는다.
S406: C(:,r1,r2,...ri)=I*Gldgc (:,r1,r2,...ri)에 의하여 방정식을 풀어 1*L의 중간 변수 I를 취득한다. 그 중에서, Gldgc (:,r1,r2,...ri) 표시하는 것은 수신. 한 정보 비트와 대응되는 수신 생성 행렬 Gldgc (:,r1,r2,...ri)이고, 상기 행렬은 코딩 과정에 사용된 생성 행렬 Gldgc(1:L,1:N+L-K) 중의 모든 비소거 위치 일련번호와 대응되는 열 벡터를 보류하고 있다. 구체적으로 말하면, 중간 변수 I를 계산하는 과정은, 특수한 가우스 소거법을 이용하여, 행렬 Gldgc (:,r1,r2,...ri)에서 하나의 L*L의 상삼각 행렬을 생성하며; L*L의 상삼각 행렬을 포함하는 행렬의 행 치환과 행 소거 연산에 의하여, 수신. 코드 워드의 치환과 중첩을 진행하며; L*L의 상삼각을 포함하는 행렬의 행렬 열 치환 연산에 의하여, 중간 변수의 치환을 진행하며; 후진 대입법을 이용하여 상삼각 점화식을 풀어 최종적으로 중간 변수 I를 취득하는; 단계를 포함하여 구성된다. 그 중에서, 가우서 소거법을 이용하여, 재귀 방법으로 L*L의 상삼각 행렬을 포함하는 행렬을 생성하는 방법은, Gldgc (j:L,r1,r2,...ri)에서 행 무게(행 중의 요소 1의 수량)이 가장 가벼운 한 행과 제j행을 교환하며; 제j행 제1개 영(0)이 아닌 요소가 위치하는 열과 행렬 제j열을 교환하며; 행 소거 방법을 이용하여, 제j행 제j열의 요소로 제 j열 중 제j+1과 최후 행의 영(0)이 아닌 요소를 소거한다. 그 중에서, 만일 최종으로 L*L의 상삼각 행렬을 포함하는 행렬을 생성하지 못하면, 방정식 풀이에 실패하였음을 뜻한다.
S408: I*Gldgc (1:L,1:L)=m에 의하여 코딩을 진행하여, 길이가 L인 신호 스트림 m을 취득한다.
S410: 충전한 L-K 개 비트를 삭제하여, 길이가 N 인 필요한 정보 비트를 취득한다.
아래, 실제의 예를 통하여 본 발명 실시예에 의한 저밀도 생성 행렬 코드의 디코딩 방법을 설명하기로 한다.
우선, 저밀도 생성 행렬 코드의 마더 코드 집합에 대하여 보정과 확장을 진행하는 바, 보정과 확장의 방법은 코딩과 동일하며, 취득한 보정된 기초 행렬 및 확장된 생성 행렬은 코딩 시와 동일하다. 특정 코드율 R0=1/3, 정보 패킷 길이 K=24인 코드 워드 디코딩에 있어서, 디코딩단에서 사용하는 기초 행렬
Figure pct00097
와 생성 행렬 Gldgc는 코딩 시와 동일하다.
한 정보 패킷 길이가 K=24인 이진 비트 스트림 c'가 소거 채널을 통과한 후 디코딩단에 도착하는 바, c'를 헥사로 표시하면 D(X)AB13CD3(X)C516ED52이고, 그 중에서, (X)는 해당 위치의 비트가 소거되었음을 표시하고, K=24 개 정보 패킷 비트 중에서 E=4 개 비트가 소거되었고, 소거 위치는 제5, 6, 7, 8 비트이다.
Figure pct00098
가 우측 위 삼각형 행렬이기 때문에, 제K-E=20 비트 후 L-K=24 개의 이미 알고 있는 비트를 추가하여 새 수신. 코드 워드 스트림 c를 구성하는 바, 헥사로 표시하면 c=DAB139A0C2CCD3C516ED52이고, [r1,r2,...ri]=[1:4, 9:36, 41:96]이며, 디코딩에서 중간 변수를 푸는 과정에 사용되는 대응되는 생성 행렬은 G'ldgc=Gldgc(1:L, [r1,r2,...ri])= Gldgc(1:48, [1:4, 9:36, 41:96])이다.
가우스 소거법을 이용하여 G'ldgc에서 L*L=48*48의 우측 상삼각 행렬(도 5와 도 6은 각각 특수 가우스 소거법 진행 전과 특수 가우스 소거법 진행 후의 생성 행렬 G'ldgc의 형식을 표시한다)를 생성하고, 아울러 행렬의 행 치환과 행 소거 연산에 의하여, 수신. 코드 워드의 치환과 중첩을 진행하며; 행렬의 열 치환 연산에 의하여, 중간 변수의 치환을 진행한다.
후진 대입법을 이용하여 상삼각 방정식을 풀어, 중간 변수 I=942DA94E0A24를 취득하고, I*Gldgc (1:L,1:L)=I*Gldgc (1:48,1:48)=m에 의하여 코딩을 진행하여, 길이가 L인 신호 스트림 m을 취득하는 바, 헥사로 표시하면 D8AB139A0C2C이다.
충전한 L-K=48-24=24 개의 이미 알고 있는 비트를 삭제하여, 길이가 K=24인 필요한 정보 비트 s를 취득하는 바, s를 헥사로 표시하면 D8AB13이다.
도7을 참조하여, 본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 코딩 장치를 설명하도록 한다. 도7에 도시된 바와 같이, 상기 코딩 장치는 기초 행렬 저장 유닛(702), 비트 충전 유닛(704), 프리 코딩 유닛(706), 행렬 파라미터 계산 유닛(708), 패킷 코드 코딩 유닛(710)과 비트 삭제 유닛(712)을 포함하여 구성된다. 그 중에서,
기초 행렬 저장 유닛은 균일한
Figure pct00099
의 기초 행렬
Figure pct00100
을 저장하고, 기초 행렬을 행렬 파라미터 계산 유닛으로 출력시킨다. 그 중에서, 기초 행렬의 k b 행, 첫 k b 열로 구성된 정방 행렬
Figure pct00101
(1:kb,1:kb)는 상삼각 또는 하삼각 행렬이다.
비트 충전 유닛은 코딩할 길이가 K인 정보 비트 신호 스트림에 L-K 개의 이미 알고 있는 비트를 추가하여, 길이가 L인 정보 비트 신호 스트림 m을 생성하고, m을 프리 코딩 유닛으로 출력시킨다.
프리 코딩 유닛은 IㅧGldgc (1:L, 1:L)=m에 의하여, 생성 행렬 Gldgc의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L, 1:L)과 길이가 L인 정보 비트 신호 스트림 m을 이용하여 중간 변수 I를 생성하고, I를 패킷 코드 코딩 유닛으로 출력시킨다. 。
행렬 파라미터 계산 유닛은 패킷 코드 코딩 유닛이 필요로 하는 행렬과 파라미터, 및 비트 충전 유닛, 비트 삭제 유닛이 필요로 하는 파라미터를 생성한다. 그 중에서, 우선 확장 인수
Figure pct00102
를 확정하고, 이어 z t 와 Zset 중의 요소가
Figure pct00103
의 크기 관계가 있음을 확정하는 바, 그 중에서, z k -1 , z k 는 Zset 중에서 크기가 이어지는 요소이고, 그렇게 되면 z k 가 바로 출력하여야 할 확장 인수이며; 균일한 기초 행렬
Figure pct00104
과 확장 인수 zk를 기반으로 특정 보정 알고리즘에 의하여 보정된 기초 행렬
Figure pct00105
를 취득할 수 있으며; 확장 인수 zk를 이용하여
Figure pct00106
를 확장하여 생성 행렬 G'를 취득하고, G'의 제L-zk열부터 제L+zk열까지 보정을 진행하며, G'(:,L-zk:L+zk)의 열 무게를 증가(즉 열 중의 요소 1의 수량 증가)시키고, 보정된 행렬은 Gldgc이며; 생성 행렬 Gldgc(1:L, 1:N+L-K), 확장 인수 zk, 행렬 크기 파라미터 K, L, N을 패킷 코드 코딩 유닛, 비트 충전 유닛 및 비트 삭제 유닛으로 입력시킨다.
비트 코드 코딩 유닛은 행렬 파라미터 계산 유닛에서 생성된 행렬과 파라미터에 의하여, 정보 패킷을 코딩하여 코드 워드를 생성하고, 비트 삭제 유닛으로 출력시킨다.
비트 삭제 유닛은 코딩된 코드 워드 중에서 원래 충전했던 L-K 개의 이미 알고 있는 비트를 삭제하고, 삭제된 후 취득한 N 개 코드 워드를 출력시킨다.
도8을 참조하여, 본 발명의 실시예에 의한 저밀도 생성 행렬 코드의 디코딩 장치를 설명하도록 한다. 도8에 도시된 바와 같이, 상기 디코딩 장치는 기초 행렬 저장 유닛(802), 비트 충전 유닛(804), 행렬 파라미터 계산 유닛(806), 상삼각 행렬 계산 유닛(808), 중간 변수 계산 유닛(810), 패킷 코드 디코딩 유닛(812) 및 비트 삭제 유닛(814)을 포함하여 구성된다. 그 중에서,
기초 행렬 저장 유닛은 균일한
Figure pct00107
의 기초 행렬
Figure pct00108
을 저장하고, 기초 행렬을 행렬 파라미터 계산 유닛으로 출력시킨다.
비트 충전 유닛은 소거 채널은 통과한 수신. 비트 신호 스트림에 대하여, L-K 개의 이미 알고 있는 비트를 충전하여, 인코더의 입력 신호 스트림C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]을 구성하는 바, 그 중에서, I는 정정수이고, 아울러
Figure pct00109
이다.
비트 파라미터 계산 유닛은 패킷 코드 디코딩 유닛, 상삼각 행렬 계산 유닛에서 필요로 하는 행렬과 파라미터, 및 비트 충전 유닛, 비트 삭제 유닛에서 필요로 하는 파라미터를 생성한다. 우선 확장 인수
Figure pct00110
를 확정하고, 이어 zt와 Zset 중의 요소가
Figure pct00111
의 크기 관계가 있음을 확정하는 바, 그 중에서, z k -1 , z k 는 Zset 중에서 크기가 이어지는 요소이고, 그렇게 되면 zk가 바로 출력하여야 할 확장 인수이며; 균일한 기초 행렬
Figure pct00112
과 확장 인수 zk를 기반으로 특정 보정 알고리즘에 의하여 보정된 기초 행렬
Figure pct00113
를 취득할 수 있으며; 확장 인수 zk를 이용하여
Figure pct00114
를 확장하여 생성 행렬 G를 취득하고, 생성 행렬의 L 행과 수신된 비트 신호 스트림 일련번호와 대응되는 열을 취하여 행렬 Gldgc (1:L,r1,r2,...ri)를 구성하여, 상삼각 행렬 계산 유닛으로 입력시키고; 생성 행렬 Gldgc(1:L,1:N+L-K), 확장 인수 zk를 패킷 코드 디코딩 유닛으로 입력시키고, 행렬 크기 파라미터 K, L, N을 비트 충전 유닛 및 비트 삭제 유닛으로 입력시킨다.
상삼각 행렬 계산 유닛은 Gldgc (:,r1,r2,...ri)에서 L*L의 상삼각 행렬을 생성하고, 중간 변수 계산 유닛으로 출력시킨다. 그 중에서, 우선 Gldgc (j:L,r1,r2,...ri)에서 행 무게(행 중의 요소 1의 수량)가 가장 가벼운 한 행과 제j행을 교환하며; 제j행 제1개 영(0)이 아닌 요소가 위치하는 열과 행렬 제j열을 교환하며; 행 소거 방법을 이용하여, 제j행 제j열의 요소로 제 j열 중 제j+1과 최후 행의 영(0)이 아닌 요소를 소거한다. 이어, L*L 상삼각 행렬을 포함하는 행렬 행 치환과 행 소거 연산에 의하여, 수신 코드 워드의 치환과 중첩을 진행하며; L*L 상삼각 행렬을 포함하는 행렬 열 치환 연산에 의하여, 중간 변수의 치환을 진행하며; 생성된 상삼각 행렬의 새 수신. 코드 및 중간 변수의 배열 순서를 중간 변수 계산 유닛으로 입력시킨다.
중간 변수 계산 유닛은 C(:,r1,r2,...ri)=I*Gldgc (1:L,r1,r2,...ri)에 의하여 후진 대입법을 이용하여 상삼각 방정식을 풀어, 1*L의 중간 변수 I를 취득한다.
패킷 코드 코딩 유닛은 행렬 파라미터 계산 유닛에서 생성된 행렬과 파라미터를 이용하여, 디코딩 장치가 입력한 이진 비트 신호 스트림을 코딩하고, I*Gldgc (:,1:L)=m에 의하여 코딩을 진행하여 길이가 k+d인 신호 스트림 m을 취득하여, 비트 삭제 유닛으로 출력시킨다.
비트 삭제 유닛은 코딩된 코드 워드 중의 일정 수량의 코드 워드 비트를 삭제하고, 삭제된 후 취득한 K 개 코드 워드를 출력시킨다.
이상에서는 본 고안을 특정의 바람직한 실시예에 대해서 도시하고 설명하였지만, 본 고안은 상술한 실시예에서만 한정되는 것은 아니며, 본 고안이 속하는 기술분야에서 통상의 지식을 가진 자라면 이하의 실용신안등록청구범위에 기재된 본 고안의 기술적 사상의 요지를 벗어나지 않는 범위에서 얼마든지 다양하게 변경하여 실시할 수 있을 것이다.

Claims (21)

  1. P개의 코드율이 R0인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 저밀도 생성 행렬 코드 마더 코드 집합을 구축하는 단계로서, 상기 저밀도 생성 행렬 코드 마더 코드 집합은 균일한 기초 행렬
    Figure pct00115
    을 구비하고,
    Figure pct00116
    이며, 여기에서 kb는 기초 행렬의 행의 개수이고, nb는 기초 행렬의 열의 개수인, 1단계;
    저밀도 생성 행렬 코드 마더 코드 집합 중의 코딩할 정보 비트 시퀀스의 길이 K와 중간 변수의 길이 L 의 관계에 근거하여, 중간 변수의 길이 L을 취득하는 2단계;
    중간 변수의 길이 L과 기초 행렬의 행의 개수 kb를 이용하여 기초 행렬을 처리하는 확장 인수를 취득하고, 확장 인수를 이용하여 행렬에 대하여 보정과 확장을 진행하여 생성 행렬 Gldgc를 취득하는 3단계 및;
    생성 행렬의 L 행과 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 코딩할 정보 비트 시퀀스를 코딩하는 4단계;를 포함하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  2. 제1항에 있어서,
    상기 2단계에서 공식
    Figure pct00117
    을 통하여, 코딩할 정보 비트 시퀀스의 길이 K를 이용하여 중간 변수의 길이 L을 취득하고,
    Figure pct00118
    는 정수를 취하는 보정을 의미하며,
    보정 방법으로는 올림, 내림 혹은 반올림하기가 있으며,
    a는 1보다 큰 정 유리수이고, b는 정정수인 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  3. 제2항에 있어서,
    상기 3단계는,
    공식
    Figure pct00119
    를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 kb를 이용하여 확장 인수 Zt를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
    Figure pct00120
    로 구성된 확장 인수 집합 Zset 중에서, 확장 인수 Zt와 Zk
    Figure pct00121
    의 관계를 갖는 기초 행렬을 처리하는 확장 인수 Zk를 취득하는 a단계;
    기초 행렬을 처리하는 확장 인수 Zk를 이용하여 기초 행렬을 보정하여, 보정된 기초 행렬
    Figure pct00122
    를 취득하는 b단계;
    상기 기초 행렬을 처리하는 확장 인수 Zk를 이용하여 보정된 기초 행렬을 확장하여, 미보정된 생성 행렬 G'을 취득하는 c단계; 및
    미보정된 생성 행렬 G'을 보정하여, 생성 행렬 Gldgc를 취득하는 d단계를 포함하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  4. 제3항에 있어서, 상기 4단계는,
    상기 L-K 개의 이미 알고 있는 비트를 코딩할 정보 비트 시퀀스 중에 추가하여 길이가 L인 정보 비트 시퀀스 m을 생성하는 e단계;
    공식 IㅧGldgc(1:L, 1:L)=m에 의하여, 상기 생성 행렬의 L행, 첫 L열로 구성된 정방 행렬 Gldgc(1:L, 1:L)와 길이가 L인 정보 비트 시퀀스 m을 이용하여 중간 변수 I를 취득하고, 공식 C=IㅧGldgc에 의하여, 생성 행렬의 L행과 첫 N+L-K열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 중간 변수를 코딩하여, 길이가 N+L-K인 제1 코딩 결과를 생성하는 f단계;
    상기 길이가 N+L-K인 제1 코딩 결과에서 상기 L-K 개의 이미 알고 있는 비트를 삭제하여, 길이가 N인 제2 코딩 결과를 생성하는 g단계를 포함하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  5. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    기초 행렬의 행의 개수 kb는 2보다 큰 정수이고, 기초 행렬의 열의 개수 nb는 1보다 크거나 같은 정수인 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  6. 제5항에 있어서, d단계에서, 미보정된 생성 행렬 G'의 특정 열의 열 무게를 증가하는 것을 통하여 생성 행렬 Gldgc를 취득하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 방법.
  7. P개의 코드율이 R0인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 구축한 저밀도 생성 행렬 코드 마더 코드 집합의 균일한 기초 행렬
    Figure pct00123
    을 저장하고, 그 때에,
    Figure pct00124
    이고, kb는 기초 행렬의 행의 개수이고, nb는 기초 행렬의 열의 개수인, 기초 행렬 저장 유닛;
    저밀도 생성 행렬 코드 마더 코드 집합 중의 코딩할 정보 비트 시퀀스의 길이 K와 중간 변수의 길이 L 의 관계에 의하여, 중간 변수의 길이 L을 계산하고, 중간 변수의 길이 L과 기초 행렬의 행의 개수 kb를 이용하여 기초 행렬을 처리하는 확장 인수 zk 를 취득하고, 확장 인수 zk를 이용하여 행렬에 대하여 보정과 확장을 진행하여 생성 행렬 Gldgc를 취득하는 행렬 파라미터 계산 유닛;
    L-K 개의 이미 알고 있는 비트를 코딩할 정보 비트 시퀀스 중에 추가하여 길이가 L인 정보 비트 시퀀스 m을 생성하는 비트 충전 유닛;
    공식 I×Gldgc(1:L, 1:L)=m에 의하여, 생성 행렬의 L행, 첫 L열로 구성된 정방 행렬 Gldgc(1:L, 1:L)와 길이가 L인 정보 비트 시퀀스 m을 이용하여 중간 변수 I를 취득하는 프리코딩(precodIng) 유닛;
    생성 행렬의 L행과 첫 N+L-K열로 구성된 행렬 Gldgc(1:L, 1:N+L-K)를 이용하여 중간 변수를 코딩하여, 길이가 N+L-K인 제1 코딩 결과를 생성하는 패킷 코드 코딩 유닛; 및
    길이가 N+L-K인 제1 코딩 결과에서 L-K 개의 이미 알고 있는 비트를 삭제하여, 길이가 N인 제2 코딩 결과를 생성하는 비트 삭제 유닛을 포함하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 장치.
  8. 제7항에 있어서, 기초 행렬의 kb행, 첫 kb 열로 구성된 정방 행렬
    Figure pct00125
    (1:kb,1:kb)는 상삼각 또는 하삼각 행렬인 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 장치.
  9. 제8항에 있어서, 상기 행렬 파라미터 계산 유닛은 공식
    Figure pct00126
    를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 kb를 이용하여 확장 인수 Zt를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
    Figure pct00127
    로 구성된 확장 인수 집합 Zset 중에서, 확장 인수 Zt와 Zk
    Figure pct00128
    관계를 갖는 기초 행렬을 처리하는 확장 인수 Zk를 취득하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 장치.
  10. 제9항에서, 상기 행렬 파라미터 계산 유닛은 기초 행렬을 처리하는 확장 인수 Zk를 이용하여 기초 행렬을 보정하여, 보정된 기초 행렬
    Figure pct00129
    를 취득하고, 기초 행렬을 처리하는 확장 인수 Zk를 이용하여 보정된 기초 행렬을 확장하여, 미보정된 생성 행렬 G'를 취득하며, 미보정된 생성 행렬 G'을 보정하여, 생성 행렬 Gldgc를 취득하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 장치.
  11. 제10항에 있어서, 행렬 파라미터 계산 유닛은 미보정된 생성 행렬 G'의 특정 열의 열 무게를 증가하는 것을 통하여 미보정된 생성 행렬 G'를 보정하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 코딩 장치.
  12. 코딩 과정에 사용된 확장 인수 zk를 이용하여, 기초 행렬
    Figure pct00130
    에 대하여 보정과 확장을 진행하여, 수신 생성 행렬 Gldgc(:,r1,r2,...ri)를 취득수신하는 1단계;
    L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드중에 충전시켜 디코딩을 진행할 저밀도 생성 행렬 코드 C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]를 생성하는 바, 상기 I는
    Figure pct00131
    를 만족시키는 정정수이고, L은 코딩 과정에 사용된 중간 변수의 길이이며, N은 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드의 길이이고, K는 코딩 전 저밀도 생성 행렬 코드의 길이인 2단계;
    공식 C(:,r1,r2,...ri)=I*Gldgc (:,r1,r2,...ri)에 근거하여, 상기 수신한 수신 생성 행렬과 디코딩을 진행할 저밀도 생성 행렬 코드를 이용하여 1*L의 수신 중간 변수 I를 취득하는 3단계;
    공식 I*Gldgc (1:L, 1:L)=m에 의하여, 수신한 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L, 1:L)와 수신 중간 벡터를 이용하여, 길이가 L인 디코딩 결과 m을 취득하는 4단계; 및
    길이가 L인 디코딩 결과 m 중에서 L-K 개의 이미 알고 있는 비트를 삭제하여 길이가 K인 디코딩 결과를 취득하는 5단계를 포함하여 구성되는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 방법.
  13. 제12항에 있어서, 상기 수신 생성 행렬은 디코딩 과정에 사용된 생성 행렬의 L 행, 첫 N+L-K 열로 구성된 행렬 Gldgc(1:L,1:N+L-K) 중의 모든 비 소거 위치 일련번호와 대응되는 열 벡터를 보유하고 있는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 방법.
  14. 제13항에 있어서, 상기 3단계는,
    가우스 소거법을 이용하여, 수신 생성 행렬 Gldgc (:,r1,r2,...ri)에 대하여 행 치환, 열 치환 및/또는 행 소거 연산을 진행하여, L*L 상삼각 행렬을 포함하는 행렬을 취득하는 a단계;
    상기 L*L 상삼각 행렬을 포함하는 행렬을 이용하여, 상기 디코딩을 진행할 저밀도 생성 행렬 코드에 대하여 치환 및 중첩을 진행하고, 코딩 과정에 사용된 중간 변수를 치환하는 b단계; 및
    후진 대입법에 의하여 상삼각 점화식을 풀어 상기 수신 중간 벡터 I를 취득하는 c단계를 포함하여 구성되는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 방법.
  15. 제14항에 있어서, 상기 a단계는,
    수신 생성 행렬중의 행 무게가 가장 가벼운 하나의 행을 선택하여 제j행과 행 교환을 진행하며;
    행 교환된 수신 생성 행렬 중의 j행의 제1개 영(0)이 아닌 요소가 위치하는 열과 행 교환된 수신 생성 행렬의 제j열을 열 교환 시키며;
    행 소거 방법을 이용하여, 열 교환된 수신 생성 행렬의 제j행 제j열의 요소를 이용하여, 열 교환된 수신 생성 행렬의 j열 중의 제j+1행과 최후 행사이의 영(0)이 아닌 요소를 소거하는 단계를 포함하여 구성되는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 방법.
  16. P개의 코드율이 R0인, 부동한 코드 길이의 저밀도 생성 행렬 코드를 이용하여 구축한 저밀도 생성 행렬 코드 마더 코드 집합의 균일한 기초 행렬
    Figure pct00132
    을 저장하고, 그 중에서,
    Figure pct00133
    이고, kb는 기초 행렬의 행의 개수이고, nb는 기초 행렬의 열의 개수인, 기초 행렬 저장 유닛;
    코딩 과정에 사용된 확장 인수 zk 를 이용하여, 기초 행렬
    Figure pct00134
    에 대하여 보정과 확장을 진행하여, 수신 생성 행렬 Gldgc(:,r1,r2,...ri)를 생성하는 행렬 파라미터 계산 유닛;
    L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드 중에 충전시켜 디코딩을 진행할 저밀도 생성 행렬 코드 C(r1,r2,...ri)=[Cr1,Cr2,Cr3,...,Cri]를 생성하는 바, 그 중에서, I는
    Figure pct00135
    를 만족시키는 정정수이고, L은 코딩 과정에 사용된 중간 변수의 길이이며, N은 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드의 길이이고, K는 코딩 전 저밀도 생성 행렬 코드의 길이인, 비트 충전 유닛;
    가우스 소거법을 이용하여, 수신 생성 행렬 Gldgc (:,r1,r2,...ri)에 대하여 행 치환, 열 치환 및/또는 행 소거 연산을 진행하여, L*L 상삼각 행렬을 포함하는 행렬을 취득하는 상삼각 행렬 계산 유닛;
    공식 C(:,r1,r2,...ri)=I*Gldgc (:,r1,r2,...ri)에 의하여, 상기 L*L 상삼각 행렬을 포함하는 행렬과 디코딩을 진행할 저밀도 생성 행렬 코드를 이용하여 1*L의 수신 중간 변수 I를 취득하는 중간 변수 계산 유닛;
    공식 I*Gldgc (1:L,1:L)=m에 의하여, 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L,1:L)와 수신. 중간 벡터를 이용하여, 길이가 L인 디코딩 결과 m을 취득하는 패킷 코드 디코딩 유닛; 및
    길이가 L인 디코딩 결과 m 중에서 L-K 개의 이미 알고 있는 비트를 삭제하여 길이가 K인 디코딩 결과를 취득하는 비트 삭제 유닛을 포함하여 구성되는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
  17. 제16항에 있어서, 상기 행렬 파라미터 계산 유닛은 공식
    Figure pct00136
    를 통하여, 중간 변수의 길이 L과 기초 행렬의 행의 개수 kb를 이용하여 확장 인수 Zt를 취득하고, 아울러 저밀도 생성 행렬 코드 마더 코드 집합과 대응되는 P개의 0보다 큰 정정수
    Figure pct00137
    로 구성된 확장 인수 집합 Zset 중에서, 확장 인수 Zt와 Zk
    Figure pct00138
    관계를 갖는 코딩 과정에 사용된 확장 인수 Zk를 취득하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
  18. 제17항에 있어서, 상기 행렬 파라미터 계산 유닛은 코딩 과정에 사용된 확장 인수 Zk를 이용하여 기초 행렬을 보정하여 보정된 기초 행렬
    Figure pct00139
    를 취득하고, 코딩 과정에 사용된 확장 인수 Zk를 이용하여 보정된 기초 행렬을 확장시켜 기초 생성 행렬 G를 취득한 후, 기초 생성 행렬 G의 L 행과 디코딩을 진행할 저밀도 생성 행렬 코드의 일련번호와 대응되는 열을 취하여 수신 생성 행렬을 생성하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
  19. 제18항에 있어서, 상기 상삼각 행렬 계산 유닛은 수신 생성 행렬 중의 행 무게가 가장 가벼운 일 행을 선택하여 제j행과 행 교환을 진행하고, 행 교환된 수신 생성 행렬 중의 j행의 제1개 영(0)이 아닌 요소가 위치하는 열과 행 교환된 수신 생성 행렬의 제j열을 열 교환 시키며, 행 소거 방법을 이용하여, 열 교환된 수신 생성 행렬의 제j행 제j열의 요소를 이용하여, 열 교환된 수신 생성 행렬의 j열 중의 제j+1행과 최후 행의 영(0)이 아닌 요소를 소거하여, L*L 상삼각 행렬을 포함하는 행렬을 취득하는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
  20. 제16항 내지 제19항 중의 어느 한 항에 있어서, 상기 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L, 1:L)가 좌측 상삼각 또는 좌측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드 앞에 충전시키는 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
  21. 제16항 내지 제19항 중의 어느 한 항에 있어서, 수신 생성 행렬의 L 행, 첫 L 열로 구성된 정방 행렬 Gldgc (1:L, 1:L)가 우측 상삼각 또는 우측 하삼각 행렬인 경우, L-K 개의 이미 알고 있는 비트를 소거 채널을 통과한 코딩된 저밀도 생성 행렬 코드의 K-E개 비트 뒤에 충전시키는 바, 그 중에서, E는 소거 채널을 미통과한 코딩된 저밀도 생성 행렬 코드가 소거 채널 통과 후, 첫 K 개 코드 워드 중에서 소거된 코드 워드의 수량인 것을 특징으로 하는 저밀도 생성 행렬 코드의 디코딩 장치.
KR1020107014998A 2007-12-07 2008-02-21 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치 KR101248991B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710198973.0 2007-12-07
CN2007101989730A CN101453297B (zh) 2007-12-07 2007-12-07 低密度生成矩阵码的编码方法和装置、及译码方法和装置
PCT/CN2008/000378 WO2009079891A1 (fr) 2007-12-07 2008-02-21 Procédé de codage, dispositif de codage, procédé de décodage et dispositif de décodage pour code de matrice de générateur basse densité

Publications (2)

Publication Number Publication Date
KR20100099264A true KR20100099264A (ko) 2010-09-10
KR101248991B1 KR101248991B1 (ko) 2013-03-29

Family

ID=40735343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107014998A KR101248991B1 (ko) 2007-12-07 2008-02-21 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치

Country Status (6)

Country Link
US (2) US8370700B2 (ko)
EP (1) EP2228909A4 (ko)
JP (1) JP5216099B2 (ko)
KR (1) KR101248991B1 (ko)
CN (1) CN101453297B (ko)
WO (2) WO2009079891A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101366284B1 (ko) * 2007-11-13 2014-02-20 엘지전자 주식회사 골레이 부호를 이용한 블록 부호 생성 방법, 데이터 부호화방법 및 데이터 부호화 장치
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
JP4898858B2 (ja) 2009-03-02 2012-03-21 パナソニック株式会社 符号化器、復号化器及び符号化方法
EP2315360B1 (en) * 2009-05-25 2012-12-26 Huawei Technologies Co., Ltd. Method and device for encoding by linear block code, and method and device for generating linear block code
US8767854B2 (en) * 2011-04-19 2014-07-01 Broadcom Corporation Modulation code set (MCS) and LDPC (low density parity check) coding within multiple user, multiple access, and/or MIMO wireless communications
TWI485992B (zh) * 2012-08-31 2015-05-21 Ind Tech Res Inst 猛禽碼之編碼加速裝置與方法
CN106899311B (zh) 2012-09-24 2023-11-03 华为技术有限公司 混合极性码的生成方法和生成装置
CN103067024B (zh) * 2012-12-31 2015-12-02 中国科学院微电子研究所 低密度生成矩阵码的生成矩阵构造和编解码方法及装置
JP5952971B2 (ja) * 2013-08-16 2016-07-13 日本電信電話株式会社 通信路復号方法及び通信路復号装置
JP2017005285A (ja) * 2013-11-07 2017-01-05 三菱電機株式会社 復号装置
US9584163B2 (en) * 2014-11-24 2017-02-28 Zenith Electronics Llc Length and rate compatible LDPC encoder and decoder
US9606868B2 (en) * 2015-05-04 2017-03-28 International Business Machines Corporation Encoding and writing of data on multitrack tape
US9712188B2 (en) 2015-05-04 2017-07-18 International Business Machines Corporation Decoding data stored with three orthogonal codewords
CN106936486B (zh) * 2015-12-30 2020-07-21 电信科学技术研究院 一种csi反馈方法及装置
US10191744B2 (en) * 2016-07-01 2019-01-29 Intel Corporation Apparatuses, methods, and systems for element sorting of vectors
CN108023677B (zh) * 2016-11-03 2020-12-08 华为技术有限公司 信息处理的方法、装置及无线通信设备
CN108809331B (zh) * 2017-05-02 2020-07-21 华为技术有限公司 极化码信道编码方法、设备以及通信系统
CN107302565A (zh) * 2017-05-26 2017-10-27 苏州思创源博电子科技有限公司 一种计算机数据智能无线传输方法
CN110352562B (zh) * 2017-06-25 2023-04-25 Lg 电子株式会社 在无线通信系统中基于ldpc码的奇偶校验矩阵执行编码的方法和使用其的终端
CN109391358B (zh) * 2017-08-11 2021-09-21 华为技术有限公司 极化码编码的方法和装置
CN109274462B (zh) * 2018-09-30 2021-01-01 东北大学 一种基于改进在线喷泉码的图像传输方法
CN111525980B (zh) * 2019-02-01 2021-09-17 华为技术有限公司 译码方法及装置
KR102269322B1 (ko) * 2019-07-05 2021-06-24 한양대학교 산학협력단 비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치
CN112019304A (zh) * 2020-09-24 2020-12-01 南京理工大学 一种基于网络编码的端到端实时可靠传输方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222284B2 (en) * 2003-06-26 2007-05-22 Nokia Corporation Low-density parity-check codes for multiple code rates
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
EP1779526A1 (en) * 2004-08-13 2007-05-02 Nokia Corporation Structured puncturing of irregular low-density parity-check (ldpc) codes
JP4138723B2 (ja) * 2004-09-22 2008-08-27 株式会社東芝 復号処理方法および通信装置
CN1805291B (zh) * 2005-01-10 2010-04-28 华为技术有限公司 一种低密度奇偶校验码并行编码方法及编码装置
WO2006075382A1 (ja) * 2005-01-14 2006-07-20 Fujitsu Limited 符号化方法、復号方法及びそれらの装置
KR20060106132A (ko) * 2005-04-06 2006-10-12 삼성전자주식회사 연접 ldgm 부호 부호화/복호화 방법
US7627805B2 (en) * 2005-06-08 2009-12-01 Cimarron Mittelsteadt Data coding with an efficient LDPC encoder
CN100502245C (zh) * 2005-10-21 2009-06-17 中兴通讯股份有限公司 支持任何码率/码长的低密度奇偶校验码编码装置和方法
US7774675B1 (en) * 2005-12-05 2010-08-10 Marvell International Ltd. LDPC codes and expansion method
US8171371B2 (en) * 2005-12-20 2012-05-01 Mitsubishi Electric Corporation Inspection matrix generation method, encoding method, communication device, communication system, and encoder
WO2007080827A1 (ja) 2006-01-10 2007-07-19 Mitsubishi Electric Corporation 検査行列生成方法
CN100592639C (zh) * 2006-04-27 2010-02-24 华为技术有限公司 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
CN100508442C (zh) * 2006-08-14 2009-07-01 华为技术有限公司 一种编译码方法及编译码装置
US7934146B2 (en) * 2006-10-18 2011-04-26 Nokia Corporation Method, apparatus and computer program product providing for data block encoding and decoding
US8086929B2 (en) * 2006-11-17 2011-12-27 Lg Electronics Inc. Method of executing LDPC coding using parity check matrix

Also Published As

Publication number Publication date
CN101453297A (zh) 2009-06-10
WO2009074024A1 (fr) 2009-06-18
US20100257427A1 (en) 2010-10-07
EP2228909A1 (en) 2010-09-15
WO2009079891A1 (fr) 2009-07-02
JP5216099B2 (ja) 2013-06-19
US20100269010A1 (en) 2010-10-21
US8370700B2 (en) 2013-02-05
US8527830B2 (en) 2013-09-03
CN101453297B (zh) 2010-12-01
EP2228909A4 (en) 2011-08-10
JP2011505768A (ja) 2011-02-24
KR101248991B1 (ko) 2013-03-29

Similar Documents

Publication Publication Date Title
KR101248991B1 (ko) 저밀도 생성 행렬 코드의 코딩 방법과 장치 및 디코딩 방법과 장치
US8281209B2 (en) Encoding method and device for low density generator matrix codes
CN107026709B (zh) 一种数据包编码处理方法及装置、基站及用户设备
US9270414B2 (en) Multiple-field based code generator and decoder for communications systems
US7676735B2 (en) Forward error-correcting (FEC) coding and streaming
EP2202888A1 (en) File download and streaming system
CN102651652B (zh) 生成码率兼容ldpc码及harq方案的方法及装置
CN105471545A (zh) 一种数据包处理方法及装置
WO2007072721A1 (ja) 検査行列生成方法、符号化方法、通信装置、通信システム、符号化器
RU2461970C2 (ru) Способ и устройство для приема данных
WO2008086735A1 (fr) Procédé de génération d'un paquet de demande de retransmission automatique hybride d'un code de vérification de parité faible densité
US8291288B2 (en) Method and device for encoding the low density generator matrix code
CN100589327C (zh) 编码、解码方法及编码器、解码器
KR101615384B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
CN101286745B (zh) 一种交织编码方法及装置
JP5371623B2 (ja) 通信システム及び受信装置
US8301961B2 (en) Decoding method for low density generator matrix code
US20100318875A1 (en) Data Transmission Method and Equipment
CN101471743A (zh) 低密度生成矩阵码的编码方法
CN110380734B (zh) 低密度奇偶检查码的编码及译码方法
KR101829464B1 (ko) 패킷 데이터의 인코딩 방법 및 장치
Puducheri et al. On the performance of distributed LT codes

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 8