KR100324066B1 - Viterbi decoder - Google Patents

Viterbi decoder Download PDF

Info

Publication number
KR100324066B1
KR100324066B1 KR1019990055680A KR19990055680A KR100324066B1 KR 100324066 B1 KR100324066 B1 KR 100324066B1 KR 1019990055680 A KR1019990055680 A KR 1019990055680A KR 19990055680 A KR19990055680 A KR 19990055680A KR 100324066 B1 KR100324066 B1 KR 100324066B1
Authority
KR
South Korea
Prior art keywords
path
bits
parallel
bit
data
Prior art date
Application number
KR1019990055680A
Other languages
Korean (ko)
Other versions
KR20010054733A (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 김덕중
Priority to KR1019990055680A priority Critical patent/KR100324066B1/en
Publication of KR20010054733A publication Critical patent/KR20010054733A/en
Application granted granted Critical
Publication of KR100324066B1 publication Critical patent/KR100324066B1/en

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/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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

본 발명은 비터비 복호기에 관한 것으로서, 역추적을 수행할 때 높은 확률로 복호화된 경로가 합치된다는 점에 착안해서, 현재의 역추적을 수행하는 과정에서 이전 역추적 경로와 일치되는 지점이 발견되면, 이전 역추적에서 저장했던 경로 비트열을 매핑하도록 구성함으로써, 역추적의 연산량 및 연산 시간을 단축시킬 수 있는 발명이다.The present invention relates to a Viterbi decoder, and focuses on the fact that the decoded paths are matched with a high probability when performing backtracking, and if a point that matches the previous backtracking path is found during the current backtracking process. By configuring the path bit strings stored in the previous traceback, the computation amount and the computation time of the traceback can be reduced.

Description

비터비 복호기{VITERBI DECODER}Viterbi decoder {VITERBI DECODER}

본 발명은 비터비 복호기에 관한 것으로서, 더욱 상세하게는 수신된 데이터로부터 에러 정정 부호화 이전의 원 데이터를 역추적하는 과정을 보다 간략히 구현한 비터비 복호기에 관한 것이다.The present invention relates to a Viterbi decoder, and more particularly, to a Viterbi decoder which more simply implements a process of backtracking original data before error correction encoding from received data.

주지하다시피, 일반적인 통신 시스템에서는, 통신 채널을 통해서 송신되거나 저장 매체에 저장되는 디지털 데이터의 에러를 검출 및 정정하기 위해서, 디지털 데이터에 에러를 검출하거나 정정하는데 사용되는 디지털 데이터(이하, '에러 정정 코드'라 칭함)를 전송 또는 저장되는 디지털 데이터에 부가해서 부호화하고, 다시 수신된 디지털 데이터 또는 저장된 디지털 데이터를 원래의 디지털 데이터로 복호화할 때 그와 같이 부가된 에러 정정 코드를 이용해서 에러를 검출하거나 정정함으로써, 송수신되는 디지털 데이터 또는 저장/독출되는 디지털 데이터의 신뢰성을 증진시키고 있다.As is well known, in a general communication system, digital data (hereinafter, referred to as 'error correction') is used to detect or correct an error in digital data in order to detect and correct an error in digital data transmitted through a communication channel or stored in a storage medium. Code ”is added to the digital data to be transmitted or stored, and the error is detected using the error correction code thus added when decoding the received digital data or the stored digital data into the original digital data. Or by correcting, the reliability of digital data transmitted and received or digital data stored / read is improved.

그와 같은 에러 정정 코드에 대한 이론이 1947년 클라우드 쉐논(Claude Shannon)에 의해서 발표된 이래, 그 에러 정정 코드를 디지털 데이터에 부가해서 부호화하는 기법 및 에러 정정 코드가 부가되어 부호화된 디지털 데이터를 원래의 디지털 데이터로 복호화하는 기법이 다수 개발되어 왔는데, 그 중 비터비 알고리즘은 1967년 길쌈 부호(convolutional code)를 복호하기 위해서 발표된 이래, 디지털 데이터의 전송, 자기 기록, 음성 인식 및 통신 분야에서 널리 사용되고 있다.Since the theory of such error correction codes was published by Cloud Shannon in 1947, the technique of encoding the error correction code in addition to the digital data and the error correction code were added to the original coded digital data. A number of techniques for decoding digital data have been developed. Among them, the Viterbi algorithm has been widely used in the field of digital data transmission, magnetic recording, voice recognition and communication since it was published in 1967 to decode convolutional code. It is used.

상술한 바와 같이 통신 시스템에서는 데이터 송신시 에러 정정 부호화를 수행한 후, 수신된 데이터, 즉, 에러 정정 부호화된 데이터로부터 원래의 데이터열을 복원하는 복호화 과정이 요구되는데, 그와 같이 에러 정정 부호화된 데이터로부터 원래의 데이터를 역추적하는 일반적인 비터비 복호기에 대해서 도 1을 참조하여 개략적으로 설명하면 다음과 같다.As described above, in the communication system, after performing error correction encoding during data transmission, a decoding process of restoring an original data string from received data, that is, error correction encoded data is required. A general Viterbi decoder which traces back the original data from the data will be schematically described with reference to FIG. 1.

먼저, 본 실시예에서는 제한 길이(constraint length)가 3이고 부호율이 1/2인 부호화기에 대응하는 비터비 복호기를 예로 들기로 하며, 본 실시예에 따른 소스 데이터 역추적 과정을 수행하기 위해서 제한 길이가 3이고 부호율이 1/2인 부호화기에 대해서 간략히 설명하면 다음과 같다.First, in the present embodiment, a Viterbi decoder corresponding to an encoder having a constraint length of 3 and a code rate of 1/2 is taken as an example, and is limited to perform the source data traceback process according to the present embodiment. An encoder of length 3 and code rate 1/2 will be briefly described as follows.

도 1은 종래의 일반적인 비터비 복호기의 일예를 도시한 블록 구성도이다.1 is a block diagram showing an example of a conventional Viterbi decoder.

도 1을 참조하면, 일반적인 비터비 복호기는, 브렌치 메트릭 계산부(BMC : branch metric calculator)(100), 가산 비교 선택부(ACS : add compare selector)(200), 경로 메트릭 메모리(path metric memory)(300), 생존 경로 메모리(servival path memory)(400), 역추적부(trace back unit)(500)로 이루어지며, 그 비터비 복호기에서 원래의 데이터를 역추적하는 방법은 다음과 같다. 이때, 제한 길이(constraint length)가 3이고 부호율이 1/2인 부호화기로 부호화된 비트열을 예로 들어 설명하면 다음과 같다.Referring to FIG. 1, a general Viterbi decoder includes a branch metric calculator (BMC) 100, an add compare selector 200, and a path metric memory. 300, a survival path memory 400 and a trace back unit 500 are used. The method of backtracking the original data in the Viterbi decoder is as follows. In this case, a bit string encoded by an encoder having a constraint length of 3 and a code rate of 1/2 is described as an example.

먼저, 역다중화되어 입력되는 비트열은 제한 길이가 3인 부호화기로 부호화된 비트열이므로 특정 상태에서 입력될 비트는 0 또는 1일 것이다. 따라서 브렌치 메트릭 계산부(100)에서는 0이 입력될 때의 브렌치 메트릭과 1이 입력될 때의 브렌치 메트릭을 각각 계산하고, 그 가상 입력 비트 0 및 1에 대응하는 브렌치 메트릭을 가산 비교 선택부(200)에 제공한다.First, since the bit stream input by being demultiplexed is a bit stream encoded by an encoder having a limited length of 3, the bit to be input in a specific state will be 0 or 1. Accordingly, the branch metric calculation unit 100 calculates the branch metric when 0 is input and the branch metric when 1 is input, and adds the branch metric corresponding to the virtual input bits 0 and 1 to the comparison comparison selector 200. To provide.

가산 비교 선택부(200)에서는 경로값, 즉, 이전 상태의 생존 경로상의 브렌치 메트릭을 누적한 경로값을 경로 메트릭 메모리(300)로부터 제공받아서, 그 경로값과 가상 입력 비트 0에 대응하는 브렌치 메트릭을 가산하고, 또한 그 경로값과가상 입력 비트 1에 대응하는 브렌치 메트릭을 가산한 다음, 그 각각 가산된 경로값을 서로 비교한다. 그리고, 그 가산값이 작은 가상 입력 비트의 가산값을 새로운 경로값으로 경로 메트릭 메모리(300)에 저장하는 한편, 그 가산값이 작은 가상 입력 비트에 의해서 천이되는 상태값을 경로 비트로서 생존 경로 메모리(400)에 저장한다. 이때, 경로 메트릭 메모리(300)로부터 제공되는 경로값은, 두 개의 메모리 또는 두 개의 영역으로부터 교번적으로 독출되어 비교 가산 선택부(200)에 제공되거나, 도시 생략한 어드레스 발생부(address generator)에 의해서 순환적으로 번지 지정되는 다수의 영역으로부터 독출되어 비교 가산 선택부(200)에 제공된다.The addition comparison selecting unit 200 receives a path value, that is, a path value that accumulates the branch metric on the surviving path in the previous state, from the path metric memory 300, and the branch metric corresponding to the path value and the virtual input bit 0. And add the branch metric corresponding to the path value and virtual input bit 1, and then compare the respective added path values with each other. The surviving path memory stores the addition value of the virtual input bit having the small addition as a new path value, while the state value transitioned by the virtual input bit having the small addition is the path bit. Save to 400. At this time, the path value provided from the path metric memory 300 is alternately read from two memories or two areas and provided to the comparison addition selecting unit 200 or to an address generator not shown. Is read out from a plurality of areas that are cyclically designated by the address, and is provided to the comparison addition selection unit 200.

역추적부(500)는, 그와 같은 과정에 의해서 생존 경로 메모리(400)에 저장된 생존 경로 상에 위치한 비트 입력 시점 각각의 경로 비트, 즉, 각 시점에서의 상태값에 의거하여 기설정된 역추적 경로 정보로부터 소스 데이터를 추적한다. 이때, 기설정된 역추적 경로 정보는, 부호화기의 구성에 대응해서 결정되는 모든 경우의 경로이다.The backtracker 500 performs the backtracking based on a path bit of each bit input time point, that is, a state value at each time point, located on the survival path stored in the survival path memory 400 by such a process. Trace source data from route information. In this case, the preset backtracking path information is paths in all cases determined corresponding to the configuration of the encoder.

그러나, 그와 같은 종래의 비터비 복호기에서는 매 입력비트마다 역추적을 수행하므로 그 연산량이 많아서, 배터리 구동 방식이 채용되는 이동 단말 등에서는 전력 소모가 큰 문제점이 발생될 뿐만 아니라, 경로가 깊을수록 그 연산 시간이 길어져서 신호 처리 속도를 감소시키는 문제점이 있었다.However, in the conventional Viterbi decoder, since backtracking is performed for every input bit, the computational amount is large. Therefore, the mobile terminal employing the battery-powered method not only has a problem of high power consumption, but also has a deeper path. The operation time is long, there is a problem of reducing the signal processing speed.

본 발명은 상술한 문제점을 해소하기 위해서 안출된 것으로서, 역추적에 소요되는 연산량 및 연산 시간을 감소시키는데 적합한 비터비 복호기의 소스 데이터역추적 방법을 제공하는 데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems, and an object thereof is to provide a method for backtracking a source data of a Viterbi decoder suitable for reducing the amount of computation and the time required for backtracking.

상술한 목적을 달성하기 위해서, 본 발명에서는, 가산 비교 선택된 경로 비트로부터 원래의 데이터를 역추적하는 비터비 복호기에 있어서, 상기 경로 비트를 기설정된 비트수만큼 직렬로 제공받아서 병렬로 천이시켜 저장하는 직병렬 천이 메모리; 이전 역추적 과정이 수행된 다수의 기 역추적 경로 비트, 상기 직병렬 천이 메모리로부터 제공되는 현재 역추적 경로 비트, 상기 기 역추적 경로 비트에 의해서 기 복호화된 데이터 비트 및 상기 현재 역추적 경로 비트에 의해서 복호화된 데이터 비트가 뱅크 단위로 저장되는 메모리; 상기 현재 역추적 경로 비트의 단위 경로 비트와 상기 다수의 기 역추적 경로 비트의 대표 비트를 비교해서, 현재 역추적 경로의 경로 비트와 대표 비트가 일치되기 이전의 경로 비트에 대해서는 상기 현재 경로 비트에 의거한 복호화 데이터를 출력하고, 현재 역추적 경로의 경로 비트와 대표 비트가 일치된 다음에는 상기 기 역추적 경로 비트에 의해서 복호화된 데이터 비트를 출력하는 역추적부를 구비하는 것을 특징으로 하는 비터비 복호기를 제공한다.In order to achieve the above object, in the present invention, in the Viterbi decoder for backtracking the original data from the added and selected path bits, the path bits are serially provided by a predetermined number of bits, and stored in parallel. Serial-to-parallel transition memory; A plurality of pretrace path bits on which the previous traceback process was performed, a current trace path bit provided from the serial-parallel transition memory, data bits previously decoded by the trace track path bits, and the current trace track path bits. A memory in which data bits decoded by the memory are stored in bank units; The unit path bits of the current traceback path bits and the representative bits of the plurality of traceback path bits are compared, so that the path bits before the path bits of the current traceback path match with the representative bits are matched to the current path bits. And a back tracer for outputting the decoded data based on the output bit, and outputting the data bits decoded by the back trace path bits after the path bits of the current trace back path match with the representative bits. To provide.

도 1은 종래의 일반적인 비티비 복호기의 일예를 도시한 블록 구성도,1 is a block diagram showing an example of a conventional BTV decoder,

도 2는 본 발명에 따른 비터비 복호기의 일 예를 도시한 블록 구성도.2 is a block diagram showing an example of a Viterbi decoder according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100 : 브렌치 메트릭 계산부 200 : 비교 가산 선택부100: branch metric calculation unit 200: comparison addition selection unit

300 : 경로 메트릭 메모리 400 : 생존 경로 메모리300: path metric memory 400: survival path memory

410 : 쓰기 뱅크 420/1∼420/n : 복호화 뱅크410: write bank 420/1 to 420 / n: decryption bank

430 : 예비 복호화 뱅크 440 : 복호화 뱅크430: preliminary decryption bank 440: decryption bank

500 : 역추적부 510 : 비교기500: traceback unit 510: comparator

520/1∼520/n : 대표 비트 메모리 530 : 제 1 다중화기520/1 to 520 / n: representative bit memory 530: first multiplexer

540 : 카운터 550 : 제 1 병직렬 천이 메모리540: counter 550: first parallel serial transition memory

560 : 제 2 병직렬 천이 메모리 570 : 제 2 다중화기560: second parallel serial transition memory 570: second multiplexer

이하, 첨부된 도 2를 참조해서, 본 발명의 바람직한 실시예에 따른 비터비 복호기에 대해서 설명하면 다음과 같다.Hereinafter, with reference to the accompanying FIG. 2, a Viterbi decoder according to a preferred embodiment of the present invention will be described.

본 발명의 핵심 기술 사상은 '소스 데이터를 역추적하는 과정에서 높은 확률로 복호화된 경로가 합치된다는 점에 착안해서 현재의 역추적을 수행하는 과정에서 이전 역추적의 경로와 일치되는 지를 판단하고, 만일 현재 역추적을 수행하는 특정상태에서 이전 역추적 경로와 일치되면, 이전에 역추적에서 저장했던 경로 비트열을 매핑함으로써, 역추적의 연산량을 줄이고, 그 연산 시간을 단축'하는데 있는 바, 후술하는 실시예는 그와 같은 본 발명의 핵심 기술 사상에 의거하여 이해되어야 할 것이다.The core technical idea of the present invention is to 'determine whether the path of the back trace is consistent with the path of the previous trace in the process of performing the current trace, taking into consideration that the decoded path has a high probability in the process of trace back the source data, If the current traceback is matched with the previous traceback path in a specific state, by mapping the path bit string previously stored in the traceback, the operation amount of the traceback is reduced and the calculation time is shortened. The embodiment to be understood will be understood based on the core technical idea of the present invention as such.

후술하는 설명에서 참조하게될 도 2는 본 발명의 바람직한 실시예에 따른 비터비 복호기의 블록 구성도이다.2 is a block diagram of a Viterbi decoder according to a preferred embodiment of the present invention.

도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 비터비 복호기도 일반적인 비터비 복호기와 마찬가지로 브렌치 메트리 계산부(100), 가산 비교 선택부(200), 경로 메트릭 메모리(300), 생존 경로 메모리(400) 및 역추적부(500)로 이루어지지만, 본 발명의 핵심 기술 사상을 달성하기 위해서, 가산 비교 선택부(200)와 생존 경로 메모리(400) 사이에 직병렬 천이 메모리(600)가 더 구비되고, 생존 경로 메모리(400)와 역추적부(500)는 각각 다음과 같은 특징을 갖는다.Referring to FIG. 2, the Viterbi decoder according to the preferred embodiment of the present invention is similar to the general Viterbi decoder, such as the branch meter calculation unit 100, the addition comparison selector 200, the path metric memory 300, and the survival path. The memory 400 and the traceback unit 500, but in order to achieve the core technical idea of the present invention, a serial-to-parallel transition memory 600 between the addition comparison selection unit 200 and the survival path memory 400, Further, the survival path memory 400 and the traceback unit 500 has the following characteristics, respectively.

먼저, 직병렬 천이 메모리(600)는 가산 비교 선택부(200)로부터 직렬로 제공되는 경로 비트를 순차적으로 저장하여, 기설정된 비트수(예를 들면 8비트)에 도달하면, 그 기설정된 비트수의 경로 비트를 생존 경로 메모리(400)에 병렬로 제공한다. 본 발명의 바람직한 실시예에서는, 그와 같이 기설정된 비트 단위(예를 들어, 상술한 바와 같이 설정된 8비트)마다 현재 역추적 중인 경로(이하, '현재 역추적 경로'라 칭함)와 이전에 역추적되어 저장된 역추적 경로(이하, '기역추적 경로'라 칭함)가 일치하는지를 판단하기 위해서, 직렬로 제공되는 경로 비트를 병렬로 천이 시키지만, 그와 같이 병렬로 메모리에 저장함으로써 억세스 회수를 줄이고, 그에따라 전력 소모를 감소시키는 부수적인 효과도 얻을 수 있다.First, the serial-to-parallel transition memory 600 sequentially stores path bits provided from the addition comparison selection unit 200 in series, and when the preset number of bits (for example, 8 bits) is reached, the preset number of bits The path bits of are provided in parallel to the survival path memory 400. In a preferred embodiment of the present invention, a path currently being traced back (hereinafter referred to as a 'current traceback path') for each predetermined bit unit (for example, 8 bits set as described above) and previously reversed. In order to determine whether the traced and stored traceback paths (hereinafter referred to as 'trace trace paths') are matched, the serially provided path bits are shifted in parallel, but in such a way to reduce the number of accesses by storing them in memory in parallel, As a result, a side effect of reducing power consumption can be obtained.

생존 경로 메모리(400)는 기설정 비트 단위의 저장 용량을 갖는 다수 개의 뱅크(banks)로 이루어지며, 특히, 쓰기 뱅크(410), 역추적 뱅크(420/1∼420/n), 예비 복호화 뱅크(430), 복호화 뱅크(430)로 이루어지며, 그 각각은 다음과 같이 동작한다.The survival path memory 400 is composed of a plurality of banks having a storage capacity of a predetermined bit unit, and in particular, the write bank 410, the traceback banks 420/1 to 420 / n, and the reserved decoding bank. 430, and a decryption bank 430, each of which operates as follows.

먼저, 쓰기 뱅크(410)에는 직병렬 천이 메모리(600)에서 병렬로 제공되는 경로 비트가 저장되고, 그와 같이 저장된 경로 비트중에서 일 회의 상태 천이에 대응하는 경로 비트(이하, '단위 경로 비트'라 칭함) 마다 순차적으로 비교기(510)에 제공된다.First, in the write bank 410, path bits provided in parallel in the parallel-parallel transition memory 600 are stored, and path bits corresponding to one state transition among the stored path bits (hereinafter, 'unit path bits'). Are provided to the comparator 510 sequentially.

또한, 다수의 역추적 뱅크(420/1∼420/n)에는 기 역추적 경로에 포함되는 다수의 경로 비트들이 기설정된 비트수(예를 들어, 8비트) 단위로 저장되어 있고, 그 저장된 경로 비트를 갱신할 때 마다 그 갱신되는 경로비트 중에서 최상위 경로 비트 또는 각 뱅크의 시작 경로 비트를 각각의 뱅크에 대응하는 대표 비트 메모리(520/1∼520/n)에 저장한다.Also, a plurality of path bits included in the backtracking path are stored in a predetermined number of bits (for example, 8 bits) in the plurality of backtracking banks 420/1 to 420 / n. Each time a bit is updated, the most significant path bit or the start path bit of each bank among the updated path bits is stored in the representative bit memories 520/1 to 520 / n corresponding to each bank.

예비 복호화 뱅크(430)에는 현재 역추적 경로에 의해서 복호화된 데이터가 저장되어 있고, 복호화 뱅크(440)에는 기 역추적 경로에 의해서 복호화된 데이터가 저장되어 있다.The data decoded by the current traceback path is stored in the preliminary decryption bank 430, and the data decoded by the traceback path is stored in the decryption bank 440.

역추적부(500)는 비교기(510), 다수 개의 대표 비트 메모리(520/1∼520/n), 제 1 다중화기(530), 카운터(540) 및 제 1 병직렬 천이 메모리(550), 제 2 병직렬 천이 메모리(560), 제 2 다중화기(570)로 구성되며, 그 각각의 동작 과정은 다음과같다.The tracer 500 may include a comparator 510, a plurality of representative bit memories 520/1 to 520 / n, a first multiplexer 530, a counter 540, and a first parallel serial transition memory 550, The second parallel serial transition memory 560 and the second multiplexer 570, each operation is as follows.

먼저, 비교기(510)는 생존 경로 메모리(400)의 쓰기 뱅크(410)로부터 제공되는 단위 경로 비트와 제 1 다중화기(540)를 통해서 대표 비트 메모리(520/1∼520/n중 어느 하나)로부터 제공되는 대표 비트를 비교하고, 그 비교 결과에 따라서 일치 또는 불일치에 대한 정보(예를 들어, 일치는 '1' 불일치는 '0'으로 출력)를 제 2 다중화기(570)에 제공한다.First, the comparator 510 is a unit path bit provided from the write bank 410 of the survival path memory 400 and one of the representative bit memories 520/1 to 520 / n through the first multiplexer 540. Compares the representative bits provided from &lt; RTI ID = 0.0 &gt; and &lt; / RTI &gt; and provides the second multiplexer 570 with information about a match or inconsistency (e.g., a match outputs a '1' mismatch to '0').

대표 비트 메모리(520/1∼520/n)는, 생존 경로 메모리(400)에 구비된 다수 개의 역추적 뱅크(400/1∼400/n) 각각에 대응해서 그 대표 비트가 저장되고, 그 대표 비트들은 다시 제 1 다중화기(530)에 제공된다. 이때, 대표 비트는 각각의 역추적 뱅크에 저장된 경로 비트들중 시작 비트 또는 최상위 비트로서, 일 시점에서의 상태값이 될 것이다.In the representative bit memories 520/1 to 520 / n, the representative bits are stored corresponding to each of the plurality of traceback banks 400/1 to 400 / n provided in the survival path memory 400, and the representative bits are stored in the representative bit memories 520/1 to 520 / n. The bits are again provided to the first multiplexer 530. In this case, the representative bit is a start bit or most significant bit among the path bits stored in each traceback bank, and will be a state value at one time point.

제 1 다중화기(530)는 카운터(540)의 카운트값에 의거하여 다수개의 대표 비트 메모리(520/1∼520/n)중 어느 하나에서 제공되는 대표 비트를 비교기(540)에 제공한다.The first multiplexer 530 provides the comparator 540 with representative bits provided in any one of the plurality of representative bit memories 520/1 to 520 / n based on the count value of the counter 540.

카운터(540)는 다수개의 대표 비트 메모리(520/1∼520/n)에 대해서 1부터 n까지 카운트하고, 그 카운트 값을 제 1 다중화기(530)에 제공함으로써, 제 1 다중화기(530)에서 다수개의 대표 비트 메모리(520/1∼520/n)중에서 어느 하나로부터 제공된 대표 비트를 비교기(510)에 제공할 수 있도록 한다.The counter 540 counts from 1 to n for the plurality of representative bit memories 520/1 to 520 / n, and provides the count value to the first multiplexer 530, thereby providing a first multiplexer 530. In this example, the representative bits provided from any one of the plurality of representative bit memories 520/1 to 520 / n can be provided to the comparator 510.

제 1 및 병직렬 천이 메모리(550)는, LIFO(last-in-first-out) 메모리로 이루어지고, 예비 복호화 뱅크(430)로부터 병렬로 제공되는 데이터(즉, 현재 경로 비트에 의한 역추적 의해서 복호화된 데이터)를 제 2 다중화기(570)의 일단에 제공한다.The first and parallel transition memory 550 consists of last-in-first-out (LIFO) memory and is provided in parallel from the preliminary decryption bank 430 (ie, by backtracking by the current path bit). Decoded data) to one end of the second multiplexer 570.

제 2 병직렬 천이 메모리(560)는, 제 1 병직렬 천이 메모리(550)와 마찬가지로 LIFO(last-in-first-out) 메모리로 이루어지며, 복호화 뱅크(440)로부터 제공되는 데이터(즉, 기 역추적 경로에 의해서 기 복호화된 데이터)를 제 2 다중화기(570)의 타단에 제공한다.The second parallel serial transition memory 560, like the first parallel serial transition memory 550, consists of a last-in-first-out (LIFO) memory, and is provided with data provided from the decryption bank 440. Data previously decoded by the traceback path) is provided to the other end of the second multiplexer 570.

제 2 다중화기(570)는, 비교기(510)으로부터 제공되는 비교 결과에 의거하여, 제 1 병직렬 천이 메모리(550) 또는 제 2 병직렬 천이 메모리(560)로부터 제공되는 복호화된 데이터 비트를 출력한다.The second multiplexer 570 outputs the decoded data bits provided from the first parallel serial transition memory 550 or the second parallel serial transition memory 560 based on the comparison result provided from the comparator 510. do.

이하, 본 발명에 따라서 상술한 바와 같이 구성된 비터비 복호기의 동작 과정에 대해서 설명하면 다음과 같다. 이때, 상술한 종래 기술에서 설명한 바 있으므로, 가산 비교 선택부(200)에서 경로 비트를 선택하는 과정 이전은 생략하고, 가산 비교 선택부(200)에서 선택한 경로 비트가 본 발명에 따른 직병렬 천이 메모리(600)에 제공되는 과정에서부터 설명한다.Hereinafter, the operation of the Viterbi decoder configured as described above according to the present invention will be described. In this case, since it has been described in the above-described prior art, the step before the process of selecting the path bit in the addition comparison selecting unit 200 is omitted, and the path bit selected in the addition comparison selecting unit 200 is a serial-parallel transition memory according to the present invention. The process provided at 600 will be described.

먼저, 가산 비교 선택부(200)로부터 경로 비트가 직렬로 제공되면, 직병렬 천이 메모리(600)는 그 제공받은 경로 비트를 순차적으로 저장한 후, 그 저장된 데이터가 기설정된 비트수(예를 들어, 8비트)에 도달하면, 생존 경로 메모리(400)의 쓰기 뱅크(410)에 그 데이터를 병렬로 저장한다.First, when the path bits are serially provided from the addition comparison selection unit 200, the serial / parallel transition memory 600 sequentially stores the received path bits, and then the stored data has a preset number of bits (for example, , 8 bits), the data is stored in parallel in the write bank 410 of the survival path memory 400.

쓰기 뱅크(410)에서는 직병렬 천이 메모리(600)에서 병렬로 제공되는 경로 비트중에서 단위 경로 비트 마다 순차적으로 비교기(510)에 제공한다.The write bank 410 sequentially provides the comparator 510 for each unit path bit among the path bits provided in parallel in the serial / parallel transition memory 600.

한편, 생존 경로 메모리(400)에 포함되는 다수의 역추적 뱅크(420/1∼420/n)에는 기 역추적 경로에 포함되는 다수의 경로 비트들이 기설정된 비트수(예를 들어, 8비트) 단위로 저장되어 있고, 그 저장된 경로 비트가 갱신될 때 마다 그 갱신되는 경로비트 중에서 최상위 경로 비트 또는 각 뱅크의 시작 경로 비트가 각각 그 뱅크에 대응하는 대표 비트 메모리(520/1∼520/n)에 저장된다.Meanwhile, in the plurality of traceback banks 420/1 to 420 / n included in the survival path memory 400, a plurality of path bits included in the traceback path are preset bit numbers (for example, 8 bits). Representative bit memories 520/1 to 520 / n each stored in units, and each time the stored path bit is updated, the most significant path bit or the start path bit of each bank of the updated path bits corresponds to the bank, respectively. Are stored in.

그 대표 비트 메모리(520/1∼520/n) 각각이, 쓰기 뱅크(410)에서 단위 경로 비트를 비교기(510)에 제공할 때 마다, 역추적 뱅크(420/1∼420/n)에서 제공받은 대표 비트를 제 1 다중화기(530)에 제공하면, 제 1 다중화기(530)는 카운터(540)의 카운트값에 의거하여 다수개의 대표 비트 메모리(520/1∼520/n)중 어느 하나에서 제공되는 대표 비트를 비교기(540)에 제공한다. 이때, 카운터(540)는 다수개의 대표 비트 메모리(520/1∼520/n)에 대해서 1부터 n까지 카운트하고, 그 카운트 값을 제 1 다중화기(530)에 제공한다.Each time the representative bit memories 520/1 to 520 / n provide the unit path bits to the comparator 510 in the write bank 410, they are provided in the traceback banks 420/1 to 420 / n. When the received representative bit is provided to the first multiplexer 530, the first multiplexer 530 may select any one of a plurality of representative bit memories 520/1 to 520 / n based on the count value of the counter 540. Provides a representative bit provided in the comparator 540. At this time, the counter 540 counts 1 to n for the plurality of representative bit memories 520/1 to 520 / n, and provides the count value to the first multiplexer 530.

그와 같이, 쓰기 뱅크(410)와 제 1 다중화기(530)로부터 각각 경로 비트를 제공받은 비교기(510)는, 생존 경로 메모리(400)의 쓰기 뱅크(410)로부터 제공되는 단위 경로 비트와 제 1 다중화기(540)를 통해서 대표 비트 메모리(520/1∼520/n중 어느 하나)로부터 제공되는 대표 비트를 비교하고, 그 비교 결과에 따라서 일치 또는 불일치에 대한 정보(예를 들어, 일치는 '1' 불일치는 '0'으로 출력)를 제 2 다중화기(570)에 제공한다. 즉, 다수 개의 역추적 뱅크(420/1∼420/n)에는 직병렬 천이 메모리(600)에 의해서 기설정된 비트 단위로 경로 비트가 저장되므로, 대표 비트와 쓰기 뱅크(410)에서 제공되는 경로 비트를 비교하는 비교기(510)의 동작은,소정 구간 별로 현재 역추적 중인 경로(이하, '현재 역추적 경로'라 칭함)와 이전에 역추적되어 저장된 역추적 경로(이하, '기역추적 경로'라 칭함)가 일치하는지를 판단하는 것이 될 것이다.As such, the comparator 510, which has received the path bits from the write bank 410 and the first multiplexer 530, respectively, is composed of the unit path bits provided from the write bank 410 of the surviving path memory 400 and the first path bits. The multiplexer 540 compares the representative bits provided from the representative bit memory 520/1 to 520 / n, and the information about the match or the inconsistency (for example, the match is determined according to the comparison result). '1' mismatch outputs '0') to the second multiplexer 570. That is, since the path bits are stored in the plurality of backtracking banks 420/1 to 420 / n in bit units preset by the serial-parallel transition memory 600, the representative bits and the path bits provided by the write bank 410 are provided. The operation of the comparator 510 for comparing the current path, which is currently being traced back for each predetermined section (hereinafter, referred to as 'current traceback path') and the traceback path previously stored backtracked (hereinafter, referred to as 'track trace path') Will be judged to match.

한편, 예비 복호화 뱅크(430)에는 현재 역추적 경로에 의해서 복호화된 데이터가 저장되어 있고, 복호화 뱅크(440)에는 기 역추적 경로에 의해서 복호화된 데이터가 저장되어 있으며, 그 저장된 데이터 각각은, 제 1 및 병직렬 천이 메모리(550) 및 제 2 병직렬 천이 메모리(560)에 의해서 제 2 다중화기(570)의 일단 및 타단에 제공되고 있는 바, 제 2 다중화기(570)는 비교기(510)의 비교 결과에 의거하여 그 양단에 제공되는 데이터를 선택적으로 출력한다. 즉, 비교기(510)의 비교 결과 기 역추적 경로와 현재 역추적 경로가 일치하면, 기 역추적 경로에 의해서 기 복호화된 데이터를 출력하고, 기 역추적 경로와 현재 역추적 경로가 불일치하면 현재 경로 비트에 의한 역추적에 의해서 복호화된 데이터를 출력한다.Meanwhile, the data decoded by the current traceback path is stored in the preliminary decryption bank 430, and the data decoded by the traceback path is stored in the decryption bank 440. The first and the other ends of the second multiplexer 570 are provided by the first and parallel serial transition memory 550 and the second parallel serial transition memory 560, so that the second multiplexer 570 is a comparator 510. Based on the comparison result of, the data provided at both ends is selectively output. That is, when the comparison result of the comparator 510 matches the current trace path and the current trace path, the decoded data is output by the trace path, and if the trace path and the current trace path do not match, the current path is output. The decoded data is output by backtracking by bit.

상술한 본 발명에 따르면, 기 역추적 경로의 소정 구간별로 현재 역추적 경로와 비교해서, 일치하면 기 역추적 경로에 의해서 복호화된 데이터를 출력하고, 불일치하면 현재 역추적 경로에 의해서 복호화를 수행함으로써, 기 역추적 경로와 일치하는 현재 역추적 경로에 대한 복호화에 수행되는 연산량 및 연산 시간을 단축 시킬 수 있는 효과가 있다.According to the present invention described above, by comparing the current backtracking path for each predetermined section of the backtracking path, if it matches, the data decoded by the backtracking path is output, and if it is mismatched, the decoding is performed by the current backtracking path. Therefore, the amount of computation and the computation time performed on the decoding of the current traceback path coinciding with the traceback path can be shortened.

Claims (3)

가산 비교 선택된 경로 비트로부터 원래의 데이터를 역추적하는 비터비 복호기에 있어서,In a Viterbi decoder for tracing back original data from an added comparison selected path bit, 상기 경로 비트를 기설정된 비트수만큼 직렬로 제공받아서 병렬로 천이시켜 저장하는 직병렬 천이 메모리;A serial / parallel transition memory which receives the path bits in series by a predetermined number of bits, and converts the path bits in parallel; 이전 역추적 과정이 수행된 다수의 기 역추적 경로 비트, 상기 직병렬 천이 메모리로부터 제공되는 현재 역추적 경로 비트, 상기 기 역추적 경로 비트에 의해서 기 복호화된 데이터 비트 및 상기 현재 역추적 경로 비트에 의해서 복호화된 데이터 비트가 뱅크 단위로 저장되는 메모리;A plurality of pretrace path bits on which the previous traceback process was performed, a current trace path bit provided from the serial-parallel transition memory, data bits previously decoded by the trace track path bits, and the current trace track path bits. A memory in which data bits decoded by the memory are stored in bank units; 상기 현재 역추적 경로 비트의 단위 경로 비트와 상기 다수의 기 역추적 경로 비트의 대표 비트를 비교해서, 현재 역추적 경로의 경로 비트와 대표 비트가 일치되기 이전의 경로 비트에 대해서는 상기 현재 경로 비트에 의거한 복호화 데이터를 출력하고, 현재 역추적 경로의 경로 비트와 대표 비트가 일치된 다음에는 상기 기 역추적 경로 비트에 의해서 복호화된 데이터 비트를 출력하는 역추적부를 구비하는 것을 특징으로 하는 비터비 복호기.The unit path bits of the current traceback path bits and the representative bits of the plurality of traceback path bits are compared, so that the path bits before the path bits of the current traceback path match with the representative bits are matched to the current path bits. And a back tracer for outputting the decoded data based on the output bit, and outputting the data bits decoded by the back trace path bits after the path bits of the current trace back path match with the representative bits. . 제 1 항에 있어서, 상기 메모리는,The method of claim 1, wherein the memory, 상기 직병렬 천이 메모리에서 병렬로 제공되는 경로 비트가 저장되는 쓰기 뱅크;A write bank in which path bits provided in parallel in the serial to parallel memory are stored; 기 역추적 경로에 포함되는 다수의 경로 비트들이 기설정된 비트수 단위로 저장되는 다수의 역추적 뱅크;A plurality of backtracking banks in which a plurality of path bits included in the backtracking path are stored in units of a predetermined number of bits; 상기 현재 역추적 경로에 의해서 복호화된 데이터 비트가 저장되는 예비 복호화 뱅크;A preliminary decryption bank in which data bits decoded by the current traceback path are stored; 상기 기 역추적 경로에 의해서 복호화된 데이터가 저장되는 복호화 뱅크를 포함하는 것을 특징으로 하는 비터비 복호기.And a decoding bank in which data decoded by the backtracking path is stored. 제 2 항에 있어서, 상기 역추적부는,The method of claim 2, wherein the backtracking unit, 상기 다수 개의 역추적 뱅크 각각에 대응해서 그 대표 비트가 저장되는 다수 개의 대표 비트 메모리;A plurality of representative bit memories for storing the representative bits corresponding to each of the plurality of traceback banks; 상기 다수개의 대표 비트 메모리에 대해서 1부터 n(n=정수)까지 카운트하는 카운터;A counter for counting from 1 to n (n = integer) for the plurality of representative bit memories; 상기 카운터의 카운트값에 의거하여 상기 다수 개의 대표 비트 메모리중 어느 하나에서 제공되는 대표비트를 선택적으로 출력하는 제 1 다중화기;A first multiplexer for selectively outputting a representative bit provided in any one of the plurality of representative bit memories based on a count value of the counter; 상기 제 1 다중화기에서 출력되는 대표 비트와 상기 쓰기 뱅크로부터 제공되는 경로 비트를 비교하는 비교기;A comparator for comparing a representative bit output from the first multiplexer with a path bit provided from the write bank; 상기 예비 복호화 뱅크로부터 상기 현재 역추적 경로에 의해서 복호화된 데이터 비트를 병렬로 제공받아서 직렬로 출력하는 제 1 병직렬 천이 메모리;A first parallel serial memory which receives data bits decoded by the current traceback path from the preliminary decoding bank in parallel and outputs them in series; 상기 복호화 뱅크로부터 상기 기 역추적 경로에 의해서 복호화된 데이터를 병렬로 제공받아서 직렬로 출력하는 제 2 병직렬 천이 메모리;A second parallel serial memory for receiving data decoded by the backtracking path in parallel from the decryption bank and outputting the data in parallel; 상기 비교기의 비교 결과에 의거하여, 상기 제 1 다중화기에서 출력되는 대표 비트와 상기 쓰기 뱅크로부터 제공되는 경로 비트가 불일치하면 상기 제 1 병직렬 천이 메모리에서 제공되는 데이터 비트를 출력하고, 일치하면 상기 제 2 병직렬 천이 메모리에서 제공되는 데이터 비트를 출력하는 제 2 다중화기로 이루어지는 것을 특징으로 하는 비터비 복호기.Based on a comparison result of the comparator, if the representative bit output from the first multiplexer and the path bit provided from the write bank do not match, the data bit provided from the first parallel-transition memory is output; And a second multiplexer for outputting the data bits provided by the second parallel serial transition memory.
KR1019990055680A 1999-12-08 1999-12-08 Viterbi decoder KR100324066B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990055680A KR100324066B1 (en) 1999-12-08 1999-12-08 Viterbi decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990055680A KR100324066B1 (en) 1999-12-08 1999-12-08 Viterbi decoder

Publications (2)

Publication Number Publication Date
KR20010054733A KR20010054733A (en) 2001-07-02
KR100324066B1 true KR100324066B1 (en) 2002-02-16

Family

ID=19624158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990055680A KR100324066B1 (en) 1999-12-08 1999-12-08 Viterbi decoder

Country Status (1)

Country Link
KR (1) KR100324066B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594214B1 (en) * 2000-01-19 2006-07-03 삼성전자주식회사 Low power viterbi decoder
KR100504113B1 (en) * 2002-10-30 2005-07-27 엘지전자 주식회사 System And Method For Decoding Data In Viterbi Decoder

Also Published As

Publication number Publication date
KR20010054733A (en) 2001-07-02

Similar Documents

Publication Publication Date Title
US4606027A (en) Error correction apparatus using a Viterbi decoder
JP3900637B2 (en) Viterbi decoder
US5432803A (en) Maximum likelihood convolutional decoder
KR100580160B1 (en) Two-step soft output viterbi algorithm decoder using modified trace-back
KR970019196A (en) Signal determining apparatus and receiving apparatus in a coded communication system, signal judging method, and communication path state estimating method
KR960705437A (en) MULTIIRATE SERIAL VITERBI DECODER FOR CODE DIVISION MULTIPLE ACCESS SYSTEM APPLICATIONS
JP2009535939A (en) Viterbi decoding apparatus and technology
US8433975B2 (en) Bitwise reliability indicators from survivor bits in Viterbi decoders
KR100779782B1 (en) High-speed acs unit for a viterbi decoder
EP3996285A1 (en) Parallel backtracking in viterbi decoder
KR101212856B1 (en) Method and apparatus for decoding data in communication system
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
KR100324066B1 (en) Viterbi decoder
US20070201586A1 (en) Multi-rate viterbi decoder
JPH06284018A (en) Viterbi decoding method and error correcting and decoding device
EP1024603A2 (en) Method and apparatus to increase the speed of Viterbi decoding
US6578119B2 (en) Method and device for memory management in digital data transfer
EP1542370A1 (en) Method and system for branch label calculation in a Viterbi decoder
KR100564757B1 (en) Low power Viterbi decoder and trace-back method
CA2353019A1 (en) Minimum error detection in a viterbi decoder
KR20000049852A (en) Viterbi decoder
JP2591332B2 (en) Error correction decoding device
JP3337950B2 (en) Error correction decoding method and error correction decoding device
KR100811376B1 (en) Method for coding and decoding in a communication system
KR100726170B1 (en) Apparatus and method for viterbi decoding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee