KR101267756B1 - 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 - Google Patents

가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 Download PDF

Info

Publication number
KR101267756B1
KR101267756B1 KR1020120022695A KR20120022695A KR101267756B1 KR 101267756 B1 KR101267756 B1 KR 101267756B1 KR 1020120022695 A KR1020120022695 A KR 1020120022695A KR 20120022695 A KR20120022695 A KR 20120022695A KR 101267756 B1 KR101267756 B1 KR 101267756B1
Authority
KR
South Korea
Prior art keywords
polyphase
code
irregular
matrix
state
Prior art date
Application number
KR1020120022695A
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 KR1020120022695A priority Critical patent/KR101267756B1/ko
Application granted granted Critical
Publication of KR101267756B1 publication Critical patent/KR101267756B1/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/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes
    • 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

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

Abstract

가변적인 부호화율 불규칙 반복 다상 누산 코드 부호화 방법, 복호화 방법 및 이를 위한 장치들이 개시된다. 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법은, 제1 부호화율에 대응되고, 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 단계, 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 단계 및 결정된 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계를 포함하여 구성될 수 있다. 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화를 이용할 경우에는 메모리 용량의 요구 수준이 낮으면서도 성능의 향상을 얻을 수 있는 불규칙 반복 다상 누산 코드 부호화의 가변적 부호화율 달성이 가능하다.

Description

가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치{METHOD FOR ENCODING AND DECODING RATE-COMPATIBLE IRREGULAR REPEAT MULTIPLE-STATE ACCUMULATE CODES AND APPARATUSES USING THE SAME}
본 발명은 채널 부호화(channel coding)에 관한 것으로, 더욱 상세하게는 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat Multiple-State Accumulate Codes) 부호화에 관한 것으로서, 가변적 부호화율이 가능한(rate-compatible) 불규칙 반복 다상 누산 코드 부호화/복호화 방법 및 이를 위한 부호화/복호화 장치에 관한 것이다.
통신에 있어서 채널 부호화(channel coding)는 송신 측에서 송신한 데이터 신호가 통신 채널을 통하여 전송되는 과정에서 발생하는 신호의 일그러짐, 손실 등에 의한 오류에도 불구하고 수신 측에서 원래의 데이터를 복원할 수 있도록 하기 위해 송신 측에서 데이터를 처리하는 과정을 의미한다. 원래의 데이터의 크기를 줄여서 전송과 저장 등을 용이하게 하는 소스 부호화(source coding)와 구분되는 기술이다.
한편, 복호화(decoding)는 부호화되어 송신된 신호를 수신 측에서 원래의 데이터로 복원하는 과정이다. 이때, 부호화를 한다는 것은 통상 길이 K의 정보 시퀀스(정보 비트들)를 길이 N의 부호어(codeword)로 만드는 것이다. 신호 전송경로가 불안정한 무선 랜(LAN)이나 이동통신의 경우 부호어의 길이 N을 정보시퀀스 길이 K 보다 상당히 크게 만든다. 즉, 부호화된 부호어에는 전송되어야 할 데이터가 상당히 중복(redundant)되어 있다. 양방향 통신에서, 정보 시퀀스를 포함하는 데이터를 전송함에 있어서 수신 측이 데이터를 복원하지 못하게 되면 송신 측은 데이터를 다시 전송한다. 이러한 데이터의 재전송은 전송속도를 떨어트리게 되므로, 이러한 반복 전송을 줄일 수 있는 채널 부호화 기술들이 연구되어 왔다.
채널 부호화 기술은 블록 부호화(block coding)와 콘볼루션 부호화(convolutional coding)로 크게 나누어진다.
블록 부호화는 K비트의 입력 정보(data sequences)를 N비트의 출력부호(codes)로 만들어내는 것이다. 콘볼루션 부호화는 코드화시킬 때 현재 입력되는 신호에 과거의 일부 신호를 함께 활용하는 방식이다.
또한, 터보 코드(turbo codes)는 콘볼루션 부호를 기반으로 병렬 부호화와 인터리빙(interleaving)을 통해 성능을 더욱 발전시킨 것으로서, 통신 채널의 비트 오류 확률(probability)을 최소로 유지하는 사상에 기반을 둔 오류 정정 부호 (ECC: error correction code)의 하나이다. 터보 코드는 1993년 Berrou 등이 제안한 것으로 비교적 간단한 구조를 가지면서도 매우 우수한 오류 정정 성능을 제공하므로 고성능의 오류 정정 부호 방식이 요구되는 통신 시스템에 널리 적용되고 있다.
한편, 최근에는 저밀도 패리티 검사(LDPC: low-density parity-check) 코드가 통신 시스템에 적용되기 시작하였다. LDPC 코드는 길이 K의 정보시퀀스를 길이 N의 부호어(codeword)로 만든다. 이때, 부호어 중 정보 시퀀스를 제외한 (N-K) 길이의 패리티 비트는 패리티 검사 행렬 (parity-check matrix) H를 사용하여 만들 수 있다. 패리티 검사 행렬 H는 크기가 (N-K) x N 이고, 1보다는 0이 많은 저밀도의 성질을 갖고 있다.
LDPC 코드를 이용한 부호화 방법에서는 패리티 검사 행렬 H을 어떻게 만드는지가 가장 중요한 요소이다. 통상, 불규칙(irregular) LDPC 코드들은 규칙(regular) LDPC 코드들보다 양호한 성능을 제공한다. 여기서 규칙적이라는 것은 LDPC 코드를 위하여 이용되는 패리티 검사 행렬 H의 모든 행들(rows)이 동일한 수의 1들을 가지고 H의 모든 열들(columns)이 동일한 수의 1들을 가진다는 것을 의미하며, 그렇지 않으면 LDPC 코드는 불규칙인 것으로 간주된다. 여기서 행 또는 열에서 1들의 수는 행 또는 열의 무게(weight)라 칭한다. 블록 길이 104이상의 불규칙 LDPC(low-density parity-check) 코드는 터보 코드(turbo codes)보다 나은 성능을 보이는 것이 입증되었다.
그러나, 패리티 검사 행렬 H는 대략 1000×2000 이상의 크기를 갖기 때문에
부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구하는 문제점이 있다. 다시 말해, 데이터 블록의 크기가 증가하면LDPC의 오류정정 능력은 강해지지만, 프로세서가 처리해야 하는 연산량 및 요구하는 저장 공간 또한 증가한다는 문제점이 있다.
상술된 LDPC 코드의 문제점들을 개선하기 위한 새로운 채널 부호화 기술로서 불규칙 반복 누산 코드(IRA: Irregular Repeat Accumulate Code)가 존재한다. 불규칙 반복 누산 코드는 터보 코드 또는 LDPC 코드의 일종으로 분류되며 비교적 간단한 형태이면서도 용량한계에 근접하는 성능을 보인다. 불규칙 반복 누산(IRA) 코드는 불규칙 LDPC 코드보다 다소 성능이 떨어지지만 부호화가 간단하다는 장점이 있다. IRA 코드에서 사용되는 에러 정정 코드인 누산 코드(Accumulate Code)는 누산기를 이용하여 간단한 인코딩이 가능하게 한다. 그러나, 누산 코드를 이용하는 경우에도, 블록의 크기가 매우 크면 연산이 복잡하다는 문제가 여전히 존재한다. 따라서, 종래의 부호화 방법에 비하여 연산 속도 및 오류 정정 성능을 향상시킬 수 있도록 하는 불규칙 반복 누산 코드의 개선이 필요하다.
그 일환으로, 본 출원인은 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat Multiple-State Accumulate Codes)에 관한 대한민국 특허출원 제2011-0107780호, 대한민국 특허출원 제2011-0122204호 및 대한민국 특허출원 제2012-0014282호를 이미 출원한 바 있다.
한편, 채널 부호화 기술에서는 부호화율의 가변이 자유롭게 이루어지는 것이 중요하다. 예컨대, 무선 통신에서는 수신 측이 측정한 무선 채널의 상태 정보(CSI: Channel State Information)를 송신 측으로 피드백하고, 송신 측이 채널 상태 정보에 기초하여 변조 방식 및 부호화율(MCS: Modulation and Coding Scheme)을 선택하여 전송하는 적응 전송(link adaptation) 기술이 보편화되어 있으므로, 가변적인 부호화율을 달성하는 것은 반드시 필요하다. 그러나, 불규칙 반복 다상 누산 코드 부호화 기술에서 가변적인 부호화율을 달성하는 방법은 아직 공개되지 않았다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 불규칙 반복 다상 누산 코드 부호화 방법에 있어서, 필요한 메모리 용량을 줄이면서도 성능 향상을 얻을 수 있는 가변적 부호화율을 가지는 불규칙 반복 다상 누산 코드 부호화 방법을 제공하는 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 불규칙 반복 다상 누산 코드 부호화 장치에 있어서, 필요한 메모리 용량을 줄이면서도 성능 향상을 얻을 수 있는 가변적 부호화율을 가지는 불규칙 반복 다상 누산 코드 부호화 장치를 제공하는 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 가변적 부호어 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 부호화된 부호화 신호를 수신하여, 이를 복호화하는 불규칙 반복 다상 누산 코드 복호화 방법으로서, 필요한 메모리 용량을 줄이면서도 성능 향상을 얻을 수 있는 가변적 부호화율을 지원할 수 있는 방법을 제공하는 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 가변적 부호어 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 부호화된 부호화 신호를 수신하여, 이를 복호화하는 불규칙 반복 다상 누산 코드 복호화 장치로서, 필요한 메모리 용량을 줄이면서도 성능 향상을 얻을 수 있는 가변적 부호화율을 지원할 수 있는 장치를 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법으로서, 제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 단계(a), 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 단계(b) 및 상기 단계(b)에서 결정된 상기 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(c)를 포함하여 구성될 수 있다.
여기에서, 상기 제1 부호화율은 상기 단계(b)에서 적용될 부호화율의 후보 중에서 가장 높은 부호화율일 수 있다.
여기에서, 상기 단계(b)는 상기 적용될 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용될 부호화율에 대응되도록 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하도록 구성되며, 상기 적용될 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하도록 구성될 수 있다.
여기에서, 상기 단계(c)는 부호화 대상이 되는 정보 비트열을 입력받는 단계(c-1), 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계(c-2) 및 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계(c-3)를 포함하고, 상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 단계(c-2) 내지 (c-3)를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 단계(c-4)를 포함하여 구성될 수 있다.
이때, 상기 단계(c-2)는, 상기 선택된 입력 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력받아, 상기 입력받은 비트에 따라 현재 부호화 상태를 천이(transition)시키고, 상기 어느 하나의 비트를 입력받는 과정과 현재 부호화 상태의 천이 과정을 상기 입력 비트들의 숫자만큼 반복하여 마지막 반복에서 천이된 부호화 상태를 상기 부호화 상태로 결정하도록 구성될 수 있다.
이때, 상기 단계(c-3)는 상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)일 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치로서, 부호화 대상이 되는 정보 비트열을 입력받는 정보 비트열 입력부, 제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 부호화 행렬 저장부, 상기 부호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 부호화 행렬 결정부, 상기 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 불규칙 반복 다상 누산 코드 부호화하여, 불규칙 반복 다상 누산 코드 부호어를 출력하는 부호화부를 포함하여 구성될 수 있다.
여기에서, 상기 제1 부호화율은 상기 적용될 부호화율의 후보 중에서 가장 높은 부호화율일 수 있다.
여기에서, 상기 부호화 행렬 결정부는, 상기 적용될 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용될 부호화율에 대응되도록 상기 부호화 행렬 저장부에 저장된 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하고, 상기 적용될 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 부호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 사용하도록 결정할 수 있다.
여기에서, 상기 부호화부는 상기 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 부호화 상태 결정부, 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 패리티 비트 결정부 및 상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 부호어 생성부를 포함하여 구성될 수 있다.
이때, 상기 부호화 상태 결정부는 상기 부호화 상태를 나타내는 비트들을 저장하는 레지스터 및 상기 선택된 입력 비트들 중 입력되는 비트와 상기 부호화 상태를 나타내는 비트들 중 적어도 하나의 비트간의 배타적 논리합(XOR) 연산을 수행하는 연산부를 포함하고, 상기 레지스터는 상기 부호화 상태 결정부에 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 상기 연산부에서 수행되는 연산 결과가 최상위 비트 자리로 입력되어 상기 부호화 상태를 나타내는 비트들을 갱신하는 순환 쉬프트 레지스터(Recursive Shift Register)일 수 있다.
이때, 상기 패리티 비트 결정부는 상기 부호화 상태 결정부에서 결정한 최종 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)일 수 있다.
상기 또 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법으로서, 제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하는 단계(a), 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(b) 및 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 상기 불규칙 반복 다상 누산 코드 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하고, 상기 결정된 불규칙 반복 다상 누산 코드 복호화 행렬에 따라 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(c)를 포함하여 구성될 수 있다.
여기에서, 상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(d)는, 상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(d-1), 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(d-2), 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(d-3), 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(d-2) 및 상기 단계(d-3)를 수행함을 반복하는 단계(d-4) 및 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(d-5)를 포함하여 구성될 수 있다.
이때, 상기 단계(d-3)는, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및 k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하여 구성될 수 있다.
여기에서, 상기 제1 부호화율은 상기 단계(c)의 적용된 부호화율의 후보 중에서 가장 높은 부호화율일 수 있다.
여기에서, 상기 단계(c)에서 상기 적용된 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용된 부호화율에 대응되도록 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하도록 구성되며, 상기 적용된 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 사용하도록 결정하도록 구성될 수 있다.
상기 또 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치로서, 복호화 대상이 되는, 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 부호화 신호 수신부, 제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하는 복호화 행렬 저장부, 상기 복호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 상기 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하는 복호화 행렬 결정부 및 상기 복호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 복호화 행렬을 이용하여, 상기 부호화 신호 수신부에서 수신된 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화하여, 상기 부호화 신호에 포함된 정보 비트열을 출력하는 복호화부를 포함하여 구성될 수 있다.
여기에서, 상기 제1 부호화율은 상기 부호화 신호에 적용된 부호화율의 후보 중에서 가장 높은 부호화율일 수 있다.
여기에서, 상기 복호화 행렬 결정부는, 상기 적용된 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용된 부호화율에 대응되도록 상기 복호화 행렬 저장부에 저장된 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하고, 상기 적용된 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 복호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 사용하도록 결정할 수 있다.
여기에서, 상기 복호화부는, 상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며, 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.
이때, 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하고, k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하도록 구성될 수 있다.
상기와 같은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화/복호화 방법 및 장치를 이용할 경우에는, 메모리 용량의 요구 수준을 낮추면서도 성능 향상을 얻을 수 있는 불규칙 반복 다상 누산 코드 부호화의 가변적 부호화율 달성이 가능하다.
특히, 가변 부호화율을 지원하기 위한 부호화 행렬을 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 생성함으로써 여러가지 부호화율을 지원하기 위한 부호화 행렬을 저장하기 위해 필요한 저장 공간을 획기적으로 줄일 수 있다.
도 1은 본 발명의 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 트렐리스 다이어그램이다.
도 3은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법에서 부호화 행렬의 개념을 설명하기 위한 개념도이다.
도 4는 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 신호의 복호화 방법을 설명하기 위한 순서도이다.
도 5는 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 순서도이다.
도 6은 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 개념도이다.
도 7은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
도 8은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법에서 가변적 부호화율 달성의 개념을 설명하기 위한 개념도이다.
도 9는 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치의 구성을 설명하기 위한 블록도이다.
도 10은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치의 불규칙 반복 다상 누산 코드 부호화부 구성예를 설명하기 위한 블록도이다.
도 11은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치에 적용되는 부호화 상태 결정부의 구성을 설명하기 위한 회로도이다.
도 12는 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치에 적용되는 부호화 상태 결정부의 부호화 상태 수에 따른 구체적 실시예를 설명하기 위한 회로도이다.
도 13은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법을 설명하기 위한 순서도이다.
도 14는 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치의 구성을 설명하기 위한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
불규칙 반복 다상 - 누산 코드 부호화 방법
LDPC 코드는 블록 길이가 104이상인 경우에는 터보 코드보다 향상된 성능을 보이지만, 구현이 매우 복잡하며, 많은 저장 공간을 필요로 하는 등 여러 가지 문제점을 가지고 있다.
본 발명의 기반이 되는 불규칙 반복 다상 누산 코드 부호화 방법은 종래의 LDPC 코드보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르고, 병렬 프로세싱이 용이한 부호화 방식으로서, 기존의 패리티-체크 개념에 대응되는 상태-체크 개념을 새로이 도입한 부호화 방식이다. 이하에서 설명되는 본 발명의 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat multiple-state Accumulate code) 부호화 및 복호화 방법은 본 출원인의 대한민국 특허출원 제2011-0107780호와 제2011-0122219호에 포함된 내용으로 본 발명의 내용에 포함된다. 이하, 도면을 참조하여 간략하게 불규칙 반복 다상 누산 코드 부호화 및 복호화 방법이 설명된다.
도 1은 본 발명의 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
부호화기는 불규칙 반복(Irregular Repetition: 이하, IR) 코드를 이용하여 정보 비트열 bk로부터 정보 비트 블록을 생성한 뒤, 생성된 정보 비트 블록으로부터 다상 누산 코드를 이용하여 정보 비트열 bk에 패리티 비트들 bp가 부가된 부호어(codeword)를 생성한다. 이를 본 발명에서는 "불규칙 반복 다상 누산 코드 부호화(IRmA; Irregular Repeat Multiple-State Accumulate Code)"라 명칭한다.
부호화기는 입력된 정보 비트들과 누적하여 생성된 패리티 비트들을 함께 전송함으로써 정보 비트들의 전송 오류를 정정할 수 있도록 한다. 이와 같은 다상-누산 코드를 이용하면 효율적으로 부호화를 할 수 있다는 장점이 있다. 즉, 개시된 기술에 따르면 종래의 부호화 방법에 비하여 부호화 속도를 향상시킬 수 있으며 오류 정정 성능이 향상된다는 장점이 있다. 한 번에 결정되는 패리티 비트들의 수(NP)는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NP의 수가 2이고, 상태수 NS가 4인 4상-누산 코드의 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NP는 3, 4등의 정수가 될 수 있으며, 이 경우 NS는 8, 16등의 정수가 될 수 있다.
이하, 도 1을 참조하여, 하나의 정보 비트열 bk를 부호화하는 방법을 예로서 설명한다.
S110 단계에서 부호화기는 정보 비트열에 포함된 각 정보 비트들을 복수 회 반복하고, 복수 회 반복 된 정보 비트들의 순서를 섞는다(interleaving). 정보 비트열에 포함된 각 정보 비트 bj가 반복되는 횟수 q(j)는 불규칙적으로 각 비트에 따라 다를 수 있다. 복수 회 반복된 정보 비트들은 하나의 정보 비트 블록을 구성한다. 이때, 정보 비트 블록의 길이 L은
Figure 112012018089845-pat00001
이다. 여기서, K는 정보 비트열 bk의 길이이다. 다음에 부호화기는 정보 비트 블록의 정보 비트들의 순서를 섞는다.
S120 단계에서 부호화기는 부호화 상태를 초기화 한다. 일 실시예에 따라, 부호화기는 한 정보 비트 블록, 즉 한 정보 비트열을 부호화 할 때마다 부호화 상태를 초기화 할 수 있다. 일례로, 부호화기는 부호화 상태를 상태 0(Zero State)으로 초기화할 수 있다.
S130 단계에서 부호화기는 섞어진(interleaved) 정보 비트들 중 일부 정보 비트들을 선택 한다. 부호화기는 S130 단계 내지 S150 단계를 미리 설정된 횟수(이하, 예를 들어 G회라 함)만큼 반복하는데, 매 반복 마다, 정보 비트 블록의 섞어진 정보 비트들 중 이전에 선택되지 않은 정보 비트들을 선택한다. G회 반복 중 i번째 반복에서 선택되는 정보 비트들의 수를 Ki라 한다. 일 실시예에 따라, 부호화기는 정보 비트 그룹을 구성하는 L개의 정보 비트들을 G개의 그룹들로 나눈 뒤, 나뉘어진 그룹들 중 어느 하나의 그룹에 포함된 정보 비트들을 상기 일부 정보 비트들로서 선택할 수 있다. i번째 그룹 Gi가 포함하는 정보 비트들의 수는 Ki가 된다. 일례로, 매 반복마다, 부호화기는 G개의 그룹들 중 하나의 그룹을 순차적으로 선택하는 방식으로 일부 정보 비트들을 선택할 수 있다.
S140 단계에서 부호화기는 선택된 복수의 정보 비트들에 따라 부호화 상태를 변경한다. 부호화기는 선택된 정보 비트들을 하나씩 입력 받을 때마다 부호화 상태가 변경된다. 일 실시예에 따라, 부호화기는 S142 단계 및 S144 단계를 반복하면서 부호화 상태를 변경할 수 있다.
S142 단계에서 부호화기는 선택된 복수의 정보 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는다. S144 단계에서 입력 받는 비트에 따라 부호화 상태가 현재 상태에서 다음 상태로 변경된다. 선택된 비트들이 모두 입력될 때까지 부호화기는 S142 단계 및 S144 단계를 반복하여 수행한다. 즉, i번째 수행되는 S140 단계에서, 부호화기는 S142 단계 및 S144 단계를 Ki번 반복한다.
부호화 상태가 가질 수 있는 상태 수는 NS 이다. 현재 상태는 이전에 입력된 비트들을 기초로 NS 개의 상태들 중 어느 하나의 상태로 결정된다. 현재 상태는, 첫 번째 그룹의 첫 번째 반복에서는 예컨대 상태 0으로 초기화 되며, 그 이후의 반복에서는 이전 반복에서 변경된 상태가 현재 상태가 된다. 다음 상태는, 현재 상태와 현재 입력되는 비트에 따라 결정된다. 다음 상태는 현재 상태에 상응하는 두 개의 상태들 중 현재 입력되는 비트에 따라 결정되는 어느 하나의 상태가 된다. 일 실시예에 따라, NS가 4인 경우 입력 비트들에 따라 부호화 상태가 변경되는 과정이 도 2에 예시되어 있다. 도 2의 실시 예에서는 현재 상태가 상태 0일 때(S=0), 다음 상태는 상태 0 또는 상태 2(S=0 or S=2)가 될 수 있는데, 입력 비트가 0인 경우 다음 상태는 상태 0, 입력 비트가 1인 경우 다음 상태는 상태 2가 된다. 즉, 현재 상태에 따라, 다음 상태가 될 수 있는 두 개의 상태가 있고, 부호화기는 현재 상태에 상응하는 두 개의 상태들 중 입력 받는 비트에 따라 결정되는 하나의 상태로 천이한다.
Ki번의 반복 중 k번째 반복에서의 현재 상태(Sk)와 다음 상태(k+1 번째 반복에서의 상태, Sk +1)가 수학식 1과 같이 표현될 때, 현재 상태와 다음 상태 간에는 실시 예에 따라, 수학식 2 또는 수학식 3과 같은 관계가 성립될 수 있다.
Figure 112012018089845-pat00002
Sk의 값이 N개의 비트로 표현될 때, dN -1,k는 N개의 비트 중 최상위 비트를, d0,k는 N개의 비트 중 최하위 비트를 나타낸다. 마찬가지로, Sk +1의 값이 N개의 비트로 표현될 때, dN -1,k+ 1는 N개의 비트 중 최상위 비트를, d0 ,k+ 1는 N개의 비트 중 최하위 비트를 나타낸다.
Figure 112012018089845-pat00003
ik는 k번째 반복에서 입력 받은 정보 비트,
Figure 112012018089845-pat00004
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, dk 는 d0 ,k 내지 dN -1,k중 선택되는 적어도 하나의 비트를 XOR 연산한 결과 값을 나타낸다. 일례로, dk 는 d0 ,k 내지 dN -1,k 비트들을 모두 XOR 연산한 결과일 수 있으며, 다른 일례로, dk 는 d0 ,k 내지 dN -1,k 비트들 중 d0 ,k, d2 ,k 등 홀수 번째 비트들을 XOR 연산한 결과일 수 있다.
Figure 112012018089845-pat00005
이때, a1 내지 aN -1은 0 또는 1의 값을 가지고, d0 ,k의 계수는 항상 1이다. a1 내지 aN -1 값은 구현 예에 따라, 모두 1의 값을 가질 수도 있으며, 일부(예컨대, 홀수 번째 값)는 0 나머지 (예컨대, 짝수 번째)는 1의 값을 가지도록 할 수도 있다.
보다 구체적으로, 상태 수(NS)가 4인 경우 중에서 도 2의 실시 예와 같이 상태가 천이되는 경우를 예를 들어 설명한다. k번째 반복에서의 현재 상태가 두 개의 비트 [d1 ,k d0 ,k]로 표현되고, 그 다음 상태가 [d1 ,k+1 d0 ,k+1]로 표현될 때, 각 상태를 나타내는 비트들 간의 관계는 수학식 4와 같이 나타낼 수 있다.
Figure 112012018089845-pat00006
이때, 현재 상태 값이 0[00]이라면, 다음 상태 값은 입력 비트가 0인 경우 0[00], 입력 비트가 1인 경우 2[10]가 된다. 현재 상태 값이 1[01]이라면, 다음 상태 값은 입력 비트가 0인 경우 2[10], 입력 비트가 1인 경우 0[00]이 된다. 현재 상태 값이 2[10]이라면, 다음 상태 값은 입력 비트가 0인 경우 3[11], 입력 비트가 1인 경우 1[01]이 된다. 마지막으로, 현재 상태 값이 3[11]이라면, 다음 상태 값은 입력 비트가 0인 경우 1[01], 입력 비트가 1인 경우 3[11]이 된다.
상태 수(NS)가 4인 경우 중에서, 다른 일 실시예에 따른 상태 천이 규칙은 수학식 5와 같이 나타낼 수 있다.
Figure 112012018089845-pat00007
미리 설정된 횟수만큼 S142 단계 및 S144 단계가 반복된 후에는, S150 단계에서 부호화기는 마지막 반복에 의하여 변경된 부호화 상태에 기반하여 패리티 비트들을 결정한다. 예컨대, i번째 반복의 경우, 부호화기는 Ki번째 입력된 비트에 의해 Ki번째 변경된 부호화 상태에 기반하여 i번째 패리티 비트들을 결정한다.
일 실시예에 따라, 부호화기는 변경된 부호화 상태가 미리 설정된 상태(예를 들어, 초기화 상태)로 수렴하도록 하는 입력 비트들의 값을 패리티 비트들로 결정 한다. 예컨대, i번째 반복의 경우, Ki번째 변경된 부호화 상태가 초기화 상태(예를 들어, 상태 0)로 수렴하도록 하는 입력 비트들의 값이 i번째 패리티 비트들이 될 수 있다. 보다 구체적으로, 상태 수 NS가 4이고, 패리티 비트들의 수 NP가 2이며, 수학식 4와 같이 상태가 천이하는 도 2의 경우, i번째 반복에서의 패리티 비트들은 다음과 같이 결정된다. Ki번째 변경된 부호화 상태의 값이 상태 0인 경우 [00], Ki번째 변경된 부호화 상태의 값이 상태 1인 경우 [10], Ki번째 변경된 부호화 상태의 값이 상태 2인 경우 [11], Ki번째 변경된 부호화 상태의 값이 상태 3인 경우 [01]이 패리티 비트들이 된다. 도 2를 참조하면, 결정된 i번째 패리티 비트들이 Ki번째 반복 이후에 입력 비트로 들어간다고 가정했을 때, Ki번째 변경된 부호화 상태가 결국 미리 설정된 상태인 상태 0으로 수렴하여 상태 천이가 종료하는 것을 확인할 수 있다(220). 도 2 및 위에서 설명한 예에서는 상태 0으로 수렴하는 경우를 설명하였으나, 수렴되는 상태는 이에 한정되는 것은 아니며 다른 상태로 수렴하는 것으로 결정하여도 무관하다. 한편, 상태 수가 NS인 경우, 패리티 비트들의 비트 수 NP는 log2NS이 된다. 한 번에 결정되는 패리티 비트들의 수 NP는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NP의 수가 2이고, 상태수 NS가 4인 4상-누산 코드의 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NP는 3, 4 등의 정수가 될 수 있으며, NS는 8, 16등의 정수가 될 수 있다.
부호화기는 섞어진 정보 비트들(즉, 정보 비트 블록의 비트들) 중 이전에 선택되지 않은 복수의 정보 비트들을 일부 선택하여, S130 단계 내지 S150 단계를 수행함을 적어도 1회 반복한다. 예컨대, 부호화기는 정보 비트 블록을 G개의 그룹으로 나눈 경우, 각 그룹에 대하여 순차적으로, S130 단계 내지 S150 단계를 수행함을 G회 반복할 수 있다. S130 단계 내지 S150 단계가 반복될 때에는 부호화 상태의 초기화를 수행하지 않으므로, i+1번째 반복에서의 초기 부호화 상태는 i번째 반복에서의 마지막 부호화 상태(Ki번째 변경된 부호화 상태)와 동일하다. S130 단계 내지 S150 단계를 G회 반복되면, NP개의 패리티 비트 그룹이 G개 생성된다.
S160 단계에서 부호화기는 정보 비트열 및 S150 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성한다. 일례로, 부호어는 c=[bk bp]와 같이, 정보 비트열 bk와 패리티 비트들이 G개 결합된 비트열 bp이 결합되어 생성될 수 있다. 일 실시예에 따라, bp는 [bK +1,bK +2,...,bK + Np (i-1)+1,...,bK + Np (G-1)+ Np] 이며, bK + Np (i-1)+ 1는 i번째 반복에서 생성된 패리티 비트들 중 첫 번째 비트를 의미한다. 패리티 비트들을 G회 반복하여 생성한 경우, 부호율은 K/(K+NP×G)이 된다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 트렐리스 다이어그램이다. 도 2는 앞에서 언급한 바와 같이 NS가 4이고, NP가 2이며, 수학식 4와 같이 상태가 천이되는 경우의 트렐리스(trellis) 다이어그램이다.
도 2에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 트렐리스 다이어그램은 가지들(branches) 및 상태들(states)을 포함한다. 가지들은 부호화 신호, 또는 부호화 신호에 따른 상태 천이를 나타낸다. 상태들은 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타낸다. 도 2에서, 정보 비트의 입력에 따른 부호화 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 한 블록에 대한 부호화가 시작될 때 마다 부호화 상태는 상태 0으로 초기화된다. 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이된다.
t=(i,l)은 i번째 선택된 정보 비트들(이하, i번째 그룹이라 함) 중 l번째 정보 비트가 입력되는 시간을 나타낸다. t=(1,1)에서, 현재 상태 값은 초기화 값인 상태 0이다. 이후, 0이 입력되는 경우 상태 0으로, 1이 입력되는 경우 상태 2로 천이한다. 1이 입력되었다고 가정하는 경우, t=(1,2)에서의 현재 상태 값은 상태 2가 된다. 이후, 마찬가지로 0이 입력되는 경우 상태 3으로, 1이 입력되는 경우 상태 1로 천이된다. 만약 0이 입력되었다고 가정하면, t=(1,3)에서의 현재 상태 값은 상태 3이 된다. 이와 같이 정보 비트들이 입력됨에 따라 상태 천이가 반복된다. 한 그룹에 대하여 미리 설정된 횟수, 예컨대 첫 번째 그룹의 경우 K1번 만큼 정보 비트들이 입력되면 K1번째 반복에서 변경된 부호화 상태 St(이때, t=(1,K1+1))에 따라 NP 비트의 패리티 비트들을 결정한다. 예를 들어, t=(1,K1+1)에서의 상태 값이 2인 경우, 패리티 비트들은 [11]이 된다. 패리티 비트들은 K1 번째 반복에서 변경된 부호화 상태 St(이때, t=(1,K1+1))의 상태 값을 특정 상태, 예컨대, 상태 0으로 수렴하게 만드는 입력 비트들의 값으로 결정된다.
도 2를 참조하면, K1 번째 반복에서 변경된 부호화 상태가 상태 2인 경우, 비트 1이 입력되면 상태 1이 되고, 상태 1에서 다시 비트 1이 입력되면 상태 0(zero state)이 되는 것을 확인할 수 있다. 첫 번째 그룹에 대한 패리티 비트들이 결정되면, 두 번째 그룹의 정보 비트들을 순차적으로 입력 받으면서 전술한 과정을 반복한다. 이때, 첫 번째 그룹의 마지막 정보 비트의 입력에 의해 변경된 부호화 상태가 두 번째 그룹의 초기 부호화 상태가 된다. 두 번째 패리티 비트들이 결정되면, 마찬가지로 이후의 모든 그룹들에 대하여 전술한 과정이 반복된다. 이와 같이, 각 그룹의 정보 비트들이 하나씩 입력됨에 따라 변경되는 부호화 상태를 기반으로 패리티 비트 값이 결정되므로, 수신 측에서는 반대로 패리티 비트들을 이용하여 전송된 데이터의 오류가 있는지 여부를 판단할 수 있다.
한편, 앞서 설명된 불규칙 반복 다상 누산 코드 부호화 방법은 G행 N열(N은 부호어의 길이로서, 정보 비트열 bk의 길이와 패리티 비트 길이 G×NP의 합)의 행렬(이하 "부호화 행렬")을 통하여 구조적으로 설명될 수 있다.
상술된 부호화 행렬은 후술될 본 발명에 따른 가변적 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위해서 반드시 필요한 개념이다. 또한, 부호화 행렬은 복호화 쪽에서는 복호화 행렬로서 설명이 될 수가 있다. 즉, 부호화 과정에서 이용된 부호화 행렬과 동일한 행렬이 복호화 과정에서는 복호화 행렬로서 이용된다.
도 3은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법에서 부호화 행렬의 개념을 설명하기 위한 개념도이다.
도 3은 G행 N 열의 불규칙 반복 다상 누산 코드 부호화 행렬(A)을 나타낸 것으로, 행렬 A는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 정보 비트열을 부호화 하는 과정을 구조적으로 표현할 수 있다. 즉, 불규칙 반복 다상 누산 코드 부호화 방법의 불규칙 반복에 의해서 정보 비트열이 반복되는 특성 또한 부호화 행렬 A를 통하여 표현이 가능하다.
행렬 A는 LDPC 코드에서 생성 행렬(generator matrix)의 역할을 수행할 수 있다.
G번의 반복 중 i번째 반복에서 정보 비트열 bk에서 선택되는 비트의 수는 m(i)라 하고, 정보 비트열 bk을 구성하는 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에서는 10 by 40 행렬 A가 예시되어 있다. 도 3에 도시된 행렬 A는 G=10으로, S130 단계 내지 S150 단계를 10번 반복한다. K=20으로, 정보 비트열 bk의 비트 수는 20이다. 패리티 비트들의 비트 수 NP은 2이다. 패리티 비트들을 결정하는 과정이 10번 반복되므로 총 결정되는 패리티 비트 블록의 길이는 20이다.
한편, 행렬 A에서 회색 음영 부분은 모두 0값을 가진다. 첫 번째 행에서 3, 4, 9, 14, 16, 17 번째 열이 1 값을 가지므로, 첫 번째 반복에서는 정보 비트열 bk의 정보 비트들 중 3, 4, 9, 14, 16, 17 번째 비트들이 선택되어 S140 단계가 수행된다. 나머지 열도 마찬가지로 해석될 수 있다.
한편, 여기에서 부호화 행렬은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법을 구조적으로 설명하기 위한 수단일뿐, 이하에 설명되는 행렬에 대한 조작들은 행렬 조작들에 의해서 부호화 과정을 제어하는 기술적 사상으로서 이해되어야 하며, 이러한 기술적 사상이 반드시 완전한 행렬 연산에 의해서 이루어지는 것은 아님이 이해되어야 한다. 예컨대, 행렬의 원소들이 0과 1의 값들만을 가지며, 1의 값을 가지는 원소의 밀도가 낮은 것을 이용하여 메모리 효율적인 저장 방법이 이용될 수 있을 것이다. 또한, 메모리 효율적인 저장 방법이 이용될 경우에, 이하에 설명되는 가변적 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화를 위한 행렬 조작 또한 메모리 효율적인 방식으로 이루어질 수 있을 것이다.
불규칙 다상 누산 코드 복호화 방법
상술된 불규칙 다상 누산 코드 부호화 방법에 의해서 부호화된 부호어를 유무선 채널을 통하여 수신한 부호화 신호는 다양한 복호화 알고리즘에 의해서 복호화될 수 있다. 예컨대, 종래 LDPC 코드가 패리티 체크를 위해 tanh 규칙을 사용하였던 것을 대신하여, 2차원 BCJR(Bahl, Cocke, Jelinek, Raviv) 알고리즘이 불규칙 반복 다상 누산 코드 부호화된 부호화 신호를 복호하는데 이용될 수 있다.
이하에서는, 이해를 돕기 위해서 본 발명에 따른 복호화 방법에 의해서 도 2의 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여 수신 데이터를 복호화하는 과정을 설명하기로 한다. 본 실시예와 관련하여 LDPC 복호화 방식이 동일하게 적용될 수 있는 부분은 간단히 언급되거나 생략될 수 있다.
도 3을 통하여 설명된 부호화 행렬(A)은 부호화 과정에서 사용되는 한편, 복호화 과정에서도 사용될 수 있다. 따라서, 행렬 A는 부호화 과정에서는 생성 매트릭스(generator matrix)로서 역할하지만 복호화 과정에서는 패리티 체크 매트릭스(parity check matrix)로 역할한다. 즉, 복호화 과정에서 행렬 A는 LDPC 코드를 이용한 복호화에서 패리티 체크 매트릭스와 같은 역할을 수행한다.
IRmA 코드는 태너 그래프(Tanner Graph), 즉, 양 측으로 나뉘어진 노드들과 한 측의 노드에서 타 측의 노드로 연결된 가지(edge)들로 표현될 수 있다. 양 측의 노드들 중 한 측의 노드들은 부호어의 각 비트들을 의미하는 변수 노드들(variable nodes)이며, 타 측의 노드들은 각 그룹들을 의미하는 그룹 노드들이다.
가지를 따라 한 측의 노드에서 타 측의 노드로 메시지를 전달하고, 전달 받은 메시지를 기초로 전달할 메시지를 갱신하는 과정을 반복하는 것으로 복호화 과정을 설명할 수 있다. 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지며, 통상적으로 최대 반복 한계 횟수를 미리 정하고 최대 반복 한계 횟수 이내에서 복호화가 성공하면 반복을 중단하게 된다.
이때, 메시지는 부호화 신호 중 해당하는 비트의 가능도(likelihood)에 관한 정보를 포함한다. 가능도는 해당 비트가 1 또는 0 값을 가질 가능성의 정도를 의미한다. 가능도를 표현하는 지표로, 대수 가능도 비(Log Likelihood Ratio: LLR)가 사용되는 경우를 예를 들어 설명하나, 이에 제한되는 것은 아니다. 그룹 노드들에서는 2차원 BCJR 알고리즘을 이용하여 각 변수 노드에 전달하는 메시지를 갱신한다.
도 4는 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 신호의 복호화 방법을 설명하기 위한 순서도이다.
S410 단계에서, 복호화기는 정보 비트들과 패리티 비트들을 포함하는 부호화 신호를 수신한다. S420 단계에서, 복호화기는 부호화 신호에 포함된 부호화 비트들을 G(G는 2 이상의 정수)개의 그룹들로 그룹화한다. 예컨대, 복호화기는 부호화 비트들을 G개의 그룹들 중 적어도 하나의 그룹과 매칭시킬 수 있다. 어느 하나의 그룹은 복수의 부호화 비트들을 포함하며, 또한, 어느 하나의 부호화 비트는 복수의 그룹들에 포함될 수 있다. i번째 그룹에 포함된 비트들의 수를 m(i)라 한다. m(i)개의 부호화 비트들은 Ki개의 정보 비트들과 NP개의 패리티 비트들로 구성될 수 있다. 부호화 비트들은 LDPC 코드에서 패리티 체크 행렬 H를 이용하는 것과 마찬가지로, 복호화 행렬을 이용하여, 부호화 과정에서의 반복(repetition) 및 인터리빙(interleaving) 과정을 표현할 수 있으며, 복호화기는 이러한 복호화 행렬을 이용하여, 부호화 비트들을 그룹화 할 수 있다. 각 부호화 비트들을 나타내는 변수 노드들은 각 그룹들을 나타내는 그룹 노드 중 자신과 상응하는 적어도 하나의 그룹 노드와 연결된다.
변수 노드들은 부호어의 길이 N개 만큼 있을 수 있으며, 그룹 노드들은 그룹들의 수 G 개 만큼 있을 수 있다. 여기서, N개의 변수 노드들의 순서는 j로 표시하고, G개의 그룹 노드들의 순서는 i로 표시한다. G개의 그룹 노드들 중 i번째 그룹 노드와 연결되는 변수 노드들의 수(i번째 그룹이 포함하는 부호화 비트의 수)를 m(i)라 한다. 즉, m(i)개의 변수 노드들 중 l번째 노드는, N개의 변수 노드들 중 j=π(l)번째 노드에 해당한다. 마찬가지로, N개의 변수 노드들 중 j번째 변수 노드와 연결되는 그룹 노드들의 수, 즉, j번째 부호화 비트가 포함된 그룹들의 수를 q(j)라 한다. q(j)개의 그룹 노드들의 순서를 k라 표현했을 때, k와 i의 관계는 i=σ(k)로 표시한다. 즉, q(j)개의 그룹 노드들 중 k번째 노드는, G개의 그룹 노드들 중 i=σ(k)번째 노드에 해당한다.
부호화 비트들이 그룹화되면, 복호화기는 수신된 부호화 신호를 기초로 부호화 신호의 각 비트들의 가능도 L 및 제1 메시지 U를 초기화 할 수 있다. Lj는 N 비트의 부호화 신호 중 j번째 비트(bj)의 LLR을 의미한다. 제1 메시지 U는 그룹 노드가 변수 노드에 제공하는 메시지이다. Ui ,j는 i번째 그룹 노드가 j번째 변수 노드에 제공하는 메시지로, i번째 그룹 노드가 추정한 bj의 LLR을 값으로 가진다. U0 ,j는 수신된 부호화 신호 값을 기초로 추정된 bj의 관측 LLR 값이다. U0 ,j를 제외한 Ui ,j는 모두 0으로 초기화되고, Lj값은 U0 ,j 값으로 초기화된다.
S430 단계에서, 복호화기는 부호화 비트들 중 각 비트에 대하여, 각 비트가 포함된 복수의 그룹들로부터 제공되는 각 비트의 가능도(likelihood, 이하 제1메시지의 값)들에 기반하여, 각 변수 노드가 복수의 그룹 노드들에 제공하는 각 비트의 가능도(이하, 제2메시지의 값)들을 추정한다. 일 실시예에 따라, j번째 변수 노드에서는 j번째 변수 노드와 연결된 q(j)개의 그룹 노드들로부터 제공되는 q(j)개의 제1 메시지 Uσ(k),j(이때, k는 1부터 q(j)사이의 정수)들을 기초로 q(j)개의 제2메시지 V들이 산출된다. 산출되는 제2 메시지 Vj ,σ(k)(이때, k는 1부터 q(j)사이의 정수)들은 j번째 변수 노드가 q(j)개의 그룹 노드들 각각에 제공하는 bj의 LLR값을 나타낸다. 그 중 σ(n)=i번째 그룹 노드에 제공하는 제2 메시지 Vj,σ(n)=Vj,i는, 일 실시예에 따라 수학식 6과 같이 산출될 수 있다. 이때, σ(0)=0으로 정의한다.
Figure 112012018089845-pat00008
j번째 변수 노드가 제공하는 제2 메시지는 j번째 변수 노드와 연결된 그룹 노드들이 j번째 변수 노드에 제공하는 bj의 LLR 값(Uσ(k),j)들 및 U0 ,j의 합으로 산출될 수 있는데, 이때, i번째 그룹 노드에 제공하는 제2 메시지 Vj ,i는 i번째 그룹 노드로부터 제공 받은 제1 메시지 Ui ,j의 값은 제외하고 합산된 값으로 결정된다.
S440 단계에서, 복호화기는 제2 메시지의 값들을 기초로 제1 메시지의 값들을 갱신한다. 일 실시예에 따라, 복호화기는 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, G개의 그룹 노드들이 제공받은
Figure 112012018089845-pat00009
개의 제2 메시지의 값들을 기초로, 제1 메시지의 값들을 갱신하여 각 변수 노드에 제공한다. 제1 메시지의 값은 각 그룹 노드들이 각 그룹 노드와 연결된 비트들에 대하여 추정하는 각 비트들의 가능도로서, 각 비트의 주변 비트들의 가능도에 기반하여 추정된다. 예컨대, Ui ,j는 i번째 그룹 노드가 j번째 변수 노드에 제공하는 제1 메시지의 값으로, G개의 그룹들이 제공받은 개의 제2 메시지의 값들 중 j번째 변수 노드가 i번째 그룹 노드에 제공한 제2 메시지 Vj ,i를 제외한 제2 메시지들을 기초로 추정되는 값이다. 이때, 복호화기는 2차원 BCJR 알고리즘을 이용하여 제1 메시지 값을 갱신할 수 있다. 복호화기가 제1 메시지 값을 갱신하는 과정은 도 5를 참조하여 후술한다.
S450단계에서, 복호화기는 S430 단계 및 S440 단계의 수행을 반복한다. 복호화기는 이전의 반복에서 산출된 제1 메시지를 이용하여 제2 메시지를 산출하고, 새로이 산출된 제2 메시지를 이용하여 제1메시지를 갱신하는 과정을 미리 설정된 횟수만큼 반복한다.
S460 단계에서, 복호화기는 마지막 반복에서 갱신된 제1 메시지 값들을 기초로 추정되는 각 비트(bj)의 가능도에 따라 각 비트(bj)의 값을 결정한다. 일 실시예에 따라 bj의 LLR값인 Lj는 수학식 7과 같이 산출될 수 있다.
Figure 112012018089845-pat00010
복호화기는 Lj의 값이 1보다 작은지 또는 1보다 큰지에 따라 bj의 값이 1인지 또는 0인지 여부를 결정한다.
도 5는 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 순서도이다.
도 5에서 설명하는 2차원 BCJR 알고리즘을 이용한 복호화 방법에 따르면, 복호화기는 제2 메시지들을 기반으로 하여, 인워드 상태 메트릭을 산출한 뒤, 이를 기초로 포워드 상태 메트릭 및 백워드 상태 메트릭을 산출하고, 마지막으로 아웃워드 상태 메트릭을 산출한다. 상태 메트릭들이 산출되면, 복호화기는 인워드, 포워드, 백워드, 아웃워드 상태 메트릭을 이용하여 제1 메시지를 갱신할 수 있다. 한편, 설명의 편의를 위하여 부호화 신호 중 i번째 그룹 노드가 제공 받은 m(i)개의 제2 메시지들 중 l번째 제2메시지인 Vπ(l),i에 상응하는 시간 t를 2차원적 시간 인덱스인 t=(i,l)로 표시한다. 또한, 시간 t=(i,l)는 i번째 그룹의 l번째 비트에 상응하는 시간이다. 이때, 각 i에 대하여 t=(i,1),...,t=(i,Ki)는 정보 비트에 상응하는 시간이며, t=(i,Ki+1),...,t=(i,m(i))은 패리티 비트에 상응하는 시간이다.
부호화된 신호는, 도 2의 트렐리스 다이어그램과 같은 상태 천이 및 패리티 비트 생성 규칙에 따라 생성된 패리티 비트들이 정보 비트들과 결합되어 생성된 신호라 가정한다. 도 2의 천이 규칙은 송신 측과 수신 측이 공통적으로 알고 있는 정보이므로, 수신 측에서도 도 2와 같은 트렐리스를 동일하게 구성할 수 있다.
도 2의 트렐리스를 기반으로, 복호화기는 G개의 그룹 노드들이 제공받은
Figure 112012018089845-pat00011
개의 제2 메시지들에 2차원 BCJR 알고리즘을 적용하여
Figure 112012018089845-pat00012
개의 제1 메시지들을 갱신한다. 도 2의 트렐리스는 일반적인 트렐리스와 달리, 정보 비트들이 입력됨에 따른 부호화 상태 천이를 나타내는 메인 가지들(210)과 패리티 비트들이 입력됨에 따른 부호화 상태 천이를 나타내는 보조 가지들(220)을 포함한다. 보조 가지들(220)은 시간 t=(i, Ki+1)인 때마다 메인 가지들(210)로부터 분기된다. 즉, 도 2에서, i번째 보조 가지가 메인 가지와 분기되는 분기 상태의 시점은 t=(i, Ki+1)로 나타낼 수 있으며, i번째 보조 가지의 최종 상태의 시점은 t=(i, m(i)+1)로 나타낼 수 있다. 경우에 따라, Ki는 m(i)-NP로 표현될 수도 있다.
기존 BCJR 알고리즘에 따르면 수신 비트열을 기반으로 사후 확률을 계산하여 전송 비트의 연판정(soft decision)값을 얻을 수 있다. 시간 t에서의 사후 확률은 시간 t에서의 사후 천이 확률들의 합으로 계산될 수 있다. 시간 t에서의 사후 확률은 수학식 8과 같다.
Figure 112012018089845-pat00013
여기서, 사후 확률 P(dt=d)는 시간 t에서의 전송 비트 값이 d(d는 0또는 1)일 확률이다. σ(st,st +1)는 시간 t에서의 사후 천이 확률로, σ(st=a,st +1=b)는 시간 t에서의 상태(st)가 상태 a이고, 시간 t+1에서의 상태(st +1)가 상태 b일 확률을 의미한다. 이때, 상태 b는, 시간 t에서의 상태가 상태 a이고, 시간 t에서의 전송 비트 값이 d일 때 시간 t+1에서 천이된 상태 값이다. st는 상태 수 NS 만큼 주어진 부호화 상태들 중 어느 하나의 값을 가진다. 본 실시예에서 St는 상태 0, 상태 1, 상태 2, 상태 3 중 어느 하나의 값을 가진다.
개시된 기술에서 제안하는 2차원 BCJR 복호 알고리즘에 따르면, 메인 가지에 서의 사후 천이 확률과 보조 가지에서의 사후 천이 확률은 서로 다른 값을 기초로 산출된다. 서의 사후 천이 확률과 보조 가지에서의 사후 천이 확률은 서로 다른 값을 기초로 산출된다.
Figure 112012018089845-pat00014
여기서, α(st)는 시간 t에서의 상태 st의 포워드 상태 메트릭, β(st +1)는 시간 t+1 에서의 상태 st +1의 백워드 상태 메트릭, γ(st, st +1)는 st와 st +1 사이를 연결하는 가지의 가지 메트릭이다. 포워드 상태 메트릭 및 백워드 상태 메트릭은 정보 비트들을 나타내는 가지, 즉 메인 가지와 연결된 상태에서만 정의된다. γ(st, st+1)는 시간 t에서의 가지 메트릭으로, 수학식 9에서는 시간 t에서의 가지 메트릭으로, 수학식 9에서는 메인 가지에서의 가지 메트릭만이 사용된다. 시간 t에서의 가지 메트릭의 값은 시간 t에 상응하는 제2 메시지의 값을 기초로 결정될 수 있다.
Figure 112012018089845-pat00015
여기서, μ(st)와 λ(st +1)는 패리티 비트를 나타내는 가지와 연결된 상태에 관한 상태 메트릭으로 각각 시간 t에서의 아웃워드 상태 메트릭, 시간 t+1에서의 인워드 상태 메트릭이라 한다. 아웃워드 상태 메트릭과 인워드 상태 메트릭은 패리티 비트들을 나타내는 가지, 즉 보조 가지와 연결된 상태에서만 정의된다. γ(st,st +1)는 시간 t에서의 가지 메트릭으로, 수학식 10에서는 보조 가지에서의 가지 메트릭만이 사용된다. 또한, 시간 t에서의 가지 메트릭의 값은 시간 t에 상응하는 제2 메시지의 값을 기초로 결정될 수 있다. 아웃워드 상태 메트릭은 메인 가지에서 보조 가지가 분기하는 각 시점에서부터 이전 상태의 아웃워드 상태 메트릭을 기초로 순차적으로 산출된다. 분기 시점에서의 초기 아웃워드 상태 메트릭은 포워드, 백워드 상태 메트릭을 기초로 산출될 수 있다. 인워드 상태 메트릭은 각 보조 가지의 마지막 상태에서부터, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다.
수학식 9 및 수학식 10과 같이 트렐리스 상의 모든 가지에 대하여 사후 천이 확률을 구하면 시간 t에 상응하는 제1 메시지의 값은 수학식 9에 따라 산출되는 사후 확률에 따라 결정된다.
도 6은 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 개념도이다.
도 6은 도 2의 트렐리스를 단순화하여 표현한 도면으로서, 도 2의 다이어그램은 각 시간 t까지 입력될 수 있는 비트들의 모든 경우와, 시간 t까지 입력된 비트들에 따라 시간 t에서 부호화 상태가 가질 수 있는 모든 상태를 표시하였다.
도 6의 다이어그램에서, 각 시간 t까지 입력되는 비트와 시간 t에서의 부호화 상태는 각각 하나의 화살표와 하나의 원으로 간단히 표시된다. 도 6의 화살표는 0 또는 1의 값을 가지며, 각각의 원은 상태 0에서 상태 3까지의 값을 가질 수 있다. 도 6에 표시된 바와 같이, 개시된 기술에 따른 2차원 BCJR 알고리즘에서는 인워드 반복 연산(inward recursion), 포워드 반복연산(forward recursion), 백워드 반복연산(backward recursion), 아웃워드 반복연산(outward recursion) 순으로 복호화를 진행한다. 이때, 실시예에 따라, 포워드 반복연산과 백워드 반복연산의 순서는 바뀔 수 있다. 인워드 반복연산은 각 보조 가지의 최종 상태에서부터 인워드 상태 메트릭 값을 역순으로 산출하는 과정이다. 포워드 반복연산은 메인 가지의 첫 번째 상태에서부터 포워드 상태 메트릭 값을 순차적으로 산출하되, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 포워드 상태 메트릭을 산출하는 과정이다. 백워드 반복연산은 포워드 반복연산과 반대의 순서로 백워드 상태 메트릭 값을 산출하되, 포워드 반복연산과 마찬가지로, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 백워드 상태 메트릭을 산출하는 과정이다. 아웃워드 반복연산은 메인 가지와 보조 가지가 분기되는 시점의 분기 상태에서부터 인워드 반복 연산과 반대의 순서로 아웃워드 상태 메트릭 값을 순차적으로 산출하는 과정이다. 이와 같은 순서에 따라 각 상태 메트릭을 산출하는 방법을 구체적으로 설명한다.
각 상태 메트릭을 산출하기에 앞서, 복호화기는 도 2 또는 도 6의 트렐리스 다이어그램에 기반하여, 제2 메시지로부터 각 가지들에 상응하는 가지 메트릭들을 산출한다. 가지 메트릭이 산출되면, 복호화기는 전술한 바와 같은 순서로 각 상태 메트릭을 산출한다. 각 상태 메트릭 값들이 산출되면, 이를 기초로 복호화기는 제1 메시지를 갱신할 수 있다. 다만, 본 실시예에서는 상술한 2차원 BCJR을 적용하되, 자신의 LLR 값을 추정하는 과정에서 자기 이외의 비트들의 LLR 값(extrinsic information)만을 반영하기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 10, 11과 달리 가지 메트릭의 값을 곱하지 않는다.
일 실시예에 따라, 복호화기는 제2 메시지 Vπ(l),i값을 기초로 t=(i,l)에서의 가지 메트릭의 값을 결정한다. 제2 메시지 Vπ(l),i는 i번째 그룹 노드가 i번째 그룹 노드와 연결된 m(i)개 변수 노드들 중 l번째 변수 노드로부터 제공받은 메시지 값이다. 이때, 제2 메시지의 값들은 2차원 BCJR 알고리즘의 입력 값으로, BCJR 알고리즘에서 각 전송 비트들의 사전 LLR 값에 상응한다. 예컨대, 시간 t=(i,l)에서의 가지 메트릭들 중 bit 0에 상응하는 가지의 메트릭은 Vπ(l),i값으로부터 시간 t=(i,l)에서의 비트 값이 0일 확률로 결정되며, bit 1에 상응하는 가지의 메트릭 또한, Vπ(l),i값으로부터 시간 t=(i,l)에서의 비트 값이 1일 확률로 결정된다.
이를 수식으로 표현하면 수학식 11과 같다.
Figure 112012018089845-pat00016
가지 메트릭이 산출되면, 복호화기는 다음과 같이 각 상태 메트릭을 순차적으로 산출한다.
S510 단계에서, 복호화기는 G개의 그룹들이 포함하는 전체 부호화 비트들 중 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 인워드 상태 메트릭들을 산출한다. 인워드 상태 메트릭은 보조 가지와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다. 인워드 상태 메트릭은 패리티 비트들을 나타내는 각 보조 가지 별로 산출된다. 인워드 상태 메트릭은 각 보조 가지의 최종 수렴 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))에서부터 메인 가지와 보조 가지가 분기되는 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)까지 수학식 12와 같이 역순으로 산출된다.
Figure 112012018089845-pat00017
각 보조 가지는 특정 상태, 예를 들어 상태 0으로 수렴한다고 가정하면, s(i,m(i)+1)는 상태 0 값을 가진다. 따라서, λ(s(i,m(i)+1))는 s(i,m(i)+1)가 상태 0일 때, 1값을, s(i,m(i)+1)가 나머지 상태에서는 0값을 가진다.
모든 보조 가지들에 대하여 인워드 상태 메트릭을 산출한 뒤, S520 단계에서, 복호화기는 G개의 그룹들이 포함하는 부호화 비트들 중 정보 비트들에 상응하는 가지 메트릭의 값들 및 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출한다. 포워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 포워드 상태 메트릭을 기초로 순차적으로 산출된다. 백워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 백워드 상태 메트릭을 기초로 역순으로 산출된다. 포워드 상태 메트릭은 포워드 반복 연산에 의하여 t=(i,1)에서부터 t=(i,Ki+1)까지 각 상태에 대하여 순차적으로 계산된다. 또한, i값이 1인 때부터 i값이 G일 때까지 i가 하나씩 증가하며 계산이 반복된다. 각 정보 비트 그룹의 첫 번째 비트에 상응하는 상태인 s(i,1)의 포워드 상태 메트릭은 수학식 13과 같은 조건을 이용하여 산출할 수 있다.
Figure 112012018089845-pat00018
이때, Sinit은 부호화 상태의 초기 값이다. Sinit이 상태 0이라 가정하면, α(s(1,1))는 s(1,1)가 상태 0일 때 1값을, s(1,1)가 나머지 상태일 때에는 0값을 가진다. 또한, t=(i,1)에서의 상태는 t=(i-1,Ki -1+1)에서의 상태와 동일하므로,
Figure 112012018089845-pat00019
이다.
각 정보 비트 그룹에서 분기 상태를 제외한, 이후의 포워드 상태 메트릭은 수학식 14와 같이 산출된다. 즉, α(st=a)는 임의의 상태 값을 가지는 st -1로부터 상태 값이 a인 st로 향하는 모든 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st -1의 포워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,2),...,(i,Ki) 값을 가질 수 있다.
Figure 112012018089845-pat00020
마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 15와 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 포워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 포워드 상태 메트릭 값을 곱한 값으로 산출된다.
Figure 112012018089845-pat00021
이때, 분기 시점인 t는 t=(i,Ki+1), 또는, Ki=m(i)-NP 이므로 t=(i,m(i)-NP+1) 이다. 마찬가지로, t-1=(i,Ki) 또는 (i,m(i)-NP)이다.
백워드 상태 메트릭은 백워드 반복 연산에 의하여 t=(i,Ki+1)에서부터 t=(i,1) 까지 각 상태에 대하여 역순으로 계산된다. 또한, i값이 G인 때부터 i값이 1일때까지 i가 하나씩 감소하며 상기 계산이 반복된다. 각 정보 비트 그룹의 마지막 비트에 따라 변경된 상태인 t=(i,Ki+1)에서의 상태에 대한 백워드 상태 메트릭은 수학식 16과 같은 조건을 이용하여 산출할 수 있다.
Figure 112012018089845-pat00022
따라서, t=(i,Ki+1)에서의 상태는 t=(i+1,1)에서의 상태와 동일하므로,
Figure 112012018089845-pat00023
이다. 각 정보 비트 그룹에서 분기 상태를 제외한, 나머지 백워드 상태 메트릭은 수학식 17과 같이 산출된다. 즉, β(st=a)는 임의의 상태 값을 가지는 st +1로부터 상태 값이 a인 st로 향하는 모든 역방향 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st +1의 백워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,Ki),...,(i,2) 값을 가질 수 있다.
Figure 112012018089845-pat00024
마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 18과 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 백워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 백워드 상태 메트릭 값을 곱한 값으로 산출된다.
Figure 112012018089845-pat00025
S530 단계에서, 복호화기는 G개의 그룹들이 포함하는 부호화 비트들 중 상기 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 아웃워드 상태 메트릭들을 산출한다. 아웃워드 상태 메트릭은 보조 가지(220)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 아웃워드 상태 메트릭 및 패리티 비트들에 상응하는 가지 메트릭들을 기초로 순차적으로 산출된다.
아웃워드 상태 메트릭은 인워드 상태 메트릭과 마찬가지로 패리티 비트들을 나타내는 각 보조 가지 별로 산출하되, 인워드 상태 메트릭과 반대 방향으로 수행된다. 아웃워드 상태 메트릭은 메인 가지와 보조 가지가 분기되는 각각의 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)에서부터 각 보조 가지의 최종 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))까지 순차적으로 산출된다.
각 분기 상태에서의 아웃워드 상태 메트릭은 각 분기 상태에서의 포워드 상태 메트릭과 백워드 상태 메트릭의 곱과 같다. 이를 수식으로 표현하면 수학식 19와 같다.
Figure 112012018089845-pat00026
분기 상태 다음 상태부터의 아웃워드 상태 메트릭은 수학식 20과 같이 순차적으로 산출된다.
Figure 112012018089845-pat00027
상태 메트릭들이 산출되면, 복호화기는 정보 비트들 또는 패리티 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신할 수 있다(S540). 복호화기는 포워드 상태 메트릭들 및 백워드 상태 메트릭들의 값을 기초로 정보 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신하고, 인워드 상태 메트릭들 및 아웃워드 상태 메트릭들의 값을 기초로 패리티 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신한다.
다만, 위에서 언급한 바와 같이, 각 비트들에 대한 제1 메시지의 값들은 자신 이외의 비트들의 LLR 값(extrinsic information)만을 반영하여 갱신되기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 9, 10과 달리 가지 메트릭의 값을 곱하지 않는다. 즉, 제1 메시지 값들을 갱신하는데 사용되는 사후 천이 확률은 수학식 21 및 수학식 22와 같이 산출된다. 일 실시예에 따라, i번째 그룹 노드가 j=π(n)번째 변수 노드(이때, n은 1≤n≤m(i) 인 정수)에 제공하는 제1 메시지 Ui ,π(n) 의 값은 j=π(n)번째 변수 노드가 정보 비트에 대응되는 경우, 수학식 21와 같이, j=π(n)번째 변수 노드가 패리티 비트에 대응되는 경우, 수학식 22와 같이 산출되는 사후 천이 확률들의 합으로 산출될 수 있다. 제1 메시지 Ui ,π(n)의 값은, 2차원 BCJR 알고리즘에서 수학식 11 및 수학식 7에 따라 산출되는 t=(i,n)에 상응하는 비트의 사후 확률 P(dt)을 LLR로 변환한 값으로 결정될 수 있다.
Figure 112012018089845-pat00028
Figure 112012018089845-pat00029
이와 같이, 제1 메시지의 값들은 2차원 BCJR 알고리즘의 출력 값으로, 수학식 21 및 22와 같이 산출되는 사후 천이 확률들을 기반으로 결정되므로, 본 실시예에서 사후 천이 확률의 의미를 수식으로 표현하면 수학식 23과 같다.
Figure 112012018089845-pat00030
본 발명에 따른 가변 부호화율 IRmA 코드 부호화 방법
도 7은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법은, 제1 부호화율에 대응되고 상기 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 단계(S710), 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 단계(S720) 및 상기 단계(S720)에서 결정된 상기 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(S730)를 포함하여 구성될 수 있다.
먼저, 단계(S710)에서 기본 불규칙 반복 다상 누산 코드 부호화 행렬은 도 3에서 예시된 부호화 행렬을 의미하는 것으로, 부호화 과정이므로 LDPC 부호화에서의 생성 매트릭스의 역할과 같은 역할을 수행한다. 이때, 제 1 부호화율은 통상적으로 본 발명에 따른 가변 부호화율 부호화 방법에서 선택할 수 있는 가장 높은 부호화율(가장 높은 데이터 rate를 달성 가능한 부호화율)이 될 수 있다.
도 8은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법에서 가변적 부호화율 달성의 개념을 설명하기 위한 개념도로서, 도 8의 첫번째 부호화 행렬(810)이 기본 불규칙 반복 다상 누산 코드 부호화 행렬이 되며, 이때 부호화율(제1 부호화율)은 4/(4+1), 즉, 4/5가 된다.
다음으로, 단계(S720)에서는 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하게 된다.
본 발명에 따른 부호화 방법이 통신 시스템에 적용될 경우, "적용될 부호화율"은 부호화를 수행하는 송신 측이 수신 측으로부터 수신한 채널 상태 정보 피드백(Channel State Information feedback)에 기반하여 결정할 수도 있고, 수신 측이 채널 상태를 측정하여 결정한 부호화율을 수신하여 결정할 수도 있다.
단계(S720)의 일 실시예로 불규칙 반복 다상 누산 코드 부호화를 수행할 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하기 위해서 기본 불규칙 반복 다상 누산 코드 부호화 행렬(810)의 일부를 제거(truncation)하고 남은 행렬(예컨대, 820, 830, 840)을 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하는 방법이 이용될 수 있다.
도 8을 참조하면, 부호화율(R)이 K/(K+1), K=1,2,3,4로 정의될 경우 부호화율 2/3, 3/4, 4/5에 대응되는 불규칙 반복 다상 누산 코드 부호화 행렬(820, 830, 840)이 기본 불규칙 반복 다상 누산 코드 부호화 행렬(810)로부터 결정되는 과정이 예시된다. 즉, 기본 불규칙 반복 다상 누산 코드 부호화 행렬(810)의 N개 열에서 앞에서부터 T=N(1-R)개의 열을 제거(truncation)하여 요구되는 부호화율의 부호화에 이용될 불규칙 반복 다상 누산 코드 부호화 행렬을 생성할 수가 있다. 이때, 앞에서부터 열을 제거할 수도 있으나, 행렬 A의 뒤에서부터 또는 임의의 열에서 T=N(1-R)개의 열을 제거하도록 구성될 수도 있을 것이다.
다시 한번 설명하면, 제 1 부호화율(기본 부호의 부호화율)이 R=4/5 라고 가정하면 부호의 길이가 N 일 때 그룹의 개수는 G=N(1-R)/Nm가 된다. (여기서, NP=log(NS)/log(2)) NS=4 이면 NP=2 가 되어 G=N/10 이므로 기본 불규칙 반복 다상 누산 코드 부호화 행렬 A는 G by N 이 된다. 이 때 N 개의 A의 열에서 앞(또는 뒤)에서부터 T=N(1-R) 개의 열을 truncation하여 R=3/4 부호화 행렬을 얻을 수 있다.
같은 방법으로 N 개의 A의 열에서 앞(또는 뒤)에서부터 T=N(1-R)×2 개의 열을 truncation하여 R=2/3 부호화 행렬을 얻을 수 있다. 만약 T=N(1-R)×3 이면 R=1/2 부호화 행렬을 얻을 수 있다. 그러므로 R=K/N, RC-USC 기본 부호의 A 행렬이 G×N 이면 truncation하여 RT=(K-T)/(N-T), RC-USC 부호의 A 행렬은 G×(N-T) 의 크기를 가진다.
마지막으로, 단계(S730)에서는 상기 단계(S720)에서 선택된 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하게 된다.
단계(S730)에서의 불규칙 반복 다상 누산 코드 부호화는 도 1을 통하여 상술된 불규칙 반복 다상 누산 코드 부호화 방법이 이용될 수 있다.
즉, 단계(S730)의 불규칙 반복 다상 누산 코드 부호화 방법은 부호화 대상이 되는 정보 비트열을 입력받는 단계, 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계 및 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계를 포함하고, 상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 부호화 상태를 결정하는 단계 및 패리티 비트들을 결정하는 단계를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하도록 구성될 수 있다.
기타, 단계(S730)의 구체적인 동작은 도 1 및 도 2를 통하여 이미 설명되었으므로, 자세한 설명은 생략한다.
본 발명에 따른 가변 부호화율 IRmA 코드 부호화 장치
도 9는 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치의 구성을 설명하기 위한 블록도이다.
도 9를 참조하면, 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치(900)는 정보 비트열 입력부(910), 부호화 행렬 저장부(920), 부호화 행렬 결정부(930) 및 부호화부(940)를 포함하여 구성될 수 있다.
본 발명에 따른 부호화 장치(900)는 일반적으로 데이터 송신 장치의 MAC 계층에 위치되어, 소스 코딩(source coding)된 데이터를 부호화하는 역할을 수행한다. 즉, 데이터 송신 장치는 수신 측으로부터 채널 상태 정보(CSI: Channel State Information)를 피드백받고 이에 따라 부호화율을 결정하여 본 발명의 부호화 장치(900)를 통하여 부호화를 수행하거나, 수신 측에서 결정한 부호화율을 수신하여 수신된 부호화율에 따라 본 발명의 부호화 장치(900)를 통하여 부호화를 수행하게 된다.
먼저, 정보 비트열 입력부(910)는 부호화 대상이 되는 정보 비트열(bk)을 입력받도록 구성된다. 정보 비트열 입력부(910)는 상위 계층으로부터 전송이 될 정보 비트열을 수신하며, 통상적으로 정보 비트열은 소스 코딩을 거친 비트열일 수 있다.
다음으로, 부호화 행렬 저장부(920)는 제1 부호화율에 대응되고 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하여 저장하고 있는 구성요소이다. 이때, 제 1 부호화율은 통상적으로 본 발명에 따른 가변 부호화율 부호화 방법에서 선택할 수 있는 가장 높은 부호화율(가장 높은 데이터 rate를 달성 가능한 부호화율)이 될 수 있다. 예컨대, 도 8의 첫번째 부호화 행렬(810)이 기본 불규칙 반복 다상 누산 코드 부호화 행렬이 되며, 이때 부호화율(제1 부호화율)은 4/(4+1), 즉, 4/5가 된다.
부호화 행렬 결정부(930)는 부호화 행렬 저장부(920)에 저장된 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 구성요소이다. 부호화 행렬 결정부(930)는 일 실시예로 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하기 위해서 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하도록 구성될 수 있다.
부호화 행렬 결정부(930)가 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하는 개념은 도 8을 통하여 설명된 바와 같다. 즉, 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 N개 열에서 앞에서부터 T=N(1-R)개의 열을 제거(truncation)하여 요구되는 부호화율의 부호화에 이용될 불규칙 반복 다상 누산 코드 부호화 행렬을 생성할 수가 있다. 이때, 앞에서부터 열을 제거할 수도 있으나, 행렬 A의 뒤에서부터 또는 임의의 열에서 T=N(1-R)개의 열을 제거하도록 구성될 수도 있을 것이다.
부호화부(940)는 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여, 정보 비트열 입력부에서 입력된 정보 비트열들을 불규칙 반복 다상 누산 코드 부호화하고, 정보 비트열과 생성된 패리티 비트를 결합하여 불규칙 반복 다상 누산 코드 부호어를 출력하는 구성요소이다.
도 10은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치의 부호화부 구성예를 설명하기 위한 블록도이다.
도 10을 참조하면, 부호화부(940)는 부호화 상태 결정부(941), 패리티 비트 결정부(942) 및 부호어 생성부(943)를 포함하여 구성될 수 있다.
먼저, 부호화 상태 결정부(941)는 상기 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 구성요소이다. 즉, 부호화 상태 결정부는 도 1을 통하여 설명된 단계(S130) 및 단계(S140)를 수행하는 구성요소이다. 부호화 상태 결정부(941)의 일 구성예는 도 11을 통하여 후술된다.
패리티 비트 결정부(942)는 상기 부호화 상태 결정부에서 결정한 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 구성요소이다. 즉, 패리티 비트 결정부(942)는 부호화 상태 결정부(941)에서 마지막으로 결정된 부호화 상태가 미리 설정된 상태(예컨대, zero state)로 수렴하도록 하는 값을 가지는 비트들을 패리티 비트들로 결정하도록 구성될 수 있다.
마지막으로, 부호어 생성부(943)는 상술된 부호화 상태 결정부와 패리티 비트 결정부의 동작을 전체적으로 제어하고, 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(coreword)를 생성하는 구성요소이다.
즉, 부호어 생성부(943)는 상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 역할을 수행한다.
도 11은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치에 적용되는 부호화 상태 결정부의 구성을 설명하기 위한 회로도이다.
부호화 상태 결정부(941)는 레지스터(1110) 및 연산부(1120)를 포함하여 부호화 상태를 결정할 수 있다. 레지스터(1110)는 부호화 상태를 나타내는 비트들을 저장한다. 연산부(1120)는 부호화 상태 결정부(941)로 입력되는 입력 비트(i) 및 부호화 상태를 나타내는 비트들(즉, 레지스터에 값이 저장된 비트들, d0, d1,...)중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다.
일례로, 레지스터(1110)에 저장된 모든 비트들과 입력 비트 간 XOR 연산할 수도 있으며, 다른 일례로 D0 레지스터에 저장된 비트와 입력 비트 간 XOR 연산할 수도 있다. 즉, 레지스터(1110)의 각 저장공간 D0 내지 DN -1은 선택적으로 연산부(1120)와 연결되어 저장된 비트 값을 연산부(1120)에 제공한다. 이때, 일 실시 예에 따라, 레지스터(1110)는 부호화 상태 결정부(941)에 정보 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 연산부(1120)에서 수행되는 연산 결과가 최상위 비트 자리로 입력됨으로써 부호화 상태를 나타내는 비트들을 갱신하는 순환 시프트 레지스터(Recursive Shift Register)일 수 있다.
레지스터(1110) 및 연산부(1120)의 동작은 수학식 2 또는 수학식 3과 같이 표현될 수 있다.
도 12는 개시된 기술의 일 실시예에 따라, 부호화 상태 수가 4인 경우 부호화 상태 결정부를 설명하기 위한 도면이다. 부호화 상태 수 NS가 4 인 경우 패리티 비트수 NP 및 부호화 상태를 나타내는 비트 수는 2이므로 레지스터(1110)는 두 개의 저장 공간 D1, D0를 가진다. 연산부(1120)는 입력 비트 및 부호화 상태를 나타내는 비트들, 즉, 레지스터 D1, D0에 값이 저장된 비트들(d1, d0)중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다.
일례로 도 12의 (a)는 입력 비트 i, 레지스터에 저장된 비트 값들인 d1, d0 세 비트의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 4와 같다. 다른 일례로 도 12의 (b)는 입력 비트 i와 레지스터에 저장된 비트 값인 d0 간의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 5와 같다.
본 발명에 따른 가변 부호화율 IRmA 코드 복호화 방법
도 13은 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법을 설명하기 위한 순서도이다.
도 13을 참조하면, 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법은, 제1 부호화율에 대응되고 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하는 단계(S1210), 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(S1220), 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 불규칙 반복 다상 누산 코드 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하고, 결정된 불규칙 반복 다상 누산 코드 복호화 행렬에 따라 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(S1230)를 포함하여 구성될 수 있다.
단계(S1210)에서 제1 부호화율은 부호화 장치에서 선택가능한 가장 높은 부호화율에 대응될 수 있으며, 기본 불규칙 반복 다상 누산 코드 복호화 행렬은 제 1 부호화율에 대응되는 복호화 행렬로서, 부호화 방법 및 장치에서는 기본 불규칙 반복 다상 누산 코드 부호화 행렬로 설명된 행렬이다.
단계(S1220)에서는 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신한다. 즉, 부호화 신호는 송신 측에서 본 발명에 따른 부호화 방법에 의하여 부호화된 부호어가 유무선 채널을 통하여 수신 측에 전달된 신호를 의미한다.
단계(S1230)에서는 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 불규칙 반복 다상 누산 코드 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하고, 결정된 불규칙 반복 다상 누산 코드 복호화 행렬에 따라 불규칙 반복 다상 누산 코드 복호화를 수행하게 된다.
단계(S1230)에서 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하는 개념은 도 8을 통하여 설명된 바와 같으며, 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 N개 열에서 앞에서부터 T=N(1-R)개의 열을 제거(truncation)하여 요구되는 부호화율의 복호화에 이용될 불규칙 반복 다상 누산 코드 복호화 행렬을 생성할 수가 있다. 이때, 앞에서부터 열을 제거할 수도 있으나, 행렬 A의 뒤에서부터 또는 임의의 열에서 T=N(1-R)개의 열을 제거하도록 구성될 수도 있을 것이다.
단계(S1230)에서 복호화를 수행하는 과정은 도 4를 통하여 이미 상술된 것으로 자세한 설명은 생략된다. 즉, 복호화를 수행하는 단계(S1230)는 상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(d-1), 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(d-2), 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(d-3), 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(d-2) 및 상기 단계(d-3)를 수행함을 반복하는 단계(d-4) 및 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(d-5)를 포함하여 구성될 수 있다.
이때, 단계(d-2) 및 단계(d-3)의 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지게 된다.
따라서, 미리 주어진 반복 횟수만큼 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하고, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.
또한, 미리 설정된 반복 횟수의 한계치 이내에서 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하면서, 매 반복 마다 산출된 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하고, 복호화가 성공한 것으로 판단된 경우에는 반복을 중단하도록 구성될 수도 있다.
단계(d-3)는, 2차원 BCJR 알고리즘으로서 설명될 수 있는데, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하는 것으로 설명될 수 있는데, 그 산출하는 과정은, 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하여 구성될 수 있다.
본 발명에 따른 가변 부호화율 IRmA 복호화 장치
도 14는 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치의 구성을 설명하기 위한 블록도이다.
도 14를 참조하면, 본 발명에 따른 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치(1400)는 부호화 신호 수신부(1410), 복호화 행렬 저장부(1420), 복호화 행렬 결정부(1430) 및 복호화부(1440)를 포함하여 구성될 수 있다.
본 발명에 따른 복호화 장치(1400)는 일반적으로 데이터 수신 장치에 위치되어, 수신된 부호화 신호를 복호하여 부호화 신호에서 정보 비트열을 추출하여 상위 계층으로 전달하는 역할을 수행한다. 데이터 수신 장치는 일반적으로, 데이터 송신 측으로부터 부호화 신호에 적용된 부호화율에 대한 정보를 명시적으로 수신하거나, 부호화 신호에 적용된 부호화율을 파악하여, 부호화 신호를 복호화한다.
먼저, 부호화 신호 수신부(1410)는 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신한다. 여기에서 부호어 대신에 부호화 신호라는 용어가 이용되는 이유는, 비트값(0 or 1)으로 판정(decision)을 내리기 전의 수신 신호이기 때문이다.
다음으로, 복호화 행렬 저장부(1420)는 제1 부호화율에 대응되고 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하여 저장하고 있는 구성요소이다. 이때, 제 1 부호화율은 통상적으로 본 발명에 따른 가변 부호화율 부호화 방법에서 선택할 수 있는 가장 높은 부호화율(가장 높은 데이터 rate를 달성 가능한 부호화율)이 될 수 있다. 기본 불규칙 반복 다상 누산 코드 복호화 행렬은 제 1 부호화율에 대응되는 복호화 행렬로서, 부호화 방법 및 장치에서는 기본 불규칙 반복 다상 누산 코드 부호화 행렬로 설명된 행렬이다. 예컨대, 도 8의 첫번째 부호화 행렬(810)이 기본 불규칙 반복 다상 누산 코드 복호화 행렬이 되며, 이때 부호화율(제1 부호화율)은 4/(4+1), 즉, 4/5가 된다.
다음으로, 복호화 행렬 결정부(1430)는 상기 복호화 행렬 저장부(1420)에 저장된 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 상기 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하는 구성요소이다. 복호화 행렬 결정부(1430)는 일 실시예로 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하기 위해서 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하도록 구성될 수 있다.
복호화 행렬 결정부(1430)가 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하는 개념은 도 8을 통하여 설명된 바와 같다. 즉, 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 N개 열에서 앞에서부터 T=N(1-R)개의 열을 제거(truncation)하여 요구되는 부호화율의 복호화에 이용될 불규칙 반복 다상 누산 코드 복호화 행렬을 생성할 수가 있다. 이때, 앞에서부터 열을 제거할 수도 있으나, 행렬 A의 뒤에서부터 또는 임의의 열에서 T=N(1-R)개의 열을 제거하도록 구성될 수도 있을 것이다.
복호화부(1440)는 복호화 행렬 결정부(1430)에서 결정한 불규칙 반복 다상 누산 코드 복호화 행렬을 이용하여, 상기 부호화 신호 수신부(1410)에서 수신된 불규칙 반복 다상 누산 코드 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화를 수행하여, 상기 불규칙 반복 다상 누산 코드 부호화 신호에 포함된 정보 비트열을 출력하는 구성요소이다.
한편, 복호화부(1440)의 구체적인 동작은 도 4 및 도 5를 통하여 설명된 복호화 방법을 수행하는 것으로 설명될 수 있으며, 이미 상술되었으므로 이하에서는 간략한 설명만을 하도록 한다.
즉, 복호화부(1440)는 상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며, 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.
이때, 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지게 된다. 따라서, 미리 주어진 반복 횟수만큼 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하고, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.
또한, 미리 설정된 반복 횟수의 한계치 이내에서 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하면서, 매 반복 마다 산출된 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하고, 복호화가 성공한 것으로 판단된 경우에는 반복을 중단하도록 구성될 수도 있다.
이때, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하는 것으로 설명될 수 있는데, 그 산출하는 과정은, 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및 k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하도록 구성될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
900: 부호화 장치 910: 정보 비트열 입력부
920: 부호화 행렬 저장부 930: 부호화 행렬 결정부
940: 부호화부

Claims (22)

  1. 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법으로서,
    제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 단계(a);
    상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 단계(b); 및
    상기 단계(b)에서 결정된 상기 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(c)를 포함하고,
    상기 단계(c)는
    부호화 대상이 되는 정보 비트열을 입력받는 단계(c-1);
    상기 불규칙 반복 다상 누산 코드 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계(c-2); 및
    상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계(c-3)를 포함하고,
    상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 단계(c-2) 내지 (c-3)를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 단계(c-4)를 포함한 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  2. 청구항 1에 있어서,
    상기 제1 부호화율은 상기 단계(b)에서 적용될 부호화율의 후보 중에서 가장 높은 부호화율인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  3. 청구항 1에 있어서,
    상기 단계(b)는
    상기 적용될 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용될 부호화율에 대응되도록 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하도록 구성되며,
    상기 적용될 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하도록 구성되는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  4. 청구항 1에 있어서,
    상기 단계(c-2)는,
    상기 선택된 입력 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력받아, 상기 입력받은 비트에 따라 현재 부호화 상태를 천이(transition)시키고, 상기 어느 하나의 비트를 입력받는 과정과 현재 부호화 상태의 천이 과정을 상기 입력 비트들의 숫자만큼 반복하여 마지막 반복에서 천이된 부호화 상태를 상기 부호화 상태로 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  5. 청구항 1에 있어서,
    상기 단계(c-3)는 상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  6. 청구항 5에 있어서,
    상기 미리 설정된 상태는 제 0 상태(zero state)인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 방법.
  7. 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치로서,
    부호화 대상이 되는 정보 비트열을 입력받는 정보 비트열 입력부;
    제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 구비하는 부호화 행렬 저장부;
    상기 부호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 적용될 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 부호화 행렬을 결정하는 부호화 행렬 결정부;
    상기 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 불규칙 반복 다상 누산 코드 부호화하여, 불규칙 반복 다상 누산 코드 부호어를 출력하는 부호화부를 포함하고,
    상기 부호화부는
    상기 부호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 부호화 상태 결정부;
    상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 패리티 비트 결정부; 및
    상기 i를 증가시켜 상기 불규칙 반복 다상 누산 코드 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 부호어 생성부를 포함하는 불규칙 반복 다상 누산 코드 부호화 장치.
  8. 청구항 7에 있어서,
    상기 제1 부호화율은 상기 적용될 부호화율의 후보 중에서 가장 높은 부호화율인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치.
  9. 청구항 7에 있어서,
    상기 부호화 행렬 결정부는,
    상기 적용될 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용될 부호화율에 대응되도록 상기 부호화 행렬 저장부에 저장된 기본 불규칙 반복 다상 누산 코드 부호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 결정하고,
    상기 적용될 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 부호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 부호화 행렬을 상기 불규칙 반복 다상 누산 코드 부호화 행렬로 사용하도록 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치.
  10. 청구항 7에 있어서,
    상기 부호화 상태 결정부는
    상기 부호화 상태를 나타내는 비트들을 저장하는 레지스터; 및
    상기 선택된 입력 비트들 중 입력되는 비트와 상기 부호화 상태를 나타내는 비트들 중 적어도 하나의 비트간의 배타적 논리합(XOR) 연산을 수행하는 연산부를 포함하고,
    상기 레지스터는 상기 부호화 상태 결정부에 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 상기 연산부에서 수행되는 연산 결과가 최상위 비트 자리로 입력되어 상기 부호화 상태를 나타내는 비트들을 갱신하는 순환 쉬프트 레지스터(Recursive Shift Register)인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치.
  11. 청구항 7에 있어서,
    상기 패리티 비트 결정부는
    상기 부호화 상태 결정부에서 결정한 최종 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치.
  12. 청구항 11에 있어서,
    상기 미리 설정된 상태는 제 0 상태(zero state)인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 부호화 장치.
  13. 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법으로서,
    제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하는 단계(a);
    정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(b); 및
    상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 상기 불규칙 반복 다상 누산 코드 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하고, 상기 결정된 불규칙 반복 다상 누산 코드 복호화 행렬에 따라 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(c)를 포함하고,
    상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(c)는,
    상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(c-1);
    상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(c-2);
    부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(c-3);
    새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(c-2) 및 상기 단계(c-3)를 수행함을 반복하는 단계(c-4); 및
    마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(c-5)를 포함하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법.
  14. 삭제
  15. 청구항 13에 있어서,
    상기 단계(c-3)는, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은,
    상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계; 및
    k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법.
  16. 청구항 13에 있어서,
    상기 제1 부호화율은 상기 단계(c)의 적용된 부호화율의 후보 중에서 가장 높은 부호화율인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법.
  17. 청구항 13에 있어서,
    상기 단계(c)에서
    상기 적용된 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용된 부호화율에 대응되도록 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하도록 구성되며,
    상기 적용된 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 사용하도록 결정하도록 구성되는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 방법.
  18. 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치로서,
    복호화 대상이 되는, 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 부호화 신호 수신부;
    제1 부호화율에 대응되고, 상기 불규칙 반복 다상 누산 코드 복호화를 실현하기 위한 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 구비하는 복호화 행렬 저장부;
    상기 복호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 상기 부호화 신호에 적용된 부호화율에 따라 선택하여 불규칙 반복 다상 누산 코드 복호화 행렬을 결정하는 복호화 행렬 결정부; 및
    상기 복호화 행렬 결정부에서 결정한 불규칙 반복 다상 누산 코드 복호화 행렬을 이용하여, 상기 부호화 신호 수신부에서 수신된 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화하여, 상기 부호화 신호에 포함된 정보 비트열을 출력하는 복호화부를 포함하며,
    상기 복호화부는,
    상기 불규칙 반복 다상 누산 코드 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며,
    상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여,
    마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치.
  19. 청구항 18에 있어서,
    상기 제1 부호화율은 상기 부호화 신호에 적용된 부호화율의 후보 중에서 가장 높은 부호화율인 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치.
  20. 청구항 18에 있어서,
    상기 복호화 행렬 결정부는,
    상기 적용된 부호화율이 상기 제1 부호화율보다 낮은 값일 경우, 상기 적용된 부호화율에 대응되도록 상기 복호화 행렬 저장부에 저장된 기본 불규칙 반복 다상 누산 코드 복호화 행렬의 일부를 제거(truncation)하고 남은 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 결정하고,
    상기 적용된 부호화율이 상기 제1 부호화율과 동일한 경우, 상기 복호화 행렬 저장부에 저장된 상기 기본 불규칙 반복 다상 누산 코드 복호화 행렬을 상기 불규칙 반복 다상 누산 코드 복호화 행렬로 사용하도록 결정하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치.
  21. 삭제
  22. 청구항 18에 있어서,
    상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은,
    i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되,
    상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하고, k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 것을 특징으로 하는 가변 부호화율 불규칙 반복 다상 누산 코드 복호화 장치.
KR1020120022695A 2012-03-06 2012-03-06 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 KR101267756B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120022695A KR101267756B1 (ko) 2012-03-06 2012-03-06 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120022695A KR101267756B1 (ko) 2012-03-06 2012-03-06 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR101267756B1 true KR101267756B1 (ko) 2013-05-24

Family

ID=48666901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120022695A KR101267756B1 (ko) 2012-03-06 2012-03-06 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR101267756B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10070441B2 (en) 2014-04-17 2018-09-04 Samsung Electronics Co., Ltd. Method and apparatus for generating codeword, and method and apparatus for recovering codeword

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016426A1 (en) * 2006-06-29 2008-01-17 Nec Laboratories America, Inc. Low-Complexity High-Performance Low-Rate Communications Codes
KR100881002B1 (ko) 2005-02-22 2009-02-03 삼성전자주식회사 통신 시스템에서 지그재그 코드를 이용한 저밀도 패리티 검사 부호 생성 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881002B1 (ko) 2005-02-22 2009-02-03 삼성전자주식회사 통신 시스템에서 지그재그 코드를 이용한 저밀도 패리티 검사 부호 생성 장치 및 방법
US20080016426A1 (en) * 2006-06-29 2008-01-17 Nec Laboratories America, Inc. Low-Complexity High-Performance Low-Rate Communications Codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10070441B2 (en) 2014-04-17 2018-09-04 Samsung Electronics Co., Ltd. Method and apparatus for generating codeword, and method and apparatus for recovering codeword

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
JP5354979B2 (ja) 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器
KR100594818B1 (ko) 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
US7962828B2 (en) Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
US7673223B2 (en) Node processors for use in parity check decoders
KR20050118056A (ko) 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
WO2006075417A1 (ja) 符号化方法、復号方法及びそれらの装置
KR20080033381A (ko) 검사 행렬 생성 방법, 부호화 방법, 복호 방법, 통신 장치,통신 시스템, 부호화기 및 복호기
CN105763203B (zh) 一种基于硬可靠度信息的多元ldpc码译码方法
JP2008501287A (ja) ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
US8103945B2 (en) Decoding method and decoding apparatus as well as program
WO2018179246A1 (en) Check bit concatenated polar codes
KR101147768B1 (ko) 채널 코드를 이용한 복호화 방법 및 장치
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
Liang et al. Raptor-like rateless spinal codes using outer systematic polar codes for reliable deep space communications
Wu et al. Polar codes for low-complexity forward error correction in optical access networks
CN111049527B (zh) 一种图像编码解码方法
JP2009201084A (ja) 符号化器及び送信装置
JP5523064B2 (ja) 復号装置及び方法
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR20110114204A (ko) 저밀도 패리티 체크 부호화 방법 및 이를 이용하는 저밀도 패리티 체크 인코더
KR101268061B1 (ko) 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법
KR101267654B1 (ko) 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101227328B1 (ko) 가변 부호화율 결합 상태 체크 코드 부호화 및 복호화 방법과 이를 위한 장치

Legal Events

Date Code Title Description
A201 Request for examination
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: 20160325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180411

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee