KR100531840B1 - Method for computing branch metric in viterbi decoder and circuit thereof - Google Patents

Method for computing branch metric in viterbi decoder and circuit thereof Download PDF

Info

Publication number
KR100531840B1
KR100531840B1 KR10-2002-0041675A KR20020041675A KR100531840B1 KR 100531840 B1 KR100531840 B1 KR 100531840B1 KR 20020041675 A KR20020041675 A KR 20020041675A KR 100531840 B1 KR100531840 B1 KR 100531840B1
Authority
KR
South Korea
Prior art keywords
bit
metric
metrics
branch
encoded data
Prior art date
Application number
KR10-2002-0041675A
Other languages
Korean (ko)
Other versions
KR20040007035A (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 KR10-2002-0041675A priority Critical patent/KR100531840B1/en
Publication of KR20040007035A publication Critical patent/KR20040007035A/en
Application granted granted Critical
Publication of KR100531840B1 publication Critical patent/KR100531840B1/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/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4115Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

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

Abstract

본 발명은 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로에 관한 것으로 특히, 다중 ACS를 사용하는 비터비 디코더에 있어서, 각 ACS의 입력 가지 메트릭을 간단한 하드웨어를 이용하여 동시에 구함으로써 보다 빠른 데이터 처리가 가능하도록 함과 아울러 회로 설계를 용이하도록 함을 목적으로 한다. 이러한 목적의 본 발명은 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 다중 ACS를 구비하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서, 다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대한 다수의 인코딩 데이터 비트를 구하는 제1 단계와, 상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와, 상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행하도록 구성함을 특징으로 한다. The present invention relates to a method for calculating a branch metric of a Viterbi decoder and a circuit thereof. In particular, in a Viterbi decoder using multiple ACS, the input branch metric of each ACS can be obtained simultaneously using simple hardware for faster data processing. It aims to make it possible and to facilitate the circuit design. The present invention for this purpose assumes that two Add-Compare-Select (ACS) processing one butterfly operation constitute one Processing Unit (PES), the branch metric of Viterbi decoder with multiple ACS. A calculation method comprising: a first step of obtaining a plurality of encoded data bits for one branch of one butterfly by sequentially counting a state value excluding an index value for each of a plurality of PEs; A second step of obtaining a bit metric corresponding to a code rate and an inverted bit metric inverted for each of the plurality of encoded data bits for the plurality of encoded data bits, and selecting one of the bit metric and the inverted bit metric for each of the plurality of PEs And summing the selected metrics to perform a third step of simultaneously obtaining each branch metric.

Description

비터비 디코더의 가지 메트릭 계산 방법 및 그 회로{METHOD FOR COMPUTING BRANCH METRIC IN VITERBI DECODER AND CIRCUIT THEREOF}METHODO FOR COMPUTING BRANCH METRIC IN VITERBI DECODER AND CIRCUIT THEREOF

본 발명은 디지털 통신에 관한 것으로 특히, 다중 ACS(Add-Compare_Select)를 구비하는 비터비 디코더에 있어서 가지 브랜치 메트릭 계산 방법 및 그 회로에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to digital communications, and more particularly, to branch branch metric calculation methods and circuits in a Viterbi decoder with multiple Add-Compare_Select (ACS).

디지털 통신에서 데이터 전송시에는 오류가 발생함으로 이를 정정하기 위하여 오류 정정 부호화(error correcting coding)를 필요로 한다. An error occurs during data transmission in digital communication, and error correcting coding is required to correct the error.

오류 정정 부호화에는 데이터를 블록 단위로 부호화/복호화를 수행하기 위한 블록 부호(block code)와 일정 길이의 메모리를 이용하여 이전 데이터와 현재 데이터를 비교함에 의해 부호화를 수행하기 위한 컨벌루셔널 부호(convolutional code)를 이용한다. In error correction encoding, a block code for encoding / decoding data in units of blocks and a convolutional code for performing encoding by comparing previous data with current data using a predetermined length of memory. code).

컨벌루셔널 부호화의 가장 대표적인 방법은 비터비(Viterbi) 알고리즘이다. The most representative method of convolutional coding is the Viterbi algorithm.

비터비 알고리즘은 제한길이(Constraint length ,k)의 크기에 비례하여 복잡도가 지수승으로 증가하는데, 현재는 k=9까지 이용되며 k>9 이상은 복잡도가 너무 커서 실제로는 이용되지 않는다.The Viterbi algorithm increases the complexity exponentially in proportion to the magnitude of the constraint length (k), which is currently used up to k = 9 and more than k> 9 so complex that it is not actually used.

실제로 CDMA(IS_95) 시스템에서는 k=9인 구조가 사용되고 있으며, 차세대 이동통신을 위한 IMT-2000 시스템에서는 k=9인 Viterbi code가 Turbo code와 함께 사용된다. In fact, the structure of k = 9 is used in the CDMA (IS_95) system, and the Viterbi code with k = 9 is used together with the Turbo code in the IMT-2000 system for the next generation mobile communication.

일반적으로 비터비 디코더는 크게 BMG(branch metric generator), ACS(add-compare-select), TB(trace back) 부분으로 구성된다. In general, the Viterbi decoder is largely composed of a branch metric generator (BMG), add-compare-select (ACS), and trace back (TB).

상기 BMG는 입력 데이터로부터 가지 메트릭(Branch Metric) 값을 구하는 부분이다. The BMG is a part for obtaining a branch metric value from input data.

상기 ACS는 가지 메트릭(Branch Metric) 값과 이전 데이터에 의해 생성된 경로 메트릭(Path Metric) 값을 합하고 같은 상태로 천이하는 두 값을 비교하여 작은 값 혹은 큰 값을 상태천이 정보로 선택하여 경로 메트릭(PM)에 저장하며 그 경로를 나타내는 결정 비트를 TB에 전송하기 위한 부분이다. The ACS compares two branch metric values and path metric values generated by previous data and compares two values that transition to the same state, and selects a small value or a large value as state transition information. This is a part for transmitting to TB the decision bit stored in the PM and indicating the path.

상기 TB는 ACS에서 구한 결정비트를 저장하고 있다가 역추적(trace back)을 통해 survival path를 구하고 이 path로부터 결과 값을 출력하기 위한 부분이다.The TB stores a decision bit obtained from the ACS and then obtains a survival path through trace back and outputs a result value from the path.

가지 메트릭(Branch Metric)이란 컨벌루셔널 인코더(Convolutional Encoder)에 의해 결정되어지는 트렐리스(Trellis) 상의 한 시점(time)에서 상태 간의 천이에 대한 메트릭이다. The branch metric is a metric for the transition between states at a time on Trellis as determined by a convolutional encoder.

즉, 가지 메트릭은 트렐리스의 하나의 가지에서 생성되는 인코딩된 데이터와 수신 데이터 간의 유사(likelihood) 정도를 나타낸다. That is, the branch metric represents the degree of likelihood between the encoded data and the received data generated in one branch of the trellis.

여기서, 인코딩된 데이터는 컨벌루셔널 인코더가 정해지면 결정되므로 수신측에서 미리 구할 수 있다. Here, the encoded data is determined when the convolutional encoder is determined, and thus can be obtained in advance at the receiving end.

경로 메트릭(Path Metric)이란 각 상태에 대하여 수신 정보 블록의 처음부터 어느 한 시점까지 가지 메트릭 값을 계속 더한 값으로서 그 시점에서의 각 상태에 대한 메트릭이다. The path metric is a value obtained by continuously adding branch metric values for each state from the beginning of a reception information block to a point in time, and is a metric for each state at that time.

도1은 코드율(Code Rate)이 1/n인 컨벌루셔널 인코더에 대한 기본 트렐리스 요소를 나타낸다. Figure 1 shows a basic trellis element for a convolutional encoder with a code rate of 1 / n.

도1에서 는 시간 (t)일 때 j번째 상태를 나타내고 은 시간 (t)에서 (t+1)이 될 때 상태 j에서 상태 2j로 천이되는 가지 메트릭을 나타낸다.In Figure 1 Represents the jth state at time (t) Represents a branch metric that transitions from state j to state 2j when time t becomes (t + 1).

코드율 1/n이란 하나의 입력 비트에 대해 컨벌루셔널 인코딩 후 n 비트를 출력함을 의미한다. A code rate of 1 / n means that n bits are output after convolutional encoding on one input bit.

도2의 표는 수신 신호(r)를 4가지 값으로 나누었을 경우에 대한 가지 메트릭의 예를 도시한 것으로, y는 송신신호 또는 수신단에서 트렐리스의 상태 천이에서 얻어지는 즉, 인코딩된 n비트 데이터 중 한 비트값을 나타낸다. The table of FIG. 2 shows an example of a branch metric for the case where the received signal r is divided into four values, where y is obtained from the state transition of the trellis at the transmitting signal or the receiving end, that is, encoded n bits Represents one bit value of data.

도2에서 밑줄이 있는 값은 밑줄이 없는 값에 비하여 보다 강한 값을 의미한다. In FIG. 2, an underlined value means a stronger value than an underlined value.

따라서, 송신 신호(y) 또는 수신측에서 구하여 가지고 있는 값이 '0'이라고 할 때 수신 신호(r)가 ''이면 가장 큰 메트릭 즉, 가장 큰 유사(likelihood) 값을 가지며 '0','1',''의 순서대로 메트릭 값의 크기가 크다.Therefore, when the transmission signal y or the value obtained by the reception side is' 0 ', the reception signal r becomes' 'With the largest metric, that is, the largest likelihood value, and' 0 ',' 1 ',' The size of the metric value is large in order.

일반적으로 가지 메트릭(branch metric)은 주로 비트 메트릭(bit metric)을 가지고 있는 룩업 테이블을 바탕으로 계산되어진다. In general, the branch metric is calculated based on a lookup table that contains mainly a bit metric.

다시 말해서, 가지 메트릭(branch metric)은 각 가지(branch)에서 생성되는 n 비트에 대하여 해당 수신 비트와의 각 비트 단위(bit-wise)의 비트 메트릭을 미리 저장하고 있는 룩업 테이블로부터 읽어 그 값들을 더하여 구한다. In other words, a branch metric reads a value from a lookup table that stores a bit metric of each bit-wise with the corresponding received bit for n bits generated in each branch. Find in addition.

일반적으로 가지 메트릭을 구하기 위해 동일한 룩업(look-up) 동작이 트렐리스 단계 당 가지 각각에 대하여 n번 시행된다.In general, the same look-up behavior per Trellis step is used to obtain branch metrics. This is done n times for each branch.

따라서, 매우 빠른 디코더의 경우는 개의 룩업 테이블 회로를 구비하도록 설계될 것이고 간단한 디코더의 경우는 동일한 룩업 테이블을 번 읽도록 설계될 것이다.So for a very fast decoder It will be designed to have two lookup table circuits, and for a simple decoder it will use the same lookup table. It will be designed to read once.

여기서, 은 컨벌루셔널 인코더의 메모리 개수를 나타내고 는 단위 입력 정보의 수를 나타낸다.here, Represents the number of memories of the convolutional encoder Indicates the number of unit input information.

예를 들어, IMT-2000 시스템에서 사용되는 코드율 1/3 컨벌루셔널 인코더는 도3과 같이 구현할 수 있다. For example, the code rate 1/3 convolutional encoder used in the IMT-2000 system may be implemented as shown in FIG. 3.

이때, , , 이고 총 상태수는 256개이다.At this time, , , And the total number of states is 256.

따라서, 도3의 컨벌루셔널 인코더에 대응하는 비터비 디코더는 번 룩업 테이블을 읽거나 768개의 룩업 테이블 회로를 만들어야 한다.Accordingly, the Viterbi decoder corresponding to the convolutional encoder of FIG. You need to read the burnup lookup table or create 768 lookup table circuits.

그러나, 종래 기술에서는 도3과 같은 컨벌루셔널 인코더에 대응하는 간단한 구조의 비터비 디코더일지라도 룩업 테이블을 768번 읽어와야 하기 때문에 많은 시간이 소모되며 이로 인해 전체 디코딩 시간이 길어지게 되는 문제점이 있다. However, in the related art, even a Viterbi decoder having a simple structure corresponding to a convolutional encoder as shown in FIG. 3 requires much time because the lookup table has to be read 768 times, resulting in a long overall decoding time.

또한, 종래 기술에서는 도3과 같은 컨벌루셔널 인코더에 대응하는 빠른 비터비 디코더를 구현하는 경우 768개의 값 중에서 사용되는 ACS 개수 만큼 동시에 읽어올 수 있는 회로로 만들어야 하기 때문에 복잡도(Complexity)가 아주 커지는 문제점이 있다. In addition, in the prior art, when implementing a fast Viterbi decoder corresponding to the convolutional encoder as shown in FIG. 3, since the circuit has to be read out as many times as the number of ACS used among 768 values, the complexity becomes very large. There is a problem.

그런데, 실제로 대부분의 경우에는 동시에 모든 비트 메트릭에 접근하도록 구현할 필요가 없으므로 ACS의 개수만큼 가지 메트릭 값을 동시에 얻을 수만 있으면 된다. However, in most cases, it is not necessary to implement access to all the bit metrics at the same time, so it is only necessary to simultaneously obtain the number of branch metrics as many as the number of ACSs.

따라서, 본 발명은 상기의 문제점을 개선하기 위하여 다중 ACS를 사용하는 비터비 디코더에 있어서, 각 ACS의 입력이 가질 수 있는 상태의 특성을 이용하여 각 ACS의 입력 가지 메트릭을 동시에 구하도록 구현함으로써 보다 빠른 데이터 처리가 가능하도록 함과 아울러 각 ACS의 입력 가지 메트릭을 동시에 구하기 위한 회로를 하나의 ACS의 입력 가지 메트릭을 구하는 정도의 복잡도를 가지도록 간단하게 구현함으로써 회로 설계가 용이하도록 창안한 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로를 제공함에 목적이 있다. Accordingly, the present invention provides a Viterbi decoder using multiple ACS to improve the above problems, by implementing the input branch metric of each ACS at the same time by using the characteristics of the state of each ACS input. Viterbi decoder designed for easy circuit design by enabling fast data processing and simple implementation of a circuit for simultaneously obtaining the input branch metric of each ACS with the complexity of obtaining the input branch metric of one ACS. It is an object of the present invention to provide a metric calculation method and a circuit thereof.

본 발명은 상기의 목적을 달성하기 위하여 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭을 버터플라이 연산으로 구하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서, 다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대한 다수의 인코딩 데이터 비트를 구하는 제1 단계와, 상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와, 상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행하도록 구성함을 특징으로 한다. In order to achieve the above object, the present invention assumes that two Add-Compare-Select (ACS) processing one butterfly operation constitute one Processing Unit (convolution code). In the Viterbi decoder's branch metric calculation method, which obtains a branch metric for a state transition at any time determined by the summation by a butterfly operation, a state value excluding an index value is sequentially counted for each of a plurality of PEs. A first step of obtaining a plurality of encoded data bits for one branch of one butterfly, a bit metric corresponding to a code rate for each of the plurality of encoded data bits for each of the plurality of PEs, and an inverted bit inverting them Obtaining a metric, and selecting one of a bit metric and an inverted bit metric for each of the plurality of PEs and selecting the selected metric. Calculated by summing the rigs is characterized in that configured to perform the third step to obtain the respective branch metrics at the same time.

상기 제1 단계는 PE(Processing Unit) 인덱스값을 제외한 PE 상태값을 순차적으로 계수하면서 그 계수값을 논리 조합하여 하나의 경로 메트릭에 대한 인코딩 데이터 비트를 구하는 과정과, 버터플라이 구조의 4개의 가지(branch)에서 생성되는 인코딩 데이터가 2개씩 같으면서 상호간 비트 단위 반전 관계를 가지는 각 경로 메트릭 간의 관계를 참고하여 상기 과정에서 구한 인코딩 데이터 비트로부터 입력 ACS에 구비되는 4개의 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 동시에 구하는 과정을 수행함을 특징으로 한다. The first step is to calculate the encoded data bits for one path metric by logically combining the coefficient values while sequentially counting the PE state values excluding the processing unit (PE) index value, and the four branches of the butterfly structure. encoding data for the four path metrics included in the input ACS from the encoding data bits obtained in the above process by referring to the relationship between each path metric having the same bit inversion relationship between the two encoded data generated in the (branch). It is characterized in that the process of simultaneously obtaining the bits.

상기 제2 단계는 경로 메트릭이 최소값이 되는 생존 경로를 선택하여 인코딩 데이터 비트 '0'과 '1'에 대한 비트 메트릭을 동시에 구하는 것을 특징으로 한다. In the second step, the bit metrics for encoding data bits '0' and '1' are simultaneously obtained by selecting a survival path having a minimum value.

상기 비트 메트릭은 인코딩 데이터 비트 '0'에 대해 수신 데이터의 최상위 비트를 제외한 하위 비트를 반전시키고 인코딩 데이터 비트 '1'에 대해 수신 데이터의 최상위 비트를 반전시킴에 의해 구하는 것을 특징으로 한다. The bit metric may be obtained by inverting a lower bit except for the most significant bit of the received data with respect to the encoded data bit '0' and inverting the most significant bit of the received data with respect to the encoded data bit '1'.

상기 제3 단계는 하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 코드율에 대응하는 개수의 비트 메트릭을 각기 선택하는 단계와, 상기에서 선택한 비트 메트릭을 반전시키는 단계와, 각 경로 메트릭 간의 관계를 참고하여 상기에서 각기 선택된 비트 메트릭과 상기에서 반전된 비트 메트릭을 합산하여 4개의 경로 메트릭에 대한 8개의 가지 메트릭을 동시에 구하는 단계를 수행함을 특징으로 한다. The third step may include selecting each number of bit metrics corresponding to a code rate according to encoding data bits of one path metric, inverting the selected bit metric, and a relationship between each path metric. And summing up the eight selected metrics for the four path metrics by summing the respective selected bit metrics and the inverted bit metrics.

또한, 본 발명은 상기의 목적을 달성하기 위하여 다중 ACS를 구비하는 비터비 디코더에 있어서, PE(Processing Unit) 인덱스값을 제외한 PE 상태값을 순차적으로 계수하면서 그 계수값을 논리 조합하여 입력 ACS에 구비되는 4개의 경로 메트릭(Path Metric)에 대한 각각의 인코딩 데이터 비트를 동시에 구하는 인코딩 데이터 비트 연산기와, 코드율에 대응하는 개수의 연속적인 수신 데이터 비트를 동시에 논리 연산하여 인코딩 데이터 비트 각각에 대한 각각의 비트 메트릭을 동시에 구하는 비트 메트릭 연산기와, 상기에서 구한 하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 해당 비트 메트릭을 선택하고 그 선택된 비트 메트릭과 그의 반전 비트 메트릭을 합산하여 가지 메트릭을 구하며 4개의 경로 메트릭에 대한 관계를 참조하여 상기 가지 메트릭으로부터 나머지 경로 메트릭에 대한 각각의 가지 메트릭을 동시에 구하는 가지 메트릭 연산기를 구비하여 구성함을 특징으로 한다. In addition, the present invention, in the Viterbi decoder having multiple ACS in order to achieve the above object, while counting the PE state value excluding the processing unit (PE) index value sequentially and logically combines the count value to the input ACS An encoding data bit operator that simultaneously obtains each encoded data bit for four path metrics, and a plurality of consecutive received data bits corresponding to a code rate by performing logical operation simultaneously for each of the encoded data bits. A bit metric operator that simultaneously obtains the bit metrics of and selects the corresponding bit metric according to the encoding data bits for the one path metric obtained above, and adds the selected bit metric and its inverted bit metric to obtain the branch metric Refer to the relationship to the metrics from the branch metrics Provided with a branch metric computing unit to obtain the respective branch metrics for the remaining path metric at the same time, characterized in that configuration.

이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다. Hereinafter, the present invention will be described in detail with reference to the drawings.

본 발명의 실시예에서는 설명 상 편의를 위하여 IS-95 및 IMT-2000 시스템에 사용하는 도3의 코드율 1/3 컨벌루셔널 인코더에 대응하는 비터비 디코더에 대한 동작을 기술하기로 한다. In the embodiment of the present invention, for convenience of description, an operation of a Viterbi decoder corresponding to the code rate 1/3 convolutional encoder of FIG. 3 used in the IS-95 and IMT-2000 systems will be described.

도4는 도3의 컨벌루셔널 코드에 해당하는 트렐리스 상의 임의의 버터플라이 구조를 도시한 것이다. 4 illustrates an arbitrary butterfly structure on the trellis corresponding to the convolutional code of FIG.

여기서, 는 상태를 나타내는 8비트 데이터로서, 도3의 컨벌루셔널 인코더에서는 메모리(플립플롭) 값이다.here, Is 8-bit data indicating a state, which is a memory (flip-flop) value in the convolutional encoder of FIG.

그리고, 인코더의 입력측에 있는 메모리 값을 상태의 LSB(Least Significant Bit) ''으로 가정한다.The LSB (Least Significant Bit) of the state 'Is assumed.

은 가지 메트릭을 나타내는데, 아래 첨자는 입력 정보값을 나타낸다. Represents branch metrics, with subscripts representing input information values.

즉, 는 현재 상태에서 입력값이 '0'으로 들어올 때의 가지 메트릭으로서, 도4에서 코드율이 1/3인 경우에는 3비트의 인코딩된 데이터(,, 또는 ,,)와 그 위치에 해당하는 수신된 데이터 값의 유사(likelihood)값인 비트 메트릭의 합으로 표현되어진다.In other words, Is the branch metric when the input value is '0' in the current state. In FIG. 4, when the code rate is 1/3, three bits of encoded data ( , , or , , ) And a bit metric, which is a similarity value of the received data value corresponding to the position.

도4를 살펴보면, 한 시점 (t)에서의 2개의 상태와 다음 시점 (t+1)에서의 2개의 상태는 항상 짝을 이루는 구조를 가지는데 이를 버터플라이(butterfly)라고 한다. Referring to FIG. 4, two states at one time point t and two states at a next time point t + 1 always have a paired structure, which is called a butterfly.

그리고, 시점 (t)에서의 2개의 상태는 MSB(Most Significant Bit) ''의 값이 '0'인 경우와 '1'인 경우이고 나머지 비트들은 동일한 값을 가진다.The two states at time t are MSB (Most Significant Bit) ' If the value of 'is'0' and '1' and the remaining bits have the same value.

또한, 시점 (t+1)에서의 2개의 상태는 시점 t에서의 상태값을 좌측으로 한 비트 시프트한 후 마지막 비트(LSB)에 대해 컨벌루셔널 인코더의 입력이 '0'이면 '0'의 상태, '1'이면 '1'인 상태이다. In addition, the two states at the time point t + 1 are set to '0' if the input of the convolutional encoder is '0' for the last bit LSB after shifting the state value at the time point t to the left. Status is '1' if it is '1'.

도4에 도시된 바와 같이, 코드율이 1/n인 컨벌루셔널 인코더의 트렐리스 상의 하나의 버터플라이에는 4개의 가지(branch)가 있는데, 대부분의 컨벌루셔널 인코더 구조 즉, 각 출력 비트값을 얻기 위해 입력값과 MSB 값이 반드시 배타적 논리합(XOR)되는 구조에서는 하나의 버터플라이에서 인코딩된 3비트 값이 2가지 값을 가지면서 그 2가지 값이 서로 비트 단위의 반전(bit-wise inversion) 관계를 가진다. As shown in Figure 4, one butterfly on the trellis of a convolutional encoder with a code rate of 1 / n has four branches, most of the convolutional encoder structure, i.e. each output bit. In a structure where the input value and the MSB value must be XORed to obtain a value, a three-bit value encoded in one butterfly has two values, and the two values are bit-wise. inversion) relationship.

즉, 각 가지(branch)의 인코딩된 데이터는 비트 단위로 '0'과 '1'의 반전 관계를 가진다. That is, the encoded data of each branch has an inverse relationship of '0' and '1' in bits.

따라서, 한 버터플라이의 4개의 가지에 대해서는 2개의 가지 메트릭만을 구하면 된다. Therefore, only two branch metrics are needed for four branches of a butterfly.

도3과 도4로부터 맨 위가지 즉, 상태값의 MSB인 이 '0'이고 입력이 '0'일 때에서의 인코딩된 출력 비트(,,)는 아래의 [수학식 1]과 같이 구할 수 있다.3 and 4, the top branch, that is, the MSB of the state value Is the '0' and the encoded output bit when the input is '0' ( , , ) Can be obtained as shown in Equation 1 below.

[수학식 1] [Equation 1]

여기서, 는 서로 반전 관계를 가지므로 하나의 가지에서의 인코딩된 비트만을 구하면 나머지 3개의 가지에서의 모든 인코딩된 비트를 알 수 있다.here, Wow Are inversely related to each other, so if only the encoded bits in one branch are obtained, all encoded bits in the other three branches can be known.

그런데, 수신측에서 미리 이러한 모든 출력 비트를 가지고 있을 수 있지만, 다중 ACS를 사용할 때에는 이 값을 동시에 얻기 위해서 동시에 해당 메모리에 접근해야 하는 어려움이 있다. By the way, the receiving side may have all these output bits in advance, but when using multiple ACS, it is difficult to simultaneously access the corresponding memory in order to obtain these values simultaneously.

하지만, 다중 ACS를 사용하는 경우 일반적인 컨벌루셔널 인코더의 버터플라이 구조적 특성과 각 ACS의 입력이 갖는 상태의 특성을 이용하면 아주 간단한 구조로 인코딩 데이터를 얻을 수 있고 그로부터 가지 메트릭을 빠르고 쉽게 구할 수 있다. However, when using multiple ACSs, the butterfly structural characteristics of a typical convolutional encoder and the state characteristics of the inputs of each ACS can be used to obtain encoded data in a very simple structure, and to obtain branch metrics from it quickly and easily. .

임의의 한 상태의 경로 메트릭을 구하는 ACS 동작을 하나의 ACS라고 하며 도5는 도4의 하나의 버터플라이에 해당되는 2개의 ACS 구조를 나타내고 있다. An ACS operation for obtaining a path metric of any one state is called one ACS, and FIG. 5 shows two ACS structures corresponding to one butterfly of FIG.

도5의 블록도는 일반적인 회로 구성이므로 상세한 설명은 생략하기로 한다. Since the block diagram of FIG. 5 is a general circuit configuration, detailed description thereof will be omitted.

본 발명의 실시예에서는 하나의 버터플라이 모두를 처리하는 2개의 ACS로 이루어진 도5의 구조를 하나의 PE(Processing Unit)라고 가정한다. In the embodiment of the present invention, it is assumed that the structure of FIG. 5, which consists of two ACSs that process all one butterfly, is one processing unit (PE).

도6의 표는 4개의 PE를 가지는 즉, 8개의 ACS를 가지는 비터비 디코더의 각 PE 입/출력 상태를 도시한 것이다. The table of FIG. 6 shows each PE input / output state of a Viterbi decoder having four PEs, that is, eight ACSs.

각 PE의 각 상태에서의 입력 가지 메트릭은 버터플라이의 하나의 가지에 대한 인코딩 비트값들만 구하여 그로부터 얻을 수 있다. The input branch metric in each state of each PE can be obtained from the encoding bit values for only one branch of the butterfly.

도7의 표는 각 PE의 2개의 입력 중 첫번째 입력이 가지는 상태를 나타낸 것으로, 상태를 나타내는 각 비트들은 상기 [수학식 1]의 각 m 값에 해당된다. The table of FIG. 7 shows a state of the first input of two inputs of each PE, and each bit representing the state corresponds to each m value of Equation 1 above.

도7의 표에서 모든 PE의 상태의 MSB()는 '0'이고 MSB 다음 2비트는 각 PE의 번호와 같으며 그 PE에서는 변화되지 않는다.In the table of Figure 7, MSBs of all PE states ( ) Is '0' and the 2 bits after the MSB are equal to each PE's number and are not changed in that PE.

즉, 도7의 표를 살펴보면, 최상위 비트()는 '0'이고 하위 5비트(~)는 '00000~11111'로서 각 PE가 동일한 값을 갖으며 최상위 다음의 2비트(,)가 각 PE의 번호와 일치되는 값 즉, 각각 '00,01,10,11'을 갖음을 알 수 있다.That is, looking at the table of Figure 7, the most significant bit ( ) Is '0' and the lower 5 bits ( To ) Is '00000 ~ 11111', and each PE has the same value and 2 bits after the most significant ( , It can be seen that has a value corresponding to the number of each PE, that is, '00, 01,10,11 'respectively.

그러므로, [수학식 1]에서 의 값은 각 PE에 따라 정해진다.Therefore, in [Equation 1] Wow The value of is determined for each PE.

따라서, 동시에 모든 PE의 상태 값중 하위 5비트 값(~)을 '00000'부터 '11111'까지 순차적으로 증가시키면서 해당 상태에 맞는 인코딩된 데이터 및 가지 메트릭을 구할 수 있다.Therefore, at the same time, the lower 5 bits of the state value of all PEs ( To ) Is sequentially increased from '00000' to '11111' to obtain encoded data and branch metrics corresponding to the state.

이와같이 8개의 ACS를 사용하는 경우 즉, 4개의 PE를 사용하는 경우 한 시점에서 모든 256개의 상태에 대해 32싸이클의 5비트 카운터 하나로 모든 PE의 입력 메트릭을 도6의 표와 같이 구할 수 있다. In the case of using 8 ACSs, that is, using 4 PEs, the input metrics of all PEs can be obtained using a 5-cycle counter of 32 cycles for all 256 states at one time, as shown in the table of FIG.

따라서, 각 PE에 해당되는 상태 비트와 인코딩 데이터와의 관계는 도8의 표와 같이 나타낼 수 있으며, 여기서 는 XOR 연산을 나타낸다.Therefore, the relationship between the status bits corresponding to each PE and the encoded data may be represented as shown in the table of FIG. 8, where Represents an XOR operation.

본 발명의 실시예에서 상기 도8의 표를 기반으로 모든 PE에 대한 인코딩 데이터를 구하기 위한 회로는 도9에 도시한 바와 같다. In the embodiment of the present invention, a circuit for obtaining encoded data for all PEs based on the table of FIG. 8 is shown in FIG.

즉, 도9의 회로는 PE의 하위 5비트를 '00000'부터 '11111'까지 순차적으로 계수하는 5비트 카운터(110)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0, PE3의 인코딩 데이터 비트()를 구하는 XOR 게이트(121)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0,PE1의 인코딩 데이터 비트()를 구하는 XOR 게이트(122)와, 상기 카운터(110)의 계수값(,,)을 배타적 논리합하여 PE0~PE3의 인코딩 데이터 비트()를 구하는 XOR 게이트(123)와, 상기 XOR 게이트(121)의 출력값을 반전시켜 PE1,PE2의 인코딩 데이터 비트()를 구하는 인버터(131)와, 상기 XOR 게이트(122)의 출력값을 반전시켜 PE2,PE3의 인코딩 데이터 비트()를 구하는 인버터(132)를 구비하여 구성한다.That is, the circuit of FIG. 9 includes a 5-bit counter 110 that sequentially counts the lower 5 bits of PE from '00000' to '11111', and the count value of the counter 110 ( , , ) And the exclusive OR of the encoded data bits of PE0, PE3 ( ) XOR gate 121 to obtain the value and the count value of the counter 110 ( , , ) And the exclusive OR of the encoded data bits of PE0, PE1 ( ) XOR gate 122 to obtain the coefficient value of the counter (110) , , ) And the exclusive OR of the encoded data bits of PE0 to PE3 ( XOR gate 123 to obtain and inverts the output value of the XOR gate 121 to encode the encoded data bits of PE1 and PE2 ( ) And the output values of the XOR gate 122 are inverted to encode the encoded data bits of PE2 and PE3 ( Is configured to include an inverter (132) for obtaining.

그런데, PE0의 인코딩 데이터 비트만을 구하면 나머지 PE1~PE3의 인코딩 데이터 비트를 구할 수 있으므로 실제 회로 구성에 있어서 도9의 회로에 구비된 인버터(131,132)는 필요없는 구성요소이다. However, since only the encoded data bits of PE0 can be obtained, the encoded data bits of the remaining PE1 to PE3 can be obtained, so that the inverters 131 and 132 provided in the circuit of FIG. 9 are unnecessary components in the actual circuit configuration.

따라서, 상기에서 구한 인코딩 데이터과 수신 데이터로부터 비트 메트릭을 구할 수 있다. Therefore, the bit metric can be obtained from the encoded data and the received data.

즉, 인코딩 데이터 비트와 수신 데이터에 대응하는 비트 메트릭은 도10의 표와 같은 룩업 테이블과 같이 구할 수 있다. That is, the bit metrics corresponding to the encoded data bits and the received data may be obtained as in the lookup table shown in the table of FIG. 10.

도10의 표에서는 비터비 디코더의 수신 데이터를 4비트로 양자화한 값이 가장 큰 양수값을 가질 때 즉, 0111일 때 인코딩 데이터 비트의 '0'에 대응하는 비트 메트릭을 '0'으로 설정하고 인코딩 데이터 비트 '1'에 대응하는 비트 메트릭을 '15'로 설정하였다. In the table of FIG. 10, the bit metric corresponding to '0' of the encoded data bit is set to '0' when the value obtained by quantizing the received data of the Viterbi decoder with 4 bits has the largest positive value, that is, 0111. The bit metric corresponding to data bit '1' is set to '15'.

따라서, 비터비 디코더는 경로 메트릭 값이 작은 경로를 생존 경로(Survival Path)로 선택한다. Therefore, the Viterbi decoder selects a path having a small path metric value as a survival path.

즉, 도10의 표를 살펴보면, 인코딩 데이터 비트가 '0'일 때 비트 메트릭은 4비트의 수신 신호의 하위 3비트를 비트 단위 반전(bit-wise inversion)한 값이고 인코딩 데이터 비트가 '1'일 때 비트 메트릭은 4비트의 수신 신호의 상위(MSB) 1비트를 반전한 값임을 알 수 있다. That is, referring to the table of FIG. 10, when the encoding data bit is '0', the bit metric is a bit-wise inversion of the lower 3 bits of the 4-bit received signal and the encoding data bit is '1'. In this case, it can be seen that the bit metric is a value obtained by inverting the upper 1 bit of the 4-bit received signal.

여기서, 2개의 비트 메트릭 값은 서로 비트 단위 반전(bit-wise inversion) 관계가 있음을 알 수 있다. Here, it can be seen that the two bit metric values have a bit-wise inversion relationship with each other.

따라서, 상기의 특성을 이용하여 비트 메트릭을 얻기 위한 회로를 도11과 같이 구성할 수 있다. Therefore, a circuit for obtaining a bit metric using the above characteristics can be configured as shown in FIG.

즉, 도11의 회로는 수신 신호(, )의 각 비트를 각기 반전시키는 인버터(211~214)와, 상기 인버터(211)의 반전 신호와 수신 신호()를 저장하여 인코딩 데이터 비트 "1"에 대응하는 수신 비트()를 출력하는 제1 버퍼(221)와, 수신 신호()와 상기 인버터(212~214)의 반전 신호를 저장하여 인코딩 데이터 비트 "0"에 대응하는 수신 비트()를 출력하는 제2 버퍼(222)를 구비하여 구성한다.That is, the circuit of FIG. , Inverters 211 to 214 for inverting each bit of the < RTI ID = 0.0 > and < / RTI > ) And the receive bit corresponding to the encoded data bit " 1 " ) And a first buffer 221 for outputting the received signal ( ) And a reception bit corresponding to encoding data bit "0" by storing the inverted signal of the inverters 212 to 214. It is configured to include a second buffer 222 that outputs.

다시 말해서, 비트 메트릭을 구하기 위한 회로는 12개의 인버터와 6개의 버퍼를 구비하여 구성할 수 있다. In other words, the circuit for obtaining the bit metric can be configured with 12 inverters and 6 buffers.

그런데, 실제로 도10과 같은 룩업 테이블은 양자화를 어떻게 하고 비트 메트릭 값을 어떻게 정하는가에 따라 달라질 수 있지만, 대부분 수신 데이터와 인코딩 데이터 간의 비트 메트릭 특성을 분석하면 도11과 같은 간단한 구성으로 회로 구현이 가능하다. By the way, the lookup table shown in FIG. 10 may vary depending on how the quantization is performed and how the bit metric value is determined. However, if the bit metric characteristic between the received data and the encoded data is analyzed, the circuit can be implemented with a simple configuration as shown in FIG. Do.

또한, 코드율이 1/3인 경우 가지 메트릭(branch metric)을 구하기 위해서는 연속적인 3개의 수신 신호에 대하여 인코딩 데이터 비트 '0'과 '1'에 대한 각각의 비트 메트릭을 구하고, 상기 인코딩 데이터 비트에 해당하는 비트 메트릭을 선택하여 그의 반전 비트 메트릭과 합산하면 된다. In addition, in order to obtain a branch metric when the code rate is 1/3, each bit metric for encoding data bits '0' and '1' is obtained for three consecutive received signals, and the encoding data bits are obtained. It is necessary to select a bit metric corresponding to and sum it with its inverted bit metric.

삭제delete

이 경우, 인코딩 데이터 비트는 상기에서 설명한 바와 같이 각 PE(butterfly 구조)에서 반드시 '0'과 '1' 모두를 가지는 반전 관계를 가지기 때문에 도11과 같이 인코딩 데이터 비트 '0'과 '1' 모두에 대하여 수신 신호로부터 동시에 비트 메트릭을 구하는 방식이 매우 바람직하다. In this case, since the encoded data bits have an inverse relationship having both '0' and '1' in each PE (butterfly structure) as described above, both the encoded data bits '0' and '1' as shown in FIG. It is highly desirable to obtain a bit metric from the received signal at the same time.

이를 위한 회로 구성을 도12에 도시하였다. A circuit configuration for this is shown in FIG.

도12의 회로는 도9의 회로에서 구한 인코딩 데이터 비트와 각 가지에서 생성되는 인코딩 비트들 간의 특성 즉, 한쌍씩 서로 같고 다른 쌍끼리는 비트 단위 반전(bit-wise inversion) 관계를 갖는 특성을 이용하여 도11의 회로에서 구한 비트 메트릭 값을 선택하여 더함으로써 동시에 각 PE의 입력 가지 메트릭을 구하는 방식을 도시한 것이다. The circuit of FIG. 12 utilizes the characteristics between the encoded data bits obtained from the circuit of FIG. 9 and the encoding bits generated from each branch, that is, the pairs have the same bit-wise inversion relationship. Fig. 11 shows a method of simultaneously obtaining the input branch metrics of each PE by selecting and adding the bit metric values obtained in the circuit of Fig. 11.

즉, 도12의 회로는 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(311)와, 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(312)와, 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 멀티플렉서(313)와, 상기 멀티플렉서(311~313)에서 각기 선택되는 비트 메트릭을 반전시키는 인버터(321~323)와, 상기 멀티플렉서(311)(312)(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(331)와, 상기 인버터(321)(322)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(332)와, 상기 인버터(321)와 멀티플렉서(312)(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(333)와, 상기 멀티플렉서(311)와 인버터(322)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(334)와, 상기 인버터(321)(322)와 멀티플렉서(313)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(335)와, 상기 멀티플렉서(311)(312)와 인버터(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(336)와, 상기 멀티플렉서(311)(313)와 인버터(322)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(337)와, 상기 멀티플렉서(312)와 인버터(321)(323)에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 덧셈기(338)를 구비하여 구성한다.That is, the circuit of FIG. According to the bit metric ( ) ( A multiplexer 311 that selects one of the According to the bit metric ( ) ( A multiplexer 312 that selects one of the According to the bit metric ( ) ( Multiplexer 313 to select one of the multiplexers, inverters 321 to 323 for inverting the bit metrics respectively selected by the multiplexers 311 to 313, and bits in the multiplexers 311, 312 and 313. Sum the metrics to get branch metrics ( The adder 331 for outputting the bit metric and the bit metrics from the inverters 321, 322, 323 are added to the branch metrics ( And adds the bit metric of the adder 332 and the inverter 321 and the multiplexer 312, 313 to the branch metric ( And adds the bit metric of the adder 333 and the multiplexer 311 and the inverters 322 and 323. The adder 334 for outputting the sum of the bit metrics in the inverters 321 and 322 and the multiplexer 313 is added to the branch metrics ( The adder 335 outputting the sum of the bit metrics from the multiplexers 311 and 312 and the inverter 323 adds the branch metrics ( The adder 336 outputting the sum of the bit metrics of the multiplexer 311 and 313 and the inverter 322 is added to the branch metric. The adder 337 for outputting the sum of the bit metrics from the multiplexer 312 and the inverters 321 and 323 adds the branch metrics ( It is configured to include an adder 338 for outputting a).

상기 멀티플렉서(311~313)의 출력단에 인버터(321~323)를 연결하여 구성하는 이유는 서로 비트 단위 반전(bit-wise inversion) 관계를 가지는 도11의 회로에서 구한 인코딩 데이터 비트 '0'일 때의 비트 메트릭과 인코딩 데이터 비트 '1'일 때의 비트 메트릭을 동시에 얻기 위한 것이다. The reason why the inverters 321 to 323 are connected to the output terminals of the multiplexers 311 to 313 is when encoding data bits '0' obtained from the circuit of FIG. 11 having a bit-wise inversion relationship with each other. This is for simultaneously obtaining a bit metric of when and a bit metric when the encoding data bit is '1'.

만약, 인코딩 데이터 비트 '0'일 때의 비트 메트릭과 '1'일 때의 비트 메트릭 간의 비트 단위 반전(bit-wise inversion) 관계가 아니라면 인버터(321~323)의 출력값에 해당하는 값은 멀티플렉서(311~313)의 두 입력값 중 인코딩 데이터 비트값에 의해 선택되지 않는 값이 된다. If there is no bit-wise inversion relationship between the bit metric when the encoding data bit is '0' and the bit metric when the bit is '1', the value corresponding to the output value of the inverters 321 to 323 is a multiplexer ( 311 to 313) are not selected by the encoding data bit value.

한편, 상기와 같이 제시된 본 발명은 비터비 복호 방법을 사용하는 대부분의 시스템에서 동일한 방식으로 적용 가능하다. On the other hand, the present invention as described above is applicable in the same way in most systems using the Viterbi decoding method.

예를 들어, IMT-2000 시스템과 같이 코드율이 다른 2개의 컨벌루셔널 인코더를 선택적으로 사용하는 경우에도 단지 어느 코드율을 사용하는지에 따라 멀티플렉서(MUX), XOR 게이트 및 인버터를 이용하여 회로를 구현하면 된다. For example, even if you selectively use two convolutional encoders with different code rates, such as an IMT-2000 system, you can use a multiplexer (MUX), an XOR gate, and an inverter, depending on which code rate you use. You can implement it.

상기에서 상세히 설명한 바와 같이 본 발명은 비터비 디코더를 구성하는 다중 ACS 각각이 동시에 동작할 수 있도록 각각의 ACS의 입력 가지 메트릭을 간단한 구조의 하드웨어를 이용하여 동시에 구함으로써 보다 빠른 데이터 처리를 수행하도록 하여 시스템 성능을 향상시키는 효과가 있다. As described in detail above, the present invention enables faster data processing by simultaneously obtaining the input branch metrics of each ACS using simple hardware so that each of the multiple ACSs constituting the Viterbi decoder can operate simultaneously. This has the effect of improving system performance.

도1은 코드율 1/n인 컨벌루셔널 코드의 기본 트렐리스 구조를 보인 예시도. 1 is an exemplary diagram showing a basic trellis structure of a convolutional code having a code rate of 1 / n.

도2는 가지 메트릭을 예시한 표. 2 is a table illustrating branch metrics.

도3은 코드율 1/3 컨벌루셔널 인코더의 회로도. 3 is a circuit diagram of a code rate 1/3 convolutional encoder;

도4는 도3에서의 컨벌루셔널 코드에 대한 트렐리스 상의 버터플라이 구조를 보인 예시도. 4 is an exemplary view showing a butterfly structure on trellis for the convolutional code in FIG.

도5는 일반적인 경로 메트릭 연산을 위한 ACS 회로의 블록도. 5 is a block diagram of an ACS circuit for general path metric calculation.

도6은 4개의 PE 입출력 상태를 보인 표. 6 is a table showing four PE input and output states.

도7은 도1의 에 해당하는 4개의 PE 상태값을 보인 표.7 is a view of FIG. Table shows four PE status values.

도8은 4개의 PE 상태값과 인코딩 데이터와의 관계를 보인 표. 8 is a table showing a relationship between four PE state values and encoded data.

도9는 본 발명의 실시예에서 인코딩 데이터 비트 연산기의 회로도. 9 is a circuit diagram of an encoded data bit operator in an embodiment of the present invention.

도10은 비트 메트릭 값을 보인 룩업 테이블의 예시도. 10 is an exemplary view of a lookup table showing bit metric values.

도11은 본 발명의 실시예에서 비트 메트릭 연산기의 회로도. Figure 11 is a circuit diagram of a bit metric operator in an embodiment of the invention.

도12는 본 발명의 실시예에서 가지 메트릭 연산기의 회로도. Figure 12 is a circuit diagram of a branch metric operator in an embodiment of the invention.

* 도면의 주요부분에 대한 부호 설명 * Explanation of symbols on the main parts of the drawings

110 : 카운터 121~123 : XOR 게이트 110: counter 121-123: XOR gate

131,132,211~214,321~323 : 인버터 221,222 : 버퍼 131,132,211 ~ 214,321 ~ 323: Inverter 221,222: Buffer

311~313 : 멀티플렉서 331~338 : 덧셈기 311 ~ 313: Multiplexer 331 ~ 338: Adder

Claims (9)

하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭이 버터플라이 연산으로 구하는 비터비 디코더의 가지 메트릭 계산 방법에 있어서, Assuming that two Add-Compare-Selects (ACSs) processing one butterfly operation constitute one Processing Unit (PE), at any point in time determined by convolutional coding In the Viterbi decoder branch metric calculation method wherein the branch metric for the state transition is obtained by the butterfly operation, 다수의 PE 각각에 대해 인덱스 값을 제외한 상태값을 순차적으로 계수하여 하나의 버터플라이의 하나의 가지에 대응되는 다수의 인코딩 데이터 비트를 구하는 제1 단계와, A first step of sequentially counting state values excluding index values for each of a plurality of PEs to obtain a plurality of encoded data bits corresponding to one branch of one butterfly; 상기 다수의 PE 각각에 대한 다수의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 반전비트메트릭을 구하는 제2 단계와, Obtaining a bit metric corresponding to a code rate and an inverted bit metric inverted for each of the plurality of encoded data bits for each of the plurality of PEs; 상기 다수의 PE 각각에 대해 비트 메트릭과 반전된 비트메트릭 중 하나를 선택하고 그 선택된 메트릭을 합산 연산하여 각각의 가지 메트릭을 동시에 구하는 제3 단계를 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법. And performing a third step of selecting one of a bit metric and an inverted bit metric for each of the plurality of PEs, and summing the selected metrics to simultaneously obtain each branch metric. . 제1항에 있어서, 제1 단계는 The method of claim 1 wherein the first step is 다수의 PE 중 임의의 PE(Processing Unit)에 대해 상태값을 이용하여 하나의 경로 메트릭에 대한 다수의 인코딩 데이터 비트를 구하는 제1 과정과, A first process of obtaining a plurality of encoded data bits for one path metric using a state value for a processing unit (PE) of a plurality of PEs, 다수의 PE에 대한 다수의 경로 메트릭 각각에 대한 각각의 인코딩 데이터의 관계를 참조하여 상기 인코딩 데이터 비트로부터 상기 임의의 PE를 제외한 나머지 PE 각각에 대응되는 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 구하는 제2 과정을 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법. Obtaining each encoded data bit for the path metric corresponding to each of the remaining PEs except the arbitrary PE from the encoded data bits by referring to the relationship of the respective encoded data for each of the plurality of path metrics for the plurality of PEs; A method for calculating branch metrics of a Viterbi decoder, characterized by performing two processes. 제1항에 있어서, 제2 단계는 The method of claim 1 wherein the second step is 경로 메트릭이 최소값이 되는 생존 경로를 선택하여 인코딩 데이터 비트 '0'과 '1'에 대한 비트 메트릭을 구하는 것을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법. A method for calculating the branch metrics of a Viterbi decoder, wherein the bit metrics for encoding data bits '0' and '1' are obtained by selecting a survival path whose path metric is the minimum value. 제1항 또는 제3항에 있어서, 비트 메트릭은 The method of claim 1 or 3, wherein the bit metric is 인코딩 데이터 비트 '0'에 대해 수신 데이터의 최상위 비트를 제외한 하위 비트를 반전시키고 인코딩 데이터 비트 '1'에 대해 수신 데이터의 최상위 비트를 반전시켜 구하는 것을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법. A method for calculating branch metrics of a Viterbi decoder, characterized by inverting the least significant bits of the received data with respect to the encoded data bit '0' and inverting the most significant bits of the received data with respect to the encoded data bit '1'. 제1항에 있어서, 제3 단계는 The method of claim 1 wherein the third step is 하나의 경로 메트릭에 대한 인코딩 데이터 비트에 따라 코드율에 대응하는 개수의 비트 메트릭을 각기 선택하는 제1 과정과, A first process of respectively selecting a number of bit metrics corresponding to a code rate according to encoding data bits for one path metric; 상기에서 선택한 비트 메트릭을 반전시키는 제2 과정과, A second process of inverting the selected bit metric; 각 경로 메트릭 간의 관계를 참고하여 상기에서 각기 선택된 비트 메트릭과 상기에서 반전된 비트 메트릭을 합산하여 다수의 경로 메트릭 각각마다 2개의 가지 메트릭을 구하는 제3 과정으로 수행함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 방법. The branch of the Viterbi decoder is performed by summing the bit metrics selected above and the inverted bit metrics with reference to the relationship between the path metrics to obtain two branch metrics for each of the plurality of path metrics. How metrics are calculated. 하나의 버터플라이 연산을 처리하는 2개의 ACS(Add-Compare-Select)가 하나의 PE(Processing Unit)를 구성한다고 가정할 때, 컨볼루션 부호(convolution code)화에 의해 결정되는 임의의 시점에서의 상태 천이에 대한 가지 메트릭을 버터플라이 연산으로 구하는 비터비 디코더에 있어서, Assuming that two Add-Compare-Selects (ACSs) processing one butterfly operation constitute one Processing Unit (PE), at any point in time determined by convolutional coding In a Viterbi decoder that obtains a branch metric for a state transition by a butterfly operation, 4개의 경로 메트릭에 대한 각각의 인코딩 데이터 비트를 구하는 인코딩 데이터 비트 연산 수단과, Encoded data bit calculating means for obtaining respective encoded data bits for four path metrics, 상기 4개의 인코딩 데이터 비트 각각에 대해 코드율에 대응하는 비트메트릭과 이를 반전한 비트메트릭을 구하는 비트 메트릭을 구하는 비트 메트릭 연산 수단과, Bit metric calculating means for obtaining a bit metric for obtaining a bit metric corresponding to a code rate and an inverted bit metric for each of the four encoded data bits; 상기 4개의 경로 메트릭 각각에 대해 비트 메트릭과 반전된 비트메트릭을 합산하여 각각의 가지 메트릭을 구하는 가지 메트릭 연산 수단을 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로. And branch metric calculating means for summing each bit metric and the inverted bit metric for each of the four path metrics to obtain each branch metric. 제6항에 있어서, 인코딩 데이터 비트 연산 수단은 The method of claim 6, wherein the encoding data bit calculating means PE 인덱스값을 제외한 하위 비트의 상태값((~)을 '00000'부터 '11111'까지 순차적으로 계수하는 카운터와,Status value of lower bit except PE index value (( To ) Is a counter that sequentially counts '00000' through '11111', 상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0, PE3의 인코딩 데이터 비트()를 구하는 제1 XOR 게이트와,Count value of the counter ( , , ) And the exclusive OR of the encoded data bits of PE0, PE3 ( A first XOR gate to obtain 상기 제1 XOR 게이트의 출력값을 반전시켜 PE1,PE2의 인코딩 데이터 비트()를 구하는 제1 인버터와,Encoding data bits of PE1 and PE2 by inverting the output value of the first XOR gate A first inverter for obtaining 상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0,PE1의 인코딩 데이터 비트()를 구하는 제2 XOR 게이트와,Count value of the counter ( , , ) And the exclusive OR of the encoded data bits of PE0, PE1 ( And a second XOR gate for 상기 제2 XOR 게이트의 출력값을 반전시켜 PE2,PE3의 인코딩 데이터 비트()를 구하는 제2 인버터와,Inverts the output value of the second XOR gate so that the encoded data bits of PE2 and PE3 ( And a second inverter for obtaining 상기 카운터의 계수값(,,)을 배타적 논리합하여 PE0~PE3의 인코딩 데이터 비트()를 구하는 제3 XOR 게이트를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.Count value of the counter ( , , ) And the exclusive OR of the encoded data bits of PE0 to PE3 ( And a third XOR gate for obtaining < RTI ID = 0.0 > 제6항에 있어서, 비트 메트릭 연산 수단은 The method of claim 6, wherein the bit metric calculation means 수신 신호(, )의 각 비트를 각기 반전시키는 제3~제6 인버터와,Receive signal ( , Third to sixth inverters that invert each bit of 상기 제3 인버터의 출력 신호와 수신 신호()를 저장하여 인코딩 데이터 비트 "1"에 대응하는 수신 비트()를 출력하는 제1 버퍼와,The output signal and the reception signal of the third inverter ( ) And the receive bit corresponding to the encoded data bit " 1 " A first buffer for outputting 수신 신호()와 상기 제4~제6 인버터의 반전 신호를 저장하여 인코딩 데이터 비트 "0"에 대응하는 수신 비트()를 출력하는 제2 버퍼를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.Receive signal ( ) And a reception bit corresponding to encoding data bit "0" by storing the inverted signals of the fourth to sixth inverters. And a second buffer for outputting C), wherein the branch metric calculation circuit of the Viterbi decoder is configured. 제6항에 있어서, 가지 메트릭 연산 수단은 The method of claim 6, wherein the branch metric calculating means 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제1 멀티플렉서와,Encoding data bits ( According to the bit metric ( ) ( A first multiplexer that selects one of 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제2 멀티플렉서와,Encoding data bits ( According to the bit metric ( ) ( A second multiplexer that selects one of 인코딩 데이터 비트()에 따라 비트 메트릭()()중 하나를 선택하는 제3 멀티플렉서와,Encoding data bits ( According to the bit metric ( ) ( A third multiplexer that selects one of 상기 제1~제3 멀티플렉서에서 각기 선택되는 비트 메트릭을 반전시키는 제7~제9 인버터와, A seventh to ninth inverters for inverting bit metrics selected from the first to third multiplexers, respectively; 상기 제1~제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제1 덧셈기와,The bit metrics in the first to third multiplexers are summed to form branch metrics ( A first adder for outputting 상기 제7~제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제2 덧셈기와,The bit metrics in the seventh to ninth inverters are summed to form branch metrics ( A second adder that outputs 상기 제7 인버터와 제2,제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제3 덧셈기와,A branch metric is obtained by summing bit metrics of the seventh inverter and the second and third multiplexers. With a third adder that outputs 상기 제1 멀티플렉서와 제8,제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제4 덧셈기와,A branch metric is obtained by summing bit metrics of the first multiplexer and the eighth and ninth inverters. With a fourth adder that outputs 상기 제7,제8 인버터와 제3 멀티플렉서에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제5 덧셈기와,A branch metric is obtained by summing bit metrics of the seventh and eighth inverters and the third multiplexer. With a fifth adder that outputs 상기 제1,제2 멀티플렉서와 제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제6 덧셈기와,A branch metric is obtained by summing bit metrics of the first and second multiplexers and the ninth inverter. A sixth adder for outputting 상기 제1,제3 멀티플렉서와 제8 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제7 덧셈기와,A branch metric is obtained by summing bit metrics of the first and third multiplexers and the eighth inverter. With a seventh adder that outputs 상기 제2 멀티플렉서와 제7,제9 인버터에서의 비트 메트릭을 합산하여 가지 메트릭()을 출력하는 제8 덧셈기를 구비하여 구성함을 특징으로 하는 비터비 디코더의 가지 메트릭 계산 회로.A branch metric is obtained by summing bit metrics of the second multiplexer and the seventh and ninth inverters. And an eighth adder for outputting a), wherein the branch metric calculation circuit of the Viterbi decoder is configured.
KR10-2002-0041675A 2002-07-16 2002-07-16 Method for computing branch metric in viterbi decoder and circuit thereof KR100531840B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0041675A KR100531840B1 (en) 2002-07-16 2002-07-16 Method for computing branch metric in viterbi decoder and circuit thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0041675A KR100531840B1 (en) 2002-07-16 2002-07-16 Method for computing branch metric in viterbi decoder and circuit thereof

Publications (2)

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

Family

ID=37316869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0041675A KR100531840B1 (en) 2002-07-16 2002-07-16 Method for computing branch metric in viterbi decoder and circuit thereof

Country Status (1)

Country Link
KR (1) KR100531840B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113839680B (en) * 2020-06-23 2024-04-02 瑞昱半导体股份有限公司 Decoding circuit and decoding method based on Viterbi algorithm

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010020012A (en) * 1999-08-31 2001-03-15 서평원 a Branch Metric Apparatus of the Viterbi Decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010020012A (en) * 1999-08-31 2001-03-15 서평원 a Branch Metric Apparatus of the Viterbi Decoder

Also Published As

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

Similar Documents

Publication Publication Date Title
US6445755B1 (en) Two-step soft output viterbi algorithm decoder using modified trace back
US5349608A (en) Viterbi ACS unit with renormalization
US5327441A (en) Method and circuit for decoding convolutional codes
JPH07273813A (en) Method and apparatus for generating soft symbol
JPH0722967A (en) Route storage device of viterbi decoder
JPH07221655A (en) Communication system and information processing method
US7131055B2 (en) Fast bit-parallel Viterbi decoder add-compare-select circuit
JPH10117149A (en) Trace back device/method for viterbi decoder
JPH0316046B2 (en)
US7234100B1 (en) Decoder for trellis-based channel encoding
US8055986B2 (en) Viterbi decoder and method thereof
US5450338A (en) Add-compare-select device
KR100737648B1 (en) Viterbi decoder and viterbi decoding method
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
US20070201586A1 (en) Multi-rate viterbi decoder
KR100531840B1 (en) Method for computing branch metric in viterbi decoder and circuit thereof
CN106209117B (en) Low-resource-consumption multi-parameter configurable Viterbi decoder
US6910177B2 (en) Viterbi decoder using restructured trellis
EP0807336B1 (en) Method for forming transition metrics and a receiver of a cellular radio system
US20050138535A1 (en) Method and system for branch metric calculation in a viterbi decoder
KR101134806B1 (en) Method for decoding code
CN116073952B (en) Quick parallel convolution coding and decoding method, system, equipment and medium based on MaPU architecture
JP3235333B2 (en) Viterbi decoding method and Viterbi decoding device
JP3348086B2 (en) Viterbi decoding device and Viterbi decoding method
Laddha et al. Implementation of Adaptive Viterbi Decoder through FPGA

Legal Events

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

Payment date: 20080926

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee