KR100212836B1 - 비터비 디코더의 트레이스백 진행 구조 - Google Patents

비터비 디코더의 트레이스백 진행 구조 Download PDF

Info

Publication number
KR100212836B1
KR100212836B1 KR1019960021448A KR19960021448A KR100212836B1 KR 100212836 B1 KR100212836 B1 KR 100212836B1 KR 1019960021448 A KR1019960021448 A KR 1019960021448A KR 19960021448 A KR19960021448 A KR 19960021448A KR 100212836 B1 KR100212836 B1 KR 100212836B1
Authority
KR
South Korea
Prior art keywords
state
decision
system clock
output
register
Prior art date
Application number
KR1019960021448A
Other languages
English (en)
Other versions
KR980006963A (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 KR1019960021448A priority Critical patent/KR100212836B1/ko
Priority to US08/876,554 priority patent/US5878092A/en
Priority to EP97109771A priority patent/EP0813308A3/en
Priority to JP9158544A priority patent/JPH10117149A/ja
Priority to CN97118022A priority patent/CN1175825A/zh
Publication of KR980006963A publication Critical patent/KR980006963A/ko
Application granted granted Critical
Publication of KR100212836B1 publication Critical patent/KR100212836B1/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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

Abstract

본 발명은 비터비 복호기의 트레이스백 진행 구조에 관한 것으로, 프로세싱 엘리먼트가, N개의 메모리(100-1∼110-3)가 서로 직렬로 접속되어 입력된 판정 벡터를 시스템 클럭에 따라 래치하여 출력하는 메모리부(110)와; 상기 메모리부(130)에서 출력된 판정 벡터를 시스템 클럭에 래치하여 다음단의 프로세싱 엘리먼트로 출력하는 버퍼(120); 입력된 스테이트를 시스템 클럭에 따라 래치하여 출력하는 스테이트용 레지스터(130) 및; 상기 스테이트용 레지스터(130)에서 출력된 스테이트 및 전단의 각 멀티플렉서에서 출력된 판정 비트들을 조합한 선택신호를 직접 입력받아 상기 메모리부(110)의 각 메모리에서 출력된 판정 벡터로부터 판정 비트를 각각 선택하여 출력하는 N개의 멀티플렉서(140-1∼140-3)를 포함하여 구성되어, 현재 사용하고 있는 셀의 동작 가능 속도를 최대한 활용하여 1개의 시스템 클럭당 여러 스텝의 트레이스백을 수행하도록 프로세싱 엘리먼트를 구현함으로써, 고속으로 동작할 수 있을 뿐만 아니라 면적을 적게 차지하여 초대규모 집적회로(VLSI)로 구현하기 용이한 것이다.

Description

비터비 디코더의 트레이스백 진행 구조
제1도는 N=2 상태의 격자상도.
제2도는 노드 s1,k+1에 대한 최적 경로를 결정하는 과정을 설명하기 위한 도면.
제3도는 일반적인 비터비 디코더의 블록도.
제4도는 판정 벡터 및 트레이스백 진행을 설명하기 위한 도면.
제5도는 디코딩 깊이를 설명하기 위한 도면.
제6도는 종래의 파이프 라인 구조의 트레이스백 진행 구조의 1 실시예의 블록도.
제7도는 제6도에 도시된 프로세싱 엘리먼트의 회로도.
제8도는 본 발명에 따른 파이프 라인 구조의 트레이스백 진행 구조의 개략적인 블록도.
제9도는 본 발명에 따른 프로세싱 엘리먼트의 회로도이다.
* 도면의 주요부분에 대한 부호의 설명
100-1∼100-33 : 프로세싱 엘리먼트 110 : 메모리부
110-1 : 제1레지스터 110-2 : 제2레지스터
110-3 : 제3레지스터 120 : 버퍼
140-1 : 제1멀티플랙서 140-2 : 제2멀티플랙서
140-3 : 제3멀티플랙서
본 발명은 길쌈 부호기(convolutional encoder)에 의해 길쌈 부호화된 정보 시퀀스를 에러 정정 복호화하여 원래의 정보 시퀀스로 복원하는 비터비 디코더(Viterbi decoder)에 관한 것으로, 특히 판정 벡터(dicision vector)를 이용하여 트레이스백을 수행함으로써 원래의 정보 시퀀스를 찾아내는 길쌈 복호기의 트레이스백 진행traceback procedure) 구조에 관한 것이다.
일반적으로, 비터비 알고리즘(Viterbi algorithm)은 격자상도(trellis diagram)를 이용하여 최대 가능성 복호(maximum likelihood decoding)를 수행하는 알로리즘으로서, 동적 프로그램(dynamic programming)의 일종이라고 할 수 있다. 즉, 상기 동적 프로그램은 최적 경로(optimum path)를 찾아내는 등의 여러 가지 다양한 분야에서 사용되는 알고리즘으로서, 이러한 동적 프로그램이 통신에서 사용될 때 비터비 알고리즘이라 한다.
이러한 비터비 알고리즘은 1967년 길쌈 부호(convolutional code)를 복호하기 위해 소개되어, 디지탈 전송, 자기 기록, 음성 인식등과 같은 통신분야에서 널리 사용되고 있다.
제1도는 노드(node) 수(스테이트 머신(state machine)의 스테이트 수)가 2일 때의 격자상도로서, 일반적으로 노드 수(N)가 많을 때도 적용되는 격자상도이다.
상기 제1도에 있어서, 수직 방향은 스테이트 si이고, 수평방향은 시간(T)이며, k는 시간 단계이고, si는 i번째 스테이트이고, si,k는 노드(node)로서 시간 k의 i번째 스테이트이다.
상기와 같은 격자상도는 시간(T)에 따라 스테이트(state)의 전이 동작(transition dynamics)을 보여주는 것으로, 시간 단계 k의 스테이트들(si,k, s2,k)은 시간 간격(time interval) (k, k+1)의 브랜치(branch)에 의해 시간 단계(k+1)의 스테이트들(si,k, s2,k)과 연결된다.
유한 상태 머신(finite state machine)은 상기와 같은 격자상도를 통해 경로(path)를 선택하고, 관찰 상태 천이(observed state transitions)의 도움으로 시간 간격(time interval) (k, k+1)의 브랜치 매트릭스(branch metrics)가 계산된다. 즉, 비터비 복호화시에는 수신 신호에 대응하는 브랜치(branch)의 코드(code)간의 거리(브랜치 매트릭스)를 계산하게 되는데 상기 브랜치의 코드간의 거리(브랜치 매트릭스)는 신호 판별의 기준이 된다.
이때, 상기 브랜치의 코드간의 거리는 강판정(hard decision) 복호의 경우에는 해밍 거리(Hamming distance)가 되고, 연판정(soft decision)의 경우에는 유클리디언 거리(Eucideam distance)가 된다.
그리고, 상기와 같이 얻어진 브랜치 매트릭스를 이용하여 시간 단계 k의 각 노드들에 대해 최적 경로(optimum path)를 계산한다. 예를 들어, 시간 단계 k+1에서의 새로운 최적 경로는 시간 단계 k에서의 경로 매트릭스와 시간 간격 (k, k+1)의 브랜치 매트릭스에 의해 계산되는 것이다.
즉, 제2도에 도시된 바와 같이, 시간 단계 k의 노드 si,k, s2,k가 경로 매트릭스 ri,k, r2,k를 각각 갖고 있다면, 노드 s1,k+1, s2,k+1의 새로운 경로 매트릭스 v1,k+1, v2,k+1는 하기 제1식으로부터 각각 구해진다.
즉, 시간 단계 k+1 의 노드로 올 수 있는 경로의 종류는 시간 단계 k의 스테이트의 변화에 따라 복수개가 존재하므로, 확률 정보(0일 때 확률이 제일 높고, 크면 클수록 확률이 작음)인 브랜치 매트릭스(λ)를 이용하여 확률적으로 가장 높은 것을 경로 매트릭스를 찾는 것이다.
이와 같은 경로 매트릭스를 계산하는 과정은 시간(T)이 경과함에 따라 순환적(recurive)으로 수행하여 최종적으로 최적 경로가 결정되는 것이다.
또한, 경로들을 트레이스백(traceback)하면 경로들이 매우 높은 확률로 병합(merge)되는데, 이와 같이 경로들이 매우 높은 확률로 병합(merge)되는 시간 단계(time step)의 수를 결정 깊이(survivor depth : D)라 하며, 이 결정 깊이(D)가 버터비 복화화의 지연을 좌우하게 된다.
즉, 각 노드마다 상기 제1식에 의해 경로 매트릭스를 업데이트(update)하게 되면, 결정 깊이(D) 이전에 해당하는 각 경로의 스테이트는 같게 되므로, 같게 되는 정도까지 트레이스백을 하여 결정 깊이(D) 이전의 스테이트 변화를 출력함으로써 복호화하는 것이다.
한편, 제3도는 일반적인 비터비 복호기의 블록도로서, 비터비 복호기는, 수신된 디지탈 신호를 입력받아 확률적 정보인 브랜치 매트릭스(branch metric)를 계산하여 출력하는 브랜치 매트릭스 생성부(1)(BMU : Branch Metric Unit)와; 상기 브랜치 매트릭스 생성부(1)에서 브랜치 매트릭스를 입력받아 이 브랜치 매트릭스를 사용하여 격자상(trellis)의 각 스테이트의 경로 매트릭스(path metric)를 업데이트(update)한 다음 이전 경로 매트릭스와 비교하여 판정 벡터를 출력하는 가산 비교 선택부(3)(ASSU : Add Comare Selection Unit) 및; 상기 가산 비교 선택부(3)에서 출력된 판정 벡터를 메모리에 적당한 다음 이 판정 벡터를 이용하여 원래의 정보 시퀀스를 찾아내는 생존 메모리부(5)(SMU : Survivor Memory Unit)로 이루어진다.
즉, 브랜치 매트릭스 생성부(1)는 수신된 디지탈 신호를 입력받아 브랜치 매트릭스를 계산하여 가산 비교 선택부(3)로 출력하고, 상기 가산 비교 선택부(3)는 각 디코딩 사이클 마다 상기 브랜치 매트릭스 생성부(1)에서 입력된 브랜치 매트릭스를 이용하여 경로 매트릭스를 업데이트하여 N 비트의 판정 벡터(가산 비교 선택 동작중 각 스테이트에서의 비교 결과임. 총 N개의 스테이트로 이루어진 격자상도를 가정할 때 각 디코딩 사이클 마다 N비트를 얻게 됨)를 생존 메모리부(5)로 입력한다.
상기 생존 메모리부(5)는 상기 가산비교선택부(3)에서 입력된 판정 벡터를 메모리에 저장하고, 메모리에 저장된 판정 벡터를 이용하여 원래의 정보 시퀀스를 찾아내는 것이다. 이때, 상기 생존 메모리부(5)가 고속으로 동작할 수 있으려면, 주기적으로 동작하는 트레이스백 진행 구조로 이루어져야 한다.
제4도는 판정 벡터 및 트레이스백 진행을 설명하기 위한 도면으로서, 길쌈 부호기가 v단의 시프트 레지스터(스테이트 수=2v)를 갖는 스테이트 머신으로 동작한다고 가정하면, 시프트 레지스터의 내용을 바이너리로 왼쪽으로 차례로 bv-1bv-2... b1b0로 표기하여 길쌈 부호기의 스테이트를 나타낼 수 있다(정보 비트가 시프트 레지스터의 왼쪽단부터 입력된다고 가정함). 이때, 각 스테이트는 판정 비트를 1개씩 가지고 있으며, 어느 한 스테이트에서 출발하여 트레이스백을 한다는 것은 그 스테이트의 판정 비트를 이용하여 이전 스테이트를 구하는 것이다.
즉, bv-1bv-2... b1b0상태에서 트레이스백할 경우에 bv-1bv-2... b1b0스테이트의 판정 벡터(δ)가 '1'인 경우 트레이스백된 이전 스테이트는 bv-2... b1b01 이 되고, 판정 벡터(δ)가 '0'인 경우는 bv-2... b1b00 이 되는 것이다. 이때, 제3도의 가산 비교 선택부(3)가 비교되는 두 개의 스테이트 중 선택된 스테이트의 맨 우측 비트(최상위비트(MSB))에 해당하는 비트를 그 스테이트의 판정 비트로 출력함에 따라 트레이스백을 하여 얻게 되는 판정 비트의 열은 각 엔코딩 사이클 마다 시프트 레지스터의 맨 우측 비트(MSB)를 나타낸다.
결국, 판정 비트의 열은 길쌈 부호기의 시프트 레지스터의 입력되는 정보 비트열과 같게 된다.
상기와 같은 트레이스백 진행 과정을 현재의 어느 한 스테이트에서 시작하여 무한대의 시간전까지 수행하여 선택된 생존 경로(survivor path)는 확률적으로 길쌈부호기의 부호화 경로와 가장 근접한 경로가 되며, 현재의 스테이트가 N개 있을 경우 N개의 스테이트에 한하여 이러한 무한대의 트레이스백 진행을 하여 이중 확률적으로 가장 근접한 패스를 생존 경로(survivor path)로 결정하는 것이 최적의 방법이다.
그러나, 제5도에 도시된 바와 같이, 비터비 알고리즘은 구속장(constraint length)의 약 4배 내지 5배 정도 까지만 트레이스백을 하고 그 이후로 트레이스백된 결과를 디코딩된 비트로 정한다 하더라도 최적의 트레이스백 진행과 거의 다르지 않다는 것이 시뮬레이션(simulation)에 의해 알려져 있으며, 이 트레이스백의 진행 깊이를 디코딩 깊이(decoding depth)라고 하고, 특정한 길쌈 부호에 대하여 동작하는 신호대 노이즈(S/N) 비와 디코딩 깊이에 따른 성능 분석을 통해서 상기 디코딩 깊이를 정확하게 결정한다.
즉, 어느 스테이트에서 디코딩 깊이만큼 트레이스백 진행하면 각 스테이트의 생존 경로(survival path)가 하나로 병합(merge)되므로, 실제로 트레이스백 진행은 임의의 한 스테이트에서 트레이스백 진행하여 그 결과를 사용하여도 무방한 것이다.
현재, 유럽 디지탈 방송 규격인 DVB(Digital Video Broadcasting) 규격에서는 1/2 레이트(rate)의 64 스테이트 길쌈 부호기의 복호를 위한 64 스테이트 비터비 복호기를 채용하였으며, 우리나라의 무궁화 위성 방송에서도 똑같은 것이 사용된다.
또한, 상기 비터비 복호기에서는 디코딩 깊이를 96으로 하였는데, 이는 DVB규격에서 길쌈부호기가 다양한 펑처링 모드(puntruing mode)를 갖으므로, 모든 펑처링 모드를 지원하기 위해서는 디코딩 깊이가 96정도는 되어야 하는 것이 시뮬레이션에 의해 널리 알려져 있다.
상기 DVB 규격과 같은 고속의 디지탈 통신시스템에서 비터비 복호기가 공급받는 클럭은 비터비 복호기의 격자상도에서 1스텝에 해당하는 것이 주기(period)인 클럭이다.
상기와 같이 디코딩 깊이가 96인 비터비 복호기의 트레이스백 진행 구조는 제6도에 도시된 바와 같이, 97개의 프로세싱 엘리먼트(30-1∼30-97)가 파이프 라인 구조로 연결되어 있다. 즉, 디코딩 깊이(L)가 96이므로, 사용되는 프로세싱 엘리먼트(processing element)가 97개 이다.
그리고, 상기 각 프로세싱 엘리먼트(30-1∼30-97)는 제7도에 도시된 바와 같이, 64 스테이트이므로, 메모리(31)와 선입선출버퍼(33)는 64비트 병렬 레지스터로 구형되고, 멀티플렉서(35)는 64:1 멀티플렉서로 구현되며, 시프트 레지스터(37)는 6비트 시프트 레지스터로 구현된다.
따라서, 각 프로세싱 엘리먼트(30-1∼30-97)는 이전 프로세싱 엘리먼트에서 트레이스백한 결과(Si)와 이전 프로세싱 엘리먼트에서 입력되는 판정 벡터(DVi)를 입력으로 하여, 1스텝 만큼 트레이스백을 하고 트레이스백한 결과(Si-2)와 선입선출버퍼(33)가 가지고 있던 판정 벡터(DVi-2)를 다음 프로세싱 엘리먼트에 전달한다.
상기와 같은 종래의 트레이스백 진행 구조는 많은 프로세싱 엘리먼트가 파이프라인 구조로 연결함으로써 고속으로 동작할 수 있으나, 상기와 같이 디코딩 깊이가 96인 경우 97개의 프로세싱 엘리먼트가 필요하고, 마지막 프로세싱 엘리먼트를 제외한 모든 프로세싱 엘리먼트가 버퍼용 레지스터를 포함하여 2개의 64비트 레지스터가 필요함에 따라 그 구조가 복잡할 뿐만 아니라 면적을 많이 차지하여 초대규모 집적회로(VLSI)로 구현하기 어려운 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해소하기 위한 것으로, 현재 사용하고 있는 셀의 동작 가능 속도를 최대한 활용하여 1개의 시스템 클럭당 여러 스텝(step)의 트레이스백을 수행하도록 프로세싱 엘리먼트를 구현함으로써, 고속으로 동작하면서도 작은 면적으로 구현할 수 있는 트레이스백 진행 구조를 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 길쌈 복호기의 트레이스백 진행 구조는, 입력된 판정 벡터 및 스테이트를 이용하여 트레이스백을 수행하는 다수개의 프로세싱 엘리먼트가 파이프 라인 구조로 연결된 비터비 복호기의 트레이백 진행 구조에 있어서,
상기 각 프로세싱 엘리먼트가, N개의 메모리가 서로 직렬로 접속되어 입력된 판정 벡터를 시스템 클럭에 따라 래치하여 출력하는 메모리부와; 상기 메모리부에서 출력된 판정 벡터를 시스템 클럭에 래치하여 다음단의 프로세싱 엘리먼트로 출력하는 버퍼; 입력된 스테이트를 시스템 클럭에 따라 래치하여 출력하는 스테이트용 레지스터 및; 상기 스테이트용 레지스터에서 출력된 스테이트 및 전단의 각 멀티플렉서에서 출력된 판전 비트들을 조합한 선택신호를 직접 입력받아 상기 메모리부의 각 메모리에서 출력된 판정 벡터로부터 판정 비트를 각각 선택하여 출력하는 N개의 멀티플렉서를 포함하여 구성된 것을 특징으로 한다.
따라서, 1개의 프로세싱 엘리먼트가 1시스템 클럭에 N스텝 만큼 트레이스백을 수행함에 따라, 고속으로 동작할 뿐만 아니라 작은 면적으로 구현할 수 있는 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 설명한다.
제8도는 본 발명에 따른 파이프 라인 구조의 트레이스백 진행 구조의 개략적인 블록도이고, 제9도는 상기 제8도의 프로세싱 엘리먼트의 회로도이다. 그리고 제8도에 도시된 트레이스백 진행 구조는, 디코딩 깊이(decoding depth)가 96이고, 한 개의 프로세싱 엘리먼트에서 3스텝의 트레이스백을 수행하도록 된 것을 예로 든 것이다.
제8도에 도시된 본 발명에 따른 비터비 복호기의 트레이스백 진행 구조는, 판전 벡터(DVi) 및 스테이트(Si)를 입력받아 1시스템 클럭(CLK)당 3스텝의 트레이드백을 수행하여 3스텝 트레이스백된 이전 스테이트(Si-4)를 다음단의 프로세싱 엘리먼트로 출력하는 다수개의 프로세싱 엘리먼트들(100-1∼100-33)이 파이프라인 구조로 연결되어 있다.
그리고, 상기 각 프로세싱 엘리먼트(100-1∼100-33)는 제9도에 도시된 바와 같이, 3개의 64비트 레지스터(110-1, 110-2, 110-3)로 이루어진 메모리부(110)와, 64비트 레지스터로 이루어진 버퍼(120), 6비트 레지스터로 이루어진 스테이트용 레지스터(130) 및, 3개의 멀티플렉서(140-1, 140-2, 140-3)를 포함하여 구성되어 있다.
상기 메모리부(110)의 제1레지스터(110-1)는 시스템 클럭(CLK)에 따라 입력된 판정 벡터(DVi)를 래치(latch)하여 출력하도록 되어 있고, 상기 제2레지스터(110-2)는 시스템 클럭(CLK)에 따라 상기 제1레지스터(110-1)에서 출력된 판정 벡터(DVi-1)를 래치하여 출력하도록 되어 있다. 상기 제3레지스터(110-3)는 시스템 클럭(CLK)에 따라 상기 제2레지스터(110-2)에서 출력된 판정 벡터(DVi-2)를 래치하여 출력하도록 되어 있고, 상기 버퍼(120)는 상기 제3레지스터(110-3)에서 출력된 판정 벡터(DVi-3)를 래치하여 다음단을 프로세싱 엘리먼트로 입력하도록 되어 있다.
그리고, 상기 스테이트용 레지스터(130)는 시스템 클럭(CLK)에 따라 스테이트(Si)를 래치하여 출력하도록 되어 있다. 또한, 상기 제1멀티플렉서(140-1)는 상기 스테이트용 레지스터(130)에서 출력된 스테이트를 선택 신호로 하여 상기 제1레지스터(110-1)에서 출력된 판정 벡터(DVi-1)로부터 판정 비트를 선택하여 출력하도록 되어 있다. 상기 제2멀티플렉서(140-2)는 상기 제1멀티플렉서(140-1)에서 출력된 판정 비트를 선택 신호의 최하위 비트로 하고, 상기 스테이트용 레지스터(130)에서 출력된 스테이트의 최상위 비트를 제외한 나머지 5비트를 선택 신호의 나머지 비트로하여 상기 선택 신호에 따라 상기 제2레지스터(110-2)에서 출력된 판정 벡터(DVi-2)로부터 판정 비트를 선택하여 출력하도록 되어 있다. 상기 제3멀티플렉서(140-3)는 상기 제1멀티플렉서(140-1)에서 출력된 판정 비트를 선택 신호의 최하위 비트로 하고, 상기 제2멀티플렉서(140-1)에서 출력된 판정 비트를 선택신호의 하위 2번째 비트로 하며, 상기 스테이트용 레지스터(130)에서 출력된 스테이트의 상위 2비트를 제외한 나머지 4비트를 선택 신호의 나머지 비트로하여 상기 선택 신호에 따라 상기 제3레지스터(110-3)에서 출력된 판정 벡터(DVi-3)로부터 판정 비트를 선택하여 출력하도록 되어 있다.
상기와 같이 구성된 본 발명에 따른 트레이스백 진행 구조의 동작 및 효과를 상세히 설명하면 다음과 같다.
첫번째 프로세싱 엘리먼트(100-1)에 있어서, 제1레지스터(110-1)는 가산 비교 선택 유니트(ACSU : 도시하지 않음)에서 입력된 판정 벡터(DVi)를 시스템 클럭(CLK)에 따라 래치하여 제2레지스터(110-2) 및 제1멀티플렉서(140-1)로 입력하고, 제2레지스터(110-2)는 상기 제1레지스터(110-1)에서 출력된 판정 벡터(DVi-1)를 시스템 클럭(CLK)에 따라 래치하여 제3레지스터(110-3) 및 제2멀티플렉서(140-2)로 입력한다.
그리고, 상기 제3레지스터(110-3)는 상기 제2레지스터(110-2)에서 출력된 판정 벡터(DVi-2)를 시스템 클럭(CLK)에 따라 래치하여 버퍼(120) 및 제3멀티플렉서(140-3)로 입력한다. 상기 버퍼(120)는 상기 제3레지스터(110-3)에서 출력된 판정 벡터(DVi-3)를 시스템 클럭(CLK)에 따라 래치하여 두번째 프로세싱 엘리먼트(100-2)로 입력한다.
그리고, 스테이트용 레지스터(130)는 임의의 스테이트(Si)를 시스템 클럭(CLK)에 따라 래치하여 제1멀티플렉서(140)의 선택 신호로 입력한다. 상기 제1멀티플렉서(140-1)는 상기 스테이트용 레지스터(130)에서 입력된 스테이트에 따라 상기 제1레지스터(140-1)에서 출력된 판정 벡터(DVi-1)로부터 판정 비트를 선택하여 제2멀티플렉서(140-2) 및 제3멀티플렉서(140-3)로 입력함과 더불어 2번째 프로세싱 엘리먼트의 입력 스테이트(Si-4)로 출력한다.
그리고, 제2멀티플렉서(140-2)는 상기 제1멀티플렉서(140-1)에서 입력된 판정 비트와, 상기 스테이트용 레지스터(130)에서 출력된 스테이트중 상위 1비트를 제외한 나머지 비트를 입력받아 이 신호를 선택신호로하여 상기 제2레지스터(110-2)에서 출력된 판정 벡터로부터 판정 비트를 선택하여 제3멀티플렉서(140-3) 로 입력함과 더불어 2번째 프로세싱 엘리먼트의 입력 스테이트(Si-4)로 출력한다. 즉, 상기 선택 신호는 상기 스테이트용 레지스터(130)에서 출력된 스테이트의 이전 스테이트가 되는 것이다.
그리고, 제3멀티플렉서(140-3)는 상기 제1 및 제2멀티플렉서(140-1, 140-2)에서 입력된 판정 비트와, 상기 스테이트용 레지스터(130)에서 출력된 스테이트중 상위 2비트를 제외한 나머지 비트를 입력받아 이 신호를 선택신호로하여 상기 제3레지스터(110-3)에서 출력된 판정 벡터로부터 판정 비트를 선택하여 2번째 프로세싱 엘리먼트의 입력 스테이트(Si-4)로 출력한다. 즉, 상기 제3멀티플렉서(140-3)의 선택 신호는 상기 스테이트용 레지스터(140-1)에서 출력된 스테이트를 2스텝 트레이스백한 이전 스테이트가 되는 것이다.
그리고, 두번째프로세싱 엘리먼트(100-2)는 상기 첫번째 프로세싱 엘리먼트(100-1)에서 출력된 판정 벡터(DVi-4)와 스테이트(Si-4)를 입력받아 상기 첫번째 프로세싱 엘리먼트(100-1)와 동일한 동작을 수행하여 판정 벡터와 스테이트를 다음 단의 프로세싱 엘리먼트(100-3)로 입력한다.
이와 같은 동작을 하는 다수개의 프로세싱 엘리먼트(100-1∼100-33)가 파이프 라인 구조로 연결되어 디코딩 깊이 만큼 트레이스백을 수행하여 복호화된 출력 비트열을 출력할 수 있는 것이다. 즉, 본 발명은 현재의 아식(ASIC) 기본 제조 기술이 발달에 의해 동작 속도가 빨라진 셀의 동작 기능 속도를 최대한 활용하여 한 개의 프로세싱 엘리먼트보다 많은 데이터를 동일 클럭 동안 처리하고자 하는 것이다.
따라서, 본 발명에 제안된 트레이스백 진행 구조는 적은 수의 프로세싱 엘리먼트를 사용하게 되므로, 각각의 프로세싱 엘리먼트에서 파이프라이닝을 하기 위해 필요한 버퍼의 수를 줄일 수 있으므로 필요한 메모리의 수를 최대 1/2까지 줄일 수 있으며, 각 프로세싱 엘리먼트에서 사용되는 스테이트용 시프트 레지스터의 수도 줄일 수가 있는 것이다. 또한, 아식(ASIC)의 레이아웃(layout)시에 문제가 되는 복잡한 연결이 프로세싱 엘리먼트가 줄어들게됨에 따라 그 수가 줄어들게 되므로, 연결 영역(connection area)의 크기도 상당히 줄일 수 있는 것이다.
이상에서 살펴본 발명에 따르면, 현재 사용하고 있는 셀의 동작 가능 속도를 최대한 활용하여 1개의 시스템 클럭당 여러 스텝의 트레이스백을 수행하도록 프로세싱 엘리먼트를 구현함으로써, 고속으로 동작할 수 있을 뿐만 아니라 면적을 적게 차지하여 초대규모 집적회로(VLSI)로 구현하기 용이한 것이다.
상기와 같이 본 발명은 디코딩 깊이가 96이고 3스텝의 트레이스백을 수행하는 경우를 예로 들어 설명한 것이며 이에 한정되지는 않는다. 예를 들어, 아식(ASIC) 기본 제조 기술이 발달함에 따라 데이터 처리 속도도 증가하게 되고, 데이터 처리 속도가 증가할수록 상기 프로세싱 엘리먼트에서 트레이스백하는 스텝 수도 증가하게 되는 것이다.

Claims (2)

  1. 입력된 판정 벡터 및 스테이트를 이용하여 트레이스백을 수행하는 다수개의 프로세싱 엘리먼트가 파이프 라인 구조로 연결된 비터비 복호기의 트레이스백 진행 구조에 있어서, 상기 각 프로세싱 엘리먼트가, N개의 메모리가 서로 직렬로 접속되어 입력된 판정 벡터를 시스템 클럭에 따라 래치하여 출력하는 메모리부(110)와; 상기 메모리부에서 출력된 판정 벡터를 시스템 클럭에 래치하여 다음단의 프로세싱 엘리먼트로 출력하는 버퍼(120); 입력된 스테이트를 시스템 클럭에 따라 래치하여 출력하는 스테이트용 레지스터(130) 및; 상기 스테이트용 레지스터에서 출력된 스테이트 및 전단의 각 멀티플렉서에서 출력된 판정 비트들을 조합한 선택신호를 직접 입력받아 상기 메모리부의 각 메모리에서 출력된 판정 벡터로부터 판정 비트를 각각 선택하여 출력하는 N개의 멀티플렉서(140-1,140-2,140-3)를 포함하여 구성된 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
  2. 제1항에 있어서, 상기 각 멀티플렉서가, 전단의 각 멀티플렉서중 마지막 멀티플렉서에서 출력된 판정 비트를 선택신호의 최하위 비트로하여 상기 전단의 각 멀티플렉서에서 출력된 판정 비트를 차례대로 입력받는 한편, 선택신호의 나머지 상위 비트는 상기 스테이트용 레지스터에서 출력된 스테이트의 최하위 비트부터 차례대로 입력받도록 된 것을 특징으로 하는 비터비 복호기의 트레이스백 진행 구조.
KR1019960021448A 1996-06-14 1996-06-14 비터비 디코더의 트레이스백 진행 구조 KR100212836B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019960021448A KR100212836B1 (ko) 1996-06-14 1996-06-14 비터비 디코더의 트레이스백 진행 구조
US08/876,554 US5878092A (en) 1996-06-14 1997-06-16 Trace-back method and apparatus for use in a viterbi decoder
EP97109771A EP0813308A3 (en) 1996-06-14 1997-06-16 Trace-back method and apparatus for use in a viterbi decoder
JP9158544A JPH10117149A (ja) 1996-06-14 1997-06-16 ビタービ復号化器用トレースバック装置及びトレースバック方法
CN97118022A CN1175825A (zh) 1996-06-14 1997-06-16 用于viterbi解码器中的追溯方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960021448A KR100212836B1 (ko) 1996-06-14 1996-06-14 비터비 디코더의 트레이스백 진행 구조

Publications (2)

Publication Number Publication Date
KR980006963A KR980006963A (ko) 1998-03-30
KR100212836B1 true KR100212836B1 (ko) 1999-08-02

Family

ID=19461883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960021448A KR100212836B1 (ko) 1996-06-14 1996-06-14 비터비 디코더의 트레이스백 진행 구조

Country Status (5)

Country Link
US (1) US5878092A (ko)
EP (1) EP0813308A3 (ko)
JP (1) JPH10117149A (ko)
KR (1) KR100212836B1 (ko)
CN (1) CN1175825A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580160B1 (ko) * 1999-09-14 2006-05-15 삼성전자주식회사 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
KR100686170B1 (ko) 2004-11-30 2007-02-23 엘지전자 주식회사 디코딩 장치 및 이를 이용한 디코딩 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR980006964A (ko) * 1996-06-29 1998-03-30 김주용 격자복호기의 역추적장치
KR100237490B1 (ko) * 1997-11-29 2000-01-15 전주범 트렐리스 코드 데이터의 생존 경로 역추적 장치
KR100584530B1 (ko) * 1998-10-01 2006-09-22 삼성전자주식회사 고배속 비터비 검출기
JP3700818B2 (ja) * 1999-01-21 2005-09-28 Necエンジニアリング株式会社 誤り訂正回路
US6378106B1 (en) * 1999-05-28 2002-04-23 Lucent Technologies Inc. Viterbi decoding using single-wrong-turn correction
US6622283B1 (en) * 2000-01-28 2003-09-16 Nec Electronics, Inc. Digital signal processor decoding of convolutionally encoded symbols
TWI232652B (en) * 2000-10-08 2005-05-11 Koninkl Philips Electronics Nv Device for reconstructing a runlength constrained sequence
TW536872B (en) * 2002-07-03 2003-06-11 Via Optical Solution Inc Viterbi decoding device and method for multi-input data and multi-output data
US7171609B2 (en) * 2003-02-03 2007-01-30 Verisilicon Holdings Company Ltd. Processor and method for convolutional decoding
US7496159B2 (en) * 2003-12-01 2009-02-24 Mediatek Inc. Survivor memory management in a Viterbi decoder
US7275204B2 (en) * 2004-09-30 2007-09-25 Marvell International Ltd. Distributed ring control circuits for Viterbi traceback
US20060068911A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US8185810B1 (en) * 2007-04-13 2012-05-22 Link—A—Media Devices Corporation Low power viterbi trace back architecture
JP4585581B2 (ja) * 2008-06-24 2010-11-24 株式会社東芝 最尤復号器および復号方法
JP2010206570A (ja) * 2009-03-04 2010-09-16 Sony Corp 復号装置、復号方法
US11165446B1 (en) * 2020-11-05 2021-11-02 Nxp B.V. Parallel backtracking in Viterbi decoder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4571734A (en) * 1983-08-05 1986-02-18 International Business Machines Corporation Method and apparatus for decoding the output signal of a partial-response class-IV communication or recording-device channel
FR2686751B1 (fr) * 1992-01-24 1997-03-28 France Telecom Procede de decodage a maximum de vraisemblance a treillis de decodage sous-echantillonne, et dispositif de decodage correspondant.
JP3042182B2 (ja) * 1992-05-29 2000-05-15 日本電気株式会社 再生データ検出方式
KR0135796B1 (ko) * 1994-11-14 1998-04-27 김광호 비터비복호기에서 트레이스백 수행장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580160B1 (ko) * 1999-09-14 2006-05-15 삼성전자주식회사 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
KR100686170B1 (ko) 2004-11-30 2007-02-23 엘지전자 주식회사 디코딩 장치 및 이를 이용한 디코딩 방법

Also Published As

Publication number Publication date
EP0813308A3 (en) 2001-01-31
EP0813308A2 (en) 1997-12-17
US5878092A (en) 1999-03-02
CN1175825A (zh) 1998-03-11
JPH10117149A (ja) 1998-05-06
KR980006963A (ko) 1998-03-30

Similar Documents

Publication Publication Date Title
KR100212836B1 (ko) 비터비 디코더의 트레이스백 진행 구조
KR100195745B1 (ko) 비터비 복호화기의 가산 비교 선택 장치
JP5618247B2 (ja) 複数ステップ・トレリスを使用するソフト出力ビタビ検出の方法および装置
KR100350502B1 (ko) 이동통신시스템의 구성 복호기 및 방법
KR100195741B1 (ko) 가변 레이트 비터비 복호화기
KR100779782B1 (ko) 비터비 디코더 용 고속 acs 유닛
US7277507B2 (en) Viterbi decoder
JP2000209106A (ja) 高速ビタビ復号器の最小量のメモリによる実現
US5410555A (en) Viterbi decoding apparatus
JP3264855B2 (ja) トーレス削除方法を用いるビタビ復号器における生存者メモリ
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
KR100192794B1 (ko) 비터비 디코더의 트레이스백 진행 구조
JP2002534902A (ja) 復号装置におけるエム・エル状態選択装置及び方法
KR100491016B1 (ko) 역방향 상태 천이의 연속적 제어에 의한 역추적 비터비복호기 및 그 방법
US20100185925A1 (en) Differential Locally Updating Viterbi Decoder
JPH10200419A (ja) ビタビ復号方法および装置
KR100410995B1 (ko) 즉시역추적 알고리즘을 이용한 비터비 복호기용 생존경로메모리 관리 방법 및 그 장치
KR100359805B1 (ko) 비터비 디코더 및 비터비 디코더의 디코딩 방법
KR0169678B1 (ko) 비터비 복호기
Bonek et al. A variable rate constraint length K= 5 Viterbi decoder for 12 Mb/s
Lin et al. Stage-Hopping Memory Management Technique for Viterbi Decoders

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
LAPS Lapse due to unpaid annual fee