KR970008420B1 - Viterbi decoding apparatus for hdtv - Google Patents
Viterbi decoding apparatus for hdtv Download PDFInfo
- Publication number
- KR970008420B1 KR970008420B1 KR1019940007635A KR19940007635A KR970008420B1 KR 970008420 B1 KR970008420 B1 KR 970008420B1 KR 1019940007635 A KR1019940007635 A KR 1019940007635A KR 19940007635 A KR19940007635 A KR 19940007635A KR 970008420 B1 KR970008420 B1 KR 970008420B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- state
- path
- memory
- section
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/015—High-definition television systems
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
제1도는 일반적인 HDTV의 채널코딩 시스템도.1 is a channel coding system of a general HDTV.
제2도는 제1도의 트렐리스 인코더의 회로도.2 is a circuit diagram of the trellis encoder of FIG.
제3도는 제2도의 트렐리스 인코더의 개념을 설명하기 위한 도면.3 is a view for explaining the concept of the trellis encoder of FIG.
제4도는 제1도의 트렐리스 디코더의 개념을 설명하기 위한 도면.4 is a view for explaining the concept of the trellis decoder of FIG.
제5도는 콘볼루션 인코더의 트렐리스 다이어그램을 나타낸 도면.5 shows a trellis diagram of a convolutional encoder.
제6도는 본 발명의 HDTV용 비터비 비코더의 블럭도.6 is a block diagram of a Viterbi becoder for HDTV of the present invention.
제7도는 제6도의 거리계산부의 상세회로도.7 is a detailed circuit diagram of the distance calculator of FIG.
제8도는 제7도의 저장부의 상세회로도.8 is a detailed circuit diagram of the storage unit of FIG.
제9도는 제6도의 패스히스토리계산부의 상세회로도.9 is a detailed circuit diagram of the pass history calculation unit of FIG.
제10도는 제9도의 패스히스토리계산부의 동작을 나타내는 트렐리스 다이어그램.FIG. 10 is a trellis diagram showing the operation of the path history calculator of FIG.
제11도는 제9도의 패스히스토리계산부에 저장된 생존패스의 값을 도시한 도면.FIG. 11 is a diagram showing values of survival paths stored in the path history calculation unit of FIG.
제12도는 제6도의 입력값 산출방법을 나타내는 도면.12 is a diagram showing a method of calculating the input value of FIG.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
50 : 거리계산부,51 : 저장부,50: distance calculation unit, 51: storage unit,
52 : 계산부,53 : 비교 및 선택부,52: calculation unit, 53: comparison and selection unit,
60 : 최적패스 계산부,70 : 패스히스토리계산부,60: optimum path calculation unit, 70: path history calculation unit,
80 : 메모리,D11-D44 : 메모리.80: memory, D11-D44: memory.
본 발명은 고선명(High Definition) TV(HDTV)에 관한 것으로서, 특히 단측파대(Vestigial Side Band, VSB) 전송시스템에서 전송채널을 통해 전송되어온 신호를 수신하여 디코딩하기 위한 비터비 디코딩(Viterbi Decoding)장치에 관한 것이다. 최근 미국의 그랜드 얼라이언스(Grand Alliance)에서는 HDTV의 전송방식으로 8VSB방식을 채택하였다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to high definition television (HDTV), and in particular, a Viterbi decoding apparatus for receiving and decoding a signal transmitted through a transmission channel in a vertical side band (VSB) transmission system. It is about. Recently, the Grand Alliance of the United States has adopted 8VSB as the transmission method of HDTV.
제1도는 그랜드 얼라이언스의 채널코딩시스템을 개략적으로 도시한 것이다. 채널코딩시스템은 송신부(10)에서는 입력데이타(In)를 R-S(Reed-Solomon) 인코더(11)와 트렐리스 인코더(12)를 통해 전송포맷에 따라 인코딩하고, 수신부(20)는 송신부(10)로 부터 전송채널을 통해 전송된 신호를 R-S 디코더(21)와 트렐리스 디코더(22)를 통해 수신 포멧에 따라 디코딩하도록 구성되었다.1 schematically shows the channel coding system of the Grand Alliance. The channel coding system encodes the input data In in accordance with the transmission format through the RS (Reed-Solomon) encoder 11 and trellis encoder 12 in the transmitter 10, the receiver 20 is the transmitter 10 In this case, the signal transmitted through the transport channel is decoded through the RS decoder 21 and the trellis decoder 22 according to the reception format.
지상방송(terrestrial) VSB 전송모드는 2/3율(rate) 트렐리스 코드를 사용한다. 즉, 2비트신호가 입력될 때 입력신호중 1비트는 1/2율 콘볼루션 코드를 사용하여 2비트로 인코딩하고 다른 1비트는 인코딩되지 않고 남아있다. 따라서, 트렐리스 코드를 사용한 신호파형은 8레벨(3비트)을 갖으며, 8레벨로 전송된 신호를 8VSB라 한다.Terrestrial VSB transmission mode uses a 2/3 rate trellis code. That is, when a 2-bit signal is input, one bit of the input signal is encoded into two bits using a half rate convolutional code, and the other one bit remains unencoded. Therefore, the signal waveform using the trellis code has 8 levels (3 bits), and a signal transmitted at 8 levels is 8VSB.
제2도는 트렐리스 인코더(12)의 회로도이다.2 is a circuit diagram of the trellis encoder 12.
트렐리스 인코더(12)는 콘볼루션 인코더(12-3)와 맵퍼(12-4)로 구성되고, 콘볼루션 인코더(12-3)는 입력신호(In)를 12단위로 저장시켜 주기위한 제1메모리(12-1)와 제1메모리(12-1)를 통과한 신호를 다시 12단위로 저장시켜 주기위한 제2메모리부(12-2)로 이루어지고, 맵핑부는 입력신호(In-o)(In-1), 제1(12-1)(12-2)의 출력신호를 맵핑하여 2비트신호(Out)를 출력하는 입출력맵퍼(12-3)로 이루어졌다.The trellis encoder 12 includes a convolutional encoder 12-3 and a mapper 12-4, and the convolutional encoder 12-3 is configured to store the input signal In in 12 units. The second memory unit 12-2 is configured to store the signals passing through the first memory 12-1 and the first memory 12-1 in 12 units, and the mapping unit includes the input signal I no . (I n-1 ) and an input / output mapper 12-3 for outputting a 2-bit signal Out by mapping the output signals of the first (12-1) 12-2.
상기에서 설명한 바와 같이, 콘볼루션 인코더(12-3)는 1비트 입력신호는 인코딩을 하지 않고 그대로 출력하고, 1비트 입력신호는 제1메모리부(12-1)를 통해 출력되는 신호와 메모리부(12-2)를 통해 출력되는 신호로서 출력된다. 즉, 콘볼루션 인코더는 입력 2비트를 3비트로 인코딩하여 출력한다.As described above, the convolutional encoder 12-3 outputs the 1-bit input signal without encoding and outputs the 1-bit input signal through the first memory unit 12-1. It is output as a signal output through 12-2. That is, the convolutional encoder encodes and outputs 2 input bits into 3 bits.
제1 및 제2메모리부(12-1)(12-2)는 각각 12개의 메모리가 직렬 연결되어 제1입력신호가 인가되면 제1메모리에 인가된다.Each of the first and second memory units 12-1 and 12-2 is applied to the first memory when 12 memories are connected in series and a first input signal is applied thereto.
제2입력신호가 인가되면 이 제2입력신호는 제1메모리부(12-1)의 제1메모리에 인가되고, 제1메모리에 이미 저장되어 있던 제1입력신호는 제2메모리로 시프트된다. 이와 같은 방법으로 제13입력신호가 인가되면 제13입력신호는 제1메모리부(12-1)의 제1메모리부에 저장되고, 제1메모리부(12-1)의 제1~제11메모리에 이미 저장되어 있던 신호는 그 다음단의 제2메모리~제12메모리로 각각 시프트되며, 제1메모리부(12-1)의 제12메모리에 저장되어 있던 제1입력신호는 제2메모리부(12-2)의 제1메모리로 시프트됨과 동시에 맵퍼(12-3)로 출력된다.When the second input signal is applied, the second input signal is applied to the first memory of the first memory unit 12-1, and the first input signal already stored in the first memory is shifted to the second memory. When the thirteenth input signal is applied in this manner, the thirteenth input signal is stored in the first memory unit of the first memory unit 12-1 and the first to eleventh memories of the first memory unit 12-1. Are already stored in the second memory to the twelfth memory of the next stage, and the first input signal stored in the twelfth memory of the first memory unit 12-1 is converted into the second memory unit ( 12-2) is shifted to the first memory and output to the mapper 12-3.
이와 같이 하여 제25입력신호가 콘볼루션 인코더(12-3)에 인가되면 제25입력신호는 제1메모리부(12-1)의 제1메모리에 저장됨과 동시에 입출력맵퍼(12-4)로 인가되고, 제1메모리부(12-1)의 제1메모리~제11메모리에 있던 신호는 그 다음단의 제2메모리~제12메모리로 시프트된다.In this way, when the 25th input signal is applied to the convolutional encoder 12-3, the 25th input signal is stored in the first memory of the first memory unit 12-1 and simultaneously applied to the input / output mapper 12-4. The signals in the first to eleventh memories of the first memory section 12-1 are shifted to the second to twelfth memories of the next stage.
제1메모리부(12-1)의 제12메모리부에 저장되어 있던 제13입력신호는 입출력맵퍼(12-4)로 출력됨과 동시에 제2메모리부(12-2)의 제1메모리로 시프트되어 저장된다. 한편, 제2메모리부(12-2)의 제12메모리에 저장되어 있던 제1입력신호는 입출력맵퍼(12-4)로 출력된다.The thirteenth input signal stored in the twelfth memory part of the first memory part 12-1 is outputted to the input / output mapper 12-4 and shifted to the first memory of the second memory part 12-2. Stored. On the other hand, the first input signal stored in the twelfth memory of the second memory unit 12-2 is output to the input / output mapper 12-4.
따라서, 트렐리스 인코더(12-3)는 입력신호(In)와 입력신호에 대해 12 또는 24단위로 지연된 신호들을 맵핑하여 소정신호를 출력하는 것이다.Therefore, the trellis encoder 12-3 outputs a predetermined signal by mapping signals delayed by 12 or 24 units with respect to the input signal In.
제13도는 콘볼루션 인코더(12-3)의 개념을 설명하기 위한 도면이다. 콘볼루션 인코더(12-4)는 12개의 인코더(32-1~32-12)로 구성되고, 인코더의 입출력을 멀티플렉싱하기 위해 디멀티플렉서(31)와 멀티플렉서(33)가 각각 사용된다.13 is a diagram for explaining the concept of the convolutional encoder 12-3. The convolutional encoder 12-4 is composed of 12 encoders 32-1 to 32-12, and a demultiplexer 31 and a multiplexer 33 are used to multiplex the input and output of the encoder, respectively.
입력신호는 상기에서 설명한 바와 같이 12단위로 메모리에 저장되므로, 제1인코더(32-1)에는 입력신호중{1,13,25…}, 제2인코더(32-2)에는 {2,14,26…} 제3인코더(32-3)에는 {3,15,27…}, 제11인코더(32-11)에는 {11,23,35…} 제12인코더(32-12)에는 {12,24,36…}번째 신호가 각각 인가된다.As described above, since the input signal is stored in the memory in units of 12, the first encoder 32-1 has one of the input signals {1, 13, 25... }, The second encoder 32-2 includes {2, 14, 26... } The third encoder 32-3 includes {3,15,27... }, The eleventh encoders 32-11 include {11, 23, 35... } The twelfth encoder 32-12 includes {12, 24, 36... } Th signal is applied respectively.
제3도와 같은 콘볼루션 인코더를 사용하여 송신부에서 인코딩된 입력데이타를 수신부에서 다시 복원시키기 위해서는 트렐리스 디코더가 사용된다.A trellis decoder is used to restore the input data encoded at the transmitter back to the receiver using a convolutional encoder as shown in FIG.
제4도는 트렐리스 디코더의 개념을 설명하기 위한 도면이다. 제4도의 트렐리스 디코더는 트렐리스 인코더를 통해 인코딩된 입력데이타를 복원시키고, 복원된 입력데이타를 출력시키는 장치이다.4 is a diagram for explaining the concept of a trellis decoder. The trellis decoder of FIG. 4 is an apparatus for restoring the input data encoded through the trellis encoder and outputting the restored input data.
트렐리스 디코더는 제3도의 트렐리스 인코더의 역동작을 하는 것으로서, 트렐리스 인코더와 마찬가지로 12개의 디코더가 필요하다. 제3도의 콘볼루션 인코딩된 데이타를 복원하기 위해서는 비터비 알고리즘이 사용된다.The trellis decoder performs the reverse operation of the trellis encoder of FIG. 3, and like the trellis encoder, 12 decoders are required. The Viterbi algorithm is used to recover the convolution encoded data of FIG.
제5도는 콘볼루션 인코더의 트렐리스 다이어그램(Trellis diagram)을 도시한 것이다. 콘볼루션 인코더의 현재 콘볼루션 인코딩된 데이타는 이전의 콘볼루션 인코딩된 데이타에 의존하므로 콘볼루션 인코더를 통해 콘볼루션 인코딩되어 출력되는 데이타가 모두 콘볼루션 인코더의 출력값이 되는 것이 아니고, 이전의 입력값(이를 상태(state)라한다)에 따라 제한된 파형만을 출력하게 된다.5 shows a Trellis diagram of the convolutional encoder. The current convolution encoded data of the convolution encoder depends on the previous convolution encoded data, so not all the data that is convolutionally encoded and output through the convolution encoder is the output value of the convolution encoder. This is called a state) and only a limited waveform is output.
따라서, 비터비 디코더는 수신부에서 인가되는 수신파형을 관찰하여 가장 가능성있는 입력값을 추정하는 것이다. 즉, 비터비 알고리즘은 2비트 입력신호에 대해 00, 10, 01, 11의 4상태가 발생하고, 각각의 상태에서 2개의 패스(path)가 만나는 경우, 다음 구간(stage)부터는 최적패스(optimal path)가 동일하기 때문에 1상태의 1개의 생존패스(survival path)만을 남기고 나머지 1개의 패스는 소거시켜 주는 방법으로 최적의 입력값을 추적하는 것이다.Therefore, the Viterbi decoder estimates the most likely input value by observing the reception waveform applied from the receiver. That is, the Viterbi algorithm generates four states of 00, 10, 01, and 11 with respect to a 2-bit input signal, and when two paths meet in each state, an optimal path starts from the next stage. Since the paths are the same, only one survival path of one state is left and the other one is erased to track the optimal input value.
그러므로, 비터비 알고리즘은 각 구간마다 각 상태에서 만나는 2개의 패스중 생존패스를 계산하는 과정과, 각 상태마다 생존패스의 히스토리(history)를 기억하는 과정으로 이루어졌다.Therefore, the Viterbi algorithm consists of a process of calculating a survival pass among two passes that meet each state in each section, and a process of storing a history of the survival pass for each state.
가장 최적의 생존패스를 추정하기 위해서는 무한 구간의 파형을 관찰해야 하지만, 하드웨어 구조를 간단히 하기위해서 일정구간을 관찰하고, 관찰 구간에서 최적의 패스를 선택하여 그때의 입력값을 출력시키는 것이다.In order to estimate the most optimal survival path, the waveform of infinite section should be observed. However, in order to simplify the hardware structure, a certain section is observed, and the optimal path is selected from the observation section to output the input value at that time.
제5도를 참조하면, 2비트 입력신호에 대해 각 그간에서 00, 10, 01, 11상태가 발생되고, 각 상태에서는 2개의 패스가 만난다.Referring to FIG. 5, states of 00, 10, 01, and 11 are generated for each two-bit input signal, and two passes meet each state.
제1구간의 00상태에서는 제0구간의 00상태와 01상태의 패스가 만나고, 10상태에서는 00상태와 01상태의 패스가 만나며, 01상태에서는 10상태와 11상태의 패스가 만나고, 11상태에서는 10상태와 11상태의 패스가 만난다.In the 00 state of the first section, the paths of the 00 and 01 states of the 0 section meet. In the 10 state, the paths of the 00 and 01 states meet. In the 01 state, the paths of the 10 and 11 states meet. 10-state and 11-state passes meet.
이와 같이 각 상태에서 2개의 패스가 만나는 관계는 각 구간마다 모두 일정하게 성립한다. 이때, 각 상태에서 만나는 2개의 패스는 0과 1의 데이타값의 데이타값을 갖는다. 여기서는 각 상태에서 상측에서 인가되는 패스를 0, 하측에서 인가되는 패스를 1이라 가정한다.As such, the relationship where two passes meet in each state is equally established in each section. At this time, the two paths encountered in each state have data values of 0 and 1 data values. In this case, it is assumed that the path applied from the upper side is 0 and the path applied from the lower side is 1 in each state.
각 상태에서 만나는 2개의 패스중 1패스를 선택하고 나머지1패스를 소거하여 생존패스를 결정해야 하는데, 제5도에 도시된 바와 같이 1구간의 00상태에서는 0구간의 입력 0의 00상태 패스와 입력 1의 01상태패스가 만나고, 이들중 하측에서 인가되는 입력 1의 01상태패스가 생존패스가 된다.The survival path must be determined by selecting one path out of two paths that meet each state and eliminating the remaining one path. As shown in FIG. The 01 status path of input 1 meets, and the 01 status path of input 1 applied from the lower side becomes a survival path.
1구간의 01상태에서는 0구간의 입력 0의 10상태패스와 0구간의 입력 1의 11상태패스가 만나고, 이들중 하측에서 인가되는 입력 1의 11상태패스가 생존패스가 된다. 2구간의 00상태에서는 1구간의 입력 0의 00상태패스와 1구간의 입력 1의 01상태패스가 만나고, 이들중 상측에서 인가되는 입력 0의 11상태패스가 생존패스가 된다.In the 01 state of the 1 section, the 10 state path of input 0 of the 0 section and the 11 state path of the input 1 of the 0 section meet, and the 11 state path of the input 1 applied from the lower side becomes a survival path. In the 00 state of two sections, the 00 status path of input 0 of 1 section meets the 01 status path of input 1 of 1 section, and the 11 status path of input 0 applied from the upper side becomes a survival path.
이와 같이 관찰구간내의 각 구간의 각 상태마다 생존패스를 구하고 관찰구간의 최적패스를 선택하여 그때의 입력값을 출력시키게 되는 것이다.In this way, the survival path is obtained for each state of each section in the observation section, and the optimum path of the observation section is selected to output the input value at that time.
그러나, 상기와 같은 방법으로 인코딩된 데이타를 복원시켜 주기위한 디코더장치는 제4도에서 보는 바와 같이 12개의 동일한 비터비 디코더를 이용해야 하므로 이를 하드웨어적으로 구현이 복잡하다.However, since the decoder device for restoring the data encoded in the above manner must use 12 identical Viterbi decoders as shown in FIG. 4, the hardware implementation is complicated.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 하드웨어적으로 간단하게 구현시킬 수 있는 HDTV용 비터비 디코더를 제공하는데 그 목적이 있다.The present invention is to solve the problems of the prior art as described above, and an object thereof is to provide a Viterbi decoder for HDTV that can be easily implemented in hardware.
상기 목적을 달성하기 위한 본 발명은 관찰구간의 각 상태마다 입력신호를 이전거리값에 누적시켜 각 상태의 현재의 거리값과 생존패스를 계산하는 거리계산부와, 거리계산부에서 출력되는 각 상태의 현재 거리값을 입력하고, 입력된 각 상태의 현재값을 비교하여 가장 작은 거리값을 갖는 상태를 선택하며, 선택된 상태를 최적패스로서 출력하는 최적패스계산부와, 거리계산부에서 출력되는 생존패스의 값을 입력하여 저장하고, 최적패스계산부에서 인가되는 최적패스의 상태를 입력하고, 이 최적패스에 따라 관찰구간내의 각 구간의 최적패스를 역추적하여 관찰구간 중 최초 구간의 생존패스값을 계산하기 위한 패스히스토리계산부와, 패스히스토리계산부의 출력신호에 따라 송신부의 트렐리스 인코더의 입력값을 출력값으로서 출력하는 메모리를 포함하는 것을 특징으로 하는 HDTV용 비터비 디코더를 제공한다.In order to achieve the above object, the present invention accumulates an input signal in a previous distance value for each state of an observation section, and calculates a current distance value and a survival path of each state, and each state output from the distance calculator. Inputs the current distance value, compares the current value of each input state, selects the state with the smallest distance value, and outputs the selected state as the optimum path calculator and the survival output from the distance calculator Enter and store the value of the path, input the state of the optimal path applied by the optimal path calculator, and trace the optimal path of each section in the observation section according to the optimum path to survive the value of the survival path of the first section of the observation section. And a memory for outputting the input value of the trellis encoder of the transmitter as an output value in accordance with the output signal of the path history calculator. It provides a Viterbi decoder for HDTV comprising a.
이하 본 발명을 실시예를 첨부도면에 의거하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
제6도는 본 발명의 실시예에 따른 비터비 디코더의 블럭도를 도시한 것이다.6 shows a block diagram of a Viterbi decoder according to an embodiment of the present invention.
본 발명의 비터비 디코더는 관찰구간에서 입력신호를 입력하고, 각 상태마다 입력신호를 이전 거리값(metric value)에 누적시켜 각 상태의 현재의 거리값과 생존패스를 구하기 위한 거리계산부(metric calculator)(50)와, 거리계산부(50)에서 인가되는 관찰구간의 거리값을 입력하여 관찰구간내의 최적패스를 구하고, 최적패스의 상태를 출력하는 최적패스계산부(60)와 거리계산부(50)에서 인가되는 최적패스의 값을 입력하여 저장하고, 최적패스계산부(60)에서 인가되는 최적패스의 상태를 입력하고 최적패스계산부(60)에서 입력된 최적패스를 역추적하여 관찰구간중 최초구간의 생존패스값을 계산하기 위한 패스히스토리계산부(70)와, 패스히스토리계산부(70)의 출력신호에 따라 송신부의 트렐리스 인코더의 입력값을 출력값(Out)으로 출력하는 메모리(80)로 이루어졌다.The Viterbi decoder of the present invention inputs an input signal in an observation section and accumulates the input signal in a previous metric value for each state to obtain a current distance value and a survival path of each state. an optimum path calculator 60 and a distance calculator for inputting a distance value of an observation section applied by the distance calculator 50 to obtain an optimal path within the observation section, and outputting a state of the optimum path. Input and store the value of the optimum path applied in (50), input the state of the optimum path applied in the optimum path calculator 60, and trace back the optimal path input from the optimum path calculator 60 for observation. Outputting the input value of the trellis encoder of the transmitter as an output value Out according to the output signal of the path history calculator 70 and the path history calculator 70 for calculating the survival path value of the first section of the section. Made of memory 80 The.
외부로 부터 신호가 인가되면 이 외부신호와 전송레벨간의 차를 비터비 디코더는 현재 에러값을 입력신호(In)로 입력한다. 거리계산부(60)는 입력된 신호(In)를 각 상태마다 이전에 누적되어 온 거리값에 더하여 현재 거리값을 계산한다.When a signal is applied from the outside, the Viterbi decoder inputs a current error value as an input signal In to the difference between the external signal and the transmission level. The distance calculator 60 calculates the current distance value by adding the input signal In to the distance value previously accumulated for each state.
거리계산부는 각 상태마다 2개의 패스가 만나므로 각 상태마다 2개의 패스의 현재의 거리값을 계산하며, 계산된 현재의 거리값중 작은 값을 갖는 패스만을 생존패스로 선택한다.Since two paths meet each state, the distance calculator calculates a current distance value of two paths for each state, and selects only a path having a smaller value among the calculated current distance values as a survival path.
그러므로, 각 상태마다 선택된 생존패스의 값은 패스히스토리계산부(70)에 인가되어 저장되고, 각 상태마다 선택된 생존패스의 거리값은 최적패스계산부(60)로 인가됨과 동시에 다시 거리계산부(50)로 피드백되어 이전의 누적된 거리값으로 존재한다.Therefore, the value of the survival path selected for each state is applied to and stored in the path history calculation unit 70, and the distance value of the survival path selected for each state is applied to the optimum path calculation unit 60, and at the same time, the distance calculation unit ( 50) is present as the previously accumulated distance value.
거리계산부(50)는 이러한 동작을 관찰구간내의 각 상태마다 반복한다.The distance calculator 50 repeats this operation for each state in the observation section.
패스히스토리계산부(70)는 거리계산부(50)로 부터 인가되는 관찰구간내의 각 상태의 생존패스값을 입력하여 저장하고, 최적패스계산부(60)는 거리계산부(50)로 부터 인가되는 거리값을 계산하여 최적패스를 선택하게 된다.The pass history calculator 70 inputs and stores the survival pass values of each state in the observation section applied from the distance calculator 50, and the optimum path calculator 60 is applied from the distance calculator 50. The optimal path is selected by calculating the distance value.
최적패스계산부(60)로 부터 선택된 최적패스가 패스히스토리계산부(70)로 인가되며, 패스히스토리계산부(70)는 이 최적패스로 부터 관찰구간중 최초 관찰구간의 생존패스의 값과 생존패스의 상태를 역추적하여 출력한다.The optimal path selected from the optimal path calculating unit 60 is applied to the path history calculating unit 70, and the path history calculating unit 70 survives the value and survival of the survival path of the first observation section of the observation section from the optimal path. Output the trace back status.
패스히스토리계산부(70)에서 출력되는 관찰구간중 최초 관찰구간의 생존패스의 값과 생존패스의 상태는 메모리(80)로 인가된다.The survival path value and the survival path state of the first observation section among the observation sections output from the path history calculation unit 70 are applied to the memory 80.
메모리(80)는 룩-업 테이블(Look-up table)로서 생존패스의 상태와 생존패스의 값에 따라 출력신호를 출력하게 된다. 이로써, 비터비 디코더는 원래 콘볼루션 인코더에 의해 인코딩된 신호를 복원시켜주는 것이다.The memory 80 is a look-up table and outputs an output signal according to the state of the survival path and the value of the survival path. In this way, the Viterbi decoder restores the signal originally encoded by the convolutional encoder.
제7도는 제6도의 거리계산부의 상세회로도이다.FIG. 7 is a detailed circuit diagram of the distance calculator of FIG.
거리계산부(50)는 각 상태의 누적된 에러값을 저장하기 위한 저장부(51-1~51-4)와, 즉, 전송신호와 외부에서 인가되는 신호와의 차 즉, 입력에러값을 입력신호(In)로 하고 이 입력신호(In)와 저장부(51-1~51-4)에 저장되어 있는 각 상태의 각 패스의 누적된 에러값을 누적시켜 주기 위한 쌍으로 이루어진 계산부(52-1~52-4)와 각 쌍의 계산부(52-11,52-12)(52-21,52-22)(52-31,52-32)(52-41,52-42)의 출력신호를 두 입력신호로 하고 이두 입력신호를 비교하여 각 상태마다 만나는 두 패스중 작은값을 갖는 패스를 생존 패스로 선택하며, 선택된 생존패스의 값을 패스히스토리계산부(70)로 출력하고, 생존패스의 거리값을 최적패스계산부(60)로 출력함과 동시에 다시 저장부(51-1~51-4)로 인가하기 위한 비교 및 선택부(53-1~53-4)로 이루어졌다. 여기서는, 설명을 간단히 하기위해서 2비트 입력신호를 예로 들어 구성하였다.The distance calculator 50 stores the difference between the storage signals 51-1 to 51-4 for storing the accumulated error values of each state, that is, the difference between the transmission signal and the externally applied signal, that is, the input error value. A calculation unit comprising a pair for calculating an input signal In and accumulating the accumulated error value of each path of each state stored in the input signal In and the storage units 51-1 to 51-4 ( 52-1 to 52-4) and each pair of calculation units (52-11, 52-12) (52-21, 52-22) (52-31, 52-32) (52-41, 52-42) By using the output signal of the two input signals and compares these two input signals, the path having the smaller value of the two paths that meet each state is selected as the survival path, and outputs the value of the selected survival path to the path history calculator 70 And the comparison and selection units 53-1 to 53-4 for outputting the distance values of the survival paths to the optimum path calculator 60 and applying them to the storage units 51-1 to 51-4 again. lost. In this case, for simplicity, a 2-bit input signal is configured as an example.
제8도는 제7도의 거리계산부(50)의 저장부(51)의 상세회로도이다.8 is a detailed circuit diagram of the storage unit 51 of the distance calculator 50 of FIG.
각 저장부(51)는 입력신호(In)에 대해 누적된 거리값을 12단위로 저장하기 위해서 12개의 메모리로 구성되었다. 각 저장부(51)를 12개의 메모리로 구성하는 이유는 인코딩시 입력신호를 12단위로 구분하였기 때문이다.Each storage unit 51 is composed of 12 memories in order to store the accumulated distance value with respect to the input signal (In) in 12 units. Each storage unit 51 is composed of 12 memories because the input signal is divided into 12 units during encoding.
각 저장부의 메모리1에는 거리계산부(50)의 비교 및 선택부(53)에서 출력되는 현재 거리값이 인가되어 누적된 거리값으로 저장되고, 메모리12는 이미 저장되어 있던 누적된 거리값을 거리계산부(50)의 계산부(52)로 출력한다.In the memory 1 of each storage unit, the current distance value output from the comparison unit 53 and the selector 53 is applied and stored as a accumulated distance value, and the memory 12 stores the accumulated distance value as a distance. The calculation unit 52 outputs the calculation unit 52.
계산부(52)는 각 상태에서 만나는 두 패스의 거리값을 계산하기 위해 쌍으로 구성된 4개의 계산부로 이루어졌다. 제1계산부(52-1)는 00상태의 거리값을 계산하기 위한 것으로서, 계산부(52-1)는 제1저장부(51-1)에 저장된 이전구간의 00상태의 누적된 거리값에 입력을 누적시키는 계산부(52-11)와 제3저장부(51-3)에 저장된 이전구간의 01상태의 누적된 거리값에 입력을 누적시키는 계산부(52-12)로 이루어졌다.The calculation unit 52 is composed of four calculation units configured in pairs to calculate the distance value of two passes that meet each state. The first calculation unit 52-1 calculates the distance value of the 00 state, and the calculation unit 52-1 stores the accumulated distance value of the 00 state of the previous section stored in the first storage unit 51-1. The calculation unit 52-11 accumulates the inputs and the calculation unit 52-12 accumulates the inputs in the accumulated distance value of the 01 state of the previous section stored in the third storage unit 51-3.
제2계산부(52-2)는 10상태의 거리값을 계산하기 위한 것으로서, 제1저장부(51-1)에 저장된 이전구간의 00상태의 누적된 거리값에 입력을 누적시키는 계산부(52-21)와 제3저장부(51-3)에 저장된 이전구간의 01상태의 누적된 거리값에 입력을 누적시키는 계산부(52-22)로 이루어졌다.The second calculator 52-2 calculates a distance value of 10 states, and accumulates an input at a accumulated distance value of a 00 state of a previous section stored in the first storage unit 51-1 ( 52-21) and a calculation unit 52-22 which accumulates an input on the accumulated distance value of the 01 state of the previous section stored in the third storage unit 51-3.
제3계산부(52-3)는 01상태의 거리값을 계산하기 위한 것으로서, 제2저장부(51-2)에 저장된 이전구간의 10상태의 거리값에 입력을 누적시키는 계산부(52-31)와 제4저장부(51-4)에 저장된 이전구간의 11상태의 거리값에 입력을 누적시키는 계산부(52-33)로 이루어졌다.The third calculator 52-3 calculates the distance value in the 01 state, and accumulates an input in the distance value in the 10 state of the previous section stored in the second storage unit 51-2. 31) and a calculation unit 52-33 which accumulates an input on the distance value of the 11 state of the previous section stored in the fourth storage unit 51-4.
제4계산부(52-4)는 11상태의 거리값을 계산하기 위한 것으로서, 제2저장부(51-2)에 저장된 이전구간의 10상태의 거리값에 입력을 누적시키는 계산부(52-41)와 제4저장부(51-4)에 저장된 이전구간의 11상태의 거리값에 입력을 누적시키는 계산부(52-42)로 이루어졌다.The fourth calculating unit 52-4 is for calculating the distance value of the 11 state, and accumulates an input at the distance value of the 10 state of the previous section stored in the second storage unit 51-2. 41) and a calculation unit 52-42 which accumulates an input on the distance value of the 11 state of the previous section stored in the fourth storage unit 51-4.
제9도는 제6도의 패스히스토리계산부(70)의 상세회로도이다.9 is a detailed circuit diagram of the pass history calculation unit 70 of FIG.
패스히스토리계산부(70)는 관찰구간중 제1구간의 각 상태의 생존패스값을 저장하는 제1메모리(D11~D14)와, 관찰구간중 제2구간의 각 상태의 생존패스값을 저장하는 제2메모리(D21~D24)와, 관찰구간중 제3구간의 각 상태의 생존패스값을 저장하는 제3메모리(D31~D34)와 관찰구간중 제4구간의 각 상태의 생존패스값을 저장하는 제4메모리(D41~D44)로 이루어졌다.The path history calculation unit 70 stores the survival path values of each state of the first section of the observation section, and stores the survival path values of each state of the second section of the observation section. The second memory D21 to D24 stores the survival pass values of each state of the third memory D31 to D34 that stores the third state of the third section of the observation section and the fourth section of the observation section. It consists of the fourth memory (D41 ~ D44).
여기서는, 관찰구간을 4구간으로 한다.Here, the observation section is four sections.
관찰구간중 최종구간의 제4구간의 각 상태의 생존패스값을 저장하는 메모리(D41~D44)의 입력단자(D)에는 거리계산부(50)로 부터 생존패스의 값이 입력되고, 인에이블단자(E)에는 최적패스계산부(70)로 부터 각 상태의 생존패스중 최적패스의 상태가 입력된다.The value of the survival path is input from the distance calculator 50 to the input terminal D of the memory D41 to D44 that stores the survival path values of each state of the fourth section of the observation section. The terminal E inputs the state of the optimum path among the survival paths in each state from the optimum path calculation unit 70.
제1 내지 제3관찰구간의 각 상태의 생존패스값을 저장하는 메모리(D11-D14)(D31-D34)는 상기 메모리 (D21-D24)~(D41-D44)의 출력신호(Q)가 입력단자(D)로 인가된다. 각 구간의 00상태의 생존패스값을 저장하는 메모리(D11-D31)는 다음단의 00상태의 생존패스값을 저장하는 메모리(D21-D41)의 출력신호 또는 다음단의 10상태의 생존패스값을 저장하는 메모리(D22-D42)의 출력신호중 하나에 의해 인에이블된다.Memory D11-D14 and D31-D34, which store survival path values of respective states of the first to third observation sections, are input by the output signals Q of the memories D21-D24 to D41-D44. It is applied to the terminal D. The memory D11-D31 that stores the survival path value of the 00 state of each section is an output signal of the memory D21-D41 that stores the survival path value of the 00 state of the next stage or the survival path value of the 10 state of the next stage. It is enabled by one of the output signals of the memory (D22-D42) for storing the.
각 구간의 10상태의 생존패스값을 저장하는 메모리(D12-D32)는 다음단의 01상태의 생존패스값을 저장하는 메모리(D23-D43)의 출력신호 또는 다음단의 11상태의 생존패스값을 저장하는 메모리(D24-D44)의 출력신호에 의해 인에이블된다.The memory (D12-D32) storing the survival path value of 10 states of each section is the output signal of the memory (D23-D43) storing the survival path value of the 01 state of the next stage or the survival path value of the 11 state of the next stage. It is enabled by the output signal of the memory (D24-D44) for storing.
각 구간의 01상태의 생존패스값을 저장하는 메모리(D13-D33)는 다음단의 00상태의 생존패스값을 저장하는 메모리(D21-D41)의 출력신호 또는 10상태의 생존패스값을 저장하는 메모리(D22-D42)의 출력신호에 의해 인에이블된다.The memory (D13-D33) storing the survival path value of the 01 state of each section stores the output signal of the memory (D21-D41) or the survival path value of the 10 state of the 00 state of the next stage. It is enabled by the output signal of the memory D22-D42.
각 구간의 11상태의 생존패스값을 저장하는 메모리(D14-D34)는 다음단의 01상태의 생존패스값을 저장하는 메모리(D23-D43)의 출력신호 또는 다음단의 11상태의 생존패스값을 저장하는 메모리(D24-D44)의 출력신호에 의해 인에이블된다.The memory D14-D34 that stores the survival path value of 11 states of each section is an output signal of the memory D23-D43 that stores the survival path value of the 01 state of the next stage or the survival path value of the 11 states of the next stage. It is enabled by the output signal of the memory (D24-D44) for storing.
즉, 메모리들은 메모리의 인에이블단자에 연결된 다음단의 메모리의 출력신호에 따라 인에이블되는데, 다음단의 메모리의 출력신호가 "0"이면 실선을 연결된 메모리가 인에이블되고 "1"이 되면 점선으로 연결된 메모리가 인에이블된다.That is, the memories are enabled according to the output signal of the memory of the next stage connected to the enable terminal of the memory. If the output signal of the memory of the next stage is "0", the memory connected to the solid line is enabled and the dotted line is "1". The connected memory is enabled.
상기한 구성을 갖는 본 발명의 비터비 디코더의 동작을 제6도~제11도를 참조하여 설명한다.The operation of the Viterbi decoder of the present invention having the above-described configuration will be described with reference to FIGS.
외부로 부터 신호가 입력되면 거리계산부(50)는 이 신호와 전송레벨의 차를 입력신호(In)로서 입력한다. 제12도에 도신된 바와 같이 외부로 부터 신호가 -3과 -1의 전송레벨 사이에서 인가될 때 전송레벨과의 차중에서 작은 값(d0~d3)이 에러값으로 선택되고, 이 값(d0~d3)이 거리계산부(50)에 입력신호(In)로서 인가된다.When a signal is input from the outside, the distance calculator 50 inputs the difference between the signal and the transmission level as the input signal In. As shown in FIG. 12, when a signal from the outside is applied between a transmission level of -3 and -1, a small value d 0 to d 3 is selected as an error value from the difference with the transmission level. (d 0 to d 3 ) are applied to the distance calculator 50 as an input signal In.
입력신호 d0는 00상태의 에러값이고, d1는 10상태의 에러값이며, d2는 01상태의 에러값이고, d3는 11상태의 에러값으로서 계산부(52-1~52-4)에 각각 인가된다. 입력신호(In)로서 d0~d3이 각각 계산부(52-1~52-4)에 인가되면, 제1계산부(52-11~52-12)는 00상태에서 만나는 두 패스의 거리값을 계산한다. 즉, 계산부(52-11)는 제1저장부(51-1)에 저장되어 있던 이전구간의 00상태의 누적된 거리값에 입력 d0을 누적시켜 현재 00상태에서 만나는 두 패스중 한 패스의 거리값을 계산한다.The input signal d 0 is an error value in the 00 state, d 1 is an error value in the 10 state, d 2 is an error value in the 01 state, and d 3 is an error value in the 11 state. 4) respectively. When d 0 to d 3 are respectively applied to the calculation units 52-1 to 52-4 as the input signals In, the distances of the two paths where the first calculation units 52-11 to 52-12 meet in the 00 state are met. Calculate the value. That is, the calculation unit 52-11 accumulates the input d 0 at the accumulated distance value of the 00 state of the previous section stored in the first storage unit 51-1 and passes one of the two passes that meet at the current 00 state. Calculate the distance value of.
계산부(52-12)는 제3저장부(51-3)에 저장되어 있던 이전구간의 01상태의 누적된 거리값에 입력 d0을 누적시켜 현재 00상태에서 만나는 두 패스중 다른 패스의 거리값을 계산한다.The calculation unit 52-12 accumulates the input d 0 in the accumulated distance value of the 01 state of the previous section stored in the third storage unit 51-3, and the distance of the other pass among the two passes that meet at the current 00 state. Calculate the value.
00상태에서 만나는 두 패스의 거리값은 제1비교 및 선택부(53-1)에 인가되고, 제1비교 및 선택부(53-1)는 이 두값을 비교하여 작은 값을 갖는 패스를 생존패스로 선택한다.The distance values of the two passes meeting in the 00 state are applied to the first comparison and selection unit 53-1, and the first comparison and selection unit 53-1 compares these two values to survive the path having a smaller value. To select.
제2계산부(52-21~52-22)는 10상태에서 만나는 두 패스의 거리값을 계산한다. 즉, 계산부(52-21)는 제1저장부(51-1)에 저장되어 있던 이전구간의 00상태의 누적된 거리값에 입력 d1을 누적시켜 현재 10상태에서 만나는 두 패스중 한 패스의 거리값을 계산한다.The second calculators 52-21 to 52-22 calculate distance values of two passes that meet in the 10 state. That is, the calculation unit 52-21 accumulates the input d 1 on the accumulated distance value of the 00 state of the previous section stored in the first storage unit 51-1, and passes one of two passes that meet at the current state 10. Calculate the distance value of.
계산부(52-22)는 제3저장부(51-3)에 저장되어 있던 이전구간의 01상태의 누적된 거리값에 입력 d1을 누적시켜 현재 10상태에서 만나는 두 패스중 다른 패스의 거리값을 계산한다.The calculation unit 52-22 accumulates the input d 1 in the accumulated distance value of the 01 state of the previous section stored in the third storage unit 51-3, and the distance of the other pass among the two passes that meet in the current 10 state. Calculate the value.
10상태에서 만나는 두 패스의 거리값은 제2비교 및 선택부(53-2)에 인가되고, 제2비교 및 선택부(53-2)은 이 두값을 비교하여 작은 값을 갖는 패스를 생존패스로 선택한다.The distance value of the two paths meeting in the state 10 is applied to the second comparison and selection unit 53-2, and the second comparison and selection unit 53-2 compares these two values to survive the path having a smaller value. To select.
제3계산부(52-31~52-32)는 01상태에서 만나는 두 패스의 거리값을 계산한다. 즉, 계산부(52-31)는 제2저장부(51-2)에 저장되어 있던 이전구간의 10상태의 누적된 거리값에 입력 d2을 누적시켜 현재 01상태에서 만나는 두 패스중 한 패스의 거리값을 계산한다.The third calculators 52-31 to 52-32 calculate distance values of two passes that meet in the 01 state. That is, the calculation unit 52-31 accumulates the input d 2 on the accumulated distance value of the 10 states of the previous section stored in the second storage unit 51-2, and passes one of the two passes that meet at the current state 01. Calculate the distance value of.
졔산부(52-32)는 제4저장부(52-4)에 저장되어 있던 이전구간의 11상태의 누적된 거리값에 입력 d2을 누적시켜 현재 01상태에서 만나는 두 패스중 다른 패스의 거리값을 계산한다.The calculation unit 52-32 accumulates the input d 2 on the accumulated distance value of the 11 states of the previous section stored in the fourth storage unit 52-4, and the distance of the other passes among the two passes that meet at the current 01 state. Calculate the value.
이상태에서 만나는 두 패스의 거리값은 제3비교 및 선택부(53-3)에 인가되고, 제3비교 및 선택부(53-3)는 이 두값을 비교하여 작은 값을 갖는 패스를 생존패스로 선택한다.The distance values of the two paths meeting in this state are applied to the third comparison and selection unit 53-3, and the third comparison and selection unit 53-3 compares these two values to make a path having a small value as a survival path. Choose.
제4계산부(52-41~52-42)는 11상태에서 만나는 두 패스의 거리값을 계산한다. 즉, 계산부(52-41)는 제2저장부(51-2)에 저장되어 있던 이전구간의 10상태의 누적된 거리값에 입력 d3을 누적시켜 현재 11상태에서 만나는 두 패스중 한 패스의 거리값을 계산한다.The fourth calculators 52-41 to 52-42 calculate distance values of two passes that meet in the 11 state. That is, the calculation unit 52-41 accumulates the input d 3 on the accumulated distance value of the 10 states of the previous section stored in the second storage unit 51-2, and passes one of the two passes that meet in the current 11 states. Calculate the distance value of.
계산부(52-42)는 제4저장부(52-4)에 저장되어 있던 이전구간의 11상태의 누적된 거리값에 입력 d3을 누적시켜 현재 11상태에서 만나는 두 패스중 다른 패스의 거리값을 계산한다.The calculation unit 52-42 accumulates the input d 3 on the accumulated distance value of the 11 states of the previous section stored in the fourth storage unit 52-4, and then calculates the distance of the other passes among the two passes that meet in the 11 states. Calculate the value.
11상태에서 만나는 두 패스의 거리값은 제4비교 및 선택부(53-4)에 인가되고, 제4비교 및 선택부(53-4)는 이 두값을 비교하여 작은 값을 갖는 패스를 생존패스로 선택한다.The distance value of the two passes meeting in the state 11 is applied to the fourth comparison and selection unit 53-4, and the fourth comparison and selection unit 53-4 compares these two values to survive the path having a smaller value. To select.
제10도는 제9도의 패스히스토리계산부(70)의 동작을 설명하기 위한 트렐리스 다이어그램이고, 제11도는 패스히스토리계산부(70)의 메모리(D11~D44)에 저장된 생존패스값을 나타낸 것이다.FIG. 10 is a trellis diagram for explaining the operation of the path history calculator 70 of FIG. 9, and FIG. 11 shows the survival path values stored in the memories D11 to D44 of the path history calculator 70. FIG. .
이때, 본 발명의 디코더는 트렐리스 인코더에 의해 인코딩된 신호를 복원시켜주는 것이므로 제10도에 도시된 본 발명의 트렐리스 다이어그램은 제5도와 동일하다.At this time, since the decoder of the present invention restores the signal encoded by the trellis encoder, the trellis diagram of the present invention shown in FIG. 10 is the same as that of FIG.
관찰구간중 제1구간에서 제10도 및 제11동에 도시된 바와 같이 제1비교 및 선택부(52-1)는 00상태에서 입력1의 패스를 생존패스로 선택하고, 제2비교 및 선택부(52-2)는 10상태에서 입력 0의 패스를 생존패스로 선택하며, 제3비교 및 선택부(52-3)는 01상태에서 입력 1의 패스를 생존패스로 선택하고, 제4비교 및 선택부(52-4)는 11상태에서 입력 0의 패스를 생존패스로 선택한다.As shown in FIGS. 10 and 11 in the first section of the observation section, the first comparison and selection unit 52-1 selects the path of input 1 as the survival pass in the 00 state, and the second comparison and selection. The unit 52-2 selects the path of the input 0 as the survival path in the 10 state, and the third comparison and selection unit 52-3 selects the path of the input 1 as the survival path in the 01 state, and performs the fourth comparison. And the selector 52-4 selects the path of input 0 as the survival path in the 11 state.
이와 같이 선택된 각 상태의 생존패스의 입력값은 제9도의 메모리(D41-D44)에 저장되고, 각 상태의 생존패스의 거리값은 다시 저장부(51-1~51-4)로 각각 인가되어 이전 누적값으로 된다.The input values of the survival paths of the selected states are stored in the memory D41-D44 of FIG. 9, and the distance values of the survival paths of the respective states are applied to the storage units 51-1 to 51-4, respectively. It is the previous cumulative value.
제2구간에서는 제10도 및 제11도에 도시된 바와 같이, 00, 10, 01, 11상태의 생존패스값이 0, 1, 1, 1로 선택되었다면 이값은 다시 제9도의 메모리(D41-D44)로 인가되고, 이 메모리(D41-D44)에 저장되어 있던 데이타는 메모리(D31-D34)로 이동된다.In the second section, as shown in FIG. 10 and FIG. 11, if the survival path values of the states 00, 10, 01, and 11 are selected as 0, 1, 1, and 1, this value is returned to the memory of FIG. The data stored in the memory D41-D44 is transferred to the memory D31-D34.
이와 같이 거리계산부(50)는 모든 관찰구간내에서 상기 동작을 반복하면 패스히스토리계산부(70)는 제10도와 같이 선택된 생존패스의 값을 제11도와 같이 저장하게 된다.As described above, when the distance calculator 50 repeats the above operation in all observation sections, the path history calculator 70 stores the selected survival path value as shown in FIG.
따라서, 모든 관찰구간내에서 생존패스가 선택되면 패스히스토리계산부(70)는 관찰구간중 최초 구간(제1구간)의 생존패스값을 역추적하여 메모리(80)로 출력한다. 즉, 최적패스계산부(60)는 거리계산부(50)로 부터 각 상태의 생존패스의 거리값이 인가되면 이들을 비교하여 값이 가장 작은 패스를 최적패스로 선택한다.Therefore, when the survival path is selected in all observation sections, the path history calculator 70 traces the survival path values of the first section (first section) of the observation sections back to the memory 80. That is, when the distance value of the survival path of each state is applied from the distance calculator 50, the optimum path calculator 60 selects the path having the smallest value as the optimum path.
여기서, 제11도에 도시된 바와 같이 00상태의 패스가 최적패스라 하면 최적패스계산부(60)는 최적패스의 상태인 00를 패스히스토리계산부(70)로 출력한다. 패스히스토리계산부(70)는 00값에 따라 메모리(D41)만이 인에이블되어 저장되어 있던 신호 "1"가 출력된다. 따라서, 제4관찰구간에서는 00상태가 최적의 패스가 된다.Here, as shown in FIG. 11, if the path in the 00 state is an optimal path, the optimum path calculator 60 outputs 00, which is a state of the optimum path, to the path history calculator 70. FIG. The pass history calculation unit 70 outputs a signal " 1 " which is only enabled and stored in the memory D41 in accordance with the 00 value. Therefore, the 00 state is the optimum path in the fourth observation section.
메모리(D41)의 출력신호 "1"에 의해 점선으로 연결된 메모리(D33)가 인에이블되어 저장되어 있던 신호 "1"가 출력되고, 제3관찰구간에서는 01상태가 최적의 패스가 된다.The output signal "1" of the memory D41, which is connected to the dotted line by the memory D33, is enabled and stored, and the signal "1" stored therein is output. In the third observation section, the 01 state is an optimal path.
메모리(D33)의 출력신호 "1"에 의해 점선으로 연결된 메모리(D24)가 인에이블되어 저장되어 있던 신호 "1"가 출력되고, 제2관찰구간에서는 11상태가 최적의 패스가 된다.The output signal "1" of the memory D33, the memory D24 connected by the dotted line is enabled and stored, and the signal "1" stored therein is output, and the 11 state is the optimum path in the second observation section.
메모리(D24)의 출력신호 "1"에 의해 점선으로 연결된 메모리(D14)가 인에이블되어 저장되어 있던 "0"이 출력되고, 제1구간에서는 11상태가 최적패스가 된다.By the output signal "1" of the memory D24, the memory D14 connected by the dotted line is enabled and stored, and "0" stored therein is output. In the first section, the state 11 is the optimum path.
패스히스토리계산부(70)는 최초 구간의 최적패스인 11상태와 그때의 값 "0"을 메모리부(80)로 인가한다. 메모리는 11상태에서 0값을 입력하고, 이값으로 부터 송신부의 트렐리스 인코더의 입력신호를 출력한다.The path history calculation unit 70 applies the state 11, which is the optimal path of the first section, and the value "0" at the time to the memory unit 80. The memory inputs a value of 0 in state 11, and outputs an input signal of the trellis encoder of the transmitter from this value.
제10도에서 보는 바와 같이 이전 0구간과 제1구간을 살펴보면 11상태에서 만나는 두 패스 10와 11상태중 0값이 택해지려면 상측에서 만나는 10이 되어야 한다. 이는 10에서 11로 전이(transition)가 생겼음을 의미하므로 10에서 11로 전이가 발생되려면 그때의 트렐리스 인코더의 값이 "1"이었음을 알 수 있다. 따라서 메모리(80)는 이값 "1"을 출력하게 되고, 데이타의 시프트와 메모리의 인에이블 방법을 이용하여 트렐리스 인코더의 입력값을 역추적할 수 있다.As shown in FIG. 10, when looking at the previous section 0 and the first section, the two paths 10 encountered in the 11 state and the value 10 in the 11 state must be 10 met in order to be selected. Since this means that a transition from 10 to 11 occurs, it can be seen that the value of the trellis encoder at that time was "1" in order for the transition from 10 to 11 to occur. Therefore, the memory 80 outputs this value "1", and it is possible to trace back the input value of the trellis encoder by using the data shift and the memory enable method.
상기한 바와 같은 본 발명에 따르면, 인코딩된 신호를 복원시키기 위해 종래에는 12개의 디코더를 사용하였으나 본 발명에서는 간단한 메모리와 하나의 디코더를 사용하여 하드웨어적으로 간단하게 구현할 수 있으며, 메모리 구조가 규칙적이므로 관찰영역의 확장시 메모리 구조를 용이하게 확장시킬 수 있다.According to the present invention as described above, 12 decoders are conventionally used to recover an encoded signal, but in the present invention, hardware can be simply implemented using a simple memory and a decoder, and the memory structure is regular. When the viewing area is expanded, the memory structure can be easily expanded.
또한 본 발명의 2비트 4상태뿐만 아니라 일반적인 비터비 디코딩 알고리즘에 의해 3비트 8상태 이상으로도 쉽게 확장하여 적용할 수 있다.In addition, the present invention can be easily extended to 3 bits 8 states or more by the general Viterbi decoding algorithm as well as the 2 bits 4 states of the present invention.
Claims (8)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940007635A KR970008420B1 (en) | 1994-04-12 | 1994-04-12 | Viterbi decoding apparatus for hdtv |
EP94402981A EP0677967A3 (en) | 1994-04-12 | 1994-12-21 | Viterbi decoder for a high definition television. |
US08/371,018 US5844945A (en) | 1994-04-12 | 1995-01-11 | Viterbi decoder for a high definition television |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940007635A KR970008420B1 (en) | 1994-04-12 | 1994-04-12 | Viterbi decoding apparatus for hdtv |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950030660A KR950030660A (en) | 1995-11-24 |
KR970008420B1 true KR970008420B1 (en) | 1997-05-23 |
Family
ID=19380875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940007635A KR970008420B1 (en) | 1994-04-12 | 1994-04-12 | Viterbi decoding apparatus for hdtv |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR970008420B1 (en) |
-
1994
- 1994-04-12 KR KR1019940007635A patent/KR970008420B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR950030660A (en) | 1995-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6088404A (en) | Method and apparatus for decoding trellis code data | |
MXPA05012227A (en) | Enhanced vsb viterbi decoder. | |
JP2002515210A (en) | Decoder for lattice coded interleaved data stream and HDTV receiver including the decoder | |
JPH07221655A (en) | Communication system and information processing method | |
US5502736A (en) | Viterbi decoder for decoding error-correcting encoded information symbol string | |
KR100195741B1 (en) | Variable rate vitervi decoder | |
US7289569B2 (en) | HDTV trellis decoder architecture | |
KR100212854B1 (en) | Deinterleaving and output proccessing apparatus of trellis decoder | |
KR970008420B1 (en) | Viterbi decoding apparatus for hdtv | |
CN100527803C (en) | Enhanced VSB viterbi decoder | |
KR100237490B1 (en) | An apparatus for tracebacking survivor path of trellis code data | |
US20050235193A1 (en) | Low-latency high-speed trellis decoder | |
KR0172885B1 (en) | Integrated trellis decoder for hdtv | |
JPH0818461A (en) | Maximum likelihood error correction system and correction device | |
KR19980066172A (en) | High Definition TV, Grid Decoder | |
US7020223B2 (en) | Viterbi decoder and method using sequential two-way add-compare-select operations | |
US8370726B2 (en) | Soft output viterbi decoder architecture | |
KR0144837B1 (en) | Decoding method and apparatus of optimum decoding path | |
EP0677964A2 (en) | HDTV Viterbi decoder | |
KR970008418B1 (en) | Viterbi decoder for hdtv | |
KR100258234B1 (en) | Trellis code modulation | |
Schweikert et al. | Trellis-coded modulation with high-speed low complexity decoding | |
KR100236007B1 (en) | Viterbi decoder and its method | |
KR100237489B1 (en) | An apparatus for calculating branch matric in trellis code decoder | |
KR101154954B1 (en) | Apparatus and method for transmitting/receiving digital broadcasting signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090619 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |