DAN lab./DAN lab. Master's 1 Summer

04-05. Channel Coding and Error Control

김야키 2021. 7. 19. 21:43


4.5 Convolutional Code


개념

  • 실제적인 통신 환경에서 가장 많이 사용되는 채널 코딩
    • GSM 혹은 IS-95등
  • 주로 실시간 오류 수정에 사용
  • Coding된 bit들은 현재의 k개의 입력 데이터 bit에게만 영향을 받을 뿐만 아닌 과거 입력 bit에게도 영향을 받음

Theorem

  • Convolutional code의 주된 decoding 방식으로는 Viterbi알고리즘에 근거됨
  • 구속장(Constraint Length) K는 아래와 같이 정의 됨
    $$
    K = M + 1
    $$
    • M은 생성 shift register에서 연산 단계의 최대 수를 표현
  • Shift register는 convolutional code의 상태 정보를 담고 있으며, constraint length에 따라 출력값이 영향을 받는 전/후의 비트 수가 정해짐
  • Convolutional code의 code ratio인 r은 다음과 같이 정의 됨
    $$
    r = \frac{k}{n}
    $$
    • k: 병렬 입력 정보의 bit 수
    • n: 하나의 시간 구간 동안에 병렬 출력 code bit 수
  • n=2, k=1, 즉 r이 1/2인 convolutional code의 coder를 다음과 같이 볼 수 있음 
    • 출력 bit는 입력 bit와 shift register에 들어 있는 두 개의 과거 bit(D로 표현된)로부터 정해짐

  • Convolutional code는 tree diagram이나 trellis diagram등 여러가지의 서로 다른, 그러나 상응한 방법으로 표현이 가능
  • 아래 그래프는 위의 coder의 state shift를 나타낸 것

  • 각각의 새로운 정보 bit는 한 상태(State)로부터 다른 상태로의 shift를 유발
  • 상태(D1 D2)들 간의 경로 정보는 출력 비트들(C1 C2)과 상응 하는 임력 데이터 bit(x)를 표현
    • Convolutional code는 모두 0인 상태에서 시작하는 것이 일반적임

이어서 작성 중...