KR100884698B1 - 데이터를 인코딩 및 디코딩하는 방법 및 장치 - Google Patents

데이터를 인코딩 및 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR100884698B1
KR100884698B1 KR1020077003244A KR20077003244A KR100884698B1 KR 100884698 B1 KR100884698 B1 KR 100884698B1 KR 1020077003244 A KR1020077003244 A KR 1020077003244A KR 20077003244 A KR20077003244 A KR 20077003244A KR 100884698 B1 KR100884698 B1 KR 100884698B1
Authority
KR
South Korea
Prior art keywords
matrix
column
extension
submatrices
vector
Prior art date
Application number
KR1020077003244A
Other languages
English (en)
Other versions
KR20070035072A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=35758925&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100884698(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 모토로라 인코포레이티드 filed Critical 모토로라 인코포레이티드
Publication of KR20070035072A publication Critical patent/KR20070035072A/ko
Application granted granted Critical
Publication of KR100884698B1 publication Critical patent/KR100884698B1/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
    • 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
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6393Rate compatible low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/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
    • 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

Landscapes

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

Abstract

구조화된 패리티 체크 행렬 H이 제안되며, H는 베이스 행렬 Hb의 확장이며 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 포함하는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. 상기 베이스 행렬 Hb의 확장은 상기 제 1 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 이용하며, 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들을 이용한다.
Figure R1020077003244
패리티 체크 비트, 송신기, 심볼 세트, 행렬 확장, 가중값

Description

데이터를 인코딩 및 디코딩하는 방법 및 장치{Method and apparatus for encoding and decoding data}
본 발명은 일반적으로 데이터를 인코딩 및 디코딩하는 것에 관한 것이며, 특히 저밀도 패리티-체크(LDPC: Low-Density Parity-Check) 코드들을 이용하여 데이터를 인코딩 및 디코딩하는 방법 및 장치에 관한 것이다.
본 명세서에서 참조문헌으로 포함된 미국 특허 출원 번호 제 10/839,995 호에 기술된 바와 같이, 저밀도 패리티-체크(LDPC) 코드는 패리티-체크 행렬(H)에 의해 특정되는 선형 블록 코드이다. 일반적으로, LDPC 코드는 갈루아 필드(Galois field) GF(q), q≥2에 대해 정의된다. q=2이면, 코드는 이진 코드이다. 모든 선형 블록 코드들은 n비트 코드워드 x1xn, r=k/n을 생성하기 위해 k비트 정보 벡터 s1xn과 코드 생성기 행렬 Gkxn과의 곱으로서 기술될 수 있다. 코드워드 x는 잡음성 채널을 통해 전송되며, 수신된 신호벡터 y는 정보 벡터 s1xn를 추정하기 위해 디코더에 보내진다.
n차원 공간이 주어졌을 때, G의 행들은 k차원 코드워드 부분공간 C에 걸쳐 있고, 패리티 체크 행렬 Hmxn의 행들은 m차원 이중 공간
Figure 112008038212918-pct00001
에 걸쳐 있으며 여기서 m=n-k이다. x=sG 및 GHT=0이기 때문에, 부분공간 C에서 모든 코드워드들에 대해 xHT=0이 되고, 여기서 "T"(혹은 "T")는 전치 행렬을 나타낸다. LDPC 코드들의 논의에서, 이것은 일반적으로 다음과 같이 표현된다.
Figure 112007012314934-pct00002
여기서, 0은 모두 제로들인 행 벡터이고, 코드워드 x=[s p]=[s0, s1,...,sk-1,p0,p1,...,pm-1]이고, p0,...,pm-1은 패리티 체크 비트들이고, s0,...,sk-1은 계통 비트들(systematic bits)로서 정보벡터 내 정보 비트들과 같다.
LDPC 코드에 있어서 H내 제로가 아닌 엔트리들의 밀도는 낮다. 즉 H에는 적은 퍼센트의 1들만이 있어, 조밀한 H를 사용하는 것보다 에러 정정 수행을 더 잘 할 수 있게 하고 디코딩을 더 단순하게 한다. 패리티 체크 행렬은 이분 그래프(bipartite)에 의해 기술될 수 있다. 이분 그래프는 코드를 그래프로 기술할 뿐만 아니라 디코더에 대한 모델이기도 하다. 이분 그래프에서, 코드워드 비트(따라서 H의 각각의 열)는 좌측에 변수 노드로 표현되고, 각 패리티 체크 수학식(따라서 H의 각 행)은 우측에 체크 노드로 표현된다. 각각의 변수 노드는 H의 열들에 대응하며 각 체크 노드는 H의 행에 대응하며, H의 "변수 노드" 및 "열은 H의 "체크 노드" 및 "행"과 같이 서로 바꿔 부를 수도 있다. 변수 노드들은 체크 노드들에만 연결되고 체크 노드들은 변수 노드들에만 연결된다. n 코드워드 비트들 및 m 패리티 비트들을 가진 코드에 대해서, 변수 노드 vi는 코드워드 비트 i가 체크 식 j에 관여된다면 에지에 의해 체크 노드 cj에 연결되며, i= 0, 1, ..., n-l, j= O, 1,...,m-l이다. 즉, 변수 노드 i는 패리티 체크 행렬 H의 엔트리 hji가 1이면 체크 노드 j에 연결된다. 수학식(1)을 비추어보아, 변수 노드는 모든 체크 노드들이 우수 패리티를 갖는다면 유효한 코드워드를 나타낸다.
패리티 체크 행렬, 패리티 체크 식들, 이분 그래프간 관계를 예시하는 예가 이하 주어진다. n=12라 놓으면, 레이트-1/2 코드는 다음에 의해 정의된다.
Figure 112007012314934-pct00003
여기서 좌측부분은 k(=6) 정보 비트 s에 대응하고, 우측부분은 m(=6) 패리티 비트 p에 대응한다. 수학식(1)을 적용하면, 수학식(2)에서 H는 다음과 같이 6 패리티 체크 식들을 정의한다.
Figure 112007012314934-pct00004
H는 도 1에 도시한 대응하는 2분할 그래프를 갖는다.
위에 논의한 바와 같이, 수신기는 전송된 코드워드 x의 혼성된 버전 y를 얻는다. y를 디코딩하여 오리지널 정보 시퀀스 s를 결정하기 위해서, 신뢰 전파와 같은 반복 디코딩 알고리즘이 이분 그래프에 기초하여 적용된다. 코드워드 비트들의 로그-가능성 비(LLRs: log-likelihood ratio) 포맷의 소프트 정보는 한 뱅크의 변수 노드들과 한 뱅크의 체크 노드들 간에 전달된다. 반복은 모든 체크 식들이 만족되거나 최대 허용된 반복 한계에 도달되었을 때 중지된다.
구조화된 LDPC 코드 설계는 소(small) mb x nb 베이스 행렬 Hb부터 시작하여, Hb의 z 카피들을 작성하고, z 카피들을 서로 연결하여 대(large) m x n H 행렬을 형성하며, 여기서 m=mb x z, n=nb x z이다. 행렬 표현을 사용하여, Hb 내 Hb의 각 1로부터 H를 구축하는 것은 z x z 순열 부분행렬로 대체되며 Hb내 각 0은 z x z 올-제로(all-zero) 부분행렬로 대체된다. 이 절차는 필수로 Hb의 각 에지를 H내 길이 z의 벡터 에지에 맵핑되고 Hb의 변수 노드는 H내 길이 z의 벡터 변수 노드에 맵핑되고, Hb의 각 체크 노드는 H내 길이 z의 벡터 체크 노드에 맵핑된다. 대 행렬 H를 구축하기 위해 소 행렬 Hb를 벡터화하는 이점들은 다음과 같다.
1. z의 서로 다른 값들을 사용함으로써, 단일 베이스 행렬 Hb로부터 많은 서로 다른 정보 시퀀스 크기들 k=z x kb에 대해 레이트 kb/nb, kb=nb-mb의 코드들이 설 계될 수 있다.
2. 메모리 요건이 크게 감소된다. 구조화된 LDPC 설계에 있어, 베이스 행렬 Hb와 순열만이 이의 1이 저장될 필요성이 있어 이는 Hb가 H보다 훨씬 작고 순열은 매우 간단해질 수 있으므로 메모리를 현저하게 덜 요구한다.
3. 인코딩 및 디코딩은 단일 비트들에 의한 것보다는 다수 그룹들의 비트들에 대해 수행될 수 있다. 예를 들면, 일 그룹의 z 메시지들이 메모리로부터 가져와, 순열을 취하여 벡터 변수 노드와 벡터 체크 노드간에 전달될 수 있다.
구조화된 LDPC 설계 원리가 구현 복잡성을 크게 감소시킬지라도, 양호한 에러 정정 성능을 가지며 효율적으로 인코딩 및 디코딩될 수 있는 LDPC 코드가 되게 하는, 주어진 타겟 H 크기에 대해 베이스 행렬을 설계하고 순열 행렬들을 할당하는 기술은 존재하지 않는다. 그러므로, 구조화된 H를 설계하는 방법 및 장치와 이 구조화된 H 행렬을 이용하여 데이터를 인코딩 및 디코딩하는 방법 및 장치에 대한 필요성이 존재한다.
도 1은 (12,6) H 행렬의 이분 그래프도.
도 2는 베이스 행렬 Hb과, 모델 행렬 Hbm과, 최종 확장된 행렬 H간의 관계도.
도 3은 인코더의 블록도.
도 4는 디코더의 블록도.
도 5는 도 3의 인코더의 동작을 도시한 흐름도.
도 6은 도 4의 디코더의 동작을 도시한 흐름도.
위에 언급한 필요성을 해결하기 위해서, 구조화된 패리티 체크 행렬 H이 제안되며, H는 베이스 행렬 Hb의 확장이며 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. 상기 베이스 행렬 Hb의 확장은 상기 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 사용하며, 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들(paired submatrices)을 사용한다.
본 발명은 현재 심볼 세트 s=(s0,...,sk-1)에 기초하여 패리티 체크 비트들 p=(p0,...,pm-1)을 생성하는 송신기를 동작시키는 방법을 포함한다. 방법은 상기 현재 심볼 세트 s=(s0,...,sk-1)을 수신하는 단계; 행렬 H를 사용하여 상기 패리티 체크 비트들을 결정하는 단계를 포함한다. 상기 패리티 체크 비트들은 상기 현재 심볼 세트와 함께 전송된다. 행렬 H는 베이스 행렬 Hb의 확장이며 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. 상기 베이스 행렬 Hb의 확장은 상기 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 사용하며, 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들을 사용한다.
본 발명은 또한 현재 심볼 세트 s=(s0,...,sk-1)를 추정하는 수신기 동작시키는 방법을 포함한다. 방법은 수신된 신호 벡터 y=(y0,...yn-1)를 수신하는 단계 및 행렬 H를 사용하여 현재 심볼 세트 s=(s0,...,sk-1)를 추정하는 단계를 포함한다. H는 베이스 행렬 Hb의 확장으로서 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. 상기 베이스 행렬 Hb의 확장은 상기 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 사용하며, 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들을 사용한다.
본 발명은 또한 행렬 H를 저장하는 저장수단, 행렬 H를 사용하여 패리티 체크 비트들을 결정하는 마이크로프로세서를 포함하며, H는 베이스 행렬 Hb의 확장으로서 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. 상기 베이스 행렬 Hb의 확장은 상기 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 사용하며, 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들을 사용한다.
본 발명은 행렬 H를 저장하는 저장수단; 신호 벡터 y=(y0...yn-1)을 수신하는 수신기; 및 행렬 H를 사용하여 현재 심볼 세트 (s0...sk-1)를 결정하는 마이크로프로세서를 포함한다. H는 베이스 행렬 Hb의 확장으로서 Hb는 부분 Hb1 및 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함한다. H'b2의 매 열의 1들을 확장하기 위해 두 개의 동일한 부분행렬들이 사용되고 hb에서의 우수의 1들을 확장하기 위해 쌍으로 된 부분행렬들이 사용된다.
동일 구성요소에 동일 참조부호를 사용한 도면들로 가서, 도 3은 본 발명의 제 1 실시예에 따른 인코더(300)의 블록도이다. 도시된 바와 같이, 인코더(300)는 마이크로프로세서(301) 및 룩업 테이블(303)을 포함한다. 본 발명의 제 1 실시예에서, 마이크로프로세서(301)는 MSC8300 및 DSP56300 DSP들과 같은 것으로 한정되는 것은 아니다 이와 같은 디지털 신호 프로세서(DSP)를 포함한다. 또한, 룩업 테이블(303)은 행렬을 저장하는 저장수단으로서 기능하고, 판독 전용 메모리를 포함하나, 당업자는 이와 다른 형태들의 메모리(예를 들면, 랜덤 액세스 메모리, 자기 저장메모리, 등)도 이용될 수 있음을 알 것이다. 제 2 실시예서, 마이크로프로세서(301) 및 룩업 테이블(303)의 기능은 ASCI(Application Specific Integrated Circuit) 혹은 필드 프로그래머블 게이트 어레이(FPGA: Field Programmable Gate Array)에 탑재될 수 있다. 특히, 룩업 테이블(303)은 회로 내 신호경로들의 존재 혹은 비존재에 대응하는 메모리 형태로 구현될 수 있다.
위에 논의된 바와 같이, 인코딩된 데이터는 일반적으로 계통 비트들 외에도 복수의 패리티 체크 비트들로서 출력되며, 패리티 체크 및 계통 비트들은 함께 코드워드 x를 형성한다. 본 발명의 제 1 실시예에서, 패리티 체크 행렬 H은 룩업 테이블(303)에 저장되고, 수학식(1)의 해를 구하기 위해 마이크로프로세서(301)에 의해 액세스된다. 특히, 마이크로프로세서(301)는 현재의 심볼 세트 s=(s0,...,sk-1) 및 패리티 체크 행렬 H에 기초해서 패리티 체크 비트들 p=(p0,...,pm-1)에 대한 적합한 값들을 결정한다. 패리티 체크 비트들 및 심볼 세트는 송신기 및 수신기에 보내진다.
도 4는 본 발명의 일 실시예에 따른 디코더(400)의 블록도이다. 도시된 바와 같이, 디코더(400)는 마이크로프로세서(401) 및 룩업 테이블(402)을 포함한다. 본 발명의 제 1 실시예에서, 마이크로프로세서(401)는 MSC8300 및 DSP56300 DSP들과 같은 것으로 한정되는 것은 아니나 이와 같은 디지털 신호 프로세서(DSP)를 포함한다. 또한, 룩업 테이블(403)은 행렬을 저장하는 저장수단으로서 기능하고, 판독 전용 메모리를 포함하나, 당업자는 이와 다른 형태들의 메모리(예를 들면, 랜덤 액세스 메모리, 자기 저장메모리, 등)도 이용될 수 있음을 알 것이다. 제 2 실시예서, 마이크로프로세서(401) 및 룩업 테이블(403)의 기능은 ASCI(Application Specific Integrated Circuit) 혹은 필드 프로그래머블 게이트 어레이(FPGA)에 탑재될 수 있다. 특히, 룩업 테이블(403)은 회로 내 신호경로들의 존재 혹은 비존재에 대응하는 메모리 형태로 구현될 수 있다.
수신된 신호 벡터(수신기를 통해 수신된) y=(y0,...,yn-1)은 잡음성 채널을 통해 전송된 코드워드 x에 대응하고, 전술한 바와 같이, 인코딩된 데이터 x가 코드워드 벡터이다. 본 발명의 제 1 실시예에서, 패리티 체크 행렬 H는 룩업 테이블(403)에 저장되고, y를 디코딩하여 현재 심볼 세트 s(즉, 현재 심볼 세트(s0,,,,.sk-1)를 추정하기 위해 마이크로프로세서(401)에 의해 액세스된다. 특히, 마이크로프로세서(401)는 수신된 신호 벡터 y=(y0,...,yn-1) 및 패리티 체크 행렬 H에 기초하여 현재 심볼 세트 (s0,,,,.sk-1)를 추정한다.
당분야에 공지된 바와 같이, 디코더(400)가 디코딩을 위해 마이크로프로세서(401)에서 패리티 체크 행렬 H을 사용할 수 있는 많은 방법들이 있다. 한 이러한 방법은 가능성 있는 에러 패턴을 결정하기 위해 H와의 벡터 행렬 곱셈을 수행하는 것이다. 또 다른 이러한 방법은 그래프 내 에지들이 H의 1들에 대응하는 이분 그래프를 구성하기 위해 H를 사용하고 이분 그래프에서 y를 반복적으로 처리하는 것이다.
구조화된 LDPC에 있어서, z x z 부분행렬은 순열 행렬이거나, 순열 행렬들의 합이거나, 어떤 유형의 이진 행렬일 수 있다. 순열 행렬 P는 각 행에 단일의 1과 각 열에 단일의 1을 갖기 때문에, 확장된 행렬 H의 가중 분포는 순열 부분행렬이 사용된다면 베이스 행렬 Hb과 동일하다. 그러므로, Hb의 가중 분포는 가능한 한 원하는 최종의 가중 분포에 가깝게 되도록 선택된다. 임의의 행렬들이 사용될 수 있을지라도 순열 행렬들에 의해 Hb의 엔트리들이 대체되는 경우를 다음에 기술한다. 벡터 에지의 순열 부분행렬 Pzxz이 (행, 열) 엔트리 (p(i),i))에서 1을 갖는다면, 벡터 에지가 벡터 체크 노드에 연결되기 전에 벡터 에지 내 i번째 에지를 p(i)번째 위치로 순열된다. 즉, 이러한 순열에 의해서 관계된 벡터 변수 노드 내 i번째 변수 노드는 관계된 벡터 체크 노드 내 p(i)번째 체크 노드에 연결된다.
H를 포함하는 순열들은 단순 순환 시프트 및/또는 비트-반전과 같이, 성능 저하없이 매우 간단할 수 있다. 예를 들면, 단순 순환(circular) 우측 시프트가 사용될 수 있다. 이러한 제약을 갖고, 각 H 행렬은 mb x nb 모델 행렬 Hbm으로 고유하게 표현될 수 있고, 이는,
. z x z 올-제로 부분행렬을 나타내기 위해서 Hb 내 각 0을 -1로 대체하고
. Hb 내 각 hi,j=1을 음이 아닌 순환 시프트 크기 p(i,j)로 대체함으로써 얻어질 수 있다.
순환 좌측 시프트(x mod z) 횟수는 순환 우측 시프트((z-x) mod z) 횟수와 같기 때문에, 순환 우측 시프트를 논하는 것으로 충분하고 이를 간략히 순환 시프트라 칭한다. 앞서 논의한 바와 같이, H와 Hbm간에 1 대 1 맵핑이 있다. 그러므로, Hbm은 z이 주어진다면 H의 간략한 표현이다. 표시법으로, 모델 행렬은 첨자 'bm'에 의해 베이스 행렬과 구별되고, 확장 행렬은 첨자 'bm'을 제거함으로써 구현된다. 3개의 행렬들간 관계를 도 2에 도시하였다. 구조를 사용하여, 코드는 크기 m x n의 랜덤 H와 유사한 에러 정정 성능을 가지면서도 인코딩 및 디코딩은 훨씬 작은 Hbm에 기초하여 수행된다.
예를 들면, 수학식(2)의 행렬은 다음과 같이 모델 행렬 Hbm을 구축하기 위해 베이스 행렬 Hb로서 사용될 수 있다.
Figure 112007012314934-pct00005
z=3일 때, Hbm는 각 -1을 3x3 올-제로 부분행렬로 대체하고 각 i를 부분행렬 Pi, i=0,1,2로 대체함으로써 (mb x z) x (nb x z) 행렬 H로 변환된다.
Figure 112007012314934-pct00006
P0는 항등 행렬이고 Pi, i>0의 열들은 i회 순환 우측 시프트된 P0의 열들인 것에 유의한다.
벡터 q=[q0,q1,q2]이 주어졌다면, qP0=[q0,q1,q2], qP1=[q2,q0,q1], qP2=[q1,q2,q0]이다. 즉, qPi는 벡터 q의 순환 우측 시프트가 된다. 반면, PiqT는 qT의 순환 상측 시프트로 되거나 마찬가지로 q의 좌측 시프트가 된다. z x z 행렬 Q가 사용될 때 마찬가지 규칙들이 적용되는데, QPi는 Q의 열들의 순환 우측 시프트가 되고, PiQ는 Q의 행들의 순환 상측 시프트가 된다.
베이스 행렬 H
벡터화하지 않은 LDPC 코드에 있어서, H의 패리티 부분이 수정된 계단구조를 가진 H 행렬은 성능저하없이 효율적 인코딩으로 이어진다. 일반적으로, x=[s p]=[s0,s1,...,sk-1,p0,p1,...,pm-1]이라고 할 때, m x n H 행렬은 2개의 부분행렬들로 분할될 수 있다.
Figure 112007012314934-pct00007
여기서 H2는 수정된 계단구조를 가지며, H1은 m x k 크기의 임의의 이진 행렬일 수 있다. 이러한 동일 구조는 구조화된 LDPC 설계에서 베이스 행렬 Hb를 구축하는데 사용될 수 있다. 유사하게, 수정된 계단구조를 사용하여, Hb는 두 부분들로 분할될 수 있고, 여기서 Hb1은 계통 비트들에 대응하고 Hb2는 패리티 체크 비트들 p에 대응한다.
Figure 112007012314934-pct00008
부분 Hb2는 2부분들로 더욱 분할될 수 있는데, 벡터 hb는 기수 가중값 wh를 가지며, H'b2는 계단구조를 갖는다.
Figure 112007012314934-pct00009
부분 Hb1은 랜덤하게 구축될 수 있다. 바람직하게 전체 행렬 Hb는 가능한 한 원하는 가중 분포에 가까운 가중 분포를 갖는다.
시프트 크기
베이스 행렬 Hb를 mb x nb 모델 행렬 Hbm(H로 확장한다)로 변환하기 위해서, 순환 시프트 크기들 p(i,j)는 Hb의 1마다 결정될 필요가 있다. 시프트 크기들이 먼저 H2에 대해 명시될 수 있다. H2 부분에 대한 시프트 크기들이 결정된 후에, H의 전체적인 양호한 성능을 달성하기 위해서 H1 부분 시프트 크기들이 결정될 수 있다. 베이스 행렬의 H1 부분과 베이스 행렬의 H1 부분(Hbm1)의 시프트 크기들은 많은 서로 다른 방법들로 할당될 수 있다. 예를 들면, 시프트 크기들이 현저한 성능저하를 야기하지 않는다면 시프트 크기들에 대한 랜덤 값들이 선택되어 수락될 수도 있다. 성능저하는 과도한 회수의 짧은 길이 사이클들 혹은 낮은 가중값의 코드워드들의 도입에 기인할 수 있다. LDPC 기술에서 사용될 수 있는 그 외 다른 기술들도 사용될 수 있다.
주어진 타겟 H 크기에 대한 순환 시프트 크기들 p(i,j)는 디코딩 성능저하없이 효율적 인코딩이 될 수 있게 특정되어야 한다. 인코딩을 용이하게 하기 위해서, hb의 1들에 대응하는 시프트 행렬들 중 하나 외의 전부는 함께 더해질 때 상쇄되고, H'b2의 모든 벡터 행들은 합산되었을 때 상쇄되도록 시프트들이 할당될 수 있다. 이것은 한 엔트리는 제외하고 쌍들로 hb에 시프트 크기들을 할당하고 동일 시프트 크기를 H'b2의 각 열의 두 1들에 할당하는 것으로 전환된다. 예를 들면, hb=[1 0 0 1 0 0 l]T이면, 시프트 크기 3이 쌍들에 할당되기 때문에 hbm = [3 -1 -1 3 -1 -1 4]T를 모델 행렬의 대응 열로서 취하는 것이 수락될 수 있다. 각 열 H'b2의 모든 비제로 엔트리들(둘 다 1)에 동일 시프트 크기들이 할당되기 때문에, 임의의 시프트 크기 옵션은 0의 시프트 크기(즉, 항등 부분행렬들)와 이에 더하여 벡터 열 내 비트들의 순열인 것과 같다. 따라서, H'b2의 모든 시프트 크기들에는 편의상 0이 할당될 수 있다. 즉 H'b2의 각 1은 H로 확장시 z x z 항등 부분행렬로 대체된다.
사이클들의 존재에 기인하여, hbm의 시프트 크기들은 주의깊게 할당되어야 한다. 짧은 사이클들 혹은 저 가중값 코드워드들을 형성하는 것을 피하기 위해서 규칙들이 적용될 수 있다. 사이클들을 회피하는데 사용될 수 있는 한 특징은 다음과 같다.
베이스 행렬 Hb에서 2c 에지들이 길이 2c의 사이클을 형성한다면, 대응 2c 벡터 에지들은 다음일 경우에만 확장행렬 H에서 길이 2c의 z 사이클들을 형성한다.
Figure 112007012314934-pct00010
여기서 z은 확장 팩터이고, p(i)는 모델 행렬 Hbm에서 에지 I의 순환 시프트 크기이고 에지 0, 1,2,...,2c-1(이 순서로)는 Hb에서 사이클을 형성한다.
Hb2의 구조에 기인해서, hb와 H'b2간에 사이클들이 존재한다. 이에 따라 hbm에 임의의 두 동일한 시프트 크기들은 위의 특징에 따라 확장 행렬 H에서 z회 사이클을 모사하는 결과로 될 것이다. 그러나, 그러나, 이들 두 시프트들이 서로 멀리 놓여져 있다면, 사이클들은 긴 길이를 가지며 반복적 디코딩에 거의 영향을 미치지 않는다. 그러므로, 바람직한 실시예에서, 베이스 행렬의 hb가 3개의 1들을 가질 때, 사이클 길이를 최대로 하기 위해서, 동일 시프트 크기들이 할당된 2개의 1들은 hbm의 맨 위와 맨 아래에 놓여질 수 있고(가능한 한 멀리 떨어지게), 이때 쌍을 이루지 않는 시프트 크기를 갖고 hb중간에는 하나의 1을 남겨 놓는다. 예를 들면, hbm = [3 -1 3 -1 -1 -1 4]T는 h와 H'2 사이에 길이 6의 z 사이클들로 될 것이고, hbm = [3 -1 4 -1 -1 -1 3]T는 h와 H'2 사이에 길이 14의 z 사이클들로 될 것이며, h와 H'2는 hb와 H'b2로부터 확장된다.
요약하여, Hb2 부분은 모델 행렬에 맵핑된다.
Figure 112007012314934-pct00011
kb = nb-mb인 경우, hbm에는 wb(기수, wb>=3) 음이 아닌 엔트리들이 있으며, H'bm2에 -1 엔트리들은 간략성을 위해 여백으로 남겨둔다. 모든 p(i,kb) 값들은 1을 제외하고 hbm에 우수번 나타나며, 이는 임의의 비제로의 부분행렬에 맵핑될 수 있다. 그러므로, wh가 기수이므로, 모든 wh 시프트들에는 동일 값(예를 들면, 0)이 주어질 수도 있을 것이다. H'bm2에 있어서, p(i,j)=p(i+l,j), j=kb+l,kb+2,...,nb-l, i =j-kb-l이다. 바람직한 실시예에서, wh=3이라고 가정하면, 일 예는 H'bm2 부분에서 hbm = [0 -1 ...-1 ph -1...-1 ...O]T, ph mod z≠O, 및 p(i,j)=p(i+1,j)=0, j=kb+l,kb+2,...,nb-1, i =j-kb-1이다.
위의 논의가 항등 행렬의 순환 시프트들인 부분행렬들을 사용하는 것에 집중되었으나, 일반적으로, 어떤 다른 부분행렬들이 사용될 수도 있다(베이스 모델 행렬과 동등한 것으로 표현될 수 있다).
1. H'bm2의 모든 열에서, 2개의 비제로 부분행렬들은 동일하다.
2. hbm의 wh(기수, wh>=3) 비제로 부분행렬들은 쌍이다(즉, 한 부분행렬은 임의의 비제로 행렬일 수 있는 한 부분행렬을 제외하고 다른 부분행렬과 동일하다).
인코딩
인코딩은 정보 시퀀스 s가 주어졌을 때 패리티 시퀀스 p를 결정하는 프로세스이다. 구조화된 LDPC 코드를 인코딩하기 위해서, 단일 비트 대신 일 그룹의 z 비트들에 대해 각 연산이 수행된다. 대안적으로, 벡터 연산들은 사용될 필요가 없으며, 이하의 식들은 동등 스칼라 형태로 구현된다. s를 인코딩하기 위해서, s는 z 비트들의 kb=nb-mb 그룹들로 분할된다. 이 그룹화된 s를 u로 표기하면,
Figure 112007012314934-pct00012
이고, 여기서 u의 각 원소는 다음과 같은 열 벡터이다.
Figure 112007012314934-pct00013
모델 행렬 Hbm을 사용하여, 패리티 시퀀스 p는 z의 그룹들에서 결정된다. 그룹화된 p를 v로 표기하면,
Figure 112007012314934-pct00014
이고, v의 각 원소는 다음과 같이 열 벡터이다.
Figure 112007012314934-pct00015
인코딩은 (a) v(0)를 결정하는 초기화, 및 (b) v(i), 0≤i≤mb-2로부터 v(i+1)를 결정하는 재귀인 2단계로 진행된다.
v(0)에 대한 표현은 다음을 얻기 위해 수학식(1)의 행들에 대해 합산함으로써 도출될 수 있다.
Figure 112007012314934-pct00016
여기서 x는 엔트리가 음이 아닌 hbm의 행 인덱스이고 기수회 사용된다. 바람직한 실시예에서, hbm의 맨 위와 맨 아래는 쌍을 이루고, 이에 따라 1 ≤ x ≤ mb-2이다. 수학식(14)는
Figure 112007012314934-pct00017
으로 양변을 곱함으로써 v(0)에 대해 해를 구한다. 특별한 경우로 여기서는 p(x,kb)가 순환 시프트,
Figure 112007012314934-pct00018
을 나타내는 경우를 고찰하였다. 즉, v(0)는 다음 식에 의해 얻어진다.
Figure 112007012314934-pct00019
일반적으로, 수학식들(16) 및 (17)에 표현된 재귀들은 H'b2의 구조를 고려함으로써 도출될 수 있다.
Figure 112007012314934-pct00020
Figure 112007012314934-pct00021
여기서,
Figure 112007012314934-pct00022
따라서, v(0)에 없는 모든 패리티 비트들은 0 ≤ i ≤ mb-2에 대해서 수학식(16) 및 (17)을 반복하여 평가함으로써 결정된다.
H'b2의 1들의 시프트 크기들이 모두 제로인 바람직한 실시예에서, 수학식(16) 및 (17)은 수학식(19) 및 (20)으로 단순화될 수 있다.
Figure 112007012314934-pct00023
Figure 112007012314934-pct00024
따라서, 일반적인 경우와 같이, v(0)에 없는 모든 패리티 비트들은 0 ≤ i ≤ mb-2에 대해서 수학식(19) 및 (20)을 반복하여 평가함으로써 결정된다.
수학식(14), (19) 및 (20)은 인코딩 알고리즘을 기술한다. 이들 식들은 표준 디지털 로직 구조 면에서 보아 수월하게 파악될 수 있다. 먼저, Hbm의 음이 아닌 원소들 p(i,j)는 벡터의 순환 시프트 크기들을 나타내기 때문에, 형태 Pp(i,j)u(j)의 모든 곱들은 크기-z 배럴 시프터(size-z barrel shifter)에 의해 구현될 수 있다. 제로의 순환 시프트 크기는 배럴 시프트될 필요가 없을 수 있다. 모든 가능한 순환 시프트들을 구현하는 배럴 시프터는 각 입력비트로부터 모든 출력비트들로의 연결들을 제공해야 하기 때문에, 진행될 수 있는 속도는 z에 좌우된다. 주어진 z에 대해서, 복잡도가 감소될 수 있고 속도는 모든 가능한 순환 시프트들의 적합한 부분집합만을 허용함으로써 증가된다. 예를 들면, Hbm은 우수 순환 시프트 크기들만으로 구축될 수도 있을 것이다. 수학식(14), (19) 및 (20)에서 합산들은 p(i,j)=-1일 때 게이트되는(즉, 업데이트하지 않는) 벡터로 XOR(배타 OR) 연산들을 나타낸다.
수학식(14), (19) 및 (20)의 합산들을 구현하기 위해서 Hbm의 엔트리들 p(i,j), O≤i≤kb, 0≤j≤mb-l은 폭 [log2z]+l 비트의 판독 전용 메모리(ROM)에 저장될 수 있다. 그룹화된 정보 시퀀스는 크기-z 메모리에 저장될 수 있고, 이는 순차적인 순서로 판독될 수 있다. 각각의 정보 벡터 u(j)가 판독될 때, Hbm ROM으로부터 대응 엔트리가 판독될 수 있고, 이는 필요한 순환 시프트를 배럴 시프터에 명령한다. 순환 시프트 후에, 부분적 합산을 내포하는 레지스터가 업데이트된다. 수학식(14)에 있어서, 각 내측 합산이 완료된 후에, 결과는 외측 합산을 갖는 또 다른 레지스터를 업데이트하는데 사용될 수 있다. 외측 합산이 완료될 때, z-p(x,kb)만큼 순환 시프트될 수 있다.
단일 클럭 사이클로 배럴 시프트가 구현될 수 있다고 가정할 때, 인코딩은 대략 (kb+1)mb 클럭 사이클들로 달성될 수 있다. 이 회수는 수학식(14)가 계산되고 있을 때 사용될 수 있는 결과들을 사용하여, 수학식(19), (20)의 합산들을 계산하여 저장함으로써 mb-1의 별도의 z 크기의 레지스터들을 대가로 감소될 수 있다.
행렬 확장
코드 확장 절차는 낮은 레이트 코드에 도달하기 위해 구조화된 코드에 적용될 수 있다. 점진적으로 낮은 레이트 코드를 증분 용장성(IR: Incremental redundancy) 절차의 연속적 전송들에서 사용할 수 있다. 구체적으로, 제 1 전송의 모델 행렬이 다음과 같다면,
Figure 112007012314934-pct00025
제 2 전송에 대핸 모델 행렬은
Figure 112007012314934-pct00026
을 사용할 수 있고, 여기서 각 전송 i에 있어서, 부분행렬
Figure 112008038212918-pct00027
은 수학식(9)의 포맷을 가지며
Figure 112008038212918-pct00028
의 크기를 갖는다. 제 1 전송은
Figure 112008038212918-pct00029
그룹들의 비트들로서,
Figure 112008038212918-pct00030
을 보낼 수 있으며, 각 그룹은 크기 z를 갖는다. 제 1 전송 후의 디코딩은
Figure 112008038212918-pct00031
및 수학식(21)의 수신된 신호들을 사용하여 수행된다. 제 2 전송은 크기 z의 또 다른 m(2) b 그룹들인
Figure 112008038212918-pct00032
, 여기서 m2=m(2) z을 보낼 수 있고, 제 2 전송 및 제 2 전송의 비트들인,
Figure 112008038212918-pct00033
은 수학식(22)에 대응하는 코드워드이다. 그러므로, 제 2 전송 후의 디코딩은 (22)와, 제 1 전송 및 제 2 전송으로부터의 결합된 수신된 신호에 기초하여 수행된다. 이 절차는 더 많은 전송들에 대해 반복될 수 있다. 제 2 전송 후의 디코딩은 제 1 전송보다 낮은 레이트 의
Figure 112008038212918-pct00034
코드에 기초한다. 이 절차는 보다 많은 전송들에 대해 반복될 수 있고, 각각의 추가의 전송은 더 강하고 더 낮은 레이트의 코드에 기여한다.
도 5는 인코더(300), 및 특히 마이크로프로세서(301)의 동작을 나타낸 흐름도이다. 논리 흐름은 단계 501에서 시작하며 여기서 현재 심볼 세트 (s0,...,sk-1)가 마이크로프로세서(301)에 의해 수신된다. 단계 503에서, 패리티 체크 비트들의 값들은 현재 심볼 세트 및 H에 기초하여 결정된다. 특히, 패리티 체크 비트들(p0,...,pm-1)은 위에 기술된 바와 같이 결정되며, H는 베이스 행렬 Hb의 확장이다. 논한 바와 같이, Hb는 부분 Hb1과 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 포함하는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분을 포함한다. 또한, 베이스 행렬 Hb의 확장(H를 생성하기 위해서)은 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들을 사용하며, 확장은 hb의 우수개의 1들에 대해 쌍으로 된 부분행렬들을 사용한다. 단계 505에서 현재 심볼 세트와 패리티 체크 비트들은 공중을 통한 전송을 통해 전송된다.
도 6은 디코더(400), 특히 마이크로프로세서(401)의 동작을 도시한 흐름도이다. 논리 흐름은 단계 601에서 시작하며 수신된 신호 벡터 y=(y0,...,yn-1)이 수신된다. 단계 603에서, 현재 심볼 세트 s(즉, 현재 심볼 세트 (s0,...,sk-1))의 추정값들이 H에 기초하여 결정된다. 논한 바와 같이, H는 베이스 행렬 Hb의 확장이며, Hb는 부분 Hb1과 부분 Hb2를 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb를 포함하는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분을 포함한다.
특정 실시예를 참조로 하여 본 발명을 특정하게 도시 및 기술하였으나, 당업자들은 본 발명의 정신 및 범위 내에서 형태 및 상세에 다양한 변경이 행해질 수 있을 것을 알 것이다. 예를 들면, 본 발명이 정의된 x 내에서 si 및 pi의 순서로 보였으나, 당업자는 H의 열들의 순서를 다시 정하는 한 임의의 순서로 코드워드 비트들이 수집될 수 있기 때문에 x 내의 비트들의 다른 순서가 있을 수 있다. 또한, 위에 설명된 바는 이진 코드들(즉, 갈루아 필드 GF(2)에 대해 정의된 코드들)을 참조하도록 특정하게 도시 및 기술되었으나, 당업자는 임의의 GF도 이용될 수 있을 것임을 알 것이다. 위에 주어진 예들을 하나의 포맷으로 보여주고 있으나, 유사한 인코딩 및 코드 수정 절차를 허용하는 다른 포맷들이 가능하다. 예를 들면, H의 행들은 패리티 체크 비트들의 값들에 영향을 미치지 않고 순열될 수 있다. 또 다른 예에서, 패리티 체크 비트들의 부분집합에 대해서는 수정된 계단 구조가 사용될 수 있다. 또 다른 예에서, 베이스 행렬을 확장 행렬로 확장할 때 추가의 단계들이 수행될 수도 있다. 행렬 H는 패리티 체크 행렬에 따르는 임의의 유형의 디코더에서 사용될 수 있다. 이러한 변경들은 다음 청구항들의 범위 내에 들게 한 것이다.

Claims (10)

  1. 현재 심볼 세트 s=(s0,...,sk-1)에 기초하여 패리티 체크 비트들(parity-check bits) p=(p0,...,pm-1)을 생성하는 송신기를 동작시키는 방법에 있어서:
    상기 현재 심볼 세트 s=(s0,...,sk-1)를 수신하는 단계;
    상기 패리티 체크 비트들을 결정하기 위해 행렬 H을 이용하는 단계; 및
    상기 현재 심볼 세트와 함께 상기 패리티 체크 비트들을 전송하는 단계를 포함하고,
    여기서, H는 베이스 행렬 Hb의 확장이며, Hb는 부분 Hb1 및 부분 Hb2을 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb을 갖는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함하며;
    상기 베이스 행렬 Hb의 확장은 상기 제 2 부분 H'b2의 각 열의 1들에 대해 동일한 부분행렬들(identical submatrices)을 이용하며, 상기 확장은 hb에서의 우수의 1들에 대해 쌍으로 된 부분행렬들(paired submatrices)을 이용하는, 송신기 동작 방법.
  2. 제 1 항에 있어서, Hb는, H를 생성하기 위해 Hb의 각 엔트리를 크기 z x z 부분행렬로 대체함으로써 확장되는, 송신기 동작 방법.
  3. 제 1 항에 있어서, Hb는, H를 생성하기 위해 Hb의 각 제로 원소를 크기 z x z의 제로 부분행렬로 대체함으로써 확장되는, 송신기 동작 방법.
  4. 제 1 항에 있어서, Hb는, H를 생성하기 위해 Hb의 각 비제로 원소를 비제로 부분행렬로 대체함으로써 확장되는, 송신기 동작 방법.
  5. 제 1 항에 있어서, Hb는, H를 생성하기 위해 Hb의 각 비제로 원소를 비제로 순열(permutation) 부분행렬로 대체함으로써 확장되는, 송신기 동작 방법.
  6. 제 1 항에 있어서,
    Figure 112007012314934-pct00035
    이고,
    벡터 hb는 기수 가중값 wh>=3을 갖는, 송신기 동작 방법.
  7. 행렬 H을 저장하는 저장 수단;
    패리티 체크 비트들을 결정하기 위해 행렬 H를 이용하는 마이크로프로세서; 및
    상기 패리티 체크 비트들을 전송하는 송신기를 포함하고,
    여기서, H는 베이스 행렬 Hb의 확장이며, Hb는 부분 Hb1 및 부분 Hb2을 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb을 포함하는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함하며,
    2 개의 동일한 부분행렬들이 H'b2의 매 열의 1들을 확장시키는데 이용되고, 쌍으로 된 부분행렬들이 hb에서의 우수의 1들을 확장시키는데 이용되는, 장치.
  8. 제 7 항에 있어서,
    Figure 112007012314934-pct00036
    이고,
    벡터 hb는 기수 가중값 wh>=3을 갖는, 장치.
  9. 행렬 H를 저장하는 저장 수단;
    신호 벡터 y=(y0...yn-1)를 수신하는 수신기; 및
    현재 심볼 세트 (s0...sk-1)를 결정하기 위해 행렬 H을 이용하는 마이크로프로세서를 포함하며;
    여기서, H는 베이스 행렬 Hb의 확장이며, Hb는 부분 Hb1 및 부분 Hb2을 포함하고, Hb2는 2보다 큰 기수 가중값을 갖는 열 hb을 포함하는 제 1 부분과, i=j에서 1이고 i=j+1에서 1이고 그 외에선 0인 행 i와 열 j에 대한 행렬 원소들을 포함하는 제 2 부분 H'b2을 포함하며;
    2 개의 동일한 부분행렬들이 H'b2의 매 열의 1들을 확장시키는데 이용되고, 쌍으로 된 부분행렬들이 hb에서의 우수의 1들을 확장시키는데 이용되는, 장치.
  10. 제 9 항에 있어서,
    Figure 112007012314934-pct00037
    이고,
    벡터 hb는 기수 가중값 wh>=3을 갖는, 장치.
KR1020077003244A 2004-08-09 2005-08-03 데이터를 인코딩 및 디코딩하는 방법 및 장치 KR100884698B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US60000504P 2004-08-09 2004-08-09
US60/600,005 2004-08-09
US11/004,359 2004-12-03
US11/004,359 US7143333B2 (en) 2004-08-09 2004-12-03 Method and apparatus for encoding and decoding data
PCT/US2005/027782 WO2006020495A1 (en) 2004-08-09 2005-08-03 Method and apparatus for encoding and decoding data

Publications (2)

Publication Number Publication Date
KR20070035072A KR20070035072A (ko) 2007-03-29
KR100884698B1 true KR100884698B1 (ko) 2009-02-19

Family

ID=35758925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077003244A KR100884698B1 (ko) 2004-08-09 2005-08-03 데이터를 인코딩 및 디코딩하는 방법 및 장치

Country Status (10)

Country Link
US (1) US7143333B2 (ko)
EP (2) EP2387157B1 (ko)
JP (1) JP4516602B2 (ko)
KR (1) KR100884698B1 (ko)
CN (1) CN101032082B (ko)
BR (1) BRPI0514179B1 (ko)
ES (1) ES2421942T3 (ko)
PL (1) PL2387157T3 (ko)
RU (1) RU2370886C2 (ko)
WO (1) WO2006020495A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100906474B1 (ko) * 2003-01-29 2009-07-08 삼성전자주식회사 저밀도 부가정보 발생용 매트릭스를 이용한 에러 정정방법 및그 장치
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
KR101065693B1 (ko) * 2004-09-17 2011-09-19 엘지전자 주식회사 Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법
JP4820368B2 (ja) * 2004-09-17 2011-11-24 エルジー エレクトロニクス インコーポレイティド Ldpcコードを用いた符号化及び復号化方法
JP2008515342A (ja) * 2004-10-01 2008-05-08 トムソン ライセンシング 低密度パリティ検査(ldpc)復号器
EP1829223B1 (en) * 2004-12-22 2013-02-13 LG Electronics Inc. Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
CN100486150C (zh) * 2005-01-23 2009-05-06 中兴通讯股份有限公司 基于非正则低密度奇偶校验码的编译码器及其生成方法
US20070180344A1 (en) * 2006-01-31 2007-08-02 Jacobsen Eric A Techniques for low density parity check for forward error correction in high-data rate transmission
US7941737B2 (en) * 2006-04-19 2011-05-10 Tata Consultancy Services Limited Low density parity check code decoder
KR101119111B1 (ko) * 2006-05-04 2012-03-16 엘지전자 주식회사 Ldpc 부호를 이용한 데이터 재전송 방법
KR101227514B1 (ko) 2007-03-15 2013-01-31 엘지전자 주식회사 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US20080320374A1 (en) * 2007-06-22 2008-12-25 Legend Silicon Corp. Method and apparatus for decoding a ldpc code
JP4823176B2 (ja) * 2007-08-31 2011-11-24 パナソニック株式会社 復号方法及び復号装置
KR101418467B1 (ko) * 2008-08-15 2014-07-10 엘에스아이 코포레이션 니어 코드워드들의 ram 리스트-디코딩
EP2307960B1 (en) 2009-04-21 2018-01-10 Avago Technologies General IP (Singapore) Pte. Ltd. Error-floor mitigation of codes using write verification
US8392789B2 (en) * 2009-07-28 2013-03-05 Texas Instruments Incorporated Method and system for decoding low density parity check codes
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US8977937B2 (en) * 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9203440B1 (en) 2013-01-29 2015-12-01 Xilinx, Inc. Matrix expansion
US9083383B1 (en) * 2013-01-29 2015-07-14 Xilinx, Inc. Parity check matrix
JP6542132B2 (ja) 2013-02-13 2019-07-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高レート、高並列性、および低エラーフロアのために、疑似巡回構成を使用し、パンクチャするldpc設計
CN106201781B (zh) * 2016-07-11 2019-02-26 华侨大学 一种基于右边正则纠删码的云数据存储方法
US10289348B2 (en) * 2016-12-30 2019-05-14 Western Digital Technologies, Inc. Tapered variable node memory
SG11202009379VA (en) 2017-03-24 2020-10-29 Zte Corp Processing method and device for quasi-cyclic low density parity check coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030089A (ko) * 2002-07-03 2004-04-08

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4564944A (en) * 1983-12-30 1986-01-14 International Business Machines Corporation Error correcting scheme
JPS6250943A (ja) * 1985-08-30 1987-03-05 Hitachi Ltd 記憶装置
US20020042899A1 (en) * 2000-06-16 2002-04-11 Tzannes Marcos C. Systems and methods for LDPC coded modulation
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6948109B2 (en) * 2001-10-24 2005-09-20 Vitesse Semiconductor Corporation Low-density parity check forward error correction
AU2002364182A1 (en) * 2002-08-20 2004-03-11 Flarion Technologies, Inc. Methods and apparatus for encoding ldpc codes
US6785863B2 (en) * 2002-09-18 2004-08-31 Motorola, Inc. Method and apparatus for generating parity-check bits from a symbol set
KR20040033554A (ko) * 2002-10-15 2004-04-28 삼성전자주식회사 에러 정정 부호화 장치 및 그 방법
KR20040036460A (ko) * 2002-10-26 2004-04-30 삼성전자주식회사 Ldpc 복호화 장치 및 그 방법
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030089A (ko) * 2002-07-03 2004-04-08

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE 802.16 Broadband wireless access working group, "BLDPC coding for OFDMA PHY", 802.16Xc-01/MNr0, 2004.04.24.
공개특허 제2004-0030089호

Also Published As

Publication number Publication date
CN101032082B (zh) 2010-09-15
JP4516602B2 (ja) 2010-08-04
PL2387157T3 (pl) 2013-12-31
US20060031744A1 (en) 2006-02-09
EP2387157B1 (en) 2013-07-10
RU2370886C2 (ru) 2009-10-20
ES2421942T3 (es) 2013-09-06
RU2007107953A (ru) 2008-09-20
EP1790081A4 (en) 2009-06-03
KR20070035072A (ko) 2007-03-29
BRPI0514179A (pt) 2008-06-03
WO2006020495A1 (en) 2006-02-23
EP1790081A1 (en) 2007-05-30
EP2387157A1 (en) 2011-11-16
CN101032082A (zh) 2007-09-05
BRPI0514179B1 (pt) 2018-01-23
US7143333B2 (en) 2006-11-28
JP2008509635A (ja) 2008-03-27

Similar Documents

Publication Publication Date Title
KR100884698B1 (ko) 데이터를 인코딩 및 디코딩하는 방법 및 장치
KR101227264B1 (ko) Ldpc 코드용 디코더
US7493548B2 (en) Method and apparatus for encoding and decoding data
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
KR100901216B1 (ko) 벡터 로우 그룹핑을 이용한 구조적 ldpc 디자인
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US7203897B2 (en) Method and apparatus for encoding and decoding data
KR100875613B1 (ko) 송신기를 동작시키기 위한 방법 및 장치 및 수신기를 동작시키기 위한 방법
WO2010073570A1 (ja) 符号化方法、符号化器及び復号器
EP2405583A1 (en) Encoder, decoder, and encoding method
CN101395804A (zh) 使用ldpc码编码和解码的方法
Andrews et al. Encoders for block-circulant LDPC codes
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
KR20050044963A (ko) q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
KR101147768B1 (ko) 채널 코드를 이용한 복호화 방법 및 장치
Khodaiemehr et al. Construction and encoding of QC-LDPC codes using group rings
WO2008114969A1 (en) Method of generating a parity check matrix for ldpc encoding and decoding
CN110324048B (zh) 一种通信调制系统中ra-ldpc-cc的编码方法及编码器
KR20070025522A (ko) Ldpc 부호의 복호 방법
KR100800775B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160126

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170203

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180131

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 12