KR20050021108A - 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 - Google Patents

이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 Download PDF

Info

Publication number
KR20050021108A
KR20050021108A KR1020030059206A KR20030059206A KR20050021108A KR 20050021108 A KR20050021108 A KR 20050021108A KR 1020030059206 A KR1020030059206 A KR 1020030059206A KR 20030059206 A KR20030059206 A KR 20030059206A KR 20050021108 A KR20050021108 A KR 20050021108A
Authority
KR
South Korea
Prior art keywords
matrix
partial
blocks
block
parity
Prior art date
Application number
KR1020030059206A
Other languages
English (en)
Other versions
KR100809619B1 (ko
Inventor
경규범
정홍실
김재열
박성은
양경철
명세호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to KR1020030059206A priority Critical patent/KR100809619B1/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CA2531806A priority patent/CA2531806C/en
Priority to RU2006109470/09A priority patent/RU2316111C2/ru
Priority to AU2004302428A priority patent/AU2004302428B2/en
Priority to CN2004800236822A priority patent/CN1836394B/zh
Priority to PCT/KR2004/002144 priority patent/WO2005020500A1/en
Priority to CN201110074657.9A priority patent/CN102164022B/zh
Priority to JP2006524576A priority patent/JP4160617B2/ja
Priority to EP04020337.4A priority patent/EP1511177B1/en
Priority to US10/926,932 priority patent/US7313752B2/en
Publication of KR20050021108A publication Critical patent/KR20050021108A/ko
Priority to US11/831,688 priority patent/US7962828B2/en
Priority to JP2008044898A priority patent/JP5219552B2/ja
Application granted granted Critical
Publication of KR100809619B1 publication Critical patent/KR100809619B1/ko
Priority to US13/047,471 priority patent/US8719683B2/en
Priority to US14/256,288 priority patent/US9319068B2/en

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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/1162Array based LDPC codes, e.g. array codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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
    • 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
    • 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/1151Algebraically constructed LDPC codes, e.g. LDPC codes derived from Euclidean geometries [EG-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/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary 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/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes

Abstract

본 발명은 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는, 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 패러티 검사 행렬을 생성하는 방법에 있어서, 상기 정보어를 상기 LDPC 부호로 부호화시 적용되는 부호화율과, 부호어 길이에 대응하도록 패러티 검사 행렬의 크기를 결정하는 과정과, 상기 결정된 크기의 패러티 검사 행렬을 미리 설정된 설정 개수의 블록들로 분할하는 과정과, 상기 설정 개수의 블록들을 상기 정보 파트와 제1패러티 파트 및 제2패러티 파트로 분류하는 과정과, 상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과, 상기 정보 파트로 분류된 블록들에 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정을 포함한다.

Description

이동 통신 시스템에서 블록 저밀도 패러티 검사 부호 부호화/복호 장치 및 방법{APPARATUS AND METHOD FOR CODING/DECODING BLOCK LOW DENSITY PARITY CHECK CODE IN A MOBILE COMMUNICATION SYSTEM}
본 발명은 이동 통신 시스템에 관한 것으로서, 특히 블록 저밀도 패러티 체크 부호를 부호화/복호하는 장치 및 방법에 관한 것이다.
1970년대 말 미국에서 셀룰라(cellular) 방식의 무선 이동 통신 시스템(Mobile Telecommunication System)이 개발된 이래 국내에서는 아날로그 방식의 1세대(1G: 1st Generation) 이동 통신 시스템이라고 할 수 있는 AMPS(Advanced Mobile Phone Service) 방식으로 음성 통신 서비스를 제공하기 시작하였다. 이후, 1990년대 중반 2세대(2G: 2nd Generation) 이동 통신 시스템으로서 부호 분할 다중 접속(CDMA: Code Division Multiple Access, 이하 'CDMA'라 칭하기로 한다) 방식의 시스템을 상용화하여 음성 및 저속 데이터 서비스를 제공하였다.
또한, 1990년대 말부터 향상된 무선 멀티미디어 서비스, 범 세계적 로밍(roaming), 고속 데이터 서비스 등을 목표로 시작된 3세대(3G: 3rd Generation) 이동 통신 시스템인 IMT-2000(International Mobile Telecommunication-2000)은 현재 일부 상용화되어 서비스가 운영되고 있다. 특히, 상기 3세대 이동 통신 시스템은 이동 통신 시스템에서 서비스하는 데이터량이 급속 하게 증가함에 따라 보다 고속의 데이터를 전송하기 위해 개발되었다. 즉, 상기 3세대 이동 통신 시스템은 패킷 서비스 통신 시스템(packet service communication system) 형태로 발전하고 왔으며, 패킷 서비스 통신 시스템은 버스트(burst)한 패킷 데이터(packet data)를 다수의 이동국들로 전송하는 시스템으로서, 대용량 데이터 전송에 적합하도록 설계되고 있다. 결국, 패킷 서비스 통신 시스템은 고속 패킷 서비스를 위해 발전해나가고 있다.
한편, 현재는 3세대 이동 통신 시스템에서 4세대(4G: 4th Generation) 이동 통신 시스템으로 발전해나가고 있는 상태이다. 상기 4세대 이동 통신 시스템은 이전 세대의 이동 통신 시스템들과 같이 단순한 무선 통신 서비스에 그치지 않고 유선 통신 네트워크와 무선 통신 네트워크와의 효율적 연동 및 통합 서비스를 목표로 하여 표준화되고 있다. 따라서 무선 통신 네트워크에서 유선 통신 네트워크의 용량(capacity)에 근접하는 대용량 데이터를 전송할 수 있는 기술 개발이 요구되고 있다.
이렇게, 음성 위주의 서비스를 벗어나 영상, 무선 데이터 등의 다양한 정보를 처리하고 전송할 수 있는 고속 대용량 통신 시스템이 요구됨에 따라 적정한 채널 부호화(channel coding) 방식을 사용하여 시스템 전송 효율을 높이는 것이 시스템 성능 향상에 필수적인 요소로 작용하게 된다. 그러나, 이동 통신 시스템은 이동 통신 시스템의 특성상 데이터를 전송할 때 채널의 상황에 따라 잡음(noise)과, 간섭(interference) 및 페이딩(fading) 등으로 인해 불가피하게 오류(error)가 발생하고, 따라서 상기 오류 발생으로 인한 정보 데이터의 손실이 발생한다.
이러한 오류 발생으로 인한 정보 데이터 손실을 감소시키기 위해서 채널의 성격에 따라 다양한 오류 제어 기술(error-control technique)들을 사용함으로써 상기 이동 통신 시스템의 신뢰도를 향상시킬 수 있다. 상기 오류 제어 기술들 중에서 가장 보편적으로 사용되고 있는 오류 제어 기술은 오류 정정 부호(error-correcting code)를 사용하는 기술이다. 그러면 여기서, 상기 오류 정정 부호의 대표적인 부호인 터보 부호(turbo code)와, 저밀도 패러티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호에 대해서 설명하기로 한다.
첫 번째로, 상기 터보 부호에 대해서 설명하기로 한다.
상기 터보 부호는 최근 제3세대 이동 통신 시스템으로서 주목받고 있는 동기 방식과 비동기 방식 모두에서 고려하고 있는 오류 정정 부호로서, 종래에 순방향 오류 정정을 위해 주로 사용되던 컨벌루셔널 부호(convolutional code)에 비하여 고속 데이터 전송시에 성능 이득이 우수한 것으로 알려져 있다. 또한, 상기 터보 부호는 전송 채널에서 발생하는 잡음에 의한 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높일 수 있다는 장점을 가진다.
두 번째로, 상기 LDPC 부호에 대해서 설명하기로 한다.
상기 LDPC 부호는 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프 상에서 합곱(sum-product) 알고리즘(algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 사용하여 복호할 수 있다. 상기 합곱 알고리즘에 기반한 반복 복호 알고리즘을 사용하는 복호 방법을 사용함으로써 상기 LDPC 부호의 복호기(decoder)는 상기 터보 부호의 복호기에 비해 낮은 복잡도를 가질 뿐만 아니라 병렬 처리 복호기를 구현함에 있어 용이하게 된다. 상기 LDPC 부호를 factor 그래프로 표현하면 상기 LDPC 부호의 factor 그래프상에 사이클(cycle)이 존재하게 되는데, 사이클이 존재하는 상기 LDPC 부호의 factor 그래프 상에서의 반복 복호는 준최적(suboptimal)이라는 것은 이미 잘 알려져 있는 사실이다. 또한 상기 LDPC 부호는 반복 복호를 통해 우수한 성능을 가진다는 것 역시 실험적으로 입증된 바 있다. 그러나, 상기 LDPC 부호의 factor 그래프상에 짧은 길이의 사이클이 많이 존재할 경우에는 상기 LDPC 부호의 성능 열화가 발생되기 때문에, 상기 LDPC 부호의 factor 그래프상에 짧은 길이의 사이클이 존재하지 않도록 하는 LDPC 부호를 설계하기 위한 연구가 지속적으로 수행되고 있다.
상기 LDPC 부호의 부호화 과정은 일반적으로 높은 웨이트(weight)를 가지는 생성 행렬(generating matrix)의 특성으로 인해 낮은 웨이트 밀도를 가지는 패리티 검사 행렬(parity check matrix)을 이용하는 방법으로 발전되어 왔다. 여기서, 상기 웨이트라함은 상기 생성 행렬 및 패러티 검사 행렬을 구성하는 엘리먼트(element)들중 0이 아닌 값을 가지는 엘리먼트의 개수를 나타낸다. 특히, 상기 패러티 검사 행렬에서 패러티에 해당하는 부분 행렬(partial matrix)의 형태가 규칙적인 형태를 가지면 일반적인 LDPC 부호 보다 더 효율적인 부호화가 가능하다.
한편, 상기 LDPC 부호는 0이 아닌 값을 가지는 다양한 부호들을 포함하고 있으므로 LDPC 부호의 실용화 문제에 있어서, 다양한 형태를 갖는 LDPC 부호의 효율적인 부호화 알고리즘과 효율적인 복호 알고리즘을 개발하는 것은 매우 중요한 요소이다. 또한, LDPC 부호의 패러티 검사 행렬은 LDPC 부호의 성능을 결정하기 때문에 우수한 성능을 갖는 패리티 검사 행렬을 설계하는 방법 역시 매우 중요한 요소이다. 즉, 우수한 성능을 갖는 효율적인 패리티 검사 행렬과, 효율적인 부호화 알고리즘 및 복호 알고리즘을 동시에 고려해야만 성능이 우수한 LDPC 부호를 생성하는 것이 가능하게 되는 것이다.
또한, 상기 LDPC 부호는 Gallager에 의해 제안된 부호이며, 대부분의 엘리먼트들이 0의 값을 가지며, 상기 0의 값을 가지는 엘리먼트들 이외의 극히 소수의 엘리먼트들이 1의 값을 가지는 패리티 검사 행렬에 의해 정의된다. 일 예로, (N, j, k) LDPC 부호는 블록(block) 길이가 N인 선형 블록 부호(linear block code)로, 각 열(column)마다 j개의 1의 값을 가지는 엘리먼트들과, 각 행(row)마다 k개의 1의 값을 가지는 엘리먼트들을 가지고, 상기 1의 값을 가지는 엘리먼트들을 제외한 엘리먼트들은 모두 0의 값을 가지는 엘리먼트들로 구성된 성긴(sparse, 이하 'sparse'라 칭하기로 한다) 구조의 패리티 검사 행렬에 의해 정의된다.
상기에서 설명한 바와 같이 상기 패러티 검사 행렬내 각 열의 웨이트들의 개수가 j개로 일정하며, 상기 패러티 검사 행렬내 각 행의 웨이트들의 개수가 k개로 일정한 LDPC 부호를 균일(regular) LDPC 부호라고 칭한다. 이와는 달리, 상기 패러티 검사 행렬내 각 열의 웨이트들의 개수와 각 행의 웨이트들의 개수가 일정하지 않은 LDPC 부호를 불균일(irregular) LDPC 부호라고 칭한다. 일반적으로, 상기 균일 LDPC 부호의 성능에 비해서 상기 불균일 LDPC 부호의 성능이 더 우수하다고 알려져있다. 그러나, 상기 불균일 LDPC 부호의 경우 패러티 검사 행렬내 각 열의 웨이트들의 개수와 각 행의 웨이트들의 개수가 일정하지 않기 때문에 패러티 검사 행렬내 각 열의 웨이트들의 개수와 각 행의 웨이트들의 개수를 적절하게 조절해야지만 우수한 성능을 보장받을 수 있다.
그러면 여기서 도 1을 참조하여 (N, j, k) LDPC 부호, 일 예로 (8, 2, 4) LDPC 부호의 패러티 검사 행렬을 설명하기로 한다.
상기 도 1은 일반적인 (8, 2, 4) LDPC 부호의 패러티 검사 행렬을 도시한 도면이다.
상기 도 1을 참조하면, 먼저 상기 (8, 2, 4) LDPC 부호의 패러티 검사 행렬 H는 8개의 열들과 4개의 행들로 구성되어 있으며, 각 열의 웨이트들의 개수는 2로 균일하며, 각 행의 웨이트들의 개수는 4로 균일하다. 이렇게, 상기 패러티 검사 행렬내 각 열의 웨이트들의 개수와 각 행의 웨이트들의 개수가 균일하므로 상기 (8, 2, 4) LDPC 부호는 균일 LDPC 부호가 되는 것이다.
상기 도 1에서는 (8, 2, 4) LDPC 부호의 패러티 검사 행렬에 대해서 설명하였으며, 다음으로 도 2를 참조하여 상기 도 1에서 설명한 (8, 2, 4) LDPC 부호의 factor 그래프를 설명하기로 한다.
상기 도 2는 도 1의 (8, 2, 4) LDPC 부호의 factor 그래프를 도시한 도면이다.
상기 도 2를 참조하면, 상기 (8, 2, 4) LDPC 부호의 factor 그래프는 8개의 변수 노드(variable node)들, 즉 x1(211)과, x2(213)과, x3(215)과, x4(217)과, x5(219)과, x6(221)과, x7(223)과, x8(225)와, 4개의 검사 노드(check node)들(227,229,231,233)로 구성된다. 상기 (8, 2, 4) LDPC 부호의 패러티 검사 행렬의 i번째 열과 j번째 행이 교차하는 지점에 웨이트, 즉 1의 값을 가지는 엘리먼트가 존재할 경우 변수 노드 xi와 j번째 검사 노드 사이에 브랜치(branch)가 생성된다.
상기에서 설명한 바와 같이 LDPC 부호의 패러티 검사 행렬은 매우 적은 개수의 웨이트들을 가지기 때문에, 비교적 긴 길이를 가지는 블록 부호(block code)에서도 반복 복호를 통해 복호가 가능하며, 블록 부호의 블록 길이를 계속 증가시켜가면 터보 부호와 같이 Shannon의 채널 용량 한계에 근접하는 형태의 성능을 나타낸다. 또한, MacKay와 Neal은 흐름 전달 방식을 사용하는 LDPC 부호의 반복 복호 과정이 터보 부호의 반복 복호 과정에 거의 근접하는 성능을 가진다는 것을 이미 증명한 바가 있다.
또한, 성능이 좋은 LDPC 부호를 생성하기 위해서는 몇 가지 조건들을 만족시켜야만 하는데, 여기서 성능이 좋은 LDPC 부호를 생성하기 위한 조건들을 설명하면 다음과 같다.
(1) LDPC 부호의 factor 그래프상의 사이클을 고려해야만 한다.
상기 사이클이란 LDPC 부호의 factor 그래프에서 변수 노드와 검사 노드를 연결하는 에지(edge)가 구성하는 루프(loop)를 나타내는데, 상기 사이클의 길이는 상기 루프를 구성하는 에지들의 개수로 정의된다. 상기 사이클의 길이가 길다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드와 검사 노드를 연결하는 에지들의 개수가 많다는 것을 나타내며, 이와는 반대로 상기 사이클의 길이가 짧다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드와 검사 노드를 연결하는 에지들의 개수가 적다는 것을 나타낸다.
상기 LDPC 부호의 factor 그래프상의 사이클을 길게 생성할 수록 상기 LDPC 부호의 성능이 좋아지게 되는데 그 이유는 다음과 같다. 상기 LDPC 부호의 factor 그래프상의 사이클을 길게 생성할 경우, 상기 LDPC 부호의 factor 그래프상에 짧은 길이의 사이클이 많이 존재할 때 발생하는 오류 마루등의 성능 열화가 발생하지 않기 때문이다.
(2) LDPC 부호의 효율적인 부호화를 고려해야만 한다.
상기 LDPC 부호는 상기 LDPC 부호의 특성상 컨벌루셔널 부호나 터보 부호에 비해 부호화 복잡도가 높아 실시간 부호화가 난이하다. 상기 LDPC 부호의 부호화 복잡도를 줄이기 위해서 반복 누적 부호(RA(Repeat Accumulate) code) 등이 제안되었으나, 상기 반복 누적 부호 역시 상기 LDPC 부호의 부호화 복잡도를 낮추는데 있어서는 한계를 나타내고 있다. 따라서, LDPC 부호의 효율적인 부호화를 고려해야만 한다.
(3) LDPC 부호의 factor 그래프상의 차수 분포를 고려해야만 한다.
일반적으로, 균일 LDPC 부호보다 불균일 LDPC 부호가 성능이 우수한데 그 이유는 상기 불균일 LDPC 부호의 factor 그래프상의 차수(degree)가 다양한 차수를 가지기 때문이다. 여기서, 상기 차수란 상기 LDPC 부호의 factor 그래프상에서 각 노드들, 즉 변수 노드들과 검사 노드들에 연결되어 있는 에지의 개수를 나타낸다. 또한, LDPC 부호의 factor 그래프상의 차수 분포란 특정 차수를 갖는 노드들이 전체 노드들 중 얼마만큼 존재하는지를 나타내는 것이다. 특정한 차수 분포를 가지는 LDPC 부호의 성능이 우수하다는 것은 Richardson 등이 이미 증명한 바가 있다.
다음으로 도 3을 참조하여 블록 LDPC 부호의 패러티 검사 행렬0에 대해서 설명하기로 한다.
상기 도 3은 일반적인 블록 LDPC 부호의 패러티 검사 행렬을 개략적으로 도시한 도면이다.
상기 도 3을 설명하기에 앞서, 먼저 상기 블록 LDPC 부호는 효율적인 부호화뿐만 아니라 효율적인 패리티 검사 행렬의 저장 및 성능 개선을 모두 고려한 새로운 LDPC 부호로서, 상기 블록 LDPC 부호는 균일 LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다. 상기 도 3을 참조하면, 상기 블록 LDPC 부호의 패러티 검사 행렬은 전체 패러티 검사 행렬을 다수의 부분 블록(partial block)들로 분할하고, 상기 부분 블록들 각각에 순열 행렬(permutation matrix)을 대응시키는 형태를 가진다. 상기 도 3에 도시되어 있는 P는 크기를 가지는 순열 행렬을 나타내며, 상기 순열 행렬 P의 위첨자 aij 혹은 aij = ∞를 가진다.
그러면 여기서 도 4를 참조하여 상기 순열 행렬에 대해서 설명하기로 한다.
상기 도 4는 도 3의 순환 행렬 P를 도시한 도면이다.
상기 도 4에 도시되어 있는 바와 같이 상기 순환 행렬 P는 크기를 가지는 정사각 행렬로서, 상기 순환 행렬 P은 상기 순환 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트가 1이고, 상기 순환 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트 역시 1인 행렬을 나타낸다.
한편, 상기 도 3에서 상기 순열 행렬 P의 위첨자 aij가 0일 때, 즉 순열 행렬 P0는 단위 행렬 를 나타내며, 상기 순열 행렬 P의 위첨자 aij가 ∞일 때, 즉 순열 행렬 P는 영(zero) 행렬 나타낸다.
상기 도 3에서 상기 블록 LDPC 부호의 전체 패러티 검사 행렬은 전체 열의 개수가 Nsn이고, 전체 행의 개수가 Nsm이므로(단, ), 상기 블록 LDPC 부호의 전체 패러티 검사 행렬이 최대 랭크(full rank)를 가지는 경우 상기 부분 블록들의 크기에 상관없이 부호율(coding rate)은 하기 수학식 1과 같이 나타낼 수 있다.
한편, 모든 i, j에 대해서 일 경우, 상기 부분 블록들 각각에 대응하는 순열 행렬들 각각은 영 행렬이 아님을 나타내며, 부분 블록들 각각에 대응하는 순열 행렬들 각각의 각 열의 웨이트는 m, 각 행의 웨이트는 n인 균일 LDPC 부호가 된다. 여기서, 상기 부분 블록들에 대응하는 순열 행렬을 '부분 행렬'이라 칭하기로 한다.
또한, 상기 전체 패러티 검사 행렬은 m-1개의 종속적인(dependent) 행들이 존재하므로 부호화율은 상기 수학식 1에서 계산한 부호화율보다 큰 값을 가진다. 상기 블록 LDPC 부호는 전체 패러티 검사 행렬을 구성하는 부분 행렬들 각각의 첫번째 행의 웨이트 위치가 결정되면, 나머지 Ns-1개 행들의 웨이트 위치가 결정되므로, 상기 전체 패러티 검사 행렬의 정보를 저장하기 위해서 불규칙하게 웨이트를 선택하는 경우에 비해서는 필요로 되는 메모리의 크기가 1/Ns로 줄어든다.
그러면 여기서 도 5를 참조하여 균일 블록 LDPC 부호의 패러티 검사 행렬에 대해서 설명하기로 한다.
상기 도 5는 일반적인 균일 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면이다.
상기 도 5에 도시되어 있는 패러티 검사 행렬은 균일 블록 LDPC 부호, 즉 Fan이 제안한 (p,r) 배열(array) 부호의 패러티 검사 행렬이다. Fan이 제안한 (p,r) 배열 부호는 대표적인 균일 블록 LDPC 부호로서, 상기 (p,r) 배열 부호는 상기 도 3에서 Ns가 p이고(Ns = p), n이 p이고( n = p), m이 r인(m = r) 경우의 블록 LDPC 부호에 해당한다. 여기서, 상기 p는 홀수인 소수이며, r은 항상 의 조건을 만족한다.
상기 (p,r) 배열 부호의 패러티 검사 행렬은 p2개의 열들과 rp개의 행들을 가지며, 랭크는 r(p-1)이 된다. 여기서, 상기 (p,r) 배열 부호의 패러티 검사 행렬의 랭크가 r(p-1)이 되는 이유는 상기 (p,r) 배열 부호의 패러티 검사 행렬의 행 방향으로의 r개의 부분 행렬들은 상기 부분 행렬들 각각내의 p개의 행들을 모두 더하면 모든 엘리먼트들이 1의 값을 가지는 행이 생성되기 때문이다. 즉, 모든 엘리먼트들이 1의 값을 가지는 r개의 행들이 생성되므로, r개의 종속인 행들이 존재함을 알 수 있다. 따라서, 상기 (p,r) 배열 부호의 부호율 Rarray는 하기 수학식 2와 같이 나타낼 수 있다.
상기에서 설명한 바와 같이 상기 (p,r) 배열 부호는 그 대수적인 특성으로부터 길이가 4인 사이클이 factor 그래프상에 존재하지 않음을 알 수 있으며, 또한 상기에서 설명한 바와 같이 메모리 용량 역시 감소시킬 수 있다.
그러나, 상기 (p,r) 배열 부호는 균일 LDPC 블록 부호이므로, 불균일 LDPC 부호에 비해서는 성능 열화가 발생한다. 또한, 블록 LDPC 부호의 경우 블록 LDPC 부호 자체의 랜덤한 성질(randomness)이 적기 때문에 우수한 성능을 보장할 수 없다. 결국, 상기 (p,r) 배열 부호는 효율적인 부호화를 고려하기는 했지만 부호화에 있어서 복잡도는 여전히 높으며, 또한 길이 4의 사이클은 존재하지 않지만 길이 6의 사이클이 여전히 존재하며, Richardson 등이 제안한 차수 분포를 고려하지 않아서 성능면에서 열화가 발생한다.
그러면 여기서 도 6을 참조하여 불균일 LDPC 부호의 패러티 검사 행렬에 대해서 설명하기로 한다.
상기 도 6은 일반적인 불균일 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면이다.
상기 도 6을 설명하기에 앞서, 불균일 블록 LDPC 부호는 상기 도 5에서 설명한 바와 같은 배열 부호를 효율적인 부호화를 고려하여 변형한 형태의 블록 LDPC 부호이다. 상기 도 6에 도시되어 있는 불균일 블록 LDPC 부호의 패러티 검사 행렬에서 k,r은 의 조건을 만족하는 정수이며(단, p는 소수), I는 크기의 항등 행렬을 나타내며, 0은 크기의 영 행렬을 나타낸다. 상기 도 6에 도시되어 있는 불균일 블록 LDPC 부호의 패러티 검사 행렬은 상기 도 3에서 Ns가 p이고(Ns = p), n이 k이고( n = k), m이 r인(m = r) 경우의 블록 LDPC 부호의 패러티 검사 행렬에 해당한다.
한편, 상기 LDPC 부호의 효율적인 부호화를 위해 Eleftheriou 등은 상기 도 6과 같이 전체 패러티 검사 행렬중에서 패러티에 해당하는 부분 행렬을 완전 하삼각 행렬로 구성하여 선형 시간(linear time) 내에서 부호화가 가능하게 하였다. 여기서, 상기 전체 패러티 검사 행렬의 구조, 즉 정보어에 해당하는 부분 행렬과, 패러티에 해당하는 부분 행렬 구조는 하기에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다. 이렇게 패러티에 해당하는 부분 행렬을 완전 하삼각 행렬로 구성할 경우 패러티 검사 행렬의 구조적인 특성에 의해 상기 패러티 검사 행렬은 항상 최대 랭크(full rank)를 가지게 되므로 변형된 배열 부호, 즉 불균일 LDPC 부호의 블록 길이는 kp가 되며, 부호화율은 하기 수학식 3과 같이 표현할 수 있다.
그러나, 상기 도 6과 같은 패러티에 해당하는 부분 행렬이 완전 하삼각 행렬 형태를 가지는 패러티 검사 행렬을 가지는 불균일 LDPC 부호는 상기 배열 부호에 비해서는 부호화면에서 더 효율적이지만, LDPC 부호 생성시 고려해야하는 factor 그래프상의 차수 분포를 고려하지 않았으며, 또한 길이가 짧은 사이클에 대한 제거 역시 고려하지 않았기 때문에 랜덤한 성격을 가지는 불균일 LDPC 부호에 비해서는 낮은 오류 정정 능력을 가진다. 따라서, 오류 정정 능력을 최대화하는 불균일 LDPC 부호에 대한 필요성이 대두되고 있다.
따라서, 본 발명의 목적은 이동 통신 시스템에서 오류 정정 능력을 최대화하는 LDPC 부호를 부호화/복호화하는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 이동 통신 시스템에서 최소 사이클 길이가 최대가 되는 LDPC 부호를 부호화/복호화하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 이동 통신 시스템에서 부호화 복잡도가 최소화된 LDPC 부호를 부호화/복호화하는 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 제1방법은; 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는, 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 패러티 검사 행렬을 생성하는 방법에 있어서, 상기 정보어를 상기 LDPC 부호로 부호화시 적용되는 부호화율과, 부호어 길이에 대응하도록 패러티 검사 행렬의 크기를 결정하는 과정과, 상기 결정된 크기의 패러티 검사 행렬을 미리 설정된 설정 개수의 블록들로 분할하는 과정과, 상기 설정 개수의 블록들을 상기 정보 파트와 제1패러티 파트 및 제2패러티 파트로 분류하는 과정과, 상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과, 상기 정보 파트로 분류된 블록들에 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제2방법은; 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 복호 방법에 있어서, 상기 패러티 검사 행렬을 생성하고, 상기 패러티 검사 행렬에 상응하게 디인터리빙 방식 및 인터리빙 방식을 결정하는 과정과, 수신 신호의 확률값들을 검출하는 과정과, 상기 수신 신호의 확률값들에서 이전 복호시 생성된 신호를 감산하여 제1신호를 생성하는 과정과, 상기 제1신호를 입력하여 상기 디인터리빙 방식으로 디인터리빙하는 과정과, 상기 디인터리빙된 신호를 입력하여 확률값들을 검출하는 과정과, 상기 디인터리빙된 신호의 확률값들에서 상기 디인터리빙된 신호를 감산하여 제2신호를 생성하는 과정과, 상기 제2신호를 상기 인터리빙 방식으로 인터리빙하고, 상기 인터리빙된 신호를 반복 복호하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제3방법은; 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 부호화 방법에 있어서, 정보어와 미리 생성되어 있는 상기 패러티 검사 행렬의 제1부분 행렬과 곱셈하여 제1신호를 생성하는 과정과, 상기 정보어와 상기 패러티 검사 행렬의 제2부분 행렬과 곱셈하여 제2신호를 생성하는 과정과, 상기 제1신호와, 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제3신호를 생성하는 과정과, 상기 제2신호와 제3신호를 가산하여 제4신호를 생성하는 과정과, 상기 제4신호와 상기 패러티 검사 행렬의 제5부분 행렬을 곱셈하여 제5신호를 생성하는 과정과, 상기 제2신호와 상기 제5신호를 가산하여 제6신호를 생성하는 과정과, 상기 제6신호와 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제7신호를 생성하는 과정과, 상기 정보어와, 상기 제4신호를 제1패러티로, 상기 제7신호를 제2패러티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제1장치는; 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 복호 장치에 있어서, 소정 제어에 따라 상기 패러티 검사 행렬을 구성하는 열들 각각의 웨이트에 상응하게 변수 노드들을 연결하여 수신 신호의 확률값들을 검출하여 출력하는 변수 노드 복호기와, 상기 변수 노드 복호기에서 출력한 신호에서 이전 복호시 생성된 신호를 감산하여 출력하는 제1가산기와, 상기 제1가산기에서 출력한 신호를 입력하여 상기 패러티 검사 행렬에 상응하게 설정된 디인터리빙 방식으로 디인터리빙하여 출력하는 디인터리버와, 소정 제어에 따라 상기 패러티 검사 행렬을 구성하는 행들 각각의 웨이트에 상응하게 검사 노드들을 연결하여 상기 디인터리버에서 출력한 신호의 확률값들을 검출하여 출력하는 검사 노드 복호기와, 상기 검사 노드 복호기에서 출력한 신호에서 상기 디인터리버에서 출력한 신호를 감산하는 제2가산기와, 상기 제2가산기에서 출력한 신호를 상기 패러티 검사 행렬에 상응하게 설정된 인터리빙 방식으로 인터리빙하여 상기 변소 노드 복호기 및 상기 제1가산기로 출력하는 인터리버와, 상기 패러티 검사 행렬을 생성하고, 상기 디인터리빙 방식 및 인터리빙 방식을 상기 패러티 검사 행렬에 상응하게 제어하는 제어기를 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제2장치는; 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 부호화 장치에 있어서, 정보어를 입력하여 미리 생성되어 있는 상기 패러티 검사 행렬의 제1부분 행렬과 곱셈하는 제1행렬 곱셈기와, 상기 정보어를 입력하여 상기 패러티 검사 행렬의 제2부분 행렬과 곱셈하는 제2행렬 곱셈기와, 상기 제1행렬 곱셈기에서 출력한 신호와, 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제3행렬 곱셈기와, 상기 제2행렬 곱셈기에서 출력한 신호와 제3행렬 곱셈기에서 출력한 신호를 가산하는 제1가산기와, 상기 제1가산기에서 출력한 신호와 상기 패러티 검사 행렬의 제5부분 행렬과 곱셈하는 제4행렬 곱셈기와, 상기 제2행렬 곱셈기에서 출력한 신호와 상기 제4행렬 곱셈기에서 출력한 신호를 가산하는 제2가산기와, 상기 제2가산기에서 출력한 신호와 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제5행렬 곱셈기와, 상기 정보어와, 상기 제1가산기의 출력 신호를 제1패러티로, 상기 제5행렬 곱셈기의 출력 신호를 제2패러티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 스위치들을 포함함을 특징으로 한다.
이하, 본 발명에 따른 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 우수한 성능의 불균일(irregular) 저밀도 패러티 체크(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호를 부호화(coding) 및 복호(decoding)하는 방안을 제시한다. 즉, 본 발명은 LDPC 부호의 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프상의 최소 사이클(cycle)의 길이가 최대가 되고, 상기 LDPC 부호의 부호화를 위한 복잡도가 최소가 되고, 상기 LDPC 부호의 factor 그래프상의 차수 분포가 최적 1의 분포를 가지는 LDPC 부호의 부호화 및 복호 방안을 제시한다.
상기 종래 기술 부분에서 설명한 바와 같이 LDPC 부호의 factor 그래프상의 사이클이란 패러티 검사 행렬의 LDPC 부호의 factor 그래프에서 변수 노드(variable node)와 검사 노드(check node)를 연결하는 에지(edge)가 구성하는 루프(loop)를 나타내는데, 상기 사이클의 길이는 상기 루프를 구성하는 에지들의 개수로 정의된다. 상기 사이클의 길이가 길다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드와 검사 노드를 연결하는 에지들의 개수가 많다는 것을 나타낸다. 상기 LDPC 부호의 factor 그래프상의 사이클의 길이를 길게 생성할수록 상기 LDPC 부호의 성능이 좋아지게 된다. 이와는 반대로, 상기 LDPC 부호의 factor 그래프상에 길이가 짧은 사이클이 많이 존재할 수록 상기 LDPC 부호는 오류 마루등의 성능 열화가 나타나기 때문에 오류 정정 능력이 저하된다. 즉, 상기 LDPC 부호의 factor 그래프상에 길이가 짧은 사이클이 많이 존재할 경우 상기 길이가 짧은 사이클에 속해있는 임의의 한 노드에서 출발한 자신의 정보가 적은 반복 회수 후에 다시 자신에게 돌아오게 되고, 상기 반복 회수가 증가할수록 그 정보가 계속해서 자신에게 돌아오게 되므로 정보 업데이트(update)가 잘 이루어지지 않아 결국 오류 정정 능력이 저하되는 것이다.
그러면 여기서 도 7을 참조하여 블록(block) LDPC 부호의 사이클 구조 특성을 설명하기로 한다.
상기 도 7은 패러티 검사 행렬이 4개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 7을 설명하기에 앞서, 상기 블록 LDPC 부호는 효율적인 부호화뿐만 아니라 효율적인 패리티 검사 행렬(parity check matrix)의 저장 및 성능 개선을 모두 고려한 새로운 LDPC 부호로서, 균일(regular) LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다. 상기 도 7에 도시되어 있는 블록 LDPC 부호의 패러티 검사 행렬은 4개의 블록들로 구성되며, 사선은 1의 값을 가지는 엘리먼트(element)들이 존재하는 위치를 나타내며, 상기 사선 부분 이외의 부분들은 모두 0의 값을 가지는 엘리먼트들이 존재하는 위치를 나타낸다. 또한, P는 상기 종래 기술 부분의 도 4에서 설명한 바와 같은 순열 행렬(permutation matrix)과 동일한 순열 행렬을 나타낸다. 여기서, 상기 순열 행렬 P는 상기 도 4에서 설명한 바와 같이 크기를 가지는 정사각 행렬로서, 상기 순환 행렬 P는 상기 순환 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트(weight)가 1이고, 상기 순환 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트 역시 1인 행렬을 나타낸다. 여기서, 상기 웨이트라함은 상기 생성 행렬 및 패러티 검사 행렬을 구성하는 엘리먼트(element)들중 0이 아닌 값을 가지는 엘리먼트의 갯수를 나타낸다.
상기 도 7에 도시한 블록 LDPC 부호의 사이클 구조를 분석하기 위해서 부분 행렬 Pa의 i번째 행(row)에 위치하는 1의 값을 가지는 엘리먼트를 기준으로 정하고, 상기 i번째 행에 위치하는 1의 값을 가지는 엘리먼트를 '0-점'이라 칭하기로 한다. 여기서, 상기 부분 행렬은 상기 부분 블록에 대응되는 행렬을 나타낸다. 그러면, 상기 0-점은 상기 부분 행렬 Pa의 i + a번째 열(column)에 위치하게 된다.
상기 0-점과 동일한 행에 위치한 부분 행렬 Pb에서의 1의 값을 가지는 엘리먼트를 '1-점'이라 칭하기로 한다. 상기 0-점과 마찬가지 이유로 상기 1-점은 부분 행렬 Pb의 i + b번째 열에 위치하게 된다.
다음으로 상기 1-점과 동일한 열에 위치한 부분 행렬 Pc에서의 1의 값을 가지는 엘리먼트를 '2-점'이라 칭하기로 한다. 상기 부분 행렬 Pc가 단위 행렬 I의 열들 각각을 오른쪽으로 모듈로(modulo) Ns에 대해서 c만큼 이동하여 획득한 행렬이기 때문에 2-점은 상기 부분 행렬 Pc의 i + b - c번째 행에 위치하게 된다.
또한, 상기 2-점과 같은 행에 위치한 부분 행렬 Pd에서의 1의 값을 가지는 엘리먼트를 '3-점'이라 칭하기로 한다. 상기 3-점은 상기 부분 행렬 Pd에서의 i + b - c + d번째 열에 위치하게 된다.
마지막으로, 상기 3-점과 동일한 열에 위치한 부분 행렬 Pa에서의 1의 값을 가지는 엘리먼트를 '4-점'이라 칭하기로 한다. 상기 4-점은 상기 부분 행렬 Pa에서의 i + b - c + d - a번째 행에 위치하게 된다.
상기 도 7에 도시한 LDPC 부호의 사이클 구조에서 길이가 4인 사이클이 존재한다면 상기 0-점과 4-점은 서로 동일한 위치가 된다. 즉, 상기 0-점과 4-점간에는 하기 수학식 4와 같은 관계가 성립하게 된다.
그리고, 상기 수학식 4를 다시 정리하면 하기 수학식 5와 같이 표현할 수 있다.
결과적으로, 상기 수학식 5와 같은 관계가 성립할 때, 길이가 4인 사이클이 생성되는 것이다. 일반적으로, 0-점과 4m-점이 최초로 동일하게 되는 경우는 의 관계가 성립하게 되고, 하기 수학식 6과 같은 관계가 성립하게 된다.
다시 설명하면, 주어진 a, b, c, d에 대해 상기 수학식 6을 만족하는 양의 정수들중에서 최소값을 가지는 양의 정수를 m이라고 하면, 상기 도 7에 도시한 바와 같은 블록 LDPC 부호의 사이클 구조에서는 길이가 4m인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
결과적으로, 상기에서 설명한 바와 같이 인 경우 이 성립하면, m = Ns가 되고, 따라서 길이가 4Ns인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
상기 도 7에서 설명한 바와 같은 블록 LDPC 부호의 사이클에 대한 분석은 상기 블록 LDPC 부호의 패러티 검사 행렬을 구성하는 블록들의 개수가 4개를 초과할 경우, 즉 상기 패러티 검사 행렬을 구성하는 부분 행렬들의 개수가 4개를 초과할 경우에도 적용될 수 있다. 그러면 여기서 도 8을 참조하여 패러티 검사 행렬을 구성하는 부분 행렬들의 개수가 4개를 초과할 경우의 LDPC 부호의 사이클 구조에 대해서 설명하기로 한다.
상기 도 8은 패러티 검사 행렬이 6개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 8에 도시되어 있는 블록 LDPC 부호의 패러티 검사 행렬은 6개의 블록들로 구성되어 있으며, 상기 도 7에서 설명한 바와 같이 사선은 1의 값을 가지는 엘리먼트들이 존재하는 위치를 나타내며, 상기 사선 부분 이외의 부분들은 모두 0의 값을 가지는 엘리먼트들이 존재하는 위치를 나타낸다. 또한, P 역시 상기 종래 기술 부분의 도 4에서 설명한 바와 같은 순열 행렬과 동일한 순열 행렬을 나타낸다. 상기 도 7에서 설명한 바와 같은 방법으로 상기 도 8에 도시되어 있는 블록 LDPC 부호의 사이클 구조를 분석하면 길이가 6m인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
일반적으로, 0-점과 6m-점이 최초로 동일하게 되는 경우는 의 관계가 성립하게 되고, 하기 수학식 7과 같은 관계가 성립하게 된다.
다시 설명하면, 주어진 a, b, c, d, e, f에 대해 상기 수학식 7을 만족하는 양의 정수들중에서 최소값을 가지는 양의 정수를 m이라고 하면, 상기 도 8에 도시한 바와 같은 블록 LDPC 부호의 사이클 구조에서는 길이가 6m인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
결과적으로, 상기에서 설명한 바와 같이 인 경우 이 성립하면, m = Ns가 되고, 따라서 길이가 6Ns인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
상기에서 설명한 바와 같이 블록 LDPC 부호에 대해서 다음과 같은 규칙들을 유도할 수 있다.
<규칙 1>
블록 LDPC 부호에서 길이가 2l인 사이클이 존재한다면 하기 수학식 8의 조건을 만족해야만 한다.
상기 수학식 8에서, ai(i = 1, 2, ... , 2l)는 길이가 2l인 사이클이 순차적으로 통과하는 순열 행렬의 지수를 나타낸다. 즉, 상기 블록 LDPC 부호의 패러티 검사 행렬을 구성하는 부분 블록들에 대해서 상기 길이가 2l인 사이클이 의 순서를 가지고 통과하는 것을 나타낸다. 여기서, 상기 ai들 각각이 모두 상이할 필요는 없으며, 중복적으로 통과하는 부분 블록들이 존재할 수도 있음은 물론이다.
<규칙 2>
m을 하기 수학식 9를 만족하는 최소의 양의 정수라고 정의하기로 한다.
상기 수학식 9에서 ai는 전체 패러티 검사 행렬에서 블록 단위의 사이클이 형성되도록 적절히 선택된 순열 행렬의 지수이다. 그리고, 상기 ai들은 상기 <규칙 1>에서 설명한 바와 마찬가지로 각각이 모두 상이할 필요는 없으며, 중복적으로 통과하는 부분 블록들이 존재할 수도 있음은 물론이다. 결과적으로, 들로 이루어진 부분 행렬들은 최소 길이가 2lm인 사이클 구조를 가지게 된다.
상기 <규칙 1>과 <규칙 2>를 사용하면 상기 블록 LDPC 부호의 사이클 구조의 특성을 분석하는 것이 용이해진다. 일 예로, <규칙 1>과 <규칙 2>를 사용하면 상기 배열 부호에서 최소 길이가 6인 사이클이 정확히 얼마나 분포되어 있는지 알 수 있을 뿐만 아니라, 하기에서 설명할 블록 LDPC 부호의 블록 단위의 사이클(이하 '블록 사이클'이라 칭하기로 한다) 구조의 특성 분석 역시 용이하게 한다. 여기서, 상기 블록 사이클은 패리티 검사 행렬의 구성에 있어서 사이클 길이를 조정하는데 중요한 요소이며, 상기 블록 사이클을 도 9 및 상기 <규칙 1>과 <규칙 2>를 사용하여 설명하기로 한다.
상기 도 9는 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 9를 참조하면, 상기 블록 LDPC 부호를 구성하는 블록들 각각을 웨이트 1을 가진다고 정의하고, 상기 블록들 각각이 사이클을 구성할 경우 '블록 사이클을 구성한다'고 정의하기로 한다. 상기 도 9에는 좌측으로부터 4개의 블록들로 구성된 블록 사이클과, 6개의 블록들로 구성된 블록 사이클과, 8개의 블록들로 구성된 블록 사이클이 도시되어 있다. 그리고, 상기 <규칙 1>과 <규칙 2>에서 설명한 바와 같이 상기 도 9에 도시되어 있는 바와 같은 작은 길이의 블록 사이클이 구성된다고 하더라도 상기 블록 사이클을 구성하는 블록들 각각에 해당하는 부분 행렬을 적절히 선택하게 되면 실제 패리티 검사 행렬에서는 작은 길이의 사이클이 생성되지 않도록 제어할 수 있다. 하지만, 상기 블록 LDPC 부호에서 다수의 블록 사이클들이 중복되는 경우는 블록 사이클내의 실제 사이클들의 최소 길이가 작아져서, 결과적으로 실제 패리티 검사 행렬에서 작은 길이의 사이클들이 생성된다는 문제점이 발생하게 된다.
그러면 여기서, 도 10 및 상기 <규칙 1>과 <규칙 2>를 사용하여 블록 LDPC 부호에서 다수의 블록 사이클들이 중복되는 문제점에 대해서 살펴보기로 하며, 또한 상기 블록 LDPC 부호의 패리티 검사 행렬을 생성할 때 중복된 블록 사이클을 피해야 하는 이유에 대해 설명하기로 한다.
상기 도 10은 패러티 검사 행렬의 6개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 10에는 패러티 검사 행렬의 6개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조가 도시되어 있으며, 상기 도 10에 도시되어 있는 화살표 표시에 따라서 다음과 같은 순차적인 블록 순서를 고려할 수 있다.
상기 순차적인 블록 순서에 따른 부분 행렬들의 지수들은 Ns의 값에 상관없이 하기 수학식 10의 조건을 항상 만족하게 된다.
상기 수학식 10을 상기 <규칙 2>에서 설명한 수학식 9에 적용시키면, m =1이 되고, 따라서 상기 도 10에 도시한 바와 같은 6개의 부분 행렬이 중복된 블록 사이클이 존재하는 블록 LDPC 부호의 경우 전체 패러티 검사 행렬을 구성하는 어떤 부분 행렬을 선택하게 되더라도 항상 그 길이가 12인 사이클 구조를 포함하게 된다. 즉, 상기 도 10에 도시한 바와 같은 6개의 부분 행렬이 중복된 블록 사이클이 존재하는 블록 LDPC 부호의 경우 패러티 검사 행렬의 최소 사이클 길이는 최대 12로 제한되게 되는 것이다.
상기 도 10에서는 패러티 검사 행렬의 6개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조에 대해서 설명하였으며, 다음으로 도 11을 참조하여 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조에 대해서 설명하기로 한다.
상기 도 11은 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 11에는 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조가 도시되어 있으며, 상기 도 11에 도시되어 있는 화살표 표시에 따라서 다음과 같은 순차적인 블록 순서를 고려할 수 있다.
상기 순차적인 블록 순서에 따른 부분 행렬들의 지수들은 Ns의 값에 상관없이 하기 수학식 11의 조건을 항상 만족하게 된다.
상기 수학식 11을 상기 <규칙 2>에서 설명한 수학식 9에 적용시키면, m =1이 되고, 따라서 상기 도 11에 도시한 바와 같은 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 사이클이 존재하는 블록 LDPC 부호의 경우 전체 패러티 검사 행렬을 구성하는 어떤 부분 행렬을 선택하게 되더라도 항상 그 길이가 14인 사이클 구조를 포함하게 된다. 즉, 상기 도 11에 도시한 바와 같은 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 사이클이 존재하는 블록 LDPC 부호의 경우 패러티 검사 행렬의 최소 사이클 길이는 최대 14로 제한되게 되는 것이다.
상기에서 설명한 바와 같이 블록 LDPC 부호에서 패러티 검사 행렬을 구성하는 블록들간에 블록 사이클이 많이 중복되어 있는 경우 상기 패러티 검사 행렬의 부분 행렬 선택을 어떻게 하느냐에 상관없이 사이클의 최소 길이를 최대화하는데 제한이 발생되어 그 성능이 열화됨을 알 수 있다. 따라서, 블록 LDPC 부호에서 패러티 검사 행렬을 생성할 경우 가능한한 블록 사이클 자체가 적게 생성되도록하여 중복 블록 사이클이 발생하지 않도록 고려해야만 한다.
그러면 다음으로 상기 블록 사이클 이외에 효율적인 부호화를 고려하여 블록 LDPC 부호의 패러티 검사 행렬을 생성하는 방법에 대해서 설명하기로 한다.
본 발명에서는 블록 LDPC 부호의 부호화 방식으로서 Richardson-Urbanke 방식을 사용하기로 한다. 상기 Richardson-Urbanke 방식을 부호화 방식으로 사용하기 때문에 패러티 검사 행렬의 형태는 완전 하삼각 행렬 형태에 유사한 형태를 가질수록 부호화 복잡도를 최소화시킬 수 있게 된다.
그러면 여기서 도 12를 참조하여 완전 하삼각 행렬 형태를 가지는 패러티 검사 행렬을 설명하기로 한다.
상기 도 12는 완전 하삼각 행렬 형태를 가지는 패러티 검사 행렬을 도시한 도면이다.
상기 도 12에 도시되어 있는 패러티 검사 행렬은 완전 하삼각 행렬 형태를 가지며, 정보 파트(information part)와 패러티 파트(parities part)로 구성된다. 여기서, 상기 정보 파트는 블록 LDPC 부호를 부호화하는 과정에서 실제 정보어에 매핑되는 상기 패러티 검사 행렬의 파트를 나타내며, 상기 패러티 파트는 상기 블록 LDPC 부호를 부호화하는 과정에서 실제 패러티에 매핑되는 상기 패러티 검사 행렬의 파트를 나타낸다. 상기 패러티 파트는 상기 도 12에 도시되어 있는 바와 같이 항등 행렬 I들을 기점으로하여 0 행렬들과 부분 행렬들이 존재하며, 상기 부분 행렬들이 완전 하삼각 형태를 가진다.
다음으로 도 13을 참조하여 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패러티 검사 행렬을 설명하기로 한다.
상기 도 13은 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패러티 검사 행렬을 도시한 도면이다.
상기 도 13에 도시되어 있는 패러티 검사 행렬은 상기 도 12에 도시되어 있는 완전 하삼각 행렬 형태의 패러티 검사 행렬에 비해서는 패러티 파트의 형태가 완전 하삼각 행렬 형태를 벗어난다. 상기 도 13에 도시되어 있는 바와 같은 패러티 검사 행렬을 가지는 블록 LDPC 부호의 블록 길이를 N이라고 가정하면, 상기 블록 LDPC 부호의 부호화 복잡도는 상기 블록 길이 N에 대해서 선형적으로 증가한다(0(N)).
한편, 상기 도 13과 같은 패러티 검사 행렬을 가지는 LDPC 부호의 가장 큰 문제점은 부분 블록의 길이가 Ns라고 할 때, 상기 블록 LDPC 부호의 factor 그래프 상에서 항상 차수(degree)가 1인 Ns개의 검사 노드들이 생성된다는 점이다. 여기서, 상기 차수가 1인 검사 노드들은 반복 복호에 따른 성능 개선에 영향을 주지 못하며, 이에 따라 Richardson-Urbanke 방식과 같은 표준(standard) 불균일 LDPC 부호는 차수가 1인 검사 노드를 포함하고 있지 않다. 그러므로, 차수가 1인 검사 노드를 포함하지 않으면서 효율적인 부호화가 가능하도록 패리티 검사 행렬을 설계하기 위해 상기 도 13과 같은 패리티 검사 행렬을 기본적인 패러티 검사 행렬이라고 가정하기로 한다. 상기 도 13과 같이 부분 행렬들로 구성된 패리티 검사 행렬에서 부분 행렬의 선택은 상기 블록 LDPC 부호의 성능 개선에 있어서 매우 중요한 요소이고, 따라서 상기 부분 행렬의 적절한 선택 기준을 찾는 것 역시 매우 중요한 요소가 된다.
그러므로 블록 LDPC 부호를 생성함에 있어 다음과 같은 설계 기준(design criterion)을 고려하여 패리티 검사 행렬을 구성하도록 한다.
< 블록 LDPC 부호의 패리티 검사 행렬 설계 기준>
(1) 패리티 파트는 고정된 형태로 가지도록 구성한다.
여기서, 상기 패러티 파트가 고정된 형태를 가진다함은 하기에서 설명할 도 16에 도시되어 있는 바와 같이 항등 행렬이 위치되는 형태를 가지는 것을 의미하며, 이는 하기 도 16에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다.
(2) 우선적으로 차수가 낮은 부분 행렬부터 순차적으로 선택한다.
본 발명에서 낮은 차수라 함은 3 내지 5 사이의 차수를 나타낸다. 또한, 상기 차수가 낮은 부분 행렬부터 순차적으로 선택할 때 블록 사이클이 되도록 적게 생성되도록 부분 행렬을 배열하며, 차수가 낮은 부분 행렬 사이의 최소 길이를 갖는 사이클이 가능한 크게 구성한다.
(3) 차수가 낮은 부분 행렬들을 모두 구성한 뒤 차수가 높은 부분 행렬을 순차적으로 구성한다. 차수가 높은 부분 행렬을 배열할 때 가능한 전체적으로 최소 길이의 사이클을 크게 구성한다.
그러면 상기에서 설명한 블록 LDPC 부호의 패러티 검사 행렬 설계 기준을 기반으로 하여 블록 LDPC 부호의 패리티 검사 행렬의 설계 방법을 설명하기로 한다.
여기서, 상기 블록 LDPC 부호의 패리티 검사 행렬의 설계 방법과 상기 블록 LDPC 부호의 부호화 방법을 용이하게 하기 위해서 상기 도 13에 도시한 바와 같은 패러티 검사 행렬을 도 14와 같이 6개의 부분 행렬들로 구성된 형태라고 가정하기로 한다.
상기 도 14는 도 13의 패러티 검사 행렬을 6개의 부분 블록들로 분할한 도면이다.
상기 도 14를 참조하면, 상기 도 13에 도시되어 있는 블록 LDPC 부호의 패러티 검사 행렬을 정보 파트(s)와, 제1패러티 파트(p1)와, 제2패러티 파트(p2)의 부분 블록들로 분할한다. 여기서, 상기 정보 파트(s)는 상기 도 12 및 도 13에서 설명한 정보 파트(information part)와 같이 블록 LDPC 부호를 부호화하는 과정에서 실제 정보어에 매핑되는 상기 패러티 검사 행렬의 파트를 나타내며, 다만 설명의 편의상 표기를 달리하였을 뿐이다. 또한, 상기 제1패러티 파트(p1)와 제2패러티 파트(p2)는 상기 도 12 및 도 13에서 설명한 패러티 파트(parity part)와 같이 상기 블록 LDPC 부호를 부호화하는 과정에서 실제 패러티에 매핑되는 상기 패러티 검사 행렬의 파트를 나타내며, 상기 패러티 파트(parity part)를 2개의 파트들로 분할한 것이다.
상기 정보 파트(s)의 부분 블록들, 즉 부분 블록 A와 부분 블록 C에 대응되는 부분 행렬들이 A와 C이며, 상기 제1패러티 파트(p1)의 부분 블록들, 즉 부분 블록 B와 부분 블록 D에 대응되는 부분 행렬들이 B와 D이며, 제2패러티 파트(p2)의 부분 블록들, 즉 부분 블록 O와, 부분 블록 T와 부분 블록 E에 대응되는 부분 행렬들이 0과 T 및 E이다. 여기서, 상기 정보 파트(s)와, 제1패러티 파트(p1)와, 제2패러티 파트(p2)의 부분 행렬들을 사용하여 부호화 방법을 간략하게 하는 과정은 하기 도 17에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다.
그러면 여기서 상기 도 14의 부분 행렬들을 도 15를 참조하여 설명하기로 한다.
상기 도 15는 도 14의 부분 행렬 B의 이항 행렬과, 부분 행렬 E와, 부분 행렬 T와, 부분 행렬 T의 역행렬을 도시한 도면이다.
상기 도 15를 참조하면, 부분 행렬 BT는 상기 부분 행렬 B의 이항 행렬(transpose matrix)을 나타내며, 부분 행렬 T-1는 상기 부분 행렬 T의 역행렬(inverse matrix)를 나타낸다.
그러면 다음으로 도 17을 참조하여 상기 블록 LDPC 부호의 패러티 검사 행렬 설계 과정에 대해서 설명하기로 한다.
상기 도 17은 본 발명의 실시예에 따른 블록 LDPC 부호의 패러티 검사 행렬 생성 과정을 도시한 순서도이다.
상기 도 17을 설명하기에 앞서, 블록 LDPC 부호를 생성하기 위해서는 생성하고자하는 블록 LDPC 부호의 부호어(codeword) 크기와 부호화율(coding rate)을 결정하고, 상기 결정한 부호어 크기와 부호화율에 상응하게 패러티 검사 행렬의 크기를 결정해야만 한다. 상기 블록 LDPC 부호의 부호어 크기가 N이고, 부호화율을 R이라고 가정할 때 패러티 검사 행렬의 크기는 이 된다. 또한, 상기 도 17에 도시되어 있는 블록 LDPC 부호의 패러티 검사 행렬 생성 과정은 최초에 통신 시스템의 시스템 상황에 맞게 생성되고, 이후에는 상기 생성되어 있는 패러티 검사 행렬을 이용하는 것이므로, 실질적으로 상기 도 17의 패러티 검사 행렬 생성 과정은 1번만 수행되면 된다.
상기 도 17을 참조하면, 먼저 제어기(controller)는 1711단계에서 상기 크기 의 패러티 검사 행렬을 가로 축으로 m개의 블록들로 분할하고, 세로 축으로 n개의 블록들로 분할하여 총 mn개의 블록들로 분할한 후 1713단계로 진행한다. 여기서, 상기 블록들 각각의 크기는 이므로 상기 패러티 검사 행렬은 개의 행들과 개의 열들로 구성된다. 상기 1713단계에서 상기 제어기는 상기 mn개의 블록들로 분할한 패러티 검사 행렬을 정보 파트(s)와 패러티 파트, 즉 제1패러티 파트(p1)와 제2패러티 파트(p2)로 분류하고 1715단계 및 1721단계로 진행한다.
상기 1715단계에서 상기 제어기는 상기 정보 파트(s)를 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 0이 아닌 블록, 즉 0 행렬이 아닌 블록과 0인 블록, 즉 0 행렬인 블록을 결정하고 1717단계로 진행한다. 여기서, 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포는 상기에서 설명한 바와 같으므로 여기서는 그 상세한 설명을 생략하기로 한다. 상기 1717단계에서 상기 제어기는 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 결정한 블록들중 낮은 차수를 가지는 블록들중에서 0 행렬이 아닌 부분에 상기에서 설명한 바와 같이 블록 사이클의 최소 사이클 길이가 최대가 되도록 순열 행렬 을 결정하고 1719단계로 진행한다. 여기서, 상기 순열 행렬 을 결정할 때는 상기 정보 파트(s) 뿐만 아니라 상기 제1패러티 파트(p1)와 제2패러티 파트(p2)의 블록 사이클 역시 고려해서 결정해야만 한다.
상기 1719단계에서 상기 제어기는 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 결정한 블록들중 높은 차수를 가지는 블록들중에서 0 행렬이 아닌 부분에 랜덤하게 순열 행렬 을 결정하고 종료한다. 여기서, 상기 높은 차수를 가지는 블록들중 0 행렬이 아닌 부분에 적용할 순열 행렬 을 결정할 때 역시 블록 사이클의 최소 사이클 크기가 최대가 되도록 순열 행렬 을 결정해야만 하고, 또한 상기 정보 파트(s) 뿐만 아니라 상기 제1패러티 파트(p1)와 제2패러티 파트(p2)의 블록 사이클 역시 고려해서 결정해야만 한다. 상기와 같이 패러티 검사 행렬의 정보 파트(s)에 순열 행렬 을 배열한 형태가 도 16에 도시되어 있다.
한편, 상기 1721단계에서 상기 제어기는 상기 패러티 파트, 즉 제1패러티 파트(p1)와 제2패러티 파트(p2)를 4개의 부분 행렬들, 즉 부분 행렬 B와, 부분 행렬 T와, 부분 행렬 D 및 부분 행렬 E로 분할한 후 1723단계로 진행한다. 상기 1723단계에서 상기 제어기는 상기 부분 행렬 B를 구성하는 부분 블록들중 2개의 부분 블록들에 0이 아닌 순열 행렬 Py와 Pa1를 입력하고 1725단계로 진행한다. 여기서, 상기 부분 행렬 B를 구성하는 부분 블록들중 2개의 부분 블록들에 0이 아닌 순열 행렬 Py와 Pa1를 입력하는 구조는 이미 도 15에서 설명한 바가 있다.
상기 1725단계에서 상기 제어기는 상기 부분 행렬 T의 대각 부분 블록들에는 항등 행렬 I를 입력하고, 상기 부분 행렬 T의 대각 성분들 아래의 (i, i+1)번째 부분 블록들에는 임의의 순열 행렬 을 입력하고 1727단계로 진행한다. 여기서, 상기 부분 행렬 T의 대각 부분 블록들에는 항등 행렬 I를 입력하고, 상기 부분 행렬 T의 대각 성분들 아래의 (i, i+1)번째 부분 블록들에는 임의의 순열 행렬 을 입력하는 구조는 이미 도 15에서 설명한 바가 있다.
상기 1727단계에서 상기 제어기는 상기 부분 행렬 D에 순열 행렬 를 입력하고 1729단계로 진행한다. 상기 1729단계에서 상기 제어기는 상기 부분 행렬 E에는 마지막 부분 블록에만 를 입력하고 종료한다. 여기서, 상기 부분 행렬 E를 구성하는 부분 블록들중 마지막 부분 블록에 2개의 를 입력하는 구조는 이미 도 15에서 설명한 바가 있다.
한편, 상기 블록 LDPC 부호의 패러티 검사 행렬에서 부분 행렬 B와, 부분 행렬 D 및 부분 행렬 E를 적절하게 구성하면 상기 블록 LDPC 부호의 부호화 과정을 용이하게 제어할 수 있다. 그러면 여기서 상기 블록 LDPC 부호의 부호화 과정을 용이하도록 하기 위해서 상기 패러티 검사 행렬의 부분 행렬 B와, 부분 행렬 D 및 부분 행렬 E를 구성하는 과정에 대해서 설명하기로 한다.
먼저, 상기에서 설명한 바와 같이 상기 도 13의 패러티 검사 행렬을 도 14에서 설명한 바와 같은 부분 행렬로 분할할 경우 상기 도 15와 같이 생각할 수 있다.
그러면 여기서 부호어 벡터(vector) 를 상기 도 14와 같이 정보 파트(s)와, 제1패러티 파트(p1)와 제2패러티 파트(p2)로 분할하여 생각할 경우 상기 부호어 벡터(vector) 는 정보 벡터()와, 제1패러티 벡터()와, 제2패러티 벡터()로 분할하여 생각할 수 있고, 이 경우 상기 패러티 검사 행렬과 상기 부호어 벡터 의 곱은 하기 수학식 12 및 수학식 13과 같이 표현할 수 있다.
상기 수학식 12에서 T는 이항(transpose) 연산을 나타내며, 상기 수학식 13에서 제1패러티 벡터()와 연관된 부분, 즉 는 하기 수학식 14를 사용하여 구할 수 있다.
상기 수학식 14에서, 행렬 φ의 크기의 제곱에 비례하여 상기 블록 LDPC 부호의 부호화 복잡도가 발생되므로, 본 발명에서는 상기 제1패러티 벡터()를 구하기 위해 사용되는 상기 행렬 φ을 단위 행렬 I가 되도록 설정한다. 이렇게 상기 행렬 φ을 단위 행렬 I가 되도록 설정함으로써 상기 블록 LDPC 부호의 부호화 복잡도가 최소화된다. 그러면 여기서 상기 도 15를 참조하여 상기 행렬 φ을 단위 행렬 I가 되도록 설정하는 과정에 대해서 설명하기로 한다.
먼저, 순열 행렬 는 단위 행렬 I로 고정하기로 한다. 상기 도 15에서 설명한 부분 행렬 T-1의 부분 블록에서 부분은 행렬 에서 행렬 까지의 곱인 를 나타낸다. 그러면 상기 행렬 φ을 하기 수학식 15 내지 수학식 17을 통해 구할 수 있다.
먼저, 상기 도 15에서 부분 행렬 E는 하나의 부분 블록을 제외하고는 모두 0 행렬들이므로 상기 부분 행렬 E와 상기 부분 행렬 T의 역행렬인 T-1의 곱셈은 상기 부분 행렬 T의 역행렬인 T-1의 마지막 행과 상기 부분 행렬 E의 마지막 블록의 곱셈 형태로 하기 수학식 15와 같이 나타낼 수 있다.
또한, 상기 부분 행렬 E와 상기 부분 행렬 T의 역행렬인 T-1의 곱셈에 상기 부분 행렬 B를 곱하면 하기 수학식 16과 같이 나타낼 수 있다.
상기 수학식 16에 나타낸 바와 같이 상기 부분 행렬 E와 상기 부분 행렬 T의 역행렬인 T-1의 곱셈에 부분 행렬 B를 곱할 경우, 상기 부분 행렬 B가 2개의 부분 블록들을 제외하고는 모두 0 행렬들이므로 상기 부분 행렬 B의 2개의 블록들에 대해서만 곱셈 연산을 수행하면 되기 때문에 간단한 연산이 된다.
여기서, 이 되도록 설정하고, 가 되도록 설정하면, 의 관계가 성립하므로 상기 행렬 φ은 항등 행렬 I가 된다. 그리고 하기 수학식 17은 상기 행렬 φ이 항등 행렬 I가 되는 조건들을 간략하게 표현한 것이다.
상기 수학식 15 내지 수학식 17에서 설명한 바와 같이 상기 행렬 φ이 단위 행렬 I가 되도록 설정하면, 상기 블록 LDPC 부호의 부호화 과정은 그 복잡도가 최소화될 수 있다.
다음으로 도 18을 참조하여 본 발명에서 설계한 패러티 검사 행렬을 사용하여 블록 LDPC 부호를 부호화하는 과정을 설명하기로 한다.
상기 도 18은 본 발명의 실시예에 따른 블록 LDPC 부호의 부호화 과정을 도시한 순서도이다.
상기 도 18을 참조하면, 먼저 제어기는 1811단계에서 상기 블록 LDPC 부호로 부호화하기 위한 정보어 벡터()를 입력받고 1813단계 및 1815단계로 진행한다. 여기서, 상기 블록 LDPC 부호로 부호화하기 위해 입력받은 정보어 벡터()의 길이는 k라고 가정하기로 한다. 상기 1813단계에서 상기 제어기는 상기 입력받은 정보어 벡터()와 패러티 검사 행렬의 부분 행렬 A를 행렬 곱셈한 후() 1817단계로 진행한다. 여기서, 상기 부분 행렬 A에 존재하는 1의 값을 가지는 엘리먼트들의 개수는 0의 값을 가지는 엘리먼트들의 개수에 비해서 매우 적으므로 상기 정보어 벡터()와 패러티 검사 행렬의 부분 행렬 A의 행렬 곱셈은 비교적 적은 횟수의 합곱(sum-product) 연산만으로도 가능하게 된다. 또한, 상기 부분 행렬 A에서 1의 값을 가지는 엘리먼트들의 위치는 0이 아닌 블록의 위치와 그 블록의 순열 행렬의 지수승으로 나타낼 수 있으므로 임의의 패리티 검사 행렬에 비하여 매우 간단한 연산만으로도 행렬 곱셈을 수행할 수 있다. 또한, 상기 1815단계에서 상기 제어기는 상기 패러티 검사 행렬의 부분 행렬 C와 상기 정보어 벡터()의 행렬 곱셈을 수행하고() 1819단계로 진행한다.
한편, 상기 1817단계에서 상기 제어기는 상기 정보어 벡터()와 패러티 검사 행렬의 부분 행렬 A의 행렬 곱셈 결과와 행렬 ET-1의 행렬 곱셈을 수행하고() 1819단계로 진행한다. 여기서, 상기에서 설명한 바와 같이 상기 행렬 ET-1의 1의 값을 가지는 엘리먼트들의 개수는 매우 적기 때문에 블록의 순열 행렬의 지수승만 알게되면 상기 행렬 곱셈을 용이하게 수행할 수 있다. 상기 1819단계에서 상기 제어기는 상기 를 가산하여 제1패러티 파트 벡터()를 계산한 후() 1821단계로 진행한다. 여기서, 가산 연산은 배타적 가산(exclusive OR) 연산으로 동일한 비트가 가산될 때는 0이 되고 상이한 비트가 가산될 때는 1이 된다. 결국, 상기 1819단계까지의 과정은 상기 수학식 14에서 설명한 바와 같은 제1패러티 파트 벡터()를 계산하기 위한 과정인 것이다.
상기 1821단계에서 상기 제어기는 상기 패러티 검사 행렬의 부분 행렬 B와 상기 제1패러티 파트 벡터()를 곱셈한 후 를 가산한 후 1823단계로 진행한다. 여기서, 상기 수학식 12에서 설명한 바와 같이 정보어 벡터()와 제1패러티 파트 벡터()를 알면, 제2패러티 파트 벡터()를 구하기 위해 상기 패러티 검사 행렬의 부분 행렬 T의 역행렬 T-1을 행렬 곱해야하는 것을 알 수 있다. 따라서, 상기 1823단계에서 상기 제어기는 상기 제2패러티 파트 벡터()를 구하기 위해서 상기 1821단계에서 계산한 벡터에 상기 부분 행렬 T의 역행렬 T-1을 곱한 후()1825단계로 진행한다. 상기에서 설명한 바와 같이 부호화하고자 하는 블록 LDPC 부호의 정보어 벡터()만을 알면 제1패러티 파트 벡터()와, 제2패러티 파트 벡터()를 구할수 있고, 결과적으로 부호어 벡터 모두를 얻을 수 있는 것이다. 그리고, 상기 제어기는 1825단계에서 상기 정보어 벡터()와, 제1패러티 파트 벡터()와, 제2패러티 파트 벡터()로 생성된 부호어 벡터()를 생성하여 전송하고 종료한다.
다음으로 도 19를 참조하여 본 발명의 실시예에서의 기능을 수행하기 위한 블록 LDPC 부호의 부호화 장치 내부 구조를 설명하기로 한다.
상기 도 19는 본 발명의 실시예에서의 기능을 수행하기 위한 블록 LDPC 부호의 부호화 장치 내부 구조를 도시한 블록도이다.
상기 도 19를 참조하면, 상기 블록 LDPC 부호의 부호화 장치는 행렬 A 곱셈기(1911)와, 행렬 C 곱셈기(1913)와, 행렬 ET-1 곱셈기(1915)와, 가산기(1917)와, 행렬 B 곱셈기(1919)와, 가산기(1921)와, 행렬 ET-1 곱셈기(1923)와, 스위치(switch)들(1925, 1927, 1929)로 구성된다.
먼저, 입력 신호, 즉 블록 LDPC 부호로 부호화하고자 하는 길이 k의 정보어 벡터()가 입력되고, 상기 입력된 길이 k의 정보어 벡터()는 상기 스위치(1925)
와, 행렬 A 곱셈기(1911)와, 행렬 C 곱셈기(1913)로 입력된다. 상기 행렬 A 곱셈기(1911)는 상기 정보어 벡터()와 전체 패러티 검사 행렬의 부분 행렬 A를 곱한 후 행렬 ET-1 곱셈기(1915)와 상기 가산기(1921)로 출력한다. 또한, 상기 행렬 C 곱셈기(1913)는 상기 정보어 벡터()와 전체 패러티 검사 행렬의 부분 행렬 C를 곱한 후 상기 가산기(1917)로 출력한다. 상기 행렬 ET-1 곱셈기(1915)는 상기 행렬 A 곱셈기(1911)에서 출력한 신호에 전체 패러티 검사 행렬의 부분 행렬 ET-1를 곱한 후 상기 가산기(1917)로 출력한다.
상기 가산기(1917)는 상기 행렬 ET-1 곱셈기(1915)에서 출력한 신호와 상기 행렬 C 곱셈기(1913)에서 출력한 신호를 입력하여 가산한 후 상기 행렬 B 곱셈기(1919) 및 스위치(1927)로 출력한다. 여기서, 상기 가산기(1917)는 비트별로 배타적 논리합 연산을 수행한다. 일 예로, 길이 3인 벡터 x = (x1, x2, x3)와 길이 3인 벡터 y = (y1, y2, y3)가 상기 가산기(1917)로 입력될 경우, 상기 가산기(1917)는 상기 길이 3인 벡터 x = (x1, x2, x3)와 길이 3인 벡터 y = (y1 , y2, y3)를 배타적 논리합 연산하여 길이 3인 벡터 를 출력한다. 여기서, 상기 연산은 동일한 비트가 연산되면 0이 되고, 상이한 비트가 연산되면 1이 되는 배타적 논리합 연산을 나타낸다. 결국, 상기 가산기(1917)에서 출력하는 신호가 제1패러티 파트 벡터()가 되는 것이다.
또한, 상기 행렬 B 곱셈기(1919)는 상기 가산기(1917)에서 출력한 신호, 즉 제1패러티 파트 벡터()를 입력하여 상기 전체 패러티 검사 행렬의 부분 행렬 B를 곱한 후 상기 가산기(1921)로 출력한다. 상기 가산기(1921)는 상기 행렬 B 곱셈기(1919)에서 출력한 신호와 상기 행렬 A 곱셈기(1911)에서 출력한 신호를 가산한 후 상기 행렬 ET-1 곱셈기(1923)로 출력한다. 여기서, 상기 가산기(1921)는 상기 가산기(1917)에서 설명한 바와 같이 상기 행렬 B 곱셈기(1919)에서 출력한 신호와 상기 행렬 A 곱셈기(1911)에서 출력한 신호를 배타적 논리합 연산한 후 상기 행렬 ET-1 곱셈기(1923)로 출력하는 것이다.
상기 행렬 ET-1 곱셈기(1923)는 상기 가산기(1921)에서 출력한 신호와 상기 행렬 ET-1를 곱한 후 상기 스위치(1929)로 출력한다. 여기서, 상기 행렬 ET-1 곱셈기(1923)의 출력이 결국 제2패러티 파트 벡터()가 되는 것이다. 한편, 상기 스위치들(1925, 1927, 1929) 각각은 자신이 전송하는 시점에서만 스위칭 온(switching on)되어 해당 신호를 전송하도록 한다. 즉, 상기 정보어 벡터()가 전송되는 시점에서는 상기 스위치(1925)가 스위칭 온되고, 상기 제1패러티 파트 벡터()가 전송되는 시점에서는 상기 스위치(1927)가 스위칭 온되고, 상기 제2패러티 파트 벡터()가 전송되는 시점에서는 상기 스위치(1929)가 스위칭 온되는 것이다.
상기에서 설명한 바와 같이 전체 패러티 검사 행렬의 부분 행렬들을 적절하게 선택함으로써 상기 행렬 곱셈 ET-1이 비교적 간단한 형태를 가지게 되어, 를 계산하는 것이 용이해질 뿐만 아니라, 행렬 φ이 단위 행렬 I가 되어 를 계산하기 위한 φ-1의 연산 과정이 생략된다.
상기에서는 효율적인 부호화를 고려한 블록 LDPC 부호의 생성 방법에 대해서 설명하였다. 상기에서 설명한 바와 같이 블록 LDPC 부호는 블록 LDPC 부호의 구조적인 특성에 따라 패리티 검사 행렬에 관련된 정보를 저장하기 위한 메모리 효율이 뛰어날 뿐만 아니라, 패러티 검사 행렬에서 부분 행렬을 적절하게 선택함으로써 효율적인 부호화가 가능하게 된다. 그러나, 블록 단위로 패리티 검사 행렬을 생성함에 따라 불규칙성(randomness)은 감소하게 되고, 상기 불규칙성의 감소는 블록 LDPC 부호의 성능의 열화를 발생시킬 수 있다. 즉, 상기에서 설명한 바와 같이 불균일 블록 LDPC 부호가 균일 블록 LDPC 부호에 비해서 성능이 좋기 때문에, 블록 LDPC 부호를 설계함에 있어 전체 패러티 검사 행렬에서 부분 행렬을 선택하는 것은 매우 중요한 요소로 작용하게 된다.
그러면 여기서 도 16을 참조하여 상기 블록 LDPC 부호의 사이클 특성을 고려하여 효율적인 부호화가 가능하면서도 우수한 성능을 보이는 블록 LDPC 부호의 구체적인 생성 방법에 대해서 설명하기로 한다.
상기 도 16은 본 발명의 실시예에 따른 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면이다.
상기 도 16을 참조하면, 상기 블록 LDPC 부호의 패러티 검사 행렬은 구조의 단순성을 고려하여 상기에서 설명한 바와 같이 = I(i = 1, ... , m-1), 로 설정한다. 이 경우, 상기에서 설명한 바와 같이 φ행렬은 단위 행렬 I가 되어 효율적인 부호화가 가능하다. 여기서, 상기 패러티 검사 행렬의 부분 행렬의 블록 길이 Ns = 31이며, 따라서 P-1 = P30 이다. 상기 패러티 검사 행렬의 전체 열에 대한 블록들의 수는 32개이므로, 전체 블록 길이가 인 부호화율 1/2인 블록 LDPC 부호의 패러티 검사 행렬이 생성된다.
결과적으로, 상기 도 16에 도시되어 있는 블록 LDPC 부호는 상기 패러티 검사 행렬의 열을 기준으로 웨이트가 2인 15개의 블록들과, 웨이트가 3인 12개의 블록들과, 웨이트가 11인 5개의 블록들로 구성된 불균일 블록 LDPC 부호가 되는 것이다. 따라서, 상기 도 16에 도시되어 있는 블록 LDPC 부호의 차수 분포는 하기 수학식 18과 같이 나타낼 수 있다.
상기 수학식 18에서 fi는 상기 블록 LDPC 부호의 factor 그래프 상에서 전체 변수 노드들에 대한 차수가 i인 변수 노드들의 비율을 나타내며, fρi 상기 블록 LDPC 부호의 factor 그래프 상에서 전체 검사 노드들에 대한 차수가 i인 검사 노드들의 비율을 나타낸다. 일 예로, 블록 길이가 Ns = 32인 블록 LDPC 부호를 고려하면, 상기 블록 LDPC 부호의 factor 그래프 상에서 전체 32개의 변수 노드들중 15개의 변수 노드들에 해당하는 패러티 검사 행렬의 열이 웨이트 32를 가지고, 12개의 변수 노드들에 해당하는 패러티 검사 행렬의 열이 웨이트 3을 가지고, 5개의 변수 노드들에 해당하는 패러티 검사 행렬의 열이 웨이트 11을 가진다. 상기 변수 노드들 뿐만 아니라 상기 검사 노드들에 대항해는 패러티 검사 행렬에 대해서도 상기 변수 노드들에 대해서와 동일한 형태로 웨이트를 고려할 수 있다. 한편, 상기 수학식 18에서 나타낸 바와 같은 차수 분포는 Richardson 등이 제안한 임계값(threshold value)를 가지는 LDPC 부호의 차수 분포에 거의 근접한 형태를 가진다. 또한, 상기 도 16에 도시되어 있는 블록 LDPC 부호의 경우는 차수가 2, 3인 노드들 사이에 존재하는 사이클의 최소 크기가 12이며, 전체 노드들 사이의 경우는 최소 크기가 6이다.
다음으로 도 20을 참조하여 본 발명의 실시예에 따른 패러티 검사 행렬을 사용하여 블록 LDPC 부호를 복호화하는 과정에 대해서 설명하기로 한다.
상기 도 20은 본 발명의 실시예에서의 기능을 수행하는 블록 LDPC 부호의 복호화 장치 내부 구조를 도시한 도면이다.
상기 도 20을 참조하면, 상기 블록 LDPC 부호의 복호화 장치는 변수 노드 파트(2000)와, 가산기(2015)와, 디인터리버(de-interleaver)(2017)와, 인터리버(interleaver)(2019)와, 제어기(2021)와, 메모리(memory)(2023)와, 가산기(2025)와, 검사 노드 파트(2050)와, 경판정기(2029)로 구성된다. 상기 변수 노드 파트(2000)는 변수 노드 복호기(2011)와, 스위치(2013)로 구성되고, 상기 검사 노드 파트(2050)는 검사 노드 복호기(2027)로 구성된다.
먼저, 무선 채널을 통해 수신되는 수신 신호는 상기 변수 노드 파트(2000)의 변수 노드 복호기(2011)로 입력되며, 상기 변수 노드 복호기(2011)는 상기 입력된 수신 신호의 확률값들을 계산하고, 상기 계산된 확률값들을 업데이트(update)한 후 상기 스위치(2013) 및 상기 가산기(2015)로 출력한다. 여기서, 상기 변수 노드 복호기(2011)는 상기 블록 LDPC 부호의 복호화 장치에 미리 설정되어 있는 패러티 검사 행렬에 상응하게 변수 노드들을 연결하며, 상기 변수 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 변수 노드들 각각에 연결된 1의 개수는 상기 패러티 검사 행렬을 구성하는 열들 각각의 웨이트와 동일하다. 따라서, 상기 패러티 검사 행렬을 구성하는 열들 각각의 웨이트에 따라 상기 변수 노드 복호기(2011)의 내부 연산이 상이하게 된다.
상기 가산기(2015)는 상기 변수 노드 복호기(2011)에서 출력한 신호와 이전 반복 복호화(iteration decoing) 과정에서의 상기 인터리버(2019)의 출력 신호를 입력하고, 상기 변수 노드 복호기(2011)에서 출력한 신호에서 이전 반복 복호화 과정에서의 상기 인터리버(2019)의 출력 신호를 감산한 후 상기 디인터리버(2017)로 출력한다. 여기서, 상기 복호화 과정이 최초의 복호화 과정일 경우, 상기 인터리버(2019)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기 디인터리버(2017)는 상기 가산기(2015)에서 출력한 신호를 입력하여 미리 설정되어 있는 설정 방식에 상응하게 디인터리빙(de-interleaving)한 후 상기 가산기(2025)와 검사 노드 복호기(2027)로 출력한다. 여기서, 상기 디인터리버(2017)의 내부 구조는 상기 패러티 검사 행렬에 상응하는 구조를 가지며, 그 이유는 상기 패러티 검사 행렬의 1의 값을 가지는 엘리먼트들의 위치에 따라 상기 디인터리버(2017)에 대응하는 인터리버(2019)의 입력값에 대한 출력값이 상이해지기 때문이다.
상기 가산기는(2025)는 이전 반복 복호 과정에서의 상기 검사 노드 복호기(2027)의 출력 신호와 상기 디인터리버(2017)의 출력 신호를 입력하고, 상기 이전 반복 복호 과정에서의 상기 검사 노드 복호기(2027)의 출력 신호에서 상기 디인터리버(2017)의 출력 신호를 감산한 후 상기 인터리버(2019)로 출력한다. 상기 검사 노드 복호기(2027)는 상기 블록 LDPC 부호의 복호화 장치에 미리 설정되어 있는 패러티 검사 행렬에 상응하게 검사 노드들을 연결하며, 상기 검사 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 검사 노드들 각각에 연결된 1의 개수는 상기 패러티 검사 행렬을 구성하는 행들 각각의 웨이트와 동일하다. 따라서, 상기 패러티 검사 행렬을 구성하는 행들 각각의 웨이트에 따라 상기 검사 노드 복호기(2027)의 내부 연산이 상이하게 된다.
여기서, 상기 인터리버(2019)는 상기 제어기(2021)의 제어에 따라 미리 설정되어 있는 설정 방식으로 상기 가산기(2025)에서 출력한 신호를 인터리빙한 후 상기 가산기(2015) 및 상기 변수 노드 복호기(2011)로 출력한다. 여기서, 상기 제어기(2021)는 상기 메모리(2023)에 저장되어 있는 인터리빙 방식에 관련된 정보를 읽어 상기 인터리버(2019)의 인터리빙 방식을 제어하게 되는 것이다. 또한, 상기 복호화 과정이 최초의 복호화 과정일 경우에는 상기 디인터리버(2017)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기와 같은 과정들을 반복적으로 수행함으로써 오류 없이 신뢰도 높은 복호화를 수행하며, 미리 설정한 설정 반복 회수에 해당하는 반복 복호화를 수행한 후에는 상기 스위치(2013)은 상기 변수 노드 복호기(2011)과 가산기(2015)간을 스위칭 오프(switching off)한 후, 상기 변수 노드 복호기(2011)와 경판정기(2029)간을 스위칭 온하여 상기 변수 노드 복호기(2011)에서 출력한 신호가 상기 경판정기(2029)로 출력하도록 한다. 상기 경판정기(2029)은 상기 변수 노드복호기(2011)에서 출력한 신호를 입력하여 경판정한 후, 그 경판정 결과를 출력하게 되고, 상기 경판정기(2029)의 출력값이 최종적으로 복호화된 값이 되는 것이다.
상술한 바와 같은 본 발명은 이동 통신 시스템에서 최소 사이클 길이가 최대가 되는 블록 LDPC 부호를 제안함으로써 오류 정정 능력을 최대화시켜 시스템 성능을 향상시킨다는 이점을 가진다. 또한, 본 발명은 효율적인 패러티 검사 행렬을 생성함으로써 블록 LDPC 부호의 부호화 복잡도를 최소화시킨다는 이점을 가진다.
도 1은 일반적인 (8, 2, 4) LDPC 부호의 패러티 검사 행렬을 도시한 도면
도 2는 도 1의 (8, 2, 4) LDPC 부호의 factor 그래프를 도시한 도면
도 3은 일반적인 블록 LDPC 부호의 패러티 검사 행렬을 개략적으로 도시한 도면
도 4는 도 3의 순환 행렬 P를 도시한 도면
도 5는 일반적인 균일 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면
도 6은 일반적인 불균일 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면
도 7은 패러티 검사 행렬이 4개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면
도 8은 패러티 검사 행렬이 6개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면
도 9는 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면
도 10은 패러티 검사 행렬의 6개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면
도 11은 패러티 검사 행렬의 7개의 부분 행렬이 중복된 블록 LDPC 부호의 블록 사이클 구조를 개략적으로 도시한 도면
도 12는 완전 하삼각 행렬 형태를 가지는 패러티 검사 행렬을 도시한 도면
도 13은 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패러티 검사 행렬을 도시한 도면
도 14는 도 13의 패러티 검사 행렬을 6개의 부분 블록들로 분할한 도면
도 15는 도 14의 부분 행렬 B의 이항 행렬과, 부분 행렬 E와, 부분 행렬 T와, 부분 행렬 T의 역행렬을 도시한 도면
도 16은 본 발명의 실시예에 따른 블록 LDPC 부호의 패러티 검사 행렬을 도시한 도면
도 17은 본 발명의 실시예에 따른 블록 LDPC 부호의 패러티 검사 행렬 생성 과정을 도시한 순서도
도 18은 본 발명의 실시예에 따른 블록 LDPC 부호의 부호화 과정을 도시한 순서도
도 19는 본 발명의 실시예에서의 기능을 수행하기 위한 블록 LDPC 부호의 부호화 장치 내부 구조를 도시한 블록도
도 20은 본 발명의 실시예에서의 기능을 수행하는 블록 LDPC 부호의 복호화 장치 내부 구조를 도시한 도면

Claims (32)

  1. 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는, 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 패러티 검사 행렬을 생성하는 방법에 있어서,
    상기 정보어를 상기 LDPC 부호로 부호화시 적용되는 부호화율과, 부호어 길이에 대응하도록 패러티 검사 행렬의 크기를 결정하는 과정과,
    상기 결정된 크기의 패러티 검사 행렬을 미리 설정된 설정 개수의 블록들로 분할하는 과정과,
    상기 설정 개수의 블록들을 상기 정보 파트와 제1패러티 파트 및 제2패러티 파트로 분류하는 과정과,
    상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과,
    상기 정보 파트로 분류된 블록들에 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  2. 제1항에 있어서,
    상기 정보 파트로 분류된 블록들에 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정은;
    상기 정보 파트로 분류된 블록들중 상기 순열 행렬들이 배열될 블록들을 결정하는 과정과,
    상기 순열 행렬들이 배열되도록 결정된 블록들중 미리 설정한 차수 미만의 차수를 가지는 블록들에 대해서는 상기 최소 사이클 길이가 최대가 되도록 상기 순열 행렬들을 배열하는 과정과,
    상기 순열 행렬들이 배열되도록 결정된 블록들중 상기 설정한 차수 이상의 차수를 가지는 블록들에 대해서는 랜덤하게 상기 순열 행렬들을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  3. 제1항에 있어서,
    상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정은;
    상기 제1패러티 파트를 제1부분 블록과 제2부분 블록으로 분할하고, 상기 제2패러티 파트를 제3부분 블록과 제4부분 블록으로 분할하는 과정과,
    상기 제1부분 블록 및 제2부분 블록의 미리 결정된 블록들에 상기 순열 행렬들을 배열하는 과정과,
    상기 제3부분 블록의 미리 결정된 블록들에 상기 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과,
    상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  4. 제3항에 있어서,
    상기 제3부분 블록의 미리 결정된 블록들은 상기 제3부분 블록의 블록들중 대각을 구성하는 블록들임을 특징으로 하는 상기 방법.
  5. 제3항에 있어서,
    상기 제3부분 블록의 상기 항등 행렬들이 배열된 블록들과 평행한 하향 블록들에 상기 순열 행렬들을 배열하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  6. 제3항에 있어서,
    상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  7. 제6항에 있어서,
    상기 제4부분 블록의 미리 결정된 블록은 상기 제4부분 블록의 블록들중 마지막 블록임을 특징으로 하는 상기 방법.
  8. 제3항에 있어서,
    상기 제4부분 블록에 배열된 순열 행렬들과, 상기 제3부분 블록에 배열된 순열 행렬들의 역행렬들과, 상기 제1부분 블록에 배열된 순열 행렬들의 행렬곱과 상기 제2부분 블록에 배열된 순열 행렬들을 가산한 행렬이 항등행렬이 되도록 상기 순열 행렬들을 결정함을 특징으로 하는 상기 방법.
  9. 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 복호 장치에 있어서,
    소정 제어에 따라 상기 패러티 검사 행렬을 구성하는 열들 각각의 웨이트에 상응하게 변수 노드들을 연결하여 수신 신호의 확률값들을 검출하여 출력하는 변수 노드 복호기와,
    상기 변수 노드 복호기에서 출력한 신호에서 이전 복호시 생성된 신호를 감산하여 출력하는 제1가산기와,
    상기 제1가산기에서 출력한 신호를 입력하여 상기 패러티 검사 행렬에 상응하게 설정된 디인터리빙 방식으로 디인터리빙하여 출력하는 디인터리버와,
    소정 제어에 따라 상기 패러티 검사 행렬을 구성하는 행들 각각의 웨이트에 상응하게 검사 노드들을 연결하여 상기 디인터리버에서 출력한 신호의 확률값들을 검출하여 출력하는 검사 노드 복호기와,
    상기 검사 노드 복호기에서 출력한 신호에서 상기 디인터리버에서 출력한 신호를 감산하는 제2가산기와,
    상기 제2가산기에서 출력한 신호를 상기 패러티 검사 행렬에 상응하게 설정된 인터리빙 방식으로 인터리빙하여 상기 변소 노드 복호기 및 상기 제1가산기로 출력하는 인터리버와,
    상기 패러티 검사 행렬을 생성하고, 상기 디인터리빙 방식 및 인터리빙 방식을 상기 패러티 검사 행렬에 상응하게 제어하는 제어기를 포함함을 특징으로 하는 상기 장치.
  10. 제9항에 있어서,
    상기 제어기는 상기 정보어를 상기 LDPC 부호로 부호화시 적용되는 부호화율과, 부호어 길이에 대응하도록 패러티 검사 행렬의 크기를 결정하고, 상기 결정된 크기의 패러티 검사 행렬을 미리 설정된 설정 개수의 블록들로 분할하고, 상기 설정 개수의 블록들을 상기 정보 파트와 제1패러티 파트 및 제2패러티 파트로 분류하고, 상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열한 후, 상기 정보 파트로 분류된 블록들에 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열하여 상기 패러티 검사 행렬을 생성함을 특징으로 하는 상기 장치.
  11. 제10항에 있어서,
    상기 제어기는 상기 정보 파트로 분류된 블록들중 상기 순열 행렬들이 배열될 블록들을 결정하고, 상기 순열 행렬들이 배열되도록 결정된 블록들중 미리 설정한 차수 미만의 차수를 가지는 블록들에 대해서는 상기 최소 사이클 길이가 최대가 되도록 상기 순열 행렬들을 배열한 후, 상기 순열 행렬들이 배열되도록 결정된 블록들중 상기 설정한 차수 이상의 차수를 가지는 블록들에 대해서는 랜덤하게 상기 순열 행렬들을 배열함을 특징으로 하는 상기 장치.
  12. 제10항에 있어서,
    상기 제어기는 상기 제1패러티 파트를 제1부분 블록과 제2부분 블록으로 분할하고, 상기 제2패러티 파트를 제3부분 블록과 제4부분 블록으로 분할하고, 상기 제1부분 블록 및 제2부분 블록의 미리 결정된 블록들에 상기 순열 행렬들을 배열하고, 상기 제3부분 블록의 미리 결정된 블록들에 상기 완전 하삼각 형태로 항등 행렬들을 배열한 후 상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열함을 특징으로 하는 상기 장치.
  13. 제12항에 있어서,
    상기 제어기는 상기 제3부분 블록의 블록들중 대각을 구성하는 블록들에 상기 항등 행렬들을 배열함을 특징으로 하는 상기 장치.
  14. 제12항에 있어서,
    상기 제어기는 상기 제3부분 블록의 상기 항등 행렬들이 배열된 블록들과 평행한 하향 블록들에 상기 순열 행렬들을 배열함을 특징으로 하는 상기 장치.
  15. 제12항에 있어서,
    상기 제어기는 상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열함을 특징으로 하는 상기 장치.
  16. 제17항에 있어서,
    상기 제어기는 상기 제4부분 블록의 블록들중 마지막 블록에 상기 순열 행렬을 배열함을 특징으로 하는 상기 장치.
  17. 제12항에 있어서,
    상기 제어기는 상기 제4부분 블록에 배열된 순열 행렬들과, 상기 제3부분 블록에 배열된 순열 행렬들의 역행렬들과, 상기 제1부분 블록에 배열된 순열 행렬들의 행렬곱과 상기 제2부분 블록에 배열된 순열 행렬들을 가산한 행렬이 항등행렬이 되도록 상기 순열 행렬들을 결정함을 특징으로 하는 상기 장치.
  18. 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 복호 방법에 있어서,
    상기 패러티 검사 행렬을 생성하고, 상기 패러티 검사 행렬에 상응하게 디인터리빙 방식 및 인터리빙 방식을 결정하는 과정과,
    수신 신호의 확률값들을 검출하는 과정과,
    상기 수신 신호의 확률값들에서 이전 복호시 생성된 신호를 감산하여 제1신호를 생성하는 과정과,
    상기 제1신호를 입력하여 상기 디인터리빙 방식으로 디인터리빙하는 과정과,
    상기 디인터리빙된 신호를 입력하여 확률값들을 검출하는 과정과,
    상기 디인터리빙된 신호의 확률값들에서 상기 디인터리빙된 신호를 감산하여 제2신호를 생성하는 과정과,
    상기 제2신호를 상기 인터리빙 방식으로 인터리빙하고, 상기 인터리빙된 신호를 반복 복호하는 과정을 포함함을 특징으로 하는 상기 방법.
  19. 제18항에 있어서,
    상기 패러티 검사 행렬을 생성하는 과정은;
    상기 정보어를 상기 LDPC 부호로 부호화시 적용되는 부호화율과, 부호어 길이에 대응하도록 패러티 검사 행렬의 크기를 결정하는 과정과,
    상기 결정된 크기의 패러티 검사 행렬을 미리 설정된 설정 개수의 블록들로 분할하는 과정과,
    상기 설정 개수의 블록들을 상기 정보 파트와 제1패러티 파트 및 제2패러티 파트로 분류하는 과정과,
    상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과,
    상기 정보 파트로 분류된 블록들에 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  20. 제19항에 있어서,
    상기 정보 파트로 분류된 블록들에 웨이트가 불균등하도록 상기 순열 행렬들을 배열하는 과정은;
    상기 정보 파트로 분류된 블록들중 상기 순열 행렬들이 배열될 블록들을 결정하는 과정과,
    상기 순열 행렬들이 배열되도록 결정된 블록들중 미리 설정한 차수 미만의 차수를 가지는 블록들에 대해서는 상기 최소 사이클 길이가 최대가 되도록 상기 순열 행렬들을 배열하는 과정과,
    상기 순열 행렬들이 배열되도록 결정된 블록들중 상기 설정한 차수 이상의 차수를 가지는 블록들에 대해서는 랜덤하게 상기 순열 행렬들을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  21. 제19항에 있어서,
    상기 제1패러티 파트로 분류된 블록들중 미리 결정된 블록들에 순열 행렬들을 배열하고, 상기 제2패러티 파트로 분류된 블록들중 미리 결정된 블록들에 완전 하삼각 형태로 항등 행렬들을 배열하는 과정은;
    상기 제1패러티 파트를 제1부분 블록과 제2부분 블록으로 분할하고, 상기 제2패러티 파트를 제3부분 블록과 제4부분 블록으로 분할하는 과정과,
    상기 제1부분 블록 및 제2부분 블록의 미리 결정된 블록들에 상기 순열 행렬들을 배열하는 과정과,
    상기 제3부분 블록의 미리 결정된 블록들에 상기 완전 하삼각 형태로 항등 행렬들을 배열하는 과정과,
    상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  22. 제21항에 있어서,
    상기 제3부분 블록의 미리 결정된 블록들은 상기 제3부분 블록의 블록들중 대각을 구성하는 블록들임을 특징으로 하는 상기 방법.
  23. 제21항에 있어서,
    상기 제3부분 블록의 상기 항등 행렬들이 배열된 블록들과 평행한 하향 블록들에 상기 순열 행렬들을 배열하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  24. 제21항에 있어서,
    상기 제4부분 블록의 미리 결정된 블록에 상기 순열 행렬을 배열하는 과정을 포함함을 특징으로 하는 상기 방법.
  25. 제24항에 있어서,
    상기 제4부분 블록의 미리 결정된 블록은 상기 제4부분 블록의 블록들중 마지막 블록임을 특징으로 하는 상기 방법.
  26. 제21항에 있어서,
    상기 제4부분 블록에 배열된 순열 행렬들과, 상기 제3부분 블록에 배열된 순열 행렬들의 역행렬들과, 상기 제1부분 블록에 배열된 순열 행렬들의 행렬곱과 상기 제2부분 블록에 배열된 순열 행렬들을 가산한 행렬이 항등행렬이 되도록 상기 순열 행렬들을 결정함을 특징으로 하는 상기 방법.
  27. 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 부호화 장치에 있어서,
    정보어를 입력하여 미리 생성되어 있는 상기 패러티 검사 행렬의 제1부분 행렬과 곱셈하는 제1행렬 곱셈기와,
    상기 정보어를 입력하여 상기 패러티 검사 행렬의 제2부분 행렬과 곱셈하는 제2행렬 곱셈기와,
    상기 제1행렬 곱셈기에서 출력한 신호와, 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제3행렬 곱셈기와,
    상기 제2행렬 곱셈기에서 출력한 신호와 제3행렬 곱셈기에서 출력한 신호를 가산하는 제1가산기와,
    상기 제1가산기에서 출력한 신호와 상기 패러티 검사 행렬의 제5부분 행렬과 곱셈하는 제4행렬 곱셈기와,
    상기 제2행렬 곱셈기에서 출력한 신호와 상기 제4행렬 곱셈기에서 출력한 신호를 가산하는 제2가산기와,
    상기 제2가산기에서 출력한 신호와 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제5행렬 곱셈기와,
    상기 정보어와, 상기 제1가산기의 출력 신호를 제1패러티로, 상기 제5행렬 곱셈기의 출력 신호를 제2패러티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 스위치들을 포함함을 특징으로 하는 상기 장치.
  28. 제27항에 있어서,
    상기 제1부분 행렬 및 제2부분 행렬은 상기 정보 파트에 매핑되는 부분 행렬들이며, 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열된 행렬들임을 특징으로 하는 상기 장치.
  29. 제27항에 있어서,
    상기 제3부분 행렬과 제4부분 행렬은 상기 제1패러티 파트에 매핑되는 부분 행렬들이며, 상기 제5부분 행렬과 제6부분 행렬은 상기 제2패러티 파트에 매핑되는 부분 행렬들이며, 상기 제3부분 행렬과 제4부분 행렬은 미리 결정된 위치에 순열 행렬들이 배열된 행렬들이며, 상기 제5부분 행렬은 완전 하삼각 형태로 항등 행렬들이 배열된 행렬임을 특징으로 하는 상기 장치.
  30. 정보어와 매핑되는 정보 파트와, 패러티와 매핑되는 제1패러티 파트 및 제2패러티 파트로 구성되는 패러티 검사 행렬을 가지는 블록 저밀도 패러티 검사(LDPC: Low Density Parity Check) 부호의 부호화 방법에 있어서,
    정보어와 미리 생성되어 있는 상기 패러티 검사 행렬의 제1부분 행렬과 곱셈하여 제1신호를 생성하는 과정과,
    상기 정보어와 상기 패러티 검사 행렬의 제2부분 행렬과 곱셈하여 제2신호를 생성하는 과정과,
    상기 제1신호와, 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제3신호를 생성하는 과정과,
    상기 제2신호와 제3신호를 가산하여 제4신호를 생성하는 과정과,
    상기 제4신호와 상기 패러티 검사 행렬의 제5부분 행렬을 곱셈하여 제5신호를 생성하는 과정과,
    상기 제2신호와 상기 제5신호를 가산하여 제6신호를 생성하는 과정과,
    상기 제6신호와 상기 패러티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제7신호를 생성하는 과정과,
    상기 정보어와, 상기 제4신호를 제1패러티로, 상기 제7신호를 제2패러티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 과정을 포함함을 특징으로 하는 상기 방법.
  31. 제30항에 있어서,
    상기 제1부분 행렬 및 제2부분 행렬은 상기 정보 파트에 매핑되는 부분 행렬들이며, 상기 블록 LDPC 부호의 팩터 그래프상의 최소 사이클 길이가 최대가 되고, 웨이트가 불균등하도록 상기 순열 행렬들을 배열된 행렬들임을 특징으로 하는 상기 방법.
  32. 제30항에 있어서,
    상기 제3부분 행렬과 제4부분 행렬은 상기 제1패러티 파트에 매핑되는 부분 행렬들이며, 상기 제5부분 행렬과 제6부분 행렬은 상기 제2패러티 파트에 매핑되는 부분 행렬들이며, 상기 제3부분 행렬과 제4부분 행렬은 미리 결정된 위치에 순열 행렬들이 배열된 행렬들이며, 상기 제5부분 행렬은 완전 하삼각 형태로 항등 행렬들이 배열된 행렬임을 특징으로 하는 상기 방법.
KR1020030059206A 2003-08-26 2003-08-26 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 KR100809619B1 (ko)

Priority Applications (14)

Application Number Priority Date Filing Date Title
KR1020030059206A KR100809619B1 (ko) 2003-08-26 2003-08-26 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
EP04020337.4A EP1511177B1 (en) 2003-08-26 2004-08-26 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
AU2004302428A AU2004302428B2 (en) 2003-08-26 2004-08-26 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
CN2004800236822A CN1836394B (zh) 2003-08-26 2004-08-26 在移动通信系统中编码/解码分块低密度奇偶校验码的装置和方法
PCT/KR2004/002144 WO2005020500A1 (en) 2003-08-26 2004-08-26 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
CN201110074657.9A CN102164022B (zh) 2003-08-26 2004-08-26 处理分块低密度奇偶校验码的系统和方法
CA2531806A CA2531806C (en) 2003-08-26 2004-08-26 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
RU2006109470/09A RU2316111C2 (ru) 2003-08-26 2004-08-26 Устройство и способ кодирования-декодирования блоковых кодов низкой плотности с контролем на четность в системе мобильной связи
US10/926,932 US7313752B2 (en) 2003-08-26 2004-08-26 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
JP2006524576A JP4160617B2 (ja) 2003-08-26 2004-08-26 移動通信システムにおけるブロック低密度パリティ検査符号の符号化/復号化装置及び方法
US11/831,688 US7962828B2 (en) 2003-08-26 2007-07-31 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
JP2008044898A JP5219552B2 (ja) 2003-08-26 2008-02-26 移動通信システムにおけるブロック低密度パリティ検査符号の符号化/復号化装置及び方法
US13/047,471 US8719683B2 (en) 2003-08-26 2011-03-14 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
US14/256,288 US9319068B2 (en) 2003-08-26 2014-04-18 Apparatus and method for coding/decoding block low density parity check code in a mobile communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030059206A KR100809619B1 (ko) 2003-08-26 2003-08-26 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050021108A true KR20050021108A (ko) 2005-03-07
KR100809619B1 KR100809619B1 (ko) 2008-03-05

Family

ID=36830604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030059206A KR100809619B1 (ko) 2003-08-26 2003-08-26 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법

Country Status (9)

Country Link
US (4) US7313752B2 (ko)
EP (1) EP1511177B1 (ko)
JP (2) JP4160617B2 (ko)
KR (1) KR100809619B1 (ko)
CN (2) CN1836394B (ko)
AU (1) AU2004302428B2 (ko)
CA (1) CA2531806C (ko)
RU (1) RU2316111C2 (ko)
WO (1) WO2005020500A1 (ko)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100612047B1 (ko) * 2004-09-09 2006-08-14 한국전자통신연구원 성장 네트워크 모델을 이용한 엘디피시 부호의 형성방법
KR100678175B1 (ko) * 2004-08-16 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678176B1 (ko) * 2004-04-28 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100739510B1 (ko) * 2004-06-16 2007-07-13 포항공과대학교 산학협력단 반구조적 블록 저밀도 패리티 검사 부호 부호화/복호 장치및 방법
KR100809616B1 (ko) * 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
KR100941680B1 (ko) * 2005-07-01 2010-02-12 삼성전자주식회사 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR100949519B1 (ko) * 2007-12-18 2010-03-24 한국전자통신연구원 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
KR100975696B1 (ko) * 2007-04-05 2010-08-12 삼성전자주식회사 통신 시스템에서 부호화 장치 및 방법
KR101154995B1 (ko) * 2006-07-14 2012-06-15 엘지전자 주식회사 Ldpc 부호화를 수행하는 방법
KR20120079922A (ko) * 2011-01-06 2012-07-16 삼성전자주식회사 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서의 채널 부호화/복호화 방법 및 장치
KR101433375B1 (ko) * 2006-12-04 2014-08-29 삼성전자주식회사 통신 시스템에서 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR101445080B1 (ko) * 2008-02-12 2014-09-29 삼성전자 주식회사 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치
KR101447751B1 (ko) * 2007-11-19 2014-10-13 삼성전자주식회사 블록 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서패리티 검사 행렬 생성 장치 및 방법
CN110391816A (zh) * 2018-04-18 2019-10-29 爱思开海力士有限公司 错误校正电路及包括错误校正电路的存储器系统

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR101009785B1 (ko) * 2003-12-10 2011-01-19 삼성전자주식회사 불균일 반복 축적 부호 부호화/복호화 장치 및 방법
CN101924565B (zh) * 2004-04-02 2014-10-15 苹果公司 Ldpc编码器、解码器、系统及方法
US7171603B2 (en) * 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
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
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7346832B2 (en) * 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
US7458010B2 (en) * 2004-08-05 2008-11-25 Nokia Corporation Irregularly structured, low density parity check codes
US7143333B2 (en) * 2004-08-09 2006-11-28 Motorola, Inc. Method and apparatus for encoding and decoding data
WO2006016751A2 (en) * 2004-08-09 2006-02-16 Lg Electronics Inc. Method of encoding and decoding using low density parity check matrix
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
KR100684168B1 (ko) * 2004-12-09 2007-02-20 한국전자통신연구원 최적붙임방법을 이용한 다중 부호율 ldpc 부호의디자인 방법
JP4820368B2 (ja) * 2004-09-17 2011-11-24 エルジー エレクトロニクス インコーポレイティド Ldpcコードを用いた符号化及び復号化方法
KR101065693B1 (ko) * 2004-09-17 2011-09-19 엘지전자 주식회사 Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법
CN101032084B (zh) * 2004-10-01 2010-05-05 汤姆逊许可公司 用于接收器的方法和设备
US7752521B2 (en) * 2004-10-12 2010-07-06 Nortel Networks Limited Low density parity check (LDPC) code
US7996746B2 (en) 2004-10-12 2011-08-09 Nortel Networks Limited Structured low-density parity-check (LDPC) code
KR100913876B1 (ko) * 2004-12-01 2009-08-26 삼성전자주식회사 저밀도 패리티 검사 부호의 생성 방법 및 장치
WO2006068435A2 (en) * 2004-12-22 2006-06-29 Lg Electronics Inc. Apparatus and method for decoding using channel code
CN100486150C (zh) * 2005-01-23 2009-05-06 中兴通讯股份有限公司 基于非正则低密度奇偶校验码的编译码器及其生成方法
KR20060097503A (ko) 2005-03-11 2006-09-14 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널인터리빙/디인터리빙 장치 및 그 제어 방법
KR20060108959A (ko) 2005-04-13 2006-10-19 삼성전자주식회사 블록단위의 저밀도 패리티 체크 행렬 생성 방법 및 장치와그 기록매체
US8010870B2 (en) * 2005-04-25 2011-08-30 Sony Corporation Coding apparatus and coding method
KR101042747B1 (ko) 2005-06-21 2011-06-20 삼성전자주식회사 구조적 저밀도 패리티 검사 부호를 사용하는 통신시스템에서 데이터 송수신 장치 및 방법
US7499490B2 (en) * 2005-06-24 2009-03-03 California Institute Of Technology Encoders for block-circulant LDPC codes
KR20060135451A (ko) * 2005-06-25 2006-12-29 삼성전자주식회사 저밀도 패리티 검사 행렬 부호화 방법 및 장치
US7657816B2 (en) * 2005-07-13 2010-02-02 Leanics Corporation Low-complexity hybrid LDPC code encoder
US7559008B1 (en) * 2005-10-03 2009-07-07 Maxtor Corporation Nested LDPC encoders and decoder
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
KR20070063851A (ko) 2005-12-15 2007-06-20 삼성전자주식회사 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치
WO2007075043A2 (en) * 2005-12-27 2007-07-05 Lg Electronics Inc. Methods and apparatuses for decoding or encoding using channel code or ldpc
WO2007075106A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Fast low-density parity-check code encoder
CN100438394C (zh) * 2006-01-12 2008-11-26 北京大学 非规则置换矩阵ldpc码的构造方法及装置
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
US20070198905A1 (en) * 2006-02-03 2007-08-23 Nokia Corporation Transmitter for a communications network
KR100933139B1 (ko) 2006-02-22 2009-12-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7657821B1 (en) * 2006-05-09 2010-02-02 Cisco Technology, Inc. Error detecting code for multi-character, multi-lane, multi-level physical transmission
EP1868294B1 (en) 2006-06-15 2011-08-03 Samsung Electronics Co., Ltd. Apparatus and method of encoding/decoding block low density parity check codes in a communication system
JP4856605B2 (ja) * 2006-08-31 2012-01-18 パナソニック株式会社 符号化方法、符号化装置、及び送信装置
CA2663235A1 (en) * 2006-09-22 2008-03-27 Mcgill University Stochastic decoding of ldpc codes
KR101311634B1 (ko) * 2006-10-09 2013-09-26 엘지전자 주식회사 무선 통신 시스템의 부호어 생성 방법
US8271851B2 (en) 2006-11-13 2012-09-18 France Telecom Encoding and decoding a data signal as a function of a correcting code
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US7913149B2 (en) * 2006-12-20 2011-03-22 Lsi Corporation Low complexity LDPC encoding algorithm
KR101280477B1 (ko) * 2007-01-24 2013-07-01 퀄컴 인코포레이티드 가변 크기들의 패킷들의 ldpc 인코딩 및 디코딩
US8261155B2 (en) * 2007-03-09 2012-09-04 Qualcomm Incorporated Methods and apparatus for encoding and decoding low density parity check (LDPC) codes
JP4788650B2 (ja) * 2007-04-27 2011-10-05 ソニー株式会社 Ldpc復号装置およびその復号方法、並びにプログラム
KR20080102902A (ko) * 2007-05-22 2008-11-26 삼성전자주식회사 가변 부호화율을 가지는 ldpc 부호 설계 방법, 장치 및그 정보 저장 매체
US8117523B2 (en) * 2007-05-23 2012-02-14 California Institute Of Technology Rate-compatible protograph LDPC code families with linear minimum distance
TW200906073A (en) * 2007-07-31 2009-02-01 Univ Nat Chiao Tung Calculation method applied to Low Density Parity check Code (LDPC) decoder and circuit thereof
US8196010B1 (en) 2007-08-17 2012-06-05 Marvell International, Ltd. Generic encoder for low-density parity-check (LDPC) codes
JP4487212B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム
US8301963B2 (en) * 2007-10-23 2012-10-30 Spansion Llc Low-density parity-check code based error correction for memory device
US8219876B2 (en) 2007-10-24 2012-07-10 Core Wireless Licensing, S.a.r.l. Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
TWI390856B (zh) * 2007-11-26 2013-03-21 Sony Corp Data processing device and data processing method
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
KR101502624B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
EP2230767A4 (en) 2007-12-13 2012-02-22 Nec Corp DECODING DEVICE, DATA STORAGE DEVICE, DATA COMMUNICATION SYSTEM, AND DECODING METHOD
PT2093887E (pt) * 2008-02-18 2013-11-25 Postech Acad Ind Found Aparelho e método para a codificação e descodificação de canal num sistema de comunicação utilizando códigos de verificação de paridade de densidade esparsa
KR101503058B1 (ko) 2008-02-26 2015-03-18 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서의 채널 부호화/복호화 방법 및 장치
CN101272223B (zh) * 2008-04-30 2011-04-20 中兴通讯股份有限公司 一种低密度生成矩阵码的译码方法及装置
CN101286819B (zh) * 2008-05-07 2010-05-12 中兴通讯股份有限公司 一种数据接收方法及装置
KR20090117580A (ko) 2008-05-08 2009-11-12 엘지전자 주식회사 부호어의 생성 방법
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
CN102077471B (zh) * 2008-07-04 2014-03-12 三菱电机株式会社 校验矩阵生成装置、校验矩阵生成方法、校验矩阵生成程序、发送装置、接收装置以及通信系统
US8108760B2 (en) * 2008-07-15 2012-01-31 The Royal Institute For The Advancement Of Learning/Mcgill University Decoding of linear codes with parity check matrix
US8443033B2 (en) * 2008-08-04 2013-05-14 Lsi Corporation Variable node processing unit
CN101686061A (zh) * 2008-09-27 2010-03-31 松下电器产业株式会社 构造低密度奇偶校验码的方法及发送/接收装置和系统
JP5320964B2 (ja) * 2008-10-08 2013-10-23 ソニー株式会社 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム
US8612823B2 (en) * 2008-10-17 2013-12-17 Intel Corporation Encoding of LDPC codes using sub-matrices of a low density parity check matrix
TWI383617B (zh) * 2008-10-31 2013-01-21 Ind Tech Res Inst 具排列架構之無線通訊方法及系統
CN101442318B (zh) * 2008-11-06 2012-04-25 上海交通大学 基于近似下三角结构校验矩阵的低时延ira码编码器
US8719655B2 (en) 2009-02-06 2014-05-06 Marvell Hispania S.L. Method and device for communicating data across noisy media
JP4898858B2 (ja) * 2009-03-02 2012-03-21 パナソニック株式会社 符号化器、復号化器及び符号化方法
JP5344228B2 (ja) * 2009-03-26 2013-11-20 ソニー株式会社 受信装置及び方法、プログラム、並びに受信システム
US8407555B2 (en) 2009-03-30 2013-03-26 Broadcom Corporation LDPC codes robust to non-stationary narrowband ingress noise
US8464123B2 (en) * 2009-05-07 2013-06-11 Ramot At Tel Aviv University Ltd. Matrix structure for block encoding
TWI427936B (zh) * 2009-05-29 2014-02-21 Sony Corp 接收設備,接收方法,程式,及接收系統
US8677209B2 (en) * 2009-11-19 2014-03-18 Lsi Corporation Subwords coding using different encoding/decoding matrices
US8352847B2 (en) * 2009-12-02 2013-01-08 Lsi Corporation Matrix vector multiplication for error-correction encoding and the like
US8448041B1 (en) * 2010-02-01 2013-05-21 Sk Hynix Memory Solutions Inc. Multistage LDPC encoding
US8572463B2 (en) * 2010-02-01 2013-10-29 Sk Hynix Memory Solutions Inc. Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8443257B1 (en) 2010-02-01 2013-05-14 Sk Hynix Memory Solutions Inc. Rate-scalable, multistage quasi-cyclic LDPC coding
US8504894B1 (en) 2010-03-04 2013-08-06 Sk Hynix Memory Solutions Inc. Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices
US8527831B2 (en) * 2010-04-26 2013-09-03 Lsi Corporation Systems and methods for low density parity check data decoding
US8443249B2 (en) * 2010-04-26 2013-05-14 Lsi Corporation Systems and methods for low density parity check data encoding
US8381065B2 (en) * 2010-10-01 2013-02-19 Nec Laboratories America, Inc. Modified progressive edge-growth LDPC codes for ultra-high-speed serial optical transport
JP5434890B2 (ja) * 2010-11-18 2014-03-05 株式会社Jvcケンウッド 符号化装置、符号化方法、プログラム
KR20120071511A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 이동통신 시스템의 데이터 레이트 매칭 방법 및 장치
KR20120088369A (ko) * 2011-01-31 2012-08-08 삼성전자주식회사 방송 및 통신시스템에서 송?수신 방법 및 장치
KR101772008B1 (ko) 2011-03-03 2017-09-05 삼성전자주식회사 통신 및 방송시스템에서 송수신 방법 및 장치
KR101865068B1 (ko) * 2011-03-30 2018-06-08 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 시스템에서 신호 맵핑/디맵핑 장치 및 방법
EP2506440A1 (en) 2011-03-30 2012-10-03 Samsung Electronics Co., Ltd. Apparatus and method for mapping and demapping signals in a communication system using a low density parity check code
JP5637393B2 (ja) * 2011-04-28 2014-12-10 ソニー株式会社 データ処理装置、及び、データ処理方法
EP2525497A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
DE102011078645A1 (de) * 2011-07-05 2013-01-10 Robert Bosch Gmbh Verfahren zum sicheren Prüfen eines Codes
CN102255693B (zh) * 2011-07-18 2014-01-29 国网信息通信有限公司 用于电力线通信的纠错编码方法
KR101791477B1 (ko) * 2011-10-10 2017-10-30 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
KR101922990B1 (ko) 2011-11-11 2018-11-28 삼성전자주식회사 멀티미디어 통신 시스템에서 준순환 저밀도 패리티 검사 부호 송/수신 장치 및 방법
JP5665725B2 (ja) * 2011-12-13 2015-02-04 株式会社東芝 符号化装置及びこれを用いた半導体メモリシステム
KR101685010B1 (ko) 2012-06-01 2016-12-13 한국전자통신연구원 지상파 클라우드 방송을 위한 ldpc 부호
JP5774237B2 (ja) * 2012-11-05 2015-09-09 三菱電機株式会社 誤り訂正符号化方法および誤り訂正符号化装置
JP6542132B2 (ja) * 2013-02-13 2019-07-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高レート、高並列性、および低エラーフロアのために、疑似巡回構成を使用し、パンクチャするldpc設計
US8930792B2 (en) * 2013-02-14 2015-01-06 Lsi Corporation Systems and methods for distributed low density parity check decoding
JP6229902B2 (ja) * 2013-05-02 2017-11-22 ソニー株式会社 データ処理装置、及びデータ処理方法
KR102113711B1 (ko) * 2013-05-02 2020-06-02 소니 주식회사 데이터 처리 장치 및 데이터 처리 방법
RU2656723C2 (ru) * 2013-05-02 2018-06-06 Сони Корпорейшн Устройство обработки данных и способ обработки данных
US20160173229A1 (en) * 2013-08-05 2016-06-16 Lg Electronics Inc. Method and device for receiving signals in wireless access system
US9104589B1 (en) * 2013-10-16 2015-08-11 L-3 Communications Corp. Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions
KR102254102B1 (ko) * 2015-01-23 2021-05-20 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10404284B1 (en) 2015-07-21 2019-09-03 L-3 Communications Corp. Parallel-to-parallel conversion and reordering of a block of data elements
US10382064B2 (en) * 2015-10-13 2019-08-13 SK Hynix Inc. Efficient LDPC encoder for irregular code
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10129178B1 (en) 2015-12-02 2018-11-13 L-3 Communications Corp. Combining and processing as a whole portions of a ordered segment of data elements split between two communications channels
US10635909B2 (en) * 2015-12-30 2020-04-28 Texas Instruments Incorporated Vehicle control with efficient iterative triangulation
WO2017123273A1 (en) * 2016-01-14 2017-07-20 Intel IP Corporation Informationally efficient error correction coding
US10469152B2 (en) * 2016-01-29 2019-11-05 Nec Corporation Information processing apparatus, information processing method and a computer program
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
MY195980A (en) * 2016-07-15 2023-02-27 Sharp Kk Transmission Apparatus, Reception Apparatus, Communication Method, and Integrated Circuit
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
US10340949B2 (en) * 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
KR102348466B1 (ko) * 2017-03-30 2022-01-10 삼성전자 주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US10484134B2 (en) 2017-03-30 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN109120276B (zh) 2017-05-05 2019-08-13 华为技术有限公司 信息处理的方法、通信装置
WO2018227681A1 (zh) 2017-06-15 2018-12-20 华为技术有限公司 信息处理的方法和通信装置
CN109327225B9 (zh) 2017-06-27 2021-12-10 华为技术有限公司 信息处理的方法、装置和通信设备
CN111492586B (zh) 2017-12-15 2022-09-09 华为技术有限公司 具有正交行的ldpc码的基矩阵设计方法及装置
US10886944B2 (en) * 2018-09-24 2021-01-05 National Chiao Tung University Low-density parity-check code scaling method
RU2708349C1 (ru) * 2019-06-03 2019-12-05 Акционерное общество "Концерн "Созвездие" Способ передачи данных на основе кодов с низкой плотностью проверок на четность
CN112671504A (zh) * 2019-10-15 2021-04-16 普天信息技术有限公司 5g nr标准的ldpc编码的实现方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3575646D1 (de) 1984-03-24 1990-03-01 Philips Nv Verfahren zur informationsuebertragung mit fehlerkorrektur fuer datenworte, ein fehlerkorrektur-dekodierverfahren fuer solche datenworte, eine anordnung zur informationsuebertragung zur verwendung mit dem verfahren, ein geraet fuer informationsdekodierung zur verwendung mit dem verfahren und eine anordnung zur verwendung mit solchem geraet.
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
FR2799592B1 (fr) 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
AU2335001A (en) * 1999-12-20 2001-07-03 Research In Motion Limited Hybrid automatic repeat request system and method
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
KR20100046063A (ko) * 2000-06-16 2010-05-04 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
US7072417B1 (en) * 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
US7000177B1 (en) * 2000-06-28 2006-02-14 Marvell International Ltd. Parity check matrix and method of forming thereof
US6567465B2 (en) 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6938196B2 (en) 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7000167B2 (en) 2001-08-01 2006-02-14 International Business Machines Corporation Decoding low density parity check codes
KR100848779B1 (ko) 2001-08-27 2008-07-28 엘지전자 주식회사 반복 복호기에서 두 가지 레벨 이상의 복호능력 표시방법
US7178080B2 (en) 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
JP4163023B2 (ja) * 2003-02-28 2008-10-08 三菱電機株式会社 検査行列生成方法および検査行列生成装置
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
JP4167276B2 (ja) * 2006-06-23 2008-10-15 株式会社住化分析センター 導電体の溶断試験方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678176B1 (ko) * 2004-04-28 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100739510B1 (ko) * 2004-06-16 2007-07-13 포항공과대학교 산학협력단 반구조적 블록 저밀도 패리티 검사 부호 부호화/복호 장치및 방법
KR100678175B1 (ko) * 2004-08-16 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100612047B1 (ko) * 2004-09-09 2006-08-14 한국전자통신연구원 성장 네트워크 모델을 이용한 엘디피시 부호의 형성방법
US7725801B2 (en) 2005-07-01 2010-05-25 Samsung Electronics Co., Ltd Method of generating quasi-cyclic low density parity check codes and an apparatus thereof
KR100941680B1 (ko) * 2005-07-01 2010-02-12 삼성전자주식회사 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR100809616B1 (ko) * 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US7814393B2 (en) 2005-10-19 2010-10-12 Samsung Electronics Co., Ltd Apparatus and method for coding/decoding block low density parity check code with variable block length
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
US7886208B2 (en) 2006-02-02 2011-02-08 Samsung Electronics Co., Ltd LDPC decoding apparatus and method based on node memory
KR101154995B1 (ko) * 2006-07-14 2012-06-15 엘지전자 주식회사 Ldpc 부호화를 수행하는 방법
KR101433375B1 (ko) * 2006-12-04 2014-08-29 삼성전자주식회사 통신 시스템에서 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100975696B1 (ko) * 2007-04-05 2010-08-12 삼성전자주식회사 통신 시스템에서 부호화 장치 및 방법
US8145972B2 (en) 2007-04-05 2012-03-27 Samsung Electronics Co., Ltd Apparatus and method for coding in communication system
KR101447751B1 (ko) * 2007-11-19 2014-10-13 삼성전자주식회사 블록 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서패리티 검사 행렬 생성 장치 및 방법
KR100949519B1 (ko) * 2007-12-18 2010-03-24 한국전자통신연구원 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
US8205131B2 (en) 2007-12-18 2012-06-19 Electronics And Telecommunications Research Institute Method for producing parity check matrix for low complexity and high speed decoding, and apparatus and method for coding low density parity check code using the same
KR101445080B1 (ko) * 2008-02-12 2014-09-29 삼성전자 주식회사 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치
KR20120079922A (ko) * 2011-01-06 2012-07-16 삼성전자주식회사 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서의 채널 부호화/복호화 방법 및 장치
CN110391816A (zh) * 2018-04-18 2019-10-29 爱思开海力士有限公司 错误校正电路及包括错误校正电路的存储器系统
CN110391816B (zh) * 2018-04-18 2022-12-02 爱思开海力士有限公司 错误校正电路及包括错误校正电路的存储器系统

Also Published As

Publication number Publication date
CA2531806A1 (en) 2005-03-03
JP2008172824A (ja) 2008-07-24
EP1511177B1 (en) 2018-06-06
US20070283221A1 (en) 2007-12-06
CA2531806C (en) 2014-04-08
AU2004302428B2 (en) 2008-02-07
US8719683B2 (en) 2014-05-06
RU2006109470A (ru) 2006-07-10
US20050050435A1 (en) 2005-03-03
AU2004302428A1 (en) 2005-03-03
US7962828B2 (en) 2011-06-14
CN102164022B (zh) 2017-05-10
WO2005020500A1 (en) 2005-03-03
CN1836394A (zh) 2006-09-20
US20140344639A1 (en) 2014-11-20
CN102164022A (zh) 2011-08-24
US20110167315A1 (en) 2011-07-07
US7313752B2 (en) 2007-12-25
JP5219552B2 (ja) 2013-06-26
KR100809619B1 (ko) 2008-03-05
RU2316111C2 (ru) 2008-01-27
EP1511177A3 (en) 2006-07-26
JP2007503755A (ja) 2007-02-22
CN1836394B (zh) 2011-05-25
US9319068B2 (en) 2016-04-19
JP4160617B2 (ja) 2008-10-01
EP1511177A2 (en) 2005-03-02

Similar Documents

Publication Publication Date Title
KR100809619B1 (ko) 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100678176B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678175B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
JP4545793B2 (ja) ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
KR100809616B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100913876B1 (ko) 저밀도 패리티 검사 부호의 생성 방법 및 장치
Zhang et al. VLSI implementation-oriented (3, k)-regular low-density parity-check codes
KR100739510B1 (ko) 반구조적 블록 저밀도 패리티 검사 부호 부호화/복호 장치및 방법
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
KR100941680B1 (ko) 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
RU2369008C2 (ru) Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока
KR20050118056A (ko) 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
KR20060016061A (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR101447751B1 (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: 20130130

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180130

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190130

Year of fee payment: 12