KR0169681B1 - 비터비 복호기 - Google Patents

비터비 복호기 Download PDF

Info

Publication number
KR0169681B1
KR0169681B1 KR1019950069164A KR19950069164A KR0169681B1 KR 0169681 B1 KR0169681 B1 KR 0169681B1 KR 1019950069164 A KR1019950069164 A KR 1019950069164A KR 19950069164 A KR19950069164 A KR 19950069164A KR 0169681 B1 KR0169681 B1 KR 0169681B1
Authority
KR
South Korea
Prior art keywords
branch
bit
length
look
path
Prior art date
Application number
KR1019950069164A
Other languages
English (en)
Other versions
KR970055625A (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 KR1019950069164A priority Critical patent/KR0169681B1/ko
Publication of KR970055625A publication Critical patent/KR970055625A/ko
Application granted granted Critical
Publication of KR0169681B1 publication Critical patent/KR0169681B1/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/4123Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing the return to a predetermined state
    • 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

본 발명은 비터비 복호기에 관한 것으로서, 특히 본 발명은 보다 높은 전송율을 갖는 천자 부호화를 행하는 경우에 복잡도를 감소시키기 위해 가지 길이를 계산하는 부분을 룩-업 테이블로 간단히 구현하여 스테이트 수가 많은 디지탈 위성 방송과 같은 시스템에 적용하면 전체 스테이트 수가 64 개 이므로 회로의 복잡도를 감소시킬 수 있으며, 전체 가지 길이를 구하는 테이블은 같은 내용을 가지고 있으므로 하나의 테이블을 사용하여 전체 스테이트에 대한 가지 길이를 구하도록 처리할 수 있을 뿐만 아니라, 고속의 동작에서도 한 클럭이면 결과값을 얻을 수 있고, 룩-업 테이블은 천자 부호화율이 변하여도 전혀 변화가 없다는데 그 이점이 있다.

Description

비터비 복호기
제1도의 (a)와 (b)는 비터비 복호화를 위한 트렐리스도.
제2도는 일반적인 비터비 복호기의 구성 블럭도.
제3도는 종래의 가지 길이 계산부에 대한 구성 블럭도.
제4도는 천자 패턴 발생기에 대한 세부 구성도.
제5도는 가지 길이 계산기에 대한 세부 회로도.
제6도는 본 발명에 따른 비터비 복호기의 구성 블럭도이다.
* 도면의 주요부분에 대한 부호의 설명
100 : 가지 길이 계산부 100A : 룩-업 테이블
200 : ACS 부 300 : 경로 저장부
본 발명은 비터비 복호기(Viterbi decoder)에 관한 것으로서, 특히 보다 높은 전송율을 갖는 천자 부호화(punctured coding)를 행하는 경우에 복잡도를 감소시키기 위해 가지 길이(branch metric)를 계산하는 부분을 룩-업 테이블(look-up table)로 간단히 구현한 비터비 복호기에 관한 것이다.
길쌈 복호화(Convolution decoding)는 길쌈 부호화 방식에 의해 부호화된 부호어 시퀀스를 복호화하여 부호화되기 전의 비트 시퀀스, 즉 메세지 비트 시퀀스를 재생시키는 것을 말한다.
길쌈 복호화 방식에서는 최대 근사 복호화 방식(MLH: maximum likelihood decoding)을 이용하는데, 최대 근사 복호화 방식이라 함은 디지탈 신호가 전송 중에 전송로상에서 오류가 발생한다는 가정하에 수신기에 수신된 부호어 시퀀스를 복호화하는 방식이다.
수신기에 반송파로 변조된 부호어, 즉 디지탈 신호가 입력되면 복조기에서 부호어 시퀀스를 복조하고 이 부호어 시퀀스가 복호기에 입력되면 이 부호어를 송신기에서 전송가능한 모든 부호어로 비교하고 이 비교치 중에서 가장 비슷한 비교 부호어를 선택해서 이 비교 부호어가 송신기에서 송신된 오류가 없는 부호어라고 가정하고 이 선택된 부호어에 의해 메세지 비트를 재생시키는 것이다. 이와 같이 수신된 부호어를 비교 부호어와 비교해서 가장 비슷한 것을 선택하여 복호화한다 해서 최대 근사 복호화 방식(MLH)이라고 한다.
최대 근사 복호화 방식(MLH)에 대해서 좀더 구체적으로 설명하면, 최대 근사 복호화 방식(MLH)은 입력되는 부호어 하나마다 복호화해서 메세지 비트를 1 비트씩 전송하는 것이 아니고 일정한 길이를 가진 부호어, 즉 부호어 시퀀스의 일정한 길이를 모두 비교한 후 이중에 가장 비슷한 비교 부호어 시퀀스를 선택해서 이 비교 부호어 시퀀스에 해당하는 메세지 비트 시퀀스를 출력시킨다.
따라서, 하나의 부호어 시퀀스를 모드 비교한 후에 한개의 비교 부호어 시퀀스를 선택할 때 까지는 이 동안에 발생된 모든 정보를 기억하고 있어야 한다.
최대 근사 복호화 방식(MLH)을 설명하기 위해 송신기에는 1/2 부호 비율을 가진 부호기에 의해 메세지 비트가 부호화된다고 가정하자.
따라서, 부호기에서는 메세지 비트 1 비트에 의해 2 비트로 구성된 부호어를 출력시킨다.
이 부호어로 구성된 부호어 시퀀스가 변조기에서 변조되어 전송로를 전송중에 부호어 시퀀스를 구성하는 각각의 비트마다 서로 독립적으로 부가되는 잡음, 즉 백색 잡음(additive guassuin white noise: AGWN)이 부가된다고 하면 전송 부호어 시퀀스에 오류가 발생할 수 있게 된다. 따라서, 오류가 발생한 부호어 시퀀스를 그대로 복호화하면 메세지 비트에 오류가 발생한다. 지금 부호기의 시프트 레지스터의 상태가 000 이라면 입력 비트 내용에 따라 2 가지 상태의 부호어를 출력시키는데 메세지 비트가 0 이면 부호어는 00, 1 이면 부호어는 11 이 된다.
이 경우에는 메세지 비트 1 에 의해 부호어 11 이 출력됐다고 하면, 이 부호어 복호기에서 복호화할 때에는 복호기에서 미리 부호기의 시프터 레지스터 상태를 인지하고 있으므로 전송로에서 디지탈 신호에 오류가 발생하지 않아 복호기 입력에 11 이 들어오면 메세지 비트 1 을 정확히 출력시킨다. 그런데, 디지탈 신호가 전송 중 오류가 발생하여 부호기의 출력 11 이 01 로 변이되어 복호기에 입력되면 복호기에서 01 을 복호화할 수 없어 메세지 비트를 1 로 재생시키지 못해 메세지 비트에 오류가 발생하게 된다.
또한, 만약 복호기에 입력된 부호어가 11 이 아니고 00 로 변이됐다고 하면 복호기는 메세지 비트를 0 으로 간주하여 출력시킴으로 메세지 비트에 오류가 발생하게 된다. 따라서, 이것을 방지하기 위해 일정한 길이의 수신 부호어 시퀀스를 부호기에서 출력 가능한 모든 부호어, 즉 1/2 부호 비율에서는 00, 01, 10, 11 의 4 개 부호어로 비교해서 이중 가장 비슷한 비교 부호어 시퀀스를 선택하여 오류가 없는 수신 부호어 시퀀스라고 간주하여 이 비교 부호어 시퀀스에 해당하는 메세지 비트를 차례로 복호화해서 출력시킨다.
따라서, 최대 근사 복호화 방식(MLH)은 일정한 길이의 수신 부호어 시퀀스를 수신해서 비교 부호어로 비교를 완료한 후 가장 비슷한 비교 부호어를 선택해서 복호화할 때까지 수신된 부호 시퀀스를 기억하고 있어야 한다.
또한, 이 기간 중에 계속 입력되고 있는 수신 부호어를 기억하고 있어야 하므로 기억 용량이 커지고 비교가 완료될 때까지 비교 부호어 시퀀스(1/2 부호 비율에서는 4 개의 비교 부호어가 있다.)를 모두 기억하고 있어야 하므로 회로가 복잡해진다. 이와 같은 최대 근사 복호화 방식(MLH)의 복잡성을 개선한 방식이 바로 비터비 복호화(Viterbi decoding) 방식이다.
비터비 복호화(Viterbi decoding) 방식은 상기 최대 근사 복호화 방식(MLH)을 기초로 해서 발전된 것이며 최대 근사 복호화 방식의 복잡성을 매우 감소시킨 것으로 1967년 비터비(Viterbi)에 의해 최초로 비터비 복호화 알고리즘이 개발, 분석되었으며, 비터비 복호화에 대한 효율적이고 실제적인 기법은 헬러(Heller)에 의해 최초로 제시되었다.
비터비 복호화는 포워드 에러 정정(FEC: Forward Error Correcting) 길쌈 부호에 대한 최대 근사 복호화기법으로써, 통신 채널에서 높은 불규칙 오류(Random error) 정정 능력을 가짐으로 위성 통신에 적합한 방식이다.
비터비 복호기의 오류 정정은 부호기에서 출력된 모든 부호어 시퀀스에서 수신된 부호어에 가장 근접한 부호어를 선택하므로써 이루어진다.
비터비 최대 근사 복호기의 가장 큰 장점으로는 N 개의 메세지 비트를 복호화하는데 최대 근사 복호기에서와 같이 메세지 비트수에 의해 복호기의 동작이 지수 함수적으로 급격히 증가하지 않고 단지 N2k-1만큼만 증가하는데 있다.
즉, 메세지 비트수와는 선형적인 관계를 가지며 여기서 시프트 레지스터의 단수 K 와는 지수 함수적 관계를 가지므로 K 값을 많이 할 수 없으나 다행히 이 방식은 K 값이 작아도 기능을 충분히 발휘할 수 있다.
비터비 복호화 알고리즘은 트렐리스도를 사용하여 최대 근사 복호화를 수행하는 알고리즘으로 다이나믹 프로그래밍의 일종이라고 할 수 있는데, 비터비 복호화 알고리즘은 어느 시점에서 서로 다른 경로를 가진 2 개의 경로가 서로 만나면 이 2 개의 경로에 대한 경로 길이(hamming distance)를 비교해서 경로 길이가 짧은, 즉 오류 발생 확률이 낮은 하나의 경로만 선택하고 이중 경로 길이가 긴 것은 경로 기억(path memory)에서 지워버리는 것이다.
이때 남은 경로를 유지 경로(surviving path)라고 한다. 유지 경로의 결정은 매 시점에서 수행되는데 이때마다 경로 길이가 긴 경로는 삭제시킴으로써 복호화의 복잡성을 피하고 기억 용량의 증가를 방지할 수 있다.
이렇게 하여 어느 시점에서 맨처음 t1에서 수신된 부호어에 해당하는 가지(branch)가 현재 남은 각 경로에 공유되는데 이 때에 최초로 t1의 가지 부호어를 복호화하여 메세지 비트의 최초 비트를 출력시킨다.
여기서, 최적의 경로를 선택하는 것은 최대 근사값을 가진 부호어를 선택하여 가는 것으로 1969년 오무라(Omura)는 비터비 알고리즘은 사실 최대 근사 알고리즘이라고 발표하기도 했다.
제1도의 (a)와 (b)는 비터비 복호화를 위한 트렐리스도를 나타낸 것으로서, 제1도의 (a)에서 도시된 바와 같이 유한 상태 장치(Finite state machine)은 트렐리스를 통해서 어떠한 경로를 선택하고, 관찰되는 상태의 천이로 인해 시간 간격 (k, k+1)의 가지 길이(branch metric) λ 가 계산된다. 이때 최대 근사 경로는 비터비 알고리즘에 의하여 반복적으로(recursive) 계산된다.
즉, 복호화시에는 수신 신호와 대응하는 가지의 코드간 거리, 즉 가지 길이(branch metric) λ를 계산하게 되는데, 이 거리는 신호 판별의 기준이 되는 것으로 이를 메트릭(metric)이라고 한다. 메트릭은 경판정(hard decision) 복호의 경우에는 해밍 거리(hamming distance)가 되고, 연판정(soft decision) 복호의 경우에는 유클리디안 거리(Euclidean distance)가 된다.
제1도의 (b)를 참조하면, 이때 시간 k 의 N 노드들 각각에 대한 최적 경로를 계산하게 되는데, 노드 S1,k+1과 S2,k+1의 새로운 경로 메트릭(path metric)γ1,k+1, γ2,k+1은 다음과 같다
γ1,k+1=maximum(λ11,k1,k, λ12.,k2.,k)
γ2,k+1=maximum(λ21,k+γ1,k, λ22.k2.k)
제1도의 (b)에서 D(survivor depth)는 경로들을 역추적(trace back)할 때, 매우 높은 확률로 합쳐지게(merge) 되는 시간 단계의 수를 의미하며, 실제 구현시 비터비 알고리즘의 복호화 잠재력을 좌우하게 된다.
제2도는 일반적인 비터비 복호기의 구성 블럭도로서, 수신 데이타를 입력받아 각 가지(branch)에 대한 길이를 계산하는 가지 길이 계산부(100: Branch Metrics Unit); 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값(branch metrics)을 받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS(Adder Comparator Selector)부(200); 및 상기 ACS부(200)에서 선택된 유지 경로(survivor)를 저장하는 경로 저장부(300)로 구성된다.
상기와 같이 구성된 비터비 복호기에 대한 기본적인 동작 원리를 살펴보면 다음과 같다.
입력단으로 들어오는 데이타는 단계별로 연속해서 통과한다고 가정하자.
가지 길이 계산부(100)는 입력 데이타를 받아서 각 가지에 대한 길이 즉, 가지 길이(branch metric) λij,k를 계산하는데, 수신 부호어의 길이 즉, 부호기의 출력 부호어의 길이와 직접 관계가 있는 것으로 부호어의 구성 비트 수가 많을수록 회로가 복잡해진다.
예를 들면, 부호어가 2 비트로 구성되면 수신된 부호어 2 비트를 비교하기 위한 비교 부호어는 22개 즉, 4 개가 필요하고 4 번 비교하는데 대해 부호어가 3 비트로 구성되면 하나의 수신 부호어를 비교해서 가지 길이를 계산하는데는 23개 즉, 8 개의 비교 부호어가 필요하게 된다.
즉, 3 비트로 구성된 부호어가 전송 중에 다른 부호어로 바뀔 가능성이 7 번 있으므로 하나의 부호어를 수신하는데 8 번 비교해야 한다.
또한, 부호어 길이가 길어지면 부호어 길이가 짧을 때보다 가지 길이의 결과 값이 커지게 되는데 결국 가지 길이 값이 크다는 것은 이 가지 길이 값이 커진만큼 가지 길이를 기억하기 위한 기억 용량이 커져야 하므로 다음단의 ACS부(200)가 복잡해지게 된다.
ACS부(200)에서는 가지 길이 계산부(100)에서 계산한 가지 길이 값을 받아서 바로 전의 경로 길이 값에 더하고, 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 유지 경로로서 기억시킨다.
이때 ACS 기능은 2k-1시프트 레지스터(도시하지 않음) 상태의 각각, 즉 각 노드(node)점에서 행해지는데 복호화 속도가 높은 것이 요구될 때에는 ACS 장치를 2k-1개, 즉 각 노드점마다 별도로 설치해야 하므로 복호화 속도가 높은 경우에는 ACS 장치가 복잡해진다.
따라서, 복호기를 간단히 하려면 ACS 장치가 이상적으로 동작하고 ACS 장치를 구성하는 회로가 적정하게 설계되어야 한다.
이와 같이 ACS 장치에서 선택된 유지 경로들이 경로 저장부(300)에 저장되었다가 경로 저장부(300)에서 경로 길이 값이 가장 작은 경로가 선택되어 이 경로에 의해 메세지를 출력시킬 때에 ACS부(200)로부터 이에 대한 경로 선택 신호를 받아 해당 경로의 부호어 시퀀스를 복호화해서 메세지 비트를 출력시킨다.
한편, 디지탈 위성 방송에서는 보다 높은 전송율을 얻기 위하여 채널 데이타를 천자(puncturing)하는 기법을 사용하고 있다. 이는 기존의 전송율보다 20% 이상 더 높은 전송율을 얻을 수 있기 때문에 최근 들어서 각종 디지탈 전송 시스템에서 많이 채용하고 있다.
그러나, 상기와 같은 경우 천자(puncturing)로 인해 약간의 성능 저하 뿐만 아니라 비터비 복호기를 구현하는데 있어서 복잡도가 증가하게 된다.
제3도는 종래의 가지 길이 계산부에 대한 구성 블럭도로서, 비터비 복호기는 제2도에 도시된 바와 같이 가지 길이 계산부(100), ACS부(200), 경로 저장부(300) 등의 세부분으로 구성되는데 제3도는 그 중에서도 가지 길이 계산부(100)에서 천자된 데이타를 처리하는 부분을 도시한 것이다.
제3도에 도시된 바와 같이, 가지 길이 계산부(100)는 트렐리스에 따라 기준 부호어(Reference code word: y0, y1)를 발생시키는 기준 부호 발생기(110: Reference code Generator)와; 가지 길이(branch metric)에 대한 계산을 하지 않도록 하기 위해 제어 신호(metric calculation inhibit signal: INH0, INH1)를 출력하는 천자 패턴 발생기(120: Perforation Pattern Generator); 상기 기준 부호 발생기(110)로부터의 기준 부호어(y0, y1)와 복조기(도시하지 않음)로부터의 양자화된 채널 입력 신호(Z0, Z1)를 입력받아 상기 천자 패턴 발생기(120)로부터의 제어 신호(INH0, INH1)에 따라 가지 길이를 계산하는 가지 길이 계산기(130)로 구성된다.
제4도는 천자 패턴 발생기에 대한 세부 구성도이고, 제5도는 가지 길이 계산기의 세부 회로도로서, 제3도, 제4도와 제5도를 함께 참조하여, 상기 가지 길이 계산부(100)의 동작을 설명하면 다음과 같다.
제3도에 도시된 바와 같이, 트렐리스에 따라 기준 부호어(y0, y1)를 기준 부호 발생기(110)에서 발생시키는데, 기준 부호어(y0, y1)는 00, 01, 10, 11 의 4 가지 경우를 갖게 된다.
천자 패턴 발생기(120)에서는 가지 길이(branch metric)에 대한 계산을 하지 않도록 하기 위해 제어 신호 INH0, INH1 를 출력하는데, 이때 제어신호 INH0, INH1 가 0이면 가지 길이(branch metric)에 대한 계산을 하지 않도록 한다.
제4도에 도시된 바와 같이, R=3/4 에 대한 패턴이 S0=101, S1=110 일 경우, 0 에 해당하는 부분에 대해서는 제어 신호(inhibit signal)가 온 이 되어 가지 길이(branch metric)에 대한 계산이 수행되지 않는다.
한편, 천자(puncturing)에 대해서 잠시 살펴보면, 상기 R=3/4 부호의 S0, S1이 각각 101, 110 이라는 것은 예를 들어, X(x1, x2, x3), Y(y1, y2, y3)라는 데이터가 있을 때 상기의 패턴처럼 X 중에서는 (x1, x3), Y 중에서는 (y1, y2)만 남고 나머지 0 의 위치는 삭제함으로써 결국, B1(x1, y1), B2(x2, y2), B3(x3, y3)의 3 비트 입력이 x1, x3, y1, y2의 4 비트만 출력되므로 3/4 부호가 된다.
또한, 가지 길이 계산기(130)에서는 상기 기준 부호 발생기(110)로부터의 기준 부호어(y0, y1)와 복조기로부터의 양자화된 채널 입력 신호(Z0, Z1)를 입력받아 상기 천자 패턴 발생기(120)로부터의 제어 신호 INH0, INH1에 따라 가지 길이를 계산한다.
제5도에 도시된 바와 같이, 기준 부호어 y0, y1이 각각 양자화된 채널 입력 신호 Z0=q0, q1, q2, Z1=q0, q1, q2와 배타적 논리합(XOR)을 수행한 후 그 결과 값들과 제어 신호 INH0, INH1 에 대해 각각 논리곱(AND)을 수행하며, 4 비트 가산기에서 그 결과 값들을 가산하면 4 비트의 가지 길이 λy1이 출력되며, 기준 부호어 y0, y1이 각각 양자화된 채널 입력 신호 Z0=q0, q1, q2, Z1=q0, q1, q2와 배타적 논리합(XOR)을 수행한 후 그 결과값들 중 기준 부호어 y0와 관련된 결과값을 인버팅한 값과 기준 부호어 y1과 관련된 결과값 및 제어 신호 INH0, INH1 에 대해 각각 논리곱(AND)을 수행하며, 4 비트 가산기에서 그 결과 값들을 가산하면 4 비트의 가지 길이 λy1y0이 출력되고, 기준 부호어 y0, y1이 각각 양자화된 채널 입력 신호 Z0=q0, q1, q2, Z1=q0, q1, q2와 배타적 논리합(XOR)을 수행한 후 그 결과값들 중 기준 부호어 y0와 관련된 결과값과 기준 부호어 y1과 관련된 결과값을 인버팅한 값 및 제어 신호 INH0, INH1 에 대해 각각 논리곱(AND)을 수행하며, 4 비트 가산기에서 그 결과 값들을 가산하면 4 비트의 가지 길이값 λy0이 출력되며, 기준 부호어 y0, y1이 각각 양자화된 채널 입력 신호 Z0=q0, q1, q2, Z1=q0, q1, q2와 배타적 논리합(XOR)을 수행한 후 그 결과 값들을 인버팅한 값과 제어 신호 INH0, INH1 에 대해 각각 논릭곱(AND)을 수행하며, 4 비트 가산기에서 그 결과 값들을 가산하면 4 비트의 가지 길이값 λ이 출력된다.
제5도에 도시된 바와 같이 종래의 가지 길이 계산기는 배타적 논리합 게이트 6 개, 인버터 12 개, 논리곱 게이트 24 개, 4 비트 가산기 4 개 등의 여러 가지 로직 게이트로 구성되어 있기 때문에 고속으로 동작시킬 경우 한 클럭으로 동작을 처리하기 어렵다는 문제점이 있다. 물론, 이를 위해 고속으로 동작하는 소자를 이용하여 구현하면 가능하겠지만 그럴 경우에는 하드웨어 구현 비용이 상승하게 된다는 문제점이 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 보다 높은 전송율을 갖는 천자 부호화(punctured coding)를 행하는 경우에 복잡도를 감소시키기 위해 가지 길이(branch metric)를 계산하는 부분을 룩-업 테이블로 간단히 구현한 비터비 복호기를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 비터비 복호기는, 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부; 상기 가지 길이 계산부로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부; 및 상기 ACS부에서 선택된 유지 경로를 저장하는 경로 저장부로 구성된 일반적인 비터비 복호기에 있어서, 상기 가지 길이 계산부가 양자화된 3 비트의 두 입력 신호와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호 및 2 비트의 기준 부호어에 대한 비트 값을 모두 합한 10 비트를 어드레스로 하고, 그 어드레스에 해당하는 공간에 상기 10 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓은 룩-업 테이블로 구현된 것을 특징으로 한다.
또한, 상기와 같은 목적을 달성하기 위한 본 발명의 다른 비터비 복호기는, 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부; 상기 가지 길이 계산부로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부; 및 상기 ACS부에서 선택된 유지 경로를 저장하는 경로 저장부로 구성된 일반적인 비터비 복호기에 있어서, 상기 가지 길이 계산부가 양자화된 3 비트의 두 입력 신호와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호에 대한 비트 값을 합한 8 비트를 어드레스로하고, 그 어드레스에 해당되는 공간에 상기 8 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓은 룩-업 테이블로 구현된 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 대하여 상세히 설명하기로 한다.
제6도는 본 발명에 따른 비터비 복호기의 구성을 나타낸 블럭도로서, 본 발명의 제1실시예에 해당되는 경우에는 룩-업 테이블(100A)로 기준 부호 발생기(도시하지 않음)로부터의 2 비트 기준 부호어(y0, y1)가 직접 입력되고, 본 발명의 제2실시예에 해당되는 경우에는 룩-업 테이블(100A)에 00, 01, 10, 11 의 4 가지 경우를 나타내는 2 비트 기준 부호어(y0, y1)가 미리 저장되어 있다.
수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부(100); 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부(200); 및 상기 ACS부(200)에서 선택된 유지 경로를 저장하는 경로 저장부(300)로 구성된 일반적인 비터비 복호기에 있어서, 본 발명의 제1실시예에 해당하는 비터비 복호기는 상기 가지 길이 계산부(100)가 복조기(도시하지 않음)로부터의 양자화된 3 비트(q0, q1, q2)의 두 입력 신호(Z0, Z1)와 천자 패턴 발생기(도시하지 않음)로부터의 가지 길이(branch metric)의 계산여부를 결정하는 1 비트의 두 제어 신호(INH0, INH1) 및 기준 부호 발생기(도시화지 않음)로부터의 2비트의 기준 부호어(y0, y1)에 대한 비트 값을 모두 합한 10 비트를 어드레스로 하고, 그 어드레스에 해당되는 영역에 상기 10 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓은 룩-업 테이블(100A)로 구현된다.
여기서, 상기 룩-업 테이블(100A)은 특정 용도 집적 회로(ASIC: Application Specific Integrated Circuit)로 구현할 수 있으며, 또한 상기 룩-업 테이블(100A)은 ROM(Read only Memory)으로 구현할 수 있다.
이어서, 본 발명의 제2실시예에 해당하는 비터비 복호기는 상기 가지 길이 계산부(100)가 복조기로부터의 양자화된 3 비트(q0, q1, q2)의 두 입력 신호(Z0, Z1)와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호(INH0, INH1)에 대한 비트 값을 합한 8 비트를 어드레스로 하고, 그 어드레스에 해당되는 공간에 상기 8 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해 놓은 룩-업 테이블(100A)로 구현된다.
여기서, 상기 룩-업 테이블(100A)은 범용 집적 회로로 구현할 수 있으며, 또한 상기 룩-업 테이블(100A)은 ROM(Read only Memory)으로 구현할 수 있다.
이어서, 상기와 같이 구성되는 본 발명의 동작과 효과를 살펴보면 다음과 같다.
본 발명의 제1실시예에 해당하는 비터비 복호기의 룩-업 테이블(100A)는 상기 가지 길이 계산부(100)가 복조기(도시 하지 않음)로부터의 양자화된 3 비트(q0, q1, q2)의 두 입력 신호(Z0, Z1)와 천자 패턴 발생기(도시하지 않음)로부터 가지 길이(branch metric)의 계산 여부를 결정하는 1 비트의 두 제어 신호(INH0, INH1) 및 기준 부호 발생기(도시하지 않음)로부터 2 비트의 기준 부호어(y0, y1)에 대한 비트 값을 모두 합한 10 비트를 어드레스로 하고 즉 210개(1024)의 어드레스로 하고, 그 어드레스에 해당되는 영역에 상기 10 비트의 입력 신호가 인가되었을 경우의 결과 값(16 비트)을 미리 구하여 저장해놓고, 지정된 어드레스에 의해 각각 4 비트에 해당하는 λy1y0, λy1, λy0, λ를 연결망(도시하지 않음)에 따라 다음단의 ACS부(200)로 출력한다.
이때, 상기 룩-업 테이블(100A)을 구현한 특정 용도 집적 회로(ASIC)는 특정한 수요자만을 위한 회로이기 때문에 전용 집적 회로라고도 하며, 입력 신호에 따라 결과 값이 정해져 있기 때문에 ROM(Read only Memory)을 이용하게 된다.
이어서, 본 발명의 제2실시예에 해당하는 비터비 복호기의 룩-업 테이블(100A)는 상기 가지 길이 계산부(100)가 복조기로부터의 양자화된 3 비트(q0, q1, q2)의 두 입력 신호(Z0, Z1)와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호(INH0, INH1)에 대한 비트 값을 합한 8 비트를 어드레스로 하고 즉, 28개(256개)의 어드레스로 하고, 그 어드레스에 해당되는 공간에 상기 8 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓고, 지정된 어드레스에 의해 각각 4 비트에 해당하는 λy1y0, λy1, λy0, λ를 연결망(도시하지 않음)에 따라 다음단의 ACS부(200)로 출력한다.
이때에는 기준 부호어(y0, y1)가 00, 01, 10, 11 의 4가지 경우가 있다는 것을 미리 저장해 놓으므로 입력 신호로서 받을 필요가 없다.
여기서, 상기 룩-업 테이블(100A)은 불특정 다수인 시스템 수요자를 위한 범용 집적 회로로 구현한 것이며, 입력되는 신호에 따라 결과 값이 정해져 있기 때문에 마찬가지로 ROM 을 사용한다.
이상에서 서술한 바와 같이 본 발명을 스테이트 수가 많은 디지탈 위성 방송과 같은 시스템에 적용할 경우에 전체 스테이트 수가 64 개이므로 회로의 복잡도를 감소시킬 수 있으며, 전체 가지 길이를 구하는 테이블을 같은 내용을 가지고 있으므로 하나의 테이블을 사용하여 전체 스테이트에 대한 가지 길이를 구하도록 처리할 수 있을 뿐만 아니라, 고속의 동작에서도 한 클럭이면 결과값을 얻을 수 있고, 룩-업 테이블은 천자 부호화율이 변하여도 전혀 변화가 없다는데 그 효과가 있다.

Claims (6)

  1. 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부(100); 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부(200); 및 상기 ACS부(200)에서 선택된 유지 경로를 저장하는 경로 저장부(300)로 구성된 일반적인 비터비 복호기에 있어서, 상기 가지 길이 계산부(100)가 양자화된 3 비트의 두 입력 신호와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호 및 2 비트의 기준 부호어에 대한 비트 값을 모두 합한 10 비트를 어드레스로 하고, 그 어드레스에 해당되는 영역에 상기 10 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓은 룩-업 테이블(100A)로 구현된 것을 특징으로 하는 비터비 복호기.
  2. 제1항에 있어서, 상기 룩-업 테이블(100A)이 특정 용도 집적 회로(ASIC)로 구현된 것을 특징으로 하는 비터비 복호기.
  3. 제1항에 있어서, 상기 룩-업 테이블(100A)이 ROM 으로 구현된 것을 특징으로 하는 비터비 복호기.
  4. 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부(100); 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부(200); 및 상기 ACS부(200)에서 선택된 유지 경로를 저장하는 경로 저장부(300)로 구성된 일반적인 비터비 복호기에 있어서, 상기 가지 길이 계산부(100)가 양자화된 3 비트의 두 입력 신호와 가지 길이의 계산 여부를 결정하는 1 비트의 두 제어 신호에 대한 비트 값을 합한 8 비트를 어드레스로 하고, 그 어드레스에 해당되는 공간에 상기 8 비트의 입력 신호가 인가되었을 경우의 결과 값을 미리 구하여 저장해놓은 룩-업 테이블(100A)로 구현된 것을 특징으로 하는 비터비 복호기.
  5. 제4항에 있어서, 상기 룩-업 테이블(100A)이 범용 집적 회로로 구현된 것을 특징으로 하는 비터비 복호기.
  6. 제4항에 있어서, 상기 룩-업 테이블(100A)이 ROM 으로 구현된 것을 특징으로 하는 비터비 복호기.
KR1019950069164A 1995-12-30 1995-12-30 비터비 복호기 KR0169681B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950069164A KR0169681B1 (ko) 1995-12-30 1995-12-30 비터비 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950069164A KR0169681B1 (ko) 1995-12-30 1995-12-30 비터비 복호기

Publications (2)

Publication Number Publication Date
KR970055625A KR970055625A (ko) 1997-07-31
KR0169681B1 true KR0169681B1 (ko) 1999-03-20

Family

ID=19448324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950069164A KR0169681B1 (ko) 1995-12-30 1995-12-30 비터비 복호기

Country Status (1)

Country Link
KR (1) KR0169681B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999521B1 (en) * 1999-12-23 2006-02-14 Lucent Technologies Inc. Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques

Also Published As

Publication number Publication date
KR970055625A (ko) 1997-07-31

Similar Documents

Publication Publication Date Title
US4583078A (en) Serial Viterbi decoder
EP0967730B1 (en) Convolutional decoder with modified metrics
US6597743B1 (en) Reduced search symbol estimation algorithm
US5881073A (en) Convolutional decoding with the ending state decided by CRC bits placed inside multiple coding bursts
KR100195745B1 (ko) 비터비 복호화기의 가산 비교 선택 장치
US7765459B2 (en) Viterbi decoder and viterbi decoding method
EP0671817A1 (en) Soft symbol decoding for use in an MLSE-equaliser or convolutional decoder
US5446746A (en) Path memory apparatus of a viterbi decoder
US4630032A (en) Apparatus for decoding error-correcting codes
JPH07221655A (ja) 通信システムおよび情報処理方法
US5014275A (en) Sequential decoder
JP2000209106A (ja) 高速ビタビ復号器の最小量のメモリによる実現
EP3996285A1 (en) Parallel backtracking in viterbi decoder
JP3756525B2 (ja) 固定長デシジョンウィンドウを使用するデータ信号の復号方法
US8055986B2 (en) Viterbi decoder and method thereof
US7085992B2 (en) Method and device for decoding a sequence of physical signals, reliability detection unit and viterbi decoding unit
KR0169681B1 (ko) 비터비 복호기
US20070201586A1 (en) Multi-rate viterbi decoder
US20040064781A1 (en) Viterbi decoder and Viterbi decoding method
US5751734A (en) Decoding method and apparatus using trace deletion for Viterbi algorithm
KR0169679B1 (ko) 비터비 복호기
KR0169678B1 (ko) 비터비 복호기
KR0169680B1 (ko) 비터비 복호기
KR0180303B1 (ko) 비터비 디코더의 정규화 방법 및 장치
Chandel et al. Viterbi decoder plain sailing design for TCM decoders

Legal Events

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

Payment date: 20111004

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee