KR0169680B1 - Vitervi decoder - Google Patents

Vitervi decoder Download PDF

Info

Publication number
KR0169680B1
KR0169680B1 KR1019950061412A KR19950061412A KR0169680B1 KR 0169680 B1 KR0169680 B1 KR 0169680B1 KR 1019950061412 A KR1019950061412 A KR 1019950061412A KR 19950061412 A KR19950061412 A KR 19950061412A KR 0169680 B1 KR0169680 B1 KR 0169680B1
Authority
KR
South Korea
Prior art keywords
signal
latch
unit
signals
input
Prior art date
Application number
KR1019950061412A
Other languages
Korean (ko)
Other versions
KR970055633A (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 KR1019950061412A priority Critical patent/KR0169680B1/en
Publication of KR970055633A publication Critical patent/KR970055633A/en
Application granted granted Critical
Publication of KR0169680B1 publication Critical patent/KR0169680B1/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명은 비터비 복호기에 관한 것으로서, 본 발명의 비터비 복호기는 가지 길이 계산부(100), ACS부(200) 및 경로 저장부(300)로 구성된 일반적인 비터비 복호기에 있어서, 상기 ACS부(200)는 가산부(210)와 : 제1 래치부(220) : 비교 선택부(230) : 제2 래치부(24) : 쉬프트 변환부(250) : 제3 래치부(260) : 다중화부(270) : 및 제4 래치부(280)로 구성되어 있으며, 4-상태인 경우 비터비 복호기의 구성 블럭 중에 ACS부를 하나로 구현되도록 설계함으로써, ACS부를 특정 용도 집적 회로(ASIC)로 구현하는 경우에 칩의 면적을 줄일 수 있다는데 그 이점이 있다.The present invention relates to a Viterbi decoder, the Viterbi decoder of the present invention is a general Viterbi decoder composed of the branch length calculation unit 100, the ACS unit 200 and the path storage unit 300, the ACS unit ( 200 is an adder 210 and a first latch unit 220, a comparison selector 230, a second latch unit 24, a shift converter 250, a third latch unit 260, and a multiplexing unit. (270): and the fourth latch unit 280, and in the case of 4-state by designing to implement a single ACS unit of the component block of the Viterbi decoder, when implementing the ACS unit as a specific application integrated circuit (ASIC) This has the advantage that the chip area can be reduced.

Description

비터비 복호기Viterbi Decoder

제1도의 (a)와 (b)는 비터비 복호화를 위한 트렐리스도.(A) and (b) of FIG. 1 are trellis diagrams for Viterbi decoding.

제2도는 일반적인 비터비 복호기의 구성 블럭도.2 is a block diagram of a general Viterbi decoder.

제3도는 본 발명에 따른 비터비 복호기의 ACS부에 대한 블럭도.3 is a block diagram of an ACS unit of a Viterbi decoder according to the present invention.

제4도는 제3도에 도시된 쉬프트 변환부에 세부 블럭도.4 is a detailed block diagram of the shift conversion unit shown in FIG.

제5도는 4-상태 트렐리스도.5 is a four-state trellis diagram.

제6도는 제3도에 도시된 ACS 연산부의 타이밍도이다.FIG. 6 is a timing diagram of the ACS calculator shown in FIG.

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

200 : ACS부 210 : 가산부200: ACS unit 210: adder

210-1 : 제1 가산기 210-2 : 제2 가산기210-1: first adder 210-2: second adder

220 : 제1 래치부 220-1 : 제1 래치220: first latch portion 220-1: first latch

220-2 : 제2 래치 230 : 비교 선택부220-2: second latch 230: comparison selection unit

240 : 제2 래치부 250 : 쉬프트 변환부240: second latch portion 250: shift converting portion

250-1 : 제1 멀티플랙서 250-2 : 래치250-1: first multiplexer 250-2: latch

250-3 : 제2 멀티프랙서 260 : 제3 래치부250-3: second multiplexer 260: third latch unit

270 : 다중화부 270-1 : 제1 멀티플랙서270: multiplexer 270-1: first multiplexer

270-2 : 제2 멀티플랙서 280 : 제4 래치부270-2: second multiplexer 280: fourth latch portion

280-1 : 제1 래치 280-2 : 제2 래치280-1: first latch 280-2: second latch

본 발명은 비터비 복호기(Viterbi decoder)에 관한 것으로서, 특히 계산된 가지 길이 값(branch metrics)을 입력받아서 바로 전의 경로 길이(path metric) 값에 더하고 이때 서로 만나는 경로중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로길이 값이 작은 것만 선택하는 부분을 간단히 구현한 비터비 복호기에 관한 것이다.The present invention relates to a Viterbi decoder. In particular, the calculated branch metrics are input to the previous path metric value, and the path length value among the paths that meet each other is deleted. The Viterbi decoder simply implements the part that selects only the remaining path length value.

길쌈 복호화(Convolution decoding)는 길쌈 부호화 방식에 의해 부호화된 부호어 시퀀스를 복호화하여 부호화되기 전의 비트 시퀀스, 즉 메세지 비트 시퀀스를 재생시키는 것을 말한다.Convolution decoding refers to decoding a codeword sequence encoded by a convolutional coding scheme to reproduce a bit sequence, that is, a message bit sequence before being encoded.

길쌈 복호화 방식에서는 최대 근사 복호화 방식(MLH : maximum likelihood decoding)을 이용하는데, 최대 복호화 방식이라 함은 디지탈 신호가 전송 중에 전송로 상에서 오류가 발생한다는 가정하에 수신기에 수신된 시퀀스를 복호화하는 방식이다.In convolutional decoding, a maximum likelihood decoding (MLH) method is used. The maximum decoding method is a method of decoding a sequence received by a receiver under the assumption that an error occurs on a transmission line during transmission of a digital signal.

수신기에 반송파로 변조된 부호어, 즉 디지탈 신호가 입력되면 복조기에서 부호어 시퀀스를 복조하고 이 부호어 시퀀스가 복호기에 입력되면 이 부호어를 송신기에서 전송가능한 모든 부호어로 비교하고 이 비교치 중에서 가장 비슷한 비교 부호어를 선택해서 이 비교 부호어가 송신기에서 송신된 오류가 없는 부호어라고 가정하고 이 선택된 부호어에 의해 메세지 비트를 재생시키는 것이다. 이와 같이 수신된 부호어를 비교 부호어와 비교해서 가장 비슷한 것을 선택하여 복호화한다 해서 최대 근사 복호화 방식(MLH)이라고 한다.If a codeword modulated by a carrier, that is, a digital signal, is input to the receiver, the demodulator demodulates the codeword sequence, and when the codeword sequence is input to the decoder, the codeword is compared with all codewords that can be transmitted from the transmitter. A similar comparison codeword is selected to assume that the comparison codeword is an error free codeword transmitted from the transmitter and to reproduce the message bits by this selected codeword. The most similar decoding method (MLH) is referred to as the received codeword is compared with the comparison codeword to select and decode the most similar one.

최대 근사 복호화 방식(MLH)에 대해서 좀더 구체적으로 설명하면, 최대 근사 복호화 방식(MLH)은 입력되는 부호어 하나마다 복호화해서 메세지 비트를 1비트씩 전송하는 것이 아니고 일정한 길이를 가진 부호어, 즉 부호어 시퀀스의 일정한 길이를 모두 비교한 후 이중에 가장 비슷한 비교 부호어 시퀀스를 선택해서 이 비교 부호어 시퀀스에 해당하는 메세지 비트 시퀀스를 출력시킨다.In more detail, the maximum approximation decoding method MLH is a codeword having a predetermined length, that is, a code, that is not transmitted one bit after decoding each input code word. After comparing all lengths of a sequence, a sequence of the most similar comparison codewords is selected, and a message bit sequence corresponding to the sequence of comparison codewords is output.

따라서, 하나의 부호어 시퀀스를 모두 비교한 후에 한개의 비교 부호어 시퀀스를 선택할 때까지는 이 동안에 발생된 모든 정보를 기억하고 있어야 한다.Therefore, it is necessary to store all information generated during the comparison of one codeword sequence until one comparison codeword sequence is selected.

최대 근사 복호화 방식(MLH)을 설명하기 위해 송신기에는 1/2 부호 비율을 가진 부호기에 의해 메세지 비트가 부호화된다고 가정하자.To illustrate the maximum approximate decoding scheme (MLH), assume that the message bits are encoded by an encoder with a 1/2 code rate at the transmitter.

따라서, 부호기에서는 메세지 비트 1비트에 의해 2비트로 구성된 부호어를 출력시킨다.Therefore, the encoder outputs a code word composed of two bits by one message bit.

이 부호어로 구성된 부호어 시퀀스가 변조기에서 변조되어 전송로를 전송 중에 부호어 시퀀스를 구성하는 각각의 비트마다 서로 독립적으로 부가되는 잡음, 즉 백색 잡음(additive gaussian white noise : AGWN)이 부가된다고 하면 전송 부호어 시퀀스에 오류가 발생할 수 있게 된다. 따라서, 오류가 발생한 부호어 시퀀스를 그대로 복호화하면 메세지 비트에 오류가 발생한다. 지금 부호기의 시프트 레지스터의 상태가 000 이라면 입력 비트 내용에 따라 2가지 상태의 부호어를 출력시키는데 메세지 비트가 0이면 부호어는 00.1 이면 부호어는 11이 된다.If a codeword sequence composed of codewords is modulated by a modulator to add noise to each bit constituting a codeword sequence independently of each other during transmission, that is, adds additive gaussian white noise (AGWN). Errors can occur in the codeword sequence. Therefore, if the codeword sequence having an error is decoded as it is, an error occurs in the message bit. If the status of the shift register of the encoder is 000, the codeword of two states is output according to the input bit contents. If the message bit is 0, the codeword is 00.1, and the codeword is 11.

이 경우에는 메세지 비트 1에 의해 부호어 11이 출력됐다고 하면, 이 부호어 복호기에서 복호화할 때에 복호기에서 미리 부호기의 시프터 레지스터 상태를 인지하고 있으므로 전송로에서 디지탈 신호에 오류가 발생하지 않아 복호기 입력에 11이 들어오면 메세지 비트 1을 정확히 출력시킨다. 그런데, 디지탈 신호가 전송 중 오류가 발생하여 부호기의 출력 11이 01로 변이되어 복호기에 입력되면 복호기에서 01을 복호화할 수 없어 메세지 비트를 1로 재생시키지 못해 메세지 비트에 오류가 발생하게 된다.In this case, if the codeword 11 is output by message bit 1, since the decoder recognizes the shifter register state of the coder in advance when the codeword decoder decodes it, no error occurs in the digital signal in the transmission line. When 11 comes in, it outputs message bit 1 correctly. However, if an error occurs during transmission of a digital signal and the output 11 of the encoder is changed to 01 and input to the decoder, the decoder cannot decode 01 and thus cannot reproduce the message bit with 1, causing an error in the message bit.

또한, 만약 복호기에 입력된 부호어가 11이 아니고 00로 변이됐다고 하면 복호기는 메세지 비트를 0으로 간주하여 출력시킴으로 메세지 비트에 오류가 발생하게 된다. 따라서, 이것을 방지하기 위해 일정한 길이의 수신 부호어 시퀀스를 부호기에서 출력 가능한 모든 부호어, 즉 1/2 부호 비율에서는 00, 01, 10, 11의 4개 부호어로 비교해서 이중 가장 비슷한 비교 부호어 시퀀스를 선택하여 오류가 없는 수신 부호어 시퀀스라고 간주하여 이 비교 부호어 시퀀스에 해당하는 메세지 비트를 차례로 복호화해서 출력시킨다.Also, if the codeword input to the decoder is changed to 00 instead of 11, the decoder considers the message bit to be 0 and outputs an error in the message bit. Therefore, to prevent this, all received codeword sequences having a constant length are compared with all codewords that can be output from the encoder, that is, four codewords of 00, 01, 10, and 11 at a 1/2 code rate. Selects and decodes the message bits corresponding to this comparison codeword sequence in order to regard it as an error-free received codeword sequence.

따라서, 최대 근사 복호화 방식(MLH)은 일정한 길이의 수신 부호어 시퀀스를 수신해서 비교 부호어로 비교를 완료한 후 가장 비슷한 비교 부호어를 선택해서 복호화할 때까지 부호 시퀀스를 기억하고 있어야 한다.Therefore, the maximum approximation decoding method (MLH) must store the code sequence until the received codeword sequence having a predetermined length is completed and the comparison codeword is compared and the most similar comparison codeword is selected and decoded.

또한, 이 기간 중에 계속 입력되고 있는 수신 부호어를 기억하고 있어야 하므로 기억 용량이 커지고 비교가 완료될 때까지 비교 부호어 시퀀스(1/2 부호 비율에서는 4개의 비교 부호어가 있다)를 모두 기억하고 있어야 하므로 회로가 복잡해진다. 이와 같은 최대 근사 복호화 방식(MLH)의 복잡성을 개선한 방식이 바로 비터비 복호화(Viterbi decoding) 방식이다.In addition, since the received codeword which is continuously input during this period must be stored, all comparison codeword sequences (there are four comparison codewords at 1/2 code rate) until the storage capacity becomes large and the comparison is completed. This complicates the circuit. The Viterbi decoding method is a method of improving the complexity of the maximum approximate decoding method (MLH).

비터비 복호화(Viterbi decoding)방식은 상기 최대 근사 복호화 방식(MLH)을 기초해서 발전된 것이며 최대 근사 복호화 방식의 복잡성을 매우 감소시킨 것으로 1967년 비터비(Viterbi)에 의해 최초로 비터비 복호화 알고리즘이 개발, 분석되었으며, 비터비 복호화에 대한 효율적이고 실제적인 기법은 헬러(Heller)에 의해 최초로 제시되었다.The Viterbi decoding method was developed based on the maximum approximation decoding method (MLH), and greatly reduced the complexity of the maximum approximation decoding method. In Vietbi, the Viterbi decoding algorithm was first developed by An efficient and practical technique for Viterbi decoding was first presented by Heller.

비터비 복호화는 포워드 에러 정정(FEC : Forward Error Correcting) 길쌈 부호에 대한 최대 근사 복호화기법으로써, 통신 채널에서 높은 불규칙 오류(Random error) 정정 능력을 가짐으로써 위성 통신에 적합한 방식이다.Viterbi decoding is a maximum approximate decoding technique for Forward Error Correcting (FEC) convolutional codes, and has a high random error correction capability in a communication channel, which is suitable for satellite communication.

비터비 복호기의 오류 정정은 부호기에서 출력된 모든 부호어 시퀀스에서 수신된 부호어에 가장 근접한 부호어를 선택하므로써 이루어진다.Error correction of the Viterbi decoder is performed by selecting the codeword closest to the received codeword in all codeword sequences output from the encoder.

비터비 최대 근사 복호기의 가장 큰 장점으로는 N개의 메세지 비트를 복호화하는데 최대 근사 복호기에서와 같이 메세지 비트수에 의해 복호기의 동작이 지수 함수적으로 급격히 증가하지 않고 단지 N2K-1만큼만 증가하는데 있다.The biggest advantage of Viterbi's maximum approximation decoder is that it decodes N message bits. As with the maximum approximation decoder, the operation of the decoder does not increase exponentially with the number of message bits but only increases by N2 K-1 . .

즉, 메세지 비트수와는 선형적인 관계를 가지며 여기서 시프트 레지스터의 단수 K와는 지수 함수적 관계를 가지므로 K값을 많이 할 수 없으나 다행히 이 방식은 K값이 작아도 기능을 충분히 발휘할 수 있다.In other words, it has a linear relationship with the number of message bits and has an exponential relationship with the singular K of the shift register, so that many K-values cannot be used. Fortunately, this method can fully function even if the K-value is small.

비터비 복호화 알고리즘은 트렐리스도(trellis diagram)를 사용하여 최대 근사 복호화를 수행하는 알고리즘으로 다이나믹 프로그래밍의 일종이라고 할 수 있는데, 비터비 복호화 알고리즘은 어느 시점에서 서로 다른 경로를 가진 2개의 경로가 서로 만나면 이 2개의 경로에 대한 경로 길이(hamming distance)를 비교해서 경로 길이가 짧은, 즉 오류 발생 확률이 낮은 하나의 경로만 선택하고 이중 경로 길이(path metric)가 긴 것은 경로 기억(path memory)에서 지워버리는 것이다.The Viterbi decoding algorithm is an algorithm that performs maximum approximation decoding using trellis diagram. It is a kind of dynamic programming. In the Viterbi decoding algorithm, two paths having different paths are different at some point. When they meet, they compare the hamming distances of these two paths, so that only one path with a short path length, i.e. a low probability of error, and a long double path metric are path memory. It is erased from.

이때 남은 경로를 유지 경로(surving path)라고 한다. 유지 경로의 결정은 매 시점에서 수행되는데 이때마다 경로 길이가 긴 경로는 삭제시킴으로써 복호화의 복잡성을 피하고 기억 용량의 증가를 방지할 수 있다.At this time, the remaining path is called a surviving path. The determination of the maintenance path is performed at every point in time. In this case, the path having a long path length can be deleted to avoid the complexity of decryption and to increase the storage capacity.

이렇게 하여 어느 시점에서 맨처음 t1에서 수신된 부호어에 해당하는 가지(branch)가 현재 남은 각 경로에 공유되는데 이때에 최초로 t1의 가지 부호어를 복호화하여 메세지 비트의 최초 비트를 출력시킨다.In this way branch (branch) for the first codeword received at t 1 at which point a by decoding of codewords of the first t 1 At this time there is a shared each current remaining path and outputs the first bit of the message bit.

여기서, 최적의 경로를 선택하는 것은 최대 근사값을 가진 부호어를 선택하여 가는 것으로 1969년 오무라(Omura)는 비터비 알고리즘은 사실 최대 근사 알고리즘이라고 발표하기도 했다.Here, selecting the optimal path is selecting the codeword with the maximum approximation. In 1969, Omura announced that the Viterbi algorithm was actually the maximum approximation algorithm.

제1도의 (a)와 (b)는 비터비 복호화를 위한 트렐리스도를 나타낸 것으로서, 제1도의 (a)에 도시된 바와 같이 유한 상태 장치(Finite state machie)은 트렐리스를 통해서 어떠한 경로를 선택하고, 관찰되는 상태의 천이로 인해 시간 간격(k, k+1)의 가지 길이(branch metric) λ가 계산된다. 이때 최대 근사 경로는 알고리즘에 의하여 반복적으로(recursive) 계산된다.(A) and (b) of FIG. 1 show a trellis for Viterbi decoding, and as shown in (a) of FIG. 1, the finite state machie has no path through the trellis. And branch branch λ of the time interval k, k + 1 is calculated due to the transition of the observed state. The maximum approximate path is then calculated recursively by the algorithm.

즉, 복호화시에는 수신 신호와 대응하는 가지의 코드간 거리, 즉 가지 길이(branch metric) λ를 계산하게 되는데, 이 거리는 신호 판별의 기준이 되는 것으로 이를 메트릭(metric)이라고 한다. 메트릭은 경판정(hard decision) 복호의 경우에는 해밍 거리(hamming distance)가 되고, 연판정(soft decision) 복호의 경우에는 유클리디안 거리(Euclidean distance)가 된다.That is, during decoding, the distance between the code of the branch corresponding to the received signal, that is, the branch length λ, is calculated. This distance serves as a criterion for signal discrimination, which is called a metric. The metric is a hamming distance for hard decision decoding and an Euclidean distance for soft decision decoding.

제1도의 (b)를 참조하면, 이때 시간 k의 N노드들 각각에 대한 최적 경로를 계산하게 되는데, 노드 S1,K+1, S2,K+1의 새로운 경로 매트릭(path metric)λ1,K+1, λ2,K+1은 다음과 같다.Referring to (b) of FIG. 1, an optimal path for each of the N nodes at time k is calculated, and a new path metric lambda of nodes S 1, K + 1 and S 2, K + 1 is calculated. 1, K + 1 and λ2 , K + 1 are as follows.

λ1,K+1=maxium(λ11.K1.K, λ12.K2.K) λ 1, K + 1 = maxium (λ 11.K + λ 1.K, λ 12.K + λ 2.K)

λ2,K+1=maxium(λ21.K1.K, λ22.K2.K) λ 2, K + 1 = maxium (λ 21.K + λ 1.K, λ 22.K + λ 2.K)

제1도의 (b)에서 D(survivor depth)는 경로들을 역추적(trace back)할 때, 매우 높은 확률로 합쳐지게(merge) 되는 시간 단계의 수를 의미하며, 실제 구현시 비터비 알고리즘의 복호화 잠재력을 좌우하게 된다.In (b) of FIG. 1, D (survivor depth) refers to the number of time steps that are merged with a very high probability when trace back paths, and the decoding of the Viterbi algorithm in actual implementation. The potential is determined.

제2도는 일반적인 비터비 복호기의 구성 블럭도로서, 수신 데이타를 입력받아 각 가지(branch)에 대한 길이를 계산하는 가지 길이 계산부(100 : Branch Metrics Units); 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값(branch metrics)을 받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부(Adder Comparator Selector: 이하, ACS라 한다.)(200); 및 상기 ACS부(200)에서 선택된 유지 경로(survior)를 저장하는 경로 저장부(300)로 구성된다.2 is a block diagram of a general Viterbi decoder, the branch length calculation unit (100: Branch Metrics Units) for receiving the received data to calculate the length for each branch; Receive the calculated branch length value from the branch length calculation unit 100 and add it to the previous path length value, and delete the long path length value from the two paths that meet each other and only the remaining path length value is small. An ACS unit for selecting (Adder Comparator Selector: hereinafter referred to as ACS) 200; And a path storage unit 300 for storing a maintenance path selected by the ACS unit 200.

상기와 같이 구성된 비터비 복호기에 대한 기본적인 동작 원리를 살펴보면 다음과 같다.A basic operation principle of the Viterbi decoder configured as described above is as follows.

입력단으로 들어오는 데이타는 단계별로 연속해서 통과한다고 가정하자.Assume that data entering the input passes continuously in stages.

가지 길이 계산부(100)는 입력 데이타를 받아서 각 가지에 대한 길이 즉, 가지 길이(branch metric) λij.k를 계산하는데, 수신 부호어의 길이 즉, 부호기의 출력 부호어의 길이와 직접 관계가 있는 것으로 부호어의 구성 비트수가 많을수록 회로가 복잡해진다.The branch length calculating unit 100 receives the input data and calculates the length of each branch, that is, the branch length λ ij.k , which is directly related to the length of the received codeword, that is, the length of the output codeword of the encoder. The larger the number of configuration bits of the codeword, the more complicated the circuit becomes.

예를 들면, 부호어가 2비트로 구성되면 수신된 부호어 2비트를 비교하기 위한 비교 부호어는 22개 즉, 4개가 필요하고 4번 비교하는데 대해 부호어가 3비트로 구성되면 하나의 수신 부호어를 비교해서 가지 길이를 계산 하는데는 23개 즉, 8개의 비교 부호어가 필요하게 된다.For example, if a codeword is composed of 2 bits, a comparison codeword for comparing 2 bits of received codewords is required, that is, 2, or 4, and if a codeword is composed of 3 bits for 4 comparisons, one received codeword is compared. to branch to the calculated length is 23 words, it is necessary eoga eight comparison code.

즉, 3비트로 구성된 부호어가 전송 중에 다른 부호어로 바뀔 가능성이 7번 있으므로 하나의 부호어를 수신하는데 8번 비교해야 한다.That is, since a codeword consisting of 3 bits has 7 chances of being changed to another codeword during transmission, it must be compared 8 times to receive one codeword.

또한, 부호어 길이가 길어지면 부호어 길이가 짧을 때보다 가지 길이의 결과 값이 커지게 되는데 결국 가지 길이 값이 크다는 것은 이 가지 길이 값이 커진만큼 가지 길이를 기억하기 위한 기억 용량이 커져야 하므로 다음단의 ACS부(200)가 복잡해지게 된다.In addition, the longer the length of the codeword, the larger the resulting value of the branch length than the shorter the length of the codeword. After all, the larger the branch length value, the larger the storage capacity for storing the branch length as the branch length value becomes larger. The ACS unit 200 of the stage becomes complicated.

ACS부(200)에서는 가지 길이 계산부(100)에서 계산한 가지 길이 값을 받아서 바로 전의 경로 길이 값에 더하고, 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 유지 경로로서 기억시킨다.The ACS unit 200 receives the branch length value calculated by the branch length calculating unit 100 and adds the branch length value to the previous path length value. At this time, the long path length value is deleted from the two paths that meet each other and the remaining path length value is small. Only thing is memorized as a maintenance path.

이때 ACS 기능은 2K-1쉬프트 레지스터(도시하지 않음) 상태의 각각, 즉 각 노드(node) 점에서 행해지는데 복호화 속도가 높은 것이 요구될 때에는 ACS 장치를 2K-1개, 즉 각 노드점마다 별도로 설치해야 하므로 복호화 속도가 높은 경우에는 ACS 장치가 복잡해진다.The ACS feature is 2 K-1 shift register (not shown) conditions respectively, that is the ACS unit 2 K-1 when I is performed in that each node (node) is required to have a high decoding speed dog, that is that each node Each separate installation requires a high decoding speed, which complicates the ACS device.

따라서, 복호기를 간단히 하려면 ACS 장치가 이상적으로 동작하고 ACS 장치를 구성하는 회로가 적정하게 설계되어야 한다.Therefore, in order to simplify the decoder, the ACS device should be ideally operated and the circuit constituting the ACS device should be properly designed.

이와 같이 ACS 장치에서 선택된 유지 경로들이 경로 저장부(300)에 저장되었다가 경로 저장부(300)에서 경로 길이 값이 가장 작은 경로가 선택되어 이 경로에 의해 메세지를 출력시킬 때에 ACS부(200)로부터 이에 대한 경로 선택 신호를 받아 해당 경로의 부호어 시퀀스를 복호화해서 메세지 비트를 출력시킨다.As described above, when the maintenance paths selected by the ACS apparatus are stored in the path storage unit 300 and the path having the smallest path length value is selected in the path storage unit 300 to output a message by the path, the ACS unit 200 Receives a path selection signal for this, decodes the codeword sequence of the corresponding path, and outputs a message bit.

고화질 텔레비젼(HDTV : High Definition Television)에 있어서 TCM(Trellis Coded Modulation) 신호의 복호를 위해서는 비터비 알고리즘이 사용되며, TCM 복호기 내부에는 비터비 알고리즘을 수행하는 비터비 복호기가 존재하는데, 이러한 비터비 복호기를 설계할 때 상태(State)에 따른 각각의 복호기가 필요한다. 즉, 4-상태 및 8-상태에 대한 각각의 복호기가 필요하다.A Viterbi algorithm is used for decoding Trellis Coded Modulation (TCM) signals in high definition television (HDTV), and there is a Viterbi decoder that performs the Viterbi algorithm inside the TCM decoder. When designing the, we need each decoder according to state. That is, separate decoders for 4-state and 8-state are required.

4-상태인 경우에는 제2도에 도시된 일반적인 비터비 복호기의 ACS부(200)가 4개가 필요하며, 만약 4-상태를 4개의 ACS부(200)로 구현하게 되면 특정 용도 집적 회로(Application Specific Integrated Circuit : ASIC)로 설계할 때 칩의 면적이 커진다는 문제점이 있었다.In the four-state case, four ACS units 200 of the general Viterbi decoder shown in FIG. 2 are required. When designing with a specific integrated circuit (ASIC), there is a problem that the area of the chip increases.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 4-상태인 경우에 있어서, 계산된 가지 길이 값(branch metrics)을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS 부분을 간단히 구현하므로써 칩의 면적을 줄인 비터비 복호기를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, in the four-state case, the calculated two branch length value (branch metrics) is added to the previous path length value and two paths that meet each other at this time The goal is to provide a Viterbi decoder that reduces the area of the chip by simply implementing an ACS section that deletes the long path length value and selects only the remaining path length value.

상기와 같은 목적을 달성하기 위한 본 발명의 비터비 복호기는, 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부, 상기 가지 길이 계산부로부터 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부 및 상기 ACS부에서 선택된 유지 경로를 저장하는 경로 저장부로 구성된 일반적인 비터비 복호기에 있어서, 상기 ACS부가 제1 입력 신호와 제2 출력 신호를 입력받아 두 신호를 가산하고 제2 입력 신호와 제1 출력 신호를 입력받아 두 신호를 가산하고 제2입력신호와 제1출력신호를 입력받아 두 신호를 가산하는 가산부와: 상기 가산부로부터의 두 가산 신호를 래치하는 제1 래치부: 상기 제1 래치부로부터의 두 입력신호를 비교하여 선택하는 비교 선택부 : 상기 비교 선택부로부터 선택 신호를 래치하는 제2 래치부 : 상기 제2 래치부로부터의 신호를 입력받아 제어 신호에 따라 출력 신호를 내보내는 쉬프트 변환부 : 상기 쉬프트 변환부로부터의 입력 신호를 래치하는 제3 래치부 : 입력되는 각각의 두 신호 중에서 제어 신호에 따라 한 신호씩을 선택하여 각각 신호를 출력하는 다중화부 : 및 상기 다중화부로부터 각각 입력되는 신호를 래치한 후 제1 출력 신호와 제2 출력신호를 출력하고 또한 이 출력 신호들을 상기 가산부로 각각 출력하는 제4 래치부로 구성된 것을 특징으로 한다.Viterbi decoder of the present invention for achieving the above object, the branch length calculation unit for receiving the received data to calculate the length for each branch, the branch length value calculated from the branch length calculation unit immediately before A general Viterbi decoder consisting of an ACS unit which adds a path length value to the path length value and deletes the long path length value from the two paths which meet each other, and selects only the remaining path length value is small, and a path storage unit which stores the maintenance path selected by the ACS unit. The ACS unit receives the first input signal and the second output signal, adds two signals, receives the second input signal and the first output signal, adds the two signals, and adds the second input signal and the first output signal. An adder for inputting two signals, the first latch unit for latching two addition signals from the adder; A comparison selector for comparing and selecting two input signals from the second selector: a second latch unit for latching a selection signal from the comparison selector: a shift conversion for receiving a signal from the second latch unit and outputting an output signal according to a control signal A third latch unit for latching an input signal from the shift converter; a multiplexer which selects one signal according to a control signal from each of the two input signals and outputs a signal respectively; And a fourth latch unit for outputting a first output signal and a second output signal after latching the signal, and outputting the output signals to the adder, respectively.

이하, 첨부된 도면을 참조하여 본 발명에 대하여 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail with respect to the present invention.

제3도는 본 발명에 따른 비터비 복호기의 ACS부에 대한 구성 블럭도로서, 수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부(100 : 제2도). 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS 부(200) 및 상기 ACS부(200)에서 선택된 유지 경로를 저장하는 경로 저장부(300 : 제2도)로 구성된 일반적인 비터비 복호기에 있어서, 상기 ACS부(200)는 제1 입력신호와 제2 출력 신호를 입력받아 두 신호를 가산하는 가산부(210)와 : 상기 가산부(210)로부터의 두 가산 신호를 래치하는 제1 래치부(220) : 상기 제1 래치부(220)로부터의 두 입력 신호를 비교하여 선택하는 비교 선택부(230 : Compare and Select : C/S) : 상기 비교 선택부(230)로부터의 신호를 입력받아 제어 신호(CI)에 따라 출력신호를 내보내는 쉬프트 변환부(250 : Shift Exchange Unit : SEU) : 상기 쉬프트 변환부(250)로부터의 입력 신호를 래치하는 제3 래치부(260) : 입력되는 각각의 두 신호 중에서 제어 신호(C2)에 따라 한 신호씩을 선택하여 각각 신호를 출력하는 다중화부(270) : 및 상기 다중화부(270)로부터 각각 입력되는 신호를 래치한 후 제1 출력 신호와 제2 출력 신호를 출력하고, 또한 이 출력 신호들을 상기 가산부(210)로 각각 출력하는 제4 래치부(280)로 구성된다.FIG. 3 is a block diagram of an ACS unit of a Viterbi decoder according to the present invention. The branch length calculator 100 receives the received data and calculates the length of each branch. ACS which receives the calculated branch length value from the branch length calculating unit 100 and adds the calculated branch length value to the previous path length value, and deletes the long path length value from the two paths that meet each other and selects only the remaining path length value is small. In the general Viterbi decoder including a path storage unit 300 (FIG. 2) storing a maintenance path selected by the ACS unit 200 and the ACS unit 200, the ACS unit 200 includes a first input signal and a first input signal. An adder 210 for receiving two output signals and adding two signals; a first latch unit 220 for latching two addition signals from the adder 210: from the first latch unit 220; Compare selector 230 for comparing two input signals and selecting them: A shift converter for receiving a signal from the compare selector 230 and outputting an output signal according to a control signal CI. (250: Shift Exchange Unit: SEU): Up Third latch unit 260 for latching an input signal from shift converter 250: Multiplexer 270 that selects one signal from each of the two input signals according to control signal C2 and outputs the respective signals And a fourth latch unit for latching signals input from the multiplexer 270 and then outputting a first output signal and a second output signal, and outputting the output signals to the adder 210, respectively. 280).

여기서, 상기 가산부(210)는 제1 입력 신호와 제4 래치부(280)로부터의 제2 출력신호를 입력받아 두 신호에 대해 가산하는 제1 가산기(210-1) : 및 제2 입력 신호와 상기 제4 래치부(280)로부터의 제1 출력신호를 입력받아 두 신호에 대해 가산하는 제2 가산기(210-2)로 구성된다.Here, the adder 210 receives a first input signal and a second output signal from the fourth latch unit 280, and adds the first adder 210-1 to the two signals, and the second input signal. And a second adder 210-2 that receives the first output signal from the fourth latch unit 280 and adds the two output signals.

또한, 상기 제1 래치부(220)는 상기 가산부(210)로부터의 제1 가산 신호를 입력받아 래치한 후 출력하는 제1 래치(220-1) : 및 상기 가산부(210)로부터의 제2 가산 신호를 입력받아 래치한 후 출력하는 제2 래치(220-2)로 구성된다.In addition, the first latch unit 220 receives and latches a first addition signal from the adder 210 and then outputs the first latch 220-1: and the first latch unit 220 from the adder 210. It consists of a second latch 220-2 that receives the two addition signals and latches them.

그리고, 상기 다중화부(270)는 상기 쉬프트 변환부(250)로부터의 신호와 상기 제4 래치부(280)로부터의 제1 출력 신호를 입력받아 제어 신호(C2)에 따라 두 신호 중 한 신호를 선택하는 제1 멀티플렉서(270-1) : 및 상기 제3 래치부(260)로부터의 신호와 상기 제4 래치부(280)로부터의 제2 출력 신호를 입력받아 제어 신호(C2)에 따라 두 신호 중 한 신호를 선택하는 제2 멀티플렉서(270-2)로 구성된다.The multiplexer 270 receives a signal from the shift converter 250 and a first output signal from the fourth latch unit 280 to receive one of two signals according to a control signal C2. The first multiplexer 270-1 to select: and a signal from the third latch unit 260 and a second output signal from the fourth latch unit 280 to receive two signals according to the control signal C2. And a second multiplexer 270-2 for selecting one of the signals.

상기 제4 래치부(280)는 상기 다중화부(270)로부터의 제1 선택 신호를 입력받아 래치한 후 제1 출력 신호를 출력하는 제1 래치(280-1) : 및 상기 다중화부(270)로부터의 제2 선택 신호를 입력받아 래치한 후 제2 출력신호를 출력하는 제2 래치(280-2)로 구성된다.The fourth latch unit 280 receives and latches a first selection signal from the multiplexer 270 and then outputs a first output signal. The first latch 280-1 and the multiplexer 270. And a second latch 280-2 which receives the second selection signal from the second latch and outputs the second output signal.

제4도는 제3도에 도시한 쉬프트 변환부에 세부 블럭도로서, 상기 쉬프트 변환부(250)는 상기 제2 래치부(240 : 제3도에 도시)로부터의 입력 신호와 피드백된 후단의 래치 신호를 입력받아 제어 신호가 하이인 경우에는 상기 제2 래치부(240 : 제3도에 도시)로부터의 입력 신호가 출력되고 제어 신호가 로우인 경우에는 피드백된 후단의 래치 신호를 출력하는 제1 멀티플렉서(250-1)와 : 상기 제1 멀티플렉서(250-1)로부터의 출력 신호를 입력받아 래치한 후 출력하는 래치(250-2) : 및 상기 제2 래치부(240 : 제3도에 도시)로부터의 입력 신호와 상기 래치(250-2)로부터의 입력 신호 중에서 제어 신호가 하이인 경우에는 상기 제2 래치부(240 : 제3도에 도시)로부터의 입력신호가 출력되고 제어 신호가 로우인 경우에는 상기 래치(250-2)로부터의 입력 신호가 출력되는 제2 멀티플렉서(250-3)로 구성된다.4 is a detailed block diagram of the shift converter shown in FIG. 3, wherein the shift converter 250 includes an input signal from the second latch unit 240 (shown in FIG. In response to the signal being received, when the control signal is high, an input signal from the second latch unit 240 (shown in FIG. 3) is output, and when the control signal is low, the first signal outputting the feedback signal of the rear stage fed back. The multiplexer 250-1 and: A latch 250-2 for receiving and latching an output signal from the first multiplexer 250-1 and: The second latch unit 240 is illustrated in FIG. 3. If the control signal is high among the input signal from the input signal from the latch 250-2 and the input signal from the second latch unit 240 (shown in FIG. 3) is output and the control signal is low If is, the second multiple which the input signal from the latch 250-2 is output It consists of the lexer 250-3.

이어서, 상기와 같이 구성되는 본 발명의 동작과 효과를 살펴보면 다음과 같다.Next, look at the operation and effect of the present invention configured as described above are as follows.

HDTV에서 고속 전송을 위해 복호기를 특정 용도 집적회로(ASIC)로 구현할 필요가 있는데, 이러한 복호기의 블럭 중에서 가장 문제가 되는 부분이 바로 ACS 부분이며, 그 이유는 ACS부에 피드백이 존재하기 때문이다.It is necessary to implement a decoder as an application specific integrated circuit (ASIC) for high-speed transmission in HDTV, the most problematic part of the block of the decoder is the ACS part, because the feedback is present in the ACS unit.

제3도에 도시된 본 발명에 따른 비터비 복호기의 ACS부에 대한 블럭도는 ACS부를 최소로 사용하기 위한 설계로서, ACS부를 줄임으로써 발생되는 타이밍 지연은 파이프 라인으로 해결이 가능하고, 또한 고속으로 동작하기 때문에 타이밍 지연은 크게 문제가 되지 않는다.The block diagram of the ACS unit of the Viterbi decoder according to the present invention shown in FIG. 3 is designed to minimize the use of the ACS unit. The timing delay generated by reducing the ACS unit can be solved by a pipeline, Timing delay is not a problem because

제3도 및 제4도를 참조하여 동작을 살펴보면, 먼저 4-상태를 고려한 매트릭스를 다음과 같이 정한다.Referring to FIG. 3 and FIG. 4, the operation will be described. First, a matrix considering the four-state is determined as follows.

매트릭스 S 는 0번 상태부터 3번 상태가 제3도의 ACS부(200)에서 차례로 수행되는 스케쥴링 매트릭스이다.The matrix S is a scheduling matrix in which states 0 to 3 are sequentially performed in the ACS unit 200 of FIG. 3.

제5도는 4-상태 트렐리스도로서, 매트릭스 X는 제5도에 도시된 바와 같이 각 상태에서 다음 단계의 상태로 가는 과정에서 2가지의 경로가 있다는 것을 나타내며, 제3도에 도시된 바와 같이 제1 입력 신호(0 1 2 3)는 가산부(210)의 제1 가산기(210-1)로 입력되고, 제2 입력 신호(0 1 2 3)는 가산부(210)의 제2 가산기(210-2)로 입력된다.FIG. 5 is a four-state trellis diagram, where matrix X indicates that there are two paths in the process from each state to the next state as shown in FIG. 5, and as shown in FIG. The first input signal 0 1 2 3 is input to the first adder 210-1 of the adder 210, and the second input signal 0 1 2 3 is input to the second adder 210 of the adder 210. -2) is entered.

매트릭스 Y는 경로 길이(path metric)로서 제3도에 도시된 바와 같이, 제1 출력 신호(2 3 3 3)는 가산부(210)의 제2 가산기(210-2)로 입력되고 제2 출력 신호(0 0 1 1)는 가산부(210)의 제1 가산기(210-1)로 입력된다.The matrix Y is a path metric, as shown in FIG. 3, where the first output signal 2 3 3 3 is input to the second adder 210-2 of the adder 210 and the second output. The signal 0 0 1 1 is input to the first adder 210-1 of the adder 210.

가산부(210)의 제1 가산기(210-1)에서는 가지 길이(branch metric)에 해당되는 제1 입력 신호(0 1 2 3)와 경로 길이(path metric)에 해당되는 제2 출력 신호(0 0 1 1)를 가산하여 제1 래치부(220)의 제1 래치(220-1)를 거쳐 결과값(x)을 비교 선택부(230)로 입력시킨다.In the first adder 210-1 of the adder 210, a first input signal 0 1 2 3 corresponding to a branch metric and a second output signal 0 corresponding to a path metric 0 1 1) is added, and the result value x is input to the comparison selector 230 through the first latch 220-1 of the first latch unit 220.

가산부(210)의 제2 가산기(210-2)에서는 가지 길이(branch metric)에 해당되는 제2 입력 신호(0 1 2 3)와 경로 길이(path metric)에 해당되는 제1 출력 신호(2 2 3 3)를 가산하여 제1 래치부(220)의 제2 래치(220-2)를 거쳐 결과값(y)를 비교 선택부(230)로 입력시킨다.In the second adder 210-2 of the adder 210, a second input signal 0 1 2 3 corresponding to a branch metric and a first output signal 2 corresponding to a path metric are included. 2 3 3) is added, and the result value y is input to the comparison selector 230 through the second latch 220-2 of the first latch unit 220.

비교 선택부(230)에서는 입력된 두 결과값(x, y)을 비교한 후 선택하여 제2 래치부(240)을 거쳐 쉬프트 변환부(250)로 입력시킨다.The comparison selector 230 compares the two input result values (x, y), selects them, and inputs them to the shift converter 250 via the second latch unit 240.

4타임 단위로 한 사이클이 실행되므로 매 4타임마다 같은 출력이 적절히 출력되어 다음 단계의 경로 길이(path metric) 입력으로 이용되도록 하기 위해 버퍼 역할을 하는 래치와, 멀티플렉서 및 쉬프트 변환부를 이용한다.One cycle is performed in four time units, so that the same output is properly output every four time and used as a buffer, multiplexer and shift converter to serve as a path metric input for the next stage.

쉬프트 변환부(250)의 제1 멀티플렉서(250-1)에서는 상기 제2 래치부(240)로부터의 입력 신호와 피드백된 후단의 래치 신호를 입력받아 제어 신호(C1)가 하이인 경우에는 상기 제2 래치부(240)로부터의 입력 신호가 출력되고 제어신호(C1)가 로우인 경우에는 피드백된 후단의 래치 신호를 출력하며, 쉬프트 변환부(250)의 래치(250-2)에서는 상기 제1 멀티플랙서(250-1)로부터의 출력 신호를 입력받아 래치한 후 출력하고, 쉬프트 변환부(250)의 제2 멀티플렉서(250-3)에서는 상기 제2 래치부(240)로부터의 입력 신호와 상기 래치(250-2)로부터의 입력 신호 중에서 제어 신호가 하이인 경우에는 상기 제2 래치부(240)로부터의 입력 신호가 출력되고 제어 신호가 로우인 경우에는 상기 래치(250-2)로부터의 입력 신호가 출력된다.The first multiplexer 250-1 of the shift converter 250 receives the input signal from the second latch unit 240 and the latch signal of the rear end fed back, and when the control signal C1 is high, the first multiplexer 250-1. When the input signal from the second latch unit 240 is output and the control signal C1 is low, the latch signal of the fed back stage is output. The latch 250-2 of the shift converter 250 outputs the first signal. The output signal from the multiplexer 250-1 is received and latched and then output. The second multiplexer 250-3 of the shift converter 250 outputs an input signal from the second latch unit 240. If the control signal is high among the input signals from the latch 250-2, an input signal from the second latch unit 240 is output, and if the control signal is low, the signal from the latch 250-2 is output. The input signal is output.

상기 쉬프트 변환부(250)로부터 출력된 신호는 다중화부(270)로 직접 입력되기도 하고 제3 래치부(260)을 거쳐 다중화부(270)로 입력되기도 한다.The signal output from the shift converter 250 may be directly input to the multiplexer 270 or may be input to the multiplexer 270 via the third latch unit 260.

다중화부(270)의 제1 멀티플렉서(270-1)에서는 상기 쉬프트 변환부(250)로부터의 입력 신호와 상기 제4 래치부(280)로부터의 제1 출력 신호 중에서 제어 신호(C2)가 하이인 경우에는 상기 쉬프트 변환부(250)로부터의 입력신호를 선택하여 출력하며 제어 신호(C2)가 로우인 경우에는 피드백 신호인 상기 제4 래치부(280)로부터의 제1 출력 신호를 선택하여 출력하고, 다중화부(270)의 제2 멀티플렉서(270-2)에서는 상기 제3 래치부(260)로부터의 입력신호와 상기 제4 래치부(280)로부터의 제2 출력 신호 중에서 제어 신호(C2)가 하이인 경우에는 상기 제3 래치부(260)로부터의 입력 신호를 선택하여 출력하고 제어 신호(C2)가 로우인 경우에는 피드백 신호인 상기 제4 래치부(280)로부터의 제2 출력 신호를 선택하여 출력한다.In the first multiplexer 270-1 of the multiplexer 270, the control signal C2 is high among the input signal from the shift converter 250 and the first output signal from the fourth latch unit 280. In this case, the input signal from the shift converter 250 is selected and output. When the control signal C2 is low, the first output signal from the fourth latch unit 280 that is a feedback signal is selected and output. In the second multiplexer 270-2 of the multiplexer 270, the control signal C2 is output from the input signal from the third latch unit 260 and the second output signal from the fourth latch unit 280. If it is high, the input signal from the third latch unit 260 is selected and outputted. If the control signal C2 is low, the second output signal from the fourth latch unit 280, which is a feedback signal, is selected. To print.

제4 래치부(280)의 제1 래치(280-1)에서는 상기 다중화부(270)로부터의 제1 선택 신호를 입력 받아 래치한 후 제1 출력 신호를 출력하고, 제4 래치부(280)의 제2 래치(280-2)에서는 상기 다중화부(270)로부터의 제2 선택 신호를 입력받아 래치한 후 제2 출력 신호를 출력한다.The first latch 280-1 of the fourth latch unit 280 receives and latches the first selection signal from the multiplexer 270, and then outputs a first output signal. The second latch 280-2 receives the second selection signal from the multiplexer 270, latches the second selection signal, and outputs a second output signal.

제6도는 제3도에 도시된 ACS 연산부의 타이밍도로서, CLK는 클럭 신호, x는 제1 래치부(220) 내의 제1 래치(220-1) 출력 신호, y는 제1 래치부(220) 내의 제2 래치(220-2) 출력 신호, z는 쉬프트 변환부(250)의 값, 1은 제3 래치부(260)의 값, m은 제4 래치부(280) 내의 제1 래치부(280-1) 값, n은 제4 래치부(280) 내의 제2 래치(280-2) 값, CI은 쉬프트 변환부(250)로 입력되는 제어 신호 및 C2는 다중화부(270)로 입력되는 제어 신호를 나타낸다.FIG. 6 is a timing diagram of the ACS calculator shown in FIG. 3, where CLK is a clock signal, x is a first latch 220-1 output signal in the first latch unit 220, and y is a first latch unit 220. ), The second latch 220-2 output signal, z is a value of the shift conversion part 250, 1 is a value of the third latch part 260, and m is a first latch part in the fourth latch part 280. (280-1) value, n is the value of the second latch 280-2 in the fourth latch unit 280, CI is the control signal input to the shift converter 250 and C2 is input to the multiplexer 270 Indicates a control signal.

이상에서 서술한 바와 같이 본 발명에 따르면, 4-상태인 경우 비터비 복호기의 구성 블럭 중에서 ACS부를 하나로 구현되도록 설계함으로써, ACS부를 특정 용도 집적 회로(ASIC)로 구현하는 경우에 칩의 면적을 줄일 수 있다는데 그 효과가 있다.As described above, according to the present invention, the ACS unit is designed to be implemented as one of the component blocks of the Viterbi decoder in the four-state state, thereby reducing the chip area when implementing the ACS unit as an application specific integrated circuit (ASIC). It can work.

Claims (7)

수신 데이타를 입력받아 각 가지에 대한 길이를 계산하는 가지 길이 계산부(100), 상기 가지 길이 계산부(100)로부터의 계산된 가지 길이 값을 입력받아서 바로 전의 경로 길이 값에 더하고 이때 서로 만나는 두개의 경로 중에서 경로 길이 값이 긴 것을 삭제하고 나머지 경로 길이 값이 작은 것만 선택하는 ACS부(200) 및 상기 ACS부(200)에서 선택된 유지 경로를 저장하는 경로 저장부(300)로 구성된 일반적인 비터비 복호기에 있어서, 상기 ACS부(200)가 제1 입력 신호와 제2 출력 신호를 입력받아 두 신호를 가산하고 제2 입력 신호와 제1 출력 신호를 입력받아 두 신호를 가산하는 가산부(210)와 : 상기 가산부(210)로부터의 두 가산 신호를 래치하는 제1 래치부(220) : 상기 제1 래치부(220)로부터의 두 입력 신호를 비교하여 선택하는 비교 선택부(230) : 상기 비교 선택부(230)로부터의 선택 신호를 래치하는 제2 래치부(24) : 상기 제2 래치부(24)로부터의 신호를 입력받아 제어 신호(CI)에 따라 출력 신호를 내보내는 쉬프트 변환부(250) : 상기 쉬프트 변환부(250)로부터의 입력 신호를 래치하는 제3 래치부(260) : 입력되는 각각의 두 신호 중에서 제어 신호(C2)에 따라 한 신호씩을 선택하여 각각 신호를 출력하는 다중화부(270): 및 상기 다중화부(270)로부터 각각 입력되는 신호를 래치한 후 제1 출력 신호와 제2 출력 신호를 출력하고, 또한 이 출력 신호들을 상기 가산부(210)로 각각 출력하는 제4 래치부(280)로 구성된 것을 특징으로 하는 비터비 복호기.Branch length calculation unit 100 that receives the received data and calculates the length for each branch, receives the calculated branch length value from the branch length calculation unit 100 and adds to the previous path length value and two at this time A general Viterbi consisting of an ACS unit 200 for deleting a long path length value among the paths of the path and selecting only the remaining path length value and a path storage unit 300 for storing a maintenance path selected by the ACS unit 200. In the decoder, the adder 210 receives the first input signal and the second output signal, adds two signals, and receives the second input signal and the first output signal, and adds the two signals. And: a first latch unit 220 for latching two addition signals from the adder 210; a comparison selector 230 for comparing and selecting two input signals from the first latch unit 220; Comparison selection unit (23 A second latch unit 24 for latching a selection signal from 0): a shift converter 250 for receiving a signal from the second latch unit 24 and outputting an output signal according to a control signal CI: Third latch unit 260 for latching an input signal from shift converter 250: Multiplexer 270 that selects one signal from each of the two input signals according to control signal C2 and outputs the respective signals And a fourth latch unit for latching signals input from the multiplexer 270 and then outputting a first output signal and a second output signal, and outputting the output signals to the adder 210, respectively. Viterbi decoder, characterized in that consisting of. 제1항에 있어서, 상기 가산부(210)가 제1 입력 신호와 상기 제4 래치부(280)로부터의 제2 출력 신호를 입력받아 두 신호에 대해 가산하는 제1 가산기(210-1) : 및 제2 입력 신호와 상기 제4 래치부(280)로부터의 제1 출력 신호를 입력받아 두 신호에 대해 가산하는 제2 가산기(210-2)로 구성된 것을 특징으로 하는 비터비 복호기.The first adder 210-1 of claim 1, wherein the adder 210 receives a first input signal and a second output signal from the fourth latch unit 280, and adds the two input signals to two signals. And a second adder (210-2) which receives a second input signal and a first output signal from the fourth latch unit (280) and adds the two input signals to the two signals. 제1항에 있어서, 상기 제1 래치부(220)가 상기 가산부(210)로부터의 제1 가산 신호를 입력받아 래치한 후 출력하는 제1 래치(220-1) : 및 상기 가산부(210)롭터의 제2 가산 신호를 입력받아 래치한 후 출력하는 제2 래치(220-2)로 구성된 것을 특징으로 하는 비터비 복호기.The first latch 220-1 of claim 1, wherein the first latch unit 220 receives and latches a first addition signal from the adder 210, and then outputs the latched first latch 220-1. And a second latch (220-2) for receiving and latching a second addition signal of the rotor and outputting the latched signal. 제1항에 있어서, 상기 쉬프트 변환부(250)가 상기 제2 래치부(240)로부터의 입력 신호와 피드백된 후단의 래치 신호를 입력받아 제어 신호가 하이인 경우에는 상기 제2 래치부(240)로부터의 입력 신호가 출력되고 제어 신호가 로우인 경우에는 피드백된 후단의 래치 신호를 출력하는 제1 멀티플렉서(250-1)와 : 상기 제1 멀티플렉서(250-1)로부터의 출력 신호를 입력받아 래치한 후 출력하는 래치(250-2) : 및 상기 제2 래치부(240)로부터의 입력 신호와 상기 래치(250-2)로 부터의 입력 신호 중에서 제어 신호가 하이인 경우에는 상기 제2 래치부(240)로부터의 입력 신호가 출력되고 제어 신호가 로우인 경우에는 상기 래치(250-2)로부터의 입력 신호가 출력되는 제2 멀티플렉서(250-3)로 구성된 것을 특징으로 하는 비터비 복호기.2. The second latch unit 240 of claim 1, wherein the shift converter 250 receives the input signal from the second latch unit 240 and the latch signal of the rear end fed back to the second latch unit 240 when the control signal is high. When the input signal is outputted from the control panel and the control signal is low, the first multiplexer 250-1 outputting the feedback latch signal and the output signal from the first multiplexer 250-1 are received. A latch 250-2 output after being latched: and a second latch when a control signal is high among an input signal from the second latch unit 240 and an input signal from the latch 250-2. And a second multiplexer (250-3) outputting the input signal from the latch (250-2) when the input signal from the unit (240) is output and the control signal is low. 제1항에 있어서, 상기 다중화부(270)가 상기 쉬프트 변환부(250)로부터의 신호와 상기 제4 래치부(280)로부터의 제1 출력 신호를 입력받아 제어 신호(C2)에 따라 두 신호 중 한 신호를 선택하는 제1 멀티플렉서(270-1) : 및 상기 제3 래치부(260)로부터의 상기 제4 래치부(280)로부터의 제2 출력 신호를 입력 받아 제어신호(C2)에 따라 두 신호 중 한 신호를 선택하는 제2 멀티플렉서(270-2)로 구성된 것을 특징하는 비터비 복호기.2. The signal of claim 1, wherein the multiplexer 270 receives a signal from the shift converter 250 and a first output signal from the fourth latch unit 280, according to a control signal C2. A first multiplexer 270-1 for selecting one of the signals; and a second output signal from the fourth latch unit 280 from the third latch unit 260 according to the control signal C2. A Viterbi decoder comprising a second multiplexer (270-2) for selecting one of two signals. 제1항에 있어서, 상기 제4 래치부(280)가 상기 다중화부(270)로부터의 제1 선택 신호를 입력받아 래치한 후 제1 출력 신호를 출력하는 제1 래치(280-1) : 및 상기 다중화부(270)로부터의 제2 선택 신호를 입력 받아 래치한 후 제2 출력 신호를 출력하는 제2 래치(280-2)로 구성된 것을 특징으로 하는 비터비 복호기.The first latch 280-1 of claim 1, wherein the fourth latch unit 280 receives and latches a first selection signal from the multiplexer 270 and then outputs a first output signal. And a second latch (280-2) configured to receive and latch a second selection signal from the multiplexer (270) and output a second output signal. 제1항에 있어서, 상기 ACS부(200)의 스케쥴링 매트릭스가According to claim 1, wherein the scheduling matrix of the ACS unit 200 상기와 같은 매트릭스로 이루어진 것을 특징으로 하는 비터비 복호기.Viterbi decoder, characterized in that consisting of the matrix as described above.
KR1019950061412A 1995-12-28 1995-12-28 Vitervi decoder KR0169680B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950061412A KR0169680B1 (en) 1995-12-28 1995-12-28 Vitervi decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950061412A KR0169680B1 (en) 1995-12-28 1995-12-28 Vitervi decoder

Publications (2)

Publication Number Publication Date
KR970055633A KR970055633A (en) 1997-07-31
KR0169680B1 true KR0169680B1 (en) 1999-03-20

Family

ID=19445911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950061412A KR0169680B1 (en) 1995-12-28 1995-12-28 Vitervi decoder

Country Status (1)

Country Link
KR (1) KR0169680B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100439211B1 (en) * 1996-10-15 2004-10-26 마쯔시다덴기산교 가부시키가이샤 The arithmetic processing unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100439211B1 (en) * 1996-10-15 2004-10-26 마쯔시다덴기산교 가부시키가이샤 The arithmetic processing unit

Also Published As

Publication number Publication date
KR970055633A (en) 1997-07-31

Similar Documents

Publication Publication Date Title
US4583078A (en) Serial Viterbi decoder
US5537444A (en) Extended list output and soft symbol output viterbi algorithms
US4606027A (en) Error correction apparatus using a Viterbi decoder
KR100195745B1 (en) Add compare selecter of vitervi decoder
US5446746A (en) Path memory apparatus of a viterbi decoder
EP0660534B1 (en) Error correction systems with modified viterbi decoding
KR100779782B1 (en) High-speed acs unit for a viterbi decoder
US5014275A (en) Sequential decoder
JP3196835B2 (en) Viterbi decoding method and Viterbi decoder
US7640478B2 (en) Method for decoding tail-biting convolutional codes
US4715037A (en) Viterbi decoder comprising a majority circuit in producing a decoded signal
JP2000209106A (en) Realization by minimum amount of memory of high-speed viterbi decoder
JP3233847B2 (en) Viterbi decoding method and Viterbi decoding circuit
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
KR0169680B1 (en) Vitervi decoder
US7225393B2 (en) Viterbi decoder and Viterbi decoding method
KR0169678B1 (en) Vitervi decoder
KR0169679B1 (en) Vitervi decoder
US5751734A (en) Decoding method and apparatus using trace deletion for Viterbi algorithm
KR0169681B1 (en) Vitervi decoder
Chandel et al. Viterbi decoder plain sailing design for TCM decoders
US7032165B2 (en) ACS unit in a decoder
JP3530451B2 (en) Viterbi decoding device
KR100359805B1 (en) Viterbi decoder and method for decoding in viterbi decoder

Legal Events

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

Payment date: 20111004

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee