KR20010051871A - 비터비 복호기 - Google Patents

비터비 복호기 Download PDF

Info

Publication number
KR20010051871A
KR20010051871A KR1020000069518A KR20000069518A KR20010051871A KR 20010051871 A KR20010051871 A KR 20010051871A KR 1020000069518 A KR1020000069518 A KR 1020000069518A KR 20000069518 A KR20000069518 A KR 20000069518A KR 20010051871 A KR20010051871 A KR 20010051871A
Authority
KR
South Korea
Prior art keywords
path
metric
state
selection signal
unit
Prior art date
Application number
KR1020000069518A
Other languages
English (en)
Other versions
KR100426712B1 (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 모리시타 요이찌
Publication of KR20010051871A publication Critical patent/KR20010051871A/ko
Application granted granted Critical
Publication of KR100426712B1 publication Critical patent/KR100426712B1/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
    • 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

Landscapes

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

Abstract

일반적인 RAM 등의 메모리를 패스 매트릭 기억부(105)와 패스 선택 신호 기억부(106)에 사용하여, ACS 연산과 트레이스 백 연산의 메모리 액세스 회수를 줄여, 소비 전력을 저감함과 동시에 처리 동작의 고속화를 도모한 비터비 복호기를 제공한다. 이 비터비 복호기에서는 가산/비교/선택(ACS) 연산부(103)가, 브랜치 매트릭 연산부(102)에 의해 입력 부호로부터 산출된 브랜치 매트릭에 기초하여, 각 스테이트의 패스 매트릭을 시분할 처리에 의해 산출한다. ACS 연산부(103)로부터 차례로 산출되는 패스 매트릭은 패스 매트릭 교환부(104)에 의해 일시적으로 지연되어, 산출시와는 다른 시계열로 교환되어, 패스 매트릭 기억부(105)에 기억된다.

Description

비터비 복호기{Viterbi decoder}
본 발명은 컨벌루션 부호의 최우(maximum likelihood) 복호에 사용되는 비터비 복호기에 관한 것이다.
비터비(Viterbi) 복호기는 컨벌루션 부호의 최우 복호법에 사용되는 것이며, 입력 부호 계열이 취득하는 기지의 복수 개의 부호 계열중, 컨벌루션 부호기가 발생시킨 부호 계열에 가장 부호 거리가 가까운 부호 계열을 최우 부호 계열(최우 패스)로서 선택하고, 이 선택한 정보에 기초하여 복호 데이터를 얻는 것이다. 비터비 복호는 통신로에 발생하는 랜덤 오류에 대한 정정 능력이 높고, 연판정 복호 방식과 조합시키면, 특히 큰 부호화 이득을 얻을 수 있다. 예를 들면, 간섭파의 영향을 받기 쉽고, 비트 에러가 통신 품질에 현저한 영향을 미치는 이동체 통신 시스템에서는 오류 정정 부호로서 컨벌루션 부호가 사용되고 있고, 그 복호에 비터비 복호가 사용되고 있다.
이 비터비 복호 알고리즘에 대해 간단히 설명한다. 예를 들면, 생성 다항식이 이하의 식으로 주어지는 부호화율 R=1/2, 구속 길이 K=3의 컨벌루션 부호를 생각한다.
G0(D) = 1 + D2
G1(D) = 1 + D + D2
도 9에, 이러한 부호를 발생시키는 컨벌루션 부호기의 구성예를 나타낸다. 도 9에 있어서, 입력 데이터인 정보 비트는 2개의 플립플롭 등의 지연 소자(901, 902)에 의해 차례로 지연되고, 가산기(903)에 의해 입력 데이터와 지연 소자(902)로부터의 데이터가 가산되어 출력(G0)으로서 취출되어, 가산기(904, 905)에 의해 각각 입력 데이터와 지연 소자(901)로부터의 데이터, 가산기(904)로부터의 데이터와 지연 소자(902)로부터의 데이터가 가산되어 출력(G1)으로서 취출된다.
이러한 부호기에서의 각 지연 소자(901, 902)의 내용을 각각 S[1], S[0]으로 할 때, 부호기의 상태 S[1 : 0]으로는, (00), (01), (10), (11)의 4가지 상태가 얻어진다. 또, 입력이 주어졌을 때의 천이할 수 있는 상태는 항상 2가지가 된다.
즉, 입력이 0일 때, 현재 상태가 (00) 또는 (01)인 경우에 상태 (00)으로 천이하고, 현재 상태가 (10) 또는 (11)인 경우에 상태 (01)로 천이한다. 입력이 1일 때는 현재 상태가 (00) 또는 (01)인 경우에 상태 (10)으로 천이하고, 현재 상태가 (10) 또는 (11)인 경우에 상태 (11)로 천이한다.
이러한 상태 천이를 나타내는 방법으로서 트렐리스 선도가 있으며, 트렐리스 선도로 나타내면 도 10과 같이 된다. 도 10에 있어서, 실선의 화살표(브랜치)는 입력이 0일 때의 천이를 나타내고 파선의 브랜치는 입력이 1일 때의 천이를 나타낸다. 또, 각 브랜치를 따라 기록되어 있는 숫자는 그 브랜치의 천이가 발생했을 때 출력되는 도 10의 부호 (G0, G1)이다.
도 10에서 알 수 있듯이, 각 상태로의 천이시에는 반드시 2개의 브랜치가 합류한다. 비터비 복호 알고리즘에 있어서는, 각 상태로의 2개의 브랜치 중 최우(가장 확실한) 브랜치의 조합(패스)을 선택하여, 선택된 패스(생존 패스)의 정보(패스 선택 신호)를 기억부에 격납한다. 그리고 소정 길이까지 패스의 선택을 행한 후, 패스 선택 신호 기억부의 내용에 기초하여 최우 생존 패스를 탐색(트레이스 백)한다. 이 트레이스 백에 의해 얻어지는 최우의 각 상태의 변화로부터 컨벌루션 부호기에 입력된 정보를 복호한다.
이러한 비터비 알고리즘에 기초하여 컨벌루션 부호를 복호하는 비터비 복호기는 기본적으로 송신 부호 계열과 각 브랜치에서 예측되는 부호 계열의 부호 거리(브랜치 매트릭)를 계산하는 브랜치 매트릭 계산부와, 각 상태로의 브랜치 매트릭의 누산값(패스 매트릭)을 계산하여, 생존 패스를 선택하는 ACS(ADD, COMPARE, SELECT=가산, 비교, 선택) 연산부와, 각 스테이트에서의 패스 매트릭을 기억하는 패스 매트릭 기억부와, 선택한 패스의 정보를 기억하는 패스 선택 신호 기억부와, 패스 선택 신호 기억부의 내용에 기초하여 최우 생존 패스를 탐색하는 트레이스 백부로 구성된다.
여기서, 상기 ACS 연산부에 있어서는, 소위 패스 매트릭·트랜지션·다이어그램에 따라, 각 스테이트에서의 생존 패스가 선택되고, 이 생존 패스의 패스 매트릭이 계산된다. 이 패스 매트릭·트랜지션·다이어그램은 도 10에 나타낸 트렐리스 선도를 기초로 하여 작성된다.
도 10에 나타낸 트렐리스 선도에서 나타낸 부호가 사용되고 있는 경우에는, 도 11A 및 도 11B에 나타낸 바와 같은 패스 매트릭·트랜지션·다이어그램이 된다. 즉, 도 10에 나타낸 트렐리스 선도의 경우, 상태 (00)에서 합류하는 것은 상태 (00)에서 부호 (00)을 출력하여 발생시키는 패스와, 상태 (01)에서 부호 (11)를 발생시키는 패스의 2가지이다. 따라서, 이번 상태 (00)에서의 패스 매트릭 PM00(new)는 전 시각의 스테이트의 패스 매트릭을 PM00(old), PM01(old), 브랜치 매트릭을 BM00, BM11과 같이 나타내면, 이하의 2가지 식중 하나가 된다.
PM00(new)a = PM00(old) + BM00
PM00(new)b = PM01(old) + BM11
즉, ACS 연산 도중의 2가지 패스 매트릭 PM00(new)a, PM00(new)b의 최우값이 선택되고, 그 패스 매트릭이 이번 상태 (00)의 패스 매트릭 PM00(new)로 결정된다.
또, 상태 (10)에서 합류하는 것은 상태 (00)에서 부호 (11)을 출력하여 발생시키는 패스와, 상태 (01)에서 부호 (00)를 발생시키는 패스의 2가지이다. 따라서, 이번 패스 매트릭 PM10(new)는 이하의 2가지 식중 하나가 된다.
PM10(new)a = PM00(old) + BM11
PM10(new)b = PM01(old) + BM00
또, 상태 (01)에서 합류하는 것은 상태 (10)에서 부호 (01)을 출력하여 발생시키는 패스와, 상태 (11)에서 부호 (10)를 발생시키는 패스의 2가지이다. 따라서, 이번 패스 매트릭 PM01(new)는 이하의 2가지 식중 하나가 된다.
PM01(new)a = PM10(old) + BM01
PM01(new)b = PM11(old) + BM10
또, 상태 (11)에서 합류하는 것은 상태 (10)에서 부호 (10)을 출력하여 발생시키는 패스와, 상태 (11)에서 부호 (01)를 발생시키는 패스의 2가지이다. 따라서, 이번 패스 매트릭 PM11(new)는 이하의 2가지 식중 하나가 된다.
PM11(new)a = PM10(old) + BM10
PM11(new)b = PM11(old) + BM01
이것에 기초하여, 도 11A 및 도 11B에 나타낸 패스 매트릭·트랜지션·다이어그램을 만들 수 있다.
여기서, 위 식과 도 11A 및 도 11B의 패스 매트릭·트랜지션·다이어그램에서 알 수 있듯이, PM00(new)와 PM10(new)의 차이는 PM00(old)와 PM01(old)에 BM11과 BM00를 가산하는 경우의 PMxx(old)와 BMxx의 대응뿐이다.
또, PM01(new)와 PM11(new)의 차이에 대해서도 동일하게, PM10(old)와 PM11(old)에 BM01과 BM10를 가산하는 경우에서의 PMxx(old)와 BMxx의 대응뿐이다.
또한, 각각 2개의 PMxx(old)는 연속하는 짝수, 홀수 스테이트라는 관계를 갖고 있으며, PMxx(new)는 최상위 비트만이 다른 상위, 하위 스테이트라는 관계를 갖고 있다.
이것은 연속하는 짝수, 홀수 스테이트의 관계를 갖는 2개의 PMxx(old)와 2개의 BMxx로부터, 상위, 하위 스테이트의 관계를 갖는 2개의 PMxx(new)를 산출 가능하다는 것을 나타내고 있다.
이어서, 패스 선택 신호와 각 상태 천이에 대해 설명한다. 상기 설명에 있어서 이번 상태로 결정되어야 할 패스 매트릭의 조는, 각각 전 시각에서 상태의 최하위 비트만이 다른 관계가 되어 있다. 그래서, 각 상태의 최우 패스 매트릭 정보 선택(패스 선택 신호)를 PS00(new), PS01(new), PS10(new), PS11(new)로 하고, 그 값과 패스 매트릭 선택의 관계를 이하와 같이 한다.
PSxx(new) = 0 → PMxx(new)a를 선택
PSxx(new) = 1 → PMxx(new)b를 선택
이 때, PSxx(new)의 값은 대응하는 전 시각에서의 상태의 최하위 비트의 값과 동일해진다.
즉, 시각 n에서의 상태를 S(n), 상태 S에서의 패스 선택 신호를 PS(S)로 하면 시각 n-1, 시각 n에서의 각각의 상태 및 패스 선택 신호의 관계는 이하와 같이 된다.
S(n-1) = {S(n), PS(S)}
여기서, {a, b}는 a의 최하위 비트측에 b를 연접하고, a의 최상위 비트측을 b의 비트 폭만큼 삭제하는 연산을 나타낸다.
이것은 한 스테이트의 패스 선택 신호로부터 그 스테이트에 도달한 전회의 스테이트를 결정할 수 있는 것을 나타내고 있다.
위 식으로부터, 패스 선택 신호가 소정량만큼 격납된 상태에 있어서, 시각 n에서의 최우 상태를 결정하면, 각 시각의 패스 선택 신호의 값에서 과거에 선택된 상태를 결정할 수 있다. 이 연산을 트레이스 백이라 부르고, 그 일례를 도 12에 나타낸다.
또한, 시각 n에서의 최우 상태를 결정하기 위해, 컨벌루션 부호 계열을 종료할 때 부호기의 상태를 소정 값(예를 들면 00 등)으로 수속(收束)하도록 정보 비트에 부가 비트(Tailbit)를 추가하는 방법을 취하는 경우가 있다.
모두에서 말한 바와 같이, 컨벌루션 부호기의 상태의 천이는 정보 비트가 차례로 지연 소자에 입력됨으로써 발생하므로, 이 상태의 천이를 과거로 거슬러 올라가 결정한다는 것은, 그대로 정보 비트를 결정한다는 것을 의미한다.
상기 과정을 거쳐, 비터비 복호에 의해 수신 부호 계열로부터 정보 비트를 복호하는 것을 실현할 수 있다.
그런데, 종래의 비터비 복호기에 있어서, ACS 연산을 시분할 처리로 행하고, 또한 ACS 연산의 결과에서 얻어진 패스 매트릭을 기억하는 패스 매트릭 메모리에 RAM(Random Acces Memory)를 사용하는 것이 알려져 있다. 이러한 비터비 복호기에서는 ACS 연산의 결과로부터 얻어진 다음 시각에서 ACS 연산에 사용하는 패스 매트릭을 RAM의 1어드레스에 할당하고 있다. 즉, 1개의 스테이트의 패스 매트릭을 1개의 RAM의 1어드레스에 배치하고 있다.
이 경우, 1회의 ACS 연산에서는 과거의 2개의 스테이트의 패스 매트릭으로부터 새로운 패스 매트릭을 작성하므로, 과거의 2개의 패스 매트릭을 판독하여 새로운 1개의 패스 매트릭을 기입하기 위해, 1회의 ACS 연산당 3회의 메모리 액세스가 필요해진다. 그래서, 소위 듀얼포트 RAM을 사용하여, 기입과 판독을 분리하여 병렬적으로 행하도록 해도, 판독이 2회 필요하다. 이때문에, 메모리 액세스 회수가 많아지고 고속 RAM이 필요해져, 저소비 전력화나 고속화의 장애가 되고 있다.
또한, 발전된 방법으로서, 특개평 9-232973호 공보에는 상술한, 연속하는 짝수, 홀수 스테이트의 관계를 갖는 2개의 PMxx(old)와 2개의 BMxx로부터, 상위, 하위 스테이트의 관계를 갖는 2개의 PMxx(new)를 산출 가능한 것을 이용하여, 2개의 패스 매트릭을 판독하여, 2개의 패스 매트릭을 산출하는 계산 방법이 개시되어 있다. 이 방법에서는, 패스 매트릭의 상위, 하위용으로 매모리를 2개 설치하고, 또한 패스 매트릭의 연속하는 짝수, 홀수를 동시에 판독하는 시스템을 설치함으로써, 1회의 판독, 1회의 기입으로 2개의 패스 매트릭을 산출할 수 있다.
그러나, 이 방법에서는 ACS 연산을 행하기 위해 2개의 패스 매트릭 메모리를 준비할 필요가 있다. 일반적으로 같은 용량의 메모리를 작성하는 경우, 메모리를 분할하면 회로 규모, 면적이 증가하여 저소비 전력화에도 불리해진다.
다음으로, 트레이스 백에 대해 설명한다. 상술한 한 스테이트의 패스 선택 신호로부터, 그 스테이트에 도달한 전회의 스테이트를 결정할 수 있으므로, 패스 선택 신호를 격납한 메모리(패스 선택 신호 기억부)의 1어드레스에 n스테이트분의 선택 신호를 격납하도록 하여(예를 들면, 16스테이트 = 1워드) 트레이스 백을 실행하는 경우, 도 13A에 나타낸 것과 같은 구성이 된다.
이 구성에서 중요한 점은, 비터비 스테이트로부터 패스 선택 신호 기억부의 어드레스가 결정되고, 또한 판독된 패스 선택 신호로부터 다음 비터비 스테이트가 결정될 수 있다는 것이다. 즉, 1처리 단위(사이클) 동안 어드레스 결정, 메모리 판독을 행해야만 한다. 여기서, 메모리의 동작 지연은 일반적으로 도 13B로 나타낸다. 먼저, 지연 A로 표시되는 어드레스의 배선 지연, 다음으로 지연 C로 표시되는 메모리의 출력 지연 및 데이터의 배선 지연이 있다. 그리고, 이들 동작 지연은 일반적으로 크다.
그래서, 트레이스 백 동작 속도의 상한은 도 13C에 나타낸 바와 같이 결정된다. 상술한 지연 A, 지연 C에 더해, 패스 선택 신호 기억부로부터 판독된 1워드로부터 1스테이트분의 패스 선택 신호를 취출하기 위한 셀렉터에 관한 지연 B, 지연 D가 있고, 비터비 스테이트를 격납하는 시프트 레지스터의 셋 오프 시간을 고려하여, 이하의 2개의 지연 중, 큰 쪽의 지연에 의해 동작 속도의 상한이 결정된다.
(1) 패스 선택 신호 기억부를 중심으로 한 지연 : 지연 A + 지연 C + 지연 D
(2) 셀렉터를 중심으로 한 지연 : 지연 B + 지연 D
상기에서, 패스 선택 신호 기억부를 중심으로 한 지연쪽이 크고, 그 때문에 동작 속도가 제한을 받아, 고속의 트레스 백이 곤란해져 있다.
이 문제를 해결하기 위해, 패스 선택 신호 기억부에 레지스터 파일을 사용하는 등 하여 고속 동작을 행하는 방법도 있으나, 회로 규모, 면적이 증가하여 저소비 전력화에도 불리해진다.
본 발명은 상술한 실정을 감안하여 이루어진 것이며, 일반적인 RAM 등의 메모리를 패스 매트릭 기억부와 패스 선택 신호 기억부에 사용하면서, 메모리 액세스 회수를 줄인 ACS 연산과 고속 동작의 트레이스 백 연산을 행하여, 저소비 전력화나 비터비 복호 동작의 고속화가 가능한 비터비 복호기의 제공을 목적으로 하는 것이다.
상기 목적을 달성하기 위해, 본 발명의 제 1 비터비 복호기는 입력 부호에 기초하여 브랜치 매트릭을 연산하는 브랜치 매트릭 연산부와, 상기 브랜치 매트릭 연산부에 의해 산출된 상기 브랜치 매트릭에 기초하여, 각 스테이트의 패스 매트릭을 시분할 처리에 의해 산출하는 가산/비교/선택(ACS) 연산부와, 상기 ACS 연산부로부터 차례로 산출되는 패스 매트릭을 일시적으로 지연시켜, 산출시와는 다른 시계열로 패스 매트릭을 교환하는 패스 매트릭 교환부와, 상기 패스 매트릭 교환부로부터의 패스 매트릭을 기억하는 패스 매트릭 기억부를 구비한 것을 특징으로 한다.
상기 제 1 비터비 복호기에 있어서, 상기 패스 매트릭 기억부는 각각 1어드레스당, 연속하는 짝수 스테이트의 패스 매트릭과 홀수 스테이트의 패스 매트릭을 1기억 단위로 기억하여, 판독 및 기입을 행하는 것이 바람직하다.
또, 상기 제 1 비터비 복호기에 있어서, 상기 패스 매트릭 교환부는 상기 ACS 연산부에 의해 산출된, 상위 스테이트 및 하위 스테이트의 패스 매트릭의 복수조로 이루어지는 시계열을 일시적으로 지연시켜, 연속하는 짝수 스테이트 및 홀수 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열로 패스 매트릭을 교환하는 것이 바람직하다.
또, 상기 제 1 비터비 복호기에 있어서, 상기 ACS 연산부에 의해 산출된, 상위 스테이트 및 하위 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열을 일시적으로 지연시켜, 연속하는 짝수 스테이트 및 홀수 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열로 패스 매트릭을 교환하는 상기 패스 매트릭 교환부를 사용하여, 상기 패스 매트릭 기억부 1개에 대한 2회의 판독, 2회의 기입에 의해 4개의 패스 매트릭을 갱신하는 것이 바람직하다.
또, 상기 제 1 비터비 부호기에 있어서, 상기 ACS 연산부는 또한, 전 시각의 패스 매트릭과 조합하여 최우 패스를 선택하고, 상기 선택한(생존) 패스의 정보인 패스 선택 신호를 생성하고, 상기 제 1 비터비 복호기는 또한, 상기 패스 선택 신호를 기억하는 패스 선택 신호 기억부와, 상기 패스 선택 신호 기억부로부터 판독한 과거의 패스 선택 신호를 사용하여 과거의 상태 천이를 탐색하여, 복호 데이터를 출력하는 트레이스 백 연산부를 구비하고, 상기 트레이스 백 연산부는, 상기 패스 선택 신호 기억부로부터 얻어지는 패스 선택 신호에 기초하여, 생존 패스에 따른 비터비 스테이트를 격납하는 비터비 스테이트 격납부와, 상기 비터비 스테이트 격납부의 내용에 기초하여, 다음에 갱신되는 비터비 스테이트의 일부를 예측하는 비터비 스테이트 예측부와, 상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호가 기억되어 있는 상기 패스 선택 신호 기억부의 어드레스를 산출하는 패스 선택 신호 기억 어드레스 산출부를 구비하는 것이 바람직하다.
또, 상기 비터비 스테이트 예측부는, 상기 패스 선택 신호 기억부의 판독 제어 신호와 상기 비터비 스테이트 격납부의 시프트 제어 신호에 의해 상태를 변화시키는 업다운 카운터와, 상기 업다운 카운터의 값에 따라, 상기 비터비 스테이트 격납부의 내용과 다음에 갱신되는 비터비 스테이트의 일부의 대응을 변화시키는 셀렉터를 구비하는 것이 바람직하다.
또한, 상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호 기억 어드레스 산출부가 어드레스를 산출하는 과정, 상기 산출한 어드레스에 기초하여, 상기 패스 선택 신호 기억부의 패스 선택 신호를 판독하는 과정, 및 상기 판독한 패스 선택 신호에 기초하여 생존 패스에 따른 비터비 스테이트를 상기 비터비 스테이트 격납부에 격납하는 과정중 적어도 한 과정에 있어서 파이프 라인 처리를 사용하는 것이 바람직하다.
상기 목적을 달성하기 위해, 본 발명의 제 2 비터비 복호기는, 입력 부호에 기초하여, 브랜치 매트릭을 연산하는 브랜치 매트릭 연산부와, 상기 브랜치 매트릭 연산부에 의해 산출된 상기 브랜치 매트릭에 기초하여, 각 스테이트의 패스 매트릭을 시분할 처리에 의해 산출함과 동시에, 전 시각의 패스 매트릭과 조합하여 최우 패스를 선택하고, 상기 선택한(생존) 패스의 정보인 패스 선택 신호를 생성하는 가산/비교/선택(ACS) 연산부와, 상기 ACS 연산부로부터 차례로 산출되는 패스 매트릭을 일시적으로 지연시켜, 산출시와는 다른 시계열로 패스 매트릭을 교환하는 패스 매트릭 교환부와, 패스 매트릭 및 패스 선택 신호를 기억하는 하나의 패스 매트릭/패스 선택 신호 공통 기억부와, 상기 패스 매트릭/패스 선택 신호 공통 기억부로부터 판독한 과거의 패스 선택 신호를 사용하여 과거의 상태 천이를 탐색하고, 복호 데이터를 출력하는 트레이스 백 연산부로서, 상기 패스 매트릭/패스 선택 신호 공통 기억부로부터 얻어지는 패스 선택 신호에 기초하여, 생존 패스에 따른 비터비 스테이트를 격납하는 비터비 스테이트 격납부와, 상기 비터비 스테이트 격납부의 내용에 기초하여, 다음에 갱신되는 비터비 스테이트의 일부를 예측하는 비터비 스테이트 예측부와, 상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호가 기억되어 있는 상기 패스 선택 신호 기억부의 어드레스를 산출하는 패스 선택 신호 기억 어드레스 산출부를 구비한 트레이스 백 연산부와, 상기 패스 매트릭을 교환부로부터의 패스 매트릭과 상기 ACS 연산부로부터의 패스 선택 신호를 받아, 상기 패스 매트릭/패스 선택 신호 공통 기억부에 대해 특정 어드레스를 생성하여 기입을 행함과 동시에, 상기 패스 매트릭/패스 선택 신호 공통 기억부에 기억되어 있는 상기 패스 매트릭과 상기 패스 선택 신호의 판독을 행하여, 상기 ACS 연산부에 상기 패스 매트릭을, 또 상기 트레이스 백 연산부에 상기 패스 선택 신호를 공급시키는 어드레스 생성/기억 제어부를 구비한 비터비 복호기로서, 상기 ACS 연산부, 상기 패스 매트릭 연산부, 및 상기 트레이스 백 연산부는 상기 어드레스 생성/기억 제어부에 의해, 상기 패스 매트릭/패스 선택 신호 공통 기억부에 대해 시분할로 액세스하는 것을 특징으로 한다.
도 1 은 본 발명의 일실시형태에 의한 비터비 복호기의 개략 구성을 나타낸 블록도,
도 2A 는 ACS 연산부 및 패스 매트릭 및 교환부의 구성을 나타낸 블록도,
도 2B 는 도 2A에서의 각 부분의 동작을 나타낸 타이밍 챠트,
도 3A 는 트레이스 백 연산의 구체적인 구성예를 나타낸 블록도,
도 3B 는 도 3A에서의 각 신호의 동작 지연을 나타낸 타이밍 챠트,
도 3C 는 도 3A에서의 트레이스 백 동작 속도의 상한을 결정하는 동작 지연을 모식적으로 나타낸 도면,
도 4 는 다음 비터비 스테이트 예측부의 원리를 나타낸 도면,
도 5A 는 다음 비터비 스테이트 예측부의 구성예를 나타낸 블록도,
도 5B 는 도 5A에서의 패스 선택 데이터 리드 신호, 시프트 레지스터 시프트 신호와, 업다운 카운터(502)의 값과의 관계를 나타낸 도면,
도 5C 는 업다운 카운터(502)의 값과, 셀렉터(501)에 의해 선택되는 워드 어드레스의 관계를 나타낸 도면,
도 6 은 트레이스 백 연산 동작을 나타낸 타이밍 챠트,
도 7 은 본 발명의 다른 실시형태에 의한, 하나의 RAM을 각 연산부에서 공용하는 비터비 복호기의 개략 구성을 나타낸 블록도,
도 8 은 하나의 RAM을 각 연산부에서 공용하는 동작을 나타낸 타이밍 챠트,
도 9 는 컨벌루션 부호기의 일례를 나타낸 블록도,
도 10 은 비터비 복호를 설명하기 위한 트렐리스 선도(線圖),
도 11A 및 도 11B 는 비터비 복호를 설명하기 위한 패스 매트릭·트랜지션·다이어그램,
도 12 는 트레이스 백 연산을 설명하기 위한 스테이트 천이도,
도 13A 는 종래의 트레이스 백 연산의 구체적인 구성예를 나타낸 블록도,
도 13B 는 도 13A에서의 각 신호의 동작 지연을 나타낸 타이밍 챠트,
도 13C 는 도 13A에서의 트레이스 백 동작 속도의 상한을 결정하는 동작 지연을 모식적으로 나타낸 도면이다.
이하, 본 발명의 바람직한 실시형태에 대해, 도면을 참조하면서 설명한다.
도 1 은 본 발명의 일실시형태에 의한 비터비 복호기의 개략 구성을 나타낸 블록도이다.
일반적으로 비터비 복호기는 비터비 알고리즘을 이용하여 각 상태에서의 2개의 브랜치 중 가장 최우(가장 확실한) 브랜치의 조합(패스)을 선택하여, 소정 길이까지 생존 패스의 선택을 행하여 각 상태에서 선택한 패스중 최우 패스를 검출함으로써, 수신 부호를 복호하는 것이다.
이러한 비터비 알고리즘에 기초하여 컨벌루션 부호를 복호하는 비터비 복호기는, 기본적으로는 도 1에 나타낸 바와 같이, 단자(101)로부터의 수신 데이터 계열(수신 계열)과, 상술한 각 브랜치와의 사이의 매트릭을 계산하는 브랜치 매트릭 연산부(102)와, 생존 패스를 선택하여 생존 패스의 패스 매트릭을 연산하는 ACS(ADD, COMPARE, SELECT = 가산, 비교, 선택) 연산부(103)와, ACS 연산부(103)로부터 차례로 산출되는 패스 매트릭을 일시적으로 지연시켜, 산출시와 다른 시계열로 패스 매트릭을 교환하는 패스 매트릭 교환부(104)와, 각 스테이트(상태)에서의 패스 매트릭을 각각 기억하는 패스 매트릭 기억부(105)와, 선택한 패스의 정보(패스 선택 신호)를 기억하는 패스 선택 신호 기억부(106)와, 이 패스 선택 신호 기억부(106)로부터 판독한 과거의 패스 선택 신호를 사용하여 과거의 상태 천이를 탐색하여, 단자(108)로부터 복호 데이터를 출력하는 트레이스 백 연산부(107)로 구성되어 있다.
먼저, ACS 연산부(103)에서의 ACS 연산에 대해 설명한다.
여기서, 컨벌루션 부호/비터비 복호의 구체예로서, 구속 길이 K=9, 부호화율 R=1/2의 경우에 대해 설명한다. 구속 길이 K=9인 경우의 스테이트(상태) 수는 2K-1이 되고, K=9일 때 28=256 스테이트가 된다. 이들 256 스테이트를 2자리 16진수를 사용하여 00 ∼ FF로 나타내고, 스테이트 xx의 패스 매트릭을 PM[xx]로 나타낸다. 또, 새로운 스테이트의 패스 매트릭을 PM[xx](new), 그 전 시각의 스테이트의 패스 매트릭을 PM[xx](old)로 나타낸다.
상기 구속 길이 K=9, 부호화율 R=1/2인 경우, ACS 연산에 있어서는, 각 상태(스테이트)로 천이하는 2개의 패스 중 최우 패스를 선택하는 연산을 행한다. 예를 들면, 새로운 스테이트 00(new)로 천이하는 패스는 도 11에 나타낸 바와 같이, 전 시각의 스테이트 00(old)로부터와 01(old)로부터의 2개의 패스이며, 이 전 시각의 스테이트 00(old), 01(old)로부터 스테이트 00(new)로 천이하기 위해서는, 수신 부호(G0, G1)이 예를 들면 각각 (00), (11)일 필요가 있다.
이 기대되는 2개의 수신 신호는 각 스테이트 xx(new)에 대해, 컨벌루션 부호기의 생성 다항식으로부터 동일하게 결정된다. 이 2개의 수신 부호는 각각 「정보 비트로서 0이 컨벌루션 부호기로 입력된 경우」, 및 「정보 비트로서 1이 컨벌루션 부호기로 입력된 경우」에 기대되는 수신 부호를 나타낸다.
여기서, 브랜치 매트릭 연산부(102)에 있어서, 수신 부호 각각의 수신 부호 패턴의 매트릭(브랜치 매트릭)을 구하여, ACS 연산부(103)에서, 전 시각의 매트릭(패스 매트릭)과 조합하고 패스의 우도를 구하여, 생존 패스의 선택을 행함과 동시에, 다음 시각을 위한 패스 매트릭을 패스 매트릭 기억부(105)에 기억하여 유지한다.
이 때의 계산은 스테이트 xx에 있어서, 각각 「정보 비트로서 0이 컨벌루션 부호기에 입력된 경우」, 「정보 비트로서 1이 컨벌루션 부호기에 입력된 경우」의 브랜치 매트릭, 및 패스 매트릭을 각각 BM0[xx], BM1[xx], 및 PM0[xx], PM1[xx]로 나타내고, 또한 패스 매트릭과 우도의 대응을
패스 매트릭 대 → 우도 대
패스 매트릭 소 → 우도 소
와 같이 나타내면, 스테이트 00, 01에서 스테이트 00으로 천이하는 경우,
PM0[00](new) = PM[00](old) + BM0[00]
PM1[00](new) = PM[01](old) + BM1[00]
PM[00](new) = max(PM0[00](new), PM1[00](new))
가 된다. 여기서, max(x, y)는 x, y중 큰 값을 선택하는 연산을 나타낸다.
또, 최상위 비트만이 다른 PM[80](new)에 대해서는 이하와 같이 된다.
PM0[80](new) = PM[00](old) + BM0[80]
PM1[80](new) = PM[01](old) + BM1[80]
PM[80](new) = max(PM0[80](new), PM1[80](new))
다음으로, 스테이트 02, 03에서 스테이트 01로 천이하는 경우는,
PM0[01](new) = PM[02](old) + BM0[01]
PM1[01](new) = PM[03](old) + BM1[01]
PM[01](new) = max(PM0[00](new), PM1[00](new))
가 되고, 최상위 비트만이 다른 PM[81](new)에 대해서는 이하와 같이 된다.
PM0[81](new) = PM[02](old) + BM0[81]
PM1[81](new) = PM[03](old) + BM1[81]
PM[81](new) = max(PM0[80](new), PM1[80](new))
또한, 컨벌루션 부호기의 생성 다항식이,
G0(D) = 1 + … + DK-1
G1(D) = 1 + … + DK-1
의 형태로 되어 있는 경우, 즉 1, DK-1의 항을 각각 갖고 있는 경우, 정보 비트의 입력의 0, 1에 의해 부호의 비트가 항상 논리 반전하므로, 부호 거리가 대칭 관계가 되어, 최상위 비트만이 다른 스테이트에 관한 브랜치 매트릭에 관해서는 이하의 관계가 성립한다.
BM0[80] = BM1[00]
BM1[80] = BM0[00]
BM0[81] = BM1[01]
BM1[81] = BM0[01]
이 관계를 사용하면, 상기 패스 매트릭의 관계는 이하와 같이 표시된다.
PM0[00](new) = PM[00](old) + BM0[00]
PM1[00](new) = PM[01](old) + BM1[00]
PM[00](new) = max(PM0[00](new), PM1[00](new))
PM0[80](new) = PM[00](old) + BM1[00]
PM1[80](new) = PM[01](old) + BM0[00]
PM[80](new) = max(PM0[80](new), PM1[80](new))
PM0[01](new) = PM[02](old) + BM0[01]
PM1[01](new) = PM[03](old) + BM1[01]
PM[01](new) = max(PM0[00](new), PM1[00](new))
PM0[81](new) = PM[02](old) + BM1[01]
PM1[81](new) = PM[03](old) + BM0[01]
PM[81](new) = max(PM0[80](new), PM1[80](new))
즉, 상기 식에서 PM[00](old), PM[01](old), PM[02](old), PM[03](old)라는 연속하는 짝수, 홀수 스테이트의 4개의 패스 매트릭으로부터, PM[00](new)와 PM[01](new), 또는 PM[80](new)와 PM[81](new)라는, 1조가 연속하는 짝수, 홀수 스테이트의 2개의 패스 매트릭으로 이루어지는 2조의 패스 매트릭이 얻어지는 것을 알 수 있다.
본 실시형태에서는, 패스 매트릭 교환부(104)를 사용하여, ACS 연산부(103)로부터 차례로 얻어지는 4개의 패스 매트릭을 1조가 연속하는 짝수, 홀수 스테이트의 2개의 패스 매트릭으로 이루어지는 2조의 패스 매트릭으로 교환한다.
또한, 패스 매트릭 기억부(105)로서, RAM(Random Access Memory)을 사용하고, 또한 각각의 RAM의 1어드레스당, 연속하는 짝수, 홀수의 스테이트의 패스 매트릭을 1기억 단위로서 기억하도록 구성함으로써,
(1) PM[00](old), PM[01](old)의 판독, PM[00](new), PM[80](new)의 산출
(2) PM[02](old), PM[03](old)의 판독, PM[01](new), PM[81](new)의 산출
(3) PM[00](new), PM[01](new)의 기입
(4) PM[80](new), PM[81](new)의 기입
이라는 4회의 메모리 액세스로 4개의 패스 매트릭을 갱신하도록 하고 있다.
이것을 PM[00] ∼ PM[FF]에 대한 256 스테이트분 행한다.
구체적으로는, 예를 들면 도 2A에 나타낸 바와 같이, 패스 매트릭 갱신을 행한다.
여기서, 도 2A에 있어서, 스테이트(old)를 n, 스테이트(new)를 m으로 나타내고, 또한 스테이트(new)에서의 상위 스테이트를 m(U), 하위 스테이트를 m(L)로 나타내고 있다. 여기서 상위 스테이트, 하위 스테이트의 정의는 도 9에 나타낸 바와 같이, 정보 비트의 입력측이 스테이트의 최상위 비트가 되어 있는 경우에 있어서, 최상위 비트를 제외한 비트가 동일한 스테이트의 쌍에 관해, 최상위 비트가 1이 되어 있는 스테이트를 상위 스테이트, 최상위 스테이트가 0이 되어 있는 스테이트를 하위 스테이트로 하고 있다. 도 11A 및 도 11B의 패스 매트릭·트랜지션·다이어그램을 예로 들면, 상태 천이 후의 스테이트 00이 하위 스테이트, 스테이트 10이 상위 스테이트가 된다. 또한, 정보 비트의 입력측이 스테이트의 최하위 비트가 되는 정의도 존재하나, 수학적으로는 동일하다.
먼저, 단자 201, 202로부터 각각 브랜치 매트릭 BM0[m], BM1[m]이, 또 단자 203, 204로부터 각각 연속한 짝수, 홀수 스테이트인 패스 매트릭 PM[n], PM[n+1]이 입력된다.
다음으로, 가산기(205, 206, 207, 208)에 의해, 상위, 하위 스테이트의 패스 매트릭 PM0[m(L)], PM1[m(L)], PM0[m(U)], PM1[m(U)]가 산출된다.
이어서, 감산기(209, 210)에 의해, 각각 PM0[m(L)]과 PM1[m(L)], PM0[m(U)]과 PM1[m(U)]의 대소가 비교된다. 감산기(209, 210)에 의한 감산 결과중, 부호 비트가 대소의 비교 결과를 의미하고, PM0[m(L)]과 PM1[m(L)]의 비교 결과인 부호 비트 sign[m(L)], PM0[m(U)]와 PM1[m(U)]의 비교 결과인 sign[m(U)]는 후술하는 셀렉터(211, 212)의 선택 신호에 사용됨과 동시에, 단자(217, 218)로부터 각각 패스 선택 신호 PS[m(L)], PS[m(U)]로서 출력된다.
이어서, 셀렉터(211, 212)에 의해 우도가 높은 패스 매트릭이 PM[m(L)], PM[m(U)]으로서 산출된다. 이 패스 매트릭은 패스 매트릭 교환부(104)에서의 플립플롭 등으로 구성된 지연 소자(213, 214, 215)에 의해 일시적으로 지연된다.
다음으로, 연속한 짝수, 홀수 스테이트인 패스 매트릭 PM[n+2], PM[n+3]에서 동일하게, 패스 선택 신호 PS[m+1(L)], PS[m+1(U)] 패스 매트릭 PM[m+1(L)], PM[m+1(U)]가 산출된다.
이어서, 패스 매트릭 PM[m+1(L)], PM[m+1(U)]는 먼저 지연되어 있었던 패스 매트릭 PM[m(L)], PM[m(U)]와 함께 교환되고, PM[m(L)]과 PM[m+1(L)]의 조, 및 PM[m(U)]와 PM[m+1(U)]의 조로서, 셀렉터(216)에서 선택된다. 그리고, 단자(219, 220)로부터 출력된다.
상기 동작을 도 2B의 타이밍 챠트에 나타낸다. 4사이클 동작중에서, 패스 매트릭의 판독, 기입 동작이 각각 2사이클로 행해지고 있는 것을 알 수 있다. 이러한 시스템에 의해, ACS 연산에서의 메모리 액세스의 빈도를 삭감할 수 있는 것을 알 수 있다.
이어서, 트레이스 백 연산에 대해 설명한다.
도 3A는 트레이스 백 연산의 구체적인 구성예를 나타낸 블록도이다. 도 3A에 있어서, 패스 선택 신호를 격납한 패스 선택 신호 기억부(106)를 제외한 남은 부분이 트레이스 백 연산부(107)를 구성하고, 트레이스 백 연산부(107)는 복수 (n) 스테이트분의 패스 선택 신호를 모은 패스 선택 신호 데이터(n 비트 폭)를 일시적으로 지연하는 데이터 버퍼(302)와, 패스 선택 신호 데이터로부터 1스테이트분의 패스 선택 신호(1비트 폭)를 취출하는 셀렉터(303)와, 패스 선택 신호로부터 비터비 스테이트를 갱신하는 시프트 레지스터(304)와, 비터비 스테이트로부터 다음에 갱신되는 비터비 스테이트의 일부를 예측하는 다음 비터비 스테이트 예측부(305)와, 차 비터비 스테이트 예측부(305)로부터 산출된 패스 선택 신호 기억부 어드레스를 일시적으로 지연하는 어드레스 버퍼(306)로 구성되어 있다.
또한, 시프트 레지스터(304)는 비터비 스테이트를 나타냄과 동시에 비터비 스테이트의 천이에서 얻어지는 복호 비트도 나타낸다.
상기 구성에서 중요한 점은 종래 동작에서는 시프트 레지스터(304)에서 갱신된 비터비 스테이트를 기초로, 패스 선택 신호 기억부(106)로부터 패스 선택 신호 데이터를 판독하여, 패스 선택 신호 데이터로부터 취출된 패스 선택 신호에 의해, 다음 사이클로 시프트 레지스터(304)를 갱신할 필요가 있었던 트레이스 백 처리가, 본 실시 형태에 있어서 신규로 설치한 다음 비터비 스테이트 예측부(305)에 의해, 다음에 갱신되는 비터비 스테이트를 예측하고, 예측한 패스 선택 신호 기억부 어드레스를 산출함으로써, 패스 선택 신호 기억부 어드레스, 및 패스 선택 신호 데이터를 각각 일시적으로 지연하는 어드레스 버퍼(306), 데이터 버퍼(302)를 사용한 트레이스 백 처리로 개량된 것에 있다.
상기 개량의 이점을 다음에 설명한다. 도 3B는 상기 구성에서의 각 신호의 지연에 대해 나타낸 타이밍 챠트이다. 먼저 기준이 되는 클럭이 있고, 다음 비터비 스테이트 예측부 출력, 패스 선택 신호 기억부 어드레스 입력, 패스 선택 신호 기억부 데이터 출력, 데이터 버퍼 출력의 순으로 기재하고 있다. 각각의 신호에는, 어드레스의 배선 지연, 패스 선택 신호 기억부의 출력 지연, 데이터의 배선 지연이 있다. 이들 지연중, 도 3A에 기재한 지연 A, 지연 C에 대해서는, 패스 선택 신호 기억부(106)가 클럭에 동기하여 동작하는 것, 및 어드레스 버퍼(306), 데이터 버퍼(302)에 의해, 도 3B에 나타낸 바와 같이, 파이프 라인 동작으로서 분할되어 있다.
그래서, 트레이스 백 동작 속도의 상한은 도 3C와 같이 하여 결정된다. 상술한 지연 A, 지연 C에 더해, 셀렉터(303)에 관한 지연 B, 지연 D, 그리고 시프트 레지스터(304)의 셋 업 시간을 고려하여, 이하의 지연중 큰 지연에 의해 동작 속도의 상한이 결정된다.
·패스 선택 신호 기억부(106)를 중심으로 한 지연 (1) : 지연 A
·패스 선택 신호 기억부(106)를 중심으로 한 지연 (2) : 지연 C + 지연 D
·셀렉터(303)를 중심으로 한 지연 : 지연 B + 지연 D
여기서, 상술한 바와 같이, 어드레스 버퍼(306), 데이터 버퍼(302)에 의해 지연 A, 지연 C는 대단히 작게 할 수 있으므로, 셀렉터(303)를 중심으로 한 지연에 의해 동작 속도가 제한을 받는 것을 알 수 있다. 이 셀렉터(303)를 중심으로 한 지연은 종래의 패스 선택 신호 기억부를 중심으로 한 지연과 비교하여 대단히 작으므로, 고속의 트레이스 백을 실현할 수 있다.
이어서, 본 실시형태의 중요한 점인 다음 비터비 스테이트 예측부(305)의 원리에 대해 도 4를 사용하여 설명한다.
상술한 바와 같이, 비터비 스테이트는 컨벌루션 부호기의 지연 소자의 내용을 나타내고 있다. 이 지연 소자의 내용은 1비트의 정보 비트가 입력될 때마다 1비트 시프트된다. 즉, 1비트 시프트와 1사이클의 시간 변화는 비터비 스테이트의 일부분에 관해 등가가 된다. 이 관계를 이용하여, 패스 선택 신호 기억부 어드레스가 되는 비터비 스테이트의 일부로서, 시프트 레지스터(304)의 어느 비트 범위를 선택하는지에 따라, 다음에 갱신되는 패스 선택 신호 기억부 어드레스의 예측이 실현 가능하다.
이 동작을 실현하는 구체적인 회로 구성을 나타낸 것이 도 5A이다. 시프트 레지스터(304)로부터 다음 비터비 스테이트 예측부(305)에 입력되는 비터비 스테이트의 하위(패스 선택 신호의 입력측)가 패스 선택 신호 데이터로부터 패스 선택 신호를 취출하는 셀렉터(303)(도 3A)로의 선택 정보(비트 어드레스)가 되고, 동일하게 입력되는 비터비 스테이트의 상위가 패스 선택 신호 기억부 어드레스(워드 어드레스)가 되어, 셀렉터(501)가 워드 어드레스를 비터비 스테이트의 어느 비트 범위에서 취출하는지를 선택하여, 업다운 카운터(502)가 셀렉터(501)의 선택 정보를 산출한다. 또한, 업다운 카운터(502)는 패스 선택 데이터의 리드 신호, 및 시프트 레지스터(304)의 시프트 신호에 의해 카운터의 값을 변화시킨다.
도 5B에 패스 선택 데이터 리드 신호, 시프트 레지스터 신호와, 업다운 카운터(502)의 값의 관계를 나타낸다. 도 5B에 있어서, 패스 선택 데이터 리드 신호가 0(리드하지 않는다), 또한 시프트 레지스터 시프트 신호가 0(시프트하지 않는다)일 때, 또는 패스 선택 데이터 리드 신호가 1(리드한다), 또한 시프트 레지스터 시프트 신호가 1(시프트한다)일 때는, 업다운 카운터(502)는 이전의 값을 유지한다. 다음으로, 패스 선택 데이터 리드 신호가 1(리드한다), 또한 시프트 레지스터 시프트 신호가 0(시프트하지 않는다)일 때는, 업다운 카운터(502)는 1만큼 가산한다. 이어서, 패스 선택 데이터 리드 신호가 0(리드하지 않는다), 또한 시프트 레지스터 시프트 신호가 1(시프트한다)일 때는, 업다운 카운터(502)는 1만큼 감산한다.
여기서 트레이스 백 동작시는 패스 선택 데이터 리드와 시프트 레지스터 시프트가 항상 1대 1로 대응하므로, 패스 선택 데이터 리드 신호가 시프트 레지스터 시프트 신호의 어느 한쪽만 1인 상태는, 도 3B에 나타낸 파이프 라인 구성의 단 수에 의해 결정된다. 본 구성예의 경우는, 트레이스 백 초기에 있어서, 패스 선택 데이터 리드 신호가 1이고, 또한 시프트 레지스터 시프트 신호가 0인 상태가 3 사이클 연속하고, 트레이스 백의 종료시는 패스 선택 데이터 리드 신호가 0이고, 또한 시프트 레지스터 시프트 신호가 1인 상태가 3 사이클 연속한다. 이 때문에, 업다운 카운터(502)의 초기값을 0으로 하면, 업다운 카운터(502)의 값은 0에서 3 사이를 변화하게 된다.
도 5C에 업다운 카운터(502)의 값과, 셀렉터(501)에 의해 선택되는 워드 어드레스의 관계를 나타낸다. 업다운 카운터(502)의 값이 증가할 때, 즉 패스 선택 리드신호가 1이고, 또한 시프트 레지스터 시프트 신호가 0일 때는, 워드 어드레스로서 비터비 스테이트의 하위측을 차례로 선택하는 동작이 된다. 이 동작은 도 4에서 설명한 바와 같이, 다음에 갱신되는 패스 선택 신호 기억부 어드레스를 예측하는 동작이다. 이 예측시는 비트 어드레스의 일부를 워드 어드레스로서 사용하는 동작이 되므로, 예측 범위는 최대 비트 어드레스의 비트폭만큼 취득할 수 있다.
도 6에 상기 트레이스 백 연산에 의한 일련의 동작 타이밍을 나타낸다. 도 6은 위에서부터 차례로 기준 클럭, 다음 비터비 스테이트 예측부(305) 출력, 어드레스 버퍼(306) 출력, 메모리(패스 선택 신호 기억부)(106) 출력, 패스 선택 신호, 시프트 레지스터(304)의 최하위 비트, 패스 선택 데이터 리드 신호, 시프트 레지스터 시프트 신호, 업다운 카운터(502)의 값을 나타내고 있다. 도 6에 나타낸 바와 같이, 다음 비터비 스테이트 예측부(305)의 출력을 사용함으로써, 파이프 라인 동작으로 트레이스 백이 실현 가능한 것을 알 수 있다.
이러한 시스템에 의해 통상의 RAM을 사용하면서도, 고속의 어드레스 백을 실현할 수 있다.
다음으로, 도 7을 참조하여 상기와 같은 연산부를 사용하여, 통상의 RAM을 사용하고, 또한 RAM의 사용량을 최소한으로 한 본 발명의 다른 실시형태에 의한 비터비 복호기의 예를 설명한다.
도 7에 나타낸 비터비 복호기는 상술한 브랜치 매트릭 연산부(102), ACS 연산부(103), 패스 매트릭 교환부(104), 트레이스 백 연산부(107)에 더해, ACS 연산부(103), 패스 매트릭 교환부(104), 및 트레이스 백 연산부(107)에 접속되는 어드레스 생성/기억 제어부(706), 및 어드레스 생성/기억 제어부(706)에 접속되는 패스 매트릭/패스 선택 신호 공통 기억부(705)를 갖고 있다.
어드레스 생성/기억 제어부(706)는 패스 매트릭 격납 영역 개시 어드레스 PMSADR, 패스 선택 신호 격납 영역 개시 어드레스 PSSADR, 격납 영역 지정 신호 PMPSSEL을 기초로, 패스 매트릭 스테이트 번호 n, m 및 패스 선택 신호 스테이트 번호 j로부터, 이하의 메모리 액세스 어드레스 MEMADR을 생성한다.
MEMADR = PMPSSEL?(PMSADR + n) :
(PMSADR + m) : (PSSADR + j)
여기서, 연산식 s?x : y : z 는 s=0일 때 x, s=1일 때 y, s=2일 때 z를 출력하는 연산을 나타낸다.
비터비 복호 동작시는 도 8에 나타낸 바와 같이, PMPSSEL이 적당한 시점에서 0, 1, 2중 어느 한 값이 되고, PMPSSEL에 동기하여 ACS 연산부(104), 패스 매트릭 교환부(104), 및 트레이스 백 연산부(107)의 각각이 동작한다.
이러한 시스템에 의해, 하나의 RAM을 각 연산부에서 공용하여, 통상의 RAM을 사용하고, 또한 RAM의 사용량을 최소한으로 한 비터비 복호를 실현할 수 있다.
상기 구성에 의하면, 비터비 복호기의 ACS 연산을 시분할 처리로 행하고, 패스 매트릭 교환부를 사용하여, 패스 매트릭 기억부 또는 패스 매트릭/패스 선택 신호 공통 기억부로 기입하는 패스 매트릭 스테이트의 순번을 변경함과 동시에, 비터비 복호기의 트레이스 백 연산을 비터비 스테이트 예측부를 사용하여, 파이프 라인 처리로 패스 선택 신호 기억부 또는 패스 매트릭/패스 선택 신호 공통 기억부로부터의 패스 선택 신호의 판독에 의해 행함으로써, ACS 연산의 메모리 액세스 회수를 줄임과 동시에, 트레이스 백 연산을 고속으로 행할 수 있어, 저소비 전력화나 비터비 복호 처리의 고속화가 가능해진다.
즉, 비터비 복호기의 ACS 연산을 시분할 처리로 행하고, 패스 매트릭 교환부를 사용하여, 패스 매트릭 기억부로 기입하는 패스 매트릭 스테이트의 순번을 변경함으로써, 하나의 메모리를 사용하여 4회의 메모리 액세스로 4개의 패스 매트릭을 산출하는 것을 실현할 수 있어, ACS 연산의 1처리당 필요한 메모리 액세스의 회수를 저하시킬 수 있어, 비터비 복호 동작의 고속화 또는 저전력화를 실현할 수 있다.
또, 비터비 복호기의 트레이스 백 연산부에 비터비 스테이트 예측부를 설치하여, 파이프 라인 처리로 패스 선택 신호 기억부로부터의 판독을 행함으로써, 일반적인 RAM 등의 메모리를 패스 선택 신호 기억부에 사용하면서, 고속 동작의 트레이스 백을 행할 수 있어, 비터비 복호 동작의 고속화, 또는 저전력화를 실현할 수 있다.
또한, 어드레스 생성/기억 제어부를 설치하여, 하나의 RAM을 ACS 연산부와, 패스 매트릭 교환부와, 트레이스 백 연산부로 공용함으로써, RAM의 사용량을 최소한으로 한 비터비 복호기를 실현할 수 있다.

Claims (8)

  1. 입력 부호에 기초하여 브랜치 매트릭을 연산하는 브랜치 매트릭 연산부와,
    상기 브랜치 매트릭 연산부에 의해 산출된 상기 브랜티 매트릭에 기초하여, 각 스테이트의 패스 매트릭을 시분할 처리에 의해 산출하는 가산/비교/선택(ACS) 연산부와,
    상기 ACS 연산부로부터 차례로 산출되는 패스 매트릭을 일시적으로 지연시켜, 산출시와는 다른 시계열로 패스 매트릭을 교환하는 패스 매트릭 교환부와,
    상기 패스 매트릭 교환부로부터의 패스 매트릭을 기억하는 패스 매트릭 기억부를 구비한 것을 특징으로 하는 비터비 복호기.
  2. 제 1 항에 있어서, 상기 패스 매트릭 기억부는 각각 1어드레스당, 연속하는 짝수 스테이트의 패스 매트릭과 홀수 스테이트의 패스 매트릭을 1기억 단위로 기억하여, 판독 및 기입을 행하는 것을 특징으로 하는 비터비 복호기.
  3. 제 1 항에 있어서, 상기 패스 매트릭 교환부는 상기 ACS 연산부에 의해 산출된, 상위 스테이트 및 하위 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열을 일시적으로 지연시켜, 연속하는 짝수 스테이트 및 홀수 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열로 패스 매트릭을 교환하는 것을 특징으로 하는 비터비 복호기.
  4. 제 1 항에 있어서, 상기 ACS 연산부에 의해 산출된, 상위 스테이트 및 하위 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열을 일시적으로 지연시켜, 연속하는 짝수 스테이트 및 홀수 스테이트의 패스 매트릭의 복수 조로 이루어지는 시계열로 패스 매트릭을 교환하는 상기 패스 매트릭 교환부를 사용하여, 상기 패스 매트릭 기억부 1개에 대한 2회의 판독, 2회의 기입에 의해 4개의 패스 매트릭을 갱신하는 것을 특징으로 하는 비터비 복호기.
  5. 제 1 항에 있어서, 상기 ACS 연산부는 또한, 전 시각의 패스 매트릭과 조합하여 최우 패스를 선택하고, 상기 선택한(생존) 패스의 정보인 패스 선택 신호를 생성하고, 상기 비터비 복호기는 또한,
    상기 패스 선택 신호를 기억하는 패스 선택 신호 기억부와,
    상기 패스 선택 신호 기억부로부터 판독한 과거의 패스 선택 신호를 사용하여 과거의 상태 천이를 탐색하여, 복호 데이터를 출력하는 트레이스 백 연산부를 구비하고,
    상기 트레이스 백 연산부는,
    상기 패스 선택 신호 기억부로부터 얻어지는 패스 선택 신호에 기초하여, 생존 패스에 따른 비터비 스테이트를 격납하는 비터비 스테이트 격납부와,
    상기 비터비 스테이트 격납부의 내용에 기초하여, 다음에 갱신되는 비터비 스테이트의 일부를 예측하는 비터비 스테이트 예측부와,
    상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호가 기억되어 있는 상기 패스 선택 신호 기억부의 어드레스를 산출하는 패스 선택 신호 기억 어드레스 산출부를 구비한 것을 특징으로 하는 비터비 복호기.
  6. 제 5 항에 있어서, 상기 비터비 스테이트 예측부는,
    상기 패스 선택 신호 기억부의 판독 제어 신호와 상기 비터비 스테이트 격납부의 시프트 제어 신호에 의해 상태를 변화시키는 업다운 카운터와,
    상기 업다운 카운터의 값에 따라, 상기 비터비 스테이트 격납부의 내용과 다음에 갱신되는 비터비 스테이트의 일부와의 대응을 변화시키는 셀렉터를 구비한 것을 특징으로 하는 비터비 복호기.
  7. 제 5 항에 있어서, 상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호 기억 어드레스 산출부가 어드레스를 산출하는 과정, 상기 산출한 어드레스에 기초하여, 상기 패스 선택 신호 기억부의 패스 선택 신호를 판독하는 과정, 및 상기 판독한 패스 선택 신호에 기초하여, 생존 패스에 따른 비터비 스테이트를 상기 비터비 스테이트 격납부에 격납하는 과정중 적어도 한 과정에 있어서 파이프 라인 처리를 사용하는 것을 특징으로 하는 비터비 복호기.
  8. 입력 부호에 기초하여, 브랜치 매트릭을 연산하는 브랜치 매트릭 연산부와,
    상기 브랜치 매트릭 연산부에 의해 산출된 상기 브랜치 매트릭에 기초하여, 각 스테이트의 패스 매트릭을 시분할 처리에 의해 산출함과 동시에, 전 시각의 패스 매트릭과 조합하여 최우 패스를 선택하고, 상기 선택한(생존) 패스의 정보인 패스 선택 신호를 생성하는 가산/비교/선택(ACS) 연산부와,
    상기 ACS 연산부로부터 차례로 산출되는 패스 매트릭을 일시적으로 지연시켜, 산출시와는 다른 시계열로 패스 매트릭을 교환하는 패스 매트릭 교환부와,
    패스 매트릭 및 패스 선택 신호를 기억하는 하나의 패스 매트릭/패스 선택 신호 공통 기억부와,
    상기 패스 매트릭/패스 선택 신호 공통 기억부로부터 판독한 과거의 패스 선택 신호를 사용하여 과거의 상태 천이를 탐색하여, 복호 데이터를 출력하는 트레이스 백 연산부로서,
    상기 패스 매트릭/패스 선택 신호 공통 기억부로부터 얻어지는 패스 선택 신호에 기초하여, 생존 패스에 따른 비터비 스테이트를 격납하는 비터비 스테이트 격납부와,
    상기 비터비 스테이트 격납부의 내용에 기초하여, 다음에 갱신되는 비터비 스테이트의 일부를 예측하는 비터비 스테이트 예측부와,
    상기 비터비 스테이트 예측부에 의해 예측된 비터비 스테이트의 일부에 기초하여, 상기 패스 선택 신호가 기억되어 있는 상기 패스 선택 신호 기억부의 어드레스를 산출하는 패스 선택 신호 기억 어드레스 산출부를 구비한 트레이스 백 연산부와,
    상기 패스 매트릭을 교환부로부터의 패스 매트릭과 상기 ACS 연산부로부터의 패스 선택 신호를 받아, 상기 패스 매트릭/패스 선택 신호 공통 기억부에 대해 특정 어드레스를 생성하여 기입을 행함과 동시에, 상기 패스 매트릭/패스 선택 신호 공통 기억부에 기억되어 있는 상기 패스 매트릭과 상기 패스 선택 신호의 판독을 행하여, 상기 ACS 연산부에 상기 패스 매트릭을, 또 상기 트레이스 백 연산부에 상기 패스 선택 신호를 공급시키는 어드레스 생성/기억 제어부를 구비한 비터비 복호기로서,
    상기 ACS 연산부, 상기 패스 매트릭 연산부, 및 상기 트레이스 백 연산부는, 상기 어드레스 생성/기억 제어부에 의한 제어하에 상기 패스 매트릭/패스 선택 신호 공통 기억부에 대해 시분할로 액세스하는 것을 특징으로 하는 비터비 복호기.
KR10-2000-0069518A 1999-11-22 2000-11-22 비터비 복호기 KR100426712B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP99-331612 1999-11-22
JP33161299A JP3515720B2 (ja) 1999-11-22 1999-11-22 ビタビ復号器

Publications (2)

Publication Number Publication Date
KR20010051871A true KR20010051871A (ko) 2001-06-25
KR100426712B1 KR100426712B1 (ko) 2004-04-13

Family

ID=18245612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0069518A KR100426712B1 (ko) 1999-11-22 2000-11-22 비터비 복호기

Country Status (5)

Country Link
US (1) US6324226B1 (ko)
EP (1) EP1102408B1 (ko)
JP (1) JP3515720B2 (ko)
KR (1) KR100426712B1 (ko)
DE (1) DE60028906T2 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741664B1 (en) * 1999-02-05 2004-05-25 Broadcom Corporation Low-latency high-speed trellis decoder
TW447194B (en) * 1999-04-12 2001-07-21 Matsushita Electric Ind Co Ltd Viterbi decoding device and method
US7225393B2 (en) * 1999-10-01 2007-05-29 Matsushita Electric Industrial Co., Ltd. Viterbi decoder and Viterbi decoding method
JP3501725B2 (ja) 2000-05-12 2004-03-02 日本電気株式会社 ビタビ復号器
US6842490B1 (en) * 2000-10-11 2005-01-11 Feng Qian Viterbi decoder with adaptive traceback
JP3532884B2 (ja) * 2001-05-18 2004-05-31 松下電器産業株式会社 ビタビ復号器
US7830630B2 (en) * 2001-06-28 2010-11-09 Stmicroelectronics, Inc. Circuit and method for detecting the phase of a servo signal
KR100834663B1 (ko) * 2002-03-11 2008-06-02 삼성전자주식회사 직접 메모리 접근을 이용한 비터비 복호기 및 비터비 복호 방법
US6928605B2 (en) * 2002-03-29 2005-08-09 Intel Corporation Add-compare-select accelerator using pre-compare-select-add operation
US7046747B2 (en) * 2002-04-16 2006-05-16 Intel Corporation Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
US7020223B2 (en) 2002-04-16 2006-03-28 Intel Corporation Viterbi decoder and method using sequential two-way add-compare-select operations
CN100477534C (zh) * 2002-08-14 2009-04-08 联发科技股份有限公司 维特比解码器的解码电路与方法
EP1450493A1 (en) * 2003-02-19 2004-08-25 Nokia Corporation Viterbi decoder with path metric calculations over two trellis columns and routing of path metrics in the memory
US7496159B2 (en) * 2003-12-01 2009-02-24 Mediatek Inc. Survivor memory management in a Viterbi decoder
US20060068911A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US7275204B2 (en) * 2004-09-30 2007-09-25 Marvell International Ltd. Distributed ring control circuits for Viterbi traceback
TWI241072B (en) * 2004-12-09 2005-10-01 Ind Tech Res Inst Prediction device and method applied in a Viterbi decoder
US7506239B2 (en) * 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US7603613B2 (en) 2005-02-17 2009-10-13 Samsung Electronics Co., Ltd. Viterbi decoder architecture for use in software-defined radio systems
US7571369B2 (en) * 2005-02-17 2009-08-04 Samsung Electronics Co., Ltd. Turbo decoder architecture for use in software-defined radio systems
US7933405B2 (en) * 2005-04-08 2011-04-26 Icera Inc. Data access and permute unit
JP4600183B2 (ja) * 2005-06-28 2010-12-15 ソニー株式会社 ビタビ復号装置
US20070266303A1 (en) * 2006-04-27 2007-11-15 Qualcomm Incorporated Viterbi decoding apparatus and techniques
JP2010206570A (ja) * 2009-03-04 2010-09-16 Sony Corp 復号装置、復号方法
JP6551534B2 (ja) * 2015-03-23 2019-07-31 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
US10069517B2 (en) * 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes
KR102693857B1 (ko) * 2016-07-06 2024-08-09 삼성전자주식회사 컨볼루션 디코더 및 컨볼루션 코드들을 디코딩하는 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539757A (en) * 1993-12-22 1996-07-23 At&T Corp. Error correction systems with modified Viterbi decoding
US5497384A (en) * 1993-12-29 1996-03-05 International Business Machines Corporation Permuted trellis codes for input restricted partial response channels
US5530707A (en) * 1994-03-09 1996-06-25 At&T Corp. Area-efficient decoders for rate-k/n convolutional codes and other high rate trellis codes
US5537424A (en) * 1994-08-12 1996-07-16 International Business Machines Corporation Matched spectral null codes with partitioned systolic trellis structures
US5841796A (en) 1995-03-14 1998-11-24 Comsat Corporation Apparatus and method for calculating viterbi path metric using exponentially-weighted moving average
US5859861A (en) 1995-06-21 1999-01-12 Hyundai Electronics Ind. Co., Ltd. High speed viterbi decoder
JPH09232973A (ja) * 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
US5815515A (en) * 1996-03-28 1998-09-29 Lsi Logic Corporation Edge metric calculation method and apparatus using permutations
US5872817A (en) 1997-07-02 1999-02-16 Lucent Technologies Inc. Joint viterbi decoder and decision feedback equalizer

Also Published As

Publication number Publication date
US6324226B1 (en) 2001-11-27
JP3515720B2 (ja) 2004-04-05
EP1102408A2 (en) 2001-05-23
DE60028906T2 (de) 2007-02-01
EP1102408B1 (en) 2006-06-21
KR100426712B1 (ko) 2004-04-13
JP2001156651A (ja) 2001-06-08
EP1102408A3 (en) 2003-08-27
DE60028906D1 (de) 2006-08-03

Similar Documents

Publication Publication Date Title
KR100426712B1 (ko) 비터비 복호기
EP0234558B1 (en) Path trace viterbi decoder
KR100187964B1 (ko) 비터비 복호방법 및 비터비 복호장치
EP0926836B1 (en) Viterbi decoding apparatus and viterbi decoding method
JPH0144058B2 (ko)
US7277507B2 (en) Viterbi decoder
US8401126B2 (en) Viterbi decoding apparatus
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
KR100311504B1 (ko) 비터비디코더의스태이트메트릭메모리및이를이용한복호화방법
JP2018207248A (ja) ビタビ復号装置、及び、ビタビ復号方法
JP4047697B2 (ja) ビタビ復号装置
JP2010206570A (ja) 復号装置、復号方法
JP2004120791A (ja) ビタビ復号器
JP3260714B2 (ja) ビタビ復号化装置およびビタビ復号化方法
JP2904271B2 (ja) ビタビ復号器用パスメモリユニットおよび復号方法
KR19990076528A (ko) 비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법
KR100223925B1 (ko) 비터비 디코딩장치
JPS638652B2 (ko)
KR0148060B1 (ko) Viterbi 복호기의 ACS를 위한 메모리 최적 구조
JP2571384B2 (ja) シ−ケンシャル復号器
JPH0361375B2 (ko)
JP3288328B2 (ja) ビタビ復号器のトレースバック処理の高速化装置およびその高速化方法
KR20010008761A (ko) 병렬 가산비교선택회로 및 트레이스백 구조를 채용한 이동국용고속 비터비 디코더
JPH0537402A (ja) ビタビ復号器
JPH0361376B2 (ko)

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: 20110222

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee