KR20080020819A - 저밀도 패리티 검사 코드의 복호장치 - Google Patents

저밀도 패리티 검사 코드의 복호장치 Download PDF

Info

Publication number
KR20080020819A
KR20080020819A KR1020060084183A KR20060084183A KR20080020819A KR 20080020819 A KR20080020819 A KR 20080020819A KR 1020060084183 A KR1020060084183 A KR 1020060084183A KR 20060084183 A KR20060084183 A KR 20060084183A KR 20080020819 A KR20080020819 A KR 20080020819A
Authority
KR
South Korea
Prior art keywords
data
code
probability value
unit
input
Prior art date
Application number
KR1020060084183A
Other languages
English (en)
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 KR1020060084183A priority Critical patent/KR20080020819A/ko
Publication of KR20080020819A publication Critical patent/KR20080020819A/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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • 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
    • 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/6522Intended application, e.g. transmission or communication standard

Landscapes

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

Abstract

본 발명은 복호속도가 높고, 복잡도를 낮은 LDPC(Low Density Parity Check)의 복호장치를 제공한다.
본 발명의 LDPC 복호장치에서 검사노드 연산기는, 복수의 가변노드 연산기로부터 입력되는 데이터들의 부호들을 각기 2개씩 곱셈하여 출력부호를 결정하고, 또한 입력되는 데이터들의 절대값들을 순차적으로 2개씩 비교하여 최소 값을 추출하며, 추출한 최소값들에 출력부호를 삽입하여 가변노드 연산기로 출력한다. 그리고 가변노드 연산기는 복수의 검사노드 연산기로부터 입력되는 복수의 데이터들을 합산하고, 입력되는 복수의 데이터들 중에서 하나의 데이터를 제외한 나머지 데이터를 합산한 데이터에서 감산하여 확률값을 계산하며, 계산한 확률값의 크기를 스케일링한 후 복수의 검사노드 연산기로 출력한다.
LDPC, DVB, DVB-S2, 복호장치, 가변노드, 검사노드, 패리티비트, 태너그래프

Description

저밀도 패리티 검사 코드의 복호장치{A DECODING APPARATUS OF LOW DENSITY PARITY CHECK CODES}
도 1은 패리티 검사 행렬을 보인 도면,
도 2는 방송신호의 비트 수가 16200이고, 코드 레이트가 1/4일 경우에 패리티 비트의 위치정보를 보인 도면,
도 3은 패리티 검사행렬에서 B 매트릭스의 구성을 예로 들어 보인 도면,
도 4는 태너 그래프에 적용한 복호장치의 구성을 보인 도면,
도 5는 LDPC 코드의 복호과정을 설명하기 위한 신호흐름도,
도 6은 본 발명의 복호장치에서 가변노드로부터 입력되는 데이터로 검사노드가 확률 값을 계산하는 검사노드 연산기의 구성을 보인 도면, 및
도 7은 본 발명의 복호장치에서 검사노드로부터 입력되는 확률값으로 가변노드가 확률값을 계산하는 검사노드 연산기의 구성을 보인 도면이다.
본 발명은 저밀도 패리티 검사 코드의 복호장치에 관한 것이다.
유럽형 차세대 위성방송의 표준인 DVB(Digital Video Broadcasting)-S2는 DVB-S보다 다양한 변조 기법을 사용한다. 이에 따라 DVB-S2는 좀 더 효율적인 오류정정기법인 저밀도 패리티 검사(Low Density Parity Check ; 이하, 'LDPC'라고 약칭함)를 사용하여 오류를 정정하도록 하고 있다.
상기 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) 통신로 환경 하에서 코드의 길이가 백만(106)비트 정도일 때 비트 오류율(BER) 10-6을 달성하기 위해 Shannon 통신로 용량으로부터 단지 0.13㏈가 추가적으로 필요하기 때문에 대단히 낮은 비트 오류율의 고품질 전송 환경을 요구하는 응용에 적절하다.
일반적인 블록 코드의 복호 방법인 대수적 복호방법(Algebraic Decoding Algorithm)과는 달리 LDPC 코드의 복호는 확률적 복호방법(Probabilistic Decoding Algorithm)으로 구성됨으로써 그래프 이론과 확률적 추측 이론을 적용한 신뢰 전파 방법이 그대로 적용된다.
또한, LDPC 코드의 복호는 통신로를 통해 수신된 코드어의 각 비트에 대해 해당 비트가 '1'이거나 '0'이었을 확률을 계산하게 된다. 여기서, 상기 계산한 확률 정보를 메시지라고 부르며, 패리티 검사 행렬에서 정의된 각 패리티를 통해 메시지의 품질을 검사할 수 있다.
패리티 검사 행렬의 특정 패리티가 만족되었을 때, 계산되는 메시지를 특별히 패리티 검사 메시지라고 하며, 각 코드어 비트에 대해서 가장 가능성이 큰 값을 나타내어 준다.
이때, 각 패리티에 대한 패리티 검사 메시지는 해당 비트들의 값을 결정하는데 이용하고, 여기서 계산된 비트에 대한 정보는 비트 메시지라고 한다.
그리고 이러한 메시지 전달을 반복하는 과정에서 각 코드어들의 비트에 대한 정보는 패리티 검사 행렬의 모든 패리티가 만족하게 된다. 최종적으로 패리티 검사 행렬의 모든 패리티가 만족되면, 코드어의 복호를 종료한다.
일반적으로 신호대 잡음비가 낮은 통신로 환경에서는 조직코드(Systematic Codes)가 사용되므로 코드어의 특정부분을 추출하여 정보 비트를 재생하게 된다.
여기서, 조직코드란 코드어 내에 정보어가 코드어의 일부로 존재하게 만든 코드이다. 즉, 코드어를 정보어 부분과 오류를 정정하기 위하여 부가로 추가된 부분으로 명확히 구분할 수 있게 만든 코드를 말한다.
일반적으로 그래프를 이용한 복호에 적합한 코드로는 LDPC 코드가 있으며, 이 LDPC 코드를 복호하기 위해 제안된 디코딩 알고리즘으로 Sum-product 알고리즘과, Min-sum 알고리즘이 있다. 또한, LDPC 코드를 복호하는 Sum-Product 알고리즘으로 메시지를 계산하여 주고받으면서 반복적으로 복호를 시행하는 태너(Tanner) 그래프가 사이클을 갖고 있지 않을 때 최적의 성능을 보이고 있다.
상기 태너 그래프는 행렬에서 열을 나타내는 가변(variable) 노드와 행렬에서 행을 나타내는 검사(check) 노드로 구성되어 있고, 메시지는 두 가지 노드로 전송된다.
이러한 메시지 전송 알고리즘을 이용하여 실제적으로 LDPC 복호장치를 구현할 경우에 복호 속도를 높이게 되면, 배선이나 하드웨어가 복잡해지고, 또한 복호 알고리즘의 복잡도가 높아지게 된다.
LDPC 복호 과정은 태너 그래프를 기반으로 하여 진행되는데, 노드들의 메시지 처리 방식에 따라 구조가 달라지고 그로 인해 성능이나 처리 속도 또한 달라진 다.
그러므로 LDPC 복호장치를 구현할 경우에 복호 속도, 성능 그리고 복잡도 등을 고려하여 구현해야 된다.
본 발명의 목적은 LDPC를 복호할 경우에 복호 속도를 높이고, 복잡도를 줄일 수 있는 LDPC 코드의 복호장치를 제공하는데 있다.
이러한 목적을 가지는 본 발명의 LDPC 코드의 복호장치는, 검사노드에 구비되고, 입력되는 데이터로 확률값을 연산하는 검사노드 연산기와, 상기 검사노드 연산기가 연산한 확률값으로 다시 확률값을 계산하는 가변노드 연산기로 이루어지고, 상기 검사노드 연산기는, 복수의 가변노드 연산기로부터 입력되는 데이터를 제어신호에 따라 순차적으로 입력하는 스위칭부와, 상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부와, 상기 데이터 저장부에 저장된 복수의 데이터들을 순차적으로 2개씩 비교하여 최소 값을 저장하는 최소값 저장부와, 상기 스위칭부가 입력한 복수의 데이터들의 부호를 저장하는 부호 저장부와, 상기 부호 저장부에 저장된 복수의 부호들을 순차적으로 2개씩 곱하여 출력할 데이터의 부호를 결정하는 부호 결정부와, 상기 최소값 저장부에 저장된 최소값들을 상기 부호 결정부가 결정한 부호로 출력하는 확률값 출력부를 포함하여 구성됨을 특징으로 한다.
또한 본 발명의 LDPC 코드의 복호장치는, 검사노드에 구비되고, 입력되는 데이터로 확률값을 연산하는 검사노드 연산기와, 상기 검사노드 연산기가 연산한 확률값으로 다시 확률값을 계산하는 가변노드 연산기로 이루어지고, 상기 가변노드 연산기는, 복수의 검사노드 연산기로부터 입력되는 데이터를 입력하는 스위칭부, 상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부, 상기 스위칭부가 입력한 복수의 데이터를 합산하는 데이터 합산부, 상기 데이터 합산부가 합산한 값에서, 상기 데이터 저장부에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 데이터를 감산하여 확률값을 계산하는 확률값 계산부와, 상기 확률값 계산부가 계산한 확률값의 크기를 제어신호에 따라 스케일링하여 상기 복수의 검사노드 연산기로 출력하는 스케일링부를 포함하여 구성됨을 특징으로 한다.
이하, 본 발명의 LDPC 코드의 복호장치의 바람직한 실시 예를 예시한 첨부된 도면을 참조하여 상세히 설명한다. 다만, 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그에 대한 상세한 설명은 생략한다.
일반적으로 DVB-S2는 효율적인 코드를 위하여 도 1과 같이 패리티 검사 행렬 H(n-k)·n = [A(n-k)·k·B(n-k)·(n-k)]를 제시하고 있다.
여기서, H(n-k)·n는 패리티 검사 행렬이고, A(n-k)·k 및 B(n-k)·(n-k)]는 A 행렬 및 B 행렬이라고 지칭하고 있다.
상기한 패리티 검사행렬에서 A 행렬 및 B 행렬을 합한 열방향 노드(n)를 가변(variable) 노드라고 하고, 행방향 노드(n-k)를 검사(check) 노드라고 한다. 그리고 상기 가변노드에서 A 행렬의 열방향 노드(k)를 정보(information) 노드라고 하며, B 행렬의 열방향 노드(n-k)를 패리티(parity) 노드라고 한다.
상기 A 행렬에서 '1'의 정보가 삽입된 위치는 방송신호의 비트 수 및 코드 레이트(code rate)에 따라 가변되는 값을 갖는 것으로서 예를 들면, 방송신호의 비트 수가 16200이고, 코드 레이트가 1/4일 경우에 도 2에 도시된 바와 같은 패리티 비트의 위치정보가 제공된다.
상기 B 행렬은 하삼각 행렬로서 예를 들면, 도 3에 도시된 바와 같이 대각선 방향으로 연속하여 1이 나타나는 행렬이다.
도 4는 태너 그래프에 적용한 복호장치의 구성을 보인 도면이다. 도 4를 참조하면, 태너 그래프에 적용한 복호장치는 복수의 가변노드(400)와, 복수의 검사노드(410)로 이루어진다. 상기 복수의 가변노드(400)와 복수의 검사노드(410)는 '1'의 정보가 삽입된 위치에 따라 상호간에 데이터를 전송할 수 있게 연결되고, 상기 복수의 가변노드(400)들 각각에는 초기값이 입력된다.
도 5는 상기한 도 4와 같은 구성의 복호장치가 LDPC 코드를 복호하는 과정을 설명하기 위한 신호흐름도이다. 도 5를 참조하면, 제어부(도면에 도시되지 않았음)가 채널 통과신호를 입력한다(S500). 그리고 제어부는 카운트(Count)의 값을 '0'으로 초기화하고(S502), 가변노드(400)에 초기값을 설정한다(S504).
상기 가변노드(400)에 설정한 초기값은 검사노드(410)로 전달되어 검사노드(410)가 상기 가변노드(400)로부터 입력받은 값으로 확률 값을 계산한다(S506).
상기 검사노드(410)에서의 확률 값 계산이 완료되면, 그 계산한 확률 값을 가변노드(400)가 전달받아 확률값을 계산하고(S508), 검사노드(410)가 계산한 확률값과 상기 초기값을 가산한다(S510).
그리고 상기 제어부는 상기 확률값과 상기 초기값을 가산한 값이 '0' 또는 '1'인지의 여부를 판단하고(S512), 그 판단 결과로 에러가 발생하였는지의 여부를 판단한다(S514).
상기 판단 결과 에러가 발생하였을 경우에 카운트(Count)의 값이 최대값 인지의 여부를 판단하고(S516), 카운트(Count)의 값이 최대값이 아닐 경우에 카운트(Count)의 값에 '1'을 가산하고(S518), 검사노드(410)로 상기 가변노드(400)가 상기 단계(S508)에서 계산한 확률 값을 검사노드(410)로 전달하여(S520) 검사노드(410)가 다시 확률 값을 계산하고, 계산한 확률값에 초기값을 가산한 후 그 값이 '0' 또는 '1'인지의 여부로 에러가 발생하였는지의 여부를 판단하는 동작을 반복 수행한다.
그리고 상기 판단 결과 에러가 발생하지 않았거나 또는 에러가 발생하였어도 카운트(Count)의 값이 최대값일 경우에 상기 가변노드(400)의 값을 출력하고(S522), LDPC 코드의 복호를 종료한다.
도 6은 본 발명의 복호장치에서 가변노드로부터 입력되는 데이터로 검사노드가 확률 값을 계산하는 검사노드 연산기의 구성을 보인 도면이다. 도 6을 참조하면, 본 발명의 검사노드 연산기는, 복수의 가변노드 연산기로부터 입력되는 데이터를 제어신호에 따라 순차적으로 입력하는 스위칭부(600)와, 상기 스위칭부(600)가 입력한 복수의 데이터를 저장하는 데이터 저장부(610)와, 상기 데이터 저장부(610)에 저장된 복수의 데이터들을 순차적으로 2개씩 비교하여 최소 값을 저장하는 최소값 저장부(620)와, 상기 스위칭부(600)가 입력한 복수의 데이터들의 부호를 저장하는 부호 저장부(630)와, 상기 부호 저장부(630)에 저장된 복수의 부호들을 순차적으로 2개씩 곱하여 출력할 데이터의 부호를 결정하는 부호 결정부(640)와, 상기 최소값 저장부(620)에 저장된 최소값들을 상기 부호 결정부(640)가 결정한 부호로 출력하는 확률값 출력부(650)로 구성하였다.
상기 스위칭부(600)는 예를 들면, 멀티플렉서로 이루어지는 것으로서 복수의 가변노드 연산기로부터 입력되는 복수의 데이터들을 제어신호에 따라 순차적으로 하나씩 선택하여 입력한다.
상기 데이터 저장부(610)는, 예를 들면, 디멀티플렉서인 스위칭부(611)와, 복수의 입력 레지스터(613-1, 613-2, …)를 구비하고, 상기 스위칭부(600)로부터 입력되는 데이터를 제어신호에 따라 상기 스위칭부(611)가 스위칭시켜 상기 복수의 입력 레지스터(613-1, 613-2, …)에 저장한다.
여기서, 상기 데이터 저장부(710)는, 상기 스위칭부(600)로부터 입력되는 데이터들 중에서 부호를 제외한 절대값을 입력하는 것으로서 상기 복수의 입력 레지스터(613-1, 613-2, …)에는 각각의 데이터들의 절대값이 각기 저장된다.
상기 최소값 저장부(620)는, 최소값 검출부(621)와, 복수의 최소값 레지스터(623-1, 623-2, …)를 구비한다. 상기 최소값 검출부(621)는 상기 데이터 저장부(610)에 저장된 복수의 데이터들 중에서 각기 2개씩 비교하여 최소값을 검출한다. 상기 복수의 최소값 레지스터(623-1, 623-2, …)는 상기 최소값 검출부(621)가 검출한 최소값들을 각기 저장한다.
상기 부호 저장부(630)는 예를 들면, 디멀티플렉서인 스위칭부(631)와, 복수의 부호 레지스터(631-1, 631-2, …)를 구비하고, 상기 스위칭부(600)가 출력하는 데이터들의 부호를 상기 스위칭부(631)가 스위칭하여 상기 복수의 부호 레지스터(631-1, 631-2, …)에 각기 저장한다.
상기 부호 결정부(640)는 곱셈기(641) 및 복수의 출력부호 레지스터(643-1, 643-2, …)를 구비한다. 상기 곱셈기(641)는 상기 부호 저장부(630)에 저장된 복수의 부호들 중에서 각기 두 개의 부호를 곱하여 출력할 데이터의 부호를 결정하고, 그 결정한 부호는 상기 복수의 출력부호 저장부(643-1, 643-2, …)에 각기 저장된다.
상기 확률값 출력부(650)는, 복수의 부호 삽입부(651-1, 651-2, …)와, 예를 들면, 멀티플렉서인 스위칭부(653)로 이루어진다. 상기 복수의 부호 삽입부(651-1, 651-2, …)들 각각은 상기 최소값 저장부(620)에 저장된 복수의 최소 값을 입력하고, 그 입력한 최소값의 부호로 상기 부호 결정부(640)가 결정한 복수의 부호를 삽입하며, 그 부호를 삽입한 데이터를 상기 스위칭부(653)가 순차적으로 선택하여 출력한다.
이와 같이 구성된 본 발명의 검사노드 연산기는 복수의 가변노드 연산기로부터 입력되는 데이터를 스위칭부(600)가 스위칭하여 직렬로 변환한다. 예를 들면, LDPC 코드를 복호하는 초기에는 복수의 가변노드에 각기 설정되는 초기 값이 스위칭부(600)로 입력되어 제어신호에 따라 직렬로 변환되고, LDPC 코드를 복호하는 중간에는 복수의 가변노드 연산기가 각기 계산하는 확률값이 스위칭부(600)로 입력되어 직렬로 변환된다.
여기서, 복수의 가변노드 연산기가 각기 계산하는 확률값은 도 7을 참조하여 후술한다.
상기 스위칭부(600)에서 직렬로 변환된 데이터는 데이터 저장부(610)의 스위칭부(611)에서 제어신호에 따라 스위칭되어 복수의 저장 레지스터(611-1, 611-2, …)에 순차적으로 저장된 후 최소값 저장부(620)의 최소값 검출부(621)로 입력된다.
즉, 상기 스위칭부(600)에서 출력되는 데이터들 중에서 부호가 없는 절대값의 데이터가 복수의 저장 레지스터(611-1, 611-2, …)에 저장되어 최소값 검출부(621)로 입력된다.
그러면, 상기 최소값 저장부(620)는 상기 데이터 저장부(610)의 복수의 저장 레지스터(611-1, 611-2, …)에 저장된 데이터들을 순차적으로 2개씩 선택하여 최소 값을 검출하고, 검출한 최소값은 복수의 최소값 레지스터(623-1, 623-2, …)에 순차적으로 저장된다.
또한 상기 스위칭부(600)에서 직렬로 변환된 복수의 데이터들의 부호는 부호 저장부(630)의 스위칭부(631)에서 제어신호에 따라 스위칭되어 복수의 부호 레지스터(633-1, 633-2, …)에 저장되고, 그 복수의 부호 레지스터(633-1, 633-2, …)에 저장된 부호들은 부호 결정부(640)의 곱셈기(641)로 입력된다.
그러면 상기 곱셈기(641)는 부호저장부(630)의 복수의 부호 레지스터(633-1, 633-2, …)에 저장된 부호들을 순차적으로 2개씩 선택하여 곱셈 및 출력 데이터의 부호를 결정하고, 그 결정한 부호를 복수의 출력부호 레지스터(643-1, 643-2, …)에 순차적으로 저장한다. 예를 들면, 곱셈기(641)가 곱하는 2개의 부호가 모두 플러스이거나 또는 모두 마이너스일 경우에 부호 레지스터(633-1, 633-2, …)에 플러스 부호를 저장하고, 곱셈기(641)가 곱하는 2개의 부호들 중에서 하나의 부호가 플러스이고, 다른 하나의 부호가 마이너스일 경우에 부호 레지스터(633-1, 633-2, …)에 마이너스 부호를 저장한다.
이와 같은 상태에서 확률값 출력부(650)의 부호 삽입부(651-1, 651-2, …)들은 상기 복수의 최소값 레지스터(623-1, 623-2, …)에 각기 저장된 최소값들에 상 기 출력부호 레지스터(643-1, 643-2, …)에 각기 저장된 부호를 삽입하고, 그 부호를 삽입한 최소값들을 제어신호에 따라 스위칭부(653)가 스위칭시켜 하나씩 선택하며, 그 선택한 최소값들을 복수의 가변노드 연산기로 출력한다.
도 7은 본 발명의 복호장치에서 검사노드로부터 입력되는 확률값으로 가변노드가 확률값을 계산하는 검사노드 연산기의 구성을 보인 도면이다. 도 7을 참조하면, 본 발명의 검사노드 연산기는, 복수의 검사노드 연산기로부터 입력되는 데이터를 입력하는 스위칭부(700)와, 상기 스위칭부(700)가 입력한 복수의 데이터를 저장하는 데이터 저장부(710)와, 상기 스위칭부(700)가 입력한 복수의 데이터를 합산하는 데이터 합산부(720)와, 상기 데이터 합산부(720)가 합산한 값에서 상기 데이터 저장부(710)에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 데이터를 감산하여 확률값을 계산하는 확률값 계산부(730)와, 상기 확률값 계산부(730)가 계산한 확률값의 크기를 조절하여 상기 복수의 검사노드 연산기로 출력하는 스케일링부(740)로 구성하였다.
상기 스위칭부(700)는, 예를 들면, 멀티플렉서로 이루어지는 것으로서 복수의 가변노드 연산기로부터 입력되는 복수의 데이터들을 제어신호에 따라 순차적으로 하나씩 선택하여 입력한다.
상기 데이터 저장부(710)는, 예를 들면, 디멀티플렉서인 스위칭부(711)와, 복수의 입력 레지스터(713-1, 713-2, …)를 구비하고, 상기 스위칭부(700)로부터 입력되는 데이터를 제어신호에 따라 상기 스위칭부(711)가 스위칭시켜 상기 복수의 입력 레지스터(713-1, 713-2, …)에 저장한다.
상기 데이터 합산부(720)는 가산기(721) 및 스위칭부(723)로 구성되는 것으로서 상기 스위칭부(700)로부터 입력되는 데이터들을 가산기(721)가 가산하고, 상기 가산기(723)가 가산한 값을 제어신호에 따라 상기 스위칭부(723)가 상기 가산기(723)로 궤환시켜 상기 스위칭부(700)로부터 입력되는 데이터들을 가산기(721)가 모두 가산하게 하며, 모든 데이터의 가산이 완료될 경우에 그 합산 값을 제어신호에 따라 상기 확률값 계산부(730)로 출력한다.
상기 확률값 계산부(730)는, 데이터 선택부(731) 및 감산기(733)로 구성된다. 상기 데이터 선택부(731)는 상기 데이터 저장부(710)의 복수의 입력 레지스터(713-1, 713-2, …)에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 모든 데이터들을 선택하고, 상기 데이터 선택부(731)가 선택한 데이터들을 상기 감산기(733)가 상기 데이터 합산부(720)로부터 입력되는 합산값에서 감산하여 확률값을 계산한다.
이와 같이 구성된 본 발명의 가변노드 연산기는 복수의 검사노드 연산기로부터 입력되는 복수의 데이터들을 제어신호에 따라 스위칭부(700)가 스위칭하여 순차적으로 하나씩 선택한다.
상기 스위칭부(700)가 하나씩 순차적으로 선택하는 복수의 데이터들을 데이터 저장부(700)의 스위칭부(711)가 스위칭하여 복수의 입력 레지스터(713-1, 713- 2, …)에 순차적으로 저장되며, 그 복수의 입력 레지스터(713-1, 713-2, …)에 저장된 데이터들은 확률값 계산부(730)로 입력된다.
또한 상기 스위칭부(700)가 하나씩 순차적으로 선택하는 복수의 데이터들은 데이터 합산부(720)의 가산기(721)에 입력되어 가산되고, 상기 가산기(721)의 출력 데이터는 제어신호에 따라 스위칭부(723)를 통해 가산기(721)로 궤환되는 것으로서 가산기(721)는 상기 스위칭부(700)로부터 입력되는 복수의 데이터들을 순차적으로 모두 합산하며, 합산한 데이터는 제어신호에 따라 상기 스위칭부(723)를 통해 확률값 계산부(730)로 입력된다.
그러면, 상기 확률값 계산부(730)는 데이터 선택부(731)가 상기 스위칭부(700)의 복수의 입력 레지스터(713-1, 713-2, …)로부터 입력되는 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 모든 데이터들을 선택하고, 그 선택한 복수의 데이터들은 감산기(733)로 입력되는 것으로서 감산기(723)는 상기 데이터 합산부(720)로부터 입력되는 합산 데이터에서 상기 데이터 선택부(731)가 선택한 복수의 데이터들을 감산하여 확률값을 계산한다. 즉, 상기 확률값 계산부(730)는 데이터 선택부(731)로부터 입력되는 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 모든 데이터들을 상기 데이터 합산부(720)로부터 입력되는 합산 데이터에서 감산하여 확률값을 계산한다.
상기 확률값 계산부(730)가 계산한 확률값은 제어신호에 따라 스케일링부(740)에서 크기가 조절된 후 복수의 검사노드 연산기로 출력된다.
한편, 상기에서는 본 발명을 특정의 바람직한 실시 예에 관련하여 도시하고 설명하였지만, 이하의 특허청구범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도 내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.
이상에서 상세히 설명한 바와 같이 본 발명은 DVB-S2를 위한 LDPC 복호장치에서 가변노드에서의 확률값과, 검사노드에서의 확률값을 계산하는 것으로서 구성이 간단하고, 빠른 속도로 복호할 수 있다.

Claims (10)

  1. 입력되는 데이터로 확률값을 연산하는 검사노드 연산기; 및
    상기 검사노드 연산기가 연산한 확률값으로 다시 확률값을 계산하는 가변노드 연산기로 이루어지고,
    상기 검사노드 연산기는;
    복수의 가변노드 연산기로부터 입력되는 데이터를 제어신호에 따라 순차적으로 입력하는 스위칭부;
    상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부;
    상기 데이터 저장부에 저장된 복수의 데이터들을 순차적으로 2개씩 비교하여 최소 값을 저장하는 최소값 저장부;
    상기 스위칭부가 입력한 복수의 데이터들의 부호를 저장하는 부호 저장부;
    상기 부호 저장부에 저장된 복수의 부호들을 순차적으로 2개씩 곱하여 출력할 데이터의 부호를 결정하는 부호 결정부; 및
    상기 최소값 저장부에 저장된 최소값들을 상기 부호 결정부가 결정한 부호로 출력하는 확률값 출력부를 포함하여 구성된 저밀도 패리티 검사 코드의 복호장치.
  2. 입력되는 데이터로 확률값을 연산하는 검사노드 연산기; 및
    상기 검사노드 연산기가 연산한 확률값으로 다시 확률값을 계산하는 가변노 드 연산기로 이루어지고,
    상기 가변노드 연산기는;
    복수의 검사노드 연산기로부터 입력되는 데이터를 입력하는 스위칭부;
    상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부;
    상기 스위칭부가 입력한 복수의 데이터를 합산하는 데이터 합산부;
    상기 데이터 합산부가 합산한 값에서, 상기 데이터 저장부에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 데이터를 감산하여 확률값을 계산하는 확률값 계산부; 및
    상기 확률값 계산부가 계산한 확률값의 크기를 제어신호에 따라 스케일링하여 상기 복수의 검사노드 연산기로 출력하는 스케일링부를 포함하여 구성된 저밀도 패리티 검사 코드의 복호장치.
  3. 입력되는 데이터로 확률값을 연산하는 검사노드 연산기; 및
    상기 검사노드 연산기가 연산한 확률값으로 다시 확률값을 계산하는 가변노드 연산기로 이루어지고,
    상기 검사노드 연산기는;
    복수의 가변노드 연산기로부터 입력되는 데이터를 제어신호에 따라 순차적으로 입력하는 스위칭부;
    상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부;
    상기 데이터 저장부에 저장된 복수의 데이터들을 순차적으로 2개씩 비교하여 최소 값을 저장하는 최소값 저장부;
    상기 스위칭부가 입력한 복수의 데이터들의 부호를 저장하는 부호 저장부;
    상기 부호 저장부에 저장된 복수의 부호들을 순차적으로 2개씩 곱하여 출력할 데이터의 부호를 결정하는 부호 결정부; 및
    상기 최소값 저장부에 저장된 최소값들을 상기 부호 결정부가 결정한 부호로 출력하는 확률값 출력부를 포함하며,
    상기 가변노드 연산기는;
    복수의 검사노드 연산기로부터 입력되는 데이터를 입력하는 스위칭부;
    상기 스위칭부가 입력한 복수의 데이터를 저장하는 데이터 저장부;
    상기 스위칭부가 입력한 복수의 데이터를 합산하는 데이터 합산부;
    상기 데이터 합산부가 합산한 값에서, 상기 데이터 저장부에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 나머지 데이터를 감산하여 확률값을 계산하는 확률값 계산부; 및
    상기 확률값 계산부가 계산한 확률값의 크기를 제어신호에 따라 스케일링하여 상기 복수의 검사노드 연산기로 출력하는 스케일링부를 포함하여 구성된 저밀도 패리티 검사 코드의 복호장치.
  4. 제 1 항 내지 제 3 항중 어느 하나의 항에 있어서, 상기 데이터 저장부는;
    입력되는 데이터를 제어신호에 따라 스위칭시키는 스위칭부; 및
    상기 스위칭부가 스위칭시킨 데이터를 저장하는 복수의 입력 레지스터로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  5. 제 1 항 또는 제 3 항에 있어서, 상기 최소값 저장부는;
    상기 데이터 저장부에 저장된 복수의 데이터들을 순차적으로 2개씩 비교하여 최소값을 검출하는 최소값 검출부; 및
    상기 최소값 검출부가 검출한 최소값들을 각기 저장하는 복수의 최소값 레지스터로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  6. 제 1 항 또는 제 3 항에 있어서, 상기 부호 저장부는;
    입력되는 데이터들의 부호들을 스위칭하는 스위칭부; 및
    상기 스위칭부가 스위칭한 부호들을 각기 저장하는 복수의 부호 레지스터로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  7. 제 1 항 또는 제 3 항에 있어서, 상기 부호 결정부는;
    상기 부호 저장부(630)에 저장된 복수의 부호들을 순차적으로 각기 두 개씩 곱셈하여 출력할 데이터의 부호를 결정하는 곱셈기; 및
    상기 곱셈기가 결정한 부호는 각기 저장하는 복수의 출력부호 저장부로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  8. 제 1 항 또는 제 3 항에 있어서, 상기 확률값 출력부는;
    복수의 부호 삽입부(651-1, 651-2, …)와, 예를 들면, 멀티플렉서인 스위칭부(653)로 이루어진다. 상기 복수의 부호 삽입부(651-1, 651-2, …)들 각각은
    상기 최소값 저장부에 저장된 복수의 최소 값을 입력하고 입력한 최소값의 부호로 상기 부호 결정부가 결정한 부호를 삽입하는 부호 삽입부; 및
    상기 부호 삽입부가 부호를 삽입한 데이터를 순차적으로 선택하여 상기 가변노드 연산기로 출력하는 스위칭부로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  9. 제 2 항 또는 제 3 항에 있어서, 상기 데이터 합산부는;
    입력되는 데이터들을 가산하는 가산기; 및
    상기 가산기가 가산한 값을 제어신호에 따라 상기 가산기로 궤환시켜 상기 입력되는 데이터들을 가산기가 모두 합산하게 하고, 입력 데이터의 가산이 완료될 경우에 제어신호에 따라 합산한 데이터를 상기 확률값 계산부로 출력하는 스위칭부 로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
  10. 제 2 항 또는 제 3 항에 있어서, 상기 확률값 계산부는;
    상기 데이터 저장부에 저장된 복수의 데이터들 중에서 순차적으로 하나의 데이터를 제외한 모든 데이터들을 선택하는 데이터 선택부; 및
    상기 데이터 합산부로부터 입력되는 합산값에서 상기 데이터 선택부가 선택한 데이터들을 감산하는 감산기로 구성됨을 특징으로 하는 저밀도 패리티 검사 코드의 복호장치.
KR1020060084183A 2006-09-01 2006-09-01 저밀도 패리티 검사 코드의 복호장치 KR20080020819A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060084183A KR20080020819A (ko) 2006-09-01 2006-09-01 저밀도 패리티 검사 코드의 복호장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060084183A KR20080020819A (ko) 2006-09-01 2006-09-01 저밀도 패리티 검사 코드의 복호장치

Publications (1)

Publication Number Publication Date
KR20080020819A true KR20080020819A (ko) 2008-03-06

Family

ID=39395586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060084183A KR20080020819A (ko) 2006-09-01 2006-09-01 저밀도 패리티 검사 코드의 복호장치

Country Status (1)

Country Link
KR (1) KR20080020819A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088559A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 Ldpc 코드 디코딩 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088559A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 Ldpc 코드 디코딩 장치

Similar Documents

Publication Publication Date Title
KR101093313B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
Djordjevic et al. Channel coding for optical channels
US10164656B2 (en) Bit flipping algorithm for providing soft information during hard decision hard decoding
US8108760B2 (en) Decoding of linear codes with parity check matrix
US7603607B2 (en) Decoding unit and preprocessing unit implemented according to low density parity check code system
US8166363B2 (en) Decoding device and method
US8074142B2 (en) Decoding device and receiving device
US20050257124A1 (en) Node processors for use in parity check decoders
JP2010130193A (ja) 誤り訂正復号装置
KR20080020819A (ko) 저밀도 패리티 검사 코드의 복호장치
KR20110114204A (ko) 저밀도 패리티 체크 부호화 방법 및 이를 이용하는 저밀도 패리티 체크 인코더
JP5523064B2 (ja) 復号装置及び方法
JP2008153874A (ja) 軟判定復号装置、軟判定復号方法および軟判定復号プログラム
JP4645640B2 (ja) 復号器、受信装置及び符号化データの復号方法
CN112470405A (zh) 非二进制码的消息传递解码的可变节点处理方法和设备
KR20090094984A (ko) 확률 값 계산장치
JP2007336189A (ja) 復号装置
JP2008236387A (ja) 軟判定復号装置および軟判定復号プログラム
Rajagopal et al. FPGA IMPLEMENTATION OF SSPA DECODER
JP2007081602A (ja) 復号装置および復号方法
Chandran Investigation of the use of Infinite impulse response filters to construct linear block codes
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
JP2008147764A (ja) 軟判定復号装置および軟判定復号プログラム
KR101208505B1 (ko) Ldpc 코드에 의한 복호화 방법 및 그 장치
JP2009038662A (ja) 復号器、受信装置及び符号化データの復号方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination