KR101636965B1 - 잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치 - Google Patents

잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101636965B1
KR101636965B1 KR1020117005245A KR20117005245A KR101636965B1 KR 101636965 B1 KR101636965 B1 KR 101636965B1 KR 1020117005245 A KR1020117005245 A KR 1020117005245A KR 20117005245 A KR20117005245 A KR 20117005245A KR 101636965 B1 KR101636965 B1 KR 101636965B1
Authority
KR
South Korea
Prior art keywords
matrix
parity
sub
binary model
diagonal
Prior art date
Application number
KR1020117005245A
Other languages
English (en)
Other versions
KR20110126097A (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
Priority claimed from ES200900343A external-priority patent/ES2363846B1/es
Priority claimed from ES201030066A external-priority patent/ES2386449B1/es
Application filed by 디세노 데 시스테마스 엔 실리시오, 에스.에이. filed Critical 디세노 데 시스테마스 엔 실리시오, 에스.에이.
Publication of KR20110126097A publication Critical patent/KR20110126097A/ko
Application granted granted Critical
Publication of KR101636965B1 publication Critical patent/KR101636965B1/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/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
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • H03M13/1188Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • 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/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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • 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/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end

Landscapes

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

Abstract

잡음성 채널 또는 송신 매체를 통해 정보의 송신에서 오류들에 대한 보호를 개선하기 위해서 잡음성 매체들을 통해 데이터를 통신하기 위한 방법 및 장치. 방법 및 개선된 장치는 데이터의 코딩 및 디코딩에서 저밀도 패리티 체크 부호들 기술을 위한 패리티 행렬의 새로운 유형의 구조를 사용하는 것을 수반하며, 이는 하드웨어 구현의 복잡성을 증가시키지 않고 오류들의 정정을 개선한다.

Description

잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치{METHOD AND DEVICE FOR COMMUNICATING DATA ACROSS NOISY MEDIA}
관련 출원들에 대한 상호참조
이 출원은 2010년 2월 5일에 출원된 국제출원번호 PCT/ES2010/070067의 국내단계이며, 2009년 2월 6일에 출원된 스페인 출원 P200900343, 및 2010년 1월 20일에 출원된 스페인 출원번호 P201030066의 우선권을 주장한다. 위 출원들의 개시된 내용들 전체를 참조를 위해 여기에 포함시킨다.
여기 제시되는 발명은 데이터 송신 분야에 적용되는 것으로, 특히, 잡음성 매체들(noisy media), 즉 통신에서 오류들을 유발할 수 있는 통신 매체들 혹은 채널들에서의 데이터의 통신에 관한 것이다.
통신 환경들에서, 통신 매체 또는 외부 신호들이 신호 오류들을 유발하는 것은 흔한 일이다. 상기 오류들은 검출되어야 하며, 가능하다면 올바른 데이터가 복구될 수 있게 수신시 정정되어야 한다. 오류들을 정정하기 위한 저밀도 패리티 체크 부호들에 기초한 데이터의 코디파이(codification) 및 디코디파이(decodification)를 포함하는, 현 기술에서 오류 검출 및 정정을 위한 몇가지 기술들이 존재한다.
저밀도 패리티 체크 부호들(LDPC)은 잡음성 송신 채널들로 송신하는데 사용되는 오류 정정 부호들이다. 이들 부호들은 메시지에 어떤 용장성을 야기하긴 하지만(원 메시지보다 더 많은 비트들이 보내진다), 이렇게 함으로써 수신에서 수신된 메시지에 오류들이 있는지를 검출하고 오류들을 정정하는 것이 가능하다.
LDPC 부호는 이의 패리티 행렬이 매우 조밀하지 않은, 즉 이 행렬의 대부분의 원소들이 제로들인 부호이다. 이러한 유형의 부호는 처음으로 Robert G. Gallagher "Low Density Parity Check Codes" M.I.T. Press, 1963에 의해 1960년대 초에 공개되었으며, 알려진 샤논 한계(데이터 송신을 위한 이론적 최대 레이트)에 매우 가까운 특징들을 가짐을 보였다. 그러나, 부호들의 본래의 정의 및 그 당시의 기술로는 적합한 복잡성의 달성가능한 구현은 가능하지 않았다. 최근에, 집적회로들 의 발전과 구조화된 행렬들의 발명 덕분에, 이들 부호들은 다시 한번 큰 관심을 갖게 되었다.
현재 기술에서는 오류들의 코디파이 및 디코디파이를 달성하는 다수의 방법들이 있다. 일부 방법들은 "Method and Apparatus for Encoding and Decoding Data" 명칭의 미국특허 7,343,548B2 및 7,203,897B2에 공고된 것들로서, 각각은 데이터 송신에서 오류들에 직면하였을 때 보호를 개선하기 위한 방법들을 개괄한다. 발명은 오류들을 감소시키기 위한 코디파이 및 디코디파이를 제시하는 표준들 IEEE802.16e 및 802.11n에도 관계될 수 있다. 어느 경우이든, 언급된 특허들 및 표준들은 현재 기술에 공지된 이중 대각 구조를 이용하는데, 이 문헌에 제시된 구조는 신규하며 잡음성 매체들로 데이터를 통신할 때 오류들에 대한 보호의 복잡성 수준을 증가시킴이 없이 더 나은 특징들로 구현을 가능하게 한다. 패리티 행렬에 2 이하의 해밍 웨이트를 가진 열들(column)을 취하는 것은 LDPC들의 특징들을 제약시킨다는 것이 현재 기술에 공지되어 있다. 그러나, 코디파이어의 구현의 복잡성의 이유로, 이중 대각 부분 H b 1을 가진 행렬들이 현 기술에서 사용되었다. 바이너리 모델 행렬의 부분 H b1 에 제 3의 대각을 추가하는 이 문헌에 제시된 새로운 구조는 2 이하의 해밍 웨이트를 가진 패리티 행렬에서 열들의 총 수를 더 작게 하며, 이에 따라 더 나은 특징들이 달성될 수 있다. 이 제 3의 대각은 코디파이어의 구현 복잡성의 증가가 실제적으로 무시될 수 있도록 선택되었다.
이전에 제시된 문헌들은 본 발명의 신규성에도 발명적 우수성에도 간섭하지 않는다. 이들이 모두 현재 기술에 공지된 LDPC 기술의 이용에 기초할지라도, 이 문헌의 방법 및 장치는 한 유형의 준-순환적(quasi-cyclic) 부호(준-순환적 저밀도 패리티 체크 부호, 또는 QC-LDPC)를 이용하며, 발명의 중점으로서, 다른 구조를 가진 패리티 행렬을 적용한다.
발명의 설명 전체에 걸쳐 이용되는 원소들을 차별화하기 위해 이 문서를 전체에 걸쳐 특정한 명명법이 채용될 것이다. 굵은 대문자(예를 들면, A)는 원소가 행렬임을 나타내며, 굵은 소문자(예를 들면, a)는 원소가 벡터임을 나타내며, 굵지 않은 소문자(예를 들면, a)는 원소가 스칼라값임을 나타낸다. 한편, 크기 M x N 의 행렬을 포함하는 스칼라 원소들은 a(i,j) 형태로 표시되고, 튜플(tuple) (i,j)은 행렬 내 상기 원소의 위치이며, 0 ≤ i ≤ M-1은 행(row)의 수이며, 0 ≤ j ≤ N-1은 열(column)의 수이다. 크기 M의 벡터를 포함하는 원소들은 a(i) 형태로 주해되며, (i)는 벡터 내 원소의 위치이다(0 ≤ i ≤ M-1).
또한, 발명 전체에 걸쳐 이하 정의될 "순환적 회전(cyclical rotation)"이라는 용어가 사용될 것이다. 벡터
Figure 112011015864707-pct00001
에 순환 회전 z은 이의 원소들을 우측을 향하여 순환적으로 회전하여, 결과로서 벡터
Figure 112011015864707-pct00002
를 얻는 것으로 구성되며, %는 "모듈(module)" 연산자이다. 동일한 방식으로, 행렬
Figure 112011015864707-pct00003
에 대해 적용되는 순환 회전 z은 이의 열들에 작용하며, 결과로서 행렬
Figure 112011015864707-pct00004
을 얻는다. 또한, 순환 회전은 반대 방향(좌측을 향하여)으로 정의될 수도 있어 우측을 향한 순환 회전 z은 좌측을 향한 벡터 및 행렬에 대해 각각 순환 회전 M-z 및 N-z과 동등하다.
목적들을 달성하고 위에 단락에서 지적된 결정들을 피하기 위해서 발명은 잡음성 매체들을 통해 데이터를 통신하기 위한 방법 및 장치로 구성된다. 구체적으로, 발명은 송신에서 사용되는 데이터를 코디파이하는 방법, 이의 연관된 코디파이 장치, 디코디파이하기 위한 방법 및 이의 연관된 디코디파이 장치를 제시한다. 이 일 그룹의 발명들은 고유한 발명적 개념을 구성하며, 이는 이하 기술될 것이다. 방법 또는 장치가 송신에서 사용된다면, 등가물이 수신에서 사용되어야 하며, 그 반대도 그러하며, 따라서 보내진 데이터가 복구될 수 있다.
데이터를 코디파이 하기 위한 방법은 송신에서 적용되며 N 비트의 부호 워드가 오류들에 대한 보호를 포함하는 K 비트(N>K)의 워드로부터 생성되게 한 블록의 데이터에 관한 패리티 비트를 생성한다. 상기 절차는 다수의 단계들을 포함한다. 팩터 b로 N 및 K의 제산이 자연수들이 되게 하는 1과 K 사이의 자연수인 제 1 팩터 b가 선택된다(n=N/b; k=K/b). 이하, 데이터 비트 Ha 의 위치들에 대응하는 서브행렬과 패리티 비트 Hb 에 대응하는 서브행렬과의 조합으로서 크기 (n-k) x n의 바이너리 모델 행렬 H0=[Ha|Hb]을 정의하며, 상기 제 2 서브행렬 H b =[hb0|Hb1]은 n-k 위치들 h b 0의 열 벡터 및 3중 대각 구조를 갖는 행렬 H b 1로 구성되는데, 즉 2개의 중앙 대각들 hb 1 (i,i),hb 1 (i+1,i) 0 ≤ i ≤n-k-2 및 마지막 행 hb 1(n-k-1,0)의 대각의 원소들은 1이며, n-k는 행렬 Hb 의 행들 및 열들의 수이며, 나머지 원소들은 제로이다. 후에, 콤팩트 행렬 H1 이 생성되고 콤팩트 행렬 H1 로부터 패리티 행렬 H이 생성된다. 이로부터, 한 블록의 데이터를 취하며 이 한 블록의 데이터에 패리티 행렬 H을 사용하여 상기 블록에 대응하는 패리티 비트를 결정한다. 마지막으로, 패리티 비트가 한 블록의 데이터와 함께 송신된다.
방법의 일 구현에서, 부호 워드의 하나 이상의 원소들이 송신되기 전에 이를 제거하는 것이 가능하여, 오류들에 대한 보호를 위한 역량에 큰 해를 입히지 않고 송신에서 용장성을 감소시킨다. 이 기술을 "펑처링(puncturing)"이라 한다. 이 경우에, 송신되는 워드는 초기 절차에서 얻어진 부호 워드보다 적은 수의 비트를 가질 것이다.
데이터 코디파이 장치는 데이터 비트 Ha 의 위치에 대응하는 서브행렬과 패리티 비트 Hb 에 대응하는 서브행렬과의 조합으로서 형성된 바이너리 모델 행렬 H0 =[Ha|Hb]으로부터 도출되는 콤팩트 행렬 H1 을 저장하기 위한 수단으로서, 상기 제 2 서브행렬 H b =[hb0|Hb1]은 n-k 위치들 h b 0의 열 벡터 및 3중 대각 구조를 갖는 행렬 H b 1로 구성되는데, 즉 2개의 중앙 대각들 hb 1 (i,i),hb 1 (i+1,i) 0 ≤i ≤n-k-2 및 마지막 행 hb 1(n-k-1,0)의 대각의 원소들은 1이며, n-k는 행렬 Hb 의 행들 및 열들의 수이며, 나머지 원소들은 제로(zero)인, 상기 저장하기 위한 수단, 및 한 블록의 데이터를 취하고 패리티 행렬 H을 생성하기 위해 콤팩트 행렬 H1 를 사용하며, 그 블록에 대응하는 패리티 비트를 얻기 위해 패리티 행렬 H를 이 블록의 데이터에 적용하며 한 블록의 데이터가 송신되기 전에 이에 패리티 비트를 추가하는 마이크로프로세서를 포함한다.
이 장치의 한 구체적 구현에서, 한 블록의 데이터에 패리티 비트를 추가한 후에 그러나 송신 전에 펑처링 기술을 적용함으로써 부호 워드의 하나 이상의 원소들이 제거된다. 이렇게 하여, 송신되는 워드는 원래 생성된 부호 워드보다 적은 수의 비트를 갖게 될 것이다.
한편으로, 데이터 디코디파이 방법은 수신에서 동작하며, 채널로부터 수신된 신호 벡터로부터 수신된 한 블록의 데이터를 추정한다. N 비트의 수신된 부호 워드로부터(채널 잡음에 기인하여 오류들을 갖고 있을 수 있는) 송신기가 보내기를 원했던 K-비트 데이터 워드가 얻어진다. 이것은 먼저 채널로부터 신호 벡터, 및 데이터 비트 H a 의 위치에 대응하는 서브행렬과 패리티 비트 H b 에 대응하는 서브행렬과의 조합인 바이너리 모델 행렬 H 0 =[ H a | H b ]를 취하는데, 상기 제 2 서브행렬 H b =[h b 0|H b 1]은 n-k 위치들 h b 0의 열 벡터 및 3중 대각 구조를 갖는 행렬 H b1 로 구성되는데, 즉 2개의 중앙 대각들 h b 1 (i,i),h b 1 (i+1,i) 0 ≤i ≤n-k-2 및 마지막 행 h b 1(n-k-1,0)의 대각의 원소들은 1이고, n-k는 행렬 Hb의 행들 및 열들의 수이며, 나머지 원소들인 제로이다. 후에, 콤팩트 행렬 H 1이 생성되고, 이로부터, 패리티 행렬 H이 생성되며, 마지막으로, 수신된 벡터 신호 및 패리티 행렬 H로부터 데이터 블록이 추정된다.
펑처링 기술이 송신에서 사용되었다면, 유실된 데이터는 수신에서 복구되어야 한다. 이 경우에, 수신된 신호 벡터 및 패리티 행렬로부터 데이터 블록의 제거를 행하기에 앞서 펑처링 기술에 의해 송신에서 제거된 위치들에 표시자 값이 삽입된다.
데이터 디코디파이 장치는 데이터 비트 H a 의 위치에 대응하는 서브행렬과 패리티 비트 H b 에 대응하는 서브행렬과의 조합인 바이너리 모델 행렬 H 0 =[ H a | H b ]로부터 도출되는 콤팩트 행렬 H 1 를 저장하기 위한 수단으로서, 상기 제 2 서브행렬 H b =[h b 0|H b 1]은 n-k 위치들 h b 0의 열 벡터 및 3중 대각 구조 H b 1로 구성되는데, 즉 2개의 중앙 대각들 h b 1 (i,i),h b 1 (i+1,i) 0 ≤i ≤n-k-2 및 마지막 행 h b 1(n-k-1,0)의 대각의 원소들은 1이고, n-k는 행렬 H b 의 행들 및 열들의 수이며 나머지 원소들은 제로와 동일한 서브행렬인, 상기 수단; 및 콤팩트 행렬 H 1 로부터 패리티 행렬 H를 생성하고 수신된 신호 벡터에 상기 패리티 행렬 H를 적용하고 수신된 데이터 블록을 제거하는 마이크로프로세서를 포함한다.
송신 장치가 펑처링 기술을 사용하였다면, 유실된 데이터는 오류 정정이 행해지기 전에 복구되어야 한다. 그러므로, 이 구현에서 그리고 수신된 신호 벡터에 패리티 행렬 H을 적용하기 전에, 펑처링 기술에 의해 송신에서 제거되었던 위치들에 표시자 값이 삽입된다.
또 다른 구현에서, 1/2의 코디파이 레이트를 가진 336-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 ,
Figure 112011015864707-pct00005
아니면 행렬,
Figure 112011015864707-pct00006
Figure 112011015864707-pct00007
을 사용하는 것이 가능하다.
또 다른 구현에서, 1/2의 코디파이 레이트를 가진 1920-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 ,
Figure 112011015864707-pct00008
아니면 행렬,
Figure 112011015864707-pct00009
을 사용하는 것이 가능하다.
또 다른 구현에서, 1/2의 코디파이 레이트를 가진 8640-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 ,
Figure 112011015864707-pct00010
Figure 112011015864707-pct00011
아니면 행렬,
Figure 112011015864707-pct00012
을 사용하는 것이 가능하다.
또 다른 구현에서, 2/3의 코디파이 레이트를 가진 1440-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 를 사용하는 것이 가능하다.
Figure 112011015864707-pct00013
또 다른 구현에서, 2/3의 코디파이 레이트를 가진 6480-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 를 사용하는 것이 가능하다.
Figure 112011015864707-pct00014
또 다른 구현에서, 5/6의 코디파이 레이트를 가진 1152-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 를 사용하는 것이 가능하다.
Figure 112011015864707-pct00015
또 다른 구현에서, 5/6의 코디파이 레이트를 가진 5184-비트 부호 워드들을 얻기 위해 다음 콤팩트 행렬 H 1 를 사용하는 것이 가능하다.
Figure 112011015864707-pct00016
펑처링 기술이 사용되는 일 구현은 1152 비트 부호 워드 및 5/6의 코디파이 레이트로 시작하고 1080 비트 부호 워드 및 16/18의 코디파이 레이트를 얻기 위해 다음 펑처링 패턴을 적용한다.
Figure 112011015864707-pct00017
펑처링 기술이 사용되는 또 다른 구현은 5184 비트를 가진 부호 워드 및 5/6의 코디파이 레이트로 시작하고 4860 비트 부호 워드 및 16/18의 코디파이 레이트를 얻기 위해 다음 펑처링 패턴을 적용한다.
Figure 112011015864707-pct00018
펑처링 기술이 사용되는 또 다른 구현은 1152 비트 및 5/6의 코디파이 레이트를 가진 부호 워드로 시작하고 1008-비트 부호 워드 및 20/21의 코디파이 레이트를 얻기 위해 다음 펑처링 패턴을 적용한다.
Figure 112011015864707-pct00019
마지막으로, 펑처링 기술이 사용되는 최종 구현은 5184-비트 부호 워드 및 5/6의 코디파이 레이트로 시작하고 4536-비트 부호 워드 및 20/21의 코디파이 레이트을 얻기 위해서 다음 펑처링 패턴을 적용한다.
Figure 112011015864707-pct00020
이 서술적 문헌을 잘 이해할 수 있기 위해서, 한정이 아닌 예시로서 발명의 일예의 설명이 이하 주어진다. 이것은 이 문헌의 필수적 부분을 형성한다.
본 발명에 따르면, 잡음성 매체들을 통해 데이터를 통신하기 위한 방법 및 장치가 달성될 수 있다.
본 개시 내용은 상세한 설명 및 첨부 도면들로부터 더욱 완전하게 이해될 것이다.
도 1은 송신기 내 코디파이어의 블록도이다.
도 2는 송신기 내 디코디파이어의 블록도이다.
도 3은 예의 행렬 H의 두 부분 그래프이다.
도 4는 구조화된 LDPC 부호의 구성의 흐름도이다.
다음은 도면들에 채택된 참조부호를 참조하여, 발명의 구현의 일예의 설명이다.
이론적 관점에서 발명의 절차가 해결하고자 하는 문제는 저-비용 하드웨어 구현들 및 LDPC 부호들을 사용하여, 데이터 통신에서 오류들의 정정을 최적화하는데 있어 성공이다.
LDPC 부호는 다수 블록들의 데이터에 작용하는 선형 부호이다. 부호는 이의 패리티 행렬 H에 의해 정의된다. 이 구현예에서, 부호들은 바이너리 부호들이지만, 발명을 임의의 갈로아 필드 GF(q)(q는 ≥2) 상의 부호들로 일반화하는 것이 가능하다.
송신에서, 다수 블록들의 데이터는 K 비트로 구성된다. 상기 데이터 블록은 u = [u(0),u(1),…,u(K - 1)]로서 표시된다. 발명의 방법을 적용한 후에, N 비트를 가진 선형 부호 v = [v(0),v(1),…,v(N -1)]의 워드가 생성된다(N < K). 상기 부호는 곱 v = uG을 통해 생성되는데, G는 바이너리 행렬 K x N이며 LDPC 부호의 생성기이다. 생성되는 한 세트의 가능한 부호들을 세트 C이라 하며, 부호의 코디파이 레이트는 R=K/N이 될 것이다.
그러므로, 생성기 행렬 G을 적용함으로써 모든 가능한 2K 바이너리 벡터들에 의해 생성되는 한 세트의 벡터
Figure 112011015864707-pct00021
로서 코디파이 R의 부호 C를 정의하는 것이 가능하다. 동등한 정의는 C가 행렬 GK 행들로 구성된 베이스 내 포함된 크기 N의 벡터 공간이다라는 것이 될 것이다. 부호 C를 정의하는 또 다른 대안적 형태는 현재 기술에서 가장 많이 사용되는 형태인 패리티 행렬 H에 의한 것이다. 크기 (N-K) x N인 이 행렬은 행들로서 이중 공간 C의 베이스를 가지며, 그러므로 GH T = 0이다. 임의의 벡터의 부호는 vH T = 0 ("T"는 전치 연산자이다)을 만족한다.
실제적 관점에서 이들 부호들이 이용될 때에는 부호들을 계통적 부호들, 즉 부호 워드의 비트가 데이터 비트 사이에 있는 것들로서 간주하는 것이 바람직하다. 일반성을 잃지 않고, 이 예는 v=[u|p], p=[ p (0), p (1),... p ( N - K -1)] 패리티 비트로 구성된 벡터이고, u가 송신될 데이터 블록이고, v가 실제로 송신되는 부호 워드(LDPC 부호를 포함한 후에)인 경우를 중심으로 한 것이다.
이하는 패리티 행렬과 부호 워드 간에 관계가 관찰될 수 있는 구현의 예를 나타낸다. 이 예에서, 부호는 R = 1/2의 코디파이 레이트를 가지며 다음 패리티 행렬에 의해 정의된다.
Figure 112011015864707-pct00022
이 행렬에서, 좌측 부분은 K = 5 데이터 비트에 대응하고, 우측 부분은 N - K = 5 패리티 비트에 대응한다. 식 vH T = 0을 행렬 H에 적용함으로써 식들의 다음 시스템이 얻어진다.
Figure 112011015864707-pct00023
LDPC 부호는 태너 그래프라고 하는 두 부분 그래프를 가진 그래프 형태로 나타낼 수 있다. 태너 그래프에서, 정점들 또는 노드들은 부호 워드의 비트를 나타내는 "변수 노드들", 및 패리티 관계들을 나타내는 "체크 노드들"인 2개의 분리된 그룹들 또는 세트들로서 유별된다. 패리티 식을 정의하는 가능한 에지들이 두 세트들의 노드들 간에 발견된다. 앞의 예에서 정의된 부호의 경우에서, 이의 대응하는 그래프를 도 3에 나타내었는데, 여기에서 다수의 에지들(15)로 통합된, 10개의 변수 노드들(14) 및 5개의 체크 노드들(16)을 볼 수 있다. 각각의 체크 노드는 식들의 전술한 시스템에서 나타낸 바와 같이, 6개의 변수 노드들로의 에지들을 통해 통합된다. 그래프는 대응하는 패리티 행렬이 행들 및 열들을 갖는 것만큼의 제어 및 변수 노드들을 갖는다는 것과, 행렬의 원소 h(i,j), 즉 행 i = 0,…,N-K-1 및 열 j = 0,…,N-1에 위치된 원소가 비-제로일 때 체크 노드(i)와 변수 노드(j) 간에 한 에지가 발견된다는 것을 알 수 있다.
한편, LDPC 부호들에 순환들이 정의될 수 있는데, 한 순환의 길이 2c는 동일 시작 노드로 복귀하기 전에 부호를 나타내는 태너 그래프에 c 체크 노드들 및 c 변수 노드들을 처리하는 2c 길이 에지들의 경로로서 정의된다. 부호의 특징들을 최적화하기 위해서, 짧은 순환들의 수가 가능한 최소이어야 한다는 것은 대단히 중요한 것임을 보일 수 있다. 최소 길이의 순환을 거스(girth)라고 한다. 거스는 반복적 디코디파이어의 특징들을 감소시키는 것을 피하기 위해서 4보다 큰 것이 특히 바람직하다.
원 설명에서, R. Gallagher는 패리티 행렬들이 무작위로 생성되는 부호들을 제시하였다. 현재 기술에서는 샤논 한계에 가까운 양호한 특징들을 얻기 위해서, 부호의 크기는 비교적 커야 하며, 이의 결과로서 패리티 행렬이 커져야 함이 일반적으로 알려져 있다. 문제는 크고 무작위로 생성된 행렬들이 코디파이어 및 디코디파이어 둘 다의 구현에서 어려움을 야기한다는 것이다. 이러한 어려움을 피하는 한 방법은 정칙 구조를 가진 행렬들을 사용하는 것이다. 다음은 정칙 구조를 생성하는데 필요한 단계들이다.
1. 먼저, 크기 (n-k) x n, n < N, k < K 및 R = k|n = K|N의 바이너리 모델 행렬 H 0 을 생성한다. H 0 의 열들 및 행들의 해밍 웨이트가 일정하다면, 생성된 부호는 정칙 LDPC라고 한다. 그러나, 행렬이 부정칙하다면, 즉, 열들의 웨이트들이 코디파이 레이트에 따르는 그리고 데이터 송신이 최종으로 행해지게 될 채널의 통계적 분포에 따른다면 더 나은 특징들이 얻어질 수 있다.
2. 일단 바이너리 모델 행렬 H 0 이 얻어졌다면, "1"인 H 0 의 각각의 원소를 의사-랜덤 양의 정수 0 ≤ x < b (b = N|n)로 대체하고 "0"인 각각의 원소를 값 -1로 대체하여, 콤팩트 행렬 H 1 가 생성된다.
3. 패리티 행렬 H를 얻기 위해서, H 1 의 양의 원소들은 관련 H 1 의 양의 원소의 값이 나타내는 횟수로 순환적으로 회전된 단위(identity) 서브행렬로 대체되고, -1인 원소들은 동일 크기의 널 서브행렬(null submatrix)로 대체된다. 이들 서브행렬들의 크기도 b x b이 될 것이다.
결과는 코디파이 레이트 R=K|N을 가진 LDPC 부호를 정의하는 크기 (N-K) x N의 패리티 행렬 H 이다. 행렬의 밀도 그레이드(희박성)는 b의 크기에 좌우될 것이다. 일반적으로, b가 클수록, 반복적 디코디파이어를 사용함으로써 얻어지는 특징들은 더 나아질 것이다.
생성된 행렬(태너 그래프)의 순환들이 매우 짧은 것으로 드러난다면, 이들 특성들을 개선할 목적으로 단계 2(혹은 필요하다면 심지어 단계 1)이 적용될 것이다.
코디파이어의 구현을 용이하게 하기 위해서, 바이너리 모델 행렬 H 0 을 특정한 형태로 생성하는 것이 필요하다. 먼저, 상기 행렬은 두 부분들 H 0 = [ H a | H b ]으로 분할되며 서브행렬 H a 은 데이터 비트의 위치들에 대응하며 H b 는 패리티 비트에 대응한다. 제 1 서브행렬은 앞에서 기술된 방식으로 의사-랜덤하게 생성된다. 그러나, 제 2 부분은 일반적으로 확정적이다.
현재 기술에 따라서 그리고 효율적 코디파이어의 설계를 용이하게 하려고 의도된 이 제 2 부분 H b 는 다음 두 형태들 중 하나를 취한다. 제 1 형태는
Figure 112011015864707-pct00024
이며, 여기에서 제 1 부분은 2보다 큰 해밍 웨이트를 가진 의사-랜덤 열 벡터이며, H b1 는 i = j, i = j+1일 때 "1"이고 나머지 위치들에서 "0"인 원소들 hb1(i,j)을 가진 이중-대각 행렬이다.
H b 를 생성하는 두 번째 방법은 완전히 이중 대각인
Figure 112011015864707-pct00025
이며, 여기에서 서브행렬 hb(i,j)의 원소들은 i=j,i=j+1 일 때 "1"이며 나머지 위치들에선 제로이다.
일단 이 베이스 행렬 구조가 생성되었으면, H b 의 이중 대각에서, "1"들이 동일한 양의 정수로 대체되고 "0"들이 "-1"로 대체된다는 단 한가지를 제외하고 앞에서 기술된 형태로 콤팩트 행렬 H 1 이 생성된다. 또한, 최종 패리티 행렬은 양의 전체들을 순환적으로 회전된 아이텐터티들(identities)로 변경하고 음들을 널 서브행렬로 변경함으로써 얻어진다. 절차가 도 4에서 도식적으로 관찰될 수 있는데, 여기에서 블록(17)은 바이너리 모델 행렬 H 0 을 생성하며, 블록(18)은 콤팩트 행렬 H 1 을 생성하며, 블록(19)은 순환들이 충분히 긴지 여부를 판단하고, 프로세스는 블록(20)에 의해 패리티 행렬 H을 생성하는 것을 진행하며, 그렇지 않고 순환들이 짧다면, 모델 행렬(21) 아니면 베이스 행렬(22)이 다시 생성된다.
발명의 방법 및 장치는 코디파이 및 디코디파이의 최종 구현을 용이하게 하고 특징들을 개선하기 위해서 현재 기술에 공지된 패리티 행렬의 구조를 수정한다. 이를 위해서, 제안된 구조는 패리티 비트에 대응하는 바이너리 모델 H 0 의 부분이 다음 형태를 갖는 것으로 구성된다.
Figure 112011015864707-pct00026
여기에서 구조 H b1 는 3중 대각, 즉 2개의 중앙 대각들 hb1(I,i), hb1(i+1,i)의 원소들 외에도, 마지막 라인에 hb1(n-k-1,0)의 대각의 원소도 "1"이다. "1"인 마지막 행의 원소가 엄격히 양의 전체 w ≥ 0로 대체되는 것을 제외하고 앞서 기술된 방식으로 콤팩트 행렬이 생성된다.
n=24 및 k=12이고 r=1/2 에 대한 바이너리 모델 행렬 H 0 은 다음 구조를 가질 수도 있을 것이다.
Figure 112011015864707-pct00027
블록 크기 N=336 에 의해 전술한 바로부터 도출되고 따라서 확장 팩터 b=14을 갖는 콤팩트 행렬 H 1 은 다음이 될 것이며,
Figure 112011015864707-pct00028
혹은 바람직한 때, 다음 행렬이 대안으로서 사용될 수 있다.
Figure 112011015864707-pct00029
다른 블록 크기에 대해서는 동일 바이너리 모델 행렬로부터 혹은 또 다른 다른 행렬로부터 도출할 수 있는 다른 콤팩트 행렬을 정의할 수 있다.
코디파이 레이트가 1/2인 1920 비트의 부호 워드들을 얻기 위해서, 다음 행렬이 사용될 수 있다.
Figure 112011015864707-pct00030
아니면, 바람직하게, 행렬,
Figure 112011015864707-pct00031
이 사용될 수 있다.
다른 바이너리 모델 행렬로부터 도출되는 확장 팩터 360을 가진 N=8640 비트에 대한 콤팩트 행렬은 다음이 될 것이다.
Figure 112011015864707-pct00032
코디파이 레이트가 1/2인 8640 비트의 부호 워드들을 얻기 위한 또 다른 바람직한 대안은 다음의 행렬이다.
Figure 112011015864707-pct00033
콤팩트 행렬에서 바이너리 모델로의 단계는 일의적이지만, 그 반대로의 단계에 있어선 그렇지 않다. 즉, 상이한 콤팩트 행렬들이 바이너리 모델 행렬로부터 얻어질 수 있다. 바이너리 행렬은 발명의 설명을 용이하게 하는 단계로서 도입되었다. 바이너리 모델 행렬을 거치지 않고 곧바로 콤팩트 행렬을 전개하는 것이 가능하다. 이 경우, 이 콤팩트 행렬에 대해서, 3중 대각이라면 발명의 방법과 일치하게 될 상기 콤팩트 행렬의 바이너리 모델 행렬이 얻어질 수 있다.
오류 정정 부호들은 "펑처(puncture)될 수 있는데, 펑처링 기술은 부호 워드의 원소들이 송신되지 않도록 이들 원소들을 제거하는 것으로 구성된다. 부호 워드 v = [v(0),v(1),…,v(N-1)]를 송신하는 대신에, 워드 w = [w(0),w(1),…,w(M-1)]가 송신될 것이다(여기에서, M<N). 펑처링은 수신기의 디코디파이어가 송신된 데이터를 평가할 수 있기 위해서 필요한 용장성이 송신되도록, 제어된 방식으로 행해져야 한다. 이 펑처링은 데이터 비트 및 패리티 비트 둘 모두에 적용된다. 펑처링의 패턴은 펑처링되어 송신될 비트의 시퀀스로서 정의될 수 있는데, 여기에서 상기 비트 패턴은 주기적이거나 비주기적 일 수 있다. 규칙성이 없는 경우에, 상기 패턴은 "1"은 송신될 비트이고 "0"은 제거될(펑처링될) 비트를 나타내는 것으로, N 위치들의 벡터 pp로 기술될 수 있다. 펑처링 기술 덕택으로, 더 적은 용장성이 보내지기 때문에, 데이터 통신은 증대될 수 있다. 패턴 pp 의 해밍 웨이트가 M이라면, 오류 코디파이의 총 시스템 레이트는 R=K|M이 된다.
예를 들어, R=5/6 및 블록 크기 N=5184인 부호가 있고 R=16/18로 레이트를 증가시키기 위해 펑처링을 수행하기를 원한다면, 다음 펑처링 패턴을 사용할 수 있고 이는 N=4860 비트를 가진 블록이 얻어지게 할 것이다.
Figure 112011015864707-pct00034
LDPC 부호들의 구현을 달성하기 위해서, 마이크로프로세서 상에서 실행되는 프로그램이든 FPGA 또는 ASIC 하드웨어 구현이든 간에, 전자장치가 사용된다. 상기 장치는 한 블록의 데이터를 수신하고, 패리티 비트를 계산하고, 이들을 정보 비트에 연결하고, 이들을 적절히 변조되어 대응하는 채널을 통해 송신되도록 송신기의 다음 위상(phase)으로 보낸다. 패리티 비트의 계산은 생성기 행렬 G의 곱 또는 앞에서 제시된 식들의 시스템의 해에 의해 행해질 수 있다.
LDPC 부호들의 디코디파이어는 일반적으로 반복적 디코디파이어에 기초한다. 선택할 수 있는 몇가지 현재 기술들 중에서 한 가능한 디코디파이어는 송신된 부호 r=v+z, Z는 부가성(additive) 채널 잡음, 에 대응하는 워드를 수신하였을 때, (r-
Figure 112011015864707-pct00035
) HT=0이 되게 잡음 추정
Figure 112011015864707-pct00036
을 행하는 추정기로 구성된다. 디코디파이어 전에 시스템이 펑처링 기술을 이용하는 경우에, 펑처링된 위치들에 표시자를 삽입하는 유닛이 있을 것이다. 이 표시자는 이들 위치들에서 적합한 값을 추정하게 디코디파이어를 지휘하게 작용한다.
도 1은 전형적인 코디파이어의 블록도로서, (1)은 송신될 데이터 블록
Figure 112011015864707-pct00037
이며, (2)는 패리티 행렬 H 또는 생성기 행렬 G의 표현을 내포하는 메모리이며, (3)은 상기한 행렬이며, (4)는 코디파이 알고리즘을 수행하는 블록이며, (5)는 코디파이로부터 얻어진 선형 부호 워드
Figure 112011015864707-pct00038
이며, (6)은 펑처링을 행하는 블록이며, (7)는 펑처링 후에 얻어지는 워드
Figure 112011015864707-pct00039
이다.
도 2는 디코디파이어에 대한 블록도로서, (8)은 펑처링 후에, 그러나 채널 잡음에 의해 영향을 받은 후에 얻어진 워드와 유사하게 될 채널로부터의 수신된 신호
Figure 112011015864707-pct00040
를 나타내며, (9)는 "디-펑처링"을 수행하여 LDPC 부호에 비트 수와 함께 워드(10)
Figure 112011015864707-pct00041
를 얻는 블록을 나타낸다. (11)은 수신기 내 패리티 행렬 또는 생성기 행렬을 내포하는 메모리이며 12를 디코디파이어 알고리즘(13)을 수행하는 블록에 송신한다. 이 블록의 출력은 재구성된 데이터(14)
Figure 112011015864707-pct00042
가 될 것이다.

Claims (34)

  1. n 및 k는 양의 정수들인 크기 (n-k) x n의 바이너리 모델 행렬(binary model matrix)을 정의하는 단계 - 상기 바이너리 모델 행렬은 데이터 비트들(data bits)의 위치들에 대응하는 제 1 서브행렬 및 패리티 비트들(parity bits)의 위치들에 대응하는 제 2 서브행렬을 포함하고,
    상기 제 2 서브행렬은 열 벡터(column vector) 및 3중-대각 행렬(triple-diagonal matrix)을 포함하고,
    상기 3중-대각 행렬은 i 행들 및 j 열들을 포함하며,
    상기 i=j 그리고 i=j+1에 대응하는, 3중-대각 행렬의 비트들은 1이고,
    상기 3중-대각 행렬의 마지막 행 및 제1 열에서의 비트는 1이며,
    상기 3중-대각 행렬에서 나머지 비트들은 0이다 - 와;
    상기 바이너리 모델 행렬에 기초하여 콤팩트 행렬(compact matrix)을 생성하는 단계와;
    상기 콤팩트 행렬에 기초하여 패리티 행렬(parity matrix)을 생성하는 단계와;
    상기 패리티 행렬에 기초하여 상기 패리티 비트들을 결정하는 단계;
    상기 패리티 비트들 및 상기 데이터 비트들에 기초하여 부호워드(codeword)를 생성하는 단계; 및
    송신기에서, 채널을 통해, 상기 부호워드를 제 1 통신 장치로부터 제 2 통신 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 열 벡터는 n-k 위치들을 가지는 것을 특징으로 하는 방법.
  3. 청구항 1에 있어서,
    팩터 b를 선택하는 단계를 더 포함하고,
    K로 곱한 상기 팩터 b는 1 이상이고, K는 상기 바이너리 모델 행렬의 행들의 수이며;
    n은 N을 상기 팩터 b로 나눈 것이며, N은 상기 바이너리 모델 행렬의 열들의 수이며; 및
    k는 K를 상기 팩터 b로 나눈 것인 것을 특징으로 하는 방법.
  4. 삭제
  5. 청구항 1에 있어서,
    한 블록의 데이터에 기초하여 상기 패리티 비트들을 결정하는 단계; 및
    상기 패리티 비트 및 상기 한 블록의 데이터를 상기 제2 통신 장치에 송신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서,
    상기 바이너리 모델 행렬은 Ha | Hb 이며, Ha는 상기 제 1 서브행렬이고 Hb는 상기 제 2 서브행렬이며;
    상기 제 2 서브행렬 Hb는 hb0 | Hb1이며, hb0는 상기 열 벡터이고 Hb1는 상기 3중-대각 행렬인 것을 특징으로 하는 방법.
  7. 청구항 6에 있어서,
    상기 3중-대각 행렬 Hb1의 원소들 hb1(i,i) 및 hb1(i+1,i) 그리고 상기 3중-대각 행렬 Hb1의 마지막 행 hb1(n-k-1,0)의 대각은 1이며, i는 0 이상이고 n-k-2 이하인 정수인 것을 특징으로 하는 방법.
  8. 청구항 7에 있어서,
    상기 제 2 서브행렬 Hb은 n-k 행들 및 n-k 열들을 포함하는 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 콤팩트 행렬을 생성하는 단계는,
    1인 상기 바이너리 모델 행렬의 각각의 원소를 의사-랜덤(pseudo-random) 양의 정수로 대체하는 단계; 및
    0인 상기 바이너리 모델 행렬의 각각의 원소를 -1로 대체하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 청구항 9에 있어서,
    상기 의사-랜덤 양의 정수는 0 이상이고 팩터 미만이며, 상기 팩터는 N | n이며 N은 상기 바이너리 모델 행렬의 열들의 수인 것을 특징으로 하는 방법.
  11. 청구항 1에 있어서,
    상기 패리티 행렬을 생성하는 단계는,
    상기 콤팩트 행렬의 양의 원소들을 단위 서브행렬(identity sub-matrix)로 대체하는 단계, 상기 패리티 행렬은 상기 양의 원소들 중 한 원소의 값으로 표시된 횟수로 순환적으로 회전되며, 상기 패리티 행렬의 상기 순환적 회전은 비트들을 상기 패리티 행렬의 각각의 행에서 상기 값과 동일한 횟수로 쉬프팅(shifting)하는 것을 포함하며; 및
    -1인 상기 콤팩트 행렬의 원소들을 널 서브행렬(null submatrix)로 대체하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 청구항 11에 있어서,
    상기 단위 서브행렬 또는 상기 널 서브행렬 중 적어도 하나는 b x b 행렬이며, b는 1 이상의 양의 정수인 것을 특징으로 하는 방법.
  13. 청구항 1에 있어서,
    상기 패리티 행렬은 R = K|N의 코디파이 레이트를 가진 저밀도 패리티-체크(LDPC) 부호를 정의하며, K는 상기 바이너리 모델 행렬의 행들의 수이고 N은 상기 바이너리 모델 행렬의 열들의 수인 것을 특징으로 하는 방법.
  14. 삭제
  15. 청구항 1에 있어서,
    상기 부호워드가 송신되기 전에 상기 부호워드의 비트를 제거하기 위해서 펑처링 장치(puncturing device)를 통해서 상기 부호워드를 펑처링 하는 단계를 더 포함하고, 상기 펑처링은 상기 부호워드로부터 적어도 하나의 데이터 비트 및 적어도 하나의 패리티 비트를 제거하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 청구항 1에 있어서,
    상기 송신기의 위상으로 상기 부호워드를 변조하고 상기 채널을 통해 송신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 청구항 1에 있어서,
    상기 콤팩트 행렬은 프로세서를 통해 생성되는 것을 특징으로 하는 방법.
  18. 청구항 1에 있어서,
    상기 콤팩트 행렬은 집적회로 및 필드 프로그래머블 게이트 어레이 중 하나를 통해 생성되는 것을 특징으로 하는 방법.
  19. 제 1 통신 장치의 수신기를 통해 채널로부터 신호 벡터를 수신하는 단계 - 상기 신호 벡터는 상기 채널을 통해 제 2 통신 장치에서 상기 제 1 통신 장치로 송신된다 - 와;
    n 및 k는 양의 정수들인 크기 (n-k) x n의 바이너리 모델 행렬을 계산하는 단계 - 상기 바이너리 모델 행렬은 상기 신호 벡터의 데이터 비트들의 위치들에 대응하는 제 1 서브행렬 및 패리티 비트들의 위치들에 대응하는 제 2 서브행렬을 포함하고,
    상기 제 2 서브행렬은 열 벡터(column vector) 및 3중-대각 행렬(triple-diagonal matrix)을 포함하고,
    상기 3중-대각 행렬은 i 행들 및 j 열들을 포함하며,
    상기 i=j 그리고 i=j+1에 대응하는, 3중-대각 행렬의 비트들은 1이고,
    상기 3중-대각 행렬의 마지막 행 및 제1 열에서의 비트는 1이며,
    상기 3중-대각 행렬에서 나머지 비트들은 0이다 - 와;
    상기 바이너리 모델 행렬에 기초하여 콤팩트 행렬을 생성하는 단계와;
    상기 콤팩트 행렬에 기초하여 패리티 행렬을 생성하는 단계; 및
    상기 신호 벡터 및 상기 패리티 행렬에 기초하여 데이터 블록을 예측(estimating)하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 청구항 19에 있어서,
    상기 제 2 서브행렬은 상기 3중-대각 행렬에 부가하여 n-k 위치들의 열 벡터를 포함하는 것을 특징으로 하는 방법.
  21. 청구항 19에 있어서,
    팩터 b를 선택하는 단계를 더 포함하고,
    K로 곱한 상기 팩터 b는 1 이상이고, K는 상기 바이너리 모델 행렬의 행들의 수이며;
    n은 N을 상기 팩터 b로 나눈 것이고, N은 상기 바이너리 모델 행렬의 열들의 수이며; 및
    k는 K를 상기 팩터 b로 나눈 것인 것을 특징으로 하는 방법.
  22. 삭제
  23. 청구항 19에 있어서,
    상기 바이너리 모델 행렬은 Ha | Hb 이며, Ha는 상기 제 1 서브행렬이고 Hb는 상기 제 2 서브행렬이며;
    상기 제 2 서브행렬 Hb는 hb0 | Hb1이며, hb0는 상기 열 벡터이고 Hb1는 상기 3중-대각 행렬인 것을 특징으로 하는 방법.
  24. 청구항 23에 있어서,
    상기 3중-대각 행렬 Hb1의 원소들 hb1(i,i) 및 hb1(i+1,i) 그리고 상기 3중-대각 행렬 Hb1의 마지막 행 hb1(n-k-1,0)의 대각은 1이며, i는 0 이상이고 n-k-2 이하인 정수인 것을 특징으로 하는 방법.
  25. 청구항 24에 있어서,
    상기 제 2 서브행렬 Hb는 n-k 행들 및 n-k 열들을 포함하는 것을 특징으로 하는 방법.
  26. 청구항 19에 있어서,
    상기 콤팩트 행렬을 생성하는 단계는,
    1인 상기 바이너리 모델 행렬의 각각의 원소를 의사-랜덤 양의 정수로 대체하는 단계; 및
    0인 상기 바이너리 모델 행렬의 각각의 원소를 -1로 대체하는 단계를 포함하는 것을 특징으로 하는 방법.
  27. 청구항 26에 있어서,
    상기 의사-랜덤 양의 정수는 0 이상이고 팩터 미만이며, 상기 팩터는 N | n이며 N은 상기 바이너리 모델 행렬의 열들의 수인 것을 특징으로 하는 방법.
  28. 청구항 19에 있어서,
    상기 패리티 행렬을 생성하는 단계는,
    상기 콤팩트 행렬의 양의 원소들을 단위 서브행렬(identity sub-matrix)로 대체하는 단계, 상기 패리티 행렬은 상기 양의 원소들 중 한 원소의 값으로 표시된 횟수로 순환적으로 회전되며, 상기 패리티 행렬의 상기 순환적 회전은 비트들을 상기 패리티 행렬의 각각의 행에서 상기 값과 동일한 횟수로 쉬프팅(shifting)하는 것을 포함하며; 및
    -1인 상기 콤팩트 행렬의 원소들을 널 서브행렬(null submatrix)로 대체하는 단계를 포함하는 것을 특징으로 하는 방법.
  29. 청구항 28에 있어서,
    상기 단위 서브행렬 또는 상기 널 서브행렬 중 적어도 하나는 b x b 행렬이며, b는 1 이상의 양의 정수인 것을 특징으로 하는 방법.
  30. 청구항 19에 있어서,
    상기 패리티 행렬은 R = K|N의 코디파이 레이트를 가진 저밀도 패리티-체크(LDPC) 부호를 정의하며, K는 상기 바이너리 모델 행렬의 행들의 수이고 N은 상기 바이너리 모델 행렬의 열들의 수인 것을 특징으로 하는 방법.
  31. 청구항 19에 있어서,
    상기 패리티 비트들 및 상기 데이터 블록에 기초하여 부호워드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  32. 청구항 19에 있어서,
    부호워드를 생성하기 위해 디펑처링 장치(depuncturing device)를 통해 상기 신호 벡터를 디펑처링하는 단계를 더 포함하고, 상기 데이터 블록은 상기 부호워드에 기초하여 생성되는 것을 특징으로 하는 방법.
  33. 청구항 19에 있어서,
    상기 콤팩트 행렬은 프로세서를 통해 생성되는 것을 특징으로 하는 방법.
  34. 청구항 19에 있어서,
    상기 콤팩트 행렬은 집적회로 및 필드 프로그래머블 게이트 어레이 중 하나를 통해 생성되는 것을 특징으로 하는 방법.
KR1020117005245A 2009-02-06 2010-02-05 잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치 KR101636965B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
ESP200900343 2009-02-06
ES200900343A ES2363846B1 (es) 2009-02-06 2009-02-06 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos.
ESP201030066 2010-01-20
ES201030066A ES2386449B1 (es) 2010-01-20 2010-01-20 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado.

Publications (2)

Publication Number Publication Date
KR20110126097A KR20110126097A (ko) 2011-11-22
KR101636965B1 true KR101636965B1 (ko) 2016-07-20

Family

ID=42145914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005245A KR101636965B1 (ko) 2009-02-06 2010-02-05 잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치

Country Status (6)

Country Link
US (3) US8719655B2 (ko)
EP (1) EP2395667B1 (ko)
KR (1) KR101636965B1 (ko)
CN (1) CN102301603B (ko)
ES (1) ES2559637T3 (ko)
WO (1) WO2010089444A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2395667B1 (en) 2009-02-06 2015-12-16 Marvell Hispania S.L. Quasi-cyclic ldpc coding
KR102019893B1 (ko) * 2013-07-22 2019-09-09 삼성전자주식회사 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
CN106849958B (zh) * 2016-12-29 2020-10-27 上海华为技术有限公司 低密度奇偶校验码校验矩阵的构造方法、编码方法及系统
CN106953644A (zh) * 2017-03-15 2017-07-14 中山大学 一种基于汉明码的多元qc‑ldpc码构造方法
CN109586733B (zh) * 2018-11-23 2021-06-25 清华大学 一种基于图形处理器的ldpc-bch译码方法
US11175826B2 (en) * 2019-05-03 2021-11-16 Government Of The United States Of America, As Represented By The Secretary Of Commerce Diagonal node data block matrix for adding hash-linked records and deleting arbitrary records while preserving hash-based integrity assurance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222486A1 (en) 2007-03-09 2008-09-11 Qualcomm Incorporated Methods and apparatus for encoding and decoding low density parity check (ldpc) codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
US7203897B2 (en) 2004-08-12 2007-04-10 Motorola, Inc. Method and apparatus for encoding and decoding data
US7343548B2 (en) * 2004-12-15 2008-03-11 Motorola, Inc. Method and apparatus for encoding and decoding data
US20070198905A1 (en) 2006-02-03 2007-08-23 Nokia Corporation Transmitter for a communications network
CN101159515B (zh) * 2007-11-22 2010-08-25 普天信息技术研究院有限公司 一种可变长低密度奇偶校验码的编码方法及系统
EP2395667B1 (en) 2009-02-06 2015-12-16 Marvell Hispania S.L. Quasi-cyclic ldpc coding
US8464123B2 (en) * 2009-05-07 2013-06-11 Ramot At Tel Aviv University Ltd. Matrix structure for block encoding
US8918694B2 (en) * 2011-02-28 2014-12-23 Clariphy Communications, Inc. Non-concatenated FEC codes for ultra-high speed optical transport networks
US9252811B2 (en) * 2011-06-07 2016-02-02 Analogies Sa Time-varying low-density parity-check convolutional codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222486A1 (en) 2007-03-09 2008-09-11 Qualcomm Incorporated Methods and apparatus for encoding and decoding low density parity check (ldpc) codes

Also Published As

Publication number Publication date
US20140304569A1 (en) 2014-10-09
US20160119000A1 (en) 2016-04-28
US9543985B2 (en) 2017-01-10
EP2395667A1 (en) 2011-12-14
ES2559637T3 (es) 2016-02-15
EP2395667B1 (en) 2015-12-16
US9240806B2 (en) 2016-01-19
CN102301603B (zh) 2014-08-06
WO2010089444A1 (es) 2010-08-12
CN102301603A (zh) 2011-12-28
KR20110126097A (ko) 2011-11-22
US20120266039A1 (en) 2012-10-18
US8719655B2 (en) 2014-05-06

Similar Documents

Publication Publication Date Title
EP3371890B1 (en) Signature-enabled polar encoder and decoder
KR101104653B1 (ko) 레이트-호환가능한 저밀도 패리티-체크 (ldpc) 코드
US6948109B2 (en) Low-density parity check forward error correction
US8812930B1 (en) Parallel encoder for low-density parity-check (LDPC) codes
JP3893383B2 (ja) Ldpc符号用検査行列生成方法および検査行列生成装置
US8386880B2 (en) Method for transmitting non-binary codes and decoding the same
JP4163023B2 (ja) 検査行列生成方法および検査行列生成装置
EP3119004B1 (en) Method, device, and computer storage medium supporting low bit rate encoding
KR101636965B1 (ko) 잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치
JP2019536341A (ja) Ldpcコードを符号化および復号化するための方法および装置
WO2006075417A1 (ja) 符号化方法、復号方法及びそれらの装置
US9294130B1 (en) Quasi-cyclic low-density parity-check (QC-LDPC) encoder
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
US20140173374A1 (en) Methods and apparatus for error coding
EP3047575B1 (en) Encoding of multiple different quasi-cyclic low-density parity check (qc-ldpc) codes sharing common hardware resources
US7398456B2 (en) Information encoding by shortened Reed-Solomon codes
US7181677B1 (en) System and method for producing data and ECC code words using a high rate restricted-symbol code
KR20190041390A (ko) Raid에 맞춤화된 bch 인코딩 및 디코딩 방법, 및 그 장치
TWI469536B (zh) 在雜訊媒體上之資料通信程序及裝置
EP3526899B1 (en) Decoding of low-density parity-check convolutional turbo codes
Qamar et al. An efficient encoding algorithm for (n, k) binary cyclic codes
Karim et al. Performance Comparison between Low-density Parity-check and Reed-solomon Codes using Wireless Image Transmission System
Karim et al. Performance Comparison Between Low–Density Parity–Check And Reed–Solomon Codes Using Wireless Image Transmission System

Legal Events

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