KR19990076528A - 비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법 - Google Patents

비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법 Download PDF

Info

Publication number
KR19990076528A
KR19990076528A KR1019980046726A KR19980046726A KR19990076528A KR 19990076528 A KR19990076528 A KR 19990076528A KR 1019980046726 A KR1019980046726 A KR 1019980046726A KR 19980046726 A KR19980046726 A KR 19980046726A KR 19990076528 A KR19990076528 A KR 19990076528A
Authority
KR
South Korea
Prior art keywords
metric value
metric
value
previous
branch metric
Prior art date
Application number
KR1019980046726A
Other languages
English (en)
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 KR19990076528A publication Critical patent/KR19990076528A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • 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)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 가산 비교 선택 고속화 방법은 브랜치 메트릭값 계산부와 메트릭 메모리와, 제1 및 제2레지스터를 가지며 제1이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산한 값과 제2이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다음 상태의 계산된 브랜치 메트릭값을 가산한 값을 비교하여 더 큰 값을 생존 메트릭으로 결정하는 가산 비교 선택장치를 구비한 비터비 알고리즘 처리방법에 있어서, 임의의 한 현재 상태에서의 메트릭값을 구하기 위해 상기 메트릭 메모리에서 대응되는 제1 및 제2이전 메트릭값을 읽어 각각 상기 제1 및 제2레지스터에 저장한 다음 상기 현재 상태에서의 메트릭값을 계산하는 제1과정과, 상기 제1과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값을 그대로 이용하는 다른 현재 상태에서의 메트릭값을 계산하는 제2과정과, 상기 제2과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값과 다른 이전 메트릭값을 이용하는 또 다른 현재 상태에서의 메트릭값을 구하기 위해 상기 제1과정으로 되돌아가는 제3과정으로 이루어짐을 특징으로 한다.

Description

비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및 방법
본 발명은 디지털 이동통신시스템에 있어서 비터비 알고리즘(Viterbi Algorithm)을 처리하는 장치 및 방법에 관한 것으로, 특히 비터비 알고리즘 처리를 위한 가산 비교 선택 실행 속도를 높이는 장치 및 방법에 관한 것이다.
비터비 알고리즘은 가우시안 채널을 모델로 하는 연판정 방법을 쉽게 구현할 수 있는 알고리즘이다. 통상적으로 비터비 알고리즘은 에러 정정율이 좋아 널리 사용되고는 있지만, 구현할 때 계산량이 많고 시간이 많이 걸린다. 가장 많은 시간을 소요하는 부분은 가산 비교 선택(Add Compare Select: 이하 ACS라 함.) 부분과 트레이스백(traceback) 부분이다. 그런데 길쌈 부호기(convolution encoder)에서 구속장(constraint: 통상적으로 k라 칭하며, 이하 k로 칭함.)이 가해지면 상기 ACS 부분에서 계산되는 상태(state)의 개수도 정해지게 된다. 또한 상기 트레이스백 부분에서 경로 길이(path length)는 비터비 알고리즘의 성능을 좌우하는 중요한 요소인데, 시뮬레이션(simulation)을 통해 그 길이를 정해주고 있다.
이동통신중에서도 유럽 디지털 이동통신 표준 규격인 GSM(Global System for Mobile Communication)과 같이 TDMA(Time Division Multiple Access)방식을 사용하는 경우에는 수신을 처리할 수 있는 시간이 정해지기 때문에 될 수 있는한 빠른 비터비 알고리즘을 요구하게 된다. 다시 말해서, GSM방식은 한 TDMA동안의 시간이 4.615μs로 제한되어 있기 때문에 안정된 동작을 하기 위해서는 시간에 대한 여유(magine) 확보가 무엇보다 중요하다. 그래서 최근에는 기저대역(baseband) 시스템 자체를 디지털신호처리기(Digital Signal Processor: 이하 DSP라 함.)로 구현하는 경우가 많아지고 있다. 그러나 비터비 알고리즘 처리부분은 많은 계산량과 빠른 속도를 요구하므로 별도의 공동 처리(co-process) 형태를 갖도록 하고 있다. 이처럼 비터비 알고리즘은 이미 정해져 있는 것이지만, 이를 얼마나 빨리 그리고 효율적으로 실행시킬 수 있도록 설계하는가 하는 점에서는 개선의 여지가 있다.
도 1은 통상적인 비터비 디코더(Viterbi decoder)의 구성을 나타낸 도면이다. 브랜치 메트릭값 계산부(Branch Metric Calculator: 이하 BMC라 함.)(1)는 수신된 디지털 신호를 입력하여 확률적 정보인 브랜치 메트릭값을 계산한다. 가산 비교 선택부(Add Compare Select: 이하 ACS라 함.)(2)는 상기 BMC(1)로부터 브랜치 메트릭값을 입력하고 이 브랜치 메트릭값을 사용하여 격자상(trellis)의 각 상태에 해당하는 이전(previous) 경로 메트릭을 갱신(update)한다. 그리고 상기 ACS(2)는 그 갱신된 경로 메트릭을 서로 비교하여 선택된 경로 메트릭을 출력함과 더불어 판정 비트를 출력한다. 메트릭 메모리(3)는 상기 ACS(2)에서 선택된 경로 메트릭을 다음 단계에서 상기 ACS(2)로 궤환한다. 경로 메모리(4)는 상기 ACS(2)에서 출력된 판정 비트를 저장한다. 트레이스백 제어부(5)는 상기 경로 메모리(4)에 저장된 판정 비트를 이용하여 트레이스백을 실행하여 원래의 정보 순서(sequence)를 찾아낸다.
이하 종래의 ACS(2)를 설계하는 방식에 대하여 설명한다. 설명의 편의상 4 상태인 경우를 예로 들어 설명한다. 비터비 알고리즘에서 가장 유사한 메트릭을 찾는 것은 올바른 데이터를 찾기 위해 필수적인 것이다. 다음 수학식1은 비터비 알고리즘에서 생존 메트릭을 계산하는 식이다.
여기서 Mn은 2개의 메트릭중에서 생존(survival) 메트릭을 의미하는 것이다. BMC(1)은 자체에서 길쌈 부호기와 동일한 것을 만들어 수신된 데이터와의 차이를 구하는 것이다. 그러므로 현재 상태의 생존 메트릭은 그전 상태의 메트릭 값과 현재 상태의 브랜치 메트릭값 계산값을 더해서 둘중에서 큰 값이 된다. 이를 위해서는 적어도 두 개의 가산기와 한 개의 비교기가 필요하다.
현재 상태의 메트릭 값을 계산하려면, 메트릭 메모리(3)에 저장되어 있는 이전 상태의 메트릭 값을 읽은 다음 현재 상태의 브랜치 메트릭값 계산값과 더한 값을 비교하여 송신된 것과 가장 유사도가 높은 것을 찾는다.
도 2는 비터비 알고리즘의 생존 메트릭 계산을 위한 각 상태별 메트릭값 및 계산된 브랜치 메트릭값을 예시한 도면이다. 도시된 경우에 상태 00의 메트릭 값을 계산하기 위해서는 이전 메트릭 값 Mn-1 p0 을 읽은 다음 bmc1p0 s0 와 더한 값과 Mn-1 p1 bmc2p1 s0 을 더한 값을 비교하여 더 큰 값을 상기 상태 00의 생존 메트릭 Mn,s0 으로 결정하게 된다. 그러므로 하나의 생존 메트릭 값을 구하기 위해서는 이전 메트릭을 읽는 데만 각 상태마다 2사이클(cycle)이 소요된다. 즉 생존 메트릭값을 계산하기 위해서 상태 00에서는 이전 메트릭 값 0과 1을 현재 상태 01에서는 이전 메트릭 값 2와 3을 읽어야 한다. 이와 같은 동작 과정을 계속하면 총 4상태를 계산하기 위해서는 이전 메트릭 값을 읽는 만 총 8 사이클이 소요된다. 이 방법은 메모리 액세스를 너무 자주하여 전류가 많이 소비되고, 클럭을 많이 사용하여 GSM과 같이 빠른 비터비 알고리즘의 실행을 요구하는 데 사용하기에는 부적합하다.
따라서 본 발명의 목적은 비터비 디코더에서 계산량이 가장 많은 ACS 부분의 처리 속도를 높이고 전력의 소모를 줄이는 장치 및 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 가산 비교 선택 고속화 방법은 브랜치 메트릭값 계산부와 메트릭 메모리와, 제1 및 제2레지스터를 가지며 제1이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산한 값과 제2이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다음 상태의 계산된 브랜치 메트릭값을 가산한 값을 비교하여 더 큰 값을 생존 메트릭으로 결정하는 가산 비교 선택장치를 구비한 비터비 알고리즘 처리방법에 있어서, 임의의 한 현재 상태에서의 메트릭값을 구하기 위해 상기 메트릭 메모리에서 대응되는 제1 및 제2이전 메트릭값을 읽어 각각 상기 제1 및 제2레지스터에 저장한 다음 상기 현재 상태에서의 메트릭값을 계산하는 제1과정과, 상기 제1과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값을 그대로 이용하는 다른 현재 상태에서의 메트릭값을 계산하는 제2과정과, 상기 제2과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값과 다른 이전 메트릭값을 이용하는 또 다른 현재 상태에서의 메트릭값을 구하기 위해 상기 제1과정으로 되돌아가는 제3과정으로 이루어짐을 특징으로 한다.
도 1은 통상적인 비터비 디코더의 구성을 나타낸 도면
도 2는 비터비 알고리즘의 생존 메트릭 계산을 위한 각 상태별 메트릭값 및 계산된 브랜치 메트릭값을 예시한 도면
도 3은 본 발명의 실시 예에 따른 비터비 디코더의 가산 비교 선택장치의 구성도
도 4는 본 발명의 실시 예에 따른 동작 타이밍도
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기 설명에서는 구체적인 회로의 구성 소자 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 3은 본 발명의 실시 예에 따른 비터비 디코더의 가산 비교 선택장치의 구성도이다.
가산 비교 선택장치는, 전술한 도 1의 메트릭 메모리(3)에서 읽은 소정의 이전 메트릭값을 저장하는 제2레지스터(10B)와 상기 제2레지스터(10B)로부터 쉬프트되어져 입력되는 이전 메트릭값을 저장하는 제1레지스터(10A)로 이루어지는 레지스터부(10)와, 상기 제1레지스터(10A)로부터 입력한 제1이전 메트릭값과 전술한 도 1의 BMC(1)에서 출력되는 현재 상태의 계산된 브랜치 메트릭값(bmc1)을 가산하는 제1가산기(30)와, 소정의 제1선택신호(bmcsel)에 응답하여 상기 BMC(1)에서 출력되는 현재 혹은 다음 상태의 계산된 브랜치 메트릭값(bmc1, bmc2)중 하나를 선택적으로 출력하는 제1멀티플랙서(20)와, 소정의 제2선택신호(PMsel)에 응답하여 상기 제1레지스터(10A)의 제1이전 메트릭값 혹은 상기 제2레지스터(10B)의 제2이전 메트릭값 중 하나를 선택적으로 출력하는 제2멀티플랙서(25)와, 상기 제1멀티플랙서(20)로부터 출력되는 현재 혹은 다음 상태의 계산된 브랜치 메트릭값(bmc1, bmc2)과 상기 제2멀티플랙서(25)로부터 출력되는 제1 혹은 제2이전 메트릭값(1차 및 2차 입력 PM1)을 가산하는 제2가산기(35)와, 상기 제1 및 제2가산기(30, 35) 출력을 비교하여 더 큰값을 생존 메트릭 즉 현재 메트릭(Present Metric value)(PM2)으로 결정하는 비교기(40)와, 상기 제2이전 메트릭값을 저장할 때, 상기 다음 상태의 계산된 브랜치 메트릭값이 선택되도록 하기 위해 상기 제1선택신호(bmcsel)를 발생함과 동시에 상기 제2이전 메트릭값이 선택되도록 하기 위해 상기 제2선택신호(PMsel)를 발생하는 제어부(50)로 구성된다.
상기 제1 및 제2브랜치 메트릭값(bmc1, bmc2)은 등화기일 경우에는 이클리디언 거리(Eclidien distance)를 의미하고, 길쌈 복호기(convolution decoder)일 경우에는 해밍 거리(Hamming distance)를 의미한다. 본 실시예에서 사용한 도 1의 BMC(1)는 수신된 데이터와 미리 정해진 송신 데이터와의 차이를 구하는데, 그때 구해지는 것이 상기 제1 및 제2브랜치 매트릭값(bmc1, bmc2)이다.
이전 메트릭 값(Previous Metric value: PM1)은 메트릭 메모리(3)에서 읽은 값으로서, 사용하고자 하는 목적에 따라 상태 개수와 크기가 달라질 수 있다. 그리고 그에 따라 제1 및 제2가산기(30, 35)와 제1 및 제2멀티플랙서(20, 25)의 크기가 결정된다.
전술한 수학식 1에 따르면, 상태 00의 경우 이전 메트릭 값 Mn-1 p0 을 읽은 다음 bmc1p0 s0 와 더한 값과 Mn-1 p1 bmc2p1 s0 을 더한 값을 비교하여 더 큰 값을 상기 상태 00의 생존 메트릭 Mn,s0 으로 결정하게 되는데, 이러한 결정 즉 둘중 어느 것이 생존했는지를 나타내는 정보 즉 판정비트(SEL)는 비교기(40)로부터 발생된다. 그리고 이 판정비트(SEL)는 경로 메모리(4)에 저장되며, 나중에 데이터를 트레이스백하는 데 사용된다.
본 발명의 요지는 이전의 메모리(previous metric memory)를 읽어 레지스터부(10)에 저장해두었다가 다음 상태를 계산할 때 다시 같은 메모리를 반복해서 읽지 않고 상기 레지스터부(10)에 있는 값을 이용하도록 하는 데 있다. 도 2를 참조하면, 현재 상태 00에서 이전 상태 00와 01의 메트릭값을 읽고 현재 상태 10에서도 이전 상태 00와 01의 메트릭값을 읽는다. 그러므로 현재 메트릭 계산의 순서를 종래와 같이 상태 00, 01, 10, 11의 순으로 하지 않고 상태 00, 10, 01, 11의 순으로 바꾼다. 결국 이전 메모리 읽기 순서가 상태 00, 01, 00, 01, 10, 11, 10, 11의 순서로 바뀌게 된다. 그러므로 메트릭 메모리(3)로부터 읽은 이전 상태 00와 01에 대응되는 메트릭값을 레지스터부(10)의 제1 및 제2레지스터(10B, 10A)에 각각 래치한 다음, 현재 상태 00와 10의 ACS를 차례로 계산한다. 이렇게 되면 상기 현재 상태 00를 계산한 후에 상기 메트릭 메모리(3)를 다시 읽지 않고 상기 제1 및 제2레지스터(10B, 10A)로부터 이전 상태 00와 01에 대응되는 메트릭값을 읽어 현재 상태 10의 ACS를 계산할 수 있다. 이후 상기 메트릭 메모리(3)로부터 다시 이전 상태 10, 11의 메트릭값을 래치한 다음 상기 제1 및 제2레지스터(10B, 10A)에 저장해두고 상기와 마찬가지로 현재 상태 01, 11을 차례로 계산하면 상기 메트릭 메모리(3)로부터 이전 메트릭값을 읽는 회수를 8번에서 4번으로 줄일 수 있다.
도 4는 본 발명의 실시 예에 따른 동작 타이밍도이다.
(4a)는 메트릭 메모리(3)로부터 이전 메트릭값을 읽는 순서를 나타낸 것이다. (4b)는 레지스터부(10)에 있는 제1레지스터(10B)의 값이며, (4c)는 제2레지스터(10A)의 값이고, (4d)는 bmc1의 값이며, (4e)는 bmc2의 값이다. (4f)는 경로 메모리(3)에 저장된 현재 메트릭값이다.
(4a)의 구간 T1, T2에 도시된 바와 같이 메트릭 메모리(3)로부터 이전 상태 00와 01에서의 메트릭값 Mn-1 p0 , Mn-1 p1 을 순차적으로 읽어 (4b)의 구간 T1 및 (4c)의 구간 T2에 도시된 바와 같이 각각 제1 및 제2레지스터(10B, 10A)에 저장한다. 그리고 (4d) 및 (4e)의 구간 T1에 도시된 바와 같이 BMC(1)에서 계산되어지는 값 bmc1p0 s0 , bmc2p1 s0 을 가지고 전술한 수학식 1에 의거하여 ACS 계산을 한다. 이렇게 하여 구해지는 현재 상태 00에서의 현재 메트릭값은 (4f)의 구간 T1, T2에 도시된 바와 같이 Mn,s0 이다.
다음으로, 상기 제1 및 제2레지스터(10B, 10A)에 저장되어 있는 이전 상태 00와 01에서의 메트릭값 Mn-1 p0 , Mn-1 p1 과 (4d) 및 (4e)의 구간 T3에 도시된 바와 같이 BMC(1)에서 계산되어지는 값 bmc1p0 s2 , bmc2p1 s2 을 가지고 전술한 수학식 1에 의거하여 ACS 계산을 한다. 이렇게 하여 구해지는 현재 상태 10에서의 현재 메트릭값은 (4f)의 구간 T3에 도시된 바와 같이 Mn,s2 이다.
다음으로, (4a)의 구간 T4, T5에 도시된 바와 같이 메트릭 메모리(3)로부터 이전 상태 10와 11에서의 메트릭값 Mn-1 p2 , Mn-1 p3 을 순차적으로 읽어 (4b)의 구간 T4 및 (4c)의 구간 T5에 도시된 바와 같이 각각 제1 및 제2레지스터(10B, 10A)에 저장한다. 그리고 (4d) 및 (4e)의 구간 T4에 도시된 바와 같이 BMC(1)에서 계산되어지는 값 bmc1p2 s1 , bmc2p3 s1 을 가지고 전술한 수학식 1에 의거하여 ACS 계산을 한다. 이렇게 하여 구해지는 현재 상태 01에서의 현재 메트릭값은 (4f)의 구간 T4, T5에 도시된 바와 같이 Mn,s1 이다.
다음으로, 상기 제1 및 제2레지스터(10B, 10A)에 저장되어 있는 이전 상태 10와 11에서의 메트릭값 Mn-1 p2 , Mn-1 p3 과 (4d) 및 (4e)의 구간 T6에 도시된 바와 같이 BMC(1)에서 계산되어지는 값 bmc1p2 s3 , bmc2p3 s3 을 가지고 전술한 수학식 1에 의거하여 ACS 계산을 한다. 이렇게 하여 구해지는 현재 상태 11에서의 현재 메트릭값은 (4f)의 구간 T6에 도시된 바와 같이 Mn,s3 이다.
결국, 상기와 같이 현재 메트릭 계산의 순서를 순차적으로 하지 않고 바꿈(00→10→01→11)으로써 현재 상태 10와 11에서의 메트릭값을 구할 때는 이전 메트릭값을 읽기 위해 메모리를 다시 액세스하지 않고 각각 현재 상태 00와 01에서 메트릭값을 구할 때 미리 읽어 놓은 이전 메트릭값을 그대로 이용하므로 그만큼 시간을 절약하게 되는 것이다.
다시 말해서, 4 상태를 가정할 때, 종래에는 메트릭 메모리(3)를 읽는 횟수가 8번이지만 본 실시 예에 따르면 4번으로 줄어든다. 또한 전체적으로 필요한 클럭 개수도 2클럭 만큼 줄어든다. 즉 종래에는 8 클럭이 필요하지만, 본 실시 예에서는 6 클럭만을 필요로 한다. 도시된 구간 T1 ∼ T6은 단위 클럭에 해당한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 않되며 후술하는 특허청구의 범위뿐 만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명은 전체 비터비 처리 시간(본 실시예에서의 ACS블럭 측면에서 보면 총 25%의 처리 시간)을 줄이는 효과가 있다. 다시 말해서, 보통의 ACS 계산 방법에 따르지 않고 메모리 읽기 순서를 다르게 하여 전체 메모리 액세스 횟수와 계산 시간을 줄여 시스템(예: GSM)의 구현에 시간 여유를 줌으로써 신뢰성(reliability)을 높이는 장점이 있다. 또한 순차적인(sequencial) 메모리 읽기 횟수를 줄여 부가적으로 전류 소모도 줄일 수 있는 장점이 있다.

Claims (6)

  1. 브랜치 메트릭값 계산부와 메트릭 메모리를 구비한 비터비 알고리즘 처리장치에 있어서,
    상기 메트릭 메모리에서 순차적으로 읽은 제1 및 제2이전 메트릭값을 쉬프트하여 각각 저장하는 제1 및 제2레지스터와,
    상기 제1레지스터로부터 입력한 제1이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산하거나 상기 제1레지스터로부터 입력한 제1이전 메트릭값과 다음 상태의 계산된 브랜치 메트릭값을 가산하는 제1가산기와,
    상기 제2레지스터로부터 입력한 제2이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산하거나 상기 제2레지스터로부터 입력한 제2이전 메트릭값과 상기 다음 상태의 계산된 브랜치 메트릭값을 가산하는 제2가산기와,
    상기 제1 및 제2가산기 출력을 비교하여 생존 메트릭을 계산하는 비교기로 구성됨을 특징으로 하는 가산 비교 선택 고속화 장치.
  2. 제1항에 있어서,
    상기 제1 및 제2브랜치 메트릭값이 해밍 거리임을 특징으로 하는 가산 비교 선택 고속화 장치.
  3. 제1항에 있어서,
    상기 제1 및 제2브랜치 메트릭값이 이클리디언 거리임을 특징으로 하는 가산 비교 선택 고속화 장치.
  4. 브랜치 메트릭값 계산부와 메트릭 메모리를 구비한 비터비 알고리즘 처리장치에 있어서,
    상기 메트릭 메모리에서 읽은 소정의 이전 메트릭값을 저장하는 제2레지스터와,
    상기 제2레지스터로부터 쉬프트되어져 입력되는 이전 메트릭값을 저장하는 제1레지스터와,
    상기 제1레지스터로부터 입력한 제1이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산하는 제1가산기와,
    소정의 제1선택신호에 응답하여 상기 브랜치 메트릭값 계산부에서 출력되는 현재 혹은 다음 상태의 계산된 브랜치 메트릭값중 하나를 선택적으로 출력하는 제1멀티플랙서와,
    소정의 제2선택신호에 응답하여 상기 제1레지스터의 제1이전 메트릭값 혹은 상기 제2레지스터의 제2이전 메트릭값 중 하나를 선택적으로 출력하는 제2멀티플랙서와,
    상기 제1멀티플랙서로부터 출력되는 현재 혹은 다음 상태의 계산된 브랜치 메트릭값과 상기 제2멀티플랙서로부터 출력되는 제1 혹은 제2이전 메트릭값을 가산하는 제2가산기와,
    상기 제1 및 제2가산기 출력을 비교하여 더 큰값을 생존 메트릭으로 결정하는 비교기와,
    상기 제2이전 메트릭값을 저장할 때, 상기 다음 상태의 계산된 브랜치 메트릭값이 선택되도록 하기 위해 상기 제1선택신호를 발생함과 동시에 상기 제2이전 메트릭값이 선택되도록 하기 위해 상기 제2선택신호를 발생하는 제어부로 구성됨을 특징으로 하는 가산 비교 선택 고속화 장치.
  5. 브랜치 메트릭값 계산부와 메트릭 메모리와, 제1 및 제2레지스터를 가지며 제1이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 현재 상태의 계산된 브랜치 메트릭값을 가산한 값과 제2이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다음 상태의 계산된 브랜치 메트릭값을 가산한 값을 비교하여 더 큰 값을 생존 메트릭으로 결정하는 가산 비교 선택장치를 구비한 비터비 알고리즘 처리방법에 있어서,
    임의의 한 현재 상태에서의 메트릭값을 구하기 위해 상기 메트릭 메모리에서 대응되는 제1 및 제2이전 메트릭값을 읽어 각각 상기 제1 및 제2레지스터에 저장한 다음 상기 현재 상태에서의 메트릭값을 계산하는 제1과정과,
    상기 제1과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값을 그대로 이용하는 다른 현재 상태에서의 메트릭값을 계산하는 제2과정과,
    상기 제2과정의 수행후 상기 제1 및 제2레지스터의 제1 및 제2이전 메트릭값과 다른 이전 메트릭값을 이용하는 또 다른 현재 상태에서의 메트릭값을 구하기 위해 상기 제1과정으로 되돌아가는 제3과정으로 이루어짐을 특징으로 하는 가산 비교 선택 고속화 방법.
  6. 제1 및 제2레지스터와 브랜치 메트릭값 계산부와 메트릭 메모리를 구비한 가산 비교 선택장치에서 비터비 알고리즘을 처리하는 방법에 있어서,
    상기 메트릭 메모리에서 임의의 한 현재상태에 대응되는 제n 및 제n+1 이전 메트릭값을 읽어 각각 상기 제1 및 제2레지스터에 저장하는 제1과정과, (n = 1, 2, 3, …)
    상기 제1레지스터에 저장된 제n 이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 상기 현재 상태의 계산된 브랜치 메트릭값을 가산한 값과 상기 제2레지스터에 저장된 제n+1 이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다음 상태의 계산된 브랜치 메트릭값을 가산한 값을 비교하여 더 큰 값을 제n생존 메트릭으로 결정하는 제2과정과,
    상기 제2과정 수행후, 상기 제1레지스터에 저장된 제n 이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다른 현재 상태의 계산된 브랜치 메트릭값을 가산한 값과 상기 제2레지스터에 저장된 제n+1 이전 메트릭값과 상기 브랜치 메트릭값 계산부에서 출력되는 다음 상태의 계산된 브랜치 메트릭값을 가산한 값을 비교하여 더 큰 값을 제n+1생존 메트릭으로 결정하는 제3과정과,
    상기 제3과정 수행후, 상기 변수 n값을 1증가시킨 다음, 또 다른 현재 상태에 대한 처리를 위해 상기 제1과정으로 되돌아가는 제4과정으로 이루어짐을 특징으로 하는 가산 비교 선택 고속화 방법.
KR1019980046726A 1998-03-17 1998-10-31 비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법 KR19990076528A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9805573A GB2335578B (en) 1998-03-17 1998-03-17 Add-compare selection circuit
GB9805573.4 1998-03-17

Publications (1)

Publication Number Publication Date
KR19990076528A true KR19990076528A (ko) 1999-10-15

Family

ID=10828638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980046726A KR19990076528A (ko) 1998-03-17 1998-10-31 비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법

Country Status (6)

Country Link
US (1) US6529557B1 (ko)
EP (1) EP0944173B1 (ko)
KR (1) KR19990076528A (ko)
CN (1) CN1175581C (ko)
DE (1) DE69914241T2 (ko)
GB (1) GB2335578B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133037A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 터보 디코더에서 가산비교선택 과정 수행 장치 및 이를 위한 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3501725B2 (ja) * 2000-05-12 2004-03-02 日本電気株式会社 ビタビ復号器
EP1158683A1 (de) * 2000-05-24 2001-11-28 Infineon Technologies AG Vorrichtung und Verfahren zum Durchführen eines Viterbi-Algorithmus
JP4478119B2 (ja) 2005-05-25 2010-06-09 パナソニック株式会社 受信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法
US5251233A (en) * 1990-12-20 1993-10-05 Motorola, Inc. Apparatus and method for equalizing a corrupted signal in a receiver
JPH06140951A (ja) * 1992-10-27 1994-05-20 Sony Corp ビタビ等化器
FR2718865B1 (fr) * 1994-04-15 1996-07-19 Texas Instruments France Procédé et dispositif à processeur de signaux numériques pour la mise en Óoeuvre d'un algorithme de Viterbi.
JP3241210B2 (ja) * 1994-06-23 2001-12-25 沖電気工業株式会社 ビタビ復号方法及びビタビ復号回路
US5841819A (en) * 1996-04-09 1998-11-24 Thomson Multimedia, S.A. Viterbi decoder for digital packet signals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133037A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 터보 디코더에서 가산비교선택 과정 수행 장치 및 이를 위한 방법
KR101581804B1 (ko) * 2009-06-11 2015-12-31 삼성전자주식회사 터보 디코더에서 가산비교선택 과정 수행 장치 및 이를 위한 방법

Also Published As

Publication number Publication date
DE69914241D1 (de) 2004-02-26
EP0944173A3 (en) 2000-02-23
US6529557B1 (en) 2003-03-04
GB9805573D0 (en) 1998-05-13
EP0944173A2 (en) 1999-09-22
GB2335578B (en) 2000-07-12
GB2335578A (en) 1999-09-22
EP0944173B1 (en) 2004-01-21
CN1235429A (zh) 1999-11-17
CN1175581C (zh) 2004-11-10
DE69914241T2 (de) 2004-11-04

Similar Documents

Publication Publication Date Title
EP1049001B1 (en) Arithmetic apparatus
EP1102408B1 (en) Viterbi decoder
EP0926836B1 (en) Viterbi decoding apparatus and viterbi decoding method
JPH088762A (ja) ビタビ復号方法及びビタビ復号回路
US6601215B1 (en) Traceback buffer management for VLSI Viterbi decoders
KR19990076528A (ko) 비터비 알고리즘 처리를 위한 가산 비교 선택 고속화 장치 및방법
JP2010206570A (ja) 復号装置、復号方法
US8006066B2 (en) Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit
KR0155516B1 (ko) 비터비 복호기에서 한개의 메모리를 사용한 상태 매트릭 메모리 운용방법 및 그 장치
JP3260714B2 (ja) ビタビ復号化装置およびビタビ復号化方法
RU2247471C2 (ru) Компонентный декодер и способ декодирования в системе мобильной связи
KR100277467B1 (ko) 비터비 디코더
JPH07245567A (ja) ビタビ復号演算装置
JP3288328B2 (ja) ビタビ復号器のトレースバック処理の高速化装置およびその高速化方法
JP2001257603A (ja) ビタビ復号装置および方法
JP3548949B2 (ja) ビタビ復号器
CN114070332A (zh) 可重构维特比译码系统及其译码方法
JPH0816550A (ja) ディジタル演算回路
JP3231647B2 (ja) ビタビ復号器
JP2004120791A (ja) ビタビ復号器
KR100259194B1 (ko) 비터비 디코더
JP2001024526A (ja) ビタビ復号装置
JP2000252840A (ja) 誤り訂正復号器
Sözen A Viterbi decoder using system C for area efficient VLSI imlementation
KR20060063344A (ko) 지연시간 단축 경로를 갖는 비터비 복호기 및 그 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20011212

Effective date: 20030930