KR20050055556A - 저전력 비터비 복호기 및 역추적 방법 - Google Patents

저전력 비터비 복호기 및 역추적 방법 Download PDF

Info

Publication number
KR20050055556A
KR20050055556A KR1020030088782A KR20030088782A KR20050055556A KR 20050055556 A KR20050055556 A KR 20050055556A KR 1020030088782 A KR1020030088782 A KR 1020030088782A KR 20030088782 A KR20030088782 A KR 20030088782A KR 20050055556 A KR20050055556 A KR 20050055556A
Authority
KR
South Korea
Prior art keywords
traceback
path
bit
backtracking
value
Prior art date
Application number
KR1020030088782A
Other languages
English (en)
Other versions
KR100564757B1 (ko
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 KR1020030088782A priority Critical patent/KR100564757B1/ko
Publication of KR20050055556A publication Critical patent/KR20050055556A/ko
Application granted granted Critical
Publication of KR100564757B1 publication Critical patent/KR100564757B1/ko

Links

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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

Landscapes

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

Abstract

본 발명은 저전력 비터비(Viterbi) 복호기 및 역추적 방법을 제공하기 위한 것이다. 본 발명에 따른 비터비 복호기는, 역추적 과정시 역추적 경로가 이전 역추적 경로와 동일한 경우 역추적 동작을 멈추고, 이전 역추적 과정시 저장시켰던 임시 복호 비트를 이용하여 복호하도록 구성한 것이다. 본 발명의 비터비 복호기와 역추적 방법에 따르면, 반복되는 동일한 경로의 역추적 과정을 줄이고 이전 역추적 과정에서의 데이터를 재사용함으로써 전력 소모를 낮출 수 있다.

Description

저전력 비터비 복호기 및 역추적 방법{Low power Viterbi decoder and trace-back method}
본 발명은 비터비 복호기에 관한 것으로서, 특히 가산-비교-선택부(Add-Compare-Select Unit : ACSU)에서 입력되는 생존 경로 선택 비트들을 이용하여 최종적인 생존자 경로를 찾아내 부호화된 정보를 복원해내는 역추적부(Trace-Back Unit : TBU)를 저전력으로 구현하는 비터비 복호기 및 역추적 방법에 관한 것이다.
채널 부호화는 일반적으로 메모리가 필요하지 않은 블록 부호화(block coding)와 메모리를 필요로 하는 길쌈 부호화(convolutional coding)로 나뉜다. 길쌈 부호화는 블록 부호화에 비해 오류 정정에 유리하기 때문에 디지털 통신 시스템에 자주 사용된다.
길쌈 부호화 알고리즘 중 하나인 비터비 알고리즘은 트렐리스 도(trellis diagram)의 여러 경로들 중 가장 유사성이 높은 경로를 탐색하여 길쌈 부호를 복호하는 최우 추정 복호(maximum likelihood decoding) 알고리즘이다. 비터비 복호기는 비터비 알고리즘을 이용하는 길쌈 부호 복호기이다.
도 1은 일반적인 비터비 복호기를 나타내는 블록도이다. 도 1에 도시한 바와 같이, 비터비 복호기는 가지 메트릭 계산부(Branch Metric calculation Unit : BMU)(100), 가산-비교-선택부(Add-Compare-Select Unit : ACSU)(101), 경로 메트릭 메모리(Path Metric Memory : PMM)(102) 및 역추적부(Trace-Back Unit : TBU)(103)로 구성된다.
가지 메트릭 계산부(100)는 비터비 복호기의 입력 데이터와 입력 데이터에 의한 트렐리스 도의 상태 천이 과정에서 발생되는 부호어와의 유클리드 거리(euclidean distance)를 의미하는 가지 메트릭을 계산하는 블록이다.
가산-비교-선택부(101)는 트렐리스 도의 각 상태에서 선택된 경로의 가지 메트릭의 누적합에 해당하는 경로 메트릭을 계산한다. 그리고 각 상태마다 연결되는 두 개의 경로 중 경로 메트릭이 적은 경로를 선택하고, 선택된 경로들에 대한 정보로서 생존 경로 선택 비트들을 출력한다. 또한 경로 메트릭들 중 가장 작은 값을 갖는 상태의 경로를 역추적 경로로 선택한다.
경로 메트릭 메모리(102)는 가산-비교-선택부(101)에서 계산된 각 상태의 경로 메트릭들을 저장하는 역할을 한다.
역추적부(103)는 가산-비교-선택부(101)로부터 입력되는 생존 경로 선택 비트들을 역추적 깊이(trace-back depth)만큼 저장해 놓고, 이를 이용하여 가산-비교-선택부(101)에서 선택된 최소 경로 메트릭을 갖는 상태의 이전 상태들을 역추적 하는 과정을 통하여 복호 비트를 출력한다.
도 2a와 도 2b는 비터비 복호기의 복호 과정을 설명하는 트렐리스 도의 예이다. 도 2a와 도 2b에서는 설명의 용이를 위해 구속장(constraint length) K가 3이고, 역추적 깊이를 4로 가정한다. 구속장이 3이므로, 트렐리스 도를 구성하는 상태 수는 2K-1 = 4개이며, 이는 S0 ~ S3에 해당한다. 실선은 O이 입력된 경우의, 점선은 1이 입력된 경우의 상태 천이를 각각 나타내며, 각 가지 위의 숫자는 상태 천이 과정에서 발생되는 부호어를, 각 가지 아래의 숫자는 가지 메트릭을 각각 나타낸다.
도 2a에 도시한 바와 같이, 초기 상태 S0에서 t0 시점에 수신 데이터 "11"이 입력되면, S0로 가는 가지의 부호어는 "00"이므로 수신 데이터 "11"과의 가지 메트릭은 2이고, S1으로 가는 가지의 부호어는 "11"이므로, 가지 메트릭은 0이다. t4 시점의 경우, S0 상태에는 "0"이 입력된 S0 상태와 "0"이 입력된 S2 상태의 가지가 연결되며, 가지 메트릭은 각각 0, 2이다. 이때 S0에서 오는 경로의 경로 메트릭은 3이고, S2에서 오는 경로의 경로 메트릭은 2이므로, t4 시점에서 S0의 생존 경로는 S2에서 오는 경로이고, 생존 경로 선택 비트는 S2의 상태값의 최상위 비트(MSB)인 "1"이다. 역추적 깊이가 4이므로 t4 시점에서부터 역추적을 하며, 이때 모든 상태들 중 S1이 최소 경로 메트릭을 가지므로, 초기 역추적 상태는 S1이다. 역추적 경로는 S1에 들어오는 경로이므로, 이 역추적 경로에 대응하는 비트 열은 "1011"이며, 최종 복호 비트는 마지막 비트인 "1"이다.
도 2b는 도 2a의 다음 역추적 과정을 나타내는 트렐리스 도이다. t5 시점에서 최소 경로 메트릭을 갖는 상태는 S2이므로, S2에서 역추적이 시작된다. 이 때의 역추적 경로는 도 3a의 역추적 경로와 t1 ~ t4 구간이 일치한다.
도 3은 도 2a와 도 2b의 각 상태에서 생존 경로를 선택하면서 결정된 생존 경로 선택 비트들이 메모리에 저장되는 과정을 나타낸다. t5 시점에서의 새 생존 경로 선택 비트들은 t4 시점에서의 역추적 경로의 마지막 가지에 해당되는 "00XX" 데이터의 위치인 0번지에 쓰여지게 되며, 역추적시 메모리에서 0 → 3 → 2 → 1 번지의 순서로 메모리 데이터를 읽어간다.
도 4a와 도 4b는 도 2a와 도 2b에 대응하는 비터비 복호기의 역추적 동작을 시간의 흐름에 따라 상세히 나타낸다. 여기서 t4,0 ~ t4,3은 t4와 t 5 사이의 시구간을 의미하고, t5,0 ~ t5,3은 t5와 t6 사이의 시구간을 의미한다.
도 4a에서 t4,0 시점에서 역추적 상태 레지스터의 값은 가산-비교-선택부(101)에서 계산되어진 최소 경로 메트릭을 갖는 상태값이며, 도 2a에서 S1의 상태값 "01"에 해당한다. 이때 경로 메트릭 메모리 주소는 가장 마지막에 쓰여진 3번지를 가리키며, 데이터 "1111"을 읽어오고, 역추적 상태 레지스터 값이 가리키는 2번째 (102) 비트 "1"이 오른쪽으로 1 비트 이동된 역추적 상태 레지스터 값의 MSB로 입력되어 t4,1 시점의 역추적 상태 레지스터 값이 된다. 이와 같은 역추적 과정이 역추적 깊이만큼 반복된 후, t4,3 시점에서의 역추적 상태 레지스터 값의 최하위 비트(LSB)인 "1"이 복호 비트로 출력된다. 도 4b는 t5와 t6 시구간에서 반복되는 역추적 과정을 나타내며, t5,3 시점에서 복호 비트 "1"을 출력한다.
도 4a와 도 4b를 비교해 보면, 도 4a에서의 t4,0 ~ t4,2 시구간의 역추적 과정에서의 데이터가 도 4b에서의 t5,1 ~ t5,3 시구간의 역추적 과정에서의 데이터와 동일함을 알 수 있으며, 이는 t5,1 ~ t5,3 시구간의 역추적 경로가 t4,0 ~ t 4,2 시구간의 역추적 경로와 동일하기 때문이다.
이와 같이 종래의 비터비 복호기는 매 수신 심볼이 입력될 때마다 역추적 과정을 역추적 깊이만큼 반복하기 때문에, 역추적 경로가 이전 역추적 경로와 동일한 경우에도 동일한 역추적 과정을 반복한다.
본 발명이 이루고자 하는 기술적 과제는 비터비 복호기에서 동일한 역추적 경로의 반복되는 역추적 과정을 줄여 소모 전력을 낮출 수 있는 비터비 복호기를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 소모 전력을 낮출 수 있는 역추적 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한, 본 발명에 따른 비터비 복호기는, 가지 메트릭 계산부, 가산-비교-선택부, 경로 메트릭 메모리 및 역추적부로 구성되며, 특히 상기 역추적부가 역추적 제어부, 생존 경로 선택 비트 메모리, 역추적 경로 추정부, 제1 다중화기, 예비 복호 비트 저장부, 역추적 경로 비교부, 및 제2 다중화기를 포함한다.
여기서, 상기 역추적 제어부는 메모리에 저장할 예비 복호 비트의 개수를 결정하는 기역추적 깊이 신호를 입력받으며, 상기 생존 경로 선택 비트 메모리, 역추적 경로 추정부, 예비 복호 비트 저장부 및 역추적 경로 비교부를 제어하게 구성할 수 있다. 상기 생존 경로 선택 비트 메모리는 상기 가산-비교-선택부에서 출력되는 생존 경로 선택 비트를 저장하며, 상기 역추적 경로 추정부는 상기 생존 경로 선택 비트 메모리의 출력 중 한 비트를 취하여 역추적 경로 상의 이전 상태값을 생성시키고, 역추적 상태값의 최하위 비트(LSB)에 해당하는 예비 복호 비트를 출력하며, 기존 역추적 과정에 의한 예비 복호 비트의 마지막 비트에 해당하는 역추적 복호 비트를 출력한다. 상기 제1 다중화기는 상기 생존 경로 선택 비트 메모리의 출력값 중 상기 역추적 경로 추정부로부터 입력되는 역추적 상태값이 지시하는 비트를 선택하여 출력하며, 상기 예비 복호 비트 저장부는 상기 역추적 경로 추정부로부터 예비 복호 비트를 입력받아 저장한다. 상기 역추적 경로 비교부는 매 역추적 과정마다 상기 예비 복호 비트가 처음 예비 복호 비트 메모리에 저장되는 역추적 시점에서 상기 역추적 경로 추정부의 역추적 상태값과 기역추적 포인터 값을 비교하여 종래의 역추적 과정을 계속 수행하여 복호 비트를 출력할 지, 또는 상기 예비 복호 비트 저장부에서 복호 비트를 출력할 지를 결정한다. 상기 제2 다중화기는 상기 역추적 경로 비교부의 비교 결과에 따라 상기 예비 복호 비트 저장부의 출력과 상기 역추적 경로 추정부의 역추적 복호 비트 출력 중 하나를 선택적으로 출력한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 역추적 방법은, 역추적 과정시 역추적 출력 데이터를 기역추적 깊이 입력 값만큼 저장하고, 기역추적 깊이에서의 역추적 경로가 이전 역추적 경로와 동일한 경우, 반복되는 역추적 과정을 줄이기 위해 역추적 동작을 멈추고, 이전 역추적 과정시 저장시켰던 역추적 출력 데이터를 이용하여 복호하는 방법이다.
본 발명에 의한 비터비 복호기 그리고 역추적 방법은 반복되는 동일한 경로의 역추적 과정을 줄이고 이전 역추적 과정의 데이터를 재사용함으로써 전력 소모를 낮출 수 있다.
본 발명의 목적과 더불어 그의 다른 목적 및 신규한 특징은, 본 명세서의 기재 및 첨부 도면에 의하여 명료해질 것이다.
이하 첨부한 도면에 의거하여 본 발명의 바람직한 실시예를 설명하도록 한다. 그러나, 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시예로 인해 한정되어지는 것으로 해석되어져서는 안된다. 본 발명의 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되어지는 것이다.
본 발명에 따른 비터비 복호기는 일반적인 비터비 복호기와 마찬가지로, 가지 메트릭 계산부(도 1의 100 참조), 가산-비교-선택부(도 1의 101 참조), 경로 메트릭 메모리(도 1의 102 참조) 및 역추적부로 구성되지만, 본 발명의 핵심 기술 사상을 달성하기 위해, 도 5에 도시한 바와 같은 역추적부(203)를 포함한다.
도 5를 참조하면, 기역추적 깊이 신호는 역추적 과정시 예비 복호 비트 저장부(210)에 저장할 역추적 출력 데이터의 양, 다시 말해 메모리에 저장할 예비 복호 비트의 개수를 결정하는 신호이며, 역추적 제어부(208)에 입력되어 역추적 동작시 참조된다.
역추적 제어부(208)는 생존 경로 선택 비트 메모리(207)의 읽기/쓰기, 주소 제어신호와, 역추적 경로 추정부(205), 예비 복호 비트 저장부(210) 및 역추적 경로 비교부(211)에 필요한 제어신호들을 생성한다.
가산-비교-선택부(101)에서 출력되는 최소 경로 메트릭 상태값은 역추적 경로 추정부(205)로 입력되어 역추적 초기 상태값이 되고, 생존 경로 선택 비트는 생존 경로 선택 비트 메모리(207)에 입력되어 역추적 경로 추정부(205)에서 역추적 경로 추정시 이전 상태값의 MSB가 된다.
제1 다중화기(209)는 생존 경로 선택 비트 메모리(207)의 출력값 중 역추적 경로 추정부(205)로부터 입력되는 역추적 상태 신호값이 지시하는 비트를 선택하여 출력한다.
역추적 경로 추정부(205)는 역추적 상태값을 제1 다중화기(209)로 전달하여 제1 다중화기(209)가 생존 경로 선택 비트 메모리(207) 출력에서 역추적 상태값이 지시하는 한 비트를 선택하여 출력하도록 하고, 제1 다중화기(209)의 출력 비트를 입력받아 역추적 경로 상의 이전 상태값을 생성시키고, 역추적 상태값의 LSB에 해당하는 예비 복호 비트를 출력하며, 기존 역추적 과정에 의한 역추적 복호 비트를 출력한다.
예비 복호 비트 저장부(210)는 역추적 깊이만큼의 비트 데이터를 저장 가능한 크기를 가지는 예비 복호 비트 메모리를 포함하고, 역추적 경로 추정부(205)에서 출력되는 예비 복호 비트를 기역추적 깊이만큼 예비 복호 비트 메모리에 저장한다. 예비 복호 비트 메모리는, 예비 복호 비트를 임의의 비트 위치에 저장 가능하고, 저장되어 있는 값을 오른쪽 1-비트 이동 가능한 특징을 가지며, 역추적 복호 비트 이전의 최근 생성된 예비 복호 비트를 기역추적 깊이 신호값 길이만큼 저장한다.
역추적 경로 비교부(211)는 그 내부에서 기역추적 깊이 신호값 길이만큼 저장되는 예비 복호 비트들 중 첫 번째 값을 생성시키는 역추적 상태값을 저장하는 역추적 포인터, 복호 비트가 출력된 후 새 역추적을 시작할 때 역추적 포인터의 값을 저장하는 기역추적 포인터, 및 역추적 경로와 기역추적 경로가 일치하는지를 판단하기 위해 매 역추적 과정마다 상기 예비 복호 비트가 처음 예비 복호 비트 메모리에 저장되는 역추적 시점에서 역추적 상태값과 기역추적 포인터 값을 비교하여 비교 결과를 출력하는 수단을 포함한다. 상기 비교시 역추적 상태값과 기역추적 포인터 값이 동일한 경우, 이는 현재의 역추적 경로와 기역추적 경로가 동일함을 의미하므로, 역추적 경로 추정부(205)의 역추적 동작을 중단시키고, 제2 다중화기(212)가 예비 복호 비트 저장부(210)로부터의 입력 비트를 복호 비트로 출력시키도록 한다. 이와 반대로 역추적 상태값과 기역추적 포인터 값이 다를 경우, 이는 현재의 역추적 경로와 기역추적 경로가 상이함을 의미하므로, 역추적 경로 추정부(205)의 역추적 동작을 기존과 같이 계속하여 출력된 역추적 복호 비트를 제2 다중화기(212)가 복호 비트로 출력시키도록 한다.
제2 다중화기(212)는 역추적 경로 비교부(211)의 비교 결과에 따라 상기와 같이 예비 복호 비트 저장부(210)의 출력과 역추적 경로 추정부(205)의 역추적 복호 비트 출력 중 하나를 선택적으로 출력한다.
도 6a와 도 6b는 도 5의 비터비 복호기의 역추적 동작을 자세히 설명하는 도면으로서, 도 2a 및 도 2b의 트렐리스 도에 대응하는 비터비 복호기의 동작을 나타낸다. 구속장을 K라 할 때, 역추적 깊이 L은 통상 4K ~ 5K 정도로 설정한다. 그러나, 도 6a와 도 6b에서는 용이한 설명을 위해 기역추적 깊이, M을 2로 설정한다. 기역추적 깊이 신호값은 1 ~ L-1의 범위를 가질 수 있는 가변 값이다.
도 6a는 도 5의 비터비 복호기의 역추적 경로가 기역추적 경로와 일치하지 않는 경우의 동작을 나타낸다. t4,0 시점에서 역추적 초기 상태값은 S1의 상태값, "01"이며, 생존 경로 선택 비트 메모리의 3번지 데이터인 "1111"의 1번째 비트인 "1"을 MSB로 취하여 t4,1의 역추적 상태는 "10"이 된다. 기역추적 깊이가 2이므로 L-M = 4-2 = 2 번째 역추적 상태가 역추적 포인터에 저장된다. 역추적 포인터는 기역추적 깊이, M만큼 저장되는 경로의 역추적 초기 상태값이며, 역추적 과정이 끝나면 역추적 포인터 값은 기역추적 포인터에 저장되고, 새로 시작된 역추적 과정에 대한 역추적 포인터 값을 저장한다. 이 때, 역추적 시 L-M+1 = 3번째 역추적 상태값이 기역추적 포인터 값과 동일하면 현재의 역추적 경로가 메모리에 저장된 M 길이의 이전 역추적 경로와 일치하는 것으로 판단한다.
도 6a에서는 기역추적 포인터가 t4,2 시점에서의 역추적 상태와 다르므로, 현재의 역추적 경로는 기역추적 경로와 일치하지 않는다. 이 경우 역추적 과정은 종래의 방식과 동일하게 진행되고, L-M번째부터 복호 비트가 출력되기 전까지의 예비 복호 비트는 예비 복호 비트 메모리의 M 비트를 상위 비트 위치부터 순서대로 저장된다. 복호 비트는 역추적 과정이 끝나는 t4,3 시점의 역추적 상태값의 LSB인 "1"이다.
도 6b는 도 5의 비터비 복호기의 역추적 경로가 기역추적 경로와 일치하는 경우의 동작을 나타내며, 도 6a의 다음 역추적 동작을 나타낸다. 도 6b에서는 도 2b와 동일하게 t5 시점에서 S2 상태가 역추적 초기 상태이고, 기역추적 포인터에는 이전 역추적 과정의 역추적 포인터 값인 "10"이 저장되어 있다. t5,1 시점에서 역추적 상태값은 역추적 포인터에 저장된다. t5,2 시점에서 역추적 상태값과 기역추적 포인터 값이 동일하므로, 도 6b에서와 같이 종래의 역추적 과정을 중단하고, 예비 복호 비트 메모리 값이 오른쪽으로 1-비트 이동되어 복호 비트 "1"을 출력하고, 예비 복호 비트 "1"이 예비 복호 비트 메모리의 M번째 위치에 새로 입력된다.
이상과 같은 본 발명에 의한 비터비 복호기의 역추적 동작을 요약하면 역추적 시 기역추적 깊이, M 길이의 예비 복호 비트를 예비 복호 비트 메모리에 저장해 놓고, 역추적 과정을 수행 중 기역추적 깊이에서 역추적 상태값이 기역추적 포인터 값과 일치할 경우, 도 6b와 같이 종래의 역추적 과정을 중단하고, 저장되어 있는 예비 복호 비트를 이용하여 복호 비트를 출력한다. 그러나 기역추적 깊이에서 역추적 상태값이 기역추적 포인터 값과 일치하지 않는 경우에는 도 6a와 같이 예비 복호 비트를 메모리에 저장하면서 통상의 방식처럼 역추적 과정을 수행하여 복호 비트를 출력한다.
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당분야에서 통상의 지식을 가진 자에 의하여 여러 가지 많은 변형이 가능함은 명백하다.
상기와 같이 이루어지는 본 발명은, 역추적 시 기역추적 깊이, M 길이의 예비 복호 값을 메모리에 저장해 놓고, 역추적 과정을 수행 중 기역추적 깊이에서 역추적 상태값이 기역추적 포인터 값과 일치할 경우, 종래의 역추적 과정을 중단하고 저장되어 있는 예비 복호 비트를 이용하여 복호 비트를 출력한다. 이와 같이, 불필요하게 반복되는 역추적 과정을 줄임으로써 소비 전력을 줄일 수 있는 장점이 있다.
도 1은 일반적인 비터비 복호기를 나타내는 블록도이다.
도 2a와 도 2b는 구속장 K가 3이고, 역추적 깊이가 4인 트렐리스 도의 예이며, 도 2b는 도 2a의 다음 역추적 과정을 보여준다.
도 3은 도 2a와 도 2b에서의 생존 경로 선택값이 메모리에 저장되는 과정을 나타내는 도면이다.
도 4a와 도 4b는 도 2a와 도 2b의 역추적 동작을 시간의 흐름에 따라 상세히 설명하기 위한 도면이다.
도 5는 본 발명에 따른 비터비 복호기의 역추적부에 대한 블록도이다.
도 6a와 도 6b는 본 발명에 따른 비터비 복호기의 역추적 방법을 세부적으로 나타내는 도면이다.

Claims (6)

  1. 가지 메트릭 계산부, 가산-비교-선택부, 경로 메트릭 메모리 및 역추적부로 구성된 비터비 복호기에 있어서, 상기 역추적부는,
    메모리에 저장할 예비 복호 비트의 개수를 결정하는 기역추적 깊이 신호를 입력받는 역추적 제어부;
    상기 가산-비교-선택부에서 출력되는 생존 경로 선택 비트를 저장하는 생존 경로 선택 비트 메모리;
    상기 생존 경로 선택 비트 메모리의 출력 중 한 비트를 취하여 역추적 경로 상의 이전 상태값을 생성시키고, 역추적 상태값의 최하위 비트(LSB)에 해당하는 예비 복호 비트를 출력하며, 예비 복호 비트의 마지막 비트에 해당하는 역추적 복호 비트를 출력하는 역추적 경로 추정부;
    상기 생존 경로 선택 비트 메모리의 출력값 중 상기 역추적 경로 추정부로부터 입력되는 역추적 상태값이 지시하는 위치의 비트를 선택하여 출력하는 제1 다중화기;
    상기 역추적 경로 추정부로부터 예비 복호 비트를 입력받아 저장하는 예비 복호 비트 저장부;
    매 역추적 과정마다 상기 예비 복호 비트가 처음 예비 복호 비트 메모리에 저장되는 역추적 시점에서 상기 역추적 경로 추정부의 역추적 상태값과 기역추적 포인터 값을 비교하여 종래의 역추적 과정을 계속 수행하여 복호 비트를 출력할 지, 또는 상기 예비 복호 비트 저장부에서 복호 비트를 출력할 지를 결정하는 역추적 경로 비교부; 및
    상기 역추적 경로 비교부의 비교 결과에 따라 상기 예비 복호 비트 저장부의 출력과 상기 역추적 경로 추정부의 역추적 복호 비트 출력 중 하나를 선택적으로 출력하는 제2 다중화기를 포함하는 것을 특징으로 하는 비터비 복호기.
  2. 제 1 항에 있어서, 상기 역추적 경로 비교부의 역추적 경로 비교 결과 신호에 따라, 역추적 경로와 기역추적 경로가 일치하는 경우에는 역추적 과정을 중단하고 상기 예비 복호 비트 메모리 값의 LSB를 복호 비트로 출력하고, 역추적 경로와 기역추적 경로가 일치하지 않는 경우에는 역추적 과정을 역추적 깊이만큼 반복하여 마지막 예비 복호 비트를 복호 비트로 출력하는 것을 특징으로 하는 비터비 복호기.
  3. 제 1 항에 있어서, 상기 역추적 경로 비교부는,
    상기 역추적 경로 비교부 내에서 기역추적 깊이 신호값 길이만큼 저장되는 예비 복호 비트들 중 첫 번째 값을 생성시키는 역추적 상태값을 저장하는 역추적 포인터;
    상기 역추적 경로 비교부 내에서 복호 비트가 출력된 후, 새 역추적을 시작할 때, 역추적 포인터의 값을 저장하는 기역추적 포인터; 및
    역추적 경로와 기역추적 경로가 일치하는지를 판단하기 위해 상기 기역추적 깊이 길이만큼 저장되는 예비 복호 비트들 중 첫 번째 예비 복호 비트가 저장되는 시점에서 역추적 상태값과 기역추적 포인터 값을 비교하여 비교 결과를 출력하는 수단을 포함하도록 구현된 것을 특징으로 하는 비터비 복호기.
  4. 제 1 항에 있어서, 상기 예비 복호 비트 저장부는,
    역추적 깊이만큼의 비트 데이터를 저장 가능한 크기를 가지는 예비 복호 비트 메모리를 포함하고,
    상기 예비 복호 비트 메모리는, 예비 복호 비트를 임의의 비트 위치에 저장 가능하고, 저장되어 있는 값을 오른쪽 1-비트 이동 가능하며, 기역추적 깊이 신호값 길이만큼 예비 복호 비트를 저장하는 것을 특징으로 하는 비터비 복호기.
  5. 제 1 항에 있어서, 상기 역추적 제어부는 상기 생존 경로 선택 비트 메모리, 역추적 경로 추정부, 예비 복호 비트 저장부 및 역추적 경로 비교부를 제어하는 것을 특징으로 하는 비터비 복호기.
  6. 역추적 과정시 역추적 출력 데이터를 기역추적 깊이 신호값 길이만큼 저장하고, 기역추적 깊이에서의 역추적 경로가 이전 역추적 경로와 동일한 경우, 반복되는 역추적 과정을 줄이기 위해 역추적 동작을 멈추고, 이전 역추적 과정시 저장시켰던 예비 복호 비트들을 이용하여 복호하는 비터비 복호기의 역추적 방법.
KR1020030088782A 2003-12-08 2003-12-08 저전력 비터비 복호기 및 역추적 방법 KR100564757B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030088782A KR100564757B1 (ko) 2003-12-08 2003-12-08 저전력 비터비 복호기 및 역추적 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030088782A KR100564757B1 (ko) 2003-12-08 2003-12-08 저전력 비터비 복호기 및 역추적 방법

Publications (2)

Publication Number Publication Date
KR20050055556A true KR20050055556A (ko) 2005-06-13
KR100564757B1 KR100564757B1 (ko) 2006-03-27

Family

ID=37250512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030088782A KR100564757B1 (ko) 2003-12-08 2003-12-08 저전력 비터비 복호기 및 역추적 방법

Country Status (1)

Country Link
KR (1) KR100564757B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100653233B1 (ko) * 2005-12-09 2006-12-05 한국전자통신연구원 비터비 복호기
KR101107428B1 (ko) * 2009-10-23 2012-01-19 성균관대학교산학협력단 소프트 에러에 강한 시간적 티엠알 비터비 디코더 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100653233B1 (ko) * 2005-12-09 2006-12-05 한국전자통신연구원 비터비 복호기
KR101107428B1 (ko) * 2009-10-23 2012-01-19 성균관대학교산학협력단 소프트 에러에 강한 시간적 티엠알 비터비 디코더 장치

Also Published As

Publication number Publication date
KR100564757B1 (ko) 2006-03-27

Similar Documents

Publication Publication Date Title
KR100580160B1 (ko) 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
US5802116A (en) Soft decision Viterbi decoding with large constraint lengths
US4583078A (en) Serial Viterbi decoder
JP3900637B2 (ja) ビタビ復号装置
US7765459B2 (en) Viterbi decoder and viterbi decoding method
KR19990078237A (ko) 비터비 알고리즘을 구현하는 가산 비교 선택 회로 및 방법
JP3233847B2 (ja) ビタビ復号方法及びビタビ復号回路
CN100499379C (zh) 一种卷积码译码方法
GB2315001A (en) Viterbi decoder for depunctured codes
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
KR100564757B1 (ko) 저전력 비터비 복호기 및 역추적 방법
US8489972B2 (en) Decoding method and decoding device
CN108471341B (zh) 一种卷积编解码的方法
US20070201586A1 (en) Multi-rate viterbi decoder
CN108768412B (zh) 一种低延时Viterbi译码方法及系统
US20040064781A1 (en) Viterbi decoder and Viterbi decoding method
WO1997013327A1 (en) Viterbi co-processor and method of operation therefor
KR100262303B1 (ko) 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치
WO2003056708A1 (en) Trellis decoding with forward and backward iterations
KR100324066B1 (ko) 비터비 복호기
JP5370487B2 (ja) 復号方法および復号装置
KR100491016B1 (ko) 역방향 상태 천이의 연속적 제어에 의한 역추적 비터비복호기 및 그 방법
JP3235333B2 (ja) ビタビ復号方法およびビタビ復号化装置
JP2001186025A (ja) ビタビ復号装置
KR0183115B1 (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: 20100226

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee