KR101221062B1 - 가변 usc 부호를 이용한 부호화 및 복호화 방법 - Google Patents

가변 usc 부호를 이용한 부호화 및 복호화 방법 Download PDF

Info

Publication number
KR101221062B1
KR101221062B1 KR1020110134197A KR20110134197A KR101221062B1 KR 101221062 B1 KR101221062 B1 KR 101221062B1 KR 1020110134197 A KR1020110134197 A KR 1020110134197A KR 20110134197 A KR20110134197 A KR 20110134197A KR 101221062 B1 KR101221062 B1 KR 101221062B1
Authority
KR
South Korea
Prior art keywords
matrix
length
code
basic
partial
Prior art date
Application number
KR1020110134197A
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 KR1020110134197A priority Critical patent/KR101221062B1/ko
Application granted granted Critical
Publication of KR101221062B1 publication Critical patent/KR101221062B1/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/1148Structural properties of the code parity-check or generator matrix
    • 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/6561Parallelized implementations

Landscapes

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

Abstract

개시된 가변 길이를 가지는 결합 상태 체크 부호(Unitive State-Check codes)를 이용한 부호화 및 복호화 방법에 관한 것이다. 본 명세서에서는 부호화 및 복호화 연산 처리 속도를 빠르게 할 수 있고, 필요로 하는 저장 공간을 줄일 수 있는 USC 부호를 새로이 제안하되, 특히 USC 부호가 가변 길이를 지원하도록 하는 부호화 방법 및 복호화 방법에 대하여 설명한다. 실시 예들 중에서, 가변 길이를 가지는 USC 부호를 이용한 부호화 방법은 단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수만큼 결합 된 제1 결합 행렬을 생성하는 단계; 기본 행렬 Ab(Base Matrix Ab)을 상기 제1 결합 행렬 크기의 부분 행렬들로 분할하는 단계; 상기 기본 행렬 Ab의 부분 행렬들 중 적어도 하나에 상기 제1 결합 행렬을 할당하는 단계; 요구되는 USC 부호의 길이에 따라 상기 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)를 생성하는 단계; 및 상기 생성된 통합 행렬 A를 기반으로 부호화를 수행하는 단계를 포함한다.

Description

가변 USC 부호를 이용한 부호화 및 복호화 방법{ENCODING AND DECODING METHOD USING VARIABLE LENGTH USC CODE}
개시된 기술은 데이터의 부호화(encoding) 및 복호화(decoding) 방법에 관한 것으로서, 보다 상세하지만 제한됨 없이는, 가변 길이를 가지는 결합 상태 체크 부호(Unitive State-Check codes, 이하, USC 부호)를 이용한 부호화 및 복호화 방법에 관한 것이다. 본 명세서에서는 부호화(encoding) 및 복호화(decoding) 연산 처리 속도를 빠르게 할 수 있고, 필요로 하는 저장 공간을 줄일 수 있는 USC 부호를 새로이 제안하되, 특히 USC 부호가 가변 길이를 지원하도록 하는 부호화 방법 및 복호화 방법에 대하여 설명한다. 본 명세서에 개시된 기술은 다양한 범위에 응용될 수 있지만, 특히 강화된 프로세서를 가진 통신 단말기에서 병렬 프로세스를 통한 연산속도 향상, 및 저장 공간을 효율적으로 사용하는 데 활용될 수 있다.
통신에 있어서 일반적으로 부호화(encoding)라 함은 송신 측에서 송신된 데이터가 통신 채널을 통하여 전송되는 과정에서 발생하는 신호의 일그러짐, 손실 등에 의한 오류에도 불구하고 수신 측에서 원래의 데이터를 복원할 수 있도록 하기 위해 송신 측에서 데이터를 처리하는 과정을 의미한다. 원래의 데이터의 크기를 줄여서 전송과 저장 등을 용이하게 하는 소스 부호화(source coding)와 구분하여 이를 채널 부호화(channel coding)라 한다. 부호화를 한다는 것은 통상 길이 K의 정보 시퀀스(정보 비트들)를 길이 N의 코드로 만드는 것이다. 복호화(decoding)는 부호화되어 송신된 신호를 수신 측에서 원래의 데이터로 복원하는 과정이다.
채널 부호화는 블록부호(block codes)와 콘볼루션 부호(convolution codes)로 크게 나누어진다. 블록부호는 K비트의 입력 정보(data sequences)를 N비트의 출력부호(codes)로 만들어내는 것이다. 콘볼루션 부호는 코드화시킬 때 현재 입력되는 신호에 과거의 일부 신호를 함께 활용하는 방식이다. 콘볼루션 부호를 기반으로 병렬 부호화와 인터리빙(interleaving)을 통해 성능을 더욱 발전시킨 것이 터보코드(turbo codes)이다. 터보코드(turbo codes)는 통신 채널의 비트 오류 확률(probability)을 최소로 유지하는 사상에 기반을 둔 오류 정정 부호 (ECC: error correction code)의 하나이다. 터보코드는 1993년 Berrou 등이 제안한 것으로 비교적 간단한 구조를 가지면서도 매우 우수한 오류 정정 성능을 제공하므로 고성능의 오류 정정 부호 방식이 요구되는 통신 시스템에 적용되고 있다.
최근에는 저밀도 패리티 검사(LDPC: low-density parity-check) 코드가 통신 시스템에 적용되기 시작하였다. LDPC 코드는 길이 K의 정보시퀀스를 길이 N의 부호어로 만든다. 부호어 중 정보 시퀀스를 제외한 (N-K) 길이의 패리티 비트는 패리티 검사 행렬 (parity-check matrix) H를 사용하여 만들 수 있다. 패리티 검사 행렬 H는 크기가 (N-K) × N 이고, 1보다는 0이 많은 저밀도의 성질을 가진다. LDPC 코드를 이용한 부호화 방법에서는 패리티 검사 행렬 H을 어떻게 만드는지가 가장 중요한 요소이다. 여기서, 패리티 검사 행렬 H는 대략 1000×2000 이상의 크기를 갖기 때문에 부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구하는 문제점이 있다. 다시 말해, 데이터 블록의 크기가 증가하면 LDPC의 오류정정 능력은 강해지지만, 프로세서가 처리해야 하는 연산량 및 요구하는 저장 공간 또한 증가한다는 문제점이 있다. 이러한 문제점을 해결하기 위한 기술로 대한민국 공개특허 제10-2007-0058438호(무선 통신 시스템에서 저밀도 패리티 체크 코드를 이용한 부호화, 복호화 방법 및 그 장치)가 있다.
한편, 시스템마다 요구되는 LDPC 코드의 부호율, 부호어의 길이 등이 서로 다를 수 있기 때문에 부호화 및 복호화 장치는 다양한 부호율과 부호어의 길이를 지원해야할 필요가 있다. 그러나 다양한 부호율 또는 부호어의 길이를 지원할 수 있기 위해서는 하드웨어의 시스템 사이즈가 커지거나, 또는 복잡도가 증가한다는 단점이 있다 이러한 단점을 극복하고 가변적인 LDPC 부호를 지원하는 기술로 대한민국 등록특허 제10-0833515호(가변 정보 길이 및 가변 부호율을 가진 LDPC 부호의 패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를 이용하는 장치)가 있다.
개시된 기술이 이루고자 하는 기술적 과제는 저장공간을 줄이면서, 연산 속도를 향상시킬 수 있는 부호로서, 가변 길이를 지원하는 부호를 이용하여 부호화 및 복호화 하는 방법을 제공하는 데 있다. 개시된 기술에서는 저장공간을 줄이면서, 연산 속도 및 성능을 향상시킬 수 있는 USC 코드를 제안하는 한편, 새로이 제안되는 USC 코드에 적합하게 가변 길이 USC 부호를 지원하는 방법을 제공한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제1 측면은 가변 길이를 가지는 USC(Unifying State Check) 부호를 이용한 부호화 방법에 있어서, 단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수 만큼 결합된 제1 결합 행렬을 생성하는 단계; 기본 행렬 Ab(Base Matrix Ab)을 상기 제1 결합 행렬 크기의 부분 행렬들로 분할하는 단계; 상기 기본 행렬 Ab의 부분 행렬들 중 적어도 하나에 상기 제1 결합 행렬을 할당하는 단계; 요구되는 USC 부호의 길이에 따라 상기 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)를 생성하는 단계; 및 상기 생성된 통합 행렬 A를 기반으로 부호화를 수행하는 단계를 포함하는 부호화 방법을 제공한다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제2 측면은 가변 길이를 가지는 USC(Unifying State Check) 부호를 이용한 복호화 방법에 있어서, 상기 USC 부호로 부호화된 부호어를 수신하는 단계; 단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수 만큼 결합된 제1 결합 행렬을 생성하는 단계; 기본 행렬 Ab(Base Matrix Ab)을 상기 제1 결합 행렬 크기의 부분 행렬들로 분할하고, 상기 부분 행렬들 중 적어도 하나에 상기 제1 결합 행렬을 할당하는 단계; 상기 수신된 부호어의 길이에 따라, 상기 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)을 생성하는 단계; 및 상기 생성된 통합 행렬 A를 기반으로 상기 수신된 부호어를 복호화하는 단계를 포함하는 복호화 방법을 제공한다.
개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
개시된 기술의 일 실시예에 따른 USC 부호를 부호화 및 복호화 하는 방법은 가변 길이를 지원할 수 있으면서, 또한 종래의 코딩 방식(예컨대, LDPC 부호)보다 부호화 및 복호화에서 메모리를 줄일 수 있다는 효과가 있다.
개시된 기술에서는 새로이 제안되는 USC 부호에 적합한 방법으로 USC 부호가 가변 길이를 지원하여 부호화 및 복호화할 수 있도록 한다. 실제 이동 통신 시스템에서는 전송 효율을 높이기 위하여 가변 부호 길이를 사용하는 것이 중요한 관건이므로 인코딩의 속도가 빠르고 디코딩의 하드웨어 패러랠 프로세싱 효과가 높은 USC 부호가 가변 부호 길이를 성능 및 기능의 저하 없이 지원하도록 한다. 또한 USC 부호를 저장하는데 필요한 메모리를 획기적으로 줄일 수 있다.
개시된 기술에 따른 USC 코드의 부호화 및 복호화 방법의 경우, 종래의 코딩 방식(예컨대, LDPC 코드)보다 부호화 및 복호화 속도가 빠르다는 장점이 있다. 또한, USC 코드를 이용한 부호화 또는 복호화 방법은 향상된 오류 정정 성능을 보이면서도, 필요로 하는 저장 공간이 종래에 비하여 작으며, 병렬 프로세싱이 용이하다는 장점이 있다.
도 1은 개시된 기술의 일 실시예에 따라, 부호화 장치가 USC 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 장치의 상태가 천이되는 과정 및 SC 비트가 결정되는 과정을 설명하기 위한 도면이다.
도 3은 개시된 기술의 일 실시예에 따라 SC 통합 행렬 A를 사용하여 부호화하는 과정을 설명하기 위한 도면이다.
도 4는 개시된 기술의 일 실시예에 따라, 가변 길이의 USC 부호를 지원하는 부호화 방법 및 복호화 방법을 설명하기 위한 도면이다.
도 5는 단위 행렬, 회전 단위 행렬 및 결합 행렬을 예를 들어 설명하기 위한 도면이다.
도 6은 부분 행렬을 설명하기 위한 도면이다.
도 7은 개시된 기술에 따라 기본 행렬 A(1)을 통합 행렬 A(x)로 확장하는 과정을 설명하기 위한 도면이다.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
“제1”, “제2” 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
개시된 기술은 가변 길이를 가지는 USC 부호를 이용한 부호화 및 복호화 방법에 관한 것이다. 가변 길이를 가지는 USC 부호를 지원하는 방법에 대하여 설명하기 이전에, 도 1 내지 도 4를 참조하여 USC 부호에 대하여 간단히 설명한다. USC 부호는 종래의 부호(예컨대, LDPC 부호)보다 부호화 및 복호화 연산 처리 속도를 빠르게 할 수 있고, 필요로 하는 저장 공간을 줄일 수 있다는 등의 장점을 가진다. USC 코드는 기존의 패리티-체크 개념에 대응되는 상태-체크 개념을 새로이 도입하여, 부호화 및 복호화를 수행한다.
도 1은 개시된 기술의 일 실시예에 따라, 부호화 장치가 USC 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다. 개시된 기술에 따르면, 부호화기는 부호화 하려는 정보 비트들 중 적어도 일부인 입력 비트들에 따라, 부호화 상태를 결정하고, 결정된 최종 부호화 상태에 따라 SC 비트들을 결정하는 과정을 복수 회 반복하여, 복수 회 출력되는 각각의 SC 비트들을 결합한다. 결합된 SC 비트들은 정보 비트들과 함께 전송됨으로써, 정보 비트들의 전송 오류를 정정할 수 있도록 한다. 각 SC 비트들의 길이, 즉, 비트 수 NSC는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NSC의 수가 2인 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NSC는 3, 4 등의 정수가 될 수도 있다.
부호화 장치는 우선, 부호화 하려는 정보 비트열(b k )의 비트들 중 적어도 일부의 정보 비트들을 선택한다(S110). 도 1에서 확인할 수 있듯이 S110 단계 내지 S140 단계는 설정된 횟수만큼(예컨대, G 회 만큼) 반복되는데, 매 반복마다 정보 비트열의 비트들 중 적어도 일부의 정보 비트들이 새로이 선택되고, 새로이 선택되는 정보 비트들을 이용하여 각 SC 비트들이 결정된다. 또한, 실시 예에 따라, 부호화 장치는 정보 비트들 뿐 아니라, 이전의 반복에서 결정된 SC 비트들 중 적어도 일부 비트를 함께 선택하여 이후의 부호화 과정에 사용할 수 있다. 부호화 장치는 각 SC 비트들을 결정할 때마다 부호화 상태를 초기화 한다(S120). 초기화 된 부호화 상태는 상태 0(zero state)이라 가정한다. 부호화 장치는 정보 비트열을 구성하는 정보 비트들 중 선택된 정보 비트들에 따라 부호화 상태를 결정한다(S130). 실시예에 따라, S110 단계에서 SC 비트들 중 일부 비트를 선택한 경우, S130 단계에서, 부호화 장치는 선택된 정보 비트들과 선택된 SC 비트들(이하, 선택된 비트들)에 따라 부호화 상태를 결정한다. 부호화 장치는 선택된 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는 단계(S132) 및 비트가 입력될 때마다, 입력 받은 비트에 따라 현재 상태에서 다음 상태로 천이하는 단계(S134)를 선택된 비트들의 수만큼 반복(S136)하고, 마지막 반복에서의 부호화 장치의 상태를 부호화 상태로 결정할 수 있다. 이때, 부호화 장치가 가질 수 있는 상태 수는 Nstate 이다.
일 실시 예에 따라, Nstate가 4인 경우 입력 비트들에 따라 부호화 상태가 천이되는 과정이 도 2의 (a)의 트렐리스(trellis)에 예시되어 있다. 도 2는 개시된 기술의 일 실시예에 따라, 부호화 장치의 상태가 천이되는 과정 및 SC 비트가 결정되는 과정을 설명하기 위한 도면이다. 도 2의 (a)에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 정보 비트의 입력에 따른 부호화 장치의 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 부호화 상태는 상태 0으로 초기화되며, 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이된다. 예를 들어, 부호화 상태는 현재 상태에 따라 다음 상태가 될 수 있는 두 개의 상태들 중 입력 받는 비트에 따라 결정되는 하나의 상태로 천이한다.
도 2의 (b)는 도 2의 (a)와 같이 부호화 상태가 천이하는 순환 시프트 레지스터(Recursive Shift Register, 이하 RSR)의 일례이다. 현재의 부호화 상태를 나타내는 RSR은 부호화 장치에 정보 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 입력된 비트와 저장된 비트들이 XOR(배타적 논리합) 연산된 결과가 최상위 비트 자리로 입력됨으로써 부호화 상태를 나타내는 비트들을 갱신할 수 있다.
다시 도 1을 참조하면, 부호화 장치는 선택된 비트들의 입력에 따라, 마지막 반복에서 천이된 상태 값을 기초로 SC 비트들을 결정한다(S140). 일 실시 예에 따라, 부호화 장치는 마지막 반복에서 천이된 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 SC 비트들로 결정한다. 예컨대, 마지막 반복에서 천이된 상태가 상태 0(Zero State)으로 수렴하도록 하는 입력 비트들의 값이 SC 비트가 된다. 도 2를 참조하면, SC 비트가 마지막 반복 이후에 입력 비트로 들어간다고 가정했을 때, 마지막 반복에서의 상태가 결국 미리 설정된 상태인 상태 0으로 수렴하여 상태 천이가 종료하는 것을 확인할 수 있다. 한편, 상태 수가 Nstate인 경우, SC 비트들의 비트 수 NSC는 log2Ns이 된다.
부호화 장치는 미리 설정된 횟수 G 만큼 S110 단계 내지 S140 단계를 반복한다(S150). 부호화 장치는 매 반복마다 정보 비트들을 새로이 선택하며, 매 반복마다 SC 비트들을 결정한다. 각 SC 비트들이 결정되면, 부호화 장치는 복수 개의 각 SC 비트들을 결합한 비트들과 정보 비트열을 결합하여 부호어를 생성한다(S160). 정보 비트들의 비트 수가 K이고, 각 SC 비트들의 비트 수가 NSC이면, USC 코드의 부호율은
Figure 112011099196044-pat00001
이 된다.
이와 같이 마지막으로 정보 비트가 입력된 때의 부호화 상태에 따라 SC 비트 값이 결정되므로, 수신 측에서는 반대로 SC 비트를 이용하여 전송된 데이터의 오류가 있는지 여부를 판단할 수 있다.
도 3은 개시된 기술의 일 실시예에 따라 SC 통합 행렬 A를 사용하여 부호화하는 과정을 설명하기 위한 도면이다. 도 4의 행렬 A를 사용하여 정보 비트열을 부호화하는 과정은, 도 1의 실시 예에 포함되므로 도 1에서 설명한 내용은 본 실시 예에서도 동일하게 적용될 수 있다.
도 3의 (a)는 G행 N열의 SC 통합 행렬 A(G by N SC Unifying matrix A)를 나타낸다(예를 들어, A는 10 x 40 행렬, 즉, G=10, N=40, K=20, Nsc=2). 행렬 A는 USC 코드를 이용하여 정보 비트열을 부호화 하는 과정을 구조적으로 표현할 수 있다. 행렬 A는 도 1의 S110 내지 S140 단계를 G회 반복하면서 정보 비트열 b k 에서 정보 비트들을 선택하고(S110), 선택된 비트들을 이용하여 SC 비트들을 결정하는(S140) 과정을 G행의 행렬로 표현한다. 행렬 A는 LDPC 코드에서 생성 행렬(generator matrix)의 역할을 수행할 수 있다. G번의 반복 중 i번째 반복에서 정보 비트열 b k 에서 선택되는 비트의 수는 m(i)라 하고, 정보 비트열 b k 을 구성하는 K개의 비트 중 j번째 비트가 반복하여 선택되는 수를 q(j)라 한다. 행렬 A는 이진(binary) 행렬로서, 행렬의 구성요소 ai ,j의 값은 ai ,π(l)를 제외하고 모두 0값을 가진다. π(l)은 i번째 반복에서 선택된 m(i)개의 비트들 중 l번째 선택된 비트의 열 인덱스 j를 의미한다. j= π(l)인 ai ,j(즉, ai ,π(l))의 값은 1이다.
도 3의 (b)는 행렬 A를 이용하여 부호화 하는 과정을 설명한다. 일 실시 예에 따라, 부호화 장치가 생성하는 부호어 c는 [b k b p ]인 길이 N의 비트 열일 수 있다. b p 는 G개의 SC 비트들을 포함하는 G·NSC길이의 SC 비트 열일 수 있다. 부호화 장치가 도 3과 같은 RSR을 포함하여 부호화를 수행한다고 가정한다. 부호화 장치는 SC 비트들을 결정하는 과정을 G회 반복한다. 부호화 장치는 매 반복마다 RSR의 상태를 초기화 한다. 부호화 장치는 매 반복마다, 선택된 m(i)개의 비트들을 순차적으로 RSR에 입력시킨다. 마지막 입력된 비트에 따른 RSR의 부호화 상태에 따라, 부호화 상태가 특정 상태(예컨대, 상태 0)로 수렴하도록 하는 입력 비트들을 SC 비트들로 결정한다. i번째 결정된 SC 비트들은 부호어 C의 K+2i-2, K+2i-1,…번째 비트가 된다. 이와 같은 과정을 G번 반복하면 b P 의 모든 SC 비트들이 결정되며, 부호화 장치는 부호어 C를 출력한다.
개시된 기술에 따른 USC 코드는 종래 LDPC 코드가 패리티 체크를 위해 tanh 규칙을 사용하였던 것과 달리, BCJR 알고리즘을 사용하여 복호화 할 수 있다. 예컨대, 복호화 장치는 도 2의 트렐리스에 기반한 BCJR 알고리즘을 이용하여 수신 데이터를 반복하여 복호화할 수 있다. SC 통합 행렬 A는 도 3에서와 같이 부호화 과정에서 사용되는 한편, 복호화 과정에서도 사용될 수 있다. 복호화 과정에서 행렬 A는 LDPC 코드를 이용한 복호화에서 패리티 체크 매트릭스와 같은 역할을 수행한다. LDPC의 복호화 과정에서와 같이, Tanner Graph에 기반하여, USC코드는 양 측으로 나뉘어진 노드 들과 한 측의 노드에서 타 측의 노드로 연결된 가지(edge)들로 표현될 수 있다. 양 측의 노드들 중 한 측의 노드들은 부호어의 각 비트들을 의미하는 변수 노드들(variable nodes)이며, 타 측의 노드들은 SC 규칙(SC constraints)과 관련된 SC 노드들(state check nodes)이다. 가지를 따라 한 측의 노드에서 타 측의 노드로 메시지를 전달하고, 전달 받은 메시지를 기초로 전달할 메시지를 갱신하는 과정을 반복하는 것으로 복호화 과정을 설명할 수 있다. 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아진다. 이때, 메시지는 부호화 신호 중 해당하는 비트의 대수 가능도 비(Log Likelihood Ratio: LLR) 값을 포함할 수 있다. 변수 노드들과 SC 노드들은 행렬 A의 원소 ai ,j의 값이 1일 때마다, i번째 SC 노드와 j번째 변수 노드가 가지(edge)로 연결된다. 이때, i번째 SC 노드와 연결되는 변수 노드들의 수를 m(i)라 하며, m(i)개의 변수 노드들의 순서를 l로 표현했을 때, l과 j의 관계는 j=π(l)로 표시한다. 마찬가지로, j번째 변수 노드와 연결되는 SC 노드들의 수를 q(j)라 하며, q(j)개의 SC 노드들의 순서를 k라 표현했을 때, k와 i의 관계는 i=σ(k)로 표시한다. SC 노드에서는 BCJR 알고리즘을 이용한 SC 규칙에 따라 각 SC 노드에서 변수 노드로 전달하는 메시지를 갱신한다.
우선, 복호화 장치는 수신된 부호화 신호를 기초로 부호화 신호의 각 비트들의 가능도 L 및 제1 메시지 U를 초기한다. Lj는 N 비트의 부호화 신호 중 j번째 비트(bj)의 LLR을 의미한다. 제1 메시지 U는 SC 노드가 변수 노드에 제공하는 메시지이다. Ui ,j는 i번째 SC 노드가 j번째 변수 노드에 제공하는 메시지로, i번째 SC 노드가 추정한 bj의 LLR을 값으로 가진다. U0 ,j는 수신된 부호화 신호 값을 기초로 추정된 bj의 관측 LLR 값이다. U0 ,j를 제외한 Ui ,j는 모두 0으로 초기화되고, Lj 값은 U0,j의 값으로 초기화된다. 초기화 이후, 복화화 장치는 제1 메시지의 값들을 기초로 제2 메시지의 값들을 산출한다. j번째 변수 노드가 σ(n)=i번째 SC 노드에 제공하는 제2 메시지 Vj ,σ(n)=Vj ,i는 일 실시예에 따라, 수학식 1과 같이 산출될 수 있다. 이때, σ(0)=0으로 정의한다.
Figure 112011099196044-pat00002
제2 메시지가 산출되면, 복화화 장치는 각 SC 노드가 제공받은 제2 메시지의 값들을 기초로 다시 제1 메시지의 값들을 산출하여 해당하는 변수 노드에 제공한다. 제1 메시지의 값은 각 SC 노드들이 각 SC 노드와 연결된 비트들에 대하여 추정하는 각 비트들의 가능도(likelihood)로서, 각 SC 노드와 연결된 비트들 중 각 비트의 주변 비트들의 가능도에 기반하여 추정된다. 복호화 장치는 tanh 규칙을 사용하는 LDPC 코드와 달리, BCJR 알고리즘을 이용하여 제1 메시지 값을 산출할 수 있다. 본 실시 예에서 BCJR 알고리즘은 부호화 신호에 따른 부호화 상태 천이를 나타내는 트렐리스(예컨대, 도 2 (a)의 트렐리스)에 기반하여 수행된다. BCJR 알고리즘은 트렐리스의 각 상태들에 상응하는 포워드 상태 메트릭(α) 및 백워드 상태 메트릭(β)을 순차적으로 산출한 뒤, 이를 이용하여 사후 확률을 계산하여 전송 비트의 연판정(soft decision)값을 얻을 수 있다. 시간 t에서의 사후 확률은 시간 t에서의 사후 천이 확률들의 합으로 계산될 수 있다.
우선, 복호화 장치는 제2 메시지의 값들을 기초로 가지 메트릭들의 값을 결정한다. 이때, 제2 메시지의 값들은 BCJR 알고리즘의 입력 값으로, BCJR 알고리즘에서 각 전송 비트들의 사전 LLR 값에 상응한다. 일 실시예에 따라, 시간 t=l에서의 가지 메트릭들은 m(i)개 중 l번째 제2 메시지인 Vπ(l),i값을 기초로 결정될 수 있다. 예컨대, 시간 t=l에서의 가지 메트릭들 중 bit 0에 상응하는 가지의 메트릭은 Vπ(l),i값으로부터 시간 t=l에서의 비트 값이 0일 확률로 결정되며, bit 1에 상응하는 가지의 메트릭 또한, Vπ(l),i값으로부터 시간 t=l에서의 비트 값이 1일 확률로 결정된다. 이를 수식으로 표현하면 수학식 2와 같다.
Figure 112011099196044-pat00003
가지 메트릭이 산출되면, 복호화 장치는 포워드 상태 메트릭을 순착적으로 산출하고, 또한 백워드 상태 메트릭들을 역순으로 산출한다.
복호화 장치는 t번째 포워드 상태 메트릭 및 t+1번째 백워드 상태 메트릭의 곱에 기초하여 m(i)개 비트들 중 t번째 비트에 대한 제1 메시지의 값을 산출한다. 일 실시예에 따라, t=n번째 변수노드(이때, n은 1≤n≤m(i) 인 정수)에 제공하는 제1 메시지 Ui ,π(n)의 값은 t=n번째 포워드 상태 메트릭 및 t=n+1번째 백워드 상태 메트릭의 곱으로 산출되는 사후 천이 확률 σ들의 합으로 산출될 수 있다. t=n에 상응하는, j=π(n)번째 변수노드에 제공하는 제1 메시지의 값 Ui ,π(n)은 j=π(n)번째 변수노드로부터 제공받은 제2 메시지의 값(Vπ(n),i)을 반영하지 않으므로, 일반적인 BCJR 알고리즘에서와 달리 사후 천이 확률을 구할 때, 가지 메트릭을 곱하지 않는다. 이를 수식으로 표현하면 수학식 3과 같다.
Figure 112011099196044-pat00004
이상, BCJR 알고리즘에 의하여 제2 메시지의 값 V로부터 제1 메시지의 값 U를 산출하는 연산은 간단히 수학식 4와 같이 표현할 수 있다.
Figure 112011099196044-pat00005
이후, 복호화 장치는 이전의 반복에서 산출된 제1 메시지를 이용하여 제2 메시지를 산출하고, 새로이 산출된 제2 메시지를 이용하여 제1 메시지를 갱신하는 과정을 미리 설정된 만큼 반복한다. 복화화 장치는 마지막 반복에서 산출된 제1 메시지의 값들을 기초로 수학식 5와 같이 추정되는 각 비트(bj)의 LLR에 따라 각 비트(bj)의 값을 결정한다.
Figure 112011099196044-pat00006
도 4는 개시된 기술의 일 실시예에 따라, 가변 길이의 USC 부호를 지원하는 부호화 방법 및 복호화 방법을 설명하기 위한 도면이다. 도 1 내지 도 4를 참조하여 설명한 USC 코드는 가변 부호 길이를 지원하지 않는다. 그러나, 실제 통신 시스템에서는 부호기 또는 복호기가 다양한 부호 길이를 지원할 것을 요구한다. 따라서, 이하에서는 실제 통신 시스템에서 요구되는 다양한 USC 부호 길이를 성능 및 기능의 저하 없이 지원하도록 하는 방법을 설명한다. 도 4에서는 SC 비트의 비트 수만큼 단위행렬 또는 회전 단위행렬을 결합하여 결합 행렬을 생성하고, 결합 행렬을 확장함으로써 다양한 길이의 USC 부호를 지원하는 통합 행렬 A를 생성하는 방법을 설명한다. 도 4를 참조하여 가변 길이를 가지는 USC 부호를 이용한 부호화 및 복호화 방법을 보다 구체적으로 설명하면 다음과 같다. 우선, 도 4를 참조하여 부호기가 가변 길이를 가지는 USC 부호를 부호화하는 방법을 설명한다.
S410 단계에서, 부호기는 기본 부호어의 길이에 따라 기본 행렬 Ab(Base Matrix Ab)의 크기를 결정한다. 일 실시예에 따라, 기본 행렬 Ab의 열(column) 수는 기본 부호어의 길이 Nb와 같도록 결정될 수 있다. 또한 일 실시예에 따라, 기본 행렬 Ab의 행(row) 수 Gb는 기본 부호어의 길이, 부호율, 및 SC 비트의 길이에 따라 수학식 6과 같이 결정될 수 있다.
Figure 112011099196044-pat00007
여기서, R은 부호율, Nsc는 SC 비트의 길이를 나타낸다. SC 비트는 하나의 SC부호가 발생시키는 패리티 비트들의 수로, Nsc=log(Nstate)/log(2)이다. 예를 들어, USC 부호의 부호율이 1/2이고, SC 비트의 길이가 2인 경우 Gb는 Nb/4이 된다. 이때, 기본 행렬 Ab는 Nb/4 × Nb 행렬이 된다.
S420 단계에서, 부호기는 단위 행렬 또는 회전 단위 행렬이 SC(State Check) 비트의 길이 만큼 결합된 제1 결합 행렬을 생성한다. 이때, 단위 행렬은 주 대각선 원소가 1이고, 나머지는 0인 n × n 행렬이고, 회전 단위 행렬은 단위 행렬의 원소들이 임의의 수만큼 우회전 또는 좌회전한 행렬을 의미한다. k(0≤k≤n-1)만큼 우(좌)회전된 단위 행렬은 Ik로 표시한다. 회전 단위 행렬은 단위 행렬을 포함하는 개념이나, 문맥에 따라 회전 단위 행렬은 단위 행렬을 제외한 행렬만을 지칭할 수도 있다. k=0인 회전 단위 행렬 I0은 단위 행렬을 의미한다. 단위 행렬의 i번째 열은 Ik의 mod(i+k,n) 또는 mod(i-k,k)열에 위치한다. 이때, mod(a,b)는 a를 b로 나눈 나머지를 의미한다. 부호기는 SC 비트의 길이 만큼 단위 행렬 또는 회전 단위 행렬을 결합하여 제1 결합 행렬을 생성한다. 예컨대, SC 비트의 길이가 2인 경우, 부호기는 2 개의 단위 행렬 또는 회전 단위 행렬이 결합 된다. 일 실시 예에 따라, 부호기는 상기 단위 행렬을 i(0≤i<n)i번 회전시킨 Ii행렬 및 상기 단위 행렬을 j번 회전시킨 Ij(0≤j<n) 행렬을 결합하여 상기 제1 결합 행렬을 생성할 수 있다. 2개의 행렬 Ii와 Ij이 순서대로 나란히 결합된 결합 행렬 [IiIj]을 Uij로 표시한다. Uij는 n × 2n 행렬이다. 영행렬은 모든 요소가 0인 행렬을 의미한다.
도 5는 단위 행렬, 회전 단위 행렬 및 결합 행렬을 예를 들어 설명하기 위한 도면이다. 도 5의 (a)는 n=10인 경우의 단위 행렬을 나타낸다. 도 5의 (b)는 n=10인 단위 행렬이 1-우회전한(1-right-rotated) 회전 단위 행렬 I1을 나타낸다. 도 5의 예에서 회전 단위 행렬은 단위 행렬이 임의의 수만큼 우회전한 경우를 기준으로 하나, 이에 한정되는 것은 아니다. 도 5의 (c)는 단위 행렬 I0와 1-우회전한 회전 단위 행렬 I-1이 결합된 결합 행렬 I01을 나타낸다. 결합 행렬 U01은 [I0I1]인 n × 2n 행렬이다.
S430 단계에서, 부호기는 단위 행렬들이 SC비트의 길이 만큼 결합된 제2 결합 행렬을 생성한다. SC 비트의 길이가 2인 경우 제2 결합 행렬은 U00=[I0I0]이다. 제1 결합 행렬과 제2 결합 행렬은 모두 단위 행렬 또는 회전 단위 행렬이 SC 비트의 길이 만큼 결합된 행렬로, n × (Nsc)n 크기를 가진다.
S440 단계에서, 부호기는 기본 행렬 Ab(Base Matrix Ab)을 제1 결합 행렬 크기의 부분 행렬(sub-matrix)들로 분할한다. 즉, 부호기는 Gb × Nb 크기의 Ab행렬을 n × Nscn 크기의 부분 행렬들로 분할한다. 부분 행렬들의 개수는 (Gb/n) * (Nb/(Nscn))이 된다. 부분 행렬들 중 행 방향으로 r번째(0≤r≤Gb/n-1), 열 방향으로 c(0≤c≤Nb/ Nscn-1)번째 위치한 부분 행렬을 Src로 표시한다. 예를 들어, Nb가 40, n이 5, Nsc이 2인 경우, Ab 행렬은 10 × 40 인 행렬이고, 부분 행렬은 5 × 10 인 행렬로써, 부분 행렬들의 개수는 모두 2*4 =8개가 된다. 이러한 예시가 도 6의 (a)에 도시된다.
S450 내지 S460 단계에서, 부호기는 기본 행렬 Ab의 부분 행렬들 중 적어도 하나에 제1 결합 행렬 또는 제2 결합 행렬을 할당한다. 일 실시 예에 따라, S450 단계에서, 부호기는 기본 행렬 Ab의 부분 행렬들 중 정보 비트(information bits)에 해당하는 적어도 하나의 부분 행렬에 제1 결합 행렬을 할당할 수 있다. 또한 일 실시 예에 따라 S460 단계에서, 부호기는 기본 행렬 Ab의 부분 행렬들 중 패리티 비트(parity bits)에 해당하는 적어도 하나의 부분 행렬에 제2 결합 행렬을 할당할 수 있다. 실시 예에 따라, 부분 행렬들 중 사용하지 않는 적어도 하나의 부분 행렬에는 영 행렬이 할당될 수 있다(S470). 일 실시 예에 따라, 도 6의 (b)와 같이 10 × 40의 기본 행렬 Ab의 부분 행렬들이 할당될 수 있다. 도 6의 S11(610), S12(620), S21(650), S22(660), S23(670)은 정보 비트에 해당하는 부분 행렬들로, 제1 결합 행렬인 U01=[I0I1]이 할당된다. 도 6의 S13(630), S24(680)은 패리티 비트에 해당하는 부분 행렬들로, 제2 결합 행렬인 U00=[I0I0]이 할당된다. 도 6의 S14(640)은 사용되지 않는 부분 행렬로, n × 2n 의 영 행렬이 할당된다.
S480 단계에서, 부호기는 요구되는 USC 부호의 길이에 따라 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)를 생성한다. 일 실시예에 따라, 부호기는 요구되는 USC 부호의 길이와 기본 부호어의 길이 간의 비율을 산출하고, 산출된 비율로 기본 행렬 Ab의 부분 행렬들을 확장 할 수 있다. 예를 들어, 요구되는 USC 부호의 길이 N이 기본 부호어의 길이 Nb의 x(x≥1) 배이라면(N=xNb), 확장된 통합 행렬 A는 기본 행렬 Ab의 부분 행렬들을 각각 x배 확장하여 생성될 수 있다. 이때, 기본 행렬 Ab는 A(1)로, 통합 행렬 A는 확장 행렬인 A(x)로 표시될 수 있다.
예를 들어, N=40의 부호 길이를 2배로 하고자 한다면 2N=80 이 되고 부분 행렬은 2n by 2(2n)으로 확장된다. 이때 부분 행렬들의 개수는 변하지 않는다. 개시된 기술에 따르면, 위와 같은 부분 행렬의 확장 방법을 통해 다양한 부호 길이를 메모리의 증가 없이 지원하는 것이 가능하다.
도 7은 개시된 기술에 따라 기본 행렬 A(1)을 통합 행렬 A(x)로 확장하는 과정을 설명하기 위한 도면이다. 도 7의 (a)는 기본 행렬 A(1)를 나타내고, 도 7의 (b)는 통합 행렬 A(x)를 나타낸다. 기본 행렬 A(1)이 주어지면, 이를 확장(Expansion)하여 통합 행렬 A(x)를 얻을 수 있다. 예컨대, 도 7에서 보는 바와 같이 Gb by Nb 의 USC 부호 A(1) 와 Gb/n × Nb/(2n) 개의 n by 2n 의 크기 부분 행렬 Src (0≤r≤G/n-1), (0≤c≤N/(2n)-1) 가 Uij 또는 O로 주어졌을 때 Gx by Nx 의 A(x) 은 Src의 크기를 nx by 2nx 로 확장함으로써 얻어진다.
통합 행렬 A가 생성되면, 부호기는 상기 생성된 통합 행렬 A를 기반으로 부호화를 수행한다. 일 실시예에 따라, 부호기는 도 1 내지 도 3을 참조하여 전술한 방법에 따라 부호화를 수행할 수 있다.
다음으로, 도 4를 참조하여 복호기가 가변 길이를 가지는 USC 부호를 복호화하는 방법을 설명한다. 가변 길이를 가지는 USC 부호를 이용하여 부호화하는 과정과 중복되는 설명은 생략될 수 있다.
우선, 복호기는 USC 부호로 부호화된 부호어를 수신한다. S410 단계에서, 복호기는 기본 부호어의 길이에 따라 기본 행렬 Ab(Base Matrix Ab)의 크기를 결정한다. 일 실시 예에 따라, 복호기는 기본 부호어의 길이, 부호율, 및 SC 부호의 비트 수에 따라 상기 기본 행렬 Ab의 행 수를 결정할 수 있다. S420 단계에서, 복호기는 단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수만큼 결합된 제1 결합 행렬을 생성한다. 일 실시 예에 따라, 복호기는 단위 행렬을 i(0≤i<n)i번 회전시킨 Ii행렬 및 단위 행렬을 j번 회전시킨 Ij(0≤j<n) 행렬을 결합하여 제1 결합 행렬을 생성할 수 있다. S430 단계에서, 복호기는 단위 행렬들이 SC 부호의 비트 수만큼 결합된 제2 결합 행렬을 생성한다.
S440 단계에서, 복호기는 기본 행렬 Ab(Base Matrix Ab)을 제1 결합 행렬 크기의 부분 행렬들로 분할한다. S450 단계 내지 S460 단계에서 복호기는 기본 행렬 Ab의 부분 행렬들 중 적어도 하나에 제1 결합 행렬 또는 제2 결합 행렬을 할당한다. 일 실시 예에 따라, S450 단계에서 복호기는 기본 행렬 Ab의 부분 행렬들 중 정보 비트에 해당하는 적어도 하나의 부분 행렬에 제1 결합 행렬을 할당할 수 있다. 또한 일 실시 예에 따라, S460 단계에서 복호기는 기본 행렬 Ab의 부분 행렬들 중 패리티 비트에 해당하는 적어도 하나의 부분 행렬에 제2 결합 행렬을 할당할 수 있다. 실시 예에 따라, 부분 행렬들 중 사용하지 않는 적어도 하나의 부분 행렬에는 영 행렬이 할당될 수 있다(S470).
S480 단계에서, 복호기는 수신된 부호어의 길이에 따라, 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)을 생성한다. 일 실시 예에 따라, 복호기는 수신된 부호어의 길이와 기본 부호어의 길이 간의 비율을 산출하고, 산출된 비율로 기본 행렬 Ab의 부분 행렬들을 확장할 수 있다.
통합 행렬 A가 생성되면, 복호기는 생성된 통합 행렬 A를 기반으로 수신된 부호어를 이용하여 복호화한다. 통합 행렬 A를 이용하여 수신된 신호를 복호화하는 방법은 앞에서 설명한 바 있다.
이러한 개시된 기술인 시스템 및 장치는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.

Claims (12)

  1. 가변 길이를 가지는 USC(Unifying State Check) 부호를 이용한 부호화 방법에 있어서,
    단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수 만큼 결합된 제1 결합 행렬을 생성하는 단계;
    기본 행렬 Ab(Base Matrix Ab)을 상기 제1 결합 행렬 크기의 부분 행렬들로 분할하는 단계;
    상기 기본 행렬 Ab의 부분 행렬들 중 적어도 하나에 상기 제1 결합 행렬을 할당하는 단계;
    요구되는 USC 부호의 길이에 따라 상기 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)를 생성하는 단계; 및
    상기 생성된 통합 행렬 A를 기반으로 부호화를 수행하는 단계를 포함하는 부호화 방법.
  2. 제1항에 있어서,
    기본 부호어의 길이에 따라 상기 기본 행렬 Ab(Base Matrix Ab)의 크기를 결정하는 단계를 더 포함하는 부호화 방법.
  3. 제2항에 있어서, 상기 결정하는 단계는,
    상기 기본 부호어의 길이, 부호율, 및 SC 비트의 길이에 따라 상기 기본 행렬 Ab의 행 수를 결정하는 부호화 방법.
  4. 제1항에 있어서,
    상기 단위 행렬들이 SC 부호의 비트 수 만큼 결합된 제2 결합 행렬을 생성하는 단계를 더 포함하고,
    상기 할당하는 단계는, 상기 기본 행렬 Ab의 부분 행렬들 중 패리티 비트(parity bit)에 해당하는 적어도 하나의 부분 행렬에 상기 제2 결합 행렬을 할당하는 단계를 포함하는 부호화 방법.
  5. 제1항에 있어서, 상기 제1 결합 행렬을 생성하는 단계는,
    상기 단위 행렬을 i(0≤i<n)i번 회전 시킨 Ii행렬 및 상기 단위 행렬을 j번 회전 시킨 Ij(0≤j<n) 행렬을 결합하여 상기 제1 결합 행렬을 생성하는 부호화 방법.
  6. 제1항에 있어서, 상기 통합 행렬 A를 생성하는 단계는,
    상기 요구되는 USC 부호의 길이와 상기 기본 부호어의 길이 간의 비율을 산출하는 단계; 및
    상기 산출된 비율로 상기 기본 행렬 Ab의 부분 행렬들을 확장하는 단계를 포함하는 부호화 방법.
  7. 가변 길이를 가지는 USC(Unifying State Check) 부호를 이용한 복호화 방법에 있어서,
    상기 USC 부호로 부호화된 부호어를 수신하는 단계;
    단위 행렬 또는 회전 단위 행렬이 SC(State Check) 부호의 비트 수 만큼 결합된 제1 결합 행렬을 생성하는 단계;
    기본 행렬 Ab(Base Matrix Ab)을 상기 제1 결합 행렬 크기의 부분 행렬들로 분할하고, 상기 부분 행렬들 중 적어도 하나에 상기 제1 결합 행렬을 할당하는 단계;
    상기 수신된 부호어의 길이에 따라, 상기 기본 행렬 Ab의 부분 행렬들을 확장하여 통합 행렬 A(Unifying Matrix A)을 생성하는 단계; 및
    상기 생성된 통합 행렬 A를 기반으로 상기 수신된 부호어를 복호화하는 단계를 포함하는 복호화 방법.
  8. 제7항에 있어서,
    상기 기본 부호어의 길이에 따라 상기 기본 행렬 Ab(Base Matrix Ab)의 크기를 결정하는 단계를 더 포함하는 복호화 방법.
  9. 제8항에 있어서, 상기 결정하는 단계는,
    상기 기본 부호어의 길이, 부호율, 및 상기 SC 비트의 길이에 따라 상기 기본 행렬 Ab의 행 수를 결정하는 단계를 포함하는 복호화 방법.
  10. 제7항에 있어서,
    상기 단위 행렬들이 상기 SC 부호의 비트 수 만큼 결합된 제2 결합 행렬을 생성하는 단계를 더 포함하고,
    상기 할당하는 단계는, 상기 기본 행렬 Ab의 부분 행렬들 중 패리티 비트(parity bit)에 해당하는 적어도 하나의 부분 행렬에 상기 제2 결합 행렬을 할당하는 단계를 포함하는 복호화 방법.
  11. 제7항에 있어서, 상기 제1 결합 행렬을 생성하는 단계는,
    상기 단위 행렬을 i(0≤i<n)i번 회전시킨 Ii행렬 및 상기 단위 행렬을 j번 회전시킨 Ij(0≤j<n) 행렬을 결합하여 상기 제1 결합 행렬을 생성하는 복호화 방법.
  12. 제7항에 있어서, 상기 통합 행렬 A를 생성하는 단계는,
    상기 수신된 부호어의 길이와 상기 기본 부호어의 길이 간의 비율을 산출하는 단계; 및
    상기 산출된 비율로 상기 기본 행렬 Ab의 부분 행렬들을 확장하는 단계를 포함하는 복호화 방법.
KR1020110134197A 2011-12-14 2011-12-14 가변 usc 부호를 이용한 부호화 및 복호화 방법 KR101221062B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110134197A KR101221062B1 (ko) 2011-12-14 2011-12-14 가변 usc 부호를 이용한 부호화 및 복호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110134197A KR101221062B1 (ko) 2011-12-14 2011-12-14 가변 usc 부호를 이용한 부호화 및 복호화 방법

Publications (1)

Publication Number Publication Date
KR101221062B1 true KR101221062B1 (ko) 2013-01-11

Family

ID=47841638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110134197A KR101221062B1 (ko) 2011-12-14 2011-12-14 가변 usc 부호를 이용한 부호화 및 복호화 방법

Country Status (1)

Country Link
KR (1) KR101221062B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058438A (ko) * 2004-06-24 2007-06-08 엘지전자 주식회사 무선 통신 시스템에서 저밀도 패리티 체크 코드를 이용한부호화, 복호화 방법 및 그 장치
KR100833515B1 (ko) 2006-12-05 2008-05-29 한국전자통신연구원 가변 정보 길이 및 가변 부호율을 가진 ldpc 부호의패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를이용하는 장치
KR20090113869A (ko) * 2007-01-24 2009-11-02 콸콤 인코포레이티드 가변 크기들의 패킷들의 ldpc 인코딩 및 디코딩
US7853862B2 (en) 2005-08-03 2010-12-14 Qualcomm Incorporated Systems and methods for a turbo low-density parity-check decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058438A (ko) * 2004-06-24 2007-06-08 엘지전자 주식회사 무선 통신 시스템에서 저밀도 패리티 체크 코드를 이용한부호화, 복호화 방법 및 그 장치
US7853862B2 (en) 2005-08-03 2010-12-14 Qualcomm Incorporated Systems and methods for a turbo low-density parity-check decoder
KR100833515B1 (ko) 2006-12-05 2008-05-29 한국전자통신연구원 가변 정보 길이 및 가변 부호율을 가진 ldpc 부호의패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를이용하는 장치
KR20090113869A (ko) * 2007-01-24 2009-11-02 콸콤 인코포레이티드 가변 크기들의 패킷들의 ldpc 인코딩 및 디코딩

Similar Documents

Publication Publication Date Title
JP4062435B2 (ja) 誤り訂正符号復号装置
CN111628785B (zh) 使用硬选取硬译码模式下的译码器产生软信息的方法
US9544090B2 (en) Hard input low density parity check decoder
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
JP4320418B2 (ja) 復号装置および受信装置
JP5199463B2 (ja) ターボldpc復号
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
JP5203717B2 (ja) 符号器、復号器、符号化方法、及び、復号方法
EP1835625B1 (en) Encoding and decoding of accumulate convolutional codes
US20060129904A1 (en) Method and apparatus for encoding and decoding data
WO2006020205A1 (en) Improvements to a layered decoding approach for low density parity check (ldpc) codes
CN109586732B (zh) 中短码ldpc编解码***和方法
JPWO2007132656A1 (ja) 誤り訂正符号化方法及び装置
US10193568B2 (en) Optical coherent receiver with forward error correction
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
JP4202161B2 (ja) 符号化装置および復号装置
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
JP5523064B2 (ja) 復号装置及び方法
KR20110114204A (ko) 저밀도 패리티 체크 부호화 방법 및 이를 이용하는 저밀도 패리티 체크 인코더
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
JP5385944B2 (ja) 復号器
KR101268061B1 (ko) 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101218658B1 (ko) 불규칙 반복 다상 누산 코드를 이용한 부호화 방법 및 복호화 방법

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: 20151224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee