KR0170199B1 - Viterbi decoder - Google Patents

Viterbi decoder Download PDF

Info

Publication number
KR0170199B1
KR0170199B1 KR1019950024220A KR19950024220A KR0170199B1 KR 0170199 B1 KR0170199 B1 KR 0170199B1 KR 1019950024220 A KR1019950024220 A KR 1019950024220A KR 19950024220 A KR19950024220 A KR 19950024220A KR 0170199 B1 KR0170199 B1 KR 0170199B1
Authority
KR
South Korea
Prior art keywords
decoding
state
path
input information
convolutional code
Prior art date
Application number
KR1019950024220A
Other languages
Korean (ko)
Other versions
KR970013795A (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 KR1019950024220A priority Critical patent/KR0170199B1/en
Publication of KR970013795A publication Critical patent/KR970013795A/en
Application granted granted Critical
Publication of KR0170199B1 publication Critical patent/KR0170199B1/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/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" 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/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

Landscapes

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

Abstract

본 발명은 비터비 복호기에서 서바이버 경로를 수정하여 길쌈 부호에 존재하는 전송 손실을 없앰으로써, 통신 경로상의 전송 효율을 향상키도록 하는 순환 길쌈 부호의 복호 방법에 관한 것으로서, 서바이버 경로의 초기상태와 최종상태가 같아야 한다는 조건을 이용하여 복호여부를 판단한 후, 한 블록의 입력 정보를 최대 가능성(ML : Maximum Likelihood) 복호하는 제 1 과정과, 최대 가능성 복호를 수행한 후 서바이버 경로의 초기상태와 최종상태가 같은가를 비교해서 두 상태가 서로 다를 경우, 두 상태가 같아지도록 하는 제 2의 다른 경로로 서바이버 경로를 수정하는 제 2 과정과, 한 블록의 입력정보를 ML 복호할 때 수신된 심볼열을 순환 시프트시켜 ML 복호하는 제 3 과정으로 구성된다.The present invention relates to a decoding method of a cyclic convolutional code that improves transmission efficiency on a communication path by modifying a survivor path in a Viterbi decoder, thereby eliminating transmission loss present in the convolutional code. After determining whether to decode using the condition that the states should be the same, the first process of decoding the maximum likelihood (ML) of one block of input information, and the initial state and the final state of the survivor path after performing the maximum likelihood decoding. If the two states are different from each other by comparing the same, the second step of modifying the survivor path to the second different path to make the two states the same, and cycle through the received symbol string when ML decodes the input information of one block It consists of a 3rd process of shifting and ML decoding.

Description

순환길쌈부호의 복호방법Decoding method of cyclic weaving code

제1도는 종래 기술인 제로테일 길쌈부호기를 설명하기 위한 개념도.1 is a conceptual diagram illustrating a conventional zero tail weaving encoder.

제2도는 종래 기술인 테일바이팅 길쌈부호기를 설명하기 위한 개념도.2 is a conceptual diagram illustrating a tail biting weaving encoder according to the prior art.

제3도는 길쌈부호의 복호거리에 따른 성능 곡선.3 is a performance curve according to the decoding distance of the convolutional code.

제4도는 Trellis도의 기본구성인 Butterfly.4 is Butterfly, which is the basic configuration of Trellis.

제5도는 DTCC 방법에 의한 복호 특성.5 is a decoding characteristic by DTCC method.

제6도는 DTCC 방법에 상태 천이 예.6 shows an example of state transition in the DTCC method.

제7도는 시뮬레이션에 사용된 순환길쌈부호기.7 is a circular weaving encoder used in the simulation.

제8도는 dfree=10, m=7, r=1.2, g(1)=237, g(2)=345, L=32 인 순환길쌈부호의 성능.8 shows the performance of the cyclic weaving code with d free = 10, m = 7, r = 1.2, g (1) = 237, g (2) = 345, and L = 32.

제9도는 제안한 복호방법에서의 통계치.9 shows statistics in the proposed decoding method.

본 발명은 순환 길쌈 부호의 복호 방법에 관한 것으로서, 특히, 비터비(vitervi) 복호기에서 서바이버 경로(servivor path)를 수정하여 길쌈 부호에 존재하는 전송 손실을 없앰으로써, 통신 경로 상의 전송 효율을 향상시키도록 하는 순환길쌈부호의 복호방법에 관한 것이다.The present invention relates to a decoding method of a cyclic convolutional code, and more particularly, to improve transmission efficiency on a communication path by eliminating a transmission loss present in the convolutional code by modifying a survivor path in a vitervi decoder. It relates to a decoding method of a circular convolutional code.

일반적으로, 디지탈 무선 통신 시스템의 송신단은 데이타 송수신의 기능을 수행하기 위하여 소스부호기, 채널부호기, 변조기 등을 구비하고, 수신단은 복조기, 채널복호기, 소스복호기 등을 구비한다.In general, a transmitting end of a digital wireless communication system includes a source encoder, a channel encoder, a modulator, and the like, and a receiving end includes a demodulator, a channel decoder, a source decoder, and the like.

이때, 상기 소스부호기와 복호기는 전송채널 상의 점유대역을 줄이기 위해 데이터를 축소하고, 다시 원래의 데이터로 복원한다. 한편, 상기 변조기와 복조기는 합쳐서 모뎀이라 하며, 변조된 데이타를 반송주파수에 실어서 확산 주파수 대역으로 전송하거나, 확산 주파수 대역으로부터 수신하여 복조하는 장치이다.At this time, the source encoder and the decoder reduces the data to reduce the occupied band on the transmission channel, and restores the original data. On the other hand, the modulator and the demodulator are called a modem together, and is a device for carrying the modulated data on a carrier frequency to transmit in a spread frequency band, or to receive and demodulate from a spread frequency band.

또한, 상기 채널부호기와 복호기는 채널상의 에러를 보정하기 위해 채널을 부호화하거나 복호화하는데, 이를 체널코딩이라 한다.In addition, the channel encoder and decoder encode or decode a channel to correct an error on the channel, which is called channel coding.

이때, 상기 채널부호기는 채널상으로 전송하고자 하는 신호에 중복성을 추가하여 전송하는 역할을 하며, 채널복호기는 상기 중복성이 있는 데이타로 부터 채널에서 첨가된 에러를 보정하여 복호하는 역할을 한다. 이러한 채널코딩 기법중에 가장 대표적인 방식으로 길쌈부호를 이용한 방식이 널리 사용되고 있다.In this case, the channel encoder plays a role of adding redundancy to a signal to be transmitted on a channel, and the channel decoder corrects and decodes an error added in a channel from the data having redundancy. Among the channel coding techniques, a convolutional code is widely used.

이때, 상기 길쌈부호를 이용한 방식은 송신단에서 전송하고자 하는 신호(이 신호의 크기를 k라고 하자)를 모두 부호화한 후 추가로 구속장 길이 만큼 '0'비트를 부호화하여 전송하므로써, 수신단에서 레지스터의 상태가 '0'상태에서 시작하여 '0'상태에서 끝나게 되는 모든 가능한 상태를 표시한 변천도(트렐리스 다이어그램'(Trellis Diagram))를 분석한 후, 그 변천도 상의 경로중 최적 경로에 해당하는 코드워드(Codeword)로 복호화하는 것을 말한다.In this case, the convolutional coding scheme encodes all signals to be transmitted by the transmitting end (assuming the magnitude of this signal is k) and additionally encodes and transmits '0' bits by the constraint length, thereby receiving the register from the receiving end. Analyze the transition (Trellis Diagram), which shows all possible states where the state starts from the '0' state and ends in the '0' state, and then corresponds to the optimal path of the paths on the transition. Decoding with a codeword.

이때의 복호 방법으로는 최대 가능성 복호(ML : Maximum Likelihood)를 방법을 사용한다.At this time, the maximum likelihood decoding (ML) method is used as the decoding method.

이렇게 'k'비트의 입력정보의 끝에 구속장길이 'm' 만큼의 '0'비트를 첨가하고, 각 정보비트를 'n'개의 심볼로 부호화하는 길쌈부호를 (n, k, m) ZT(Zero Tail) 길쌈부호라 한다.In this way, a convolutional code that adds '0' bits of constraint length 'm' to the end of input information of 'k' bits and encodes each information bit into 'n' symbols is (n, k, m) ZT ( Zero Tail) Weaving code.

상기 심볼이라 함은 하나의 입력비트를 부호화한 결과를 칭한다. 또한, 첨가되는 '0'비트를 꼬리(Tail)비트라고 한다.The symbol refers to a result of encoding one input bit. In addition, the added '0' bit is called a tail bit.

상기와 같은 구속장의 정의에는 통상적으로 두가지의 관점이 사용되고 있는데, 하나는 부호기의 출력심볼을 만드는데 사용된 입력 비트수 'k'관점에 의한 것이고, 또, 다른 하나는 부호기를 구성하는데 사용된 시프트 레지스터의 길이 'm' 관점에 의한 것으로서, 후자의 경우 상기 길쌈 부호의 부호기를 구성하는 'm'을 구속장길이 또는 구속장이라 말한다.Two definitions are commonly used in the definition of the constraint, one of which is based on the viewpoint of the number of input bits used to make the output symbol of the encoder, and the other is the shift register used to construct the encoder. In the latter case, 'm' constituting the coder of the convolutional code is referred to as a constraint length or constraint length.

한편, 상기 두가지 관점에 의한 구속장 사이에는 'k=m+1'의 관계가 성립한다.On the other hand, a relationship of 'k = m + 1' is established between the constraints according to the above two viewpoints.

예를 들어, (n, k, m)길쌈부호는 'k'비트의 입력정보를 'n'개의 심볼로 매핑하여 채널상으로 전송되며, 이때, 전송손실은 'm'이고, 한 블록데이타의 길이를 'L'이라고 할 때 전송손실률은 m/(m+L)이 된다.For example, a (n, k, m) convolutional code is transmitted on a channel by mapping input information of 'k' into 'n' symbols, where transmission loss is 'm', When the length is 'L', the transmission loss rate is m / (m + L).

여기서 전송손실이 크다는 것은 통신채널이 점유대역폭이 커진다는 것을 의미한다.The large transmission loss here means that the bandwidth occupied by the communication channel is increased.

즉, 30㎑의 주파수 대역으로 통신이 가능한 경우에도 이보다 더 넓은 주파수 대역에서 통신을 해야하기 때문에 일정한 주파수 자원을 효과적으로 사용하지 못하게 된다. 그러므로, 이러한 방법은 구속장의 길이가 클수록 또는 부호화하고자 하는 데이타의 크기가 작을 수록 추가 정보전송에 의한 전송채널상의 손실이 커진다.In other words, even when communication is possible in the frequency band of 30 kHz, communication in a wider frequency band is required, which makes it difficult to effectively use a constant frequency resource. Therefore, in this method, the larger the length of the constraint field or the smaller the size of data to be encoded, the greater the loss on the transmission channel due to additional information transmission.

상기와 같은 ZT(Zero Tail) 길쌈부호기의 부호화 과정을 첨부한 제1도를 참조하여 살펴보면 다음과 같다.Referring to FIG. 1 attached to the encoding process of the Zero Tail (ZT) convolutional encoder as described above is as follows.

제1도는 종래의 방식을 적용한 (2, 1, 6) ZT 길쌈부호기를 예로 설명하기 위한 예시도로서, (2, 1, 6) 길쌈부호기는 한 비트의 입력신호가 2개의 심볼로 매핑되고 구속장이 6임을 나타내며, 이때의 비율은 1/2이다.FIG. 1 is an exemplary diagram for explaining a (2, 1, 6) ZT convolutional encoder using a conventional method as an example, and the (2, 1, 6) convolutional encoder is one bit input signal mapped to two symbols and constrained. The length is 6, and the ratio is 1/2.

도시되어 있는 덧셈기를 이진 덧셈기(Modulo - 2 ADDER)라고 할 때, (a)는 첫번째 입력신호를 부호화하는 과정을 (b)는 마지막 신호를 부호화하는 과정을 나타낸다.When the illustrated adder is called a binary adder (Modulo-2 ADDER), (a) denotes a process of encoding the first input signal and (b) denotes a process of encoding the last signal.

이와 같은 ZT 길쌈 부호의 경우 모든 입력정보비트를 부호화한 후 6비트의 0추가로 부호화를 수행하기 때문에 전송률 손실이 발생한다.In the case of such a ZT convolutional code, since all the input information bits are encoded, the encoding is performed by adding 6 bits of 0, resulting in a loss of a bit rate.

따라서, ZT 길쌈부호기에 의한 부호화를 수행할 때, 상기와 같은 전송손실을 없애기 위한 방법이 제공되어야 하는데, 이를 위해 직접절단(Direct Truncation) 방법과 순환길쌈 부호방법이 주로 사용되었으며 이중, 성능이 우수한 방법은 순환길쌈 부호방법이다.Therefore, when performing encoding by the ZT convolutional encoder, a method for eliminating the transmission loss as described above should be provided. For this, a direct truncation method and a cyclic convolutional coding method are mainly used. The method is a circular convolutional coding method.

상기 순환길쌈 부호방법에 대하여 첨부한 도면중 제2도를 참조하여 살펴보면, 제2도는 순환길쌈부호 방법인 (2, 1, 6) TB(Tail Biting)길쌈부호의 부호화 과정을 설명하기 위한 예시도이다.Referring to FIG. 2 of the accompanying drawings for the cyclic convolutional coding method, FIG. 2 is an exemplary diagram for describing a coding process of a (2, 1, 6) TB (Tail Biting) convolutional code, which is a cyclic convolutional coding method. to be.

여기서,(a)는 부호화하고자 하는 k개의 입력비트 중 마지막 6개의 입력비트(Ik, Ik-1, Ik-2, Ik-3, Ik-4, Ik-5)로 시프트 레지스터를 초기화한 후 첫번째 입력비트 l1을 부호화하는 과정을 나타내었고 차례대로 k 비트를 모두 부호화하고 나면 (b)도와 같이 되며, (b)의 상태를 시프트시키면, 레지스터는 초기상태(Ik, Ik-1, Ik-2, Ik-3, Ik-4, Ik-5)와 같아진다. 즉, 상기 순환길쌈 부호방법이란, 부호화하고자 하는 정보의 크기를 'k'비트라고 할 때, 우선 그 중 마지막 'm' 비트로 시프트 레지스터를 초기화한 후 입력정보를 차례대로 부호화한다. 이렇게 하여 'k' 비트의 입력정보를 모두 부호화하고 나면 레지스터는 초기 상태와 같게 되는 방식이다. 따라서, 복호기에서는 레지스터의 초기상태와 최종상태가 같다는 점을 이용하여 ML 복호방법으로 복호를 할 수 있다.Here, (a) shifts to the last six input bits (I k , I k-1 , I k-2 , I k-3 , I k-4 , I k-5 ) of k input bits to be encoded. After initializing the register, the process of encoding the first input bit l 1 is shown. Once all k bits are encoded in order, it becomes as shown in (b). If the state of (b) is shifted, the register is initialized (I k , I k-1 , I k-2 , I k-3 , I k-4 , I k-5 ). That is, in the cyclic convolutional coding method, when the size of information to be encoded is 'k' bits, the shift register is first initialized with the last 'm' bits, and then the input information is sequentially encoded. In this way, after the input information of the 'k' bits is encoded, the register becomes the same as the initial state. Therefore, the decoder can decode using the ML decoding method by using the fact that the initial state and the final state of the register are the same.

그러나, 상술한 순환길쌈 부호방법은 추가의 정보(Tail bit)를 부호화하지 않으므로써 ZT 길쌈부호에 비하여 꼬리(Tail)비트에 의한 전송손실을 제거하는 효과는 있지만, 부호화시에 시프트 레지스터를 초기화하기 위한 입력정보의 마지막 'm' 비트를 얻기 위해 'k' 비트 크기의 메모리가 필요하다는 단점이 있다. 또한, 'k' 비트 크기의 입력정보가 발생할 때까지 부호화를 중지해야하는 부호화 지연을 갖게 된다는 문제점이 있다.However, the above-described cyclic convolutional coding method has the effect of eliminating the transmission loss due to the tail bit as compared to the ZT convolutional code by not encoding additional information (Tail bit). The disadvantage is that a memory of the 'k' bit size is required to obtain the last 'm' bit of the input information. In addition, there is a problem in that an encoding delay is required to stop encoding until input information having a 'k' bit size occurs.

음성통신의 경우 송화자가 말을 한 후 수화자가 그 말을 들을 수 있을 때까지의 음성전달 지연시간은 약 70msec 이하여야 하는데, 만일 상기 부호화 지연에 의한 음성 전달 지연시간이 상기 70msec 이상이 되면 송수화자는 모두 통화에 거북함을 느끼게 된다. 따라서, 상기 부호화 지연은 전체 통신 시스템에 영향을 주게 된다.In the case of voice communication, the speech transmission delay time after the talker speaks until the talker can hear the speech should be about 70 msec or less. If the speech transmission delay time due to the encoding delay is 70 msec or more, Everyone feels awkward about the call. Therefore, the encoding delay affects the entire communication system.

이때, 상기 음성 전달 지연시간은 소스부호기, 채널부호기, 변조기, 복조기, 채널복호기, 소스복호기 등 통신시스템의 모든 블록에서 발생하는 지연시간이 포함된 값이므로 상기 음성전달 지연시간을 70msec 이하로 하기 위해 가능한 각 블록에서의 부호화 지연을 최소로 해주어야 하는 등의 시스템 설계상의 어려움이 발생되고 그로 인해 시스템의 신뢰성이 떨어지는 문제점이 발생된다.In this case, the voice propagation delay time includes a delay time occurring in all blocks of the communication system such as a source encoder, a channel encoder, a modulator, a demodulator, a channel decoder, a source decoder, and the like to reduce the voice propagation delay time to 70 msec or less. Difficulties in system design, such as minimizing the coding delay in each block as possible, are generated, resulting in a problem of inferior reliability of the system.

한편, 상기와 같은 문제점을 해소하기 위하여 근래에 제안되어진 방식으로 대한민국 특허 출원번호 93-16054호에 기재된 내용을 간략히 살펴보면, 상기 내용은 'k' 비트의 입력정보중 마지막 'm' 비트로 시프트 레지스터를 초기화하는 종래의 방식 대신에 상기 'k' 비트의 입력정보 중 처음 'm' 비트로 레지스터를 초기화하여 전송손실과 부호화지연을 감소시키고, 부호화 과정 중 필요한 메모리의 양을 축소시키는 방법에 관한 것이나, 상술한 개량된 순환 길쌈부호에서는 부호화 지연문제는 어느 정도 해소할 수 있을지 모르나, 순환길쌈 부호방식이 갖는 다른 문제점 즉, ML(Maximum Likelihood) 복호시에 많은 계산량이 요구된다는 문제점을 해소하지 못하였다.On the other hand, in order to solve the above problems briefly look at the contents described in the Republic of Korea Patent Application No. 93-16054 in a recently proposed method, the content is shifted to the last 'm' bit of the 'k' bit input information. Instead of the conventional method of initializing, a method of initializing a register with the first 'm' bits of the 'k' bits of input information to reduce transmission loss and encoding delay, and to reduce the amount of memory required during the encoding process, In the improved cyclic convolutional code, the encoding delay problem may be solved to some extent, but it does not solve the other problem of cyclic convolutional coding, that is, a large amount of computation is required for ML (Maximum Likelihood) decoding.

즉, 순환길쌈 부호기는 부호기의 시작상태 또는 종료상태를 수신단에서 알지 못하므로 비터비(Viterbi) 복호시 모든 가능한 상태에서 시작하고 끝나는 코드워드(Codeword)로 복호해야 하기 때문에, 많은 복호계산량을 요구하게 된다. 따라서, 상기 순환 길쌈 부호기의 경우, 그 부호의 성능이 매우 뛰어남에도 불구하고, 복호시의 계산량으로 인해 실제적으로 사용하지 못하고 있는 실정이다.That is, the cyclic convolutional coder does not know the start state or the end state of the coder, so it needs to decode with a codeword that starts and ends in all possible states during Viterbi decoding. do. Therefore, in the case of the cyclic convolutional encoder, even though the performance of the code is very excellent, it is not practically used due to the amount of computation during decoding.

그에 따라, 최근에는 상술한 바와 같은 순환길쌈 부호방식의 문제점 중 순환길쌈 부호기에서의 복호계산량 문제를 해소하고 성능의 우수성을 어느 정도 유지시킬 수 있도록 하기 위한 많은 연구가 진행중이며, 그중 진척이 되고 있는 방식이 준최적 복호방법이다. 상기의 준최적 복호방법 중에 가장 최근에 제안된 복호방법으로서 가장 적은 계산량을 요구하는 방법이 순환(Circular) 비터비 복호방법이다. 상기 순환(Circular) 비터비 복호방법은 1994년 Cox와 Sundberg에 의해 제안되었는데, 이는 순환길쌈부호의 트렐리스 다이어그램(Trellis Diagram)이 순환되는 특성을 이용하여 한 블록크기의 트렐리스(Trellis) 추적이 완성된 뒤에도 계속적으로 트렐리스(Trellis) 추적을 수행하는 방법으로 이 트렐리스(Trellis)추적을 중지하는 조건에(Stopping Rule)따라 다음 세가지 방법을 제안하였다.Accordingly, in recent years, many studies have been conducted to solve the problem of decoding calculation in the cyclic convolutional coder and to maintain a certain degree of performance. The method is a suboptimal decoding method. The most recently proposed decoding method among the sub-optimal decoding methods is a circular Viterbi decoding method that requires the least amount of computation. The circular Viterbi decoding method was proposed by Cox and Sundberg in 1994, which utilizes the characteristic that the trellis diagram of the circular weaving code is cycled. The following three methods are proposed in accordance with the Stopping Rule to stop the tracking of Trellis as a method of continuously tracking the Trellis even after the tracking is completed.

[중지 조건 1][Stop Condition 1]

모든 상태에 대하여 비터비 업데이트(Viterbi Update; 이하, VU라함)를 계산하므로써 각 상태에서의 메트릭(Metric)을 계산하고 저장한 후, 임의의 시간(t)에서 'k'번째 상태의 메트릭을 St(k)라고 표시할 때, St(k)와 St+N(k)의 차이가 모든 k에 대해서 똑같아질 때 VU를 중단한다. 왜냐하면 이후의 VU는 똑같은 결과를 가져오기 때문이다. 여기서 N은 입력정보열의 크기이고, VU는 하나의 시간 구간에 수행되는 모든 상태에서의 ACS(Add, Compare, Select) 연산작용으로 비터비 알고리즘(Viterbi Algorithm) 수행의 기본 연산작용이다.Compute and save the metric in each state by calculating the Viterbi Update (VU) for all states, then save the metric of the 'k' state at any time (t). when we say t (k), the difference between S t (k) and S t + N (k) will be stopped when the VU exactly the same for all k. This is because subsequent VUs produce the same results. N is the size of the input information string, and VU is the basic operation of performing the Viterbi Algorithm by adding, comparing, and selecting ACS operations in all states performed in one time interval.

상기와 같은 중지조건에는 다음과 같은 세가지 문제점이 있다. 첫째는 아주 많은 양의 정보를 메모리에 저장해 두어야 하며, 이때 필요한 메모리 양은 2M(N+1)이다. 둘째는 N+1번째 VU를 시작한 후 모든 상태에서의 차이가 같은 지를 판단하기 위하여 가능한 모든 상태에 대해 비교를 수행해야 하는데, 이것을 매시간 구간마다 모든 상태에 대해 비교해야 하므로 상당히 많은 계산량을 요구한다. 세째는 이러한 비교를 수행할 때 분석(Resolution)에 관한 문제로 경 결정인 경우는 그 비교치도 정수이기 때문에 St(k)의 차이가 같아질 수 있으나 연 결정인 경우는 그렇지 않을 수 있다. 그러므로 허용 오차(Tolerance Error) ε를 정하여 둘 필요가 있다.There are three problems in the stopping condition as described above. First, a very large amount of information must be stored in memory, which requires 2 M (N + 1). Secondly, after starting the N + 1th VU, a comparison must be performed for all possible states to determine whether the differences in all states are the same, which requires a significant amount of computation since every time interval must be compared for all states. Third, in the case of performing such a comparison, the difference in S t (k) may be the same because the comparison value is also an integer in the case of hard decision, but may not be the case in annual decision. Therefore, it is necessary to set Tolerance Error ε.

상기와 같은 문제를 해결하기 위하여 다음과 같은 중지조건이 제안 되었다.In order to solve the above problems, the following stopping conditions have been proposed.

[중지 조건 2][Stop Condition 2]

처음 N번의 VU를 수행한 후 N개의 심벌 타임(Symbol Time) 이전의 결정워드를 비교하여, M개의 연속적인 결정워드가 같게 되면 업데이트(Update)를 중단하고 이때의 최적 매트릭을 갖는 코드 워드로 복호한다. M개의 연속된 결정워드를 선택한 이유는 M이 메모리 크기이기 때문이며 이 값이 정확하다면 그때의 상태를 정확히 추정할 수 있기 때문이다.Compares the decision words before N symbol times after performing the first N VUs, and when M consecutive decision words become equal, stops the update and decodes the code word with the optimal metric at this time. do. The reason for selecting M consecutive decision words is because M is the memory size, and if this value is correct, the state at that time can be estimated accurately.

[중지 조건 3][Stop Condition 3]

상술한 중지조건 1과 2를 동시에 만족하는 경우에 VU를 중단 한다.The VU is stopped when the above stop conditions 1 and 2 are satisfied at the same time.

이상에서 소개한 순환(Circular) 비터비 알고리즘에 의한 순환길쌈부호의 복호계산량은 비선형 길쌈부호에 대한 복호의 경우 기존의 방식에 비하여 계산량이 감소하는 것은 사실이나, 선형 길쌈부호의 복호시의 계산량에 비하여는 약 두배정도의 계산량을 필요로 한다. 그러므로, 지금까지 상술한 어떠한 방식의 순환길쌈부호의 복호계산량으로는 종전의 문제점 즉, 음성전달 지연시간의 허용범주인 약 70msec의 한계를 극복하지 못하는 문제점이 발생되었다.The decoding calculation of the cyclic convolutional code by the cyclic Viterbi algorithm described above is true in the case of decoding on the nonlinear convolutional code compared to the conventional method. In comparison, it requires about twice as much computation. Therefore, until now, the decoding calculation amount of the cyclic convolutional codes of any of the above-described methods does not overcome the conventional problem, that is, the limitation of about 70 msec, which is the allowable range of speech transmission delay time.

상기와 같은 문제점을 해소하기 위한 본 발명의 목적은 순환길쌈 부호의 트레리스 다이어그램(Trellis Diagram) 상에서 어떤 임의의 시간에 콜렉트 경로(Correct Path)가 지나가는 상태를 간단히 추정할 수 있다면 이 추정된 시간과 상태로 부터 비터비 복호를 수행하므로써 복호계산량을 줄일 수 있다는 점을 이용하여, 길쌈 부호에 존재하는 전송 손실을 없앰으로써, 통신 경로상의 전송 효율을 향상시키도록 하는 순환길쌈부호의 복호방법을 제공하는 데 있다.An object of the present invention for solving the above problems is to estimate the estimated time and the state of passing the Collect Path at any arbitrary time on a Trellis diagram of a cyclic convolutional code. By using Viterbi decoding from the state, the decoding calculation amount can be reduced, thereby eliminating the transmission loss present in the convolutional code, thereby providing a decoding method of the cyclic convolutional code to improve the transmission efficiency on the communication path. There is.

상기 목적을 달성하기 위한 본 발명의 특징은, 입력정보의 일부분을 사용하여 길쌈부호기의 초기상태를 결정하고 나머지 입력 정보를 모두 길쌈부호하고 난 다음, 초기상태를 결정하였던 입력정보를 길쌈부호화하는 순환길쌈부호의 복호화 방법에 있어서, 서바이버 경로의 초기상태와 최종상태가 같아야 한다는 조건을 이용하여 복호여부를 판단한 후, 한 블록의 입력 정보를 최대 가능성(ML : Maximum Likelihood) 복호하는 제 1 과정과, ML복호를 수행한 후 서바이버 경로의 초기상태와 최종상태가 같은가를 비교해서 두 상태가 서로 다를 경우, 두 상태가 같아지도록 하는 다른 경로로 서바이버 경로를 수정하는 제2과정 및 한 블록의 입력정보를 ML복호할 때 수신된 심볼열을 순환시프트시켜 ML복호하는 제 3과정을 포함하는데 있다.A characteristic of the present invention for achieving the above object is a cycle of weaving encoding the input information that determines the initial state of the weaving encoder using a portion of the input information, and convolutionally encodes the remaining input information, and then determines the initial state. 1. A method of decoding a convolutional code, comprising: a first process of determining whether to decode a block using maximum likelihood (ML) after determining whether to decode using a condition that an initial state and a final state of a survivor path must be the same; After performing ML decoding, if the initial state and the final state of the survivor path are the same, and the two states are different from each other, the second process of modifying the survivor path to another path such that the two states are the same and input information of one block In the ML decoding, a third process of performing ML decoding by cyclically shifting the received symbol string is included.

이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 설명한다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings.

우선, 본 발명에서 사용하고자 하는 이론적 배경을 간략히 설명하면 다음과 같다. 일반적으로, 순환길쌈부호는 입력정보의 처음과 끝이 이어지는 정보열로 만들어 순환(Circular) 부호화를 수행하기 때문에 대응하는 트렐리스(Trellis)는 시작과 끝이 이어져 있는 형태를 가져야 하며, 이때, 상기와 같은 순환띠 형태의 트렐리스 다이어그램으로 부터 복호화 과정을 수행한다는 것은 컬렉트 경로가 매 시간 단위마다 상기 트렐리스상의 어느 경로를 통과하는가를 추정하는 것과 같다. 즉, 이러한 트렐리스 다이어그램에서 ML복호인 비터비 복호를 수행하므로써 서바이버 경로(Survivor Path)로 결정되는 경로는 고리의 형태를 가져야 한다. 따라서, 이 트렐리스상에서의 서바이버 경로는 시작과 끝이 이어져 있는 형태를 갖는다.First, the theoretical background to be used in the present invention will be briefly described as follows. In general, since a cyclic convolutional code performs a cyclic encoding by forming an information string that starts and ends an input information, a corresponding trellis must have a form in which a start and an end are connected. Performing the decoding process from the trellis diagram in the circular band form is equivalent to estimating which path on the trellis the collect path passes every time unit. In other words, by performing ML decoding Viterbi decoding in the trellis diagram, the path determined as the survivor path should have a ring shape. Thus, the survivor path on this trellis has a beginning and an end.

상기와 같은 서바이버 경로는 복호방식의 주요 안건으로써, 기존의 ZT 길쌈부호에서는 부호기의 상태가 '0' 상태에서 시작하고 끝나는 서바이버 경로로 복호화 과정이 수행되는 반면에, 순환길쌈 부호는 어떠한 상태이든 시작상태와 종료상태가 같게 되는 모든 경로 중 ML 경로로 복호를 한다. 그러므로, 순환길쌈 부호에서는 어떤 임의의 시간에 컬렉트 경로가 통과하게 되는 상태를 추정할 수만 있다면, 이로부터의 복호과정은 기존의 비터비 복호과정과 같아지기 때문에 계산 시간량은 단축되면서 동일한 성능을 얻게될 것이다.The survivor path is the main agenda of the decoding method. In the existing ZT convolutional code, the decoding process is performed as a survivor path in which the state of the encoder starts and ends in the state of '0', whereas the cyclic convolutional code starts in any state. Decode the ML path among all paths that have the same status and end status. Therefore, in the cyclic convolutional code, if it is possible to estimate the state that the collect path passes at any arbitrary time, the decoding process from this is the same as the existing Viterbi decoding process, which reduces the amount of computation time and improves the same performance. You will get

그에 따라, 본 발명에서는 임의의 시간에 컬렉트 경로가 통과하게 되는 상태를 추정하기 위해 다음과 같은 두가지 특징을 이용한다.Accordingly, the present invention uses the following two features to estimate the state that the collect path will pass at any time.

1) 직접절단(Direct Truncation) 방식에서의 성능은 경로 메모리(Path Memory)의 크기 τ가 τ5m (m : 구속장)일 때 기존의 제로테일(Zero Tail) 길쌈부호의 경우와 유사하다.1) The performance in the direct truncation method is similar to the conventional zero tail convolutional code when the path memory size τ is τ5m (m: restraint).

2) 채널에서 특정 구간내에 특정수 이상의 에러가 유발된다면, 서바이버 경로(Survivor Path)는 컬렉터 경로(Correct Path)와 달라질 수 있다.2) If a certain number of errors occur within a specific section of the channel, the Survivor Path may be different from the Collector Path.

상기와 같은 두개의 특징 때문에 길쌈부호는 버스트 에러(Burst Error)인 경우에 다른 부호방법에 비해 성능이 떨어진다. 그러나, 상기의 특징을 역으로 말하면 특정 구간내에 특정수 이하의 에러가 유발되었다면 그 구간내에서의 비터비 알고리즘(Viterbi Algorithm)은 적어도 그 구간내에의 첫번째 상태는 정착히 예측할 수 있다는 것이므로 본 발명에서 이용하고자 하는 것이다.Due to these two features, convolutional code is inferior in performance to other coding methods in the case of burst error. Conversely, in contrast to the above characteristics, if an error of less than a certain number is caused in a specific section, the Viterbi Algorithm in the section can predict at least the first state in the section. It is to use.

위의 두가지 특징은 ML복호 기술에서는 이미 알려진 사실이며, 당업자라면 충분히 이해하고 있을 것이므로 상세한 설명은 생략한다.The above two features are already known in ML decoding technology, and will be well understood by those skilled in the art, and thus detailed descriptions thereof will be omitted.

제3도는 상기 특징 중 첫 번째 특징을 확인하기 위해 dfree=10, m=7, g(1)=237, g(2)=345, 정보비트의 길이 L = 60이라고 가정한 후, 이에 대응하는 길쌈부호에 대한 디코딩 깊이(Decoding Depth)에 따른 성능을 모의 시험한 결과의 예시도이다. 제3도에는 채널에러율 p=0.035인 BSC(Binary Symmetric Channel) 채널에서의 DTCC, ZTCC, 순환길쌈부호(CCC, Circulat Convolutional Codes)에 대한 복호방법의 성능을 각 복호길이에 따라 나타낸 것이다.Figure 3 corresponds to the assumption that d free = 10, m = 7, g (1) = 237, g (2) = 345, length L of information bits L = 60 to identify the first of the above features. This is an exemplary diagram showing the results of simulating the performance according to the decoding depth for the convolutional code. 3 shows the performance of a decoding method for DTCC, ZTCC, and cyclic convolutional codes (CCC) in a binary symmetric channel (BSC) channel having a channel error rate p = 0.035 according to each decoding length.

여기서, CCC의 복호는 ML복호를 수행하였다. 상기 제3도에 도시되어 있는 시뮬레이션 상태도를 살펴보면 CCC의 성능은 ZTCC와 유사함을 알 수 있다.Here, the decoding of the CCC performed ML decoding. Looking at the simulation state diagram shown in FIG. 3, it can be seen that the performance of the CCC is similar to that of ZTCC.

그런데, ZTCC는 정보블록의 양쪽끝에서 m비트만큼의 길이에서는 CCC보다 성능이 우수하다. 이것은 ZTCC가 알려진 상태('0'상태)에서 시작하여 알려진 상태('0'상태)에서 끝난다는 것을 전제로 하기 때문에 부호기 상태추정이 정확해지므로써 발생한다.However, ZTCC outperforms CCC in lengths of m bits at both ends of the information block. This occurs because the encoder state estimate is accurate because it assumes that ZTCC starts in a known state ('0' state) and ends in a known state ('0' state).

즉, 특정시간에서의 부호기 상태가 정확하다면 그로부터 앞뒤로 m비트의 복호화는 비교적 정확해진다.In other words, if the encoder state at a specific time is correct, decoding of m bits back and forth from that time becomes relatively accurate.

이렇게 알려진 부호기 상태 때문에 ZTCC의 복호는 정확히 동일 오차 보호(Equal Error Protection)를 수행하지 못한다.Because of this known encoder state, the decoding of ZTCC does not perform exactly equal error protection.

그런데, CCC에서는 모든 비트의 부호화상황이 동일하기 때문에 정보블록의 어느 부분에서도 상태추정오류확률이 동일하면 모든 정보비트에 대해 동일한 복호성능을 나타낸다.However, in the CCC, since all bits have the same encoding, if the state estimation error probability is the same in any part of the information block, the same decoding performance is shown for all the information bits.

한편 DTCC의 경우는 마지막 수신 정보비트에 대한 오차 보호는 없다.On the other hand, in case of DTCC, there is no error protection for the last received information bit.

그러므로 DTCC에서 마지막 비트의 복호는 채널상에서의 오류확률과 같게 된다. 즉 마지막 비트는 노코딩(No Coding)인 경우와 같게 된다.Therefore, the decoding of the last bit in DTCC is equal to the error probability on the channel. That is, the last bit is the same as the case of no coding.

그러나 DTCC 역시 부호기가 알려진 상태(0상태)에서 시작하므로 복호기에서의 초기상태추정은 정확하기 때문에 처음부분의 복호성능은 ZTCC의 경우와 동일하게 우수하다. 이 DTCC의 그래프에서 복호시점으로부터 대략 5m보다 큰 부분에서는 ZTCC와 성능이 유사함을 알 수 있다.However, since the DTCC also starts in the known state (0 state), the initial state estimation in the decoder is accurate, so the decoding performance of the initial part is the same as that of the ZTCC. In the DTCC graph, the performance is similar to that of ZTCC in the portion larger than approximately 5m from the decoding point.

본 발명에서는 이러한 길쌈부호의 특징을 이용하여 다음과 같은 순환길쌈부호의 복호방법을 제안한다.The present invention proposes a decoding method of a cyclic convolutional code using the characteristics of the convolutional code as follows.

제안하는 복호 알고리즘 :Proposed decoding algorithm:

단계 1 : t=0에서 모든 상태의 초기 메트릭 값 M0(k)을 '0'으로 놓는다.Step 1: At t = 0 set the initial metric value M 0 (k) of all states to '0'.

단계 2 : 모든 수신신호에 대해서 비터비 알고리즘을 수행한다. 이때 각 상태에서의 서바이버 경로에 대한 초기상태를 저장해 둔다.Step 2: Perform Viterbi algorithm on all received signals. At this time, the initial state of the survivor path in each state is stored.

단계 3 : 최종적으로 모든 상태에 대한 서바이버 경로 중에서 최적 메트릭을 갖는 경로의 초기상태와 최종상태가 같으면 해당 서바이버 경로는 컬렉트(Correct) 경로로 간주하고 이 경로에 대한 코드워드로 복호한다. 만일 최적 메트릭을 갖는 서바이버 경로에서의 초기상태와 최종상태가 같지 않으면 수신신호를 구속장 m보다 큰 일정한 길이 τ1만큼 시프트시키고 단계 1부터 반복한다. (즉, 1=τ1에서 부터 시작한다.) 단계 1을 일정횟수 τ2만큼 수행했으면 단계 4 를 수행한다.Step 3: Finally, if the initial state and the final state of the path having the best metric among the survivor paths for all states are the same, the survivor path is regarded as a collect path and is decoded by a codeword for this path. If the initial state and the final state in the survivor path having the optimal metric are not the same, the received signal is shifted by a certain length tau 1 greater than the constraint length m and repeated from step 1. (Ie, start from 1 = τ 1 ). If step 1 is performed a predetermined number of times τ 2, then step 4 is performed.

단계 4 : 최적 메트릭을 갖는 서바이버 경로와 수신신호와의 에러 패턴(Error Pattern)을 구하고 이 에러 패턴 중 가장 긴 노에러 연속 순서의 중앙부분에 해당하는 시간과 이때의 통과 상태를 저장하고 이 시간과 상태에서 부호기가 시작하고 끝나는 비터비복호를 수행한다.Step 4: Obtain an error pattern between the survivor path and the received signal with the optimal metric, and store the time corresponding to the middle of the longest sequence of no error sequences and the passing state at this time. Performs Viterbi decoding at the state where the encoder starts and ends.

위의 제안방법 중 단계 3에서 서바이버 경로에 대한 초기상태와 최종상태를 비교할 때 경로 수정 기법을 사용한다.In step 3 of the proposed method, the path modification technique is used to compare the initial state and the final state of the survivor path.

이 경로 수정 기법은 제4도와 같이 트렐리스(Trellis) 도의 기본구성인 버터플라이 구조에서 수신신호에 에러가 발생하여 상태 i2에서의 서바이버 경로가 잘못 선택되었을 가능성을 배제하지 않는 것이다.This path correction technique does not exclude the possibility that the survivor path in state i 2 is incorrectly selected due to an error in the received signal in the butterfly structure, which is the basic configuration of the Trellis diagram as shown in FIG.

즉, 부호기의 상태가 상태 i에서 상태 i2로 천이하였다고 가정하자,That is, suppose that the state of the encoder has transitioned from state i to state i 2 ,

그런데 수신단에서의 수신신호에 에러가 발생하여 상태 i1에서 상태 i2의 가지가 서바이버 경로로 선택되었다면 단계 3에서 초기상태와 최종상태가 일치하지 않은 결과를 초래할 것이다.However, if an error occurs in the received signal at the receiving end and the branch of state i 2 is selected as the survivor path in state i 1 , the initial state and the final state in step 3 will be inconsistent.

이렇게 초기상태와 최종상태가 불일치하는 경우 서바이버 경로의 양쪽 끝부분에서 선택된 가지를 가능한 다른 가지인 경우로(이 경우 i 에서 i2로의 가지)가정하여 메트릭을 수정하고 초기상태와 최종상태를 비교해 보는 기법이다.If the initial state and the final state are inconsistent, the branch selected at both ends of the survivor path is considered to be another possible branch (in this case, i to i 2 ). Technique.

이상의 복호방법은 기존의 직접 절단 방법을 사용하였으며 DTCC방법이 수신신호의 처음부분 또는 끝 부분에 에러가 밀집되어 있는 경우에 상태의 추정이 부정확해지기 때문에 반복적으로 DTCC방법을 사용하는 방법이다.The above decoding method uses the conventional direct truncation method and the DTCC method repeatedly uses the DTCC method because the estimation of the state becomes inaccurate when the error is concentrated at the beginning or the end of the received signal.

즉 제3도에서와 같이 DTCC에 의한 처음 m비트의 길이에서 복호성능이 좋은 이유는 이 부호기가 항상 0상태에서 시작한다는 것을 전제로 하였기 때문이다.That is, as in FIG. 3, the reason why the decoding performance is good in the length of the first m bits by DTCC is that it is assumed that the encoder always starts in the zero state.

만일 DTCC에서 부호기가 0상태에서 시작하지 않고 임의의 상태에서 시작하였다면 이 부호기의 복호성능은 상당히 떨어지게 된다.If the encoder in DTCC does not start at zero but starts at any state, the decoding performance of this encoder is considerably degraded.

CCC 복호에서도 부호기의 초기상태를 모르지만 초기상태와 최종상태가 같아야 한다는 조건이 전제되기 때문에 이로 인하여 DTCC에 비하여 복호성능이 향상을 기대할 수 있다.In CCC decoding, although the initial state of the encoder is not known, the condition that the initial state and the final state must be the same is assumed. Therefore, the decoding performance can be expected to be improved compared to the DTCC.

본 제안 방법에서는 구속장 m 보다 큰 일정길이 τ1만큼 순환 시프트하여 비터비복호를 다시 할 수 있도록 하였다. 이것은 경로 수정에 의해서도 초기상태와 최종상태가 같아지는 최적 메트릭의 서바이버 경로를 선택할 수 없는 경우에 부호기의 초기상태 또는 최종상태의 추정이 어렵다고 판단한다. 그 이유는 길이 m만큼의 수신신호는 다음의 모든 상태로 천이가 가능하며 이 구간중에 일정수 이상의 에러가 발생한다면 그의 초기 상태의 추정이 불가능하기 때문이다.In this proposed method, Viterbi decoding can be performed again by cyclically shifting by a certain length τ 1 larger than the constraint length m. This determines that it is difficult to estimate the initial state or the final state of the encoder when the survivor path of the optimal metric whose initial state and the final state are the same by the path modification cannot be selected. The reason is that the received signal of length m can be transitioned to all of the following states, and if an error occurs more than a certain number of times in this section, its initial state cannot be estimated.

또한 이 제안방법은 다른 방법과 마찬가지로 채널상태에 따라 계산량이 많아지는 점을 고려하여 계산량에 대한 일정한 임계치를 두었다.In addition, this proposed method puts a certain threshold on the amount of calculation in consideration of the fact that the amount of calculation increases according to the channel state like other methods.

본 제안방법은 기존의 DTCC방법을 반복적으로 사용하는 방법이다.The proposed method is a method of repeatedly using the existing DTCC method.

그러나 기존의 DTCC 방법에서는 최적 메트릭을 갖는 서바이버 경로의 결정에 대한 기준이 없으나 본 제안 방법에서는 부호기의 초기상태와 종료상태가 같아야 한다는 복호조건이 추가되기 때문에 이를 이용하여 반복적으로 DTCC복호를 수행할지를 결정할수 있다.However, in the existing DTCC method, there is no criterion for determining the survivor path with the optimal metric. However, in the proposed method, the decoding condition that the initial state and the end state of the encoder must be the same is added. can do.

그러므로 본 제안방법에서의 기대효과를 예측하기 위해서 기존의 DTCC방법에 의한 복호특성을 조사해 보자.Therefore, in order to predict the expected effect of the proposed method, we examine the decoding characteristics by the existing DTCC method.

다음 제5도는 m=7, r=1/2 그리고 정보비트의 길이 L=32인 경우 CCC부호화한 부호심볼열을 DTCC복호방법에 의해 복호했을때의 복호특성을 나타낸다.5 shows decoding characteristics when the CCC coded code symbol string is decoded by the DTCC decoding method when m = 7, r = 1/2 and the length of the information bit L = 32.

이 그램에서 전송에러확률 p=0.0225, 0.0298, 0.0375, 0.0448인 경우 BSC(Binary Symmetric Channel)채널을 가정하였고, 100000번의 실험을 수행하였다.In this gram, the probability of transmission error p = 0.0225, 0.0298, 0.0375, 0.0448 was assumed to be BSC (Binary Symmetric Channel) channel, and 100000 experiments were performed.

그리고 최적 경로의 초기상태를 a, t=1인 그 다음 상태를 b, t=32인 최종상태를 d, 그리고 바로 이전상태인 t=31에서의 상태를 c로 표시하였으며, Pad는 초기상태 a에서 최종상태 d로 천이된 최적 경로를 서바이버 경로로 선택한 경우의 확률을 나타낸다(제6도 참조). 그리고 Pc는 서바이버 경로 t=31인 시점에서의 상태가 상태 c를 지나갈 확률을 나타낸다.The initial state of the optimal path is a, t = 1, the next state b, t = 32, the final state d, and the state immediately before t = 31, c, and P ad is the initial state. Probability in case of selecting the optimal path transitioned from a to the final state d as the survivor path (see FIG. 6). And P c represents the probability that the state at the time when survivor path t = 31 passes state c.

또한 Pad'은 초기상태 a에서 시작하여 t=31에서의 상태가 c이며 최종상태가 d'로 천이한 경우의 확률을 나타낸다.In addition, P ad ' represents the probability when the state at t = 31 is c and the final state transitions to d' starting from the initial state a.

이 확률은 BSC채널에서의 버터플라이 구조에 의해서 다음식으로 표시할 수 있다.This probability can be expressed by the following butterfly structure in the BSC channel.

일반적으로 채널상에서의 심볼에러확률 p를 갖는 BSC에서 올바른 상태천이확률을 P1, 상태천이 에러확률을 P2라고 표시할 때 이들은 다음과 같이 표현 될 수 있다.In general, in a BSC having a symbol error probability p on a channel, when the correct state transition probability is represented by P 1 and the state transition error probability is represented by P 2 , they can be expressed as follows.

제5도의 결과로부터 DTCC에 의한 복호방법은 그의 복호성능이 상당히 떨어지는 것을 알 수 있다. 이러한 성능 열화는 DTCC에 의한 복호에서 서바이버 경로가 최적 경로가 되지 못했을 경우의 복호에러가 상당히 많기 때문이다.From the results of FIG. 5, it can be seen that the decoding performance by DTCC is considerably inferior in its decoding performance. This performance deterioration is caused by a large number of decoding errors when the survivor path is not the optimal path in the decoding by DTCC.

그런데 DTCC에 의한 복호방법중 최적 경로가 서바이버 경로가 선택되었을 경우만의 복호성능은 p=0.225인 BSC채널에서는 2.35*10-4정도로 좋은 성능을 나타낸다. 그리고 DTCC에 의한 복호방법이 최적 경로를 선택할 확률은 약 95%를 넘고 있다.However, the decoding performance only when the survivor path is selected as the optimal path among the DTCC decoding methods shows a good performance of about 2.35 * 10 -4 in the BSC channel having p = 0.225. And the probability that the decoding method by DTCC selects the optimal path is over 95%.

그러므로 DTCC에 의한 복호성능이 떨어지는 이유는 부적합 경로가 서바이버 경로로 선택되었을 경우에 복호에러 비트수가 상당히 많기 때문이며 이러한 경우의 확률은 약 5%미만이다.Therefore, the reason why the decoding performance by DTCC is lowered is that the number of decoding error bits is quite large when the invalid path is selected as the survivor path, and the probability in this case is less than about 5%.

제5도의 마지막 항은 최적 경로가 서바이버 경로로 선택되었을 경우만의 복호에러비트수와 나머지 부적합 경로가 서바이버 경로로 선택되었을 경우의 복호에러의 비트수의 비를 나타낸다.The last term in FIG. 5 shows the ratio of the number of decoding error bits only when the optimal path is selected as the survivor path and the number of bits of decoding errors when the remaining non-conforming path is selected as the survivor path.

즉 DTCC에 의한 복호방법은 95%이상에 대해서는 최적 경로를 서바이버 경로로 선택하여 이때의 복호비트에러수는 나머지의 경우에 비하여 상당히 적은 수의 복호에러를 나타낸다.In other words, the DTCC decoding method selects an optimal path as a survivor path for 95% or more, and the number of decoding bit errors at this time shows a significantly smaller number of decoding errors than the rest of the cases.

이때 최적 경로에서의 복호에러율과 부적합 경로가 서바이버 경로로 선택되었을 경우의 복호에러율과의 비는 p=0.0225인 경우 1:328정도이다.At this time, the ratio between the decoding error rate in the optimal path and the decoding error rate when the nonconforming path is selected as the survivor path is about 1: 328 when p = 0.0225.

즉, DTCC에 의한 복호 에러의 대부분은 최적 경로가 서바이버 경로가 되지 않았을 경우의 복호에러에 의해 좌우된다.That is, most of the decoding errors due to DTCC depend on decoding errors when the optimum path does not become a survivor path.

또한 Pc는 t=31까지의 서바이버 경로가 최적 경로이며 최종 코드 워드에 에러가 존재하여 최적 경로의 최종상태인 d로 천이되지 않고 d'상태로 천이한 경우의 확률을 나타낸다. 그러므로 Pc-Pad은 최적 경로에 비해 마지막 가지만 다른 경로를 서바이버 경로로 선택할 확률을 나타낸다.In addition, P c represents the probability when the survivor path up to t = 31 is the optimal path and an error exists in the final code word, so that the transition to the d 'state is not performed. Therefore, P c -P ad represents the probability of selecting a last but different path as a survivor path compared to the optimal path.

이 확률 값은 본 제안 방법에서의 경로 수정에 의해 성능이 향상 될 수 있음을 나타낸다.This probability value indicates that the performance can be improved by the path correction in the proposed method.

또한 본 제안 복호방법에서는 초기상태와 최종상태가 같아야 한다는 조건을 이용하므로써 경로 수정기법을 사용하여서도 초기상태와 최종상태가 같지 않은 경우 DTCC복호를 처음부터 다시 수행할 수 있다.In addition, in the proposed decoding method, by using the condition that the initial state and the final state must be the same, DTCC decoding can be performed again from the beginning when the initial state and the final state are not the same even when the path correction technique is used.

이때에는 수신심볼열의 처음과 마지막 부분에 에러가 밀집하여 비터비 알고리즘에 의한 상태 추정이 부정확해지는 점을 고려하여 수신심볼열을 구속장 길이 이상만큼 순환시켜 DTCC복호를 재개하므로써 전체적인 복호성능을 향상시킬 수 있다.In this case, the error is dense at the beginning and the end of the reception symbol sequence, and the estimation of the state by the Viterbi algorithm is inaccurate, so that the overall decoding performance can be improved by circulating the reception symbol sequence by longer than the constraint length to resume DTCC decoding. Can be.

이상에서 제안한 CCC복호 알고리즘을 컴퓨터 시뮬레이션을 통하여 성능을 측정해 보았으며 최근에 발표된 CCC복호 알고리즘을 현재까지 가장 계산량이 작은 방법인 COX의 방법과 성능을 비교하였다. 시뮬레이션시에 성능 비교의 기준으로 COX가 시뮬레이션한 조건과 동일하게 하였다.We have measured the performance of the proposed CCC decoding algorithm through computer simulation and compared the performance of the recently published CCC decoding algorithm with the method of C OX , which is the least computational method to date. At the time of simulation, the conditions under which C OX were simulated were used as the basis of performance comparison.

즉, dfree=10인 m=7, r=1/2, g(1)=237, g(2)=345인 길쌈부호에 대해 정보열의 길이 L=32인 경우를 입력으로 하였고, 복호는 경판정 결정으로 하였으며, 10000번의 시험을 통한 성능을 비교하였다.That is, a case where the length of the information string L = 32 is input to a convolutional code of m = 7, r = 1/2, g (1) = 237, and g (2) = 345, where d free = 10. Hard decision was made, and the performance of 10000 tests was compared.

이러한 길쌈부호기를 제7도에 나타내었다.This weaving encoder is shown in FIG.

또한 에러확률이 p=0.0225, 0.0298, 0.0375, 0.048인 각 경우의 BSC채널에 대해 수행하였다.In addition, the error probability was performed for each BSC channel with p = 0.0225, 0.0298, 0.0375, 0.048.

그리고 본 제안 방법에서의 임계치는 τ1=8, τ2=4로 하였다.In the proposed method, the thresholds were τ 1 = 8 and τ 2 = 4.

이러한 시험환경에서 수행한 결과는 제8도에 나타내었다.The results performed in this test environment are shown in FIG.

이 그림에서 T는 송수신단에서 초기상태 또는 최종상태를 알고 있는 이상적인 경우의 성능이고, 나머지는 COX의 방법에 의한 성능을 나타내었다.In this figure, T is the performance of the ideal case of knowing the initial state or the final state at the transceiver, and the rest shows the performance by the method of C OX .

제8도에서 보는 바와 같이 본 발명에서 제안하는 방법은 각 채널에 대해 기존의 방법과 유사한 성능을 가지며 평균 VU(Viterbi Update)는 기존 방법에 비해 약 50%정도 절감되었다.As shown in FIG. 8, the method proposed in the present invention has similar performance to the existing method for each channel, and the average VU (Viterbi Update) is reduced by about 50% compared to the existing method.

제9도에는 본 제안 방법에서의 결정 통계치로써 Step에서의 숫자는 비터비 알고리즘의 수행횟수를 나타내며 에러블록은 복호에러가 발생한 블록수를 나타낸다.In Fig. 9, as the decision statistic in the proposed method, the number in Step represents the number of times the Viterbi algorithm is executed, and the error block represents the number of blocks in which a decoding error has occurred.

이 그림으로부터 에러확률이 0.0225인 BSC채널에 대해 약 98%정도는 비터비 알고리즘수행으로써 복호가 가능하였으며 에러확률이 0.0448 인 BSC채널의 경우는 약 93%만이 한번의 비터비 알고리즘 수행으로 복호가 가능하였다.From this figure, about 98% of the BSC channel with error probability of 0.0225 can be decoded by Viterbi algorithm. Only 93% of BSC channel with error probability of 0.0448 can be decoded by one Viterbi algorithm. It was.

기존의 선형길쌈부호에서 나타나는 전송률 손실을 개선하는 방법으로 순환길쌈부호방법이 있는데 이 방법은 많은 복호계산량을 요구하는 것이 단점이다.The cyclic convolutional coding method is a method of improving the rate loss in the conventional linear convolutional code, which requires a large amount of decoding calculation.

본 발명에서는 이러한 많은 복호계산량을 절감하는 복호방법으로 기존의 선형길쌈부호의 복호에 비하여 약간의 복호계산량을 더 필요로 하지만 기존의 순환길쌈부호의 복호방법중 현재까지 가장 적은 계산량을 필요로 하는 순환(Circular) 비터비 복호방법에 비하여 절반 수준의 복호계산량으로 복호가 수행되는 장점을 가진다.In the present invention, as a decoding method for reducing such a large amount of decoding calculation, a little decoding calculation amount is required as compared to the decoding of the conventional linear convolutional code, but a cycle requiring the least amount of calculations to date among the decoding methods of the conventional cyclic convolutional code. (Circular) Compared to the Viterbi decoding method, decoding is performed with half the decoding calculation amount.

또한 복호성능은 순환(Circular) 비터비 복호방법과 유사하다.Decoding performance is also similar to the circular Viterbi decoding method.

본 발명에서 달성한 순환길쌈부호의 복호계산량은 기존의 선형길쌈부호에 비하여 약간의 복호계산량을 추가하므로써 만족할 만한 정도의 성능을 유지하면서 복호가 가능하기 때문에 순환길쌈 부호의 실용화가 가능하다.The decoding calculation amount of the cyclic convolutional code achieved in the present invention can be decoded while maintaining satisfactory performance by adding a small amount of decoding calculation to the conventional linear convolutional code, and thus, the cyclic convolutional code can be practically used.

기존의 순환길쌈부호의 복호방법으로는 많은 복호계산량을 요구하기 때문에 실용화가 불가능했었다.The conventional decoding method of cyclic convolutional codes has not been practical because it requires a large amount of decoding calculation.

Claims (1)

입력정보의 일부분을 사용하여 길쌈부호기의 초기 상태를 결정하고 나머지 입력정보를 모두 길쌈부호하고 난 다음, 초기상태를 결정하였던 입력정보를 길쌈부호화하는 순환길쌈부호의 복호화 방법에 있어서, 서바이버 경로의 초기상태와 최종상태가 같아야 한다는 조건을 이용하여 복호여부를 판단한 후, 한 블록의 입력 정보를 최대 가능성(ML : Maximum Likelihood) 복호하는 제1과정과; 최대 가능성 복호를 수행한 후 서바이버 경로의 초기상태와 최종상태가 같은가를 비교해서 두 상태가 서로 다를 경우, 두 상태가 같아지도록 하는 제 2의 다른 경로로 서바이버 경로를 수정하는 제 2과정; 및 한 블록의 입력정보를 ML 복호할 때 수신된 심볼열을 순환시프트시켜 ML 복호화는 제 3 과정을 포함하는 것을 특징으로 하는 순환길쌈부호의 복호방법.In the method of decoding a cyclic convolutional code using a portion of the input information to determine the initial state of the convolutional encoder, convolutionally encoding all the other input information, and then convolutionally encoding the input information that has determined the initial state. A first process of determining whether to decode using the condition that the state and the final state are the same, and then decoding the input information of one block to the maximum likelihood (ML); A second step of modifying the survivor path with a second different path such that if the two states are different from each other by comparing the initial state and the final state of the survivor path after performing the maximum likelihood decoding; And ML decoding is performed by cyclically shifting the received symbol sequence when ML decodes the input information of one block.
KR1019950024220A 1995-08-05 1995-08-05 Viterbi decoder KR0170199B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950024220A KR0170199B1 (en) 1995-08-05 1995-08-05 Viterbi decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950024220A KR0170199B1 (en) 1995-08-05 1995-08-05 Viterbi decoder

Publications (2)

Publication Number Publication Date
KR970013795A KR970013795A (en) 1997-03-29
KR0170199B1 true KR0170199B1 (en) 1999-03-30

Family

ID=19422958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950024220A KR0170199B1 (en) 1995-08-05 1995-08-05 Viterbi decoder

Country Status (1)

Country Link
KR (1) KR0170199B1 (en)

Also Published As

Publication number Publication date
KR970013795A (en) 1997-03-29

Similar Documents

Publication Publication Date Title
US5537444A (en) Extended list output and soft symbol output viterbi algorithms
KR100554322B1 (en) Convolutional decoding with the ending state decided by crc bits placed inside multiple coding bursts
KR100566084B1 (en) Soft decision output decoder for decoding convolutionally encoded codewords
US4805174A (en) Error correcting coder/decoder
Imai et al. A new multilevel coding method using error-correcting codes
JP2527163B2 (en) Data word transmission system
US5802116A (en) Soft decision Viterbi decoding with large constraint lengths
JPH07273813A (en) Method and apparatus for generating soft symbol
KR20010023315A (en) A method of and apparatus for selecting cyclic redundancy check generators in a concatenated code
US6161210A (en) List Viterbi algorithms for tailbiting convolutional codes
US5014275A (en) Sequential decoder
GB2428545A (en) Blind transport format detection with cyclic redundancy check and a variable threshold value
US5822340A (en) Method for decoding data signals using fixed-length decision window
JPH0316046B2 (en)
GB2315001A (en) Viterbi decoder for depunctured codes
US5850405A (en) Method for error recognition of a digital bit data stream transmitted by a transmitter to a receiver
KR100710743B1 (en) Transmission system having a simplified channel decoder and operating method thereof
KR0170199B1 (en) Viterbi decoder
KR0171383B1 (en) Decoding method of rotary convulutional code
US5666380A (en) Digital communication system and method of compressing information
JP4226165B2 (en) Decoding device and decoding method
KR100811376B1 (en) Method for coding and decoding in a communication system
KR0169681B1 (en) Vitervi decoder
KR20060059286A (en) Method for decoding of tailbiting convolutional codes in wireless communication system
JPH10145245A (en) Variable data rate communication device

Legal Events

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

Payment date: 20081001

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee