KR20120059806A - 에러 정정 부호의 생성방법, 복호 방법 및 그 장치 - Google Patents

에러 정정 부호의 생성방법, 복호 방법 및 그 장치 Download PDF

Info

Publication number
KR20120059806A
KR20120059806A KR1020100121255A KR20100121255A KR20120059806A KR 20120059806 A KR20120059806 A KR 20120059806A KR 1020100121255 A KR1020100121255 A KR 1020100121255A KR 20100121255 A KR20100121255 A KR 20100121255A KR 20120059806 A KR20120059806 A KR 20120059806A
Authority
KR
South Korea
Prior art keywords
matrix
bits
row
zero
column
Prior art date
Application number
KR1020100121255A
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 KR1020100121255A priority Critical patent/KR20120059806A/ko
Priority to US13/307,566 priority patent/US8707148B2/en
Publication of KR20120059806A publication Critical patent/KR20120059806A/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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Abstract

위성 통신 시스템에서 데이터를 전송시 에러 정정 코드를 이용하여 암호화하고, 데이터를 수신시 에러 정정 코드를 복호화하여 데이터 전송률을 높이고, 전력 효율을 증대시킬 수 있는 기술이 제공된다. 일 실시예에 따른 에러 정정 부호 생성방법은 입력된 데이터 비트를 설정된 크기의 행렬로 배열한 후, 그 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 생성하는 단계와, 그 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화하는 1차 부호화 단계오, 1차 부호화 단계에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화하는 2차 부호화 단계를 포함한다.

Description

에러 정정 부호의 생성방법, 복호 방법 및 그 장치{METHOD FOR PRODUCING AND DECODING OF ERROR CORRECTING CODE, AND APPARATUS THEREOF}
에러 정정 부호의 생성 및 복호 방법 및 그 장치에 관한 것으로, 더욱 상세하게는 에러 정정 부호를 이용하여 종단 간의 통신시 데이터를 암호화 및 복호화하는 에러 정정 부호의 생성 및 복호 방법 및 그 장치와 관한 것이다.
최근의 위성 통신 기술은 DVB-RCS(Digital Video Broadcasting - Return Channel by Satellite)의 규격을 적용한 기술이 개발되고 있다. 종래의 DVB-RCS 시스템은 ADSL 기반의 저속 데이터 접속 기술을 지원한다. 그러나, 현재의 고속 데이터 서비스를 지원하기 위해서는 새로운 패러다임의 VSAT(Very Small Aperture Terminal) 기술 개발이 필요하게 되었다. 따라서, Shannon limit에 가까운 대역폭당 전송효율, 고효율 부호화, 리턴 링크 전송 포맷의 유연성 및 효율성, MAC 및 상위 계층의 전송효율에 대한 연구가 진행되고 있다.
에러 정정 부호(Error Correcting Code)는 오늘날의 통신 시스템에서 일반적으로 사용되고 있다 이러한 부호는 메시지에 불필요한 비트들을 추가함으로써 에러를 검출하고, 수정하는 것을 가능케 한다. 특히, TPC(Tubo Product Code)는 전력 효율을 증대시키고, 데이터 전송률을 최대화할 수 있다고 확인되었다. TPC는 작은 코드 단어 블록으로부터 구축된 비교적 큰 부호이다. TPC는 Shannon limit의 1dB 이내에서 데이터를 전송할 수 있다.
한편, 고효율 부호화 기법과 관련하여 최근에는 Turbo 부호가 성능이 입증되면서 각종 무선통신 시스템에서 표준안으로 채택되었다. 최근에는 soft-decision 복호방식을 지니는 CPM(Continuous Phase Modulation)과 결합된 BCH(Bose-Chaudhuri-Hochquenghem) 부호가 제안되고 있다. 그러나, 순회부호의 일종인 BCH 부호는 선형 변조 방식과 결합시 반복(iteration)의 횟수에 영향을 받지 않게 된다. 이는 반복(iteration)의 횟수가 BCH의 성능을 결정하는 요인이 될 수 없어, 최적의 성능을 기대하기 어렵다.
위성 통신 시스템에서 데이터를 전송시 에러 정정 코드를 이용하여 암호화하고, 데이터를 수신시 에러 정정 코드를 복호화하여 데이터 전송률을 높이고, 전력 효율을 증대시킬 수 있는 기술이 제공된다.
일 실시예에 따른 에러 정정 부호 생성방법은 입력된 데이터 비트를 설정된 크기의 행렬로 배열한 후, 그 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 생성하는 단계와, 그 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화하는 1차 부호화 단계와, 1차 부호화 단계에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화하는 2차 부호화 단계를 포함한다.
일 실시예에 따른 에러 정정 부호의 복호방법은 에러 정정 부호화된 데이터 행렬을 입력받아, 행렬의 부호화시 추가된 제로 비트 수만큼의 제로 비트를 추가하는 단계와, 제로 비트가 추가된 행렬의 각 행(column)의 패리티 비트를 검사하여 각 행(colunm)의 데이터를 복호화하는 1차 복호화 단계와, 1차 복호화 단계에서 복호화된 행렬의 각 열(row)의 패리티 비트를 검사하여 각 열(row)의 데이터를 복호화하는 2차 복호화 단계를 포함한다.
일 실시예에 따른 에러 정정 부호 생성장치는 입력된 데이터 비트를 설정된 크기의 행렬로 배열한 후, 그 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 비대칭 행렬 생성부와, 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화하는 1차 부호부와, 1차 부호부에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화하는 2차 부호부를 포함한다.
일 실시예에 따른 에러 정정 부호의 복호장치는 에러 정정 부호로 부호화된 행렬을 수신하여, 부호화시 삭제된 수만큼의 제로 비트를 추가하는 제로 비트 추가부와, 제로 비트가 추가된 행렬의 각 행(column)의 패리티 비트를 검사하여 각 행(colunm)의 데이터를 복호화하는 1차 복호부와, 1차 복호부에서 복호화된 행렬의 각 열(row)의 패리티 비트를 검사하여 각 열(row)의 데이터를 복호화하는 2차 복호부를 포함한다.
위성 통신 시스템에서 데이터를 전송시 에러 정정 코드를 이용하여 암호화하고, 데이터를 수신시 에러 정정 코드를 복호화함으로써 데이터 전송률을 높이고, 전력 효율을 증대시킬 수 있다.
도 1은 일 실시예에 따른 에러 정정 부호 생성방법의 흐름도,
도 2a는 일 실시예에 따른 제로 비트의 행이 삽입된 행렬의 부호화 예시도,
도 2b는 일 실시예에 따른 제로 비트의 열이 삽입된 행렬의 부호화 예시도,
도 2c는 일 실시예에 따른 제로 비트의 행 및 열이 삽입된 행렬의 부호화 예시도,
도 3은 일 실시예에 따른 에러 정정 복호방법의 흐름도,
도 4는 일 실시예에 따른 에러 정정 부호장치의 구성도,
도 5는 일 실시예에 따른 에러 정정 복호장치의 구성도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 사용되는 용어들은 실시 예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시 예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 일 실시예에 따른 에러 정정 부호 생성방법의 흐름도이다.
도 1을 참조하면, 먼저 데이터 비트를 입력받아 설정된 크기의 행렬로 배열한 후, 그 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 생성한다(110). 입력되는 데이터 비트가 배열되는 행렬의 크기는 설정에 따라 달라질 수 있다. 이는 터보 곱 부호(Turbo Product Code, 이하 "TPC"라 한다)를 위해 입력된 데이터 비트를 일정한 크기의 행렬로 배열하는 것이다.
데이터 비트의 행렬에 제로 비트로 된 행 및/또는 열의 추가는 에러 정정 부호의 방법이다. 이는 의미없는 데이터인 제로 비트로 된 행 및/또는 열을 데이터 비트의 행렬에 삽입하는 것이다. 데이터 비트의 행렬에 제로 비트로 된 행 및/또는 열을 삽입함으로써 전체 행렬은 비대칭 구조가 된다. 데이터 비트의 행렬에 제로 비트로 된 행 및/또는 열을 추가하는 구체적 설명은 도 2a 내지 도 2c를 참조하여 후술하도록 한다.
다음으로, 데이터 비트와 제로 비트로 구성된 비대칭 행렬의 각 열(row)에 패리티 비트(parity bit)를 추가하여 부호화하는 1차 부호화한다(130). 패리티 비트는 데이터의 전달 과정에서 오류가 생겼는지를 검사하기 위해 원래의 데이터에 추가되는 비트를 말한다. TPC에서는 데이터 비트의 행렬에서 각 열(row)을 부호화한다. 이 경우, 각 열(row)에 포함된 데이터 비트를 파악하여 패리티 비트를 계산한다. 계산된 패리티 비트는 각 열(row)의 데이터 비트 또는 제로 비트의 끝단에 추가된다.
패리티 비트의 계산 방법은 1로 된 비트들의 개수가 항상 짝수 또는 홀수가 되도록 바이트의 끝에 붙인다. 예를 들어, 7비트의 0010110이라는 데이터에서 짝수 패리티가 되게 하기 위해서는 1의 패리티 비트를 붙여 00101101로 한다. 만약 같은 데이터에 대해 홀수 패리티 비트가 되게 하려면 0의 패리티 비트를 붙이게 된다. 이 경우, 패리티 비트는 적어도 하나 이상의 비트 수를 가진다.
추가되는 패리티 비트의 수는 부호화율을 일정한 수준으로 유지하기 위해 달리 설정될 수 있다. 예를 들어, 각 열(row)은 총 63비트로 구성되며, 이 중 57비트는 데이터 비트 또는 데이터 비트와 제로 비트를 합친 비트이다. 이 경우, 패리티 비트는 6비트이고, 각 열(row)의 끝단에 추가된다. 따라서, 1차 부호화를 거치게 되면 비대칭 행렬은 열(row)의 비트수가 63비트로 확장된다.
다음으로, 1차 부호화 단계에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 2차적인 부호화가 이뤄진다(150). 앞서 설명한 바와 같이, 1차 부호화는 비대칭 행렬의 각 열(row)에 대한 부호화를 의미한다. 2차 부호화는 1차 부호화를 거친 행렬의 각 행(column)에 대한 부호화를 의미한다. TPC에서는 데이터 비트의 행렬에 대해 열(row)에 대한 부호화를 마친 후, 행(column)에 대해 부호화를 한다. 이를 통해 2차원적인 부호화가 이루어진다.
이 경우, 1차 부호화된 행렬의 데이터 비트를 이용하여 패리티 비트를 계산한다. 패리티 비트를 계산하는 방법은 앞서 1차 부호화 과정과 동일하다. 계산된 패리티 비트의 수는 설정에 따라 달라질 수 있다. 예를 들어, 각 행(column)은 총 64비트의 길이를 가지며, 이 중 51비트는 데이터 비트 또는 데이터 비트와 제로 비트를 합한 길이와 같다. 이 경우, 패리티 비트는 13비트가 계산될 수 있다.
계산된 패리티 비트는 각 행(column)의 데이터 비트 또는 제로 비트의 끝단에 추가된다. 따라서, 비대칭 행렬의 행(colunm)의 크기가 확장된다. 따라서, 1차 부호화 단계에서 부호화된 행렬의 각 열(row)은 총 63비트의 길이를 가지며, 2차 부호화 단계에서 부호화된 행렬의 각 행(column)은 총 64비트의 길이를 가진다. 이렇게 부호화된 행렬을 이용하여 부호화율을 계산할 수 있다.
TPC에서의 부호화율은 다음과 같은 수학식으로 계산할 수 있다.
수학식 1에서 열(row)의 전체 비트 수는 n1이고, 데이터 비트의 수(또는 데이터 비트와 제로 비트의 수)는 k1이다. 또한, 행(column)의 전체 비트 수는 n2이고, 데이터 비트의 수(또는 데이터 비트와 제로 비트의 수)는 k2이다. 이 경우, 비트율 R은 각 행 및 열의 전체 비트에서 데이터 비트(또는 데이터 비트와 제로 비트)의 수의 비율을 곱한 값이 된다. 예를 들어, 열(row)을 전체 비트 수를 63비트로 설정하고, 데이터 비트(또는 데이터 비트와 제로 비트)를 57비트로 설정하고, 행(column)을 전체 비트 수를 64비트와 데이터 비트(또는 데이터 비트와 제로 비트) 수를 51비트로 설정하면, 부호화율은 0.720이 된다. 이러한, 부호화율은 DVB-RCS NG의 표준화에 요구되는 부호화율인 0.591, 0.705, 0.716을 만족시킨다.
도 2a는 일 실시예에 따른 제로 비트의 행이 삽입된 행렬의 부호화 예시도이고, 도 2b는 일 실시예에 따른 제로 비트의 열이 삽입된 행렬의 부호화 예시도이며, 도 2c는 일 실시예에 따른 제로 비트의 행 및 열이 삽입된 행렬의 부호화 예시도이다.
도 2a를 참조하면, 데이터 비트로 구성된 행렬에 제로 비트로 된 행(column)을 추가하여 부호화한다. 데이터 비트(210)가 일정한 크기의 행렬로 배열되면, 데이터 비트(210) 형렬에 제로 비트(230)로된 행(column)을 추가한다. 이 경우, 추가되는 제로 비트(230)의 비트 수는 구현하고자 하는 부호화율에 따라 달리 설정될 수 있다. 부호화율은 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 그 열의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제1 부호화율 값과, 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 그 행의 전체 비트 수로 나눈 제2 부호화율 값을 곱하여 계산한다. 부호화율에 따른 제로 비트의 수는 다음과 같은 식을 이용한다.
Figure pat00002
수학식 2에서, 제로 비트로 된 행을 추가한 경우의 부호화율 Rc는 각 열에서 제로 비트(230)를 제외한 데이터 비트(210) 수 k1과 각 행에서 데이터 비트 수인 k2를 곱한 값을, 각 열에서 제로 비트(230)의 수를 뺀 전체 비트 수 n1과 각 행의 전체 비트 수 n2를 곱한 값으로 나눔으로써 구할 수 있다. 따라서, 원하는 부호화율과 데이터 비트(210) 수를 알면 제로 비트(230) 수를 구할 수 있다.
한편, 1차 부호화 과정에서 패리티 비트(250)는 각 열에 데이터 비트(210)의 값을 이용하여 계산된다. 데이터 비트(210), 제로 비트(230) 및 패리티 비트(250)로 부호화된 행렬에 대해 2차 부호화를 한다. 따라서, 각 행에 대하여 패리티 비트(270)가 추가된다. 예를 들어, 1차 부호화 단계 및 2차 부호화 단계를 통해 부호화된 행렬의 각 열(row)은 데이터 비트(210)와 제로 비트(230)의 합이 57비트이고 패리티 비트(250)가 6비트로 구성된다. 또한, 각 행(colunm)은 데이터 비트(210)가 51비트이고 패리트 비트(270)가 13비트로 구성된다.
도 2b를 참조하면, 데이터 비트로 구성된 행렬에 제로 비트로 된 열(row)을 추가하여 부호화한다. 데이터 비트(210)가 일정한 크기의 행렬로 배열되면, 데이터 비트(210) 형렬에 제로 비트(230)로 된 열(row)을 추가한다. 이 경우, 추가되는 제로 비트(230)의 비트 수는 구현하고자 하는 부호화율에 따라 달리 설정될 수 있다. 부호화율은 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 그 열의 전체 비트 수로 나눈 제1 부호화율 값과, 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 그 행의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제2 부호화율 값을 곱하여 계산한다. 부호화율에 따른 제로 비트의 수는 다음과 같은 식을 이용할 수 있다.
Figure pat00003
수학식 3에서, 제로 비트로 된 열을 추가한 경우의 부호화율 Rr는 각 열의 데이터 비트(210)의 수 k1과 각 행에서 제로 비트(230)를 제외한 데이터 비트(210)의 수인 k2를 곱한 값을, 각 열의 전체 비트 수 n1과 각 행의 전체 비트 수 n2에서 제로 비트(230) 수를 뺀 값을 곱한 값으로 나눔으로써 구할 수 있다. 따라서, 원하는 부호화율과 데이터 비트(210) 수를 알면 제로 비트(230) 수를 구할 수 있다.
한편, 1차 부호화 과정에서 패리티 비트(250)는 각 열에 데이터 비트(210)의 값을 이용하여 계산된다. 데이터 비트(210), 제로 비트(230) 및 패리티 비트(250)로 부호화된 행렬에 대해 2차 부호화를 한다. 따라서, 각 행에 대하여 패리티 비트(270)가 추가된다. 예를 들어, 1차 부호화 단계 및 2차 부호화 단계를 통해 부호화된 행렬의 각 열(row)은 데이터 비트(210)가 57비트이고 패리티 비트(250)가 6비트로 구성되며, 각 행(colunm)은 데이터 비트와 제로 비트의 합이 51비트이고 패리트 비트가 13비트로 구성된다.
도 2c를 참조하면, 데이터 비트로 구성된 행렬에 제로 비트로 된 열(row) 및 행(column)을 추가하여 부호화한다. 데이터 비트(210)가 일정한 크기의 행렬로 배열되면, 데이터 비트(210) 형렬에 제로 비트(230)로 된 열(row)과 행(column)을 추가한다. 이 경우, 추가되는 제로 비트(230)의 비트 수는 구현하고자 하는 부호화율에 따라 달리 설정될 수 있다. 부호화율은 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 그 열의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제1 부호화율 값과, 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 그 행의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제2 부호화율 값을 곱하여 계산한다. 부호화율에 따른 제로 비트의 수는 다음과 같은 식을 이용할 수 있다.
Figure pat00004
수학식 4에서, 제로 비트(230)로 된 행과 열을 추가한 경우의 부호화율 Rrc는 각 열의 제로 비트(230)를 제외한 데이터 비트(210)의 수 k1과 각 행에서 제로 비트(230)를 제외한 데이터 비트(210)의 수인 k2를 곱한 값을, 각 열의 전체 비트 수 n1에서 제로 비트(230) 수를 뺀 값과 각 행의 전체 비트 수 n2에서 제로 비트(230) 수를 뺀 값을 곱한 값으로 나눔으로써 구할 수 있다. 따라서, 원하는 부호화율과 데이터 비트(210) 수를 알면 제로 비트(230) 수를 구할 수 있다.
한편, 1차 부호화 과정에서 패리티 비트(250)는 각 열에 데이터 비트(210)의 값을 이용하여 계산된다. 데이터 비트(210), 제로 비트(230) 및 패리티 비트(250)로 부호화된 행렬에 대해 2차 부호화를 한다. 따라서, 각 행에 대하여 패리티 비트(270)가 추가된다. 예를 들어, 1차 부호화 단계 및 2차 부호화 단계를 통해 부호화된 행렬의 각 열(row)은 데이터 비트와 제로 비트의 합이 57비트이고 패리티 비트가 6비트로 구성되며, 각 행(colunm)은 데이터 비트와 제로 비트의 합이 51비트이고 패리트 비트가 13비트로 구성된다.
도 2a 내지 도 2c의 제로 비트를 추가한 에러 정정 부호 생성방법의 경우 1차 부호화 단계 및 2차 부호화 단계를 통해 부호화된 행렬은 1 보다 작고 0.720 보다 큰 부호화율을 갖는다. 예를 들어, DVB-RCS NG의 표준화에 요구되는 부호화율인 0.591, 0.705, 0.716을 만족시키기 위한 제로 비트의 수는 다음 표와 같다.

제로 비트 추가 방식
부호화율(coding rates)
0.591 0.705 0.716
열(row)로 삽입 39 26 21
행(column)으로 삽입 26 10 3
열 및 행으로 삽입 21 3 1
위의 표 1에서, 부호화율을 0.591로 설정한 경우, 제로 비트를 열로 삽입하면 제로 비트가 39개, 행으로 삽입하는 경우는 26개, 열 및 행으로 삽입하는 경우는 21개의 제로 비트가 필요하다.
또한, 부호화율을 0.705로 설정한 경우, 제로 비트를 열로 삽입하면 제로 비트가 26개, 행으로 삽입하는 경우는 10개, 열 및 행으로 삽입하는 경우는 3개의 제로 비트가 필요하다.
또한, 부호화율을 0.716로 설정한 경우, 제로 비트를 열로 삽입하면 제로 비트가 21개, 행으로 삽입하는 경우는 3개, 열 및 행으로 삽입하는 경우는 1개가 필요하다.
다시 도 1을 참조하면, 다음으로 1차 부호화 단계 및 2차 부호화 단계를 통해 부호화된 행렬에서, 비대칭 행렬을 생성하는 단계에서 추가된 제로 비트의 행(column) 및/또는 열(row)을 삭제한다(170). 이는 전송할 데이터를 줄이기 위한 것이다. 부호화된 상태에서 제로 비트를 삭제함으로써 원하는 부호화율에 영향을 미치지 않으면서 데이터를 줄임으로써 전력 소모를 줄일 수 있다.
도 3은 일 실시예에 따른 에러 정정 복호방법의 흐름도이다.
도 3을 참조하면, 에러 정정 복호방법은 부호화된 행렬이 전송되기 전에 삭제된 제로 비트의 수만큼의 제로 비트를 추가한다(310). 이는 본 발명의 에러 정정 부호는 제로 비트를 패딩하여 부호화하고, 부호화 이후에 제로 비트를 삭제하였기 때문에 이를 보상하기 위한 것이다. 다음으로, 제로 비트가 추가된 행렬의 각 행(column)의 패리티 비트를 검사하여 각 행(colunm)의 데이터를 1차 복호화한다(330). 에러 정정 부호의 경우 행렬을 먼저 각 열을 부호화한 뒤, 각 행을 부호화하였다. 그러나, 복호의 과정에서는 역순으로 먼저 각 행을 복호화한 뒤, 외부(extrinsic) 데이터는 버퍼에 저장된다.
다음으로, 1차 복호화 단계에서 복호화된 행렬의 각 열(row)의 패리티 비트를 검사하여 각 열(row)의 데이터를 2차 복호화한다(350). 각 열(row)의 패리티 비트를 검사함으로써, 전송 과정에서 데이터의 에러가 있었는지를 판단하고 에러가 있는 경우에는 이를 수정한다. 2차 복호화 과정이후, 외부(extrinsic) 데이터를 추출하여 버퍼에 저장된 기본의 데이터를 업데이트 한다. 다음으로, 1차 복호화 및 2차 복호화 과정을 통해 에러 정정 부호의 복호화가 완료되면, 복호 과정에서 추가된 제로 비트를 삭제한다(370).
도 4는 일 실시예에 따른 에러 정정 부호장치의 구성도이다.
도 4를 참조하면, 에러 정정 부호장치(400)는 비대칭 행렬 생성부(410), 1차 부호부(430), 2차 부호부(450), 제로 비트 삭제부(470)를 포함한다. 비대칭 행렬 생성부(410)는 비트를 배열하는 연산모듈이다. 비대칭 행렬 생성부(410)는 데이터 비트를 입력받아 설정된 크기의 행렬로 배열한다. 비대칭 행렬 생성부(410)는 배열된 데이터 비트의 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 생성한다. 제로 비트를 패딩하는 방법은 도 2a 내지 도 2c에서 설명한 바와 같다. 비대칭 행렬 생성부(410)는 비대칭 행렬을 1차 부호부(430)로 출력한다.
1차 부호부(430)는 비대칭 행렬부(410)로부터 비대칭 행렬을 입력받아 부호화 하는 연산 모듈이다. 1차 부호부(430)는 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화한다. 이 경우, 1차 부호부(430)는 비대칭 행렬의 데이터 비트를 파악하고, 그에 대응하는 패리티 피트 개수 및 값을 계산한다. 1차 부호부(430)는 계산된 패리티 비트를 비대칭 행렬의 각 열의 끝단에 추가한다. 1차 부호부(430)는 1차 부호화된 행렬을 2차 부호부(450)로 출력한다.
2차 부호부(450)는 1차 부호부(430)로부터 1차 부호화된 행렬을 입력받아 부호화 하는 연산 모듈이다. 2차 부호부(450)는 1차 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화한다. 이 경우, 2차 부호부(450)는 1차 부호화된 행렬의 데이터 비트를 파악하고, 그에 대응하는 패리티 피트 개수 및 값을 계산한다. 2차 부호부(450)는 계산된 패리티 비트를 1차 부호화된 행렬의 각 열의 끝단에 추가한다. 2차 부호부(450)는 1차 부호화된 행렬을 제로 비트 삭제부(470)로 출력한다.
제로 비트 삭제부(470)는 1차 부호부(430) 및 2차 부호부(450)를 통해 부호화된 행렬에 추가된 제로 비트를 삭제하는 연산 모듈이다. 제로 비트 삭제부(470)는 부호화된 행렬을 전송하기 전에 불필요한 제로 비트를 삭제한다. 제로 비트는 부호화 과정에서 부호화율을 일정 수준으로 얻기 위해 사용된다. 그러나, 일단 부호화가 끝난 상태에서는 제로 비트가 불필요하고, 데이터 양만 많아 지므로 이를 삭제한다.
위와 같은 에러 정정 부호장치(400)를 통해 생성된 행렬의 부호는 CPM(Continous Phase Modulation)을 거쳐 변조된 후, DVB-RCS NG(Digital Video Broadcasting - Return Channel by Satellite Next Generation) 규격에 맞게 프레임화 되어 네트워크 상에 전달된다.
도 5는 일 실시예에 따른 에러 정정 복호장치의 구성도이다.
도 5를 참조하면, 에러 정정 복호장치(500)는 제로 비트 추가부(510), 1차 복호부(530), 2차 복호부(550), 제로 비트 삭제부(570)를 포함한다. 제로 비트 추가부(510)는 제로 비트를 추가하여 부호화된 데이터를 입력받아 이를 복호화하는데 사용된다. 제로 비트 추가부(510)는 입력된 데이터인 에러 정정 부호가 전송되기 전에 삭제된 제로 비트의 수 만큼의 제로 비트를 추가한다. 에러 정정 부호가 부호화될 때는 제로 비트를 패딩하였기 때문이다. 제로 비트 추가부(510)는 제로 비트가 추가된 행렬을 1차 복호부(530)로 출력한다.
1차 복호부(530)는 에러 정정 부호 생성장치와 달리 각 행(column)을 먼저 복호화한다. 즉, 복호장치에서는 부호화의 역순으로 복호화가 이루어진다. 1차 복호부(530)는 각 행의 패리티 비트를 검사하여 전송과정에서 에러 유무를 판단하고, 에러가 있는 경우 이를 수정한다. 각 행에 대한 1차 복호화가 완료되면, 1차 복호부(530)는 2차 복호부(530)로 1차 복호화된 데이터를 출력한다.
2차 복호부(550)는 1차 복호부(530)에서 복호화된 에러 정정 부호 행렬의 각 열(row)을 복호화한다. 2차 복호부(550)는 각 열의 패리티 비트를 검사하여 전송과정에서 에러 유무를 판단하고, 에러가 있는 경우 이를 수정한다. 각 열에 대한 2차 복호화가 완료되면, 2차 복호부(550)는 제로 비트 삭제부(570)로 2차 복호화된 데이터를 출력한다.
제로 비트 삭제부(570)는 2차 복호부(550)로부터 입력된 데이터의 2차 복호화된 데이터를 입력받는다. 이 경우, 데이터는 행렬 형식이며, 제로 비트가 포함된다. 그러나, 제로 비트는 원래 데이터와는 상관없는 불필요한 데이터이다. 따라서, 제로 비트 삭제부(570)는 제로 비트와 관련된 데이터를 파악하여 제로 비트를 삭제한다. 제로 비트 삭제부(570) 2차 부호화된 데이터의 제로 비트를 삭제하고, 제로 비트가 삭제된 데이터를 에러 정정 복호장치(500)와 연결된 또 다른 외부 장치로 전송한다.
이상에서 본 발명은 도면을 참조하면서 기술되는 바람직한 실시 예를 중심으로 설명되었지만 이에 한정되는 것은 아니다. 따라서 본 발명은 기재된 실시 예로부터 도출 가능한 자명한 변형예를 포괄하도록 의도된 특허청구범위의 기재에 의해 해석되어져야 한다.
210 : 데이터 비트
230 : 제로 비트
250 : 패리티 비트
270 : 패리티 비트
400 : 에러 정정 부호 생성장치
410 : 비대칭 행렬 생성부
430 : 1차 부호부
450 : 2차 부호부
470 : 제로 비트 삭제부
500 : 에러 정정 부호 복호장치
510 : 제로 비트 추가부
530 : 1차 복호부
550 : 2차 복호부
570 : 제로 비트 삭제부

Claims (15)

  1. 입력된 데이터 비트를 설정된 크기의 행렬로 배열한 후, 상기 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 생성하는 단계와;
    상기 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화하는 1차 부호화 단계; 및
    상기 1차 부호화 단계에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화하는 2차 부호화 단계;
    를 포함하는 에러 정정 부호 생성방법.
  2. 제1항에 있어서, 상기 1차 부호화 단계는,
    상기 비대칭 형렬 중 각 열(row)의 데이터 비트를 이용하여 패리티 비트를 계산하는 단계; 및
    계산된 패리티 비트를 상기 각 열(row)에 추가하는 단계;
    를 포함하는 에러 정정 부호 생성방법.
  3. 제1항에 있어서, 상기 2차 부호화 단계는,
    1차 부호화된 행렬의 데이터 비트를 이용하여 패리티 비트를 계산하는 단계; 및
    계산된 패리티 비트를 상기 각 행(column)에 추가하는 단계;
    를 포함하는 에러 정정 부호 생성방법.
  4. 제1항에 있어서,
    상기 1차 부호화 단계에서 부호화된 행렬의 각 열(row)의 길이와, 상기 2차 부호화 단계에서 부호화된 행렬의 각 행(column)의 길이는 서로 다르며, 상기 각 열의 길이와 상기 각 행의 길이에 따라 부호화율이 변동되는 에러 정정 부호 생성방법.
  5. 제1항에 있어서, 상기 비대칭 행렬을 생성하는 단계에서,
    상기 행렬에 제로 비트로 된 열(row)을 추가하는 경우, 상기 1차 부호화 단계 및 상기 2차 부호화 단계를 통해 부호화된 행렬의 부호화율은,
    상기 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 상기 열의 전체 비트 수로 나눈 제1 부호화율 값과, 상기 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 상기 행의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제2 부호화율 값을 곱하여 계산하는 에러 정정 부호 생성방법.
  6. 제1항에 있어서, 상기 비대칭 행렬을 생성하는 단계에서,
    상기 행렬에 제로 비트로 된 행(column)을 추가하는 경우, 상기 1차 부호화 단계 및 상기 2차 부호화 단계를 통해 부호화된 행렬의 부호화율은,
    상기 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 상기 열의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제1 부호화율 값과, 상기 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 상기 행의 전체 비트 수로 나눈 제2 부호화율 값을 곱하여 계산하는 에러 정정 부호 생성방법.
  7. 제1항에 있어서, 상기 비대칭 행렬을 생성하는 단계에서,
    상기 행렬에 제로 비트로 된 열(row) 및 행(column)을 추가하는 경우, 상기 1차 부호화 단계 및 상기 2차 부호화 단계를 통해 부호화된 행렬의 부호화율은,
    상기 부호화된 행렬의 열(row)에 포함되는 데이터 비트 수를 상기 열의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제1 부호화율 값과, 상기 부호화된 행렬의 행(column)에 포함되는 데이터 비트 수를 상기 행의 전체 비트 수에서 제로 비트 수를 뺀 값으로 나눈 제2 부호화율 값을 곱하여 계산하는 에러 정정 부호 생성방법.
  8. 제1항에 있어서,
    상기 제로 비트의 수에 따라 상기 1차 부호화 단계 및 상기 2차 부호화 단계를 통해 부호화된 행렬의 부호화율이 변동되는 에러 정정 부호 생성방법.
  9. 제1항에 있어서, 상기 에러 정정 부호 생성방법은,
    상기 1차 부호화 단계 및 상기 2차 부호화 단계를 통해 부호화된 행렬에서, 상기 비대칭 행렬을 생성하는 단계에서 추가된 제로 비트의 행(column) 및/또는 열(row)을 삭제하는 단계;
    를 더 포함하는 에러 정정 부호 생성방법.
  10. 에러 정정 부호화된 데이터 행렬을 입력받아, 상기 행렬의 부호화시 추가된 제로 비트 수만큼의 제로 비트를 추가하는 단계와;
    제로 비트가 추가된 행렬의 각 행(column)의 패리티 비트를 검사하여 각 행(colunm)의 데이터를 복호화하는 1차 복호화 단계; 및
    상기 1차 복호화 단계에서 복호화된 행렬의 각 열(row)의 패리티 비트를 검사하여 각 열(row)의 데이터를 복호화하는 2차 복호화 단계;
    를 포함하는 에러 정정 부호 복호방법.
  11. 제10항에 있어서, 상기 에러 정정 부호 복호방법은,
    상기 삭제된 수만큼의 제로 비트를 추가하는 단계에서 추가된 제로 비트를 삭제하는 단계;
    를 더 포함하는 에러 정정 부호 복호방법.
  12. 입력된 데이터 비트를 설정된 크기의 행렬로 배열한 후, 상기 행렬에 제로 비트로 된 행(column) 및/또는 열(row)을 추가하여 비대칭 행렬을 비대칭 행렬 생성부와;
    상기 비대칭 행렬의 각 열(row)에 패리티 비트를 추가하여 부호화하는 1차 부호부; 및
    상기 1차 부호부에서 부호화된 행렬의 각 행(column)에 패리티 비트를 추가하여 부호화하는 2차 부호부;
    를 포함하는 에러 정정 부호 생성장치.
  13. 제12항에 있어서, 상기 에러 정정 부호 생성장치는,
    상기 1차 부호부 및 상기 2차 부호부를 통해 부호화된 행렬에 추가된 제로 비트를 삭제하는 제로 비트 삭제부;
    를 더 포함하는 에러 정정 부호 생성장치.
  14. 에러 정정 부호화된 데이터 행렬을 입력받아, 상기 행렬의 부호화시 추가된 제로 비트 수만큼의 제로 비트를 추가하는 제로 비트 추가부와;
    제로 비트가 추가된 행렬의 각 행(column)의 패리티 비트를 검사하여 각 행(colunm)의 데이터를 복호화하는 1차 복호부; 및
    상기 1차 복호부에서 복호화된 행렬의 각 열(row)의 패리티 비트를 검사하여 각 열(row)의 데이터를 복호화하는 2차 복호부;
    를 포함하는 에러 정정 복호장치.
  15. 제14항에 있어서, 상기 에러 정정 복호장치는,
    상기 2차 복호부를 통해 복호화된 행렬에서, 상기 제로 비트 추가부에서 추가된 제로 비트를 삭제하는 제로 비트 삭제부;
    를 더 포함하는 에러 정정 복호장치.
KR1020100121255A 2010-12-01 2010-12-01 에러 정정 부호의 생성방법, 복호 방법 및 그 장치 KR20120059806A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100121255A KR20120059806A (ko) 2010-12-01 2010-12-01 에러 정정 부호의 생성방법, 복호 방법 및 그 장치
US13/307,566 US8707148B2 (en) 2010-12-01 2011-11-30 Method of producing and decoding error correction code and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100121255A KR20120059806A (ko) 2010-12-01 2010-12-01 에러 정정 부호의 생성방법, 복호 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20120059806A true KR20120059806A (ko) 2012-06-11

Family

ID=46163419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100121255A KR20120059806A (ko) 2010-12-01 2010-12-01 에러 정정 부호의 생성방법, 복호 방법 및 그 장치

Country Status (2)

Country Link
US (1) US8707148B2 (ko)
KR (1) KR20120059806A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102254102B1 (ko) 2015-01-23 2021-05-20 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN111782438B (zh) * 2019-04-04 2022-08-05 西南科技大学 一种改进的抗辐射加固矩阵码译码电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5425038A (en) * 1993-07-02 1995-06-13 International Business Machines Corporation Error plus single bit error detection
ATE408931T1 (de) * 2002-04-05 2008-10-15 Koninkl Philips Electronics Nv Verfahren und vorrichtung zur einbettung einer zusätzlichen schicht der fehlerkorrektur in einen fehlerkorrekturcode
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
KR100936022B1 (ko) * 2002-12-21 2010-01-11 삼성전자주식회사 에러 정정을 위한 부가정보 생성 방법 및 그 장치
US7370264B2 (en) * 2003-12-19 2008-05-06 Stmicroelectronics, Inc. H-matrix for error correcting circuitry
WO2005109653A1 (en) * 2004-04-09 2005-11-17 Agere Systems Inc. Multidimensional block encoder with sub-block interleaver and de-interleaver
WO2007091327A1 (ja) * 2006-02-09 2007-08-16 Fujitsu Limited Ldpc検査行列生成方法及び検査行列生成器並びに符号再送方法
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
JP5203717B2 (ja) * 2007-12-19 2013-06-05 パナソニック株式会社 符号器、復号器、符号化方法、及び、復号方法
JP2010114862A (ja) * 2008-10-10 2010-05-20 Panasonic Corp 符号化器、送信装置及び符号化方法
US8407560B2 (en) * 2010-07-14 2013-03-26 Hewlett-Packard Development Company, L.P. Systems and methods for encoding information for storage in an electronic memory and for decoding encoded information retrieved from an electronic memory

Also Published As

Publication number Publication date
US8707148B2 (en) 2014-04-22
US20120144262A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
JP5481759B2 (ja) 多重層巡回冗長検査コードを使用する無線通信装置
US11677422B2 (en) Transmitter and method for generating additional parity thereof
US20230124403A1 (en) Transmitter and parity permutation method thereof
EP2264925B1 (en) Error-correcting encoding apparatus
CN1656693B (zh) 迭代硬输入前向纠错的方法
US10389390B2 (en) Transmitter and repetition method thereof
US20140237325A1 (en) Staircase forward error correction coding
US11201695B2 (en) Forward error correction with compression coding
CN105991227B (zh) 数据编码方法及装置
US20160248544A1 (en) Transmitter and method for generating additional parity thereof
US20230299877A1 (en) Transmitter and method for generating additional parity thereof
US10979174B2 (en) Transmitter and method for generating additional parity thereof
US11637571B2 (en) Transmitter and repetition method thereof
US20230163787A1 (en) Forward error control coding
CN116032422A (zh) 一种数据传输方法和装置
US20170104496A1 (en) Iterative Decoding Scheme of Concatenated LDPC and BCH Codes for Optical Transport Network
CN1756090B (zh) 信道编码装置和方法
Böcherer et al. Operating LDPC codes with zero shaping gap
EP2624493B1 (en) Apparatus and method for transmitting/receiving data in communication system
KR20120059806A (ko) 에러 정정 부호의 생성방법, 복호 방법 및 그 장치
Morero et al. Novel serial code concatenation strategies for error floor mitigation of low-density parity-check and turbo product codes
CN111600613B (zh) 一种校验方法、装置、译码器、接收机及计算机存储介质
EP0993158B1 (en) Apparatus and method for data rate conversion
CN110603759A (zh) 统一的纠错和检错码生成器

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid