KR19990016432A - 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법 및 그 장치 - Google Patents

비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법 및 그 장치 Download PDF

Info

Publication number
KR19990016432A
KR19990016432A KR1019970038963A KR19970038963A KR19990016432A KR 19990016432 A KR19990016432 A KR 19990016432A KR 1019970038963 A KR1019970038963 A KR 1019970038963A KR 19970038963 A KR19970038963 A KR 19970038963A KR 19990016432 A KR19990016432 A KR 19990016432A
Authority
KR
South Korea
Prior art keywords
survival path
memory
information
backtracking
traceback
Prior art date
Application number
KR1019970038963A
Other languages
English (en)
Other versions
KR100262303B1 (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 KR1019970038963A priority Critical patent/KR100262303B1/ko
Publication of KR19990016432A publication Critical patent/KR19990016432A/ko
Application granted granted Critical
Publication of KR100262303B1 publication Critical patent/KR100262303B1/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/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

본 발명은 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법 및 그 장치에 관한 것으로서, 특히, 이전 생존 경로를 저장하는 작은 크기의 별도의 메모리를 도입하여 역추적메모리의 액서스 횟수를 줄일 수 있는 생존 경로 역추적 방법 및 그 장치에 관한 것이다. 본 발명에서는 별도의 생존경로메모리를 사용하여 역추적메모리의 액서스 횟수를 획기적으로 줄일 수 있으므로 복호 시간이 단축될 뿐만 아니라, 역추적메모리의 관리 측면에서도 전력 소비를 감소시킨다.

Description

비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법 및 그 장치
본 발명은 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법 및 그 장치에 관한 것으로서, 특히, 이전 생존 경로를 저장하는 별도의 메모리를 도입하여 역추적메모리의 액서스 횟수를 줄일 수 있는 생존 경로 역추적 방법 및 그 장치에 관한 것이다.
통신 시스템에서 데이터의 전송시 기상의 변화, 비선형 감쇄, 그리고 간섭 요인 등과 같은 통신 채널 환경에 따른 비트 오류의 발생으로부터 데이터를 보호할 필요가 있다. 특히 이동국에서는 낮은 출력으로 통신하기 때문에 신뢰성있는 오류 정정이 가능한 부호화 및 복호화 알고리즘의 적용이 필요하다. CDMA 방식의 시스템에서는 데이터의 부호화를 위하여 오류 정정 기능이 뛰어난 부호인 길쌈 부호(convolutional code)를 사용하고 있으며, 데이터의 신뢰성있는 복호화를 위하여 비터비 알고리즘(Viterbi algorithm)을 채택하고 있다.
본 발명은 비터비 알고리즘을 적용한 복호화 과정시 큰 비중을 차지하는 역추적 방법 및 그 장치에 관한 것이다.
먼저, 비터비 알고리즘을 적용한 복호 과정을 설명하기 위하여, 비터비 복호기를 설명한다. 잡음이 포함되어 전송받은 부호어들은 다음의 도1과 같은 비터비 복호기에 의하여 복호된다. 도1은 일반적인 비터비 복호기의 블록 구성도이다.
복조기(demodulator)로부터 전달되는 데이터를 입력부(10)의 메모리에 저장하고, 이 데이터를 이용하여 복호부(20)에서 비터비 알고리즘을 적용하여 실질적인 복호를 수행한다. BM부(21)는 입력부(10)의 부호어와 각 가지(branch)의 부호어와의 유클리드 거리를 계산하여 가지값(Branch Metric, BM)을 구한다. ACS부(22)는 확률이 높은 경로를 선택하고 상태메모리(State Metric Memory, SMM)(24)의 각 상태값(State Metric, SM)을 갱신한다. TB부(23)는 ACS부(22)의 선택 정보를 저장하고, 일정 시간이 경과하면 송신한 원래 경로와 같을 확률이 높은 경로를 역추적하여 복호한다. 복호된 데이터는 출력부(20)를 통하여 외부로 전달된다.
상기한 복호부(20)는 비터비 알고리즘을 적용한 복호를 수행하기 위하여, 상태메모리(SMM)(24)과 TB부(23)의 역추적메모리(Trace Back Memory, 25)의 두 메모리들을 포함하고 있다. 이러한 두 메모리들은 생존 경로의 정보를 시간의 흐름에 따라서 저장하고 갱신해 나간다.
도2는 일반적인 비터비 복호기에 사용되는 상태메모리와 역추적메모리의 구조를 설명하는 도면이다.
도2a에 도시된 바와 같이, 상태메모리는 2K-1×N의 크기를 갖는다. 여기에서 K는 구속장(costraint length)으로 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수, 또는 길쌈 부호기를 구성하는 레지스터의 수로 정의되며, 2K-1의 상태가 존재한다. N은 상태값(State Metric)을 저장할 때 연산오류(overflow)가 발생하지 않을 만큼의 비트수이다. 상태메모리에 저장하는 상태값은 확률이 높은 경로를 선택하기 위하여 사용되는 오류의 누적값이다.
도2b에 도시된 바와 같이, 역추적메모리는 2K-1×D×1 크기의 삼차원적 구조를 가진다. 여기서 D는 역추적메모리의 길이이다. 역추적메모리는 일반적으로 D 시간 동안의 시간의 흐름에 따라서, 각 단계별로 2K-1개의 모든 상태에 대한 생존 경로에 대한 정보를 저장한다. 역추적메모리에 저장되는 생존 경로의 정보는 확률이 높은 경로를 선택한 각 상태에서의 선택 정보이다.
먼저, 비터비 알고리즘을 설명한다. 도3은 구속장(K)이 3일 때, 비터비 알고리즘을 설명하기 위한 격자도이다.
구속장(K)가 K일 때, 2K-1개의 상태가 존재하여 K가 커지면 상태의 수가 급격히 늘어서 설명하기가 어려우므로, 본 명세서에서는 K가 3인 경우를 예를 들어서 설명한다. K가 3인 경우 도3에 도시된 바와 같이, a=00, b=10, c=01, d=11의 4가지 상태가 존재한다.
격자도에서 모든 가지마다 가지값이 계산된다. 각 가지는 상태 천이를 나타내고 있으며, 각 가지값은 수신된 부호어와 상태 천이에 따라서 발생하는 부호어와의 유클리드 거리를 구한 값이다. 이 과정은 잡음이 포함된 수신 부호어와의 유사성을 보여주는 것으로 도2에 도시된 비터비 복호기의 BM부(21)에서 계산된다. 그리고, 격자도에서 모든 노드마다 상태값이 계산되어 갱신된다. 각 노드는 길쌈 부호기에 의하여 부호화될 때 발생되는 상태를 나타내고 있으며, 각 점의 상태값은 이전 상태의 상태값과 상태 천이에 따라 발생하는 가지값을 더하여 누적한 값이다. 즉, 2개의 상태 천이 가능성 중에서 각각의 누적한 값을 비교하여 적은 값의 상태 천이를 선택하여 그 누적한 값으로 갱신한다. 이 때 선택한 정보와 각 단계마다의 최소 상태값을 갖는 최소 상태(minimum state)는 TB부(23)로 전달한다. 이 과정은 송신한 경로와의 유사성을 파악하기 위하여 이전 상태값과 가지값을 더하고(Add), 2개의 누적된 상태값을 비교하고(Compare), 누적된 상태값 중에서 적은 쪽을 선택한다(Select)는 의미의 ACS(Add-Compare-Select)를 수행하는 것으로 비터비 복호기의 ACS부(22)에서 수행된다. TB부(23)로 전달된 생존 경로에 대한 선택 정보와 최소 상태는 생존 경로를 찾기 위하여 이전 상태를 구하는 역추적 과정에서 사용되며 역추적을 통하여 복호가 이루어진다.
이제 비터비 알고리즘을 적용한 복호 과정에서의 생존 경로의 역추적을 설명한다. 역추적은 생존 경로의 정보를 이용하여 시간을 거슬로 올라가면서 수행되며, 송신한 원래의 경로와 같은 확률이 가장 높은 생존 경로를 찾는 것이다. 역추적 과정은 먼저, ACS부(23)로부터 전달받은 최소 상태(minimum state)를 역추적메모리의 초기 주소로 하여 생존 경로 정보를 읽는 것으로부터 시작된다. 초기 주소를 이용하여 이전 시간의 상태를 구하면, 이전 시간의 상태가 다시 역추적 메모리의 주소가 되고, 이러한 과정을 반복하면서 D 길이만큼 역추적하면 비로서 한 비트가 복호된다.
최초 한 비트를 복호한 다음에는 최초로 역추적한 D 단계의 다음 단계인 D+1 단계에서의 각 상태의 생존 경로의 정보를 저장한다. 이 때, 2K-1×D×1 크기의 역추적메모리는 순환 큐(circular queue)의 구조로 가정하여, D 단계 다음 단계인 D+1 단계의 각 상태의 생존 경로의 정보는 역추적메모리의 처음 위치인 단계 1의 위치에 저장된다. 처음 위치인 단계 1의 위치의 정보는 이미 한 비트를 복호하여 필요가 없기 때문에 다음 단계인 D+1의 새로운 생존 경로 정보를 처음 위치인 단계 1의 위치에 저장한다. 새로운 생존 경로 정보가 저장된 후, 새로 저장된 단계로부터 D 길이를 역추적하여 새로운 한 비트를 복호한다. 그 다음에는 다음 단계의 새로운 생존 경로 정보를 저장하고, 새로 저장된 단계로부터 D 길이를 역추적하여 새로운 한 비트를 복호하는 과정을 반복한다.
따라서, 역추정메모리에 처음 D 단계 동안의 정보가 저장된 후, 비로소 생존 경로의 역추적에 의한 1비트 씩의 복호가 시작되고, 그 다음부터는 매 시간마다 새로운 생존 경로 정보를 저장하고, D 길이를 복호하여 한 비트씩 복호하는 과정을 반복한다.
한편, 비터비 알고리즘에 의한 부호화 과정에서, 임의의 상태에서 다음 단계의 상태로의 천이가 가질 수 있는 경우의 수는 두가지이고, 상태의 처음 출발점은 '0'이므로, 예를 들어, 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수가 K일 때(상태의 수가 2K-1개 일 때), 처음 K-1 단계 동안의 생존 경로는 굳이 역추적을 수행하지 않고서도 알 수 있다. 따라서, D가 아닌, D+(K-1)의 단계가 경과한 후에 비로소 역추적을 시작하고 그 후 매시간 새로운 생존 경로를 저장하고, D 길이의 역추적을 수행하는 하여 한 비트씩 복호하는 방식이 제안되었다.
도4은 비터비 알고리즘을 적용한 복호 과정에서의 생존 경로 역추적을 설명하는 도면이다.
도4에 도시된 바와 같이, 처음의 역추적은 역추적메모리에 D+(K-1) 단계에 대한 생존 경로 정보가 저장된 후에 시작된다. 역추적메모리의 길이는 D이고, 순환 큐의 구조를 가지므로, 도4에 도시된 바와 같이, D 단계까지의 생존 경로 정보를 저장한 후에는 처음 위치로 돌아가서 K-1 위치까지 D+(K-1) 단계까지의 생존 경로 정보를 저장한다. 이 후 순환 큐 구조를 이용하여, K-1 위치로부터 D 길이의 역추적을 수행하여 1비트를 복호한다. 특히, 도4b는 순환 큐의 구조를 가지는 역추적메모리에서의 역추적 시작 시점과 D 길이의 역추적을 보여준다.
그러나, 상기한 종래의 일반적인 역추적 방식은 1비트를 복호할 때마다 D 길이의 역추적을 수행하여야 하므로, 역추적메모리의 액서스가 빈번하여 전체 복호 시간에 영향을 미친다. 통상적으로 이전에 역추적된 생존 경로와 현재 역추적된 생존 경로가 유사한 경우가 많으므로, 이러한 특성을 고려하지 않고 D 길이의 역추적을 수행하는 것은 비효율적이다.
따라서, 이전에 역추적된 생존 경로와 현재 역추적된 생존 경로에서 생존 경로가 유사하다는 특성을 고려하고, 역추적메모리의 액서스 횟수를 줄이면서 효율적으로 복호할 수 있는 방법 및 그 장치가 필요하다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, 이전에 역추적된 생존 경로와 현재 역추적된 생존 경로에서 생존 경로가 유사하다는 특성을 고려하여 중복되는 생존 경로에서는 역추적을 중단하고 이전에 역추적된 생존 경로를 이용함에 의하여 역추적메모리의 액서스 횟수를 줄이면서 효율적으로 복호할 수 있는 방법 및 그 장치를 제공하는데 있다.
도1은 일반적인 비터비 복호기의 블록 구성도,
도2는 일반적인 비터비 복호기에 사용되는 상태메모리와 역추적메모리의 구조를 설명하는 도면,
도3은 구속장(K)이 3일 때, 비터비 알고리즘을 설명하기 위한 격자도,
도4은 비터비 알고리즘을 적용한 복호 과정에서의 생존 경로 역추적을 설명하는 도면,
도5는 이전 생존 경로와 현재 생존 경로의 두 생존 경로가 일치하는 것을 설명하기 위한 예시도,
도6은 본 발명의 일실시예에 의한 생존 경로 역추적 장치의 블록 구성도,
도7은 본 발명의 또 다른 실시예에 의한 생존 경로 역추적 장치의 블록 구성도.
도면의 주요한 부분에 대한 부호의 설명
60, 70 : 역추적메모리 61, 71 : 생존경로메모리
62, 72 : 역추적상태 레지스터 63, 73 : 생존경로상태 레지스터
64, 74 : 비교기 65, 75 : 제어기
76 : 병렬/직렬 변환기 77 : 직렬/병렬 변환기
상기한 목적을 달성하기 위하여, 본 발명에 의한 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법은, 초기의 역추적을 수행하여 얻은 생존 경로 정보에 대하여, 역추적 과정에서 읽어온 역추적 메모리의 정보를 이전 생존 경로로서 저장하는 단계; 상기한 단계의 역추적 결과로 1비트를 복호한 후, 한 단계의 새로운 생존 경로의 정보를 저장하는 단계; 다음 역추적의 수행시 상기 단계에서 저장된 한 단계의 새로운 생존 경로의 역추적을 수행한 후, 그 다음 단계에서 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 상기한 단계에서 저장된 이전 생존 경로의 정보를 비교하는 단계; 상기한 단계에서 비교한 결과 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 저장된 이전 생존 경로의 정보가 다를 경우, 그 다음 단계의 역추적을 수행하는 단계; 상기한 단계에서 비교한 결과, 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 저장된 이전 생존 경로의 정보를 비교하여 동일하면 해당 단계 이후의 역추적을 수행하지 않고 해당 단계 이후의 생존 경로에 대하여는 저장된 이전 생존 경로의 정보를 이용하여 바로 복호하는 단계; 및 다음의 역추적을 위하여 이전 생존 경로의 정보를 현재 생존 경로의 정보로 갱신하는 단계를 포함하는 것임을 특징으로 한다.
상기한 본 발명의 목적을 달성하기 위하여, 본 발명에 의한 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치는, 모든 상태에 대하여 각 상태에 대한 생존 경로를 저장하는 역추적메모리; 이전의 역추적 결과 얻어졌던 이전 생존 경로의 정보를 저장하는 생존경로메모리; 상기 역추적메모리를 단계별로 액서스하여 얻어지는 현재 생존 경로의 정보를 저장하는 역추적상태 레지스터; 상기 생존경로메모리를 상기 역추적메모리를 액서스하는 동일한 단계대로 액서스하여 얻어지는 이전 생존 경로의 정보를 저장하는 생존경로상태 레지스터; 단계별로 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보를 비교하는 비교기; 및 상기 비교기에 의한 비교 결과 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보가 동일하면, 그 단계 이후의 역추적을 수행하지 않고 해당 단계 이후의 생존 경로에 대하여는 저장된 이전 생존 경로의 정보를 이용하여 바로 복호하게 하고, 그렇지 않은 경우에는 다음 단계의 역추적을 계속 수행하도록 하는 제어기를 포함하는 것임을 특징으로 한다.
상기한 본 발명에 의한 생존 경로 역추적 장치에서, 상기 역추적메모리의 크기가 2K-1×D일 때, 상기 생존경로메모리는 1×D의 크기를 가지는 1비트 메모리로 구성될 수 있다. 여기서, K는 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수이고, 상태의 수는 2K-1이다.
상기한 본 발명에 의한 생존 경로 역추적 장치에서, 상기 역추적메모리의 크기가 2K-1×D일 때, 상기 생존경로메모리는 M×(D/M)의 크기를 가지는 M비트 메모리로 구성될 수 있다, 여기서 M은 1이 아니다.
상기한 본 발명에 의한 생존 경로 역추적 장치에서, 상기 역추적메모리의 크기가 2K-1×D일 때, 상기 생존경로메모리는 M×(D/M)의 크기를 가지는 M비트 메모리로 구성되는 경우, 본 발명에 의한 생존 경로 역추적 장치는, 상기 생존경로메모리로부터의 출력되는 병렬데이터를 상기 생존경로상태 레지스터로 입력되는 직렬데이터로 변환하기 위한 병렬/직렬 변환기; 및 상기 생존경로메모리에 저장된 이전 생존 경로를 현재 생존 경로로 갱신하기 위하여 생존경로메모리의 입력에 필요한 직렬/병렬 변환기를 더 포함한다.
이하에서 첨부된 도면을 참조하면서 본 발명의 실시예들을 상세하게 설명한다.
생존 경로를 저장하는 역추적메모리는 이전 단계의 상태를 알 수 있는 정보를 저장하고 있다. 즉, 현재 상태를 알고, 그 상태에 해당하는 역추적메모리의 정보를 알고 있다면 이전 단계의 상태를 알 수 있다. 또한 역추적을 수행할 때, 임의의 상태가 결정되면 D만큼의 역추적을 통하여 생존 경로가 결정된다. 따라서, 현재 단계에서 역추적하는 생존 경로와 이전 단계의 생존 경로가 동일하면 현재 단계에서의 역추적 과정을 중지하고, 이전 단계에서 이미 찾은 생존 경로를 이용하여 복호할 수 있다. 도5은 두 생존 경로가 일치하는 것을 설명하기 위한 예시도이다.
도5는 구속장(K)가 3이고 역추적메모리의 길이가 15일 때, 20번째 단계(t20)에서 역추적한 생존 경로와 19번째 단계(t19)에서 역추적한 생존 경로를 나타내고 있다. 19번째 단계(t19)에서는 0 상태를 최소 상태로 역추적하였고, 20번째 단계(t20)에서는 11 상태를 최소 상태로 역추적하였다. 도5에 도시된 바와 같이, 15번째 단계(t15)에서 두 생존 경로가 처음으로 일치하는 것을 알 수 있고, 따라서, 15번째 단계(t15) 이전 단계에서는 두 생존 경로가 일치한다. 그러므로, 19번째 단계(t19)로부터 시작한 이전 단계의 생존 경로를 저장하고 있다면, 20번째 단계(t20)에서 시작하는 현재 단계의 역추적시 단 5회 만의 역추적을 통하여 전체 생존 경로를 알 수 있다.
본 발명은 상기한 바와 같은 특징을 이용하고자 하는 것이다.
이를 위하여, 본 발명에 의한 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치는 이전의 역추적 결과 얻어진 이전 생존 경로를 저장하는 생존경로메모리를 새롭게 도입한다.
도6은 본 발명의 일실시예에 의한 생존 경로 역추적 장치의 블록 구성도이다.
도6에 도시된 바와 같이, 본 발명에 의한 생존 경로 역추적 장치는, 모든 상태에 대하여 각 상태에 대한 생존 경로를 저장하는 역추적메모리(60), 이전의 역추적 결과 얻어졌던 이전 생존 경로의 정보를 저장하는 생존경로메모리(61), 상기 역추적메모리를 단계별로 액서스하여 얻어지는 현재 생존 경로의 정보를 저장하는 역추적상태 레지스터(62), 상기 생존경로메모리를 상기 역추적메모리를 액서스하는 동일한 단계대로 액서스하여 얻어지는 이전 생존 경로의 정보를 저장하는 생존경로상태 레지스터(63), 단계별로 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보를 비교하는 비교기(64), 및 상기 비교기에 의한 비교 결과 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보가 동일하면, 그 단계 이후의 역추적을 수행하지 않고 해당 단계 이후의 생존 경로에 대하여는 저장된 이전 생존 경로의 정보를 이용하여 바로 복호하게 하고, 그렇지 않은 경우에는 다음 단계의 역추적을 계속 수행하도록 하는 제어기(65)를 포함한다.
이러한 구성을 가지는 본 발명에 의한 생존 경로 역추적 장치의 작동을 설명한다. 역추적상태 레지스터(62)를 통하여 현재 상태 생존 경로를 단계별로 역추적하고, 생존경로상태 레지스터(63)를 통하여 생존경로메모리(61)에 저장된 이전 상태 생존 경로를 단계별로 불러온다. 각 단계별로 비교기(64)에서, 양 레지스터들의 값을 서로 비교한다. 비교 결과 두 값이 동일하면, 이전의 생존 경로와 동일하기 때문에 더 이상의 역추적은 하지 않고 역추적을 시작한 단계보다 D만큼 이전 단계의 생존 경로 메모값으로 바로 복호한다. 즉, 역추적을 시작한 현재 단계의 다음 단계 위치의 생존 경로 메모리 정보를 읽게 되면 바로 복호가 된다. 그러나, 역추적상태 레지스터(62)와 생존경로상태 레지스터(63)의 값이 다르면 역추적메모리(60) 쪽은 역추적상태 레지스터(62)를 통하여 다음 단계의 역추적을 수행한다. 생존경로메모리(61) 쪽은 이미 생존 경로가 확정되어있지만, 각 단계에서의 상태값을 비교하기 위하여 역추적과 동일한 방법으로 생존경로메모리(61)의 정보를 이용한다.
한 비트의 복호가 끝나면, 다음 단계의 역추적을 수행하기 이전에 생존경로메모리(61)의 내용을 현재 단계의 생존 경로의 상태값으로 갱신하여야 한다.
도7은 본 발명의 또 다른 실시예에 의한 생존 경로 역추적 장치의 블록 구성도이다.
상기한 본 발명에 의한 생존 경로 역추적 장치에서, 상기 역추적메모리(60)의 크기가 2K-1×D일 때, 상기 생존경로메모리는 1×D의 크기를 가지는 1비트 메모리로 구성될 수 있다. 여기서, K는 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수이고, 상태의 수는 2K-1이다.
또한, 본 발명에 의한 생존 경로 역추적 장치에서, 상기 역추적메모리의 크기가 2K-1×D일 때, 상기 생존경로메모리는 M×(D/M)의 크기를 가지는 M비트 메모리(여기서 M은 1이 아니다)로 구성될 수 있는데, 이 경우, 상기 생존경로메모리(71)로부터의 출력되는 병렬데이터를 상기 생존경로상태 레지스터(73)로 입력되는 직렬데이터로 변환하기 위한 병렬/직렬 변환기(76) 및 상기 생존경로메모리(71)에 저장된 이전 생존 경로를 현재 생존 경로로 갱신하기 위하여 생존경로메모리(71)의 입력에 필요한 직렬/병렬 변환기(77)를 더 포함한다.
비터비 복호기의 주요 부분 중 역추적 과정은 복호 시간가 소비 전력면에서 매우 큰 비중을 차지한다. 종래에는 일정한 시간의 경과 후에는 한 비트의 복호를 위하여 항상 역추적 길이만큼의 역추적 과정이 필요하여 역추적메모리의 액서스가 빈번하기 때문이다.
본 발명에서는 효율적인 역추적 과정을 위하여 생존경로메모리를 추가로 도입한다. 즉, 이전 단계의 생존 경로 정보를 저장한 뒤, 현재 단계에서 역추적을 수행할 때 역추적 상태와 이전 단계의 생존 경로 상태를 비교하여 복호 여부를 역추적 도중에 결정하는 구조를 사용한다. 이전 단계의 생존 경로 상태와 현재 단계의 역추적 상태가 동일하다면 이전 단계와 현재 단계의 생존 경로가 일치함을 의미한다. 따라서 더 이상의 역추적 과정을 생략하고 생존 경로 메모리의 정보를 바로 출력하여 복호할 수 있다. 추가로 사용되는 생존경로메모리의 크기는, 구속장(K)의 크기가 'K'일 때, 1×D로서, 기존의 2K-1×D 크기인 역추적메모리에 비하여 작다. 이러한 작은 크기의 별도의 생존경로메모리를 사용하여 역추적메모리의 액서스 횟수를 획기적으로 줄일 수 있다. 역추적메모리의 액서스 횟수가 감소하면, 복호 시간이 단축될 뿐만 아니라, 역추적메모리의 관리 측면에서도 전력 소비를 감소시킨다.

Claims (5)

  1. 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법에 있어서, 초기의 역추적을 수행하여 얻은 생존 경로 정보에 대하여, 역추적 과정에서 읽어온 역추적 메모리의 정보를 이전 생존 경로로서 저장하는 단계; 상기한 단계의 역추적 결과로 1비트를 복호한 후, 한 단계의 새로운 생존 경로의 정보를 저장하는 단계; 다음 역추적의 수행시 상기 단계에서 저장된 한 단계의 새로운 생존 경로의 역추적을 수행한 후, 그 다음 단계에서 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 상기한 단계에서 저장된 이전 생존 경로의 정보를 비교하는 단계; 상기한 단계에서 비교한 결과 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 저장된 이전 생존 경로의 정보가 다를 경우, 그 다음 단계의 역추적을 수행하는 단계; 상기한 단계에서 비교한 결과, 역추적을 수행하여 얻어지는 현재 생존 경로의 정보와 저장된 이전 생존 경로의 정보를 비교하여 동일하면 해당 단계 이후의 역추적을 수행하지 않고 해당 단계 이후의 생존 경로에 대하여는 저장된 이전 생존 경로의 정보를 이용하여 바로 복호하는 단계; 및 다음 단계의 역추적을 위하여 이전 생존 경로의 정보를 현재 생존 경로의 정보로 갱신하는 단계를 포함하는 것임을 특징으로 하는 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 방법.
  2. 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치에 있어서, 모든 상태에 대하여 각 상태에 대한 생존 경로를 저장하는 역추적메모리; 이전의 역추적 결과 얻어졌던 이전 생존 경로의 정보를 저장하는 생존경로메모리; 상기 역추적메모리를 단계별로 액서스하여 얻어지는 현재 생존 경로의 정보를 저장하는 역추적상태 레지스터; 상기 생존경로메모리를 상기 역추적메모리를 액서스하는 동일한 단계대로 액서스하여 얻어지는 이전 생존 경로의 정보를 저장하는 생존경로상태 레지스터; 단계별로 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보를 비교하는 비교기; 및 상기 비교기에 의한 비교 결과 상기 역추적상태 레지스터에 저장된 현재 생존 경로의 정보와 상기 생존경로상태 레지스터에 저장된 이전 생존 경로의 정보가 동일하면, 그 단계 이후의 역추적을 수행하지 않고 해당 단계 이후의 생존 경로에 대하여는 저장된 이전 생존 경로의 정보를 이용하여 바로 복호하게 하고, 그렇지 않은 경우에는 다음 단계의 역추적을 계속 수행하도록 하는 제어기를 포함하는 것임을 특징으로 하는 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치.
  3. 제2항에 있어서, 상기 역추적메모리의 크기가 2K-1×D일 때(여기서, K는 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수이고, 상태의 수는 2K-1임), 상기 생존경로메모리는 1×D의 크기를 가지는 1비트 메모리로 구성되는 것임을 특징으로 하는 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치.
  4. 제2항에 있어서, 상기 역추적메모리의 크기가 2K-1×D일 때(여기서, K는 길쌈부호기(convolutional encoder)에서 부호화에 영향을 주는 데이터의 수이고, 상태의 수는 2K-1임), 상기 생존경로메모리는 M×(D/M)의 크기를 가지는 M비트 메모리(여기서 M은 1이 아님)로 구성될 수 있는 것임을 특징으로 하는 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치.
  5. 제4항에 있어서, 상기한 생존 경로 역추적 장치는, 상기 생존경로메모리로부터의 출력되는 병렬데이터를 상기 생존경로상태 레지스터로 입력되는 직렬데이터로 변환하기 위한 병렬/직렬 변환기; 및 상기 생존경로메모리에 저장된 이전 생존 경로를 현재 생존 경로로 갱신하기 위하여 생존경로메모리의 입력에 필요한 직렬/병렬 변환기를 더 포함하는 것임을 특징으로 하는 비터비 알고리즘을 적용하는 복호 과정에서의 생존 경로 역추적 장치.
KR1019970038963A 1997-08-14 1997-08-14 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치 KR100262303B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970038963A KR100262303B1 (ko) 1997-08-14 1997-08-14 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970038963A KR100262303B1 (ko) 1997-08-14 1997-08-14 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치

Publications (2)

Publication Number Publication Date
KR19990016432A true KR19990016432A (ko) 1999-03-05
KR100262303B1 KR100262303B1 (ko) 2000-07-15

Family

ID=19517577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970038963A KR100262303B1 (ko) 1997-08-14 1997-08-14 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치

Country Status (1)

Country Link
KR (1) KR100262303B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100340222B1 (ko) * 2000-05-22 2002-06-12 주민 다수준 격자부호변조방식의 복호화방법 및 장치
KR100510640B1 (ko) * 2000-03-09 2005-08-31 엘지전자 주식회사 비터비 디코더의 트래이스 백 장치
KR100580160B1 (ko) * 1999-09-14 2006-05-15 삼성전자주식회사 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
KR100594214B1 (ko) * 2000-01-19 2006-07-03 삼성전자주식회사 저전력 비터비 복호기
KR101107428B1 (ko) * 2009-10-23 2012-01-19 성균관대학교산학협력단 소프트 에러에 강한 시간적 티엠알 비터비 디코더 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580160B1 (ko) * 1999-09-14 2006-05-15 삼성전자주식회사 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
KR100594214B1 (ko) * 2000-01-19 2006-07-03 삼성전자주식회사 저전력 비터비 복호기
KR100510640B1 (ko) * 2000-03-09 2005-08-31 엘지전자 주식회사 비터비 디코더의 트래이스 백 장치
KR100340222B1 (ko) * 2000-05-22 2002-06-12 주민 다수준 격자부호변조방식의 복호화방법 및 장치
KR101107428B1 (ko) * 2009-10-23 2012-01-19 성균관대학교산학협력단 소프트 에러에 강한 시간적 티엠알 비터비 디코더 장치

Also Published As

Publication number Publication date
KR100262303B1 (ko) 2000-07-15

Similar Documents

Publication Publication Date Title
US4606027A (en) Error correction apparatus using a Viterbi decoder
KR100580160B1 (ko) 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
US7765459B2 (en) Viterbi decoder and viterbi decoding method
EP1102408B1 (en) Viterbi decoder
EP0800280A1 (en) Soft decision viterbi decoding in two passes with reliability information derived from a path-metrics difference
US6272661B1 (en) Minimum memory implementation of high speed viterbi decoder
KR20020048975A (ko) 비터비 디코더 용 고속 acs 유닛
US5982822A (en) Viterbi decoder
US7234100B1 (en) Decoder for trellis-based channel encoding
CN100499379C (zh) 一种卷积码译码方法
KR100437697B1 (ko) 다수준 격자부호변조방식의 복호 방법 및 장치
JP3233847B2 (ja) ビタビ復号方法及びビタビ復号回路
KR100262303B1 (ko) 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치
US7979781B2 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
US8489972B2 (en) Decoding method and decoding device
FI100564B (fi) Menetelmä transitiometriikan muodostamiseksi ja solukkoradiojärjestelm än vastaanotin
CN108768412B (zh) 一种低延时Viterbi译码方法及系统
JP2010206570A (ja) 復号装置、復号方法
US8856630B2 (en) Continuous parallel Viterbi decoder
JP3235333B2 (ja) ビタビ復号方法およびビタビ復号化装置
JP4295871B2 (ja) 誤り訂正復号器
KR100564757B1 (ko) 저전력 비터비 복호기 및 역추적 방법
JPH10209882A (ja) ビタビ復号方法
JPH05335973A (ja) ビタビ復号器及び畳み込み符号の復号器
JP2001186025A (ja) ビタビ復号装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120329

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160412

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20170414

Year of fee payment: 18