KR950015051B1 - Viterbi decoding method - Google Patents

Viterbi decoding method Download PDF

Info

Publication number
KR950015051B1
KR950015051B1 KR1019930022611A KR930022611A KR950015051B1 KR 950015051 B1 KR950015051 B1 KR 950015051B1 KR 1019930022611 A KR1019930022611 A KR 1019930022611A KR 930022611 A KR930022611 A KR 930022611A KR 950015051 B1 KR950015051 B1 KR 950015051B1
Authority
KR
South Korea
Prior art keywords
decoding
viterbi
amount
data
survivors
Prior art date
Application number
KR1019930022611A
Other languages
Korean (ko)
Other versions
KR950013117A (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 KR1019930022611A priority Critical patent/KR950015051B1/en
Publication of KR950013117A publication Critical patent/KR950013117A/en
Application granted granted Critical
Publication of KR950015051B1 publication Critical patent/KR950015051B1/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/4115Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

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

Abstract

The viterbi decoding method for decoding according to a branch matrix of the data column received from a transmission channel and reducing the amount of decoding operation, comprises the steps of: dividing a predetermined data length by a predetermined range according to a memory capacity in a coder of a transmitter; and obtaining the matrix of each section of the divided data and decoding by the number of predetermined survivors in the obtained matrix.

Description

비터비 디코딩 방법Viterbi decoding method

제1도는 제너럴 인스트루먼트(GI)사가 개발한 Digicipher 방식에서의 트렐리스 부호 변조(Trellis Coded Modulation) 방식의 디코더를 예시하는 블럭도.1 is a block diagram illustrating a trellis coded modulation modulation decoder in a digitipher system developed by General Instruments (GI).

제2도는 제1도에 도시된 선행하는 비터비 디코더에서의 디코딩 연산 방법을 예시하는 도면.FIG. 2 illustrates a decoding operation method in the preceding Viterbi decoder shown in FIG.

제3도는 본 발명에 따른 개선된 비터비 디코딩 방법을 예시하는 도면.3 illustrates an improved Viterbi decoding method according to the present invention.

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

10 : 프루너 메모리 20 : 비터비 디코더10: Pruner Memory 20: Viterbi Decoder

30 : 양자화 레벨 인터벌 제어수단 40 : 차등 디코더30: quantization level interval control means 40: differential decoder

50 : 지연수단 60 : 선택수단50: delay means 60: selection means

70 : 트렐리스 디코더 포맷터70: Trellis Decoder Formatter

본 발명은 디지탈 복소시스템에서의 트렐리스 부호 변조(Trellis Coded Modulation ; TCM) 방식에 관한 것으로, 특히 TCM 방식내의 비터비 디코더(Viterbi decoder)에서 트렁케이션 길이(Truncation Length ; TL)를 분할하여 각 섹션마다 반-생존자(Semi-Survivor)를 산출하여 디코딩 함으로써 디코딩의 연산량을 감소한 개선된 비터비 디코딩 방법에 관한 것이다.The present invention relates to a Trellis Coded Modulation (TCM) scheme in a digital complex system. In particular, the truncation length (TL) is divided by a Viterbi decoder in a TCM scheme. The present invention relates to an improved Viterbi decoding method that reduces the computational amount of decoding by calculating and decoding a semi-survivor for each section.

일반적으로, 디지칼 복조시스템은 디지탈 변조되어 수신되는 신호를 복조하여 원래의 상태로 복원하기 위한 것으로써, 이러한 디지탈 복조시스템에 사용되는 비터비 알고리즘은 이퀄라이저(Equalizer) 및 복조기(Demodulator)장치 등을 통해 복호된 신호에 대하여 동일한 선형 관계식을 사용하여 부호화하는 오류 복구 코드의 일종인 콘볼루션 부호(Convolution Code)에 대해 복호화하는 알고리즘이다. 통상적인 비터비 알고리즘은 최대 개연성 복호(Maximum Likelihood Decoding ; MLD) 방식을 이용하여 채널을 통하여 수신되는 신호와 예측한 신호간에 누적 거리(Accumulated distance)가 큰 것을 제거하면서 가장 작은 누적 거리를 갖는 경로(Path)를 추적하여 복호함으로써 가능한 모든 정보에 대하여 복호 에러율을 최소로 하는 방식이다.In general, a digital demodulation system is for demodulating a signal received by being digitally modulated and restoring it to its original state. This algorithm decodes a convolution code, which is a type of error recovery code that is encoded using the same linear relational expression with respect to a signal decoded through the same. Conventional Viterbi algorithm uses the Maximum Likelihood Decoding (MLD) method to remove the large accumulated distance between the signal received through the channel and the predicted signal, while the path having the smallest accumulated distance ( By tracking and decoding the path), the decoding error rate is minimized for all possible information.

제1도에는 전술한 비터비 알고리즘을 사용하여 복호화하는 일반적인 디지탈 복호시스템이 도시된다. 도시된 바와 같이, 일반적인 디지탈 복호시스템(100)은 이퀄라이저(도시되지 않음)를 통해 입력되는 동위상(1nphase ; 1) 신호와 직각 위상(Quadrature phase ; QP) 신호를 입력신호로 하고 경판정(Hard Decision)에 의한 비부호화 비트와 연판정(Soft Decision)을 위한 가지평가량(Branch Metric) 데이타를 출력하기 위한 프루너 메모리(10)와, 프루너 메모리(10)에서 출력되는 가지평가량 데이타에 의하여 비터비 디코딩하기 위한 디코더(20)와, 비터비 디코더(20)에서 출력되는 신호에 의하여 연결정에 의한 양자화 레벨 간격을 제어하기 위한 부호화비트를 출력하기 위한 양자화레벨 간격제어수단(30)과, 비터비 디코더(20)에서 출력되는 신호를 차등적으로 디코드하기 위한 차등디코더(40)와, 프루너 메모리(10)에서 출력되는 비부호화 비트를 소정 기간동안 지연하기 위한 지연수단(50)과, 지연수단(50)에서 출력되는 신호를 양자화 레벨 간격 제어수단(30)에서 출력되는 신호에 의하여 선택하여 연결정에 의한 양자화레벨로 결정하여 출력 하기 위한 선택수단(60)과, 선택수단(60)에서 출력되는 신호와 차등디코더(40)에서 출력되는 신호에 의하여 트렐리스 디코더(도시되지 않음)를 위한 데이타배열을 하기위한 트렐리스 디코더 포맷터(70)로 이루어진다.1 shows a general digital decoding system for decoding using the Viterbi algorithm described above. As shown in the drawing, the general digital decoding system 100 uses a 1 phase (1 nphase) signal and a quadrature phase (QP) signal input through an equalizer (not shown) as input signals, and hard decision (Hard). Viterbi decoding based on pruner memory 10 for outputting uncoded bits and branch metric data for soft decision by Decision and branch metric data output from pruner memory 10 A quantization level interval control means 30 for outputting a coded bit for controlling the quantization level interval by the connection by the decoder 20, a signal output from the Viterbi decoder 20, and a Viterbi decoder A differential decoder 40 for differentially decoding the signal output from 20 and delay means for delaying an unsigned bit output from the pruner memory 10 for a predetermined period of time ( 50), selection means 60 for selecting the signal output from the delay means 50 by the signal output from the quantization level interval control means 30 to determine and output the quantization level by the connection tablet; It consists of a trellis decoder formatter 70 for arranging data for a trellis decoder (not shown) by the signal output from the means 60 and the signal output from the differential decoder 40.

전술한 바와 같이 구성되어 복호하는 디지탈 복호시스템에서 비터비 디코더(20)는 프루너 메모리(10)를 통해 수신되는 신호와 예측한 신호 사이의 유사성을 평가량(Metric) 이라는 수치로 표현하여 기설정된 길이()(tau)만큼 연산하여 그 값이 가장 큰, 즉 가장 유사한 신호경로를 결정한다.In the digital decoding system configured and decoded as described above, the Viterbi decoder 20 expresses the similarity between the signal received through the pruner memory 10 and the predicted signal by a numerical value called a metric. (tau) to determine the signal path with the largest value, that is, the most similar signal path.

제2도를 참조하면, 제2도는 제1도에 도시된 선행하는 비터비 디코더(20)에서의 디코딩 연산 방법을 예시하는 도면으로써, 먼저 상태 1로의 가지(Branch)를 모두 산출해서 수신되는 신호와 예측한 신호 사이의 평가량을 산출한다. 또한 상태 1로의 가지수는 (n,k)(여기서 n은 출력수, k는 입력수를 나타냄) 콘볼루션 부호인 경우, k가 될 것이다. 이중에서 가장 큰 평가량을 갖는 가지만 남겨놓고 나머지는 모두 제거한다. 이러한 과정을 상태 2,3,…2m까지 반복하면 모두 2m개 상태의 가지를 얻을 수 있을 것이다.Referring to FIG. 2, FIG. 2 is a diagram illustrating a decoding operation method of the preceding Viterbi decoder 20 shown in FIG. 1. First, a signal received by calculating all branches to state 1 is received. Calculate the evaluation amount between and the predicted signal. The number of branches to state 1 will also be k if (n, k) where n represents the number of outputs and k represents the number of inputs. Leave only the branch with the highest valuation, and remove all others. This process is carried out in states 2,3,... If you repeat up to 2m, you will get 2m branches.

전술한 비터비 디코딩 방법에서는 한 상태(=1)의 연산이 끝나면 이전 상태의 방식과 동일하게 다음 상태(=2)를 반복하는데, 이 경우는 이전 상태의 평가량에다 현재 상태에서 연산한 평가량 값을 가산해서 가장 큰 평가량값을 갖는 가지를 선택한다. 이러한 과정을 통상 구속 길이(Constraint Length)(L)(메모리 갯수(m)+1)의 5배 정도 되는 트렁케이션 길이(TL)까지 반복하여 연산하고, 여기서 최종 가장 큰 값의 평가량을 갖는 경로를 생존자(Survivor)로 설정한다.In the Viterbi decoding method described above, one state ( = 1), then the next state ( = 2) is repeated. In this case, the branch having the largest evaluation value is selected by adding the evaluation value calculated in the current state to the evaluation amount of the previous state. This process is repeated until the constraint length (L) (the number of memories (m) + 1) of the truncation length (TL) is about 5 times, where the path with the largest evaluation value is obtained. Set as Survivor.

이같은 선행기술의 비터비 디코딩 방법에 있어서의 디코딩 연산량은 각 상태마다, 즉 2m 상태의 각각에서 평가량이 가장 큰 가지를 설정해야 하므로 2m×만큼이 소요될 것이다. 그러므로 상태수, 즉 메모리수(m)가 증가할 수록 그 연산량은 매우 증가하게 된다.In the Viterbi decoding method of the prior art, the amount of decoding operations is required to set the branch having the largest evaluation amount in each state, that is, in each of the 2m states. It will take as long. Therefore, as the number of states, that is, the number of memories m, increases, the amount of computation increases.

예를들어 m이 7인 경우, 상태수는 27, 즉 256이 되므로, 선행기술의 방식에 의한 디코딩 방식은 연산량이 매우 방대하다는 문제점이 있다.For example, when m is 7, since the number of states is 27, that is, 256, the decoding method according to the prior art method has a problem that the amount of calculation is very large.

따라서 본 발명은 디지탈 복호시스템에서의 비터비 디코딩의 연산량을 감소하기 위해 기설정된 범위로 트렁케이션 길이를 분할하여 각 섹션마다 반 생존자를 산출하여 디코딩하는 비터비 디코딩 방법을 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a Viterbi decoding method for calculating and decoding half survivors for each section by dividing a truncation length into a predetermined range in order to reduce the amount of Viterbi decoding calculation in the digital decoding system.

본 발명의 비터비 디코딩 방법에 따르면 전송 채널로부터 수신되는 데이타열의 가지평가량(Branch Matrix)에 따라 디코딩하여 디코딩 연산량을 감소시키는 방법에 있어서, 전송 채널로부터 수신되는 데이타 열의 가지평가량(Branch Matrix)에 따라 디코딩하여 디코딩 연산량을 감소시키는 방법에 있어서, 상기 수신되는 데이타열중에서 디코딩 수행이 실시간(Real Time) 처리가 가능하고, 수신기의 복호기측으로 수신되는 데이타를 저장할 수 있으며, 송신기의 부호기측에서의 메모리 용량에 따라 소정의 데이타 크기(Truncation Length)를 기설정된 범위로 분할하는 단계와 ; 분할된 데이타의 각 섹션의 평가량을 산출하고, 산출된 평가량중에서 기설정된 생존자(Survivor) 갯수만큼 디코딩하는 단계를 구비한다.According to the Viterbi decoding method of the present invention, a method of reducing decoding amount by decoding according to a branch matrix of a data string received from a transport channel, and according to a branch matrix of data string received from a transport channel In the method of decoding to reduce the amount of decoding operations, decoding can be performed in the received data sequence in real time (Real Time) processing, it is possible to store the data received at the decoder side of the receiver, according to the memory capacity at the encoder side of the transmitter Dividing a predetermined data length (Truncation Length) into a predetermined range; Calculating an evaluation amount of each section of the divided data, and decoding a predetermined number of survivors from the calculated evaluation amount.

이하 본 발명을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제3도는 제1도에 도시된 선행하는 디지탈 복조시스템에서의 비터비 디코더를 이용하여 본 발명을 실현하기 위한 바람직한 일실시예를 예시하는 도면으로써, 도시된 바와 같이 예를들어 트렁케이션 길이를 5L로 설정하고, 상태수를 2m으로 설정한다. 또한 전술한 트렁케이션 길이()란, 채널을 통해 수신되는 모든 데이타를 모두 한꺼번에 디코딩할 수 없으므로 실시간내에 디코딩하고, 복호기측에서 수신되는 데이타를 저장할 수 있으며, 송신기의 부호기측에서의 메모리 갯수를 고려하여 어느정도 정확성을 유지하는 최적의 크기의 데이타를 수신한 후 디코딩을 행하는데, 여기서는 전술한 최적의 크기란 본 발명을 구현하는 장치에서의 본 발명의 목적을 달성하기 위한 시뮬레이션을 행하여 후술하는 바와 같이 계산량이 최소화되는 데이타의 갯수로서 설정한다.FIG. 3 is a diagram illustrating one preferred embodiment for realizing the present invention using the Viterbi decoder in the preceding digital demodulation system shown in FIG. 1, for example a truncation length of 5L as shown. Set to 2m. In addition, the above-mentioned truncation length ( ) Cannot decode all the data received through the channel at once, so it can be decoded in real time, and the data received at the decoder side can be decoded. Decoding is performed after receiving data, wherein the optimal size described above is set as the number of data which minimizes the amount of calculation as described below by performing a simulation to achieve the object of the present invention in a device implementing the present invention. do.

그리고를 섹션갯수로 나누고, 전술한 비터비 디코딩 방식을 적용한다.And Is divided by the number of sections, and the aforementioned Viterbi decoding scheme is applied.

즉, 먼저, 제1섹션의 평가량을 산출하고, 산출된 평가량중에서 평가량이 가장 큰 것을 최상위 상태(즉, 상태 1,2,…2m순으로)에서부터 생존자 갯수만큼만 남기고 나머지는 제거한다. 이때 잔류 생존자를 반-생존자로 지칭한다. 도시된 바와 같이 섹션수를 5, 생존자수를 전단계 생존자의 반으로 하였을때의 본 발명의 일실시예에 따른 비터비 디코딩 연산량(A)은 다음식과 같이 얻을 수 있다. 즉,That is, first, the evaluation amount of the first section is calculated, and the largest evaluation value is calculated from the highest state (i.e., in the order of states 1, 2, ... 2m) of the calculated evaluation amounts, and only the number of survivors is removed. Residual survivors are then referred to as semi-survivors. As shown, the Viterbi decoding amount (A) according to an embodiment of the present invention when the number of sections is 5 and the number of survivors is half of the previous stage survivors can be obtained as follows. In other words,

한편, 선행하는 비터비 디코딩 방식을 그대로 적용하고,=5L을 대입하면 비터비 디코딩의 연상량(B)은 다음식(2)과 같다. 즉,Meanwhile, the preceding Viterbi decoding method is applied as it is, Substituting = 5L, the associative amount (B) of Viterbi decoding is given by the following equation (2). In other words,

그러므로, 전술한 선행하는 방식에 따른 연산량을 본 발명에 따른 연산량으로 감산하면 다음식(3)과 같다. 즉,Therefore, subtracting the amount of calculation according to the foregoing scheme from the amount of calculation according to the present invention is as follows. In other words,

상기식(3)에서와 같이, 본 발명에 따른 비터비 디코딩 방식을 적용하는 경우, 3Lㆍ2m+2L만큼의 디코딩 연산량을 감소시킬 수가 있음을 알 수 있을 것이다.As in Equation (3), it can be seen that when the Viterbi decoding method according to the present invention is applied, the amount of decoding operations by 3L · 2m + 2L can be reduced.

따라서, 본 발명에 따른 비터비 디코딩 방법에 의하면, 트렁케이션 길이를 가장 최적의 기설정된 범위로 분할하여 각 섹션마다 반 생존자를 산출하여 디코딩 함으로써 디코딩의 연산량을 감소시킬 수 있다.Therefore, according to the Viterbi decoding method according to the present invention, the amount of decoding operation can be reduced by dividing the truncation length into the most optimal preset range and calculating and decoding the half survivors for each section.

Claims (1)

전송 채널로부터 수신되는 데이타열의 가지평가량(Branch Matrix)에 따라 디코딩하여 디코딩 연산량을 감소시키는 방법에 있어서, 상기 수신되는 데이타열중에서 디코딩 수행이 실시간(Real Time)처리가 가능하고, 수신기의 복호기측으로 수신되는 데이타를 저장할 수 있으며, 송신기의 부호기측에서의 메모리 용량에 따라 소정의 데이타 크기(Truncation Length)를 기설정된 범위로 분할하는 단계와; 분할된 데이타의 각 섹션의 평가량을 산출하고, 산출된 평가량 중에서 기설정된 생존자(Survivor) 갯수만큼으로 디코딩하는 단계를 구비하는 비터비 디코딩 방법.A method of reducing decoding operations by decoding according to a branch matrix of a data string received from a transmission channel, wherein decoding is performed in the received data string in real time and received by a decoder side of a receiver. Dividing a predetermined data length into a predetermined range according to a memory capacity at the encoder side of the transmitter; Calculating an evaluation amount of each section of the divided data, and decoding the number of survivors from the calculated evaluation amount by a predetermined number of survivors.
KR1019930022611A 1993-10-28 1993-10-28 Viterbi decoding method KR950015051B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930022611A KR950015051B1 (en) 1993-10-28 1993-10-28 Viterbi decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930022611A KR950015051B1 (en) 1993-10-28 1993-10-28 Viterbi decoding method

Publications (2)

Publication Number Publication Date
KR950013117A KR950013117A (en) 1995-05-17
KR950015051B1 true KR950015051B1 (en) 1995-12-21

Family

ID=19366813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930022611A KR950015051B1 (en) 1993-10-28 1993-10-28 Viterbi decoding method

Country Status (1)

Country Link
KR (1) KR950015051B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100386244B1 (en) * 1998-01-22 2004-01-24 엘지전자 주식회사 Viterbi decoder

Also Published As

Publication number Publication date
KR950013117A (en) 1995-05-17

Similar Documents

Publication Publication Date Title
US5406570A (en) Method for a maximum likelihood decoding of a convolutional code with decision weighting, and corresponding decoder
EP0671817A1 (en) Soft symbol decoding for use in an MLSE-equaliser or convolutional decoder
EP0771079A2 (en) Data transmission device
JP3280183B2 (en) Communication system and information processing method
CA2068117C (en) Viterbi decoder device
JP4537447B2 (en) Source channel association decoder and associated source channel association decoder
KR950015056A (en) Lattice Decoding Circuit
CN101997553A (en) Method and device for decoding convolution code
US6115436A (en) Non-binary viterbi decoder using butterfly operations
JP2755045B2 (en) Viterbi decoder
US5930298A (en) Viterbi decoder for decoding depunctured code
KR950015051B1 (en) Viterbi decoding method
KR20040044589A (en) A Soft-Input Decoding Method of Reed-Muller Codes Using Majority Logic and Apparatus thereof
US20070201586A1 (en) Multi-rate viterbi decoder
CN101411071A (en) MAP decoder with bidirectional sliding window architecture
CN1129234C (en) Method for forming transition metrics and receiver of cellular radio system
EP1024603A2 (en) Method and apparatus to increase the speed of Viterbi decoding
US5751734A (en) Decoding method and apparatus using trace deletion for Viterbi algorithm
US7852960B2 (en) Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof
Lee A very efficient transfer function bounding technique on bit error rate for Viterbi decoded, rate 1/N convolutional codes
Chandel et al. Viterbi decoder plain sailing design for TCM decoders
CA2353032A1 (en) Subtraction in a viterbi decoder
US5619540A (en) Transmission system using block-coded or trellis-coded modulations, receiver and decoder for such a system
KR20000049852A (en) Viterbi decoder
KR950010386A (en) Soft Decision Method Using Adaptive Quantization

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 19991130

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee