KR100550101B1 - 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 - Google Patents

저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 Download PDF

Info

Publication number
KR100550101B1
KR100550101B1 KR1020040054749A KR20040054749A KR100550101B1 KR 100550101 B1 KR100550101 B1 KR 100550101B1 KR 1020040054749 A KR1020040054749 A KR 1020040054749A KR 20040054749 A KR20040054749 A KR 20040054749A KR 100550101 B1 KR100550101 B1 KR 100550101B1
Authority
KR
South Korea
Prior art keywords
matrix
parity check
decoding
codeword
check matrix
Prior art date
Application number
KR1020040054749A
Other languages
English (en)
Other versions
KR20050063660A (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 US10/964,122 priority Critical patent/US7395494B2/en
Publication of KR20050063660A publication Critical patent/KR20050063660A/ko
Application granted granted Critical
Publication of KR100550101B1 publication Critical patent/KR100550101B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 LDPC(Low Density Parity Check Code) 부호의 부호화와 복호 장치 및 그 방법을 개시한다. 본 발명에 따른 LDPC 부호의 부호화 장치는, 저밀도 패리티 검사(LDPC) 부호로 부호화하는 부호화 장치에 있어서, 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 패리티 검사 행렬을 생성하여 전달하는 부호 행렬 생성기; 상기 부호 행렬 생성기로부터 전달된 상기 패리티 검사 행렬에 따라 블록 LDPC 부호를 부호화하는 부호화 수단; 및 상기 부호화 수단이 부호화한 결과를 천공하여 LDPC 부호어를 생성하여 출력하는 부호어 선택기를 포함하며, 여기서, 상기 부호 행렬 생성기는 부호화될 정보어를 미리 정해진 길이의 부분 행렬로 분할하여 벡터 정보어를 생성하고, 상기 부호화 수단은 상기 부분 행렬로 분할된 패리티 검사 행렬과 이에 대응하여 작게 분할된 태너 그래프를 이용하여 부호화하는 것을 특징으로 한다. 본 발명에 따르면, LDPC 부호의 반복 복호기를 병렬적으로 수행하는 방법으로서, 수신 부호어를 일정한 길이로 분할하여 각각을 한번에 처리함으로써, 반복 복호를 고속화하고, 배열 단위 구분으로 인해 복호 속도와 저장 메모리 크기를 절약할 수 있게 된다.
LDPC, 부호화, 복호화, 패리티 검사 행렬, 부분 행렬

Description

저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그 방법 {An apparatus for encoding and decoding of Low-Density Parity-Check Codes, and methods thereof}
도 1은 LDPC 부호를 구성하는 패리티 검사 행렬을 예시하는 도면이다.
도 2는 도 1의 태너 그래프(Tanner graph)를 예시하는 도면이다.
도 3a 내지 도 3c는 각각 본 발명의 실시예에 따른 패리티 검사 행렬, 작은 행렬 및 삼각행렬을 예시하는 도면이다.
도 4는 본 발명의 실시예에 따른 LDPC 부호의 부호화기 및 복호기의 구성도이다.
도 5는 본 발명의 실시예에 따른 벡터형 메시지 전달 부호화기의 병렬 처리를 위해 구성된 패리티 검사 행렬을 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 태너 그래프의 길이가 4인 사이클을 예시하는 도면이다.
도 7a 내지 도 7d는 각각 본 발명의 실시예에 따른 사이클 탐색에서 사용하는 각 절점의 함수를 나타내는 도면이다.
도 8a 내지 도 8h는 각각 본 발명의 실시예에 따른 패리티 검사 행렬 생성을 위한 사이클 탐색 과정을 나타내는 도면이다.
도 9a 및 도 9b는 본 발명의 실시예에 따른 사이클 탐색을 이용한 부호 생성 방법을 나타내는 순서도이다.
도 10a 내지 도 10h는 각각 본 발명의 실시예에 따른 패리티 검사 행렬 생성을 위해 작은 행렬에 해당하는 숫자를 할당하는 과정을 나타내는 도면이다.
본 발명은 LDPC 부호의 부호화와 복호 장치 및 그 방법에 관한 것으로, 보다 구체적으로, 통신로 부호의 부호화, 복호화 및 부호의 설계를 가능하게 하는 LDPC (Low-Density Parity Check; 저밀도 패리티 검사) 부호의 부호화와 복호 장치 및 그 방법에 관한 것이다.
LDPC 부호는 1962년에 Gallager에 의해서 처음으로 발표된 선형 블록 부호로서, 선형 블록부호를 구성하는 패리티 검사 행렬(Parity-Check Matrix)의 각 원소들의 대부분이 '0'인 성긴(Sparse) 행렬로 정의된다. 즉, 성긴 행렬이란 원소의 대부분이 0인 행렬을 말한다.
이러한 LDPC 부호는 처음 발표되었을 당시에는 구현에 소요되는 비용으로 인해 오랫동안 잊혀져 왔으나, 1995년에 다시 발표되었고, 1998년에는 Gallager가 제안한 LDPC 부호를 일반화한 비정규 LDPC 부호가 발표되었다.
또한, Gallager에 의해 처음 발표될 때, 상기 LDPC 부호에 대한 확률적 복호법이 제안되었고, 이 방법을 통해서 복호된 LDPC 부호의 성능이 대단히 우수한 것 으로 밝혀졌으며, 또한, 부호어를 이진 부호(Binary Codes)에서 비이진 부호(Nonbinary Codes)로 확장하여 정의할 경우 개선된 성능을 보임이 밝혀졌다.
이러한 LDPC 부호는 터보 부호(Turbo Codes)와 마찬가지로 Shannon 통신로 용량 한계(Channel Capacity Limit)에 접근하는 비트 오류 성능(Bit Error Rate; BER)을 보이며, 가장 좋은 성능을 보이는 것으로 알려진 비정규 LDPC 부호는 가산 백색 가우스 분포 잡음(Additive White Gaussian Noise-AWGN) 통신로 환경 하에서 부호의 길이가 백만(
Figure 112004031114749-pat00001
)비트 정도일 때 비트 오류율(BER)
Figure 112004031114749-pat00002
을 달성하기 위해 Shannon 통신로 용량으로부터 단지 0.13㏈가 추가적으로 필요하기 때문에 대단히 낮은 비트 오류율의 고품질 전송 환경을 요구하는 응용에 적절하다.
이러한 LDPC 부호의 복호 방법은 일반적인 블록 부호의 복호 방법인 대수적 복호 방법(Algebraic Decoding Algorithm)과는 달리, 확률적 복호 방법(Probabilistic Decoding Algorithm)으로 구성됨으로써 그래프 이론과 확률적 추측 이론을 적용한 신뢰 전파 방법이 그대로 적용된 방법이다.
또한, LDPC의 복호기는 통신로를 통해 수신된 부호어의 각 비트에 대해 해당 비트가 '1'이거나 '0'이었을 확률을 계산하게 된다. 복호기가 계산한 확률 정보를 메시지라고 부르며, 패리티 검사 행렬에서 정의된 각 패리티를 통해 메시지의 품질을 검사할 수 있다. 패리티 검사 행렬의 특정 패리티가 만족되었을 때, 계산되는 메시지를 특별히 패리티 검사 메시지라고 하며, 각 부호어 비트에 대해서 가장 가능성이 큰 값을 나타내어 준다. 이때, 각 패리티에 대한 패리티 검사 메시지는 해당 비트들의 값을 결정하는데 이용하고, 여기서 계산된 비트에 대한 정보는 비트 메시지라고 한다.
그리고 이러한 메시지 전달을 반복하는 과정에서 각 부호어들의 비트에 대한 정보는 패리티 검사 행렬의 모든 패리티가 만족하게 된다. 최종적으로 패리티 검사 행렬의 모든 패리티가 만족되면, 부호어의 복호를 종료한다. 일반적으로 신호대 대 잡음비가 낮은 통신로 환경에서는 조직부호(Systematic Codes)가 사용되므로 부호어의 특정부분을 추출하여 정보 비트를 재생하게 된다. 여기서, 조직부호란 부호어 내에 정보어가 부호어의 일부로 존재하게 만든 부호이다. 즉, 부호어를 정보어 부분과 오류를 정정하기 위하여 부가로 추가된 부분으로 명확히 구분할 수 있게 만든 부호를 말한다.
일반적으로, 그래프 디코딩에 적합한 코드로서 LDPC 코드가 있으며, 이 코드를 복호하기 위해 제안된 디코딩 알고리즘으로 Sum-product 알고리즘과 Min-sum 알고리즘이 있다. 또한, LDPC 코드를 복호하기 위한 Sum-Product 알고리즘은 태너(Tanner) 그래프가 사이클을 갖고 있지 않을 때 최적의 성능을 보이고, Min-Sum 알고리즘은 일반적으로 Sum-product 알고리즘보다 덜 복잡하게 구현되지만, 성능이 떨어지는 단점이 있다. 이를 해결하기 위해 디코딩 과정에서 발생되는 손실을 모두 보정하는 구조의 경우 하드웨어나 소프트웨어를 구현할 때 복잡한 구조를 갖게 되는 단점이 있다.
한편, 종래 기술로서, 대한민국 특허출원번호 제2001-33936호(2001.06.15 출원)에는 "부분 보정을 이용한 그래프 디코딩 방법"이라는 명칭의 발명이 개시되어 있는바, LDPC 코드를 디코딩하기 위한 Min-Sum 알고리즘에 약간의 보정 팩터를 추 가하여 Sum-Product 알고리즘에 근접하는 디코딩 성능을 발휘할 수 있는 부분 보정을 이용한 그래프 디코딩 방법에 관한 것이다.
구체적으로, 이 선행 발명은 Min-Sum 알고리즘의 복잡도를 그다지 증가시키지 않으면서 Sum-Product 알고리즘에 근접하는 성능을 발휘할 수 있도록 하기 위해, Min-sum 알고리즘에서 성능 저하를 발생시키는 Min 연산에서 Min 연산의 입력이 가장 많은, 즉, 가장 많은 빈도를 가지는 K개의 사이트 조합만을 고려하여 이에 대한 보정 팩터만을 추가하는 부분 보정을 이용한 그래프 디코딩 방법을 제공하여 그래프를 디코딩하는 방법을 제공한다.
이 선행 발명에 따르면, 알고리즘 개선을 위해 보정 장치를 가장 영향이 큰 부호어에 대해서 적용함으로써, 상대적으로 적은 하드웨어로 원래의 복호 알고리즘과 유사한 성능을 갖게 할 수 있다.
한편, 종래 기술로서, 본 발명과 동일한 출원인에 의해 출원된 대한민국 특허출원번호 제2001-50423호(2001년 8월 21일 출원)에는 "신호대 잡음비 추정에 의한 LDPC 복호화 장치의 최대 반복 복호수 적응 설정 장치 및 그 방법과, 이 장치를 포함하는 LDPC 복호화 장치 및 그 방법"이 개시되어 있다.
구체적으로, 이 선행 발명에 따른 LDPC 복호화 장치의 최대 반복 복호수 적응 설정 장치는, 수신되는 LDPC 부호화 신호에 대응되는 신호대 잡음비를 추정하고, 임의의 신호대 잡음비에 대응되는 최대 반복 복호수가 저장되어 있는 저장부에 기초하여, 상기 추정된 신호대 잡음비에 대응되는 최대 반복 복호수를 적응적으로 설정하게 된다.
이 선행 발명에 따르면, 수신 신호에 대응되는 신호대 잡음비를 추정하여 요구되는 성능을 만족하는 최대 반복 복호수를 적응적으로 설정함으로써, 평균 반복 복호수가 감소되어 신호의 지연이 감소되지만, 이 선행 발명은 계산량이 늘어날 수 있다는 문제점이 있다.
한편, 종래 기술에 따른 미합중국 특허번호 제6,633,856호(2001.10.10 출원)에는 "Methods and Apparatus for decoding LDPC codes"라는 명칭의 발명이 개시되어 있는데, LDPC 부호와 길이가 긴 부호를 위해 사용할 수 있는 메시지 전달 복호 방법을 이용한 보호어의 복호 방법과 그 방법에 관한 것이다.
구체적으로, 이 선행 특허는 작은 크기의 동일한 그래프 다수 개로 구성된 큰 그래프를 갖는 구조의 부호어를 부호화하는 방법으로서, 다수개의 작은 그래프들은 큰 그래프를 생성하기 위해 정해진 방법으로 행렬의 열을 치환하는 방법을 이용하여 구성하게 된다. 이러한 치환 방법은 곧 바로 작은 그래프들 사이의 메시지 전달 기능으로 구현될 수 있고, 각 작은 그래프에 해당하는 메시지들은 하나의 메모리에 집합적으로 저장되고 SIMD 읽기 쓰기 명령으로 메모리에 써지거나 읽혀진다. 또한, 그래프 치환 연산은 단순 메시지 재정렬 명령으로 구성이 가능한데, 이러한 치환 명령으로 순환 치환을 이용할 수 있다. 따라서, 하나의 메시지 집합 메모리로부터 읽혀진 메시지 집합은 순환 치환을 이용해서 순서가 재정렬되어 다음 번에 처리되어야할 작은 그래프의 처리 회로로 전달되는 방법을 이용한다.
이 선행특허에 따르면, 복호기의 병렬화를 위해 효율적으로 메모리를 저장하고 불러낼 수 있는 기능을 포함함으로써, 복호기의 구현 구조를 단순화하고 고속화 하게 된다.
한편, 전술한 LDPC 부호는 기본적으로 랜덤한 설계 구성 방법을 통해 만들어지므로, 이를 위한 부호화기나 복호기를 구성하기 위해서는 랜덤한 패리티 검사 행렬의 정보를 모두 메모리에 저장해야 한다. 즉, 패리티 검사 행렬 상의 모든 '0'이 아닌 값들의 위치를 저장해야 하는데, 부호의 패리티 검사 행렬이 크기가 커질수록 '1'의 개수가 많아지므로 저장해야 할 정보들의 값이 크게 증가하는 문제가 있다.
또한, 패리티 검사 행렬의 랜덤성으로 인해 부호화기 및 복호기 내의 메모리에 주소 탐색과 정보의 읽기 쓰기가 복잡하게 된다. 이러한 부호를 생성하는 과정에서도 랜덤성으로 인해 고려해야할 요소가 많아져서 좋은 성능을 얻기 위한 부호의 생성이 어렵다는 문제점이 있다.
상기 문제점을 해결하기 위한 본 발명의 목적은 패리티 검사 행렬을 위한 저장 메모리의 크기를 줄이고, 복호기에서의 연산을 간단히 대체하여 하드웨어의 고속화 및 단순화가 가능하게 하는 LDPC 부호의 부호화와 복호 장치 및 그 방법을 제공하기 위한 것이다.
상기 목적을 달성하기 위한 수단으로서, 본 발명에 따른 LDPC 부호의 부호화 장치는,
저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호로 부호화하는 부 호화 장치에 있어서,
각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 패리티 검사 행렬을 생성하여 전달하는 부호 행렬 생성기;
상기 부호 행렬 생성기로부터 전달된 상기 패리티 검사 행렬에 따라 블록 LDPC 부호를 부호화하는 부호화 수단; 및
상기 부호화 수단이 부호화한 결과를 천공(puncturing)하여 LDPC 부호어를 생성하여 출력하는 부호어 선택기
를 포함하는 것을 특징으로 한다.
여기서, 상기 부호 행렬 생성기는 부호화될 정보어를 미리 정해진 길이의 부분 행렬로 분할하여 벡터 정보어를 생성하는 것을 특징으로 한다.
여기서, 상기 부분 행렬은 각각의 행과 열에 유일한 값을 갖는 작은 행렬들의 조합으로 구성되며, 상기 부분 행렬은 삼각행렬로 구성될 수 있다.
여기서, 상기 부호화 수단은 상기 부분 행렬로 분할된 패리티 검사 행렬과 이에 대응하여 작게 분할된 태너 그래프를 이용하여 부호화하는 것을 특징으로 한다.
여기서, 상기 부호화 수단은 상기 패리티 검사 행렬에 대응하여 벡터 단위로 부호어를 병렬 계산하여 부호화하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 다른 수단으로서, 본 발명에 따른 LDPC 부호의 복호 장치는,
LDPC 부호로 부호화된 LDPC 부호어를 복호하는 복호 장치에 있어서,
상기 LDPC 부호어로 이루어진 복호할 메시지를 일정한 길이로 분할하여 벡터 메시지를 생성하는 부호어 합성기;
상기 부호어 합성기로부터 벡터 메시지를 입력받아 벡터 메시지 단위로 부호어를 병렬 복호화하는 복호 수단; 및
상기 복호 수단이 복호화한 부호어를 정보어로 복원하는 정보 복원 수단
을 포함하는 것을 특징으로 한다.
여기서, 상기 부호어 합성기는 상기 LDPC 부호어의 천공된 부분에 부호어 0에 해당하는 연판정(soft decision) 값(일반적으로, 양수 무한대)을 채워 넣어 벡터 메시지를 생성하는 것을 특징으로 한다.
여기서, 상기 복호 수단은 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클을 탐색하는 것을 특징으로 한다.
여기서, 상기 복호 수단은 상기 메시지 전달 복호 과정을 순환 쉬프트 연산으로 대체하여 병렬 계산하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 다른 수단으로서, 본 발명에 따른 LDPC 부호의 부호화 방법은,
임의의 부호화될 정보어를 LDPC 부호로 부호화하는 방법에 있어서,
a) 상기 부호화될 정보어를 미리 정해진 길이의 부분 행렬로 분할하여 벡터 정보어를 생성하는 단계;
b) 상기 분할된 부분 행렬로 이루어지는 패리티 검사 행렬을 생성하는 단계;
c) 상기 패리티 검사 행렬에 대응하여 벡터 단위로 부호어를 병렬 계산하여 부호화하는 단계; 및
d) 상기 부호화된 결과를 천공하여 LDPC 부호어로 생성하는 단계
를 포함하는 것을 특징으로 한다.
여기서, 상기 a) 단계의 부분 행렬은 각각의 행과 열에 유일한 값을 갖는 작은 행렬들의 조합으로 구성되며, 상기 부분 행렬은 삼각행렬로 구성될 수 있다.
여기서, 상기 b) 단계는 상기 a) 단계에서 구성된 삼각행렬의 부분집합에 대응하는 전체 패리티 검사 행렬을 구성하는 것을 특징을 한다.
여기서, 상기 삼각 행렬의 부분집합을 이용한 전체 패리티 검사 행렬은 순환 쉬프트와 이진 덧셈으로 이루어지는 것을 특징으로 하는 LDPC 부호의 부호화 방법.
여기서, 상기 b) 단계는, 주어진 파라미터들로부터 1과 0만을 원소로 하는 패리티 검사 행렬을 만드는 단계; 및 상기 패리티 검사 행렬의 1의 자리에 작은 행렬 중 한 가지를 선택하여 대입하는 단계를 포함할 수 있다.
여기서, 상기 c) 단계는 상기 부분 행렬로 분할된 패리티 검사 행렬과 이에 대응하여 작게 분할된 태너 그래프를 이용하여 부호화하는 것을 특징으로 한다.
여기서, 상기 작게 분할된 태너 그래프를 규칙적인 그래프로 구성하고, 각각의 규칙적인 그래프를 유사 랜덤한 그래프로 만들어 전체 그래프의 각 부분을 구성하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 다른 수단으로서, 본 발명에 따른 LDPC 부호의 복호 방법은,
LDPC 부호로 부호화된 LDPC 부호어를 복호하는 방법에 있어서,
a) 복호할 메시지를 일정한 길이로 분할하여 벡터 메시지를 생성하는 단계;
b) 상기 벡터 메시지를 입력받아 벡터 단위로 부호어를 병렬 복호하는 단계;
c) 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클 탐색을 수행하여 패리티 검사 행렬을 구성하는 단계; 및
d) 상기 구성되는 패리티 검사 행렬을 이용하여 상기 LDPC 부호어를 정보어로 복원하는 단계
를 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 다른 수단으로서, 본 발명에 따른 LDPC 부호로 부호화된 LDPC 부호 행렬을 생성하는 방법에 있어서,
a) 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클을 탐색하는 LDPC 부호 행렬 생성 단계;
b) 상기 사이클 탐색에 의해 상기 패리티 검사 행렬에 1의 위치를 결정하는 단계; 및
c) 상기 패리티 검사 행렬의 1의 자리에 가능한 일정 개수의 숫자 중 하나를 선택하여 상기 패리티 검사 행렬의 0이 아닌 원소를 할당하는 단계
를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 복호기 내부에서 교환되는 메시지 입력을 미리 정해진 길 이 단위로 분할하고, 각 분할 메시지를 벡터형 메시지로 구분하여 메시지 전달에 의한 복호시 메시지 처리를 병렬로 계산할 수 있게 하여 복호기의 속도를 개선할 수 있고, 그 구조를 단순화 할 수 있다. 이때, 미리 주어진 길이로 분할된 벡터형 메시지는 메시지 전달 부호화기 및 복호기의 설정 구성에 필요한 패리티 검사 행렬(parity-check matrix)을 단순화하기 때문에 이와 연관된 Tanner 그래프의 크기를 줄일 수 있어서 소요되는 메모리를 크기 줄일 수 있고, 각 벡터형 메시지의 교환 및 계산을 간단한 연산으로 대체하여, 메시지 전달 함수를 계산하는 계산기의 기본 블록 구현을 규칙적으로 할 수 있게 된다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 상세히 설명하면 다음과 같다.
본 발명의 실시예에 따르면, 하나의 태너(Tanner) 그래프를 다수개의 작고 규칙적인 태너 그래프의 조합으로 생각 할 수 있으므로 복호기의 하드웨어 구현을 대단히 간단하게 하고, 부호화기의 계산을 대폭적으로 병렬화할 수 있어 일반적으로 복호에 비해 더 많은 시간이 소요되는 부호화 과정을 고속화할 수 있으며, 메시지 전달 복호기의 성능에 밀접한 영향을 미치는 태너 그래프 내의 사이클을 손쉽게 줄일 수 있게 하여, 더 간단하고 고속이며 성능을 대폭 개선한 부호화기 및 복호기를 구성할 수 있다.
도 1은 LDPC 부호를 구성하는 패리티 검사 행렬을 예시하는 도면이고, 도 2는 도 1의 태너 그래프(Tanner graph: 200)를 예시하는 도면이다.
도 1 및 도 2를 참조하면, LDPC 부호는 행렬의 원소 중에서 0(120)이 아닌 원소(110)의 개수가 대단히 적도록 만든 성긴(sparse) 패리티 검사 행렬(100)과 이와 연관된 패리티 검사 행렬에 의해 부호화와 복호가 이루어진다.
상기 LDPC 부호의 복호는 성긴 패리티 검사 행렬로부터 태너 그래프(200)라고 불리는 그래프가 정의되고, 이 그래프에 대해 메시지 전파 방법을 적용한다.
상기 태너 그래프(200)는 절점(210, 220)과 가지(230)로 구성된 그래프로서, 절점(210, 220)은 다시 패리티 검사 메시지를 위한 패리티 검사 절점(210)과 비트 메시지를 위한 비트 절점(220)으로 나뉘어진다.
상기 패리티 검사 절점(210)의 개수는 도 1의 패리티 검사 행렬(100)의 열의 길이와 같고, 상기 비트 절점(220)의 개수는 상기 패리티 검사 행렬(100)의 행의 길이와 같다. 또한, 각 절점(210, 220)은 각각 행렬의 행과 열을 의미한다. 그리고 상기 가지(230)는 패리티 검사 행렬(100)의 0 이 아닌 원소를 나타낸다.
따라서, 도 2의 가장 왼쪽 가지는 첫 번째 패리티 검사 절점(210)과 첫 번째 비트 절점(220)을 연결하므로 패리티 검사 행렬(100)의 (1, 1) 원소를 의미한다. 마찬가지 방법으로, 첫 번째 비트 접점(220)과 네 번째 패리티 검사 절점(210)을 연결하는 가지는 패리티 검사 행렬(100)에 (4, 1)의 원소를 나타낸다. 이러한 방법으로 구성된 부호는 완전히 랜덤한 구조를 갖게 된다.
본 발명의 실시예에 따라 랜덤한 구조의 패리티 검사 행렬(100)의 단순화된 새로운 패리티 검사 행렬은 다음과 같이 표현된다.
도 3a 내지 도 3c는 각각 본 발명의 실시예에 따른 패리티 검사 행렬(310), 작은 행렬(320) 및 삼각행렬(330)을 예시하는 도면이다.
도 3을 참조하면, 상기 패리티 검사 행렬(310)은 0(312)과 0이 아닌 원소(311)로 구성되고, 상기 패리티 검사 행렬(310)을 부호에 대한 전체 패리티 검사 행렬을 작은 행렬(320)로 분할했을 때 새로운 형태의 패리티 검사 행렬이 된다.
따라서, 상기 패리티 검사 행렬(310)의 각 성분은 상기 작은 행렬(320)로 대체될 수 있다. 만약 상기 패리티 검사 행렬(310)의 크기가 M×N이고, 작은 행렬의 크기가 p×p이면, 실제 부호에 대한 패리티 검사 행렬의 크기는 Mp×Np가 된다. 예를 들어, 상기 M이 6, N이 9, p가 4인 경우, Mp×Np는 24×36이 된다.
따라서, 상기 패리티 검사 행렬(310)의 0인 성분(312)은 실제로는 p×p가 모두 0인 행렬을 의미하고, 0이 아닌 성분(311)은 p가지의 숫자 중 하나를 가질 수 있으며, 각 숫자는 p가지 작은 행렬(320)의 종류 중 한 가지를 의미한다. 이때, 작은 행렬(320)은 p개의 1인 성분(321)과 나머지 0인 성분(322)으로 구성된다.
상기 작은 행렬(320)은 하나의 행과 열에 하나의 1(321)을 가지므로, p×p의 작은 행렬의 종류는 모두 p개가 된다.
이상에서 설명한 방법으로 분할된 패리티 검사 행렬은 부호화와 복호를 용이하게 하도록 변형된 삼각 행렬(triangulated matrix)(330)로 다시 표현할 수 있다. 상기 삼각 행렬(330)을 구성하는 부분 행렬들 A, B, C, D, E, T, O(331, 332, 333, 334, 334, 336, 337)는 각 성분이 작은 행렬(320)들로 구성된 부분 행렬을 의미한다. 여기서, 삼각행렬은 일반행렬에서 대각선 중심으로 위 또는 아래 부분이 사용되지 않을 때, 사용되는 반쪽의 삼각형을 배열로 관찰함으로써, 배열의 효율적인 메모리 사용을 위해 사용되는 행렬을 말한다.
이때, 도 3c에 나타난 K(= N-M)는 입력 메시지의 길이와 관련 있는 값으로 실제로 부호화기로 입력되는 메시지의 길이는 K×p가 되고, 부분 행렬 T(336)는 대각성분이 모두 0이 아닌 값을 가지고, 상방 삼각 부분(upper triangular part)인 부분 행렬 O(337)는 영(0) 행렬들로 구성된다.
또한, 상기 부분 행렬 B(332)와 부분 행렬 E(335)는 부호화의 편의를 위해 각각 열과 행의 길이가 1인 열벡터와 행벡터 형태로 구성된다.
상기와 같이 구성된 삼각행렬(330)의 각 성분에 작은 행렬(320)들을 대입함으로써 전체 패리티 검사 행렬을 구성할 수 있게 된다.
전술한 바와 같이, 본 발명의 실시예에 따른 패리티 검사 행렬과 이에 연관된 태너 그래프를 통해 부호화와 복호화를 수행하는 LDPC 부호화기 및 복호화기는 다음과 같다.
도 4는 본 발명의 실시예에 따른 LDPC 부호의 부호화기 및 복호기의 구성도이다.
도 4를 참조하면, 부호화기(410)는 부호화 수단(411), 부호 행렬 생성기(412) 및 부호어 선택기(413)를 포함하고, 복호기(430)는 부호어 합성기/재생기(431), 복호 수단(432) 및 정보 복원 수단인 데이터 복호기(433)를 포함한다.
상기 부호화기(410)의 부호화 수단(411)은 부호화를 위한 정보어를 본 발명의 실시예에 따른 M×N의 패리티 검사 행렬을 이용하여 부호화하고, 상기 부호 행렬 생성기(412)는 사용자의 조작에 따라 미리 저장하고 있는 패리티 검사 행렬을 출력하거나, 새롭게 패리티 검사 행렬을 생성한다.
그리고, 상기 부호어 선택기(413)는 다양한 길이의 부호어의 길이를 일정하게 맞추기 위하여 0을 천공하는 동작을 수행한다.
상기 부호어 선택기(413)를 통해 일정한 길이로 부호화된 부호어는 통신로(Channel: 420)를 통하여 상기 복호기(430)로 입력되어 처음의 정보어로 복호된다.
즉, 도 3a 내지 도 3c와 같은 행렬 구조에 따르면 부화화기(410)의 입력과 출력의 길이는 K×p와 N×p로 p의 배수가 되는데, 일반적으로 다양한 길이의 부호어를 사용할 수 있어야 하므로, 상기 부호어 선택기(413)가 부호어에 대한 천공(puncturing)으로 부호어의 길이를 맞추게 된다.
만약, 부호화될 정보어(information word)의 길이를 K'라 하고, 상기 통신로(420) 상으로 전달될 부호어의 길이를 N'이라고 하며, K'와 N'이 모두 p의 배수가 아닐 경우, 본 발명의 실시예에 따른 부호화 방법을 사용하면 다음과 같다.
먼저, K×p-K' 만큼의 0을 정보어에 추가하여 정보어의 길이를 K×p가 되게 하고, 이때, 상기 정보어는 전술한 바와 같이 구해진 부호어의 길이가 N×p이므로, 처음에 추가한 K×p-K'개의 연속한 0에서 K×p-N'개의 0을 천공하는데, 이러한 동작은 부호어 선택기(413)가 수행한다.
상기한 정보어가 본 발명의 실시예에 따라 제안하는 구조를 갖는 M×N의 패리티 행렬을 이용하여 부호화 수단(411)을 통해 부호화된다. 이때, 상기 부호는 조직부호(systematic code)이므로 처음의 정보어가 상기 부호어에 포함된다. 상기 조직부호는 신호대 대 잡음비가 낮은 통신로 환경에서 부호어의 특정부분을 추출하 여 정보 비트를 재생하기 위해 사용된다.
또한, 상기 복호기(430)에서 부호어 합성기/재생기(431)는 상기 통신로(320)를 통해 입력되는 부호어의 천공된 0의 위치에 다시 0을 복원시킨다. 이때, 상기 부호어 합성기/재생기(431)는 부호어 0에 해당하는 연판정(soft decision) 값(일반적으로, 양수 무한대)을 채워 넣어 벡터 메시지를 생성하게 된다. 따라서, 종래에는 임의의 위치를 천공하는 경우에 비해, 본 발명의 실시예에 따르면, 전술한 방법을 통해 알고 있는 정보를 천공하므로 천공에 의한 성능 저하를 줄일 수 있다.
그리고 상기 복호 수단(432)은 상기 0을 복원한 부호어의 복호를 위해 길이 N×p인 메시지 x를 받고 내부의 벡터 단위 복호를 수행하여 출력 벡터 메시지
Figure 112004031114749-pat00003
를 순서대로 정렬하여 길이 N×p의 메시지를 생성하게 된다.
전술한 바와 같이, 본 발명의 실시예에 따른 부호화기(410)와 복호기(430)를 이용하여 본 발명의 실시예에 따른 부호화 및 복호화를 수행하기 위해서는 먼저, 도 3c의 삼각행렬인 패리티 검사 행렬(310, 330)을 구성한다.
이때, 상기 삼각행렬인 패리티 검사 행렬(310, 330)을 구성하는 p×p의 작은 행렬(320)은 수학식 1과 같이 정의될 수 있다.
Figure 112004031114749-pat00004
여기서,
Figure 112004031114749-pat00005
이다. 따라서,
Figure 112004031114749-pat00006
이면 p×p의 항등 행렬(identity matrix)이 된다. 여기서, 정방형 행렬은 행과 열의 수가 같은 행렬이고, 상기 항등 행렬은 상기 정방형 행렬 중에 주대각선(principal diagonal)에 있는 원소는 모두 1의 값을 가지고 나머지 원소의 값은 모두 0인 정방형 행렬로 정의된다. 상기 항등 행렬은 I 혹은 In으로 표시되며, 아래첨자 n은 행이나 열의 차원을 나타낸다. 즉, 항등 행렬은 숫자 1과 같은 역할을 하는 행렬이다.
상기 수학식 1과 같이 작은 행렬(320)을 정의하여, 패리티 검사 행렬(310, 330)을 구성하고, 상기 부호화 수단(411)은 상기 삼각 행렬(330)의 부분 행렬 B, D, E, T(332, 334, 335, 336)로부터 행렬
Figure 112004031114749-pat00007
를 정의하고, 이로부터 다음의 수학식 2와 같은 역행렬
Figure 112004031114749-pat00008
을 얻게 된다.
Figure 112004031114749-pat00009
이때, 상기 부분 행렬 B, D, E, T(332, 334, 335, 336)와
Figure 112004031114749-pat00010
은 성긴 행렬이지만,
Figure 112004031114749-pat00011
은 일반적으로 성긴 행렬이 아니다. 특별히 다음의 수학식 3 및 수학식 4와 같이 부분 행렬 B, T로 정의하면
Figure 112004031114749-pat00012
는 수학식 5와 같은 성긴 행렬이 된다.
Figure 112004031114749-pat00013
Figure 112004031114749-pat00014
Figure 112004031114749-pat00015
이때, 상기 부호화기(410)에 입력되는 정보어 s는
Figure 112004031114749-pat00016
로 정의되고, 이때,
Figure 112004031114749-pat00017
는 1×p의 부분 벡터이며, 상기 복호기(430)에서는 이를 벡터 메시지라고 부른다.
그리고, 상기 정보어 s에 대하여 상기 부호화기(410)가 출력하는 출력 부호어는
Figure 112004031114749-pat00018
로 정의된다. 그리고, 각 부분 벡터
Figure 112004031114749-pat00019
는 각 벡터 a, b, c, e, t의 ip 번째 원소부터 (i+1)p-1 번째 원소로 구성되는 행벡터로 i번째 부분 벡터가 된다. 또한,
Figure 112004031114749-pat00020
는 패리티 검사 행렬(330)의 부분 행렬 A, B, C, T의 i번째 행의 j번째 열 원소이다.
또한, 상기 정보어 s를 부호화하는 부호화 수단(411)이 사용하는 벡터간의 연산은 덧셈(+)과 순환 쉬프트(
Figure 112004031114749-pat00021
)가 있다. 이때, 순환 쉬프트는 수학식 6과 같이 정의된다.
Figure 112004031114749-pat00022
한편, 상기 역행렬
Figure 112004031114749-pat00023
은 항등 행렬이므로
Figure 112004031114749-pat00024
상기 수학식 7에 의하면, 각 부분 벡터에 대하여 순차 대입 방법으로
Figure 112004031114749-pat00025
를 구하고, 행렬 연산을 계산하여 역행렬
Figure 112004031114749-pat00026
를 얻는다.
한편, 상기 부호어의 첫 번째 패리티 부분인
Figure 112004031114749-pat00027
은 다음 수학식 8과 같이 계산된다.
Figure 112004031114749-pat00028
그리고 두 번째 패리티
Figure 112004031114749-pat00029
는 다음 수학식 9와 같이 계산할 수 있다.
Figure 112004031114749-pat00030
전술한 수학식 6 내지 9에서 모든 연산은 순환 쉬프트와 이진 덧셈으로 구성되므로 고속으로 계산이 가능하다. 상기 순환 쉬프트는 실제로 계산되는 것이 아니라 벡터 메시지의 메모리 읽기와 쓰기 순서를 바꾸는 역할을 하며, 간단한 연산을 가능하게 하고, 병렬 연산이 더욱 단순화되게 해준다.
한편, 상기 복호기(430)의 복호 수단(432)은 부호의 복호를 위해 길이 N×p인 메시지 x를 받고 정하는데, 다음 수학식 10과 같은 패리티 검사 행렬의 패리티 검사 조건이 주어진다.
Figure 112004031114749-pat00031
이때,
Figure 112004031114749-pat00032
는 x의 ip 번째 원소부터 (i+1)p-1 번째 원소로 이루어지는 벡터 메시지이다.
또한, 상기 수학식 10에 의해 p개의 변수 또는 검사 절점의 메시지 계산이 병렬적으로 가능하다.
그리고, 상기 복호 수단(432) 내부의 벡터 단위 복호는 다음과 같이 진행된다.
이때,
Figure 112004031114749-pat00033
이고, 하나의 메시지에 대해 정의된 임의의 함수
Figure 112004031114749-pat00034
는 벡터 메시지
Figure 112004031114749-pat00035
에 대해서도 단일 변수에 대한 정의 방법처럼
Figure 112004031114749-pat00036
와 같이 정의한다.
도 5는 본 발명의 실시예에 따른 벡터형 메시지 전달 부호화기의 병렬 처리를 위해 구성된 패리티 검사 행렬을 나타내는 도면이다.
도 5를 참조하면, 상기 패리티 검사 행렬은 변수 절점(511), 검사 절점(512) 및 가지(513)로 표현되고, 상기 가지(513)는 전술한 도 2에서 정의한 바와 같이 패리티 검사 행렬로부터 결정된 것이다.
먼저, 수신 부호어 벡터 메시지에 각 비트에 대한 LLR(Log Likelihood Ratio; 대수 우도비)의 벡터 메시지
Figure 112004031114749-pat00037
를 계산하고, 검사 절점(513)의 입력 벡터 메시지를 초기화한다.
그리고 벡터 메시지
Figure 112004031114749-pat00038
(514)는 i번째 검사 절점(513)의 입력으로 주어지는 j번째 부분 부호어에 대한 LLR의 벡터 메시지를 되고, 복호기(430)의 최초 입력은 변수 절점(511)으로 전달되며, 각 변수 절점(511)과 연결된 각 가지(513)로 전달되는 출력은 다음 수학식 11과 같이 정의된다.
Figure 112004031114749-pat00039
상기 수학식 11에서 행렬 연산(·)은 행렬 곱 연산과 동일하게 정의하지만,
Figure 112004031114749-pat00040
로 주어지는 행렬은 패리티 검사 행렬의 0이 아닌 성분의 연산을 정의하는 p×p 행렬을 나타낸다.
또한, 각 검사 절점(512)으로 전달된 벡터 메시지는 다음 수학식 12에 의해 각 검사 절점에 연결된 가지(515)로 전달된다.
Figure 112004031114749-pat00041
여기서, 가지
Figure 112004031114749-pat00042
(515)는 j번째 변수 절점(511)에 입력으로 주어지는 j번째 검사 절점(512)의 출력 벡터 메시지이고, 상기 수학식 12의 벡터에 대한 함수 및 계산은 벡터의 각 성분끼리 연산된다. 또한, R(i)은 검사 절점(512) i에 연결된 변수 절점(511)의 인덱스 집합이며, R(i)/j는 j를 제외한 검사 절점(512) i에 연결된 변수 절점(511)의 인덱스 집합을 나타낸다.
상기 수학식 12의 연산(
Figure 112004031114749-pat00043
)은 벡터의 성분끼리의 곱을 나타내며, 초기화 이후의 각 변수 절점(512)의 벡터 메시지 출력은 다음의 수학식 13과 같게 된다.
Figure 112004031114749-pat00044
여기서, C(j)는 변수 절점(511) j에 연결된 검사 절점의 인덱스 집합이고, C(j)/i는 i를 제외한 변수 절점(511) j에 연결된 검사 절점(512)의 인덱스 집합이다.
또한, 각 변수 절점(511) 처리와 검사 절점(512) 처리 이후, 데이터 복호기(433)로 전달되는 벡터 메시지는 다음의 수학식 14와 같다.
Figure 112004031114749-pat00045
이때, 상기
Figure 112004031114749-pat00046
는 i번째 부분 부호어의 각 비트의 업데이트된 LLR이 벡터이고, 수식상의 벡터에 대한 함수 및 계산은 벡터의 각 성분끼리 연산된다. 그리고 복호 수단(432)의 출력 벡터 메시지
Figure 112004031114749-pat00047
는 데이터 복호기(433)에서 순서대로 정렬하여 길이 N×p의 메시지를 생성하게 된다.
전술한 바와 같이, 생성된 메시지로부터 부호어의 판정은 수학식 15와 같다.
Figure 112004031114749-pat00048
상기 수학식 15에 의해 얻은 정보어에 대해서
Figure 112004031114749-pat00049
이면 패리티 검사가 성공하였으므로 처음 K 비트의 정보를 추출하면 최종 출력이 된다. 만약
Figure 112004031114749-pat00050
이 아니면, 상기 수학식 11 내지 13의 과정을 반복하게 된다.
전술한 도 4의 부호 행렬 생성기(412)는 미리 저장하고 있는 패리티 검사 행렬을 출력하거나 새롭게 패리티 검사 행렬을 생성하도록 제어되며, 상기 부호어와 정보어 그리고 가지의 차수 분포(degree distribution)가 주어지면 상기 패리티 검사 행렬을 생성하게 된다.
또한, 상기 패리티 검사 행렬을 생성하는 방법은 두 단계로 진행되는데, 첫 번째 단계는 주어진 파라미터들로부터 1과 0만을 원소로 갖는 패리티 검사 행렬을 만드는 단계이고, 두 번째 단계는 패리티 검사 행렬의 1자리에 p가지의 작은 행렬 중 한 가지를 선택하여 대입하는 단계이다.
상기 첫 번째 단계에서 주어진 행과 열에 대한 차수 분포에 맞게 1을 배치하는 과정에서 가장 중요한 것은 메시지 전달 복호의 성능을 저하시키는 사이클(cycle)이 발생하지 않게 하거나, 또는 가장 짧은 길이의 사이클의 길이를 최대화하는 것이다,
한편, 도 6은 본 발명의 실시예에 따른 태너 그래프의 길이가 4인 사이클을 예시하는 도면이다.
도 6을 참조하면, 본 발명의 실시예에 따른 태너 그래프(610)와 패리티 검사 행렬(620)은 1대 1 대응 관계이며, 상기 태너 그래프(610)의 사이클(614)은 패리티 검사 행렬(620) 상에서도 해석된다.
상기 패리티 검사 행렬(620)의 0이 아닌 원소(623)는 해당 원소의 행 위치(row location: 622)와 열 위치(column location: 621)의 값을 각각 인덱스로 갖는 검사 절점(612)과 변수 절점(variable node: 611)을 연결하는 변(613)을 의미한다. 따라서 길이 4의 사이클은 상기 패리티 검사 행렬(620) 내에서 4개의 각 모서리에 0이 아닌 성분을 갖는 사각형(624)으로 표현된다.
마찬가지 방법으로, 계속 6, 8, 10, 12, … 사이클을 정의할 수 있다. 이때, 상기 태너 그래프의 사이클이 길이는 항상 짝수이다.
한편, 도 7a 내지 도 7d는 각각 본 발명의 실시예에 따른 사이클 탐색에서 사용하는 각 절점의 함수를 나타내는 도면이다.
도 7a 내지 도 7d를 참조하면, 태너 그래프 상의 가지로 교환하는 메시지는 0 또는 1의 숫자로 한정되므로, 이러한 메시지를 처리하기 위해 각 절점에 정의된 함수는 검사 절점과 변수 절점 모두 수학식 16과 같이 정의한다.
Figure 112004031114749-pat00051
여기서, IN{i}는 2부 그래프 내의 한쪽 절점 집합의 i번째 절점에 인접한 다른 절점 집합의 절점들의 집합을 나타낸다. 그리고
Figure 112004031114749-pat00052
연산은 논리합 OR과 같고,
Figure 112004031114749-pat00053
는 논리 배타합 XOR 연산과 같다.
따라서 상기 수학식 16이 의미하는 것은 절점으로 들어오는 입력(711) 중에 1인 가지가 있으면, 그 가지로 0을 보내고 나머지 가지로는 1을 출력한다는 것이다.
만약 도 7b에서, 절점(711')으로 들어오는 입력(722)이 모두 0 이면, 모든 출력(723)은 0이 된다. 이것은 절점의 입출력 값 중 1이 의미하는 것이 해당 절점과 가지가 사이클에 포함된 것을 의미한다.
따라서, 1이라는 값이 태너 그래프 내를 순환하다가 최초에 1을 내보낸 절점으로 다시 1을 받게 되면 사이클이 있다고 인식한다. 어떤 절점은 2개 이상의 1을 받는 경우도 발생한다. 이 경우는 해당 반복 회수만큼의 길이에 해당하는 사이클이 두 개 이상 존재함을 알려준다.
이상에서 설명한 바와 같은 사이클 탐색 방법은 사이클을 탐색하면서 원하는 사이클보다 길이가 긴 사이클만 발생하도록 패리티 검사 행렬에 1을 할당하여 부호 생성이 첫 번째 단계를 진행하게 된다.
한편, 도 8a 내지 도 8h는 각각 본 발명의 실시예에 따른 패리티 검사 행렬 생성을 위한 사이클 탐색 과정을 나타내는 도면이다.
도 8a 내지 도 8h를 참조하면, 가장 왼쪽 변수 절점(811)에서 사이클 탐색을 시작하여, 최종적으로 길이 8의 사이클이 발견되는 것을 보여준다.
상기 부호 생성의 두 번째 단계는 첫 번째 단계에서 생성된 1과 0으로 이루어진 패리티 검사 행렬에서 1을 p가지의 다른 숫자로 바꾸는 과정이다. 각 1에 p가지의 다른 숫자를 넣을 때 고려할 것은 원소들 사이에 사이클이 존재하더라도, 이 패리티 검사 행렬은 실제 부호어에 대한 패리티 검사 행렬이 아니므로 그 영향이 직접 나타나지 않는다는 것이다.
즉, 첫 번째 단계를 마친 패리티 검사 행렬에 길이 4의 사이클이 있더라도 해당 사이클 상에 있는 0이 아닌 원소들에 매겨지는 숫자들 사이의 관계에 의해 실제 사이클의 길이는 다양한 길이를 가질 수 있다.
예를 들어, p×p의 순환 쉬프트 행렬
Figure 112004031114749-pat00054
들로 이루어진 패리티 검사 행렬 상에 길이 i의 사이클이 있고, 그 사이클 상에 있는 0이 아닌 원소들로 순환 경로(directed tail-biting path)로 정의했을 때, 사이클은 이들 성분에 매겨진 숫자의 유한수열
Figure 112004031114749-pat00055
로 나타낼 수 있다.
유한수열의 원소들에 대한 교대합(alternating sun)을
Figure 112004031114749-pat00056
라고 했을 때,
Figure 112004031114749-pat00057
이면 사이클은 사이클 상의 0이 아닌 원소에 연관된 작은 행렬의 모든 1을 지나가게 되고 사이클의 길이는 p×l이 되며, 이는 해당 사이클로 구성할 수 있는 최대 길이의 사이클이 된다. 이때, 상기 p를 서로소인 정수로 결정하면, 전술한 조건을 항상 만족하게 된다.
상기 첫 번째 단계에서 사이클이 발생하더라도 두 번째 단계에서 1이 아닌 원소의 숫자를 잘 결정하면, 실제 사이클의 길이를 최대로 하게 되어 사이클에 의한 성능 저하를 줄일 수 있다. 이러한 사실을 바탕으로 상기 부호 행렬 생성기(412)에서 두 번째 단계에 대한 계산을 수행하게 된다.
한편, 도 9a 및 도 9b는 본 발명의 실시예에 따른 사이클 탐색을 이용한 부호 생성 방법을 나타내는 순서도로서, 전술한 과정을 순서도로 나타낸 것이다.
도 9a 및 도 9b를 참조하면, 본 발명의 실시예에 따른 사이클 탐색을 이용한 부호 생성 방법은, 먼저, 각각의 가지에 대하여 해당 가지가 아직 숫자가 할당되지 않았다면(S901), 해당 노드의 출력이 1이 되고 나머지 가지의 출력이 0이 되도록 설정한 후 교대합을 0으로 초기화한다(S902).
그리고 하나 이상의 1이 검사 노드와 만나는 곳이 있으면(S903), 각 1이 거쳐온 교대합의 차를 구한다(S904). 이때, 출력이 1인 해당 가지가 만나는 검사 노드에 따라 각각의 검사 노드에서의 교대합을 구한다.
상기 S904 단계에서 계산된 교대합(S)에서 p로 나누어지는 것이 있는 경우(S905), 상기 p로 나누어지지 않는 숫자를 구하고(S906), 만일, 해당 숫자를 사용할 수 있다면(S907), 경로의 가장 마지막에 할당된 숫자를 해당 숫자로 바꾼다(S908).
만일, 상기 S907 단계에서, 사용할 수 있는 숫자가 없다면, 교대합과 p의 GCD(greatest common divisor; 최대 공약수)가 가장 작게 되는 숫자(
Figure 112004031114749-pat00058
)를 결정하고, 그 숫자를 가장 마지막 가지에 할당된 숫자와 바꾼다(S909).
이때,
Figure 112004031114749-pat00059
을 수식으로 표현하면
Figure 112004031114749-pat00060
이 된다. 이때, 사이클의 길이는
Figure 112004031114749-pat00061
이므로, 가장 작은 최대 공약수를 갖게 하는 원소
Figure 112004031114749-pat00062
을 인덱스로 선택하면, 전체 사이클의 길이는 최대가 된다.
또한, 상기 S903 단계에서 하나 이상의 1이 만나는 검사 절점이 없으면, 1을 받은 검사절점은 전술한 수학식 13으로부터 다음으로 1이 할당될 절점과 가지를 구하고(S910), 1이 전달되는 가지 중에서 아직 숫자가 할당되지 않은 가지가 있으면 가능한 숫자 중에서 하나를 할당한다(S911).
그리고, 1이 통과하는 가지에 할당된 숫자를 더하여 교대합을 구하게 된다(S912). 이후, 처음 출발한 변수 절점에 들어왔으면(S913), 처음에 가지에 할당할 수 있는 숫자를 결정하여(S914), 가능한 숫자가 있는 경우(S915), 교대합과 p의 GCD가 가장 작게 되는 숫자를 상기 수학식
Figure 112004031114749-pat00063
을 이용하여 구한 후 마지막 가지에 할당된 숫자와 바꾼다(S917). 만일, S915 단계에서, 사용할 수 있는 숫자가 없다면, 교대합과 p의 GCD(최대 공약수)가 가장 작게 되는 숫자(
Figure 112004031114749-pat00064
)를 결정하고, 그 숫자를 가장 마지막 가지에 할당된 숫자와 바꾼다(S916).
그리고, 아직 숫자가 할당되지 않은 가지가 있는지 다시 판단하여(S901), 다음 가지에 대한 S902 내지 S917 단계를 수행하게 된다.
또한, 상기 S913 단계의 판단결과, 처음 출발한 변수 절점에 1이 들어오지 않았다면 하나 이상의 1이 만나는 다른 변수 절점을 판단하여(S918), 변수 절점이 있는 경우 각 1이 거쳐온 가지에 대한 교대합의 차를 구한 후(S919), 구해진 교대합의 차 중에서 p로 나누어지는 것이 있는지 판단한다(S920).
그리고, 상기 S920 단계의 판단 결과, 상기 교대합이 차 중에서 p로 나누어지는 것이 있는 경우, 교대합이 p로 나누어지지 않게 하는 숫자를 구하고(S921), 해당 숫자를 사용할 수 있는 경우(S922), 경로의 가장 마지막 가지에 할당된 숫자를 이로 바꾼다(S923). 만일, S922 단계에서, 사용할 수 있는 숫자가 없다면, 교대합과 p의 GCD(최대 공약수)가 가장 작게 되는 숫자(
Figure 112004031114749-pat00065
)를 결정하고, 그 숫자를 가장 마지막 가지에 할당된 숫자와 바꾼다(S924).
그리고, 주어진 길이에 사이클이 도달했으면(S925), 처음에 가지에 할당 할 수 있는 숫자를 결정하여 해당 가지에 할당하고, S901 단계부터 다음의 숫자를 할당하지 않은 가지가 없을 때까지 S901 내지 S923 단계를 수행한다.
또한, 주어진 길이에 사이클이 도달하지 않은 경우는 1을 받은 절점에 상기 수학식 12로부터 1을 보낼 가지를 결정하고(S926), 1이 전달되는 가지 중에서 아직 숫자를 할당하지 않은 가지가 있을 경우 가능한 숫자를 할당한 후(S927), 1이 통과하는 가지에 할당된 숫자를 빼서 교대합을 바꾸고(S928), 다시 하나 이상의 1이 만나는 체크 노드가 또 있는지 S903 단계를 수행하게 된다.
전술한 바와 같이, 본 발명의 실시예에 따른 도 9a 및 도 9b는 수학식 13에 의한 사이클 탐색과, 계산된 결과가 1이 되는 모든 가지에 p가지의 숫자 중 하나를 할당한 후, 현재 진행 방향이 검사 절점에서 변수 절점이면 해당 값에 교대합을 더하고, 그렇지 않으면 해당 값에서 교대합을 뺀다. 그리고, 사이클이 최초에 출발했던 절점으로 돌아와 합이
Figure 112004031114749-pat00066
인지를 확인하여 합이
Figure 112004031114749-pat00067
이 아닌 경우 탐색을 다시 해서 다른 값을 할당하게 된다.
만약, 모든 p가지에 대하여
Figure 112004031114749-pat00068
를 만족하지 않는 경우, 즉 해당 성분에 p개 이상의 사이클이 연관되어 있는 경우, 가장 적은 수의 사이클과 연관된 숫자로 결정하고, 가능한 내부 사이클을 포함하지 않은 사이클의 단위 그래프 숫자로 결정한다. 이것은 내부 사이클을 포함하는 경로가 내부 사이클의 개수만큼의 중복된 사이클이 존재함을 의미하며, 각 성분마다 내부 사이클의 개수를 저장할 필요가 있다는 것을 나타낸다.
또한, p로 나누어지는 숫자를 선택해야 할 경우에 선택할 수 있는 인덱스 집합을 {l}이라 하면, {l}의 각 원소에 의해 결정되는 사이클의 원소들의 교대합
Figure 112004031114749-pat00069
과 p의 GCD의 집합에서 가장 작은 값을 갖게 하는
Figure 112004031114749-pat00070
을 결정한다. 이때, 사이클의 길이가
Figure 112004031114749-pat00071
이므로 가장 작은 최대 공약수를 갖게 하는 원소
Figure 112004031114749-pat00072
을 인덱스로 선택하면, 전체 사이클의 길이는 최대가 된다.
이상에서 설명한 바와 같은 방법으로 모든 1에 숫자를 대입하고 이를 다시 작은 행렬들로 대입하여 최종적으로 Mp×Np 행렬을 생성하게 된다.
도 10a 내지 도 10h는 각각 본 발명의 실시예에 따른 패리티 검사 행렬 생성을 위해 작은 행렬에 해당하는 숫자를 할당하는 과정을 나타내는 도면이다.
도 10a 내지 도 10h를 참조하면, 전술한 도 8a 내지 도 8h의 실시예에 대해, p=8인 경우를 적용한 결과를 나타내며, 상세한 설명은 생략하기로 한다.
결국, 본 발명의 실시예에 따르면, LDPC 부호에 대한 태너 그래프를 더 작은 다수의 태너 그래프의 조합으로 분할하여 구성하는 방법을 적용한다. 여기에 작은 분할 그래프를 규칙적인 그래프로 구성하고, 각 규칙적인 그래프에 대해 특정한 연산을 수행하여 유사 랜덤한 그래프로 만들어 전체 그래프의 각 부분을 구성한다. 이런 구성 방법을 통해 분할 구성된 그래프와 이 그래프와 연관된 패리티 검사 행렬은, 완전히 랜덤적으로 구성된 행렬이 아니고 유사 랜덤 패리티 검사 행렬을 갖게 되어 각 부분 단위 그래프를 특정한 숫자로 대체하게 되면, 전체 그래프는 크기가 대폭 줄어든 비이진(nonbinary) 그래프가 된다.
이러한 방법을 이용하면 패리티 검사 행렬을 위해 저장해야하는 메모리의 크기가 대폭으로 감소하고, 메시지 전달 복호기에서 각종 메시지 전달과정을 순환 쉬프트(cyclic shift) 연산으로 간단하게 대체가 가능하며 계산이 병렬화가 되므로 구현 하드웨어의 고속화와 단순화가 가능해진다.
또한, 이런 형태의 그래프 내에서 부호의 성능을 결정하는 사이클의 길이도 단순화된 형태의 다른 조건으로 주어지므로 부호를 생성하는 방법이 단순화되고, 또한 성능의 향상을 가능하게 한다.
상기 도면과 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 따르면, LDPC 부호의 반복 복호기를 병렬적으로 수행하는 방법으로서, 수신 부호어를 일정한 길이로 분할하여 각각을 한번에 처리함으로써, 반복 복호를 고속화하고, 배열 단위 구분으로 인해 복호 속도와 저장 메모리 크기를 절약할 수 있게 된다.
또한, 본 발명에 따르면, 복호기를 병렬 처리하고 벡터 단위의 분할을 기반으로 함으로써, 부호 행렬 생성기에서 고려해야 하는 사이클의 영향을 쉽게 고려할 수 있다.
또한, 본 발명에 따르면, 사이클의 영향을 최소화함으로써, 구현 측면이 유리하면서도 성능이 개선된 부호를 설계하고, 그 부호로 부호화하고 복호하는 것이 가능해지며, 이러한 방법은 천공을 이용해 임의의 부호어 길이에 대해서도 적용할 수 있다.

Claims (18)

  1. 저밀도 패리티 검사(Low Density Parity Check: LDPC) 부호로 부호화하는 부호화 장치에 있어서,
    각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 패리티 검사 행렬을 생성하여 전달하는 부호 행렬 생성기;
    상기 부호 행렬 생성기로부터 전달된 상기 패리티 검사 행렬에 따라 블록 LDPC 부호를 부호화하는 부호화 수단; 및
    상기 부호화 수단이 부호화한 결과를 천공(puncturing)하여 LDPC 부호어를 생성하여 출력하는 부호어 선택기
    를 포함하는 LDPC 부호의 부호화 장치.
  2. 제1항에 있어서,
    상기 부호 행렬 생성기는 부호화될 정보어를 미리 정해진 길이의 부분 행렬로 분할하여 벡터 정보어를 생성하는 것을 특징으로 하는 LDPC 부호의 부호화 장치.
  3. 제2항에 있어서,
    상기 부분 행렬은 각각의 행과 열에 유일한 값을 갖는 작은 행렬들의 조합으로 구성되며, 상기 부분 행렬은 삼각행렬을 구성하는 것을 특징으로 하는 LDPC 부 호의 부호화 장치.
  4. 제1항에 있어서,
    상기 부호화 수단은 상기 부분 행렬로 분할된 패리티 검사 행렬과 이에 대응하여 작게 분할된 태너 그래프를 이용하여 부호화하는 것을 특징으로 하는 LDPC부호의 부호화 장치.
  5. 제1항에 있어서,
    상기 부호화 수단은 상기 패리티 검사 행렬에 대응하여 벡터 단위로 부호어를 병렬 계산하여 부호화하는 것을 특징으로 하는 LDPC부호의 부호화 장치.
  6. LDPC 부호로 부호화된 LDPC 부호어를 복호하는 복호 장치에 있어서,
    상기 LDPC 부호어로 이루어진 복호할 메시지를 일정한 길이로 분할하여 벡터 메시지를 생성하는 부호어 합성기;
    상기 부호어 합성기로부터 벡터 메시지를 입력받아 벡터 메시지 단위로 부호어를 병렬 복호화하는 복호 수단; 및
    상기 복호 수단이 복호화한 부호어를 정보어로 복원하는 정보 복원 수단
    을 포함하는 LDPC 부호의 복호 장치.
  7. 제6항에 있어서,
    상기 부호어 합성기는 상기 LDPC 부호어의 천공된 부분에 부호어 0에 해당하는 연판정(soft decision) 값(일반적으로, 양수 무한대)을 채워 넣어 벡터 메시지를 생성하는 것을 특징으로 하는 LDPC 부호의 복호 장치.
  8. 제6항에 있어서,
    상기 복호 수단은 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클을 탐색하는 것을 특징으로 하는 LDPC 부호의 복호 장치.
  9. 제8항에 있어서,
    상기 복호 수단은 상기 메시지 전달 복호 과정을 순환 쉬프트 연산으로 대체하여 병렬 계산하는 것을 특징으로 하는 LDPC 부호의 복호 장치.
  10. 임의의 부호화될 정보어를 LDPC 부호로 부호화하는 방법에 있어서,
    a) 상기 부호화될 정보어를 미리 정해진 길이의 부분 행렬로 분할하여 벡터 정보어를 생성하는 단계;
    b) 상기 분할된 부분 행렬로 이루어지는 패리티 검사 행렬을 생성하는 단계;
    c) 상기 패리티 검사 행렬에 대응하여 벡터 단위로 부호어를 병렬 계산하여 부호화하는 단계; 및
    d) 상기 부호화된 결과를 천공하여 LDPC 부호어로 생성하는 단계
    를 포함하는 LDPC 부호의 부호화 방법.
  11. 제10항에 있어서,
    상기 a) 단계의 부분 행렬은 각각의 행과 열에 유일한 값을 갖는 작은 행렬들의 조합으로 구성되며, 상기 부분 행렬은 삼각행렬을 구성하는 것을 특징으로 하는 LDPC 부호의 부호화 방법.
  12. 제11항에 있어서,
    상기 b) 단계는 상기 a) 단계에서 구성된 삼각행렬의 부분집합에 대응하는 전체 패리티 검사 행렬을 구성하는 것을 특징을 하는 LDPC 부호의 부호화 방법.
  13. 제12항에 있어서,
    상기 삼각 행렬의 부분집합을 이용한 전체 패리티 검사 행렬은 순환 쉬프트와 이진 덧셈으로 이루어지는 것을 특징으로 하는 LDPC 부호의 부호화 방법.
  14. 제10항에 있어서, 상기 b) 단계는,
    주어진 파라미터들로부터 1과 0만을 원소로 하는 패리티 검사 행렬을 만드는 단계; 및
    상기 패리티 검사 행렬의 1의 자리에 작은 행렬 중 한 가지를 선택하여 대입하는 단계
    를 포함하는 LDPC 부호의 부호화 방법.
  15. 제10항에 있어서,
    상기 c) 단계는 상기 부분 행렬로 분할된 패리티 검사 행렬과 이에 대응하여 작게 분할된 태너 그래프를 이용하여 부호화하는 것을 특징으로 하는 LDPC 부호의 부호화 방법.
  16. 제15항에 있어서,
    상기 작게 분할된 태너 그래프를 규칙적인 그래프로 구성하고, 각각의 규칙적인 그래프를 유사 랜덤한 그래프로 만들어 전체 그래프의 각 부분을 구성하는 것을 특징으로 하는 LDPC 부호의 부호화 방법.
  17. LDPC 부호로 부호화된 LDPC 부호어를 복호하는 방법에 있어서,
    a) 복호할 메시지를 일정한 길이로 분할하여 벡터 메시지를 생성하는 단계;
    b) 상기 벡터 메시지를 입력받아 벡터 단위로 부호어를 병렬 복호하는 단계;
    c) 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클 탐색을 수행하여 패리티 검사 행렬을 구성하는 단계; 및
    d) 상기 구성되는 패리티 검사 행렬을 이용하여 상기 LDPC 부호어를 정보어로 복원하는 단계
    를 포함하는 LDPC 부호의 복호 방법.
  18. LDPC 부호로 부호화된 LDPC 부호 행렬을 생성하는 방법에 있어서,
    a) 각 행과 각 열에 유일한 값을 갖는 정방형 행렬들의 조합으로 구성된 행렬을 생성하도록 메시지 전달 복호 방식으로 사이클을 탐색하는 LDPC 부호 행렬 생성 단계;
    b) 상기 사이클 탐색에 의해 상기 패리티 검사 행렬에 1의 위치를 결정하는 단계; 및
    c) 상기 패리티 검사 행렬의 1의 자리에 가능한 일정 개수의 숫자 중 하나를 선택하여 상기 패리티 검사 행렬의 0이 아닌 원소를 할당하는 단계
    를 포함하는 LDPC 부호의 패리티 검사 행렬 생성 방법.
KR1020040054749A 2003-12-22 2004-07-14 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 KR100550101B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/964,122 US7395494B2 (en) 2003-12-22 2004-10-12 Apparatus for encoding and decoding of low-density parity-check codes, and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030095032 2003-12-22
KR20030095032 2003-12-22

Publications (2)

Publication Number Publication Date
KR20050063660A KR20050063660A (ko) 2005-06-28
KR100550101B1 true KR100550101B1 (ko) 2006-02-08

Family

ID=37255479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040054749A KR100550101B1 (ko) 2003-12-22 2004-07-14 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법

Country Status (1)

Country Link
KR (1) KR100550101B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713371B1 (ko) 2004-08-10 2007-05-04 삼성전자주식회사 블록 저밀도 패리티 검사 부호 부호화/복호 장치 및 방법
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
KR100981501B1 (ko) 2006-11-06 2010-09-10 연세대학교 산학협력단 통신 시스템에서 신호 송신 장치 및 방법
KR101187070B1 (ko) * 2006-04-21 2012-09-27 엘지전자 주식회사 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101221897B1 (ko) * 2006-04-21 2013-01-15 엘지전자 주식회사 Ldpc 부호화 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100659266B1 (ko) * 2004-04-22 2006-12-20 삼성전자주식회사 다양한 코드율을 지원하는 저밀도 패러티 검사 코드에 의한데이터 송수신 시스템, 장치 및 방법
KR100698192B1 (ko) * 2005-09-02 2007-03-22 엘지전자 주식회사 Ldpc 부호의 복호 방법
KR100943623B1 (ko) * 2005-09-30 2010-02-24 삼성전자주식회사 저밀도 패러티 검사 부호의 천공기법
KR100929079B1 (ko) 2005-10-31 2009-11-30 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템의 복호 장치 및 방법
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
KR20070084951A (ko) * 2006-02-22 2007-08-27 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
KR100975558B1 (ko) * 2006-05-03 2010-08-13 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
KR101445080B1 (ko) * 2008-02-12 2014-09-29 삼성전자 주식회사 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치
US20170288697A1 (en) * 2016-03-31 2017-10-05 Silicon Motion Inc. Ldpc shuffle decoder with initialization circuit comprising ordered set memory

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713371B1 (ko) 2004-08-10 2007-05-04 삼성전자주식회사 블록 저밀도 패리티 검사 부호 부호화/복호 장치 및 방법
KR101187070B1 (ko) * 2006-04-21 2012-09-27 엘지전자 주식회사 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101221897B1 (ko) * 2006-04-21 2013-01-15 엘지전자 주식회사 Ldpc 부호화 장치
KR100981501B1 (ko) 2006-11-06 2010-09-10 연세대학교 산학협력단 통신 시스템에서 신호 송신 장치 및 방법
US8117516B2 (en) 2006-11-06 2012-02-14 Samsung Electronics Co., Ltd Apparatus and method for signal transmission/reception in a communication system
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
US8190967B2 (en) 2006-12-08 2012-05-29 Samsung Electronics Co., Ltd. Parity check matrix storing method, block LDPC coding method, and apparatus using parity check matrix storing method

Also Published As

Publication number Publication date
KR20050063660A (ko) 2005-06-28

Similar Documents

Publication Publication Date Title
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
JP7372369B2 (ja) 構造的ldpcの符号化、復号化方法および装置
JP4516602B2 (ja) データのエンコードおよびデコード方法および装置
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
JP5199463B2 (ja) ターボldpc復号
EP2176758B1 (en) Generation of parity-check matrices
KR101227264B1 (ko) Ldpc 코드용 디코더
KR100550101B1 (ko) 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
JP5700041B2 (ja) 符号化装置、誤り訂正符号構成方法およびそのプログラム
JP2002353946A (ja) 有限サイズのデータブロックに対して誤り訂正符号を評価する方法
WO2015135298A1 (zh) 一种支持低码率编码的方法及装置、计算机存储介质
CN113612486B (zh) 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
KR101147768B1 (ko) 채널 코드를 이용한 복호화 방법 및 장치
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
JP2019525638A (ja) 2のべき乗でない長さに拡張されたポーラ符号の符号化および復号化
EP1878117A2 (en) Method and apparatus for generating error-correcting and error-detecting codes using zero-divisors and units in group rings
Moriyama et al. A study on construction of Low-Density Parity-Check codes using nonlinear feedback shift registers
RU2755295C1 (ru) Способ перемежения кодовых символов в коде с низкой плотностью проверок на четность
RU2365034C2 (ru) Способ и устройство для кодирования и декодирования данных
Doğan An investigation on belief propagation decoding of polar codes
JP5999634B2 (ja) 演算回路設定方法
Louidor The Tradeoff Function for a Class of RLL(d,k) Constraints

Legal Events

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

Payment date: 20130122

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150120

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190125

Year of fee payment: 14