KR100996029B1 - 저밀도 패리티 검사 코드의 부호화 장치 및 방법 - Google Patents

저밀도 패리티 검사 코드의 부호화 장치 및 방법 Download PDF

Info

Publication number
KR100996029B1
KR100996029B1 KR1020030027348A KR20030027348A KR100996029B1 KR 100996029 B1 KR100996029 B1 KR 100996029B1 KR 1020030027348 A KR1020030027348 A KR 1020030027348A KR 20030027348 A KR20030027348 A KR 20030027348A KR 100996029 B1 KR100996029 B1 KR 100996029B1
Authority
KR
South Korea
Prior art keywords
matrix
information
parity check
row
code
Prior art date
Application number
KR1020030027348A
Other languages
English (en)
Other versions
KR20040092922A (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 KR1020030027348A priority Critical patent/KR100996029B1/ko
Priority to US10/834,069 priority patent/US7178082B2/en
Publication of KR20040092922A publication Critical patent/KR20040092922A/ko
Application granted granted Critical
Publication of KR100996029B1 publication Critical patent/KR100996029B1/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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

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

가. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 통신 시스템에서 저밀도 패리티 검사(Low Density Parity Check : LDPC) 코드의 부호화 장치 및 방법에 관한 것이다.
나. 발명이 해결하고자 하는 기술적 과제
본 발명에서는 실시간 처리가 가능하며, 부호의 확장이 용이하고, 장치가 간단하며, 복호 시 역행렬을 쉽게 구할 수 있는 LDPC 코드의 부호화 장치 및 방법을 제공함에 있다.
다. 발명의 해결방법의 요지
본 발명에 따른 방법은, 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 방법으로서, 상기 부호화 행렬의 정보의 부분행렬을 미리 결정된 부호율에 따라 소정 개수의 정방 행렬들로 구성하고, 상기 각 정방 행렬들은, 행과 열의 가중치가 1이고, 각각 다른 옵셋 값을 가지도록 상기 정보의 부분행렬을 생성하고, 상기 정보의 부분행렬과 상기 이중 사선 행렬이 결합된 형태로 저밀도 패리티 검사코드를 위한 행렬을 구성하는 제1과정과, 상기 정보의 부분행렬들의 각 행들의 순서를 임의의 순서가 되도록 내부 열 치환하는 제2과정을 포함함을 특징으로 한다.
라. 발명의 중요한 용도
저 밀도 패리티 검사 코드의 발생 장치에 사용한다.
Figure R1020030027348
저밀도 패리티 검사 코드, 실시간 처리, 부호 확장

Description

저밀도 패리티 검사 코드의 부호화 장치 및 방법 {APPARATUS AND METHOD FOR CODING OF LOW DENSITY PARITY CHECK CODE}
도 1a 내지 도 1d는 Mackay & Neal에 의해 제안된 LDPC 코드의 패리티 검사 행렬 생성 방법에 따른 행렬 구조도,
도 2는 MacKay에 의해 제안된 LDPC 코드의 패리티 검사 행렬 생성 방법에 따른 행렬 구조도,
도 3은 T.Zahng & K. Parhi에 의해 제안된 LDPC 코드의 패리티 검사 행렬 생성 방법에 따른 행렬 구조도,
도 4는 본 발명의 바람직한 실시 예에 따라 부호화율이 1/2인 패리티 검사 행렬의 형태를 도시한 도면,
도 5는 초기 인터리빙 룰에 따라 인터리빙 주소
Figure 112003015505069-pat00001
(j)를 생성하는 과정을 나타낸 흐름도,
도 6a 내지 도 6c는 상기한 방식을 통해서 구해지는 LDPC 코드의 패리티 검사 행렬들의 구성도,
도 7은 본 발명의 일 실시 예에 따라 LDPC 코드 생성을 위한 행렬 발생기 및 부호화 장치의 블록 구성도,
도 8은 본 발명의 바람직한 실시 예에 따른 LDPC 코드 생성을 위한 부호화기의 블록 구성도,
도 9는 n=4000, k=2000, R=1/2인 LDPC 코드의 BER 및 FER 성능을 시뮬레이션 한 그래프,
도 10은 동일한 부호 율(code rate)에 대해 블록 크기(block size)를 5000으로 증가시켰을 때의 BER 및 FER 성능을 시뮬레이션 한 그래프,
도 11은 부호 율이 1/2인 경우에 대해 블록 크기가 2000, 5000, 10000, 20000인 경우의 FER 성능을 시뮬레이션 한 그래프.
본 발명은 통신 시스템에서 부호화 장치 및 방법에 관한 것으로, 특히 통신 시스템에서 저밀도 패리티 검사(Low Density Parity Check : LDPC) 코드의 부호화 장치 및 방법에 관한 것이다.
통상적으로 통신 시스템에서는 전송할 데이터를 가공하지 않은 정보 그대로를 전송하지 않고, 부호화를 수행한 이후에 이를 전송하게 된다. 이러한 부호화 방법으로는 반복 부호화 기법과, 길쌈(convolution) 부호화 기법과, 터보(Turbo) 부호화 기법 및 저밀도 패리티 부호화 기법 등이 있다. 상기한 각 부호화 기법들은 각각의 특성에 따라 사용될 수 있으며, 차세대 이동통신 시스템에서 사용하기 위해 저밀도 패리티 비트 부호화 기법에 대하여 활발한 개발이 진행되고 있다.
상기한 부호화 기법들 중 저밀도 패리티 부호화 방법은 정보 비트들을 부호화를 위한 행렬을 사용하여 전송하기 전에 부호화하는 블록 부호화의 일종이다. 이러한 블록 부호화를 수행할 때 사용되는 행렬에 "1"의 원소가 매우 작은 즉, 대부분의 원소가 "0"의 값을 가지는 부호화 행렬을 사용하는 방법을 저밀도 패리티 부호화 방법이라 말한다. 이와 같이 저밀도 패리티 부호화 방법은 아주 적은(sparse) 양의 "1" 값을 가지는 행(row)과 열(column)로 구성된 패리티 검사 행렬을 사용한다. 이러한 열과 행들은 각각 검사 노드(check node)와 변수 노드(variable node)로 대응시킨 펙터 그래프(factor graph)를 이용하여 코드(code)의 구조를 표현할 수 있다. 상기 펙터 그래프 상에서 정의되는 sum-product algorithm을 기본으로 하여 반복 디코딩(iterative decoding)이 가능하다. 그리고, 이 펙터 그래프(factor graph)상에서 이루어지는 반복 복호 과정은 병렬 구조로 구현이 가능하며, 이러한 병렬 처리에 따라 복호 시간을 획기적으로 감소시킬 수 있다. 또한, LDPC 코드는 블록의 크기(block size)가 증가할수록 터보 코드(turbo code)에 비해 큰 최소 거리(minimum distance)를 갖게 되므로, 터보 코드(turbo code)에 비해 낮은 프레임 에러 율(frame error rate)을 갖는다. 또한 비교적 높은 신호대 잡음비(SNR : Signal to Noise Ratio)에서도 오류 마루(error floor)를 보이지 않는 것이 일반적이다. 그리고, 코드워드(codeword)와 패리티 검사 행렬(parity check matrix)의 직교성(orthogonality)을 이용하여 CRC없이도 복호된 코드워드(codeword)에 대한 오류 검출과 효율적인 복호 정지가 가능하다.
하지만, LDPC 코드(code)는 패리티 검사 행렬(parity check matrix)을 이용하여 입력 정보 (information)에 대한 코드워드(codeword)를 구하는 부호화 과정이 터보 코드(turbo code)에 비해 복잡한 단점이 있다. 즉, 터보 코드는 recursive systematic convolutional encoder와 반복을 통해 실시간 부호화(real-time encoding)가 쉽게 가능한데 비해, LDPC 코드는 코드를 정의하는 패리티 검사 행렬의 구성에 따라 블록 길이의 제곱에 가까운 부호화 복잡도를 가진다.
그러면 현재까지 알려진 LDPC 코드의 패리티 검사 행렬의 생성 방법들에 대하여 살펴본다.
Construction method by MacKay & Neal
MacKay와 Neal은 LDPC code를 새롭게 소개한 논문에서 아래와 같은 방식의 MxN parity check matrix 생성 방식을 제안하였다.
<구조 1>
MxN 패리티 검사 행렬을 각 열(column)의 1의 개수가 t로 일정하고, 각 행(row)의 1의 개수는 가능한 한 일정하도록 랜덤(random)하게 생성한다. 그리고, 길이가 4인 사이클(cycle)이 발생하지 않도록 임의의 두 열(column) 사이의 중복(overlap)이 1을 넘지 않도록 한다. 도 1a에는 부호화율이 1/2이고, 각 열의 1의 개수가 3개로 구성되는 행렬의 구조를 도시하였다. 상기 도 1a에서 참조부호 101 및 103과 같은 원의 화살표는 상기 행렬에서 어떠한 행과 어떠한 열을 선택하여도 "1"의 숫자가 3개임을 의미한다.
<구조 2>
M/2개의 열(column)까지는 임의의 두 열(column)이 전혀 중복(overlap)되지 않도록 가중치(weight) 2인 열(column)을 생성하고, 나머지 열(column)들은 가중치(weight)가 3이면서 임의의 두 열(column) 사이의 중복(overlap)이 1을 넘지 않도록 랜덤(random)하게 생성한다. 도 1b에는 부화율이 1/3이고, 가중치가 3인 임의의 두 열 사이에 중복이 1을 넘지 않도록 구성하기 위한 행렬의 구조를 도시하였다. 상기 도 1b에서 참조부호 111 및 113의 대각선은 행렬에서 상기와 같은 형태로 "1"의 숫자가 존재함을 의미하고, 참조부호 115와 같은 원의 화살표는 상기 행렬에서 어떠한 행과 어떠한 열을 선택하여도 "1"의 숫자가 3개임을 의미한다.
<구조 1 & 구조 2>
상기 도 1a 및 도 1b에 의해 생성된 패리티 검사 행렬을 펙터 그래프(factor graph)로 표현하였을 때, 임의의 길이 l만큼의 사이클(cycle)이 발생하지 않도록 패리티 검사 행렬(parity check matrix)에서 몇몇 열(column)을 제거한다. 이러한 방법으로 구성하면, 상기 도 1a 및 도 1b에 도시한 바와 같은 두 구조를 만족하는 구성을 가질 수 있다.
그리고 이 밖에도 non-overlapping permutation 행렬을 통해 도 1c 및 도 1d와 같은 패리티 검사 행렬을 생성할 수 있다. 상기한 도 1a 내지 도 1d에서 화살표의 원형 또는 타원형은 열(column)의 random permutation을 의미한다. 상기 도 1c의 방식은 Gallager가 제안한 패리티 검사 행렬의 생성 방법과 동일하다. 이후 MacKay는 효율적인 부호화와 복호 성능을 고려하여 도 2와 같은 패리티 검사 행렬 의 생성을 제안하였다. 상기 도 2와 같은 형태의 행렬은 전체 행의 크기를 n개라 하고, 전체 열의 크기를 n-k개라 가정할 때, k+1번째부터 n-k 개의 원소에 대하여는 참조부호 201과 같이 대각선으로 "1"을 배열하고, 참조부호 203과 같은 마지막 부분에 어떠한 행과 어떠한 열을 선택하여도 "1"의 숫자가 3개가 되도록 구성하면, 복호 시에 성능이 향상됨을 알게 되었으며, 또한 그 밖의 구성은 도 2에 도시한 바와 같이 구성하여 부호화를 수행하는 방법이 개시되어 있다.
Mackay & Neal이 제안한 이와 같은 방법들은 LDPC 코드 생성 방법의 초기 형태에 해당한다. 그러나, 이와 같은 방식으로 패리티 검사 행렬을 생성하는 것은 부호화 복잡도를 줄이는데 문제가 있으며, 또한 다양한 부호율(code rate)과 블록 크기(block size)의 LDPC 코드를 생성하는데 어려움이 있는 단점이 있다.
Construction method by Generalized LDPC code
T. Zahng과 K. K. Parhi는 일반화된 LDPC 코드 구조에 기반을 둔 효율적인 부호화 및 복호화가 가능한 패리티 검사 행렬을 생성하고, 이를 이용하여 LDPC 코드에 대한 54Mbps 디코더를 FPGA로 구현하였다. Zahng & Parhi는 다음과 같은 형태로 패리티 검사 행렬을 구성하여 (3, 6) 정규(regular) LDPC 코드를 생성하고, 이를 위한 부분적 병렬 디코더(partly parallel decoder) 구조를 제안하였다. 이와 같이 제안된 구조는 하기 <수식>과 같은 형태를 취한다.
<수식>
Figure 112008029818415-pat00048

상기 도 3에서는 Hl을 이루는 각 부분행렬(sub-matrix) Ix,y는 LxL 단위 행렬이고, H2을 이루는 각 부분행렬 Px,y는 LxL 단위 행렬의 순환 이동(cyclic shift)된 형태이다. 즉, Tu(Q)를 행렬 Q의 각 열(column)을 u만큼의 오른쪽 이동 동작(right shift operation)이라 하면, Px,y는 하기 <수학식 1>을 만족시키는 LxL 행렬이다.
Figure 112003015505069-pat00002
상기 <수학식 1>에서 알 수 있는 바와 같이 상기 도 3의 맨 아래에 위치한 부분 행렬 H3으로 LDPC 코드의 패리티 검사 행렬을 구성하면, H가 순환(cycle) 값 4를 갖지 않는 랜덤 패리티 검사 행렬(random parity check matrix)이 된다. 상기 도 3에 도시한 바와 같은 구조를 가지는 T. Zahng & K. Parhi의 패리티 검사 행렬을 통해 각각의 부분행렬에 대한 변수 노드(variable node) 및 검사 노드(check node) 처리(processing)를 동시에 수행하는 partly parallel LDPC decoder를 구현하였다. 즉, L개의 메모리 위치(memory location)를 갖는 변수 노드부(variable node unit : VNU)를 모두 k2만큼 갖고, 각 부분행렬마다 k개의 검사 노드부(check node unit : CNU)를 가지며, 이들에 대한 연결(connection)을 통해 매 클록(clock)마다 메모리 위치(memory location)를 갱신시켜가도록 디코더를 구현하였다. 따라서, 한 번의 반복(iteration)이 이루어지기 위해서는 2L 클록이 필요하게 된다.
상기한 바와 같은 디코더의 구조는 일반화된 LDPC 구조의 개념을 바탕으로 하여 LDPC 코드를 디자인(design)하고, 이에 대한 partly parallel decoder를 실제로 Xilinx Virtex FPGA를 통해 구현하였다는데 의의가 있다. 그러나 보다 다양한 부호율과 블록 크기(block size)를 위한 유연성(flexibility)이 부족하고 효율적인 시스터메틱 부호화(systematic encoding)가 역시 간단하지 않다는 문제점을 가진다.
Construction by semi-random parity check matrix
L. Ping등은 semi-random technique을 이용하여 LDPC 코드를 위한 패리티 검사 행렬을 구성하는 새로운 방법을 제시하였다. 즉, 패리티 검사 행렬을 두 개의 부분행렬로 구분하여 하나의 부분행렬 부분만을 랜덤(random)한 방식으로 생성하고, 나머지 하나의 부분행렬은 deterministic한 방식으로 생성하는 방법을 제시하였다. 그리고, 이러한 방식으로 패리티 검사 행렬을 구성하여 보다 효율적인 실시간 부호화(real-time encoding)가 가능함을 보이고, 복호 성능도 전체적인 랜덤 패리티 검사 행렬(fully random parity check matrix)에 뒤지지 않음을 실험을 통해 보였다.
Semi-random parity check matrix를 H라 하고, H = [Hd | Hp]과 같이 두 부분의 부분행렬로 구성한다. 이 때, Hp 는 패리티 검사 행렬 H의 패리티(parity) 부분에 해당하는 (n-k)x(n-k) 부분행렬(sub-matrix)이며, Hd는 정보(information) 부분에 해당하는 (n-k)xk 부분행렬(sub-matrix)이다. 그리고, 임의의 코드워드(codeword) c 역시 c = [cd | cp]의 형태로 구성하면, cd는 시스터메틱 정보(systematic information) 심볼에 해당하는 부분이고, cp는 코드워드(codeword)의 패리티(parity) 심볼에 해당하는 부분이다. 패리티 검사 행렬 H의 패리티 부분 Hp는 다음과 같이 deterministic한 이중 대각선 행렬(dual-diagonal matrix) 형태로 구성하며, 이를 수학식으로 도시하면 하기 <수학식 2>와 같이 도시할 수 있다.
Figure 112003015505069-pat00003
그리고, 패리티 검사 행렬의 정보 부분 Hd는 열 가중치(column weight)와 행 가중치(row weight)가 각각 일정하도록 유지하면서 랜덤하게 생성하는 방식을 제안하였다. 이와 같이 HP와 Hd를 구성하고, 이에 따라 패리티 검사 행렬을 구성하면 패리티 검사 행렬과 코드워드의 직교성을 이용하여 각 패리티(parity) 심볼은 하기 <수학식 3>과 같은 구조를 가진다.
Figure 112003015505069-pat00004
상기 <수학식 3>을 사용하면 입력 정보 심볼을 가지고, (n-k)개의 패리티 심 볼을 매우 간단하게 실시간(real-time)으로 구할 수 있다.
R. Echard등은 이중 대각선 행렬(dual-diagonal matrix)의 역행렬(inverse matrix)이 삼각 행렬(triangular matrix)임을 이용하여 하기 <수학식 4>를 이용하여 실시간 부호화(real-time encoding)가 가능한 간단한 인코더(encoder) 구조를 제시하였다.
Figure 112003015505069-pat00005
또한, R. Echard등은 효율적인 디코더(decoder) 구조를 위해 Hd 부분행렬(sub-matrix)을 다시 새로운 부분행렬(sub-matrix)들로 나누어 구성하였다. 그리고, 각 부분행렬(sub-matrix)들은 임의의 한 permutation matrix에 대한
Figure 112003015505069-pat00006
-rotation 패턴(pattern)에 의해 정의하였다. Rate = 1/2인 LDPC 코드를 위한 패리티 검사 행렬의 부분행렬(sub-matrix) Hd를 하기 <수학식 5>와 같이 구성한다.
Figure 112003015505069-pat00007
Hd를 이루는 부분행렬(sub-matrix)
Figure 112003015505069-pat00008
A를 임의의 단위 행렬에 대한 permutation matrix라 하면, 부분행렬(sub-matrix)
Figure 112003015505069-pat00009
B,
Figure 112003015505069-pat00010
C,
Figure 112003015505069-pat00011
D
Figure 112003015505069-pat00012
A를 각각 -
Figure 112003015505069-pat00013
/2,
Figure 112003015505069-pat00014
,
Figure 112003015505069-pat00015
/2만큼 회전 이동시킨 형태의 행렬이다.
R. Echard등은 이와 같은 방식으로 패리티 검사 행렬을 구성하여 비교적 우수한 성능을 얻을 수 있으면서도 부호화가 간단한 LDPC 코드를 제안하였다. 하지만, rate 1/2를 제외한 다른 부호율(code rate)에 해당하는 패리티 검사 행렬을 생성하기 위한
Figure 112003015505069-pat00016
-rotation 패턴(pattern)에 대하여는 거의 설명되어 있지 않다. 따라서 이러한 부분에 대하여는 많은 연구가 이루어져야 하며 현 상태를 그대로 시스템에 적용하기 어려운 문제를 가진다.
이상에서 설명한 3가지의 LDPC 코드에 대하여 각 코드마다 각각 장점들을 가지지만 그에 못지 않은 문제점들을 가지고 있다. 따라서 실시간 처리가 불가능하거나 또는 부호의 확장이 용이하지 않은 문제 등이 있고, 매우 제한적으로만 사용할 수 있도록 구성되어 있다. 따라서 현재의 이동통신 시스템에서 부호화 기법으로 LDPC 코드를 사용하기 어려움이 있으며, 차후에도 상기한 방법들로는 시스템에 적용하기 어려운 문제들을 가진다.
따라서 본 발명의 목적은 실시간 처리가 가능한 LDPC 코드의 부호화 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 부호의 확장이 용이한 LDPC 코드의 부호화 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 역행렬을 쉽게 구할 수 있는 LDPC 코드의 부호화 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 장치는, 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 장치로서, 상기 부호화 행렬의 정보의 부분행렬을 미리 결정된 부호율에 따라 정보부분을 행과 열의 가중치가 1인 각 정방 행렬들에 각각 다른 소정의 옵셋 값을 가지도록 정방행렬을 생성하고, 상기 각 정방 행렬들과 상기 이중 사선 행렬이 결합된 형태로 저밀도 패리티 검사코드를 위한 행렬을 구성하는 행렬 구성기와, 상기 정보의 부분행렬들의 각 행들의 순서를 임의의 순서가 되도록 내부 행 치환하는 내부 행 치환 장치를 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 방법으로서, 상기 부호화 행렬의 정보의 부분행렬을 미리 결정된 부호율에 따라 소정 개수의 정방 행렬들로 구성하고, 상기 각 정방 행렬들은 행과 열의 가중치가 1이고 각각 다른 옵셋값을 가지도록 상기 정보의 부분행렬을 생성하고, 상기 정보의 부분행렬과 상기 이중 사선 행렬이 결합된 형태로 저밀도 패리티 검사코드를 위한 행렬을 구성하는 제1과정과, 상기 정보의 부분행렬들의 각 행들의 순서를 임의의 순서가 되도록 내부 행 치환하는 제2과정을 포함하며,
상기 제2과정은;
상기 정보의 부분행렬에 대한 행의 수 보다 큰 값들 중 상기 행의 숫자에 가장 가까운 소수를 결정하는 단계와, 상기 결정된 소수 바로 전까지의 모든 자연수를 거듭제곱의 모듈러 연산에 따른 형태로 표현할 수 있는 원시 원소를 계산하는 단계와, 상기 계산된 원시 원소에 따라 각 행들의 순서를 변경하는 내부 행 치환을 수행하는 단계를 포함한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
또한 하기 설명에서는 구체적인 메시지 또는 신호 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명에서 제안하는 정규화(Regular) LDPC 코드는 종래기술에서 설명한 semi-random LDPC 코드의 구조를 바탕으로 구성한다. 본 발명에 따른 LDPC 코드의 구조는 도 4와 같이 도시된다. 도 4는 본 발명의 바람직한 실시 예에 따라 부호화율이 1/2인 패리티 검사 행렬의 형태를 도시한 도면이다. 본 발명에 따른 저밀도 패리티 검사 코드인 부호화를 위한 행렬은 크게 하기의 2 과정으로 구성된다.
먼저 첫 번째 과정을 살펴보면 하기와 같다. 상기 도 4에서 도시한 바와 같이 LDPC 코드를 구현하는 것은 부호화 구조를 보다 간단하게 구현할 수 있고, 실시간 부호화(real-time encoding)가 가능하도록 하기 위함이다. 상기 도 4에서 L = (n-k)/(column weight in Hd) = k/(row weight in Hd)이며, 부호율(rate) = 1/2인 경우 정보(information) 부분에 해당하는 부분행렬(sub-matrix) Hd의 행(row)(502)과, 열(column)(501)의 가중치(weight)는 모두 4이다. 즉, P1부터 P16까지의 각 부분행렬들은 L xL의 크기를 가지는 정방 행렬이며, 각 P1부터 P16까지의 부분행렬들은 어떠한 행과 어떠한 열을 선택하더라도 "1"의 숫자가 모두 1개인 행렬이 된다. 즉, 행과 열의 가중치가 1인 정방행렬이 된다. 상기한 P1부터 P16까지의 부분행렬들의 집합이 정보를 의미하는 행렬이 된다. 또한 참조부호 503의 부분은 이중 대각선 행렬을 가진다. 따라서 참조부호 510, 511은 패리티 부분행렬에서 1의 배열 상태를 의미한다. 즉, 상기 정보부분의 행렬과 이중 사선 행렬을 결합하여 하나의 저밀도 패리티 검사 코드인 부호화를 위한 행렬을 구하는 것이다. 상기 정보의 값을 알리는 부분행렬 Pi는 임의의 옵셋 값(offset value) bi에 의한 단위행렬의 permutation matrix이다. 즉, 단위행렬의 각 열(column)을 오른쪽으로 bi만큼 순환 이동(cyclic shift)시켜 얻은 행렬(matrix)이다. bi의 값은 bi와 bi-1의 차가 임의의 integer q의 거듭제곱 qi이 되도록 정의한다. 이와 같이 형태를 구성하는 과정이 본 발명에 따른 첫 번째 과정이다. 즉, 행렬의 형태를 구성하는 과정이다.
다음으로 상기한 형태를 가지는 행렬을 이용하여 저밀도 패리티 검사 코드인 부호화를 위한 행렬을 완성하는 과정에 대하여 설명한다. 상기한 값에서 qi가 L보다 큰 경우에는 L보다 크면서 L에 가장 가까운 소수(prime integer) pL로 모듈러(modulo)시킨다. qi와 bi는 하기 <수학식 6>과 같이 정의된다.
Figure 112003015505069-pat00017
Figure 112003015505069-pat00018
상기 <수학식 6>에서 임의의 integer q는 실험적으로 정의한다. 상기한 바와 같이 구성하는 이유는 상기 각 행의 값들의 위치를 변경함으로써 발생할 수 있는 오류를 줄이기 위함이다. 이를 예를 들어 설명하면 하기와 같다. 먼저 각 행이 6개로 구성된다면, 6보다 크면서 가장 가까운 소수는 7이 된다. 따라서 7에 가까우면서 거듭제곱의 형태로 모든 자연수를 7에 대한 모듈러 연산을 통해 계산할 수 있는 원시 원소를 구한다. 이때, 상기 행들을 정확하게 순서를 변경하여 혼합하기 위해 서는 하기의 2가지 조건을 충족해야 한다.
(1) 0, 1, 2, 3, …, 6의 순서를 가지지 않아야 한다.
(2) 상기한 집합에 포함된 모든 숫자들이 단 1회씩 나타나야 한다.
즉, 순서가 랜덤하게 발생하기 위해서는 상기한 2가지 조건을 만족해야 하는데, 이를 구현하기 위해 본 발명에서는 상기 <수학식 6>과 같은 연산방법을 택하였다. 이하의 설명에서 상기 <수학식 6>과 같은 연산을 "소수 모듈러 연산"이라 칭한다. 상기한 소수 모듈러 연산을 상기 예를 통해 설명하면, 실험적으로 선택된 원시 원소 값은 3이 될 수 있다. 이와 같이 3의 값을 가진다면, 각 행의 순서는 하기와 같이 변형된다.
먼저 3의 1승은 "31 = 3"이므로, 첫 번째 행은 3번째 행으로 위치하게 된다. 다음으로 3의 2승은 "32 = 9"이므로, 7의 모듈러 연산에 의해 2가 결정되며, 2번째 행은 2번째 행으로 위치가 변경된다. 그리고, 3의 3승은 "33 = 27"이므로, 7의 모듈러 연산에 의해 3번째 행은 6번째 행 위치로 변경되며, 3의 4승은 "34 = 81"이므로, 7의 모듈러 연산에 의해 4번째 행은 4번째 행 위치로 변경되고, 3의 5승은 "35 =243"이므로, 7의 모듈러 연산에 의해 5번째 행은 5번째 행으로 위치가 변경되고, 3의 6승은 "36 = 729"이므로, 6번째 행은 1번째 행으로 위치가 변경된다. 즉, 이와 같이 구성하면, 중복되는 행 없이 행의 위치를 모두 변경할 수 있다. 이와 같이 구 성함으로써, 부호화된 심볼들의 오류 발생 확률을 줄일 수 있다.
상기한 방법들을 다시 정리하면, 상기 도 4와 같은 행렬을 구성한 후, (n-k)xk의 정보(information) 부분의 부분행렬(sub-matrix) Hd를 다음과 같은 규칙(rule)에 의해 내부 행 치환(inter-row permutation)시킨다.
(1) 정보의 부분행렬(sub-matrix)에 대한 행(row)의 수 (n-k)보다 크면서 (n-k)에 가장 가까운 소수(prime integer) pM을 구한다.
(2) 1부터 (pM-1)까지의 모든 자연수를 거듭제곱의 형태로 표현할 수 있는 원시 원소(primitive element) pe를 구한다.
(3) 1부터 (n-k)까지의 행(row)의 숫자(number)를 j라 할 때, 각 행(row)에 대해 하기 <표 1>과 같은 매핑(mapping)에 의해 내부-행 치환(inter-row permutation)
Figure 112003015505069-pat00019
(j)을 수행한다.
Figure 112003015505069-pat00020
(1) = pe
for (j=2; j<=n-k; j++)
Figure 112003015505069-pat00021
(j) = (
Figure 112003015505069-pat00022
(j-1) x pe) mod pM
if (
Figure 112003015505069-pat00023
(j)>n-k)
do
Figure 112003015505069-pat00024
(j) = (
Figure 112003015505069-pat00025
(j) x pe) mod pM
while (
Figure 112003015505069-pat00026
(j)>n-k)
end do
end if
end for
상기 <표 1>의 과정을 통해 하나의 행(row)을 의사 랜덤(pseudo-random)한 규칙(rule)에 의해 다른 하나의 행(row)으로 일대일 매핑(mapping)시키는 것이 가 능하다. 이와 같은 내부-행 치환(inter-row permutation)을 수행하면, 낮은 가중치 코드워드(low weight codeword)의 발생을 없앨 수 있다. 낮은 가중치 코드워드가 발생하면, 디코딩 시에 오류 마루(error floor)를 발생시킨다. 그리고, 검출되지 않는 오류(undetected error)를 발생시키게 되므로 LDPC 코드의 성능 열화를 초래하는 원인이 된다. 이러한 낮은 가중치 코드워드는 패리티 검사 행렬을 구성할 때, 발생하면 안되는 헤밍 가중치(Hamming Weight)를 가지는 코드워드가 발생하기 때문이다. 이와 같이 정보 행렬의 행들에 대한 순서를 변경하는 과정이 본 발명의 두 번째 과정이다.
도 5는 상기 <표 1>과 같은 소수 인터리빙 규칙(prime interleaving rule)에 따라 인터리빙 주소(interleaving address)
Figure 112003015505069-pat00027
(j)를 생성하는 과정을 나타낸 흐름도이다.
600단계에서 상기 (1)의 과정에서 구한 정보의 부분행렬에 대하여 행의 수 보다 크면서 행의 수에 가장 가까운 소수(prime integer) pM과 원시 원소(primitive element) pe를 설정한다. 그런 후 602단계에서 i 값을 1로 설정하며, 내부-행 치환을 위한 첫 번째 행
Figure 112003015505069-pat00028
(1)를 원시 원소 Pe로 설정한다. 이와 같은 설정이 이루어지면, 604단계에서 j 값을 1증가시키고, 606단계에서 j 번째 열의
Figure 112003015505069-pat00029
(j)를 하기 <수학식 7>과 같이 계산한다.
Figure 112003015505069-pat00030
상기 <수학식 7>은 설정된 행의 값을 변경하기 위한 계산이다. 즉, 상기 원시 원소의 거듭제곱된 값을 상기 계산된 소수로 모듈러 연산을 수행하여 새로 이동할 행의 위치를 결정함을 의미하는 것이다.
상기 606단계에서 상기 <수학식 7>의 계산을 수행한 이후에 608단계로 진행한다. 상기 608단계는 계산된 값이 행의 숫자보다 큰 값을 가지는가를 검사하는 것이다. 즉, 전체 행의 값이 10이고, 현재 행의 값이 2인데, 이동할 행의 값이 11 또는 12와 같은 값을 가진다면, 행이 이동할 수 없는 값이 된다. 따라서 이러한 현상을 방지하기 위해 계산된 값이 전체 행의 값보다 큰 값인가를 검사한다. 만일 계산된 값이 전체 행의 값보다 큰 값이라면, 612단계로 진행하여 하기 <수학식 8>의 계산을 수행한다. 하기 <수학식 8>은 상기 <수학식 7>과 동일한 계산으로, 차이점은 계산되는 j의 값이 1 증가한다는 것이다. 이러한 계산을 통해 동일한 값이 단 1회만 나오게 되므로 그 이후에는 동일한 값이 나오지 않게 된다. 또한 행의 값보다 큰 값이 2 이상 존재할 수도 있는데, 이러한 경우도 612단계를 수행한 이후에 다시 608단계를 수행하도록 함으로써, 행의 숫자보다 큰 행으로의 이동을 방지할 수 있다.
Figure 112003015505069-pat00031
상기 <수학식 8>과 같은 계산을 통하거나 또는 608단계의 검사결과 행의 숫자보다 크지 않은 숫자가 계산되면, 610단계로 진행한다. 상기 610단계는 상기 내부 행 치환이 행의 숫자만큼 반복되었는가를 검사하는 과정이다. 만일 내부 행의 숫자만큼 반복되었다면, 상기 루틴을 종료한다. 즉, 하나의 부호화된 심볼 추출을 위한 행렬이 완성되는 것이다. 그러나 행렬이 완성되지 않은 경우 604단계로 진행하여 상기한 과정들을 반복한다.
도 6a 내지 도 6c는 상기한 방식을 통해서 구해지는 LDPC 코드의 패리티 검사 행렬들의 구성도이다. 도 6a는 부호율이 1/3인 경우를 도시하고 있으며, 도 6b는 부호율이 1/4인 경우를 도시하고 있고, 도 6c는 부호율이 3/4인 경우를 도시하고 있다.
도 7은 본 발명의 일 실시 예에 따라 LDPC 코드 생성을 위한 행렬 발생기 및 부호화 장치의 블록 구성도이다. 그러면 본 발명의 실시 예에 따라 도 6a 내지 도 6c와 같은 LDPC 코드의 생성기와 그에 따른 부호화 장치의 블록 구성 및 각 구성의 동작에 대하여 설명한다.
행렬 구성기(710)는 설정된 부호율 정보를 수신하여 전술한 바와 같은 초기 LDPC 코드의 행렬을 생성한다. 이러한 초기 LDPC 코드는 정보에 대응하는 부분행렬과 이중 사선 행렬을 구성하는 것을 의미한다. 또한 상기 정보에 대응하는 부분 행렬은 전술한 바와 같이 가중치 1을 가지는 정방행렬들의 조합을 통해 구성할 수 있다. 이때, 상기 가중치 1의 값을 가지는 단순한 행렬에 옵셋 값을 두어 이동시킨 정방행렬이 된다.
이와 같이 행렬 구성기(710)는 상기한 바와 같이 구성된 행렬을 출력하며, 동시에 도면에 점선으로 표시한 바와 같이 행의 숫자를 출력한다. 상기 행렬 구성기의 출력은 내부 행 치환 장치(720)로 입력된다. 상기 행의 숫자 값은 소수 및 원시원소 추출기(722)로 입력된다. 그러면 소수 및 원시원소 추출기(722)는 상기 행의 값에 따라 결정된 소수와 원시원소 값을 저장하고 있는 메모리(721)로부터 해당하는 소수 및 원시 원소를 추출한다. 그리고, 상기 추출된 값들을 정보 부분행렬 인터리버(724)로 출력한다.
한편 상기 행렬 구성기(710)로부터 출력된 행렬 값은 내부 행 치환 장치(720)의 행렬 분리기(723)로 입력된다. 상기 행렬 분리기(723)는 입력된 행렬 중 정보에 따른 부분행렬과 이중 사선 행렬에 따른 부분행렬을 구분하여 출력한다. 이와 같이 출력되는 각 부분행렬들은 서로 다른 장치로 입력된다. 먼저 정보 부분에 따른 행렬은 정보 부분행렬 인터리버(724)로 입력되며, 이중 사선 행렬의 부분행렬은 이중 사선 행렬 지연기(725)로 출력된다. 정보 부분 행렬 인터리버(724)는 상기 부분행렬의 행을 내부 행 치환하여 임의의 순서가 되도록 한다. 이러한 규칙은 상기 예시한 바와 같은 도 5에서 설명한 <수학식 7> 및 <수학식 8>과 같은 과정을 통해 행의 변환이 이루어진다. 따라서 상기 이중 사선 행렬 지연기(725)는 상기 정보 부분 행렬 인터리버(724)에서의 연산시간만큼 입력된 이중 사선 행렬을 지연시켜 출력한다.
이와 같이 정보에 대한 부분의 행렬이 인터리빙되어 출력된 부분행렬과 지연되어 출력된 이중사선 행렬 지연기(725)는 각각 행렬 결합기(726)로 입력된다. 상기 행렬 결합기(726)는 두 행렬을 분리될 때와 같은 형태로 다시 결합되어 출력된다. 이러한 과정을 통해 부호화를 위한 LDPC 부호화 행렬을 구성할 수 있다.
이러한 부호화 장치는 송신기에 구비하도록 구성할 수도 있다. 이와 달리 통 신 시스템에서 사용되는 부호율이 특정한 몇가지 부호율들이 선택적으로 사용된다면, 그에 맞추어 미리 부호화를 위한 행렬들을 생성한 후 메모리에서 이를 추출하여 사용하도록 구성할 수도 있다. 또 다른 방법으로 상기한 방법이 되도록 장치를 구현할 수도 있다. 이와 같이 특정한 장치를 통해 구현하는 경우의 예는 후술되는 도 8에서 설명하기로 한다.
상기 행렬 값이 출력되면, 부호화 처리부(730)로 입력되며, 입력되는 정보(Information)에 따라 부호화 심볼들을 생성하여 출력한다.
그러면 이하에서는 이와 같은 동작을 수행하기 위한 본 발명의 장치에 대하여 도면을 참조하여 설명한다. 도 8은 본 발명의 바람직한 실시 예에 따른 LDPC 코드 생성을 위한 부호화기의 블록 구성도이다.
정보들은 일련의 비트들로 구성되며, 코드워드 버퍼(codeword buffer)의 시스테메틱(systematic) 부분(805)으로 입력되어 저장된다. 본 발명에서 명시한 LDPC 부호의 부호화 과정은 (n-k)개의 열에 해당하는 (n-k)개의 패리티(parity) 검사식을 적용하여 (n-k)개의 패리티(parity) 비트들을 각각 순차적으로 생성하는 일련의 과정에 해당하므로, 각 (n-k)개의 열에서 Hd 행렬 부분에 1이 존재하는 위치를 알려주는 장치가 필요하게 된다. 이러한 "1"의 위치는 도 4의 초기 P행렬들의 옵셋(offset) 값과, P행렬들로 구성되는 Hd 행렬의 내부 행 치환(inter-row permutation) 방식에 의해 정의되므로, 내부 행 치환 주소(inter-row permutation address) 발생기(801)와 옵셋(offset) 값이 필요하게 된다. 내부 행 치환 주소 발 생기(Inter-row address generator)(801)와 옵셋(offset) 값에 의해 생성할 수 있는 Hd 행렬의 각 열에 존재하는 1의 위치에 대한 시퀀스를 기본 시퀀스(base sequence)라 부르기로 하고, 이를 생성하는 장치를 기본 시퀀스 발생기(base sequence generator)(803)이라 부른다. 이 기본 시퀀스 발생기(base sequence generator)(803)에 의해 생성되는 시퀀스는 Hd의 임의의 한 열에서 1이 존재하는 위치를 나타내는 시퀀스이다. 그리고, 이 시퀀스에 따라 정보 비트가 저장된 시스테메틱 버퍼(systematic buffer)(805)에서 정보 비트를 읽어 이전 시간의 패리티(parity) 비트와 합하여 (807, modulo 2 sum) 현재의 새로운 패리티(parity) 비트를 생성한 후, 이러한 방식으로 생성된 패리티(parity) 비트를 패리티 버퍼(parity buffer)(811)에 저장한다. (n-k)개의 모든 열에 대해 이러한 과정을 수행하면 (n-k)개의 모든 패리티 비트의 패리티 버퍼(811)로의 저장이 완료되고 이에 따라 부호화된 LDPC 부호어가 코드워드 버퍼(codeword buffer)(805, 811)에 생성, 저장되어 있게 된다.
상기한 방식으로 LDPC 코드를 위한 패리티 검사 행렬을 거의 정규화(almost regular) 한 형태로 생성하면 부호화기를 구현함에 있어 매우 규칙적인 방법으로 부호화가 가능한 이점이 있다. 또한 터보 부호화기(turbo encoder)와 같이 실시간 부호화(real-time encoding)가 가능하게 된다. 뿐만 아니라 병렬(parallel) LDPC 디코더를 위한 변수 노드(variable node)의 메모리 수를 각 노드(node)마다 일정하게 정의할 수 있는 장점이 있다. 따라서 디코더의 구현에 있어서도 비정규(irregular) LDPC 코드에 비해 용이하게 된다.
< 모의 실험 및 분석 >
이 절에서는 본 발명에 따른 방법으로 LDPC 코드를 생성하는 경우에 대한 모의 실험 결과 및 이에 따른 BER & FER 성능을 보인다. 본 문서에서 제안한 LDPC 코드의 구성 방법이 부호율(code rate)과 블록의 크기(block size)에 따라 안정적인 성능을 보일 수 있는지 검증하기 위해 다양한 부호율(code rate)과 블록 크기(block size)에 대한 실험을 수행하였다.
LDPC code의 성능을 위해 설정한 실험 환경은 다음과 같다.
- Floating point simulation
- BPSK modulation and AWGN channel
- Iterative belief propagation decoding
- maximum 100 or 50 iterations
도 9는 n=4000, k=2000, R=1/2인 LDPC 코드의 BER 및 FER 성능을 시뮬레이션 한 그래프이다. 패리티 검사 행렬(Parity check matrix)의 생성을 위한 초기 값 q는 18로 하였다. 실험 과정에서 비검출 오류(undetected error)는 발생하지 않았다. 높은 SNR에서 비검출 오류(undetected error)가 거의 발생하지 않는 것이 LDPC 코드의 일반적인 특성이다. 또한, 주의 깊게 관찰해야 할 것은 터보 코드(turbo code)와는 달리 BER과 FER의 차이가 그리 크지 않다는 점이다. 이는 오류(error)가 발생한 프레임(frame)에서는 비교적 많은 오류(error)가 한꺼번에 발생함을 의미한 다. 이와 달리 터보 코드는 높은 SNR에서 한 프레임에서 2 ~ 4 bit정도의 비교적 작은 수의 오류가 발생하는 프레임이 많이 존재한다. 이와 같이 오류가 발생한 프레임에서 한 번에 많은 오류가 발생하는 것은 LDPC 코드의 최소 거리(minimum distance)가 터보 코드에 비해 크기 때문이다. 이에 따라 LDPC 코드에서 비검출 오류의 발생률이 적고 동일한 비트의 오류율(bit error rate)을 갖는 Eb/N0에서 프레임 오류율(frame error rate)도 터보 코드에 비해 우수하게 된다.
도 10은 동일한 부호율(code rate)에 대해 블록 크기(block size)를 5000으로 증가시켰을 때의 BER 및 FER 성능을 시뮬레이션 한 그래프이다. 패리티 검사 행렬의 생성을 위한 초기 값 q도 19로 변경하였다. 블록의 크기가 2000에서 5000으로 증가함에 따라 동일한 부호율에서 보다 우수한 성능을 보임을 알 수 있다. 그리고, 블록 크기가 증가함에 따라 패리티 검사 행렬에서 낮은 가중치 코드워드(low weight codeword)가 발생할 확률 또한 감소하여 SNR이 증가하여도 오류 마루(error floor)는 발생하지 않음을 알 수 있다. 이번 실험의 경우에도 비검출 오류(undetected error)는 발생하지 않았고, 오류가 발생하는 프레임에서는 최소 수십 ~ 수백 bit의 오류가 한꺼번에 발생하는 현상을 확인할 수 있었다.
도 11은 부호율이 1/2인 경우에 대해 블록 크기가 2000, 5000, 10000, 20000인 경우의 FER 성능을 시뮬레이션 한 그래프이다. 블록의 크기가 10000, 20000인 경우, 각각의 q값은 22로 하였다.
상기 도 11에서 동일한 부호율에 대해 블록 크기가 증가함에 따라 FER의 performance 성능의 기울기는 점점 더 급격해짐을 알 수 있다. 이는 블록 크기가 증가함에 따라 LDPC 코드의 가중치 분배(weight distribution)가 점점 더 나은 성능을 보이는 쪽으로 향상됨을 나타내고 있는 것이라 하겠다. 부호율(Code rate) = 1/2인 모든 경우에 대한 실험에서 비검출 오류는 발생하지 않았다. 이는 본 발명에서 제안한 LDPC 코드가 충분히 큰 최소 거리(minimum distance)를 가짐을 보이는 것이다.
이상에서 상술한 바와 같이 본 발명에 따른 저밀도 패리티 부호화 방법을 사용하면, 부호의 확장이 용이하며, 실시간 처리가 가능해지는 이점이 있다. 뿐만 아니라 부호화기의 구조가 간단해질 뿐 아니라 복호 시에 필요한 역행렬을 구하는 방법도 용이하게 계산할 수 있는 이점이 있다.

Claims (6)

  1. 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 방법에 있어서,
    상기 부호화 행렬의 정보의 부분행렬을 미리 결정된 부호율에 따라 소정 개수의 정방 행렬들로 구성하고, 상기 각 정방 행렬들은, 행과 열의 가중치가 1이고, 각각 다른 옵셋값을 가지도록 상기 정보의 부분행렬을 생성하고, 상기 정보의 부분 행렬과 상기 이중 사선 행렬이 결합된 형태로 저밀도 패리티 검사코드를 위한 행렬을 구성하는 제1과정과,
    상기 정보의 부분행렬들의 각 행들의 순서를 임의의 순서가 되도록 내부 행 치환하는 제2과정을 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 방법.
  2. 제1항에 있어서, 상기 제2과정은,
    상기 정보의 부분행렬에 대한 행의 수 보다 큰 값들 중 상기 행의 숫자에 가장 가까운 소수를 결정하는 단계와,
    상기 결정된 소수 바로 전까지의 모든 자연수를 거듭제곱의 모듈러 연산에 따른 형태로 표현할 수 있는 원시 원소를 계산하는 단계와,
    상기 계산된 원시 원소에 따라 각 행들의 순서를 변경하는 내부 행 치환을 수행하는 단계를 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 방법.
  3. 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 장치에 있어서,
    상기 부호화 행렬의 정보의 부분행렬을 미리 결정된 부호율에 따라 정보부분을 행과 열의 가중치가 1인 각 정방 행렬들에 각각 다른 소정의 옵셋값을 가지도록 정방행렬을 생성하고, 상기 각 정방 행렬들과 상기 이중 사선 행렬이 결합된 형태로 저밀도 패리티 검사코드를 위한 행렬을 구성하는 행렬 구성기와,
    상기 정보의 부분행렬들의 각 행들의 순서를 임의의 순서가 되도록 내부 행 치환하는 내부 행 치환 장치를 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 장치.
  4. 제3항에 있어서,
    상기 내부 행 치환 장치의 출력 행렬을 이용하여 입력되는 정보를 부호화하는 부호화 처리부를 더 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 장치.
  5. 제3항 또는 제4항에 있어서, 상기 내부 행 치환 장치는,
    상기 행렬 구성기에서 생성된 행렬의 행의 숫자에 따라 결정되는 소수와 원시 원소를 결정하는 소수 및 원시원소 추출기와,
    상기 행렬 구성기로부터 출력되는 행렬을 정보에 대한 부분행렬과 이중 사선 부분행렬로 분리하여 출력하는 행렬 분리기와,
    상기 행렬의 정보에 대한 부분행렬의 각 행들을 상기 원시 원소와 소수를 이용하여 내부 행 치환을 수행하는 정보 부분행렬 인터리버와,
    상기 이중 사선 부분행렬의 값을 소정 시간만큼 지연하여 출력하는 이중 사선 행렬 지연기와,
    상기 이중 사선 행렬 지연기의 출력과 상기 정보 부분행렬 인터리버의 출력을 결합하여 출력하는 행렬 결합기를 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 장치.
  6. 이중 사선 행렬을 패리티 부분으로 가지는 저밀도 패리티 검사 코드인 부호화 행렬의 생성 장치에 있어서,
    상기 부호화 행렬의 정보의 부분행렬 중 1의 위치 값을 출력하는 내부 열 주소 발생기와,
    상기 정보의 부분행렬에 대한 옵셋 값을 수신하여 상기 1의 위치에 대한 기본 시퀀스를 발생하는 기본 시퀀스 발생기와,
    입력되는 정보를 저장하고, 상기 기본 시퀀스 발생기로부터 출력되는 기본 시퀀스에 따른 위치의 정보를 출력하는 시스테메틱 장치와,
    상기 시스테메틱 장치로부터 출력된 정보와 이전 패리티 값을 수신하여 가산하여 패리티 값을 생성하는 가산기와,
    상기 가산기의 출력을 미리 결정된 시간만큼 지연하여 상기 가산기로 출력하는 지연기를 포함함을 특징으로 하는 저밀도 패리티 검사 코드의 부호화 행렬 생성 장치.
KR1020030027348A 2003-04-29 2003-04-29 저밀도 패리티 검사 코드의 부호화 장치 및 방법 KR100996029B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030027348A KR100996029B1 (ko) 2003-04-29 2003-04-29 저밀도 패리티 검사 코드의 부호화 장치 및 방법
US10/834,069 US7178082B2 (en) 2003-04-29 2004-04-29 Apparatus and method for encoding a low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030027348A KR100996029B1 (ko) 2003-04-29 2003-04-29 저밀도 패리티 검사 코드의 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20040092922A KR20040092922A (ko) 2004-11-04
KR100996029B1 true KR100996029B1 (ko) 2010-11-22

Family

ID=33308326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030027348A KR100996029B1 (ko) 2003-04-29 2003-04-29 저밀도 패리티 검사 코드의 부호화 장치 및 방법

Country Status (2)

Country Link
US (1) US7178082B2 (ko)
KR (1) KR100996029B1 (ko)

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3917624B2 (ja) * 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度パリティチェック(ldpc)デコーダにおける経路指定方法およびシステム
US7020829B2 (en) 2002-07-03 2006-03-28 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes
US7577207B2 (en) * 2002-07-03 2009-08-18 Dtvg Licensing, Inc. Bit labeling for amplitude phase shift constellation used with low density parity check (LDPC) codes
US7864869B2 (en) 2002-07-26 2011-01-04 Dtvg Licensing, Inc. Satellite communication system utilizing low density parity check codes
US20040019845A1 (en) * 2002-07-26 2004-01-29 Hughes Electronics Method and system for generating low density parity check codes
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7165205B2 (en) * 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
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
WO2006001015A2 (en) * 2004-06-25 2006-01-05 Runcom Technologies Ltd. Multi-rate ldpc code system and method
JP4282558B2 (ja) * 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
CN101128981B (zh) * 2004-08-09 2013-03-20 Lg电子株式会社 使用低密度奇偶校验矩阵的编码和解码方法
CN101341659B (zh) * 2004-08-13 2012-12-12 Dtvg许可公司 用于多输入多输出通道的低密度奇偶校验码的码设计与实现的改进
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications
EP1790083B1 (en) * 2004-08-13 2011-01-12 Dtvg Licensing, Inc Code design and implementation improvements for low density parity check codes for multiple-input multiple-output channels
EP1800406A2 (en) * 2004-09-17 2007-06-27 LG Electronics Inc. Method of encoding and decoding using ldpc code and apparatus thereof
KR101065693B1 (ko) * 2004-09-17 2011-09-19 엘지전자 주식회사 Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법
EP1641128A1 (en) * 2004-09-22 2006-03-29 STMicroelectronics N.V. Method and device for delivering punctured code words encoded with a LDPC code.
BRPI0515948A (pt) * 2004-10-01 2008-08-12 Thomson Licensing decodificador de verificação de paridade de baixa densidade (ldpc)
JP4551740B2 (ja) * 2004-11-08 2010-09-29 株式会社東芝 低密度パリティチェック符号復号器及び方法
KR100669152B1 (ko) * 2004-11-25 2007-01-15 한국전자통신연구원 저밀도 패리티 검사 코드의 부호화 장치 및 방법
KR100913876B1 (ko) * 2004-12-01 2009-08-26 삼성전자주식회사 저밀도 패리티 검사 부호의 생성 방법 및 장치
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 中兴通讯股份有限公司 基于非正则低密度奇偶校验码的编译码器及其生成方法
US8122324B2 (en) * 2005-03-31 2012-02-21 Mitsubishi Electric Corporation Error correction coding apparatus
US7434138B2 (en) * 2005-06-27 2008-10-07 Agere Systems Inc. Structured interleaving/de-interleaving scheme for product code encoders/decorders
US7668248B2 (en) * 2005-10-19 2010-02-23 Texas Instruments Incorporated High-performance LDPC coding for digital communications in a multiple-input, multiple-output environment
US7707479B2 (en) 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
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
US7493548B2 (en) * 2006-02-06 2009-02-17 Motorola, Inc Method and apparatus for encoding and decoding data
KR100929080B1 (ko) * 2006-02-20 2009-11-30 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
US8363675B2 (en) * 2006-03-24 2013-01-29 Samsung Electronics Co., Ltd. Method and system for transmission of uncompressed video over wireless communication channels
US7979784B2 (en) * 2006-03-29 2011-07-12 Samsung Electronics Co., Ltd. Method and system for enhancing transmission reliability of video information over wireless channels
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输***
US7657821B1 (en) * 2006-05-09 2010-02-02 Cisco Technology, Inc. Error detecting code for multi-character, multi-lane, multi-level physical transmission
KR101191196B1 (ko) * 2006-06-07 2012-10-15 엘지전자 주식회사 패리티 검사 행렬을 이용하여 부호화 및 복호화하는 방법
CN100423454C (zh) * 2006-06-14 2008-10-01 北京新岸线移动多媒体技术有限公司 一类低密度奇偶校验码的实现方法
JP5215537B2 (ja) * 2006-06-28 2013-06-19 三星電子株式会社 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法
WO2008034286A1 (en) * 2006-09-18 2008-03-27 Juntan Zhang An interleaving scheme for an ldpc coded 16apsk system
US8230299B2 (en) 2006-09-18 2012-07-24 Availink, Inc. Interleaving scheme for an LDPC coded QPSK/8PSK system
WO2008034287A1 (en) * 2006-09-18 2008-03-27 Juntan Zhang An interleaving scheme for an ldpc coded 32apsk system
WO2008034289A1 (en) 2006-09-18 2008-03-27 Juntan Zhang Bit mapping scheme for an ldpc coded 32apsk system
KR100837730B1 (ko) * 2006-09-29 2008-06-13 한국전자통신연구원 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
US7962495B2 (en) 2006-11-20 2011-06-14 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US7913149B2 (en) * 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
KR100975695B1 (ko) 2007-02-02 2010-08-12 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US8065598B1 (en) 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
KR100996030B1 (ko) * 2007-03-06 2010-11-22 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
AU2008230844B2 (en) * 2007-03-27 2011-06-09 Shell Internationale Research Maatschappij B.V. Wellbore communication, downhole module, and method for communicating
KR100984811B1 (ko) * 2007-03-27 2010-10-01 삼성전자주식회사 데이터를 송수신하는 장치 및 방법
US8418023B2 (en) * 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
KR20080102902A (ko) * 2007-05-22 2008-11-26 삼성전자주식회사 가변 부호화율을 가지는 ldpc 부호 설계 방법, 장치 및그 정보 저장 매체
WO2009020288A1 (en) 2007-08-09 2009-02-12 Samsung Electronics Co., Ltd. Apparatus and method for searching for erroneous data
US8127206B2 (en) * 2007-09-13 2012-02-28 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed video having reed-solomon code error concealment
US7826436B2 (en) * 2007-10-01 2010-11-02 Samsung Electronics Co., Ltd. Method and system for wireless communication of data with a fragmentation pattern and low-density parity-check codes
US8205126B2 (en) * 2007-11-27 2012-06-19 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed video using selective retransmission
US8327215B2 (en) * 2007-12-13 2012-12-04 Electronics And Telecommunications Research Institute Apparatus and method for encoding LDPC code using message passing algorithm
KR101431268B1 (ko) * 2007-12-14 2014-08-20 삼성전자주식회사 직렬 부호화를 위한 저밀도 패리티 검사 부호의 생성 장치및 방법
US8832518B2 (en) * 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
EP2134018A1 (en) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
JP5307137B2 (ja) * 2008-07-04 2013-10-02 三菱電機株式会社 検査行列生成装置、検査行列生成方法、検査行列生成プログラム、送信装置、受信装置及び通信システム
US8984390B2 (en) 2008-09-15 2015-03-17 Palantir Technologies, Inc. One-click sharing for screenshots and related documents
EP2178215A1 (en) * 2008-10-16 2010-04-21 Thomson Licensing Method for error correction and error detection of modified array codes
US8407555B2 (en) * 2009-03-30 2013-03-26 Broadcom Corporation LDPC codes robust to non-stationary narrowband ingress noise
ES2559867T3 (es) * 2009-06-15 2016-02-16 Alcatel Lucent Corrección de errores sin retorno mejorada con intercalación a nivel de bits
KR101644656B1 (ko) * 2009-11-02 2016-08-10 삼성전자주식회사 선형 블록 부호를 사용하는 통신 시스템에서 패리티 검사 행렬을 생성하는 방법과 이를 이용한 채널 부호화/복호화 장치 및 방법
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
CN102386995A (zh) * 2010-09-01 2012-03-21 国家广播电影电视总局广播科学研究院 低密度奇偶校验码校验矩阵构造方法及装置
EP2479913A1 (en) * 2011-01-21 2012-07-25 Alcatel Lucent Methods and apparatus for simultaneous transmission and reception of a data sequence and channel information for link adaptation
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
US9380431B1 (en) 2013-01-31 2016-06-28 Palantir Technologies, Inc. Use of teams in a mobile application
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8937619B2 (en) 2013-03-15 2015-01-20 Palantir Technologies Inc. Generating an object time series from data objects
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8818892B1 (en) 2013-03-15 2014-08-26 Palantir Technologies, Inc. Prioritizing data clusters with customizable scoring strategies
US8917274B2 (en) 2013-03-15 2014-12-23 Palantir Technologies Inc. Event matrix based on integrated data
CN103199875B (zh) * 2013-03-22 2016-08-10 北京空间飞行器总体设计部 一种基于准循环ldpc码的高效编码方法
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
KR20150005853A (ko) 2013-07-05 2015-01-15 삼성전자주식회사 송신 장치 및 그의 신호 처리 방법
KR102002559B1 (ko) 2013-07-05 2019-07-22 삼성전자주식회사 송신 장치 및 그의 신호 처리 방법
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US8713467B1 (en) 2013-08-09 2014-04-29 Palantir Technologies, Inc. Context-sensitive views
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US8924872B1 (en) 2013-10-18 2014-12-30 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US9021384B1 (en) 2013-11-04 2015-04-28 Palantir Technologies Inc. Interactive vehicle information map
US8868537B1 (en) 2013-11-11 2014-10-21 Palantir Technologies, Inc. Simple web search
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10025834B2 (en) 2013-12-16 2018-07-17 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US9727376B1 (en) 2014-03-04 2017-08-08 Palantir Technologies, Inc. Mobile tasks
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis
US9489259B2 (en) * 2014-08-14 2016-11-08 Electronics And Telecommunications Research Institute Low density parity check encoder having length of 16200 and code rate of 2/15, and low density parity check encoding method using the same
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US9612723B1 (en) 2015-12-30 2017-04-04 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
CN108370284B (zh) * 2016-01-04 2021-05-14 苹果公司 使用低密度奇偶校验矩阵进行编码和解码
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
CN107919941B (zh) * 2016-10-10 2022-01-25 深圳市硅派科技有限公司 基于重叠复用的调制解调方法和装置
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
JP2018098774A (ja) * 2016-12-14 2018-06-21 日本放送協会 送信装置、受信装置及びチップ
US9946777B1 (en) 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US9922108B1 (en) 2017-01-05 2018-03-20 Palantir Technologies Inc. Systems and methods for facilitating data transformation
CN108809328B (zh) 2017-05-05 2024-05-17 华为技术有限公司 信息处理的方法、通信装置
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
AU2017418080B9 (en) 2017-06-15 2021-01-28 Huawei Technologies Co., Ltd. Information processing method and communication apparatus
CN109327225B9 (zh) 2017-06-27 2021-12-10 华为技术有限公司 信息处理的方法、装置和通信设备
US10691729B2 (en) 2017-07-07 2020-06-23 Palantir Technologies Inc. Systems and methods for providing an object platform for a relational database
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US10956508B2 (en) 2017-11-10 2021-03-23 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace containing automatically updated data models
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11461355B1 (en) 2018-05-15 2022-10-04 Palantir Technologies Inc. Ontological mapping of data
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
CN109887549B (zh) * 2019-02-22 2023-01-20 天津大学 一种数据存储、还原方法及装置
CN116991431B (zh) * 2023-08-04 2024-03-01 沐曦集成电路(杭州)有限公司 基于gpu的编解码模型静态部署方法、电子设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003115768A (ja) 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> データの低密度パリティ検査符号化方法および装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1480346A4 (en) * 2002-02-28 2006-05-10 Mitsubishi Electric Corp METHOD FOR GENERATING LDPC CODE INSPECTION ARRAYS AND DEVICE FOR GENERATING INSPECTION ARRAYS
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US7398446B2 (en) * 2003-05-29 2008-07-08 Lucent Technologies Inc. Low power operation of an address interleaver

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003115768A (ja) 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> データの低密度パリティ検査符号化方法および装置

Also Published As

Publication number Publication date
KR20040092922A (ko) 2004-11-04
US20040221223A1 (en) 2004-11-04
US7178082B2 (en) 2007-02-13

Similar Documents

Publication Publication Date Title
KR100996029B1 (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
Johnson Introducing low-density parity-check codes
Zhang et al. Joint (3, k)-regular LDPC code and decoder/encoder design
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
JP4168055B2 (ja) 低密度パリティ検査符号の生成方法及び装置
EP2387157B1 (en) Efficient encoding of LDPC codes using structured parity-check matrices
KR101208546B1 (ko) 저밀도 패리티 체크 행렬을 이용한 부호화 및 복호화 방법
KR101227264B1 (ko) Ldpc 코드용 디코더
JP2008035524A (ja) 反復確率伝搬を使用して記号ブロックを復号化する装置および方法
WO2009004601A9 (en) Generation of parity-check matrices
KR20050035729A (ko) 저밀도 패리티 검사 코드의 부호화 방법
US7493548B2 (en) Method and apparatus for encoding and decoding data
Zhang et al. Toward low LDPC-code floors: a case study
KR20060106132A (ko) 연접 ldgm 부호 부호화/복호화 방법
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
Xie et al. Design of rate-compatible protograph-based LDPC codes with mixed circulants
KR101370903B1 (ko) Ldpc 코드를 이용한 부호화 및 복호화 방법
CN105871385A (zh) 一种ldpc卷积码构造方法
RU2755295C1 (ru) Способ перемежения кодовых символов в коде с низкой плотностью проверок на четность
TWI469536B (zh) 在雜訊媒體上之資料通信程序及裝置
RU2365034C2 (ru) Способ и устройство для кодирования и декодирования данных
Lulu Construction Of Ldpc Codes Using Randomly Permutated Copies Of Parity Check Matrix
Abu-Hudrouss LDPC code construction using randomly permutated copies of parity check matrix
Dirube García Search for improvements in low density parity check codes for WiMAX (802.16 e) applications
KR20050071842A (ko) 반 집합 대수 엘디피씨 부호의 구성 방법 및 부호화 장치

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: 20131030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee