KR20130077741A - 엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템 - Google Patents
엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템 Download PDFInfo
- Publication number
- KR20130077741A KR20130077741A KR1020120041105A KR20120041105A KR20130077741A KR 20130077741 A KR20130077741 A KR 20130077741A KR 1020120041105 A KR1020120041105 A KR 1020120041105A KR 20120041105 A KR20120041105 A KR 20120041105A KR 20130077741 A KR20130077741 A KR 20130077741A
- Authority
- KR
- South Korea
- Prior art keywords
- ldpc
- check matrix
- parity check
- decoder
- decoding
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 LDPC 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템에 관한 것으로, LDPC 부호어를 채널을 통해 출력하는 LDPC 인코더와, 상기 채널을 통해 수신된 LDPC 부호어를 디코딩하고, 제 2 LDPC 디코더에서 디코딩에 실패했을 때 상기 제 2 LDPC 디코더에서 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보(soft-information)를 가지고 상기 LDPC 부호어의 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 1 LDPC 디코더 및, 상기 제 1 LDPC 디코더에서 디코딩에 실패했을 때, 상기 제 1 LDPC로부터 각 비트의 소프트 정보를 수신받고, 수신받은 각 비트의 소프트 정보를 가지고 상기 LDPC 부호어의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 2 LDPC 디코더를 포함하고 있다.
따라서, 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 디코더(Decoder)를 만들 수 있고, 추가적인 인코딩 과정을 필요로 하지 않고 기존 코드를 그대로 사용하여 부호율이 변하지 않는 장점을 가지고 있다. 또한, 제 1 LDPC 디코더가 오류정정에 실패하였을 경우에만 제 2 LDPC 디코더가 동작하게 하여 추가적인 동작에 의한 속도 손실을 최소화 할 수 있다.
따라서, 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 디코더(Decoder)를 만들 수 있고, 추가적인 인코딩 과정을 필요로 하지 않고 기존 코드를 그대로 사용하여 부호율이 변하지 않는 장점을 가지고 있다. 또한, 제 1 LDPC 디코더가 오류정정에 실패하였을 경우에만 제 2 LDPC 디코더가 동작하게 하여 추가적인 동작에 의한 속도 손실을 최소화 할 수 있다.
Description
본 발명은 LDPC(Low Density Parity Check) 부호의 복호 방법 및 이를 이용한 LDPC 부호 시스템에 관한 것으로, 보다 상세하게는 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 디코더(Decoder)를 만들 수 있는 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템에 관한 것이다.
LDPC 부호는 선형 블록 부호(linear block code)로 k 비트의 정보와 p 비트의 패리티를 포함한다. 즉 전체 길이 n은 k와 p의 합이다. 전체 길이 중 정보비트의 길이 비율을 나타내는 부호율(code rate)은 k/n의 식으로 나타낼 수 있다. LDPC 부호의 인코딩은 패리티 체크 행렬을 이용하여 k의 입력을 받아 n의 출력을 낸다.
LDPC 부호의 디코딩 알고리즘은 메시지 패싱 알고리즘을 기반으로 한다. 메시지 패싱 알고리즘은 크게 두 개의 프로세스로 진행이 되는데, 먼저 비트-체크 메시지 패싱(bit-to-check message passing)이 수행된다. 비트-체크 메시지 패싱에서는 같은 체크노드에 묶인 비트노드들이 같은 그룹의 다른 비트노드의 정보를 알려주기 위해 서로 메시지를 주고 받는다. 이때 비트-체크가 묶인 구조는 패리티 체크 행렬에 따라 공통 된 체크에 묶여 있는 비트 판정 값의 합이 짝수가 되도록 고정(짝수 패리티 조건 만족하도록)되어있다. 비트-체크 메시지 패싱 과정 후에 체크-비트 메시지 패싱이 수행된다. 체크-비트 메시지 패싱에서는 하나의 비트노드에 묶여있는 체크노드끼리 메시지를 주고 받는 동작을 한다. 비트-체크 메시지 패싱과 체크-비트 메시지 패싱은 유효한 코드워드로 디코딩 될 때까지 반복되거나 최대 반복 횟수에 도달할 때까지 반복적으로 수행된다. LDPC 부호를 다른 부호와 연접하여 사용하게 되면 오류정정 능력은 좋아지지만 추가적인 인코딩 과정에 의해 패리티 비트가 증가하게 되므로 부호율이 낮아지는 단점이 있다. 또한 추가적인 인코딩 과정, 이에 따르는 추가적인 디코딩 과정에 의한 복잡도 증가 역시 피할 수 없다.
종래의 기본적인 LDPC 부호 시스템은 도 1과 같이, 입력 데이터인 LDPC 부호를 인코딩(Encoding)하여 채널(Channel)로 송신하는 LDPC 인코더(Encoder)와, 상기 채널(Channel)을 통해 수신된 LDPC 부호를 수신하여 디코딩(Decoding)하는 LDPC 디코더(Decoder)로 나눌 수 있다.
상기 LDPC 디코더(Decoder)에서 디코딩하는 과정은 판정된 값(x_hat)이 유효한 코드워드(code word)가 될 때까지, 혹은 최대 반복 횟수에 도달할때까지 반복적으로(iterative) 동작한다.
그러나, 상기 구성을 갖는 종래의 LDPC 부호 시스템은 앞에서 설명한 바와 같이, 오류 정정 능력을 위해 LDPC 부호를 다른 부호와 연접하여 사용하기 때문에 추가적인 인코딩 과정에 의해 패리티 비트가 증가하게 되어 부호율이 낮아지는 단점이 있다. 또한, 추가적인 인코딩 과정과 이에 따르는 추가적인 디코딩 과정에 의한 복잡도 증가하는 문제가 있었다.
전술한 문제점을 해결하기 위하여 본 발명이 이루고자 하는 기술적 과제는, 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 디코더(Decoder)를 만들 수 있는 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템을 제시하는 데 있다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 추가적인 인코딩 과정을 필요로 하지 않고 기존 코드를 그대로 사용하여 부호율이 변하지 않는 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템을 제시하는 데 있다.
또한, 본 발명이 이루고자 하는 또 다른 기술적 과제는, 제 1 LDPC 디코더가 오류정정에 실패하였을 경우에만 제 2 LDPC 디코더가 동작하게 하여 추가적인 동작에 의한 속도 손실을 최소화 할 수 있는 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템을 제시하는 데 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명에 의한 LDPC 부호의 복호 방법은, (a) LDPC 인코더에서 LDPC 부호어를 채널을 통해 출력하는 단계와, (b) 상기 채널을 통해 출력된 상기 LDPC 부호어를 제 1 LDPC 디코더에서 디코딩하는 단계와, (c) 상기 제 1 LDPC 디코더에서 디코딩에 실패했을 때, 제 2 LDPC 디코더에서 상기 제 1 LDPC로부터 각 비트의 소프트 정보(soft-information)를 수신받아 상기 LDPC 부호어의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 단계와, (d) 상기 제 2 LDPC 디코더에서 디코딩에 실패했을 때, 상기 제 1 LDPC 디코더에서 상기 제 2 LDPC로부터 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보를 수신받아 상기 LDPC 부호어의 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 단계 및, (e) 상기 LDPC 부호가 디코딩 될 때까지 또는 최대 반복 횟수에 도달할 때까지 상기 (c) 및 (d)단계를 반복 수행하는 단계를 포함하여 구성될 수 있다.
또한, 전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명에 의한 LDPC 부호 시스템은, LDPC 부호어를 채널을 통해 출력하는 LDPC 인코더와, 상기 채널을 통해 수신된 LDPC 부호어를 디코딩하고, 제 2 LDPC 디코더에서 디코딩에 실패했을 때 상기 제 2 LDPC 디코더에서 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보(soft-information)를 가지고 상기 LDPC 부호어의 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 1 LDPC 디코더 및, 상기 제 1 LDPC 디코더에서 디코딩에 실패했을 때, 상기 제 1 LDPC로부터 각 비트의 소프트 정보를 수신받고, 수신받은 각 비트의 소프트 정보를 가지고 상기 LDPC 부호어의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 2 LDPC 디코더를 포함할 수 있다.
여기서, 상기 새로운 패리티 체크 행렬은, 상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row)의 선형연산(linera operation)으로 만들어진 새로운 행(Row)을 가질 수 있다.
또한, 상기 새로운 패리티 체크 행렬은, 상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 컬럼(Column)을 가질 수 있다.
또한, 상기 새로운 패리티 체크 행렬은, 상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row) 및 컬럼(Column)을의 선형연산(linera operation)으로 만들어진 새로운 행(Row) 및 컬럼(Column)을 가질 수 있다.
상기 짝수 또는 홀수 개의 행(Row) 또는 컬럼(Column)을 이진합으로 합칠 때, 두 개의 체크노드가 묶고 있던 비트노드는 합쳐진 체크노드에 묶일 수 있고, 중복된 비트노드는 끊어질 수 있다. 그리고, 상기 소프트 정보(soft-information)는 각 비트의 '1' 또는 '0'의 확률 정보일 수 있다.
본 발명에 따르면, 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 복호기를 만들 수 있다.
또한, 추가적인 인코딩 과정을 필요로 하지 않고 기존 코드를 그대로 사용하여 부호율이 변하지 않는 장점을 가지고 있다.
또한, 제 1 LDPC 디코더가 오류정정에 실패하였을 경우에만 제 2 LDPC 디코더가 동작하게 하여 추가적인 동작에 의한 속도 손실을 최소화 할 수 있다.
또한, 본 발명에 의한 LDPC 부호 시스템을 구현해본 결과, 종래의 LDPC 부호 시스템에 비해 높은 SNR 영역에서 강한 오류 정정 능력을 나타내는 것을 확인하였다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
도 1은 종래의 기본적인 LDPC 부호 시스템의 블록 구성도
도 2는 본 발명의 바람직한 실시 예에 의한 LDPC 부호 시스템의 블록 구성도
도 3은 패리티 체크 행렬의 행 2개를 이진합으로 결합해서 새로운 패리티 체크 행렬의 행을 생성하는 예를 나타낸 도면
도 4는 2개의 체크노드를 하나의 체크노드로 합치는 예를 나타낸 도면
도 5는 종래의 LDPC 부호 시스템과 본 발명에서 제안하는 LDPC 시스템의 SNR에 따른 오류 정정 능력을 시뮬레이션으로 구현한 결과를 나타낸 그래프
도 2는 본 발명의 바람직한 실시 예에 의한 LDPC 부호 시스템의 블록 구성도
도 3은 패리티 체크 행렬의 행 2개를 이진합으로 결합해서 새로운 패리티 체크 행렬의 행을 생성하는 예를 나타낸 도면
도 4는 2개의 체크노드를 하나의 체크노드로 합치는 예를 나타낸 도면
도 5는 종래의 LDPC 부호 시스템과 본 발명에서 제안하는 LDPC 시스템의 SNR에 따른 오류 정정 능력을 시뮬레이션으로 구현한 결과를 나타낸 그래프
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명되는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙여 설명하기로 한다.
이하, 본 발명에서 실시하고자 하는 구체적인 기술내용에 대해 첨부도면을 참조하여 상세하게 설명하기로 한다.
실시 예
도 4는 본 발명의 바람직한 실시 예에 의한 LDPC 부호 시스템의 블록 구성도이다,
본 발명의 LDPC 부호 시스템은 도 4에 도시된 바와 같이, LDPC 인코더(Encoder; 110), 채널(Channel; 120), 제 1 LDPC 디코더(Decoder; 130), 제 2 LDPC 디코더(Decoder; 140)를 포함하여 구성된다.
상기 LDPC 인코더(110)는 입력 데이터인 LDPC 부호를 인코딩(Encoding)하여 채널(Channel)(120)로 송신한다.
상기 LDPC 인코더(110)에서는 전송할 데이터를 채널(120)에서 손실이나 왜곡 없이 전송하기 위해 LDPC 코딩(coding) 절차를 거친다. 상기 채널 코딩(Channel coding) 절차를 거친 데이터(data)는 무선 채널(120)로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 이때, 여러 비트들을 하나의 심볼(symbol)로 매핑(mapping) 되는 절차를 변조(modulation)라 한다.
상기 변조된 데이터는 다중화(Multiplexing) 과정 또는 다중 접속(Multiple Access) 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 상기 다중화 방법으로는, CDM, TDM, FDM 등의 다양한 방법이 존재한다. 상기 다중화(Multiplexing) 블록을 거친 신호는 한 개 이상의 다중 안테나에 전송되기 적합한 구조로 변경되어 무선채널을 통해 수신 단(Receiver)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음 등을 겪게 되어 데이터에 왜곡이 발생할 수 있다. 수신 단에서는 상기 왜곡된 데이터를 수신한 후 상기 송신 단의 일련의 절차를 역순으로 수행한다. 상기 심볼로 매핑(mapping)된 데이터를 비트열로 바꾸는 복조(demodulation) 작업을 수행하고, 채널 디코딩(Channel Decoding) 절차를 거치며 왜곡된 데이터를 원래 데이터로 복원한다.
상기 채널 코딩을 수행하는 LDPC 인코더(110)는, 입력된 데이터(Information bits 또는 Systematic Bits)에 첨가될 패리티 비트(Parity Bits)을 발생시키데 사용되는 패리티 체크 행렬(Parity Check Matrix)인 H 행렬 또는 H행렬로부터 유도되는 생성행렬(Generation Matrix) G 행렬을 저장하고 있다. 즉, 상기 LDPC 인코더(Encoder)는, 상기 H 또는 G 행렬과 상기 입력된 데이터를 통해 패리티 비트(Parity Bit)들을 발생한다.
상기 제 1 및 제 2 LDPC 디코더(Decoder)(130)(140)는 채널 디코딩(Channel Decoding)을 수행하는 장치로서, 수신된 데이터(왜곡된 Systematic Bits + Parity Bits)를 H행렬과 연산을 통하여 상기 입력된 데이터(Systematic Bits)들이 제대로 복구되는지 확인하고 복구 실패시 연산을 재수행한다.
구체적으로 설명하면, 상기 제 1 LDPC 디코더(130)는 상기 채널(120)을 통해 수신된 LDPC 부호어를 디코딩한다. 이때, 상기 제 1 LDPC 디코더(130)에서 디코딩에 실패했을 경우, 상기 제 2 LDPC 디코더(140)에서 상기 제 1 LDPC(130)로부터 각 비트의 소프트 정보(soft-information)를 수신받아, 수신받은 각 비트의 소프트 정보(soft-information)를 가지고 상기 LDPC 부호어의 패리티 체크 행렬(Parity check matrix)로부터 만들어진 새로운 패리티 체크 행렬(New Parity check matrix)에 맞게 LDPC 부호어를 디코딩한다. 여기서, 상기 소프트 정보(soft-information)는 각 비트의 '1' 또는 '0'의 확률 정보를 나타낸다. 즉, 본 발명은 상기 제 1 LDPC 디코더의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 디코딩하는 제 2 LDPC 디코더와 같은 보조 LDPC 디코더를 사용하며, 이러한 보조 LDPC 디코더의 개수는 변할 수 있다. 아울러, 상기 제 1 LDPC 디코더와 보조 LDPC 디코더는 직렬(serial), 병렬(parallel), 또는 직렬과 병렬의 조합을 이룰 수 있다.
만약, 상기 제 2 LDPC 디코더(140)에서도 디코딩에 실패했을 때에는, 상기 제 1 LDPC 디코더(130)에서 상기 제 2 LDPC 디코더(140)에서 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보(soft-information)를 가지고 상기 LDPC 부호어의 패리티 체크 행렬(Parity check matrix)에 맞게 LDPC 부호어를 디코딩한다.
이와 같이, 본 발명의 실시 예에서는 상기 LDPC 부호가 디코딩 될 때까지 또는 최대 반복 횟수에 도달할 때까지 상기 제 1 및 제 2 LDPC 디코더(130)(140)에서 외부 정보(extrinsic information)를 주고 받는 피드백 과정을 통해 LDPC 부호어를 디코딩하게 된다.
여기서, 상기 새로운 패리티 체크 행렬(New Parity check matrix)은 상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row) 또는 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 짝수 또는 홀수 개의 행(Row) 또는 컬럼(Column)을 가지거나, 또는 상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row) 및 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 짝수 또는 홀수 개의 행(Row) 및 컬럼(Column)을 가질 수 있다. 상기 새로운 패리티 체크 행렬(New Parity check matrix)에 대해서는 후술하는 도 3 및 도 4에서 상세히 설명하기로 한다.
상기 제 2 LDPC 디코더(140)는 본 발명에서 제안한 방법으로 새롭게 생성된 패리티 체크 행렬을 기반으로 만들어진 것이다. 본 발명의 LDPC 부호 시스템은 추가적인 인코딩 과정이 없으므로 송신측의 복잡도는 그대로 유지하고 부호율(code rate) 역시 변함이 없는 장점을 가지고 있다. 그리고 수신측에서 디코딩을 할 때, 상기 제 2 LDPC 디코더(140)는 상기 제 1 LDPC 디코더(130)가 디코딩에 실패했을 때만 동작하도록 설계되어있기 때문에 추가 동작에 의한 속도 손실을 최소화 할 수 있다. 즉, 수신측에서 상기 제 1 LDPC 디코더(130)가 디코딩 실패시 상기 제 2 LDPC 디코더(140)가 동작하게 되는데, 상기 제 1 LDPC 디코더(130)에서 각 비트의 소프트 정보(soft-information)를 받아온다. 이때, 상기 제 2 LDPC 디코더(140)의 동작이 끝난 후에는 새롭게 생성된 소프트 정보(soft-information)를 상기 제 1 LDPC 디코더(130)에 넘겨주게 된다. 즉, 상기 제 1 및 제 2 LDPC 디코더(130)(140)는 외부 정보(extrinsic information)를 주고 받는 피드백과정을 가진다.
다음은, 상기 제 2 LDPC 디코더(140)를 설계하는 방법에 대해 설명한다. LDPC 부호의 디코더 구조는 패리티 체크 행렬(Parity check matrix)에 기반 하므로 추가적인 디코더를 설계하기 위해서는 추가적인 패리티 체크 행렬(Parity check matrix)이 필요하다. 본 발명에서 제안하는 추가적인 패리티 체크 행렬(Parity check matrix)은 기본 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Low) 또는 컬럼(Column) 또는 행(Low) 및 컬럼(Column)의 조합으로 새로운 행(Low) 또는 컬럼(Column) 또는 행(Low) 및 컬럼(Column)을 만드는 것이다.
도 3은 패리티 체크 행렬의 행 2개를 이진합으로 결합해서 새로운 패리티 체크 행렬(New Parity check matrix)의 행을 생성하는 예를 나타낸 도면이다.
도 3과 같이 2개의 행(Low)을 이진합으로 더해서 새로운 패리티 체크 행렬(New Parity check matrix)을 만든다. 2개의 이진합으로 인한 체크노드 디그리(degree)(하나의 체크노드가 묶고 있는 비트노드의 수) 변화는 그대로 짝수이므로 짝수 패리티 조건을 그대로 만족한다. 즉, 새로 만들어진 패리티 체크 행렬(New Parity check matrix)을 이용해서 기존의 코드를 디코딩할 수 있다. 이때, 조합하는 행(Low)의 개수는 짝수라는 조건만 만족하면 새로 만들어진 행렬을 이용해 디코딩이 가능하므로 꼭 2개일 필요는 없다.(수많은 조합이 가능하다.)
이와 같은 방법으로, 짝수 또는 홀수 개의 컬럼(Column)을 이진합으로 더해서 새로운 패리티 체크 행렬(New Parity check matrix)을 만들 수도 있고, 짝수 또는 홀수 개의 행(Low) 및 컬럼(Column)을 이진합으로 더해서 새로운 패리티 체크 행렬(New Parity check matrix)을 만들 수도 있다.
한편, 임의의 패리티 체크 행렬(Parity check matrix)은 체크 노드(Check Node)와 변수 노드(Variable Node)로 구성된 이분 그래프(bipartite graph)로 표시될 수 있다. 도 4는 이분 그래프(bipartite graph)를 이용하여 두 개의 체크노드를 하나의 체크노드로 합치는 예를 나타낸 것이다.
도 4에서 두 개의 행을 합친다는 것은 이분 그래프(bipartite graph)로 봤을 때 두 개의 체크노드(Check Node)를 합치는 것을 의미한다. 이때 두 개의 체크노드(Check Node)가 묶고 있던 비트노드(Bit Node)는 합쳐진 체크노드(Check Node)에 묶이게 되고 중복된 비트노드(Bit Node)는 끊어지게 된다.(이진합의 특성)
도 5는 기본적인 LDPC 부호 시스템(Normal)과 본 발명에서 제안하는 LDPC 부호 시스템의 SNR(Signal to nosie ratio)에 따른 오류 정정 능력을 시뮬레이션으로 구현한 결과이다. 각 SNR에서는 같은 AWGN 데이터를 생성하였다. 여기서, 는 각각 제 1 LDPC 디코더(130), 제 2 LDPC 디코더(140)의 최대 반복 횟수를 나타낸다. 는 두 디코더의 피드백 횟수를 나타낸다. 즉, 도 5에서 기본적인 LDPC 부호 시스템(normal)은 제 1 LDPC 디코더(130)만 동작하고 최대 반복횟수가 250으로 고정된 시스템이다. 반면, 본 발명에서 제안하는 LDPC 부호 시스템은 제 1 LDPC 디코더(130)는 40, 제 2 LDPC 디코더(140)는 10 의 최대 반복횟수, 그리고 5번의 최대 피드백 횟수를 가진다. 결국 두 시스템 모두 250번의 최대 반복횟수로 고정되어 있는 것이다. 시뮬레이션 결과를 보면 높은 SNR 영역에서 제안된 시스템이 기존 시스템에 비해 좋은 오류 정정 능력을 보이는 것을 확인 할 수 있다.
이와 같이 구성된 본 발명에 의한 LDPC 부호의 복호 방법 및 이를 포함하는 LDPC 부호 시스템은 하나의 LDPC 패리티 체크 행렬을 이용해서 여러 개의 서로 다른 디코더(Decoder)를 만듬으로써, 본 발명의 기술적 과제를 해결할 수가 있다.
이상에서 설명한 본 발명의 바람직한 실시 예들은 기술적 과제를 해결하기 위해 개시된 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자(당업자)라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
110 : LDPC 인코더(Encoder)
120 : 채널(Channel)
130 : 제 1 LDPC 디코더(Decoder)
140 : 제 2 LDPC 디코더(Decoder)
120 : 채널(Channel)
130 : 제 1 LDPC 디코더(Decoder)
140 : 제 2 LDPC 디코더(Decoder)
Claims (13)
- (a) LDPC 인코더에서 LDPC 부호어를 채널을 통해 출력하는 단계;
(b) 상기 채널을 통해 출력된 상기 LDPC 부호어를 제 1 LDPC 디코더에서 디코딩하는 단계;
(c) 상기 제 1 LDPC 디코더에서 디코딩에 실패했을 때, 제 2 LDPC 디코더에서 상기 제 1 LDPC로부터 각 비트의 소프트 정보(soft-information)를 수신받아 상기 LDPC 부호어의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 단계;
(d) 상기 제 2 LDPC 디코더에서 디코딩에 실패했을 때, 상기 제 1 LDPC 디코더에서 상기 제 2 LDPC로부터 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보를 수신받아 상기 LDPC 부호어의 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 단계; 및
(e) 상기 LDPC 부호가 디코딩 될 때까지 또는 최대 반복 횟수에 도달할 때까지 상기 (c) 및 (d)단계를 반복 수행하는 단계;
를 포함하는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서,
상기 제 2 LDPC 디코더를 포함하는 보조 LDPC 디코더의 개수는 변할 수 있으며, 상기 보조 LDPC 디코더는 제 1 LDPC 디코더의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 디코딩하며, 상기 제 1 LDPC 디코더와 보조 LDPC 디코더는 직렬(serial), 병렬(parallel), 또는 직렬과 병렬의 조합으로 이루어진 디코딩 시스템을 이루는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row)의 선형연산(linera operation)으로 만들어진 새로운 행(Row)을 갖는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 컬럼(Column)을 갖는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row) 및 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 행(Row) 및 컬럼(Column)을 갖는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서,
상기 새로운 패리티 체크 행렬은, 상기 LDPC 부호어의 패리티 체크 행렬과 다른 개수의 행(Row) 및 컬럼(Column)으로 이루어 질 수 있는 LDPC 부호의 복호 방법.
- 제 3 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 짝수 또는 홀수 개의 행(Row) 또는 컬럼(Column)을 이진합으로 합칠 때, 두 개의 체크노드가 묶고 있던 비트노드는 합쳐진 체크노드에 묶이게 되고, 중복된 비트노드는 끊어지는 LDPC 부호의 복호 방법.
- 제 1 항에 있어서,
상기 소프트 정보(soft-information)는 각 비트의 '1' 또는 '0'의 확률 정보인 LDPC 부호의 복호 방법.
- LDPC 부호어를 채널을 통해 출력하는 LDPC 인코더;
상기 채널을 통해 수신된 LDPC 부호어를 디코딩하고, 제 2 LDPC 디코더에서 디코딩에 실패했을 때 상기 제 2 LDPC 디코더에서 디코딩 동작이 끝난 후 새롭게 생성된 소프트 정보(soft-information)를 가지고 상기 LDPC 부호어의 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 1 LDPC 디코더; 및
상기 제 1 LDPC 디코더에서 디코딩에 실패했을 때, 상기 제 1 LDPC로부터 각 비트의 소프트 정보를 수신받고, 수신받은 각 비트의 소프트 정보를 가지고 상기 LDPC 부호어의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 LDPC 부호어를 디코딩하는 제 2 LDPC 디코더;
를 포함하는 LDPC 부호 시스템.
- 제 9 항에 있어서,
상기 제 2 LDPC 디코더를 포함하는 보조 LDPC 디코더의 개수는 변할 수 있으며, 상기 보조 LDPC 디코더는 상기 제 1 디코더의 패리티 체크 행렬로부터 만들어진 새로운 패리티 체크 행렬에 맞게 디코딩하며, 상기 제 1 LDPC 디코더와 보조 LDPC 디코더는 직렬(serial), 병렬(parallel), 또는 직렬과 병렬의 조합으로 이루어진 디코딩 시스템을 이루는 LDPC 부호 시스템.
- 제 9 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row)의 선형연산(linera operation)으로 만들어진 새로운 행(Row)을 갖는 LDPC 부호 시스템.
- 제 7 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 컬럼(Column)을 갖는 LDPC 부호 시스템.
- 제 7 항에 있어서, 상기 새로운 패리티 체크 행렬은:
상기 LDPC 부호어의 패리티 체크 행렬에서 짝수 또는 홀수 개의 행(Row) 및 컬럼(Column)의 선형연산(linera operation)으로 만들어진 새로운 행(Row) 및 컬럼(Column)을 갖는 LDPC 부호 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/473,800 US8826096B2 (en) | 2011-12-29 | 2012-05-17 | Method of decoding LDPC code for producing several different decoders using parity-check matrix of LDPC code and LDPC code system including the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20110145651 | 2011-12-29 | ||
KR1020110145651 | 2011-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130077741A true KR20130077741A (ko) | 2013-07-09 |
KR101411720B1 KR101411720B1 (ko) | 2014-06-25 |
Family
ID=48990928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120041105A KR101411720B1 (ko) | 2011-12-29 | 2012-04-19 | 엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101411720B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160113001A (ko) * | 2015-03-20 | 2016-09-28 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
CN115713961A (zh) * | 2021-08-23 | 2023-02-24 | 美光科技公司 | 基于在奇偶校验矩阵中具有灵活列权重的速率自适应低密度奇偶校验码进行错误校正 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100918763B1 (ko) * | 2003-11-14 | 2009-09-24 | 삼성전자주식회사 | 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법 |
EP1962430A1 (en) * | 2007-02-22 | 2008-08-27 | Samsung Electronics (UK) Limited | Coding/Decoding |
KR101039618B1 (ko) * | 2009-08-18 | 2011-06-09 | 성균관대학교산학협력단 | 협력적 중계 시스템을 위한 방법 |
-
2012
- 2012-04-19 KR KR1020120041105A patent/KR101411720B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160113001A (ko) * | 2015-03-20 | 2016-09-28 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
CN115713961A (zh) * | 2021-08-23 | 2023-02-24 | 美光科技公司 | 基于在奇偶校验矩阵中具有灵活列权重的速率自适应低密度奇偶校验码进行错误校正 |
Also Published As
Publication number | Publication date |
---|---|
KR101411720B1 (ko) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8826096B2 (en) | Method of decoding LDPC code for producing several different decoders using parity-check matrix of LDPC code and LDPC code system including the same | |
KR102554295B1 (ko) | 송신 장치 및 그의 패리티 퍼뮤테이션 방법 | |
JP5354979B2 (ja) | 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器 | |
US8737519B2 (en) | Apparatus and method for channel coding in a communication system | |
KR101313782B1 (ko) | 무선 통신 시스템에서 데이터 블록을 송신 및 수신하기 위한 방법 및 장치 | |
RU2537806C2 (ru) | Устройство и способ для генерирования матрицы проверки четности в системе связи с использованием линейных блочных кодов и устройство передачи/приема и способ для использования этого | |
KR102466517B1 (ko) | 송신 장치 및 그의 쇼트닝 방법 | |
KR102466509B1 (ko) | 송신 장치 및 그의 쇼트닝 방법 | |
JP2009135911A (ja) | 送信装置 | |
CN111865499B (zh) | 接收设备和接收方法 | |
JP2020507990A (ja) | 情報を処理するための方法および装置、通信デバイス、ならびに通信システム | |
JP2012239240A (ja) | 低密度パリティ検査符号のパリティ検査行列生成方法 | |
CN112165332B (zh) | 发送方法和接收方法 | |
CN112234999B (zh) | 发送方法和接收方法 | |
KR102567916B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
JPWO2013001706A1 (ja) | 無線送受信装置、通信システム及びそれらに用いるチャネルコーディング処理方法 | |
KR20220155952A (ko) | 송신 장치 및 그의 쇼트닝 방법 | |
WO2008075627A1 (ja) | 符号化装置、符号化方法、符号化復号装置及び通信装置 | |
KR101503653B1 (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치 | |
KR101411720B1 (ko) | 엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템 | |
JP4469261B2 (ja) | ディジタル信号伝送装置 | |
CN108667556B (zh) | 比特交织编码调制方法 | |
KR101145673B1 (ko) | 특정 구조를 가지는 lt코드를 이용한 부호화 방법 및 이를 기반으로 하는 랩터 코드를 이용한 부호화 방법 | |
KR101276845B1 (ko) | 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법 | |
JP2010200247A (ja) | デジタル伝送システム及びデジタル伝送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20181018 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200106 Year of fee payment: 6 |
|
R401 | Registration of restoration |