KR100531840B1 - 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로 - Google Patents

비터비 디코더의 가지 메트릭 계산 방법 및 그 회로 Download PDF

Info

Publication number
KR100531840B1
KR100531840B1 KR10-2002-0041675A KR20020041675A KR100531840B1 KR 100531840 B1 KR100531840 B1 KR 100531840B1 KR 20020041675 A KR20020041675 A KR 20020041675A KR 100531840 B1 KR100531840 B1 KR 100531840B1
Authority
KR
South Korea
Prior art keywords
bit
metric
metrics
branch
encoded data
Prior art date
Application number
KR10-2002-0041675A
Other languages
English (en)
Other versions
KR20040007035A (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 KR10-2002-0041675A priority Critical patent/KR100531840B1/ko
Publication of KR20040007035A publication Critical patent/KR20040007035A/ko
Application granted granted Critical
Publication of KR100531840B1 publication Critical patent/KR100531840B1/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/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/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/4115Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
    • 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
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

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

Abstract

본 발명은 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로에 관한 것으로 특히, 다중 ACS를 사용하는 비터비 디코더에 있어서, 각 ACS의 입력 가지 메트릭을 간단한 하드웨어를 이용하여 동시에 구함으로써 보다 빠른 데이터 처리가 가능하도록 함과 아울러 회로 설계를 용이하도록 함을 목적으로 한다. 이러한 목적의 본 발명은 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 다중 ACS를 구비하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서, 다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대한 다수의 인코딩 데이터 비트를 구하는 제1 단계와, 상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와, 상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행하도록 구성함을 특징으로 한다.

Description

비터비 디코더의 가지 메트릭 계산 방법 및 그 회로{METHOD FOR COMPUTING BRANCH METRIC IN VITERBI DECODER AND CIRCUIT THEREOF}
본 발명은 디지털 통신에 관한 것으로 특히, 다중 ACS(Add-Compare_Select)를 구비하는 비터비 디코더에 있어서 가지 브랜치 메트릭 계산 방법 및 그 회로에 관한 것이다.
디지털 통신에서 데이터 전송시에는 오류가 발생함으로 이를 정정하기 위하여 오류 정정 부호화(error correcting coding)를 필요로 한다.
오류 정정 부호화에는 데이터를 블록 단위로 부호화/복호화를 수행하기 위한 블록 부호(block code)와 일정 길이의 메모리를 이용하여 이전 데이터와 현재 데이터를 비교함에 의해 부호화를 수행하기 위한 컨벌루셔널 부호(convolutional code)를 이용한다.
컨벌루셔널 부호화의 가장 대표적인 방법은 비터비(Viterbi) 알고리즘이다.
비터비 알고리즘은 제한길이(Constraint length ,k)의 크기에 비례하여 복잡도가 지수승으로 증가하는데, 현재는 k=9까지 이용되며 k>9 이상은 복잡도가 너무 커서 실제로는 이용되지 않는다.
실제로 CDMA(IS_95) 시스템에서는 k=9인 구조가 사용되고 있으며, 차세대 이동통신을 위한 IMT-2000 시스템에서는 k=9인 Viterbi code가 Turbo code와 함께 사용된다.
일반적으로 비터비 디코더는 크게 BMG(branch metric generator), ACS(add-compare-select), TB(trace back) 부분으로 구성된다.
상기 BMG는 입력 데이터로부터 가지 메트릭(Branch Metric) 값을 구하는 부분이다.
상기 ACS는 가지 메트릭(Branch Metric) 값과 이전 데이터에 의해 생성된 경로 메트릭(Path Metric) 값을 합하고 같은 상태로 천이하는 두 값을 비교하여 작은 값 혹은 큰 값을 상태천이 정보로 선택하여 경로 메트릭(PM)에 저장하며 그 경로를 나타내는 결정 비트를 TB에 전송하기 위한 부분이다.
상기 TB는 ACS에서 구한 결정비트를 저장하고 있다가 역추적(trace back)을 통해 survival path를 구하고 이 path로부터 결과 값을 출력하기 위한 부분이다.
가지 메트릭(Branch Metric)이란 컨벌루셔널 인코더(Convolutional Encoder)에 의해 결정되어지는 트렐리스(Trellis) 상의 한 시점(time)에서 상태 간의 천이에 대한 메트릭이다.
즉, 가지 메트릭은 트렐리스의 하나의 가지에서 생성되는 인코딩된 데이터와 수신 데이터 간의 유사(likelihood) 정도를 나타낸다.
여기서, 인코딩된 데이터는 컨벌루셔널 인코더가 정해지면 결정되므로 수신측에서 미리 구할 수 있다.
경로 메트릭(Path Metric)이란 각 상태에 대하여 수신 정보 블록의 처음부터 어느 한 시점까지 가지 메트릭 값을 계속 더한 값으로서 그 시점에서의 각 상태에 대한 메트릭이다.
도1은 코드율(Code Rate)이 1/n인 컨벌루셔널 인코더에 대한 기본 트렐리스 요소를 나타낸다.
도1에서 는 시간 (t)일 때 j번째 상태를 나타내고 은 시간 (t)에서 (t+1)이 될 때 상태 j에서 상태 2j로 천이되는 가지 메트릭을 나타낸다.
코드율 1/n이란 하나의 입력 비트에 대해 컨벌루셔널 인코딩 후 n 비트를 출력함을 의미한다.
도2의 표는 수신 신호(r)를 4가지 값으로 나누었을 경우에 대한 가지 메트릭의 예를 도시한 것으로, y는 송신신호 또는 수신단에서 트렐리스의 상태 천이에서 얻어지는 즉, 인코딩된 n비트 데이터 중 한 비트값을 나타낸다.
도2에서 밑줄이 있는 값은 밑줄이 없는 값에 비하여 보다 강한 값을 의미한다.
따라서, 송신 신호(y) 또는 수신측에서 구하여 가지고 있는 값이 '0'이라고 할 때 수신 신호(r)가 ''이면 가장 큰 메트릭 즉, 가장 큰 유사(likelihood) 값을 가지며 '0','1',''의 순서대로 메트릭 값의 크기가 크다.
일반적으로 가지 메트릭(branch metric)은 주로 비트 메트릭(bit metric)을 가지고 있는 룩업 테이블을 바탕으로 계산되어진다.
다시 말해서, 가지 메트릭(branch metric)은 각 가지(branch)에서 생성되는 n 비트에 대하여 해당 수신 비트와의 각 비트 단위(bit-wise)의 비트 메트릭을 미리 저장하고 있는 룩업 테이블로부터 읽어 그 값들을 더하여 구한다.
일반적으로 가지 메트릭을 구하기 위해 동일한 룩업(look-up) 동작이 트렐리스 단계 당 가지 각각에 대하여 n번 시행된다.
따라서, 매우 빠른 디코더의 경우는 개의 룩업 테이블 회로를 구비하도록 설계될 것이고 간단한 디코더의 경우는 동일한 룩업 테이블을 번 읽도록 설계될 것이다.
여기서, 은 컨벌루셔널 인코더의 메모리 개수를 나타내고 는 단위 입력 정보의 수를 나타낸다.
예를 들어, IMT-2000 시스템에서 사용되는 코드율 1/3 컨벌루셔널 인코더는 도3과 같이 구현할 수 있다.
이때, , , 이고 총 상태수는 256개이다.
따라서, 도3의 컨벌루셔널 인코더에 대응하는 비터비 디코더는 번 룩업 테이블을 읽거나 768개의 룩업 테이블 회로를 만들어야 한다.
그러나, 종래 기술에서는 도3과 같은 컨벌루셔널 인코더에 대응하는 간단한 구조의 비터비 디코더일지라도 룩업 테이블을 768번 읽어와야 하기 때문에 많은 시간이 소모되며 이로 인해 전체 디코딩 시간이 길어지게 되는 문제점이 있다.
또한, 종래 기술에서는 도3과 같은 컨벌루셔널 인코더에 대응하는 빠른 비터비 디코더를 구현하는 경우 768개의 값 중에서 사용되는 ACS 개수 만큼 동시에 읽어올 수 있는 회로로 만들어야 하기 때문에 복잡도(Complexity)가 아주 커지는 문제점이 있다.
그런데, 실제로 대부분의 경우에는 동시에 모든 비트 메트릭에 접근하도록 구현할 필요가 없으므로 ACS의 개수만큼 가지 메트릭 값을 동시에 얻을 수만 있으면 된다.
따라서, 본 발명은 상기의 문제점을 개선하기 위하여 다중 ACS를 사용하는 비터비 디코더에 있어서, 각 ACS의 입력이 가질 수 있는 상태의 특성을 이용하여 각 ACS의 입력 가지 메트릭을 동시에 구하도록 구현함으로써 보다 빠른 데이터 처리가 가능하도록 함과 아울러 각 ACS의 입력 가지 메트릭을 동시에 구하기 위한 회로를 하나의 ACS의 입력 가지 메트릭을 구하는 정도의 복잡도를 가지도록 간단하게 구현함으로써 회로 설계가 용이하도록 창안한 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로를 제공함에 목적이 있다.
본 발명은 상기의 목적을 달성하기 위하여 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭을 버터플라이 연산으로 구하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서, 다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대한 다수의 인코딩 데이터 비트를 구하는 제1 단계와, 상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와, 상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행하도록 구성함을 특징으로 한다.
상기 제1 단계는 PE(Processing Unit) 인덱스값을 제외한 PE 상태값을 순차적으로 계수하면서 그 계수값을 논리 조합하여 하나의 경로 메트릭에 대한 인코딩 데이터 비트를 구하는 과정과, 버터플라이 구조의 4개의 가지(branch)에서 생성되는 인코딩 데이터가 2개씩 같으면서 상호간 비트 단위 반전 관계를 가지는 각 경로 메트릭 간의 관계를 참고하여 상기 과정에서 구한 인코딩 데이터 비트로부터 입력 ACS에 구비되는 4개의 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 동시에 구하는 과정을 수행함을 특징으로 한다.
상기 제2 단계는 경로 메트릭이 최소값이 되는 생존 경로를 선택하여 인코딩 데이터 비트 '0'과 '1'에 대한 비트 메트릭을 동시에 구하는 것을 특징으로 한다.
상기 비트 메트릭은 인코딩 데이터 비트 '0'에 대해 수신 데이터의 최상위 비트를 제외한 하위 비트를 반전시키고 인코딩 데이터 비트 '1'에 대해 수신 데이터의 최상위 비트를 반전시킴에 의해 구하는 것을 특징으로 한다.
상기 제3 단계는 하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 코드율에 대응하는 개수의 비트 메트릭을 각기 선택하는 단계와, 상기에서 선택한 비트 메트릭을 반전시키는 단계와, 각 경로 메트릭 간의 관계를 참고하여 상기에서 각기 선택된 비트 메트릭과 상기에서 반전된 비트 메트릭을 합산하여 4개의 경로 메트릭에 대한 8개의 가지 메트릭을 동시에 구하는 단계를 수행함을 특징으로 한다.
또한, 본 발명은 상기의 목적을 달성하기 위하여 다중 ACS를 구비하는 비터비 디코더에 있어서, PE(Processing Unit) 인덱스값을 제외한 PE 상태값을 순차적으로 계수하면서 그 계수값을 논리 조합하여 입력 ACS에 구비되는 4개의 경로 메트릭(Path Metric)에 대한 각각의 인코딩 데이터 비트를 동시에 구하는 인코딩 데이터 비트 연산기와, 코드율에 대응하는 개수의 연속적인 수신 데이터 비트를 동시에 논리 연산하여 인코딩 데이터 비트 각각에 대한 각각의 비트 메트릭을 동시에 구하는 비트 메트릭 연산기와, 상기에서 구한 하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 해당 비트 메트릭을 선택하고 그 선택된 비트 메트릭과 그의 반전 비트 메트릭을 합산하여 가지 메트릭을 구하며 4개의 경로 메트릭에 대한 관계를 참조하여 상기 가지 메트릭으로부터 나머지 경로 메트릭에 대한 각각의 가지 메트릭을 동시에 구하는 가지 메트릭 연산기를 구비하여 구성함을 특징으로 한다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
본 발명의 실시예에서는 설명 상 편의를 위하여 IS-95 및 IMT-2000 시스템에 사용하는 도3의 코드율 1/3 컨벌루셔널 인코더에 대응하는 비터비 디코더에 대한 동작을 기술하기로 한다.
도4는 도3의 컨벌루셔널 코드에 해당하는 트렐리스 상의 임의의 버터플라이 구조를 도시한 것이다.
여기서, 는 상태를 나타내는 8비트 데이터로서, 도3의 컨벌루셔널 인코더에서는 메모리(플립플롭) 값이다.
그리고, 인코더의 입력측에 있는 메모리 값을 상태의 LSB(Least Significant Bit) ''으로 가정한다.
은 가지 메트릭을 나타내는데, 아래 첨자는 입력 정보값을 나타낸다.
즉, 는 현재 상태에서 입력값이 '0'으로 들어올 때의 가지 메트릭으로서, 도4에서 코드율이 1/3인 경우에는 3비트의 인코딩된 데이터(,, 또는 ,,)와 그 위치에 해당하는 수신된 데이터 값의 유사(likelihood)값인 비트 메트릭의 합으로 표현되어진다.
도4를 살펴보면, 한 시점 (t)에서의 2개의 상태와 다음 시점 (t+1)에서의 2개의 상태는 항상 짝을 이루는 구조를 가지는데 이를 버터플라이(butterfly)라고 한다.
그리고, 시점 (t)에서의 2개의 상태는 MSB(Most Significant Bit) ''의 값이 '0'인 경우와 '1'인 경우이고 나머지 비트들은 동일한 값을 가진다.
또한, 시점 (t+1)에서의 2개의 상태는 시점 t에서의 상태값을 좌측으로 한 비트 시프트한 후 마지막 비트(LSB)에 대해 컨벌루셔널 인코더의 입력이 '0'이면 '0'의 상태, '1'이면 '1'인 상태이다.
도4에 도시된 바와 같이, 코드율이 1/n인 컨벌루셔널 인코더의 트렐리스 상의 하나의 버터플라이에는 4개의 가지(branch)가 있는데, 대부분의 컨벌루셔널 인코더 구조 즉, 각 출력 비트값을 얻기 위해 입력값과 MSB 값이 반드시 배타적 논리합(XOR)되는 구조에서는 하나의 버터플라이에서 인코딩된 3비트 값이 2가지 값을 가지면서 그 2가지 값이 서로 비트 단위의 반전(bit-wise inversion) 관계를 가진다.
즉, 각 가지(branch)의 인코딩된 데이터는 비트 단위로 '0'과 '1'의 반전 관계를 가진다.
따라서, 한 버터플라이의 4개의 가지에 대해서는 2개의 가지 메트릭만을 구하면 된다.
도3과 도4로부터 맨 위가지 즉, 상태값의 MSB인 이 '0'이고 입력이 '0'일 때에서의 인코딩된 출력 비트(,,)는 아래의 [수학식 1]과 같이 구할 수 있다.
[수학식 1]
여기서, 는 서로 반전 관계를 가지므로 하나의 가지에서의 인코딩된 비트만을 구하면 나머지 3개의 가지에서의 모든 인코딩된 비트를 알 수 있다.
그런데, 수신측에서 미리 이러한 모든 출력 비트를 가지고 있을 수 있지만, 다중 ACS를 사용할 때에는 이 값을 동시에 얻기 위해서 동시에 해당 메모리에 접근해야 하는 어려움이 있다.
하지만, 다중 ACS를 사용하는 경우 일반적인 컨벌루셔널 인코더의 버터플라이 구조적 특성과 각 ACS의 입력이 갖는 상태의 특성을 이용하면 아주 간단한 구조로 인코딩 데이터를 얻을 수 있고 그로부터 가지 메트릭을 빠르고 쉽게 구할 수 있다.
임의의 한 상태의 경로 메트릭을 구하는 ACS 동작을 하나의 ACS라고 하며 도5는 도4의 하나의 버터플라이에 해당되는 2개의 ACS 구조를 나타내고 있다.
도5의 블록도는 일반적인 회로 구성이므로 상세한 설명은 생략하기로 한다.
본 발명의 실시예에서는 하나의 버터플라이 모두를 처리하는 2개의 ACS로 이루어진 도5의 구조를 하나의 PE(Processing Unit)라고 가정한다.
도6의 표는 4개의 PE를 가지는 즉, 8개의 ACS를 가지는 비터비 디코더의 각 PE 입/출력 상태를 도시한 것이다.
각 PE의 각 상태에서의 입력 가지 메트릭은 버터플라이의 하나의 가지에 대한 인코딩 비트값들만 구하여 그로부터 얻을 수 있다.
도7의 표는 각 PE의 2개의 입력 중 첫번째 입력이 가지는 상태를 나타낸 것으로, 상태를 나타내는 각 비트들은 상기 [수학식 1]의 각 m 값에 해당된다.
도7의 표에서 모든 PE의 상태의 MSB()는 '0'이고 MSB 다음 2비트는 각 PE의 번호와 같으며 그 PE에서는 변화되지 않는다.
즉, 도7의 표를 살펴보면, 최상위 비트()는 '0'이고 하위 5비트(~)는 '00000~11111'로서 각 PE가 동일한 값을 갖으며 최상위 다음의 2비트(,)가 각 PE의 번호와 일치되는 값 즉, 각각 '00,01,10,11'을 갖음을 알 수 있다.
그러므로, [수학식 1]에서 의 값은 각 PE에 따라 정해진다.
따라서, 동시에 모든 PE의 상태 값중 하위 5비트 값(~)을 '00000'부터 '11111'까지 순차적으로 증가시키면서 해당 상태에 맞는 인코딩된 데이터 및 가지 메트릭을 구할 수 있다.
이와같이 8개의 ACS를 사용하는 경우 즉, 4개의 PE를 사용하는 경우 한 시점에서 모든 256개의 상태에 대해 32싸이클의 5비트 카운터 하나로 모든 PE의 입력 메트릭을 도6의 표와 같이 구할 수 있다.
따라서, 각 PE에 해당되는 상태 비트와 인코딩 데이터와의 관계는 도8의 표와 같이 나타낼 수 있으며, 여기서 는 XOR 연산을 나타낸다.
본 발명의 실시예에서 상기 도8의 표를 기반으로 모든 PE에 대한 인코딩 데이터를 구하기 위한 회로는 도9에 도시한 바와 같다.
즉, 도9의 회로는 PE의 하위 5비트를 '00000'부터 '11111'까지 순차적으로 계수하는 5비트 카운터(110)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0, PE3의 인코딩 데이터 비트()를 구하는 XOR 게이트(121)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0,PE1의 인코딩 데이터 비트()를 구하는 XOR 게이트(122)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0~PE3의 인코딩 데이터 비트()를 구하는 XOR 게이트(123)와, 상기 XOR 게이트(121)의 출력값을 반전시켜 PE1,PE2의 인코딩 데이터 비트()를 구하는 인버터(131)와, 상기 XOR 게이트(122)의 출력값을 반전시켜 PE2,PE3의 인코딩 데이터 비트()를 구하는 인버터(132)를 구비하여 구성한다.
그런데, PE0의 인코딩 데이터 비트만을 구하면 나머지 PE1~PE3의 인코딩 데이터 비트를 구할 수 있으므로 실제 회로 구성에 있어서 도9의 회로에 구비된 인버터(131,132)는 필요없는 구성요소이다.
따라서, 상기에서 구한 인코딩 데이터과 수신 데이터로부터 비트 메트릭을 구할 수 있다.
즉, 인코딩 데이터 비트와 수신 데이터에 대응하는 비트 메트릭은 도10의 표와 같은 룩업 테이블과 같이 구할 수 있다.
도10의 표에서는 비터비 디코더의 수신 데이터를 4비트로 양자화한 값이 가장 큰 양수값을 가질 때 즉, 0111일 때 인코딩 데이터 비트의 '0'에 대응하는 비트 메트릭을 '0'으로 설정하고 인코딩 데이터 비트 '1'에 대응하는 비트 메트릭을 '15'로 설정하였다.
따라서, 비터비 디코더는 경로 메트릭 값이 작은 경로를 생존 경로(Survival Path)로 선택한다.
즉, 도10의 표를 살펴보면, 인코딩 데이터 비트가 '0'일 때 비트 메트릭은 4비트의 수신 신호의 하위 3비트를 비트 단위 반전(bit-wise inversion)한 값이고 인코딩 데이터 비트가 '1'일 때 비트 메트릭은 4비트의 수신 신호의 상위(MSB) 1비트를 반전한 값임을 알 수 있다.
여기서, 2개의 비트 메트릭 값은 서로 비트 단위 반전(bit-wise inversion) 관계가 있음을 알 수 있다.
따라서, 상기의 특성을 이용하여 비트 메트릭을 얻기 위한 회로를 도11과 같이 구성할 수 있다.
즉, 도11의 회로는 수신 신호(, )의 각 비트를 각기 반전시키는 인버터(211~214)와, 상기 인버터(211)의 반전 신호와 수신 신호()를 저장하여 인코딩 데이터 비트 "1"에 대응하는 수신 비트()를 출력하는 제1 버퍼(221)와, 수신 신호()와 상기 인버터(212~214)의 반전 신호를 저장하여 인코딩 데이터 비트 "0"에 대응하는 수신 비트()를 출력하는 제2 버퍼(222)를 구비하여 구성한다.
다시 말해서, 비트 메트릭을 구하기 위한 회로는 12개의 인버터와 6개의 버퍼를 구비하여 구성할 수 있다.
그런데, 실제로 도10과 같은 룩업 테이블은 양자화를 어떻게 하고 비트 메트릭 값을 어떻게 정하는가에 따라 달라질 수 있지만, 대부분 수신 데이터와 인코딩 데이터 간의 비트 메트릭 특성을 분석하면 도11과 같은 간단한 구성으로 회로 구현이 가능하다.
또한, 코드율이 1/3인 경우 가지 메트릭(branch metric)을 구하기 위해서는 연속적인 3개의 수신 신호에 대하여 인코딩 데이터 비트 '0'과 '1'에 대한 각각의 비트 메트릭을 구하고, 상기 인코딩 데이터 비트에 해당하는 비트 메트릭을 선택하여 그의 반전 비트 메트릭과 합산하면 된다.
삭제
이 경우, 인코딩 데이터 비트는 상기에서 설명한 바와 같이 각 PE(butterfly 구조)에서 반드시 '0'과 '1' 모두를 가지는 반전 관계를 가지기 때문에 도11과 같이 인코딩 데이터 비트 '0'과 '1' 모두에 대하여 수신 신호로부터 동시에 비트 메트릭을 구하는 방식이 매우 바람직하다.
이를 위한 회로 구성을 도12에 도시하였다.
도12의 회로는 도9의 회로에서 구한 인코딩 데이터 비트와 각 가지에서 생성되는 인코딩 비트들 간의 특성 즉, 한쌍씩 서로 같고 다른 쌍끼리는 비트 단위 반전(bit-wise inversion) 관계를 갖는 특성을 이용하여 도11의 회로에서 구한 비트 메트릭 값을 선택하여 더함으로써 동시에 각 PE의 입력 가지 메트릭을 구하는 방식을 도시한 것이다.
즉, 도12의 회로는 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(311)와, 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(312)와, 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(313)와, 상기 멀티플렉서(311~313)에서 각기 선택되는 비트 메트릭을 반전시키는 인버터(321~323)와, 상기 멀티플렉서(311)(312)(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(331)와, 상기 인버터(321)(322)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(332)와, 상기 인버터(321)와 멀티플렉서(312)(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(333)와, 상기 멀티플렉서(311)와 인버터(322)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(334)와, 상기 인버터(321)(322)와 멀티플렉서(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(335)와, 상기 멀티플렉서(311)(312)와 인버터(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(336)와, 상기 멀티플렉서(311)(313)와 인버터(322)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(337)와, 상기 멀티플렉서(312)와 인버터(321)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(338)를 구비하여 구성한다.
상기 멀티플렉서(311~313)의 출력단에 인버터(321~323)를 연결하여 구성하는 이유는 서로 비트 단위 반전(bit-wise inversion) 관계를 가지는 도11의 회로에서 구한 인코딩 데이터 비트 '0'일 때의 비트 메트릭과 인코딩 데이터 비트 '1'일 때의 비트 메트릭을 동시에 얻기 위한 것이다.
만약, 인코딩 데이터 비트 '0'일 때의 비트 메트릭과 '1'일 때의 비트 메트릭 간의 비트 단위 반전(bit-wise inversion) 관계가 아니라면 인버터(321~323)의 출력값에 해당하는 값은 멀티플렉서(311~313)의 두 입력값 중 인코딩 데이터 비트값에 의해 선택되지 않는 값이 된다.
한편, 상기와 같이 제시된 본 발명은 비터비 복호 방법을 사용하는 대부분의 시스템에서 동일한 방식으로 적용 가능하다.
예를 들어, IMT-2000 시스템과 같이 코드율이 다른 2개의 컨벌루셔널 인코더를 선택적으로 사용하는 경우에도 단지 어느 코드율을 사용하는지에 따라 멀티플렉서(MUX), XOR 게이트 및 인버터를 이용하여 회로를 구현하면 된다.
상기에서 상세히 설명한 바와 같이 본 발명은 비터비 디코더를 구성하는 다중 ACS 각각이 동시에 동작할 수 있도록 각각의 ACS의 입력 가지 메트릭을 간단한 구조의 하드웨어를 이용하여 동시에 구함으로써 보다 빠른 데이터 처리를 수행하도록 하여 시스템 성능을 향상시키는 효과가 있다.
도1은 코드율 1/n인 컨벌루셔널 코드의 기본 트렐리스 구조를 보인 예시도.
도2는 가지 메트릭을 예시한 표.
도3은 코드율 1/3 컨벌루셔널 인코더의 회로도.
도4는 도3에서의 컨벌루셔널 코드에 대한 트렐리스 상의 버터플라이 구조를 보인 예시도.
도5는 일반적인 경로 메트릭 연산을 위한 ACS 회로의 블록도.
도6은 4개의 PE 입출력 상태를 보인 표.
도7은 도1의 에 해당하는 4개의 PE 상태값을 보인 표.
도8은 4개의 PE 상태값과 인코딩 데이터와의 관계를 보인 표.
도9는 본 발명의 실시예에서 인코딩 데이터 비트 연산기의 회로도.
도10은 비트 메트릭 값을 보인 룩업 테이블의 예시도.
도11은 본 발명의 실시예에서 비트 메트릭 연산기의 회로도.
도12는 본 발명의 실시예에서 가지 메트릭 연산기의 회로도.
* 도면의 주요부분에 대한 부호 설명 *
110 : 카운터 121~123 : XOR 게이트
131,132,211~214,321~323 : 인버터 221,222 : 버퍼
311~313 : 멀티플렉서 331~338 : 덧셈기

Claims (9)

  1. 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭이 버터플라이 연산으로 구하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서,
    다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대응되는 다수의 인코딩 데이터 비트를 구하는 제1 단계와,
    상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와,
    상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법.
  2. 제1항에 있어서, 제1 단계는
    다수의 PE 중 임의의 PE(Processing Unit)에 대해 상태값을 이용하여 하나의 경로 메트릭에 대한 다수의 인코딩 데이터 비트를 구하는 제1 과정과,
    다수의 PE에 대한 다수의 경로 메트릭 각각에 대한 각각의 인코딩 데이터의 관계를 참조하여 상기 인코딩 데이터 비트로부터 상기 임의의 PE를 제외한 나머지 PE 각각에 대응되는 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 구하는 제2 과정을 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법.
  3. 제1항에 있어서, 제2 단계는
    경로 메트릭이 최소값이 되는 생존 경로를 선택하여 인코딩 데이터 비트 '0'과 '1'에 대한 비트 메트릭을 구하는 것을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법.
  4. 제1항 또는 제3항에 있어서, 비트 메트릭은
    인코딩 데이터 비트 '0'에 대해 수신 데이터의 최상위 비트를 제외한 하위 비트를 반전시키고 인코딩 데이터 비트 '1'에 대해 수신 데이터의 최상위 비트를 반전시켜 구하는 것을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법.
  5. 제1항에 있어서, 제3 단계는
    하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 코드율에 대응하는 개수의 비트 메트릭을 각기 선택하는 제1 과정과,
    상기에서 선택한 비트 메트릭을 반전시키는 제2 과정과,
    각 경로 메트릭 간의 관계를 참고하여 상기에서 각기 선택된 비트 메트릭과 상기에서 반전된 비트 메트릭을 합산하여 다수의 경로 메트릭 각각마다 2개의 가지 메트릭을 구하는 제3 과정으로 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법.
  6. 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭을 버터플라이 연산으로 구하는 비터비 디코더에 있어서,
    4개의 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 구하는 인코딩 데이터 비트 연산 수단과,
    상기 4개의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 비트메트릭을 구하는 비트 메트릭을 구하는 비트 메트릭 연산 수단과,
    상기 4개의 경로 메트릭 각각에 대해 비트 메트릭과 반전된 비트메트릭을 합산하여 각각의 가지 메트릭을 구하는 가지 메트릭 연산 수단을 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.
  7. 제6항에 있어서, 인코딩 데이터 비트 연산 수단은
    PE 인덱스값을 제외한 하위 비트의 상태값((~)을 '00000'부터 '11111'까지 순차적으로 계수하는 카운터와,
    상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0, PE3의 인코딩 데이터 비트()를 구하는 제1 XOR 게이트와,
    상기 제1 XOR 게이트의 출력값을 반전시켜 PE1,PE2의 인코딩 데이터 비트()를 구하는 제1 인버터와,
    상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0,PE1의 인코딩 데이터 비트()를 구하는 제2 XOR 게이트와,
    상기 제2 XOR 게이트의 출력값을 반전시켜 PE2,PE3의 인코딩 데이터 비트()를 구하는 제2 인버터와,
    상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0~PE3의 인코딩 데이터 비트()를 구하는 제3 XOR 게이트를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.
  8. 제6항에 있어서, 비트 메트릭 연산 수단은
    수신 신호(, )의 각 비트를 각기 반전시키는 제3~제6 인버터와,
    상기 제3 인버터의 출력 신호와 수신 신호()를 저장하여 인코딩 데이터 비트 "1"에 대응하는 수신 비트()를 출력하는 제1 버퍼와,
    수신 신호()와 상기 제4~제6 인버터의 반전 신호를 저장하여 인코딩 데이터 비트 "0"에 대응하는 수신 비트()를 출력하는 제2 버퍼를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.
  9. 제6항에 있어서, 가지 메트릭 연산 수단은
    인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제1 멀티플렉서와,
    인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제2 멀티플렉서와,
    인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제3 멀티플렉서와,
    상기 제1~제3 멀티플렉서에서 각기 선택되는 비트 메트릭을 반전시키는 제7~제9 인버터와,
    상기 제1~제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제1 덧셈기와,
    상기 제7~제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제2 덧셈기와,
    상기 제7 인버터와 제2,제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제3 덧셈기와,
    상기 제1 멀티플렉서와 제8,제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제4 덧셈기와,
    상기 제7,제8 인버터와 제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제5 덧셈기와,
    상기 제1,제2 멀티플렉서와 제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제6 덧셈기와,
    상기 제1,제3 멀티플렉서와 제8 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제7 덧셈기와,
    상기 제2 멀티플렉서와 제7,제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제8 덧셈기를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.
KR10-2002-0041675A 2002-07-16 2002-07-16 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로 KR100531840B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0041675A KR100531840B1 (ko) 2002-07-16 2002-07-16 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0041675A KR100531840B1 (ko) 2002-07-16 2002-07-16 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로

Publications (2)

Publication Number Publication Date
KR20040007035A KR20040007035A (ko) 2004-01-24
KR100531840B1 true KR100531840B1 (ko) 2005-12-02

Family

ID=37316869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0041675A KR100531840B1 (ko) 2002-07-16 2002-07-16 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로

Country Status (1)

Country Link
KR (1) KR100531840B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113839680B (zh) * 2020-06-23 2024-04-02 瑞昱半导体股份有限公司 基于维特比算法的解码电路及解码方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010020012A (ko) * 1999-08-31 2001-03-15 서평원 비터비 복호기의 가지 메트릭스 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010020012A (ko) * 1999-08-31 2001-03-15 서평원 비터비 복호기의 가지 메트릭스 장치

Also Published As

Publication number Publication date
KR20040007035A (ko) 2004-01-24

Similar Documents

Publication Publication Date Title
US6445755B1 (en) Two-step soft output viterbi algorithm decoder using modified trace back
US5349608A (en) Viterbi ACS unit with renormalization
EP0671817A1 (en) Soft symbol decoding for use in an MLSE-equaliser or convolutional decoder
US5327441A (en) Method and circuit for decoding convolutional codes
JPH0722967A (ja) ビタビ復号器の経路記憶装置
JPH07221655A (ja) 通信システムおよび情報処理方法
US7131055B2 (en) Fast bit-parallel Viterbi decoder add-compare-select circuit
JPH10117149A (ja) ビタービ復号化器用トレースバック装置及びトレースバック方法
JPH0316046B2 (ko)
US7234100B1 (en) Decoder for trellis-based channel encoding
US8055986B2 (en) Viterbi decoder and method thereof
US5450338A (en) Add-compare-select device
KR100737648B1 (ko) 비터비 복호장치 및 비터비 복호방법
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
US20070201586A1 (en) Multi-rate viterbi decoder
KR100531840B1 (ko) 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로
CN106209117B (zh) 一种低资源消耗的多参数可配置Viterbi译码器
US6910177B2 (en) Viterbi decoder using restructured trellis
EP0807336B1 (en) Method for forming transition metrics and a receiver of a cellular radio system
US20050138535A1 (en) Method and system for branch metric calculation in a viterbi decoder
KR101134806B1 (ko) 부호 복호 방법
CN116073952B (zh) 一种基于MaPU架构的快速并行卷积编译码方法、***、设备及介质
JP3235333B2 (ja) ビタビ復号方法およびビタビ復号化装置
JP3348086B2 (ja) ビタビ復号装置およびビタビ復号方法
Laddha et al. Implementation of Adaptive Viterbi Decoder through FPGA

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20080926

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee