KR100502609B1 - Ldpc 코드를 이용한 부호화기 및 부호화 방법 - Google Patents

Ldpc 코드를 이용한 부호화기 및 부호화 방법 Download PDF

Info

Publication number
KR100502609B1
KR100502609B1 KR10-2002-0072642A KR20020072642A KR100502609B1 KR 100502609 B1 KR100502609 B1 KR 100502609B1 KR 20020072642 A KR20020072642 A KR 20020072642A KR 100502609 B1 KR100502609 B1 KR 100502609B1
Authority
KR
South Korea
Prior art keywords
matrix
vector
codeword
ldpc code
parity check
Prior art date
Application number
KR10-2002-0072642A
Other languages
English (en)
Other versions
KR20040044590A (ko
Inventor
채수창
이용수
최정필
박윤옥
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2002-0072642A priority Critical patent/KR100502609B1/ko
Priority to US10/535,925 priority patent/US7178085B2/en
Priority to PCT/KR2003/002532 priority patent/WO2004047019A2/en
Priority to CNA2003801087854A priority patent/CN1739244A/zh
Priority to JP2004553278A priority patent/JP4327731B2/ja
Priority to AU2003282425A priority patent/AU2003282425A1/en
Publication of KR20040044590A publication Critical patent/KR20040044590A/ko
Application granted granted Critical
Publication of KR100502609B1 publication Critical patent/KR100502609B1/ko

Links

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • H03M13/1182Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the structure of the parity-check matrix is obtained by reordering of a random parity-check matrix

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)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 LDPC 코드(Low Density Parity Check Code)를 이용한 부호화기(Encoder) 및 부호화 방법에 관하여 개시한다. 본 발명은 패리티 검사 행렬(Parity Check Matrix) H를 효과적으로 생성할 수 있도록 하기 위하여 비트 반전 기법(Bit reversing Method)을 사용한다. 따라서, 레귤러 부호화기를 이용하여 high-girth를 갖는 패리티 검사 행렬을 고속으로 생성할 수 있다. 따라서, 부호화기의 성능은 이레귤러 LDPC의 성능과 유사하면서도 하드웨어 복잡도가 낮은 부호화기를 구현할 수 있다.

Description

LDPC 코드를 이용한 부호화기 및 부호화 방법{ENCODER USING LOW DENSITY PARITY CHECK CODE AND ENCODING METHOD THEREOF}
본 발명은 이동통신 시스템에서의 부호화기 및 부호화 방법에 관한 것으로, 더욱 상세하게는 LDPC(low density parity check) 코드를 이용한 부호화기 및 부호화 방법에 관한 것이다.
최근에 활발하게 연구되고 있는 차세대 멀티미디어 이동통신에서는 개인을 위한 이동 전화, 무선 호출, 이동 데이터, 위성 통신 등 다양한 시스템을 통합하여 언제, 어디서나, 누구와도 통화가 가능하도록 국제 로밍을 제공해야 한다. 또한, 음성, 데이터, 영상 등의 다중 정보 서비스를 통합 제공하는 것을 목표로 하고 있다.
이와 같이 이동통신에서 멀티미디어 통신 서비스를 지원하기 위해서는 고속 전송과 다양한 종류의 데이터 전송이 요구되므로, 채널 및 데이터의 종류에 따라 서로 다른 부호화 기법을 사용하여 시스템의 효율을 높이는 것은 필수적이다.
한편, 최근에는 4세대 이동통신 시스템의 채널 코딩 방법으로 LDPC 코드가 제안되고 있다. LDPC 코드는 종래의 터보코드(turbo code)에 비하여 성능이 우수하고, 복호화기의 복잡도가 낮으며, 병렬 연산이 가능하여 고속 처리가 가능할 뿐만 아니라, 터보 복호화기와 같이 반복 복호 기법을 적용할 수 있어서 저오류율과 고속 데이터 처리가 요구되는 이동 통신 시스템에 적합하다.
이러한 LDPC 코드는 패리티 검사행렬(Parity check matrix)에 해당하는 H 행렬의 구성성분이 이진 원소(binary element)인 경우와 이진 원소가 아닌(non-binary element) 경우로 나눌 수 있다.
이진 원소가 아닌(Non-binary) 것으로 구성된 H 행렬은 이진 원소(binary element)로 구성된 H 행렬보다 성능이 우수하지만, 갈루아 필드(Galois Field) 연산이 복잡한 단점이 있다. 반면에, 이진(Binary) LDPC 코드는 H 행렬이 2진수(binary element)인 0 또는 1로 구성되며, H 행렬의 행(Row)의 무게(Weight)가 동일한 레귤러(Regular) LDPC 코드와 행의 무게가 같지 않은 이레귤러(Irregular) LDPC 코드로 나눌 수 있다.
이중 레귤러 LDPC 코드는 행의 무게를 일정하게 구성해야 하는 제약 조건 때문에 H 행렬을 구성하는 것이 자유롭지 못하다. 반면, 이레귤러 LDPC 코드는 H 행렬의 행 무게가 일정하지 않으므로 복호화 성능을 좌우하는 high girth(minimum cycle without 4-cycle)로 구성되는 H 행렬을 생성하는데 자유로운 장점이 있다. 또한, 이레귤러 LDPC 코드는 레귤러 LDPC 코드보다 일반적으로 성능이 우수하다고 알려져 있지만, H 행렬의 이미지 정보를 가지고 있어야 하는 LDPC 부호화기와 복호화기의 측면에서는 복잡도가 증가되는 단점이 있다.
그러므로 본 발명은 이러한 문제점을 해결하기 위한 것으로, 레귤러 LDPC 코드를 이용하여 이레귤러 LDPC 코드의 성능을 나타내는 H 행렬의 생성 방법 및 이를 이용한 LDPC 부호화기를 제공하는 것을 목적으로 한다.
이러한 기술적 과제를 달성하기 위한 본 발명의 특징에 LDPC 코드를 이용한 부호화기는, 패리티를 검사하기 위한 H 행렬을 생성하는 패리티 검사 행렬 생성기; 및 상기 패리티 검사 행렬 생성기에서 생성된 H 행렬을 처리하여 부호어를 생성하는 부호어 생성기를 포함하며,
상기 부호어 생성기는,
상기 H 행렬의 행과 열을 재배열하여 비특이 행렬인 A 행렬 및 B 행렬로 분해하는 AB 분해부; 상기 H 행렬에 대하여 피벗을 수행하는 피벗부; 상기 피벗된 행렬에 대하여 비트 반전을 수행하는 비트 반전부; 상기 A 행렬을 L 행렬과 U 행렬로 분해하는 LU 분해부; 및 상기 A, B, L, U 행렬을 논리 연산하여 부호어를 생성하는 부호어 생성부를 포함한다.
또한, 상기 부호어 생성부는,
상기 B 행렬과 소스 입력 정보인 s 백터를 연산하여 z 백터를 구하는 제1 연산부; 상기 z 백터와 상기 L 행렬을 연산하여 y 백터를 구하는 제2 연산부; 및 상기 y 백터와 상기 U 행렬을 연산하여 부호어 c를 구하는 제3 연산부를 포함하며,
상기 제1 연산부는,
상기 s 백터의 길이만큼 논리곱 연산을 하고 논리합 연산을 수행하여 상기 z 백터를 생성한다.
상기 부호어 생성부는,
상기 A, B, L, U 행렬을 저장하기 위한 메모리를 더 포함한다.
또한, 상기 부호어 생성부는,
파이프 라인 방식으로 논리연산을 수행하며, 상기 논리연산 과정에서 계산된 결과를 저장하기 위한 임시 저장소를 더 포함한다.
또한, 본 발명의 특징에 따른 LDPC 코드를 이용한 부호화 방법은, a) 패리티를 검사하기 위한 행과 열의 무게가 고정된 H 행렬을 생성하는 단계; b) 상기 H 행렬의 행과 열을 재배열하여 비특이 행렬로 재구성하는 단계; c) 상기 재구성한 행렬을 A 행렬과 B 행렬로 분리하여 저장하는 단계; d) 피벗을 수행하고 실행 결과를 검사하는 단계; e) 상기 검사 결과가 1이면, L 행렬과 U 행렬로 분해하여 저장하고, 상기 A, B, L, U 행렬로부터 부호어를 계산하는 단계; 및 f) 상기 d) 단계에서 검사 결과가 1이 아니면, 비트 반전을 수행한 뒤 다시 피벗을 수행하는 단계를 포함한다.
상기 e) 단계는,
i) 상기 B 행렬과 소스 입력 정보인 s 백터를 연산하여 z 백터를 구하는 단계; ii) 상기 z 백터와 상기 L 행렬을 연산하여 y 백터를 구하는 단계; 및 iii) 상기 y 백터와 상기 U 행렬을 연산하여 부호어 c를 구하는 단계를 포함한다.
상기 i) 단계는,
상기 s 백터의 길이만큼 논리곱 연산을 하고 논리합 연산을 수행하여 상기 z 백터를 생성한다.
또한, 상기 i), ii) 및 iii) 단계는 파이프라인 방식으로 연산이 수행된다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 상세히 설명하면 다음과 같다.
일반적으로 LDPC 코드의 부호화 방법은 생성 행렬(Generator Matrix) G에 의하여 부호화하는 방법과 패리티 검사 행렬(Parity Check Matrix) H에 의하여 부호화하는 방법의 두 가지가 있다.
이중 생성행렬 G에 의하여 부호화하는 방법은 복호화기를 위하여 패리티 검사 행렬 H를 구한 후, H 행렬을 G 행렬로 변환하는 것이다. G 행렬은 가우스 소거법(Gauss-Jordan Elimination Method)에 의하여 얻을 수 있는데, 이것을 하드웨어나 소프트웨어로 구현하는 과정은 매우 불규칙적이고 연산량이 많아서 계산 시간이 길어지는 단점이 있다.
따라서, 본 발명에서는 생성 행렬 G를 구하지 않고 패리티 검사 행렬 H만을 가지고 부호화 과정을 수행하는 방법과 장치를 제안한다.
일반적으로, 주어진 코드워드(codeword) u와 (M × N)의 패리티 검사 행렬 H는 다음 식을 만족한다.
한편, 메시지 비트 s가 코드워드 u의 오른쪽 부분에 위치하고, 패리티 검사 비트 c가 코드워드 u의 왼쪽 부분에 위치한다고 가정하면, 코드워드 u는 다음 식과 같이 나타낼 수 있다.
따라서, 패리티 검사 행렬 H는 다음 식과 같다.
위의 식에서, A는 (M × M) 행렬이고, B는 {M × (N-M)} 행렬이다. 그리고, H 행렬의 왼쪽 부분인 A 행렬은 단위(Identity) 행렬이 된다.
한편, 위의 수학식 2, 3에 의하여 수학식 1은 다음과 같이 나타낼 수 있다.
그러므로, 패리티 검사 비트 c는 다음과 같이 나타낼 수 있다.
위의 식에서 A 행렬은 비특이(Non-Singular) 행렬이어야 패리티 검사 비트 c를 계산할 수 있다. 한편, 열 재배열(column permutation)을 통하여 얻어진 두 행렬은 서로 등가이므로, A가 비특이 행렬이 아니면 임시 패리티 검사 비트 c'를 구한 후에 열(column)만을 재배열하여 원래의 c를 구할 수 있다.
그러므로, 위와 같은 부호화 과정에서 패리티 검사 행렬 H를 생성하기 위해서는 먼저 비특이 행렬 A를 구해야 한다. 그런데, 단순히 열의 재배열이나 행의 재배열만으로는 리소스(resource)가 제한되기 때문에, 비특이 행렬 A를 항상 쉽게 구할 수 있는 것은 아니며, 패리티 검사 행렬 H의 크기가 클수록 생성 시간이 길어지거나 생성 자체가 불가능하다.
한편, 최근에는 이러한 패리티 검사 행렬을 실시간으로 생성하지 않고, 몇 가지 크기로 미리 결정된 경우에 대하여 부호화하는 방법이 제안되었다. 이것은 주로 서브 행렬(sub-matrix)을 반복하거나 쉬프트 된 상태에서 반복 구성하여 입력 정보의 크기에 부합하는 패리티 검사 행렬을 생성하여 부호화하는 것이다.
그런데, 이렇게 서브 행렬을 반복하는 과정에서 행렬의 크기가 커지게 되고, 이에 따라 열의 무게도 커진다. 이때, 열 무게의 증가는 LDPC 코드의 성능 향상에 영향을 주지 않는다. 그러나, 패리티 검사 행렬을 롬(ROM)에 저장하기 위해서는 무게가 존재하는 행과 열의 위치 정보만을 저장하는데, 행 또는 열의 무게가 행렬의 크기에 따라서 커지거나 가변 되면 하드웨어의 복잡도가 그 만큼 가중되게 된다.
그러므로, 본 발명은 비특이 행렬 A를 효율적으로 구하기 위한 방법으로 피벗 방법(pivoting)과 비트 반전(bit reversing) 방법을 제안한다.
비트 반전 방법은 비특이 행렬을 구성하기 위하여 먼저 피벗을 행하고, 피벗이 만족되지 않으면 비트를 서로 반전시킨다. 비트를 반전시키면 레귤러 LDPC 코드를 위하여 H 행렬의 행(Row)과 열(column)의 무게(weight)가 변화되지 않으면서 피벗을 빠르게 만족시킬 수 있다.
이러한 비트 반전 방법은 피벗 행과 열의 요소가 0이면 1로 바꾸고, 1이면 0으로 바꾼다. 이때, H 행렬의 행 무게와 열 무게에 변화를 주지 않기 위하여 대각선 방향에 대한 비트도 서로 반전시켜 준다.
본 발명의 실시예에 따른 비특이 행렬을 생성하는 방법을 상세하게 설명하면 다음과 같다.
도 1은 본 발명의 실시예에 따른 패리티 검사 행렬 H를 이용하여 부호화하는 과정을 나타낸 것이다.
도 1에 도시된 바와 같이, LDPC 부호화기에서는 먼저 H 행렬(101)을 생성한다. 이때, H 행렬은 종래에 갤러거(Gallager)가 제안한 방식으로 생성한다. 즉, 3개의 서브 행렬을 가지는 (N, 3, 6)코드에서, 첫 번째 서브 행렬은 i-행에 대하여 (j-1)k+1~i*k의 열을 구성한다. 여기서 j는 열 무게이고, k는 행 무게로서 6이다. 두 번째 서브 행렬은 첫 번째 서브 행렬을 블록 인터리빙(block interleaving) 순서로 재배열한다. 또한, 세 번째 서브 행렬은 두 번째 서브 행렬을 블록 인터리빙 순으로 재배열한다.
이렇게 생성된 H 행렬(101)은 부호어를 생성하기 위하여 비특이 행렬로 재구성한다. 이를 위하여 A 행렬(102) 및 B 행렬(103)과 같이 열 또는 행을 재배열하는데, 이러한 재배열 과정은 H 행렬을 A 행렬과 B 행렬로 분리할 때 A 행렬을 반드시 비특이 행렬로 구성하기 위한 것이다.
다음으로, A 행렬의 역행렬을 구하고 수학식 5에 대입하여 부호어 c를 생성한다. 이때, 하드웨어 구현을 용이하게 하기 위하여 LU 분해 방식을 적용하여 A의 역행렬을 구한다.
한편, LU 분해를 위하여 피벗 결과가 항상 1을 만족하도록 행렬을 구성하면 비특이 행렬이 되므로, 피벗 결과가 1이 되도록 A 행렬을 구성한다. 이렇게 하여 얻어진 A 행렬과 B 행렬(104, 105)에 대하여 LU 분해를 행하면 L 행렬(106)과 U 행렬(107)을 구할 수 있다.
이렇게 구한 L, U 행렬의 곱은 A 행렬이므로 순방향 및 역방향 치환 방식으로 부호어 c를 구할 수 있고, 이것은 수학식 5의 A 역행렬에 의한 계산 결과와 같은 결과를 가진다.
이후, 생성된 부호어의 순서는 비특이 행렬을 구하기 위하여 재배열된 열 순서로 재배열시킨다.
한편, LU 분해에서 행렬 요소가 이진수이므로 A 행렬의 역행렬은 이진 행렬로 제한되는 비특이 행렬이어야 한다. 또한, L 행렬과 U 행렬도 이진 요소를 갖는 행렬이어야 한다.
이때, A 행렬을 LU 분해하기 위하여 피벗 과정을 거치게 되는데, 피벗 과정은 다음 식과 같다.
위의 식에 의하여 피벗 과정을 거쳐서 생성된 행렬은 다음과 같다.
위와 같은 행렬을 L 행렬과 U 행렬로 분리함으로써 모든 부호화 과정을 마치게 된다.
한편, 비특이 행렬을 생성하기 위해서는 피벗 결과가 1이 되어야 하는데, 그렇지 않은 경우에는 열을 재배열하여 피벗 결과를 다시 확인한다. 그러나, 열을 재배열하여도 피벗 결과가 1이 되지 않는 경우 즉, 비특이 행렬이 되지 않는 경우에는, 비트 반전 방법을 적용하여 효과적으로 비특이 행렬을 생성할 수 있다.
비트 반전 기법은 H 행렬의 A 행렬 부분이 용이하게 비특이 행렬로 구성되도록 하는 방법으로, 열이나 행의 재배열을 수행하여도 피벗에 실패하였을 때, 본 발명의 실시예에 따른 비트 반전 방법을 적용하면 간단하고 효율적으로 비특이 행렬을 구성할 수 있다.
도 2는 본 발명의 실시예에 따른 부호화 방법에 의하여 대각 요소(diagonal element)가 0에서 1로 변경되는 비트 반전 과정을 나타낸 것이다.
도 2에 도시된 바와 같이, 비트 반전은 대각 요소의 위치를 중심으로 +y 방향과 +x 방향으로 검사하여 비트를 수정한다. 이때, +x와 +y의 간격이 가까운 순으로 비트 반전이 진행된다. 그러면 4-싸이클(cycle)에 대한 제거뿐만 아니라 high-Girth를 갖는 H 행렬을 생성하는 데에도 효과적이며, 이레귤러 LDPC 복호화 성능과 유사한 성능을 나타낸다.
이렇게 생성된 패리티 검사 행렬의 부호화를 효율적인 하드웨어 회로로 구현하기 위해서는 행과 열의 위치만을 저장하여 메모리 사용 크기를 감소시킨다. 또한, 부호화기의 전체 구조는 고속 이동 통신 시스템에 적합한 파이프라인 방식으로 동작하도록 구성한다.
한편, 도 3은 도 2에서 생성된 패리티 검사 행렬 H를 이용하여 부호화하기 위한 하드웨어의 연결을 나타낸 것이다.
도 3에 도시된 바와 같이, 패리티 검사 행렬 생성기(301)는 패리티 검사 행렬 H를 생성하여 출력하고, 부호어 생성기(302)에서는 이를 입력으로 받아서 부호화한다.
도 4는 도 3에서 부호어 생성기(302)의 내부 구조를 간략하게 나타낸 것이다.
도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 부호어 생성기(302)는 B*s 계산블록(401), L*y 계산블록(403) 및 U*c 계산블록(404)으로 구성되며, 각 계산블록은 파이프라인 방식으로 처리된다. 도 4에서 402는 파이프라인 처리 과정에서 임시 저장 기능을 하는 이중 버퍼이다.
도 5는 도 4의 부호어 생성기 구조를 더욱 상세하게 나타낸 것이다.
도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 부호어 생성기는 소스 입력부(501), B*s 계산부(502), L*y 계산부(506), U*c 계산부(511), 2개의 파이프라인 버퍼(505, 510), 출력 버퍼(515) 및 3개의 ROM(read only memory)(503, 509, 514)을 포함한다. 507과 512는 행렬의 각 행마다 치환에 의한 중간값을 저장하는 임시 저장소이고, 504와 513은 행렬의 행을 증가시키기 위한 롬(ROM) 어드레스 발생기이다..
B*s 계산부(502)는 소스 입력부(501)로부터 입력된 소스 입력 정보의 길이만큼 논리곱 연산을 한 후 논리합 연산을 한다. 이렇게 구해진 z 벡터는 파이프라인 버퍼(505)를 통하여 L*y 계산부(506)로 입력된다.
L*y 계산부(506)는 파이프라인 버퍼(505)를 통하여 입력된 z 벡터와 L 행렬을 논리 연산을 하며, 이렇게 구해진 y 벡터는 파이프라인 버퍼(510)를 통하여 마지막 단계인 U*c 계산부(511)로 입력된다.
또한, U*c 계산부(511)는 파이프라인 버퍼(510)를 통하여 입력된 y 벡터와 U 행렬을 논리 연산하여 최종적으로 부호어 c를 구한다.
이와 같이, 502, 506, 511은 동일한 연산 과정을 수행하는데, 모두 병렬구조로 계산되거나 회로를 공유하여 시간 분할 계산될 수 있다. 따라서 하드웨어의 성능(throughput)이 향상된다.
이러한 구성을 가지는 부호어 생성기의 성능(전송률)은 다음 식에 의해 결정된다.
위의 식에서 Par은 병렬 인자이고, Wr은 행 무게이다. 병렬 인자는 16, 32, 64의 값을 가지며, 병렬 인자가 클수록 하드웨어의 복잡도는 커지지만 전송률을 높일 수 있다.
한편, 도 6은 본 발명의 실시예에 따른 부호화 과정을 나타낸 순서도이다.
도 6에 도시된 바와 같이, 먼저 패리티 검사 행렬 H를 생성하고 이것을 비특이 행렬로 재구성한 후(S601~602), A 행렬과 B 행렬로 분리하여 롬에 저장한다(S603~604). 이후 피벗을 실행하여(S605) 그 결과가 1이면 A 행렬을 LU 방식으로 분리하여 L 행렬과 U 행렬을 저장한다(S606, S608).
한편, 피벗 결과가 1이 아니면, 비트 반전을 수행한 후(S607) 다시 피벗을 실행한다.
다음으로, 앞에서 저장한 B 행렬과 소스 입력 정보인 s 백터를 연산하여 z 백터를 구하고(S609), 이 z 백터와 저장된 L 행렬을 연산하여 y 백터를 구한 후(S610), y 백터와 U 행렬을 연산하여 최종적으로 부호어 c를 구한다(S611).
상기 도면과 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
이상에서와 같이 본 발명에 따른 LDPC 코드화 방법을 적용하면, 레귤러 부호화기를 이용하여 high-girth를 갖는 패리티 검사 행렬을 고속으로 생성할 수 있다. 따라서, 부호화기의 성능은 이레귤러 LDPC의 성능과 유사하면서도 하드웨어 복잡도가 낮은 부호화기를 구현할 수 있다.
도 1은 본 발명의 실시예에 따른 패리티 검사 행렬 H를 이용하여 부호화하는 과정을 나타낸 도이다.
도 2는 본 발명의 실시예에 따른 부호화 방법에서 비트 반전 과정을 나타낸 도이다.
도 3은 도 2에서 생성된 패리티 검사 행렬 H를 이용하여 부호화하기 위한 하드웨어의 연결도를 나타낸 도이다.
도 4는 도 3에서 부호어 생성기의 내부 구조를 간략하게 나타낸 도이다.
도 5는 도 4의 부호어 생성기 구조를 더욱 상세하게 나타낸 도이다.
도 6은 본 발명의 실시예에 따른 부호화 과정을 나타낸 도이다.
***도면의 주요 부분에 대한 부호의 설명***
101 : 패리티 검사 행렬 106 : L 행렬
107 : U 행렬 301 : 패리티 검사 행렬 생성기
302 : LDPC 코드어 생성기

Claims (9)

  1. LDPC 코드(Low Density Parity Check Code)를 이용한 부호화기에 있어서,
    패리티를 검사하기 위한 행과 열의 무게가 고정된 H 행렬을 생성하는 패리티 검사 행렬 생성기; 및
    상기 패리티 검사 행렬 생성기에서 생성된 H 행렬을 처리하여 부호어를 생성하는 부호어 생성기를 포함하며,
    상기 부호어 생성기는,
    상기 H 행렬의 행과 열을 재배열하여 비특이 행렬인 A 행렬 및 B 행렬로 분해하는 AB 분해부;
    상기 H 행렬에 대하여 피벗을 수행하는 피벗부;
    상기 피벗된 행렬에 대하여 비트 반전을 수행하는 비트 반전부;
    상기 A 행렬을 L 행렬과 U 행렬로 분해하는 LU 분해부; 및
    상기 A, B, L, U 행렬을 논리 연산하여 부호어를 생성하는 부호어 생성부
    를 포함하는 LDPC 코드를 이용한 부호화기.
  2. 제1항에 있어서,
    상기 부호어 생성부는,
    상기 B 행렬과 소스 입력 정보인 s 백터를 연산하여 z 백터를 구하는 제1 연산부;
    상기 z 백터와 상기 L 행렬을 연산하여 y 백터를 구하는 제2 연산부; 및
    상기 y 백터와 상기 U 행렬을 연산하여 부호어 c를 구하는 제3 연산부
    를 포함하는 LDPC 코드를 이용한 부호화기.
  3. 제2항에 있어서,
    상기 제1 연산부는,
    상기 s 백터의 길이만큼 논리곱 연산을 하고 논리합 연산을 수행하여 상기 z 백터를 생성하는
    LDPC 코드를 이용한 부호화기.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 부호어 생성부는,
    상기 A, B, L, U 행렬을 저장하기 위한 메모리
    를 더 포함하는 LDPC 코드를 이용한 부호화기.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 부호어 생성부는,
    파이프 라인 방식으로 논리연산을 수행하며, 상기 논리연산 과정에서 계산된 결과를 저장하기 위한 임시 저장소
    를 더 포함하는 LDPC 코드를 이용한 부호화기.
  6. LDPC 코드(Low Density Parity Check Code)를 이용한 부호화 방법에 있어서,
    a) 패리티를 검사하기 위한 행과 열의 무게가 고정된 H 행렬을 생성하는 단계;
    b) 상기 H 행렬의 행과 열을 재배열하여 비특이 행렬로 재구성하는 단계;
    c) 상기 재구성한 행렬을 A 행렬과 B 행렬로 분리하여 저장하는 단계;
    d) 피벗을 수행하고 실행 결과를 검사하는 단계;
    e) 상기 검사 결과가 1이면, L 행렬과 U 행렬로 분해하여 저장하고, 상기 A, B, L, U 행렬로부터 부호어를 계산하는 단계; 및
    f) 상기 d) 단계에서 검사 결과가 1이 아니면, 비트 반전을 수행한 뒤 다시 피벗을 수행하는 단계
    를 포함하는 LDPC 코드를 이용한 부호화 방법.
  7. 제6항에 있어서,
    상기 e) 단계는,
    i) 상기 B 행렬과 소스 입력 정보인 s 백터를 연산하여 z 백터를 구하는 단계;
    ii) 상기 z 백터와 상기 L 행렬을 연산하여 y 백터를 구하는 단계; 및
    iii) 상기 y 백터와 상기 U 행렬을 연산하여 부호어 c를 구하는 단계
    를 포함하는 LDPC 코드를 이용한 부호화 방법.
  8. 제7항에 있어서,
    상기 i) 단계는,
    상기 s 백터의 길이만큼 논리곱 연산을 하고 논리합 연산을 수행하여 상기 z 백터를 생성하는
    LDPC 코드를 이용한 부호화 방법.
  9. 제7항에 있어서,
    상기 i), ii) 및 iii) 단계는 파이프라인 방식으로 연산이 수행되는
    LDPC 코드를 이용한 부호화 방법.
KR10-2002-0072642A 2002-11-21 2002-11-21 Ldpc 코드를 이용한 부호화기 및 부호화 방법 KR100502609B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR10-2002-0072642A KR100502609B1 (ko) 2002-11-21 2002-11-21 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US10/535,925 US7178085B2 (en) 2002-11-21 2003-11-21 Encoder using low density parity check codes and encoding method thereof
PCT/KR2003/002532 WO2004047019A2 (en) 2002-11-21 2003-11-21 Encoder using low density parity check codes and encoding method thereof
CNA2003801087854A CN1739244A (zh) 2002-11-21 2003-11-21 使用低密度奇偶校验码的编码器及其编码方法
JP2004553278A JP4327731B2 (ja) 2002-11-21 2003-11-21 低密度パリティ検査符号を用いる符号化器と、その符号化方法
AU2003282425A AU2003282425A1 (en) 2002-11-21 2003-11-21 Encoder using low density parity check codes and encoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0072642A KR100502609B1 (ko) 2002-11-21 2002-11-21 Ldpc 코드를 이용한 부호화기 및 부호화 방법

Publications (2)

Publication Number Publication Date
KR20040044590A KR20040044590A (ko) 2004-05-31
KR100502609B1 true KR100502609B1 (ko) 2005-07-20

Family

ID=36081284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0072642A KR100502609B1 (ko) 2002-11-21 2002-11-21 Ldpc 코드를 이용한 부호화기 및 부호화 방법

Country Status (6)

Country Link
US (1) US7178085B2 (ko)
JP (1) JP4327731B2 (ko)
KR (1) KR100502609B1 (ko)
CN (1) CN1739244A (ko)
AU (1) AU2003282425A1 (ko)
WO (1) WO2004047019A2 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2348640B1 (en) 2002-10-05 2020-07-15 QUALCOMM Incorporated Systematic encoding of chain reaction codes
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
CN1954501B (zh) 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
KR20050044963A (ko) * 2003-11-08 2005-05-16 삼성전자주식회사 q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
US7418651B2 (en) 2004-05-07 2008-08-26 Digital Fountain, Inc. File download and streaming system
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
US8225173B2 (en) * 2004-06-25 2012-07-17 Runcom Technologies Ltd Multi-rate LDPC code system and method
JP4282558B2 (ja) * 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
WO2006011744A2 (en) * 2004-07-27 2006-02-02 Lg Electronics Inc. Method of encoding and decoding using low density parity check code
CA2563642C (en) * 2004-08-10 2013-10-01 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding a block low density parity check code
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications
KR100669152B1 (ko) 2004-11-25 2007-01-15 한국전자통신연구원 저밀도 패리티 검사 코드의 부호화 장치 및 방법
WO2006057195A1 (ja) * 2004-11-25 2006-06-01 Matsushita Electric Industrial Co., Ltd. マルチアンテナ送信装置、マルチアンテナ受信装置及びデータ再送方法
KR100641052B1 (ko) 2004-12-08 2006-11-02 한국전자통신연구원 Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법
KR100638594B1 (ko) 2004-12-21 2006-10-26 한국전자통신연구원 Costas 어레이를 이용한 ldpc 부호기와 이를포함하는 휴대 인터넷 시스템의 채널 부호기 및 그 방법
EP1829223B1 (en) 2004-12-22 2013-02-13 LG Electronics Inc. Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US20060195761A1 (en) * 2005-02-26 2006-08-31 Samsung Electronics Co., Ltd. Method of generating low-density parity check matrix and method of generating parity information using the low-density parity check matrix
KR20060108959A (ko) * 2005-04-13 2006-10-19 삼성전자주식회사 블록단위의 저밀도 패리티 체크 행렬 생성 방법 및 장치와그 기록매체
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7793190B1 (en) * 2005-08-10 2010-09-07 Trellisware Technologies, Inc. Reduced clash GRA interleavers
US8103935B2 (en) 2005-08-10 2012-01-24 Mitsubishi Electric Corporation Test matrix generating method, encoding method, decoding method, communication apparatus, communication system, encoder and decoder
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
JP5550834B2 (ja) 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7283069B2 (en) * 2006-03-16 2007-10-16 Harris Corporation Method for encoded or encrypted bit stream synchronization
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输***
KR100975558B1 (ko) 2006-05-03 2010-08-13 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
KR101119111B1 (ko) * 2006-05-04 2012-03-16 엘지전자 주식회사 Ldpc 부호를 이용한 데이터 재전송 방법
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US7913149B2 (en) * 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
JP4821684B2 (ja) * 2007-04-02 2011-11-24 住友電気工業株式会社 符号化装置および符号化プログラム
KR20080102902A (ko) * 2007-05-22 2008-11-26 삼성전자주식회사 가변 부호화율을 가지는 ldpc 부호 설계 방법, 장치 및그 정보 저장 매체
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
CN100462986C (zh) * 2007-09-13 2009-02-18 南京大学 基于可编程门阵列的低密度奇偶校验编解码硬件仿真***
CN101471672B (zh) * 2007-12-27 2011-04-13 华为技术有限公司 低密度奇偶校验码的编码方法和编码器
CN101741396B (zh) 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
CN101902227B (zh) * 2009-05-31 2012-11-28 中兴通讯股份有限公司 一种ldpc码的分层编码方法和装置
US8638808B2 (en) * 2009-07-09 2014-01-28 Entropic Communications Inc. Method and apparatus for LDPC transmission over a channel bonded link
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110154168A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Effective high-speed ldpc encoding method and apparatus using the same
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
DE102011078645A1 (de) * 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum sicheren Prüfen eines Codes
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
JP2011244500A (ja) * 2011-09-05 2011-12-01 Sumitomo Electric Ind Ltd 符号化装置および符号化プログラム
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9324371B2 (en) * 2012-07-02 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-stage decoding processing
CN106877879A (zh) * 2016-12-30 2017-06-20 北京联想核芯科技有限公司 数据处理的方法以及编码器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (ja) * 1999-10-12 2001-06-22 Thomson Csf Ldpcコードの構築およびコーディングのためのプロセス
WO2002091592A1 (en) * 2001-05-09 2002-11-14 Comtech Telecommunications Corp. Low density parity check codes and low density turbo product codes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001097387A1 (en) 2000-06-16 2001-12-20 Aware, Inc. Systems and methods for ldpc coded modulation
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (ja) * 1999-10-12 2001-06-22 Thomson Csf Ldpcコードの構築およびコーディングのためのプロセス
WO2002091592A1 (en) * 2001-05-09 2002-11-14 Comtech Telecommunications Corp. Low density parity check codes and low density turbo product codes

Also Published As

Publication number Publication date
AU2003282425A8 (en) 2004-06-15
CN1739244A (zh) 2006-02-22
JP2006507731A (ja) 2006-03-02
US7178085B2 (en) 2007-02-13
WO2004047019A2 (en) 2004-06-03
JP4327731B2 (ja) 2009-09-09
AU2003282425A1 (en) 2004-06-15
KR20040044590A (ko) 2004-05-31
WO2004047019A3 (en) 2005-06-16
US20060053359A1 (en) 2006-03-09

Similar Documents

Publication Publication Date Title
KR100502609B1 (ko) Ldpc 코드를 이용한 부호화기 및 부호화 방법
KR101270815B1 (ko) 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환
JP5329239B2 (ja) 通信システムのための多体ベース符号の生成器および復号化器
US9319068B2 (en) Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
CN100425017C (zh) 基于预编码的并行卷积ldpc码的编码器及其快速编码方法
US8196025B2 (en) Turbo LDPC decoding
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
JP4320418B2 (ja) 復号装置および受信装置
US7934147B2 (en) Turbo LDPC decoding
Lee et al. A flexible hardware encoder for low-density parity-check codes
US20050149845A1 (en) Method of constructing QC-LDPC codes using qth-order power residue
CN109586732B (zh) 中短码ldpc编解码***和方法
EP1782540B1 (en) Method of encoding and decoding using low density parity check code
JP2019525638A (ja) 2のべき乗でない長さに拡張されたポーラ符号の符号化および復号化
US8327215B2 (en) Apparatus and method for encoding LDPC code using message passing algorithm
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
CN109245775B (zh) 一种译码器及其实现译码的方法
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
KR100874484B1 (ko) 준순환 저밀도 패리티 검사 부호화 방법 및 장치
KR100678521B1 (ko) 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법
KR100956592B1 (ko) 메시지 전달 알고리즘을 이용한 ldpc 코드 부호화 장치및 그 방법
CN116436472A (zh) 一种低密度奇偶校验码的编码方法及装置

Legal Events

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

Payment date: 20110711

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee