KR100726170B1 - Apparatus and method for viterbi decoding - Google Patents
Apparatus and method for viterbi decoding Download PDFInfo
- Publication number
- KR100726170B1 KR100726170B1 KR1020050086281A KR20050086281A KR100726170B1 KR 100726170 B1 KR100726170 B1 KR 100726170B1 KR 1020050086281 A KR1020050086281 A KR 1020050086281A KR 20050086281 A KR20050086281 A KR 20050086281A KR 100726170 B1 KR100726170 B1 KR 100726170B1
- Authority
- KR
- South Korea
- Prior art keywords
- path
- value
- bit string
- branch
- unit
- Prior art date
Links
Images
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/413—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2939—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using convolutional codes
-
- 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/4107—Sequence 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
-
- 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/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
테일 바이팅 길쌈 부호(Tail-Biting Convolution Codes) 방식으로 부호화된 비트열을 복호하는 장치 및 방법이 개시된다.Disclosed are an apparatus and a method for decoding a bit string encoded in a tail biting convolution code scheme.
복호 장치는 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하여 확장된 부호화 비트열을 생성하고, 생성된 확장된 부호화 비트열을 비터비 복호하여 복호 데이터를 생성한다. 그리고 복호 장치는 복호 데이터의 중심 비트열을 선택하고 재정렬하여 최종 복호 데이터를 생성한다.The decoding apparatus receives a convolutional coded coded bit stream from a channel to generate an extended coded bit string, and Viterbi decodes the generated extended coded bit string to generate decoded data. The decoding apparatus selects and rearranges the center bit string of the decoded data to generate final decoded data.
이로써 복호 장치는 테일 바이팅 길쌈 부호 방식으로 부호화된 비트열을 복호하는데 있어 단순한 구조를 가질 수 있고, 테일 바이팅 길쌈 부호 방식 뿐만 아니라 제로 테일 길쌈 부호 방식(Zero-Tail Convolution Codes)으로 부호화된 비트열 또한 복호할 수 있다.As a result, the decoding apparatus may have a simple structure in decoding the bit string encoded by the tail biting convolutional code method, and the bit coded by the zero tail convolutional codes (Zero-Tail Convolution Codes) as well as the tail biting convolutional code method. The heat can also be decoded.
비터비, 복호, 길쌈, Tail-biting Viterbi, Decoding, Weaving, Tail-biting
Description
도 1은 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기의 구조를 도시한 도면이다.1 is a diagram illustrating the structure of a convolutional encoder when the constraint length is 7 (K = 7) according to the IEEE802.16 international standard.
도 2는 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.2 is a diagram illustrating a coding unit packet of an encoder of a zero tail convolutional code system.
도 3는 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다.3 is a diagram illustrating an initial state of an encoder of a zero tail convolutional code method.
도 4는 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다.4 is a diagram illustrating an end state of an encoder of a zero tail convolutional code method.
도 5는 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.5 is a diagram illustrating a coding unit packet of an encoder of a tail biting convolutional code method.
도 6는 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다.FIG. 6 is a diagram illustrating an initial state of an encoder of a tail biting convolutional code method.
도 7는 테일 바이팅 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다.7 is a diagram illustrating an end state of an encoder of a tail biting convolutional code method.
도 8은 본 발명의 제1 실시예에 따른 비터비 복호 장치를 도시한 도면이다.8 shows a Viterbi decoding apparatus according to a first embodiment of the present invention.
도 9는 본 발명의 제2 실시예에 따른 비터비 복호 장치를 도시한 도면이다.9 is a diagram illustrating a Viterbi decoding apparatus according to a second embodiment of the present invention.
도 10은 본 발명의 제3 실시예에 따른 비터비 복호 장치를 도시한 도면이다.10 is a diagram illustrating a Viterbi decoding apparatus according to a third embodiment of the present invention.
도 11은 본 발명의 제4 실시예에 따른 비터비 복호 장치를 도시한 도면이다.11 shows a Viterbi decoding apparatus according to a fourth embodiment of the present invention.
도 12는 본 발명의 제5 실시예에 따른 비터비 복호 장치를 도시한 도면이다.12 is a diagram showing a Viterbi decoding apparatus according to a fifth embodiment of the present invention.
도 13은 본 발명의 실시예에 따른 비터비 복호부를 도시한 블록도이다.13 is a block diagram illustrating a Viterbi decoder according to an embodiment of the present invention.
도 14는 본 발명의 실시예에 따른 가지값 계산부를 도시한 도면이다.14 is a diagram illustrating a branch value calculator according to an exemplary embodiment of the present invention.
도 15는 본 발명의 실시예에 따른 ACS 연산부를 도시한 도면이다.15 is a diagram illustrating an ACS calculator according to an exemplary embodiment of the present invention.
도 16은 본 발명의 실시예에 따른 정규화 인자 생성부를 도시한 도면이다.16 is a diagram illustrating a normalization factor generator according to an embodiment of the present invention.
도 17은 본 발명의 실시예에 따른 역추적부를 도시한 블록도이다.17 is a block diagram illustrating a traceback unit according to an exemplary embodiment of the present invention.
도 18은 본 발명의 실시예에 따른 복호 방법을 도시한 흐름도이다.18 is a flowchart illustrating a decoding method according to an embodiment of the present invention.
도 19는 본 발명의 실시예에 따른 비터비 복호 단계를 도시한 흐름도이다.19 is a flowchart illustrating a Viterbi decoding step according to an embodiment of the present invention.
도 20은 본 발명의 실시예에 따른 가지값 생성 단계 및 ACS 연산 단계를 도시한 흐름도이다.20 is a flowchart illustrating a branch value generation step and an ACS calculation step according to an embodiment of the present invention.
본 발명은 비터비 복호 장치 및 방법에 관한 것이다. 특히 본 발명은 테일 바이팅 길쌈 부호(Tail-Biting Convolution Codes)에 대한 복호 장치 및 방법에 관한 것이다.The present invention relates to a Viterbi decoding apparatus and method. In particular, the present invention relates to a decoding apparatus and method for tail-biting convolution codes.
많은 디지털 통신 표준은 순방향 오류 정정(Forward Error Correction, FEC)을 위해 길쌈 부호화를 채택하고 있다. 길쌈 부호화로 부호화된 정보 비트열은 수 신단에서 비터비 디코더에 의해 복호된다.Many digital communication standards employ convolutional coding for forward error correction (FEC). The information bit stream encoded by convolutional coding is decoded by the Viterbi decoder at the receiving end.
도 1은 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기의 구조를 도시한 도면이다.1 is a diagram illustrating the structure of a convolutional encoder when the constraint length is 7 (K = 7) according to the IEEE802.16 international standard.
도 1에 도시된 바와 같이 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기는 2개의 XOR 연산기(11, 12) 및 6개의 딜레이부(21~26)를 포함한다. 길쌈 부호화기는 매 클럭마다 정보 비트열 중 한 비트가 제1 딜레이부(21)를 통해 입력되고, 2개의 XOR 연산기(11, 12)를 통해 2개의 부호화된 심볼을 생성한다. 길쌈 부호에는 제로 테일 길쌈 부호(Zero-Tail Convolution Codes)와 테일 바이팅 길쌈 부호(Tail-Biting Convolution Codes)가 있다.As shown in FIG. 1, the convolutional encoder when the constraint length according to the IEEE802.16 international standard is 7 (K = 7) includes two
이하에서는 도 2 내지 도 4를 참고하여 제로 테일 길쌈 부호 방식에 대하여 설명한다.Hereinafter, a zero tail convolutional code scheme will be described with reference to FIGS. 2 to 4.
도 2는 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.2 is a diagram illustrating a coding unit packet of an encoder of a zero tail convolutional code system.
도 2에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷은 구속장보다 1 작은 개수(K-1 비트)의 0 비트열(제로 테일열)을 정보 비트열에 추가된 형태이다. 따라서 정보 비트열의 크기가 L 비트라면 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷의 크기는 L+K―1 비트가 된다. 본 발명의 실시예에서 구속장(K)의 크기는 7이므로 부호화 단위 패킷의 크기는 L+6 비트가 된다.As shown in FIG. 2, the coding unit packet of the zero tail convolutional coder is a form in which a number of bits (K−1 bits) 0 bit string (zero tail string) smaller than the constraint length is added to the information bit string. Therefore, if the size of the information bit string is L bits, the size of the coding unit packet of the zero tail convolutional code encoder is L + K-1 bit. In the embodiment of the present invention, since the size of the constraint field K is 7, the size of the coding unit packet is L + 6 bits.
도 3는 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이 다. 도 3에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태는 모든 딜레이부가 0 값을 가지는 0 상태이다. 따라서 제로 테일 길쌈 부호 방식의 비터비 복호기는 복호 과정을 0 상태에서 시작할 수 있다.3 is a diagram illustrating an initial state of an encoder of a zero tail convolutional code method. As shown in FIG. 3, the initial state of the zero tail convolutional code type encoder is a zero state in which all delay units have a value of zero. Accordingly, the Viterbi decoder of the zero tail convolutional code method can start the decoding process in the zero state.
도 4는 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다. 도 4에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태는 모든 딜레이부가 0 값을 가지는 0 상태이다. 부호화 단위 패킷의 마지막 K-1개의 0 값이 길쌈 부호화기에 입력되기 때문에 길쌈 부호화기의 종료 상태는 0 상태가 된다. 따라서 제로 테일 길쌈 부호 방식의 비터비 복호기는 역추적 과정을 0 상태에서 시작할 수 있다.4 is a diagram illustrating an end state of an encoder of a zero tail convolutional code method. As shown in FIG. 4, the end state of the zero tail convolutional code type encoder is a zero state in which all delay units have zero values. Since the last K-1 zero values of the coding unit packet are input to the convolutional encoder, the termination state of the convolutional encoder is zero. Accordingly, the Viterbi decoder of the zero tail convolutional code method can start the backtracking process in the zero state.
제로 테일 길쌈 부호 방식은 0 값을 가지는 부가적인 제로 테일열을 사용함으로써 정보 비트열의 마지막 부분에 오류가 있더라도 오류 정정이 쉬운 장점이 있다. 또한 길쌈 부호화기의 시작 상태 및 종료 상태가 모두 0 상태에서 시작하므로 비터비 복호기는 복호 과정 및 역추적 과정을 0 상태에서 시작할 수 있고, 따라서 비터비 복호기의 구조가 단순해 질 수 있다. 그러나 제로 테일 길쌈 부호 방식은 부가적인 제로 테일열로 인해 전송 효율이 나빠지는 단점이 있다. 이러한 단점을 해결하기 위한 길쌈 부호 방식이 테일 바이팅 길쌈 부호 방식이다.The zero tail convolutional code method has an advantage of easy error correction even if an error occurs at the end of the information bit string by using an additional zero tail string having a zero value. In addition, since both the start state and the end state of the convolutional encoder start in the 0 state, the Viterbi decoder can start the decoding process and the backtracking process in the 0 state, and thus the structure of the Viterbi decoder can be simplified. However, the zero tail convolutional coding scheme has a disadvantage in that transmission efficiency becomes worse due to additional zero tail sequences. The convolutional code scheme for solving this disadvantage is the tail biting convolutional code scheme.
이하에서는 도 5 내지 도 7를 참고하여 테일 바이팅 길쌈 부호 방식에 대해 설명한다.Hereinafter, the tail biting convolutional code scheme will be described with reference to FIGS. 5 to 7.
도 5는 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다. 도 5에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷에는 부가 데이터가 없다. 따라서 테일 바이팅 길쌈 부호 방식은 제로 테일 길쌈 부호 방식에 비해 전송 효율이 좋다.5 is a diagram illustrating a coding unit packet of an encoder of a tail biting convolutional code method. As shown in FIG. 5, the coding unit packet of the encoder of the tail biting convolutional code method has no additional data. Accordingly, the tail biting convolutional code scheme has better transmission efficiency than the zero tail convolutional code scheme.
도 6는 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다. 도 6에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태는 부호화 단위 패킷의 마지막 6 비트로 결정된다. 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷의 마지막 6 비트는 0이 아니므로, 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태는 0 상태가 아니다. 테일 바이팅 길쌈 부호 방식의 부호화기는 초기상태를 부호화 단위 패킷의 마지막 6 비트로 하기 위하여 부호화 전에 부호화 단위 패킷의 마지막 6비트를 우선적으로 입력받는다. 이때 테일 바이팅 길쌈 부호 방식의 부호화기는 부호화된 출력 비트를 생성하지 않는다. 그 후 테일 바이팅 길쌈 부호 방식의 부호화기는 정보 비트열을 순서대로 입력받고 부호화된 출력 비트를 생성한다.FIG. 6 is a diagram illustrating an initial state of an encoder of a tail biting convolutional code method. As illustrated in FIG. 6, an initial state of a tail biting convolutional code type encoder is determined as the last 6 bits of a coding unit packet. Since the last 6 bits of the coding unit packet of the tail biting convolutional code type encoder are not 0, an initial state of the encoder of the tail biting convolutional code type is not 0. The tail biting convolutional code type encoder first receives the last 6 bits of the coding unit packet prior to encoding to make the initial state the last 6 bits of the coding unit packet. In this case, the encoder of the tail biting convolutional code method does not generate encoded output bits. Thereafter, the tail biting convolutional code type encoder receives the information bit strings in order and generates encoded output bits.
도 7는 테일 바이팅 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다. 도 7에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 종료 상태는 제로 테일 길쌈 부호 방식과는 달리 부가적인 0 비트열이 없으므로 정보 비트열의 마지막 6비트로 결정된다. 따라서 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태와 종료 상태는 동일하다.7 is a diagram illustrating an end state of an encoder of a tail biting convolutional code method. As shown in FIG. 7, the end state of the tail biting convolutional code scheme is determined as the last 6 bits of the information bit string since there is no additional 0 bit string unlike the zero tail convolutional code scheme. Therefore, the initial state and the end state of the encoder of the tail biting convolutional code method are the same.
테일 바이팅 길쌈 부호 방식의 부호화기의 시작 상태 및 종료 상태는 부호화 단위 패킷의 마지막 6비트로 결정되므로 0 상태가 아니다. 따라서 테일 바이팅 길쌈 부호 방식의 비터비 디코더는 디코딩 과정 및 역추적 과정을 위한 초기 상태를 결정하기 어려운 문제가 있고 이에 따라 비터비 디코더의 구조가 복잡해지는 문제가 있었다. 또한 부호화 단위 패킷의 마지막 부분에 오류가 심할 경우 역추적을 위한 초기 상태가 잘못 결정되고, 최종 복호된 정보 비트열에 오류가 생길 수 있었다.The start state and end state of the tail biting convolutional code type encoder are not 0 because they are determined by the last 6 bits of the coding unit packet. Accordingly, the Viterbi decoder of the tail biting convolutional code method has a problem in that it is difficult to determine an initial state for the decoding process and the traceback process, and thus, the structure of the Viterbi decoder has been complicated. In addition, when an error is severe at the end of the coding unit packet, an initial state for backtracking is incorrectly determined, and an error may occur in the finally decoded information bit string.
본 발명이 이루고자 하는 기술적 과제는 구조가 간단한 테일 바이팅 길쌈 부호방식의 비터비 복호 장치 및 방법을 제공하는 것이다.An object of the present invention is to provide a Viterbi decoding apparatus and method of a tail biting convolutional code method having a simple structure.
본 발명의 특징에 따른 비터비 복호 장치는 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 수신 버퍼부, 상기 수신 버퍼부로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 확장된 부호화 비트열 - 상기 확장된 부호화 비트열은 상기 부호화 비트열이 2회 이상 확장된 비트열이며 이렇게 확장된 비트열의 초기 비트열의 일부 또는 마지막 비트열의 일부는 생략될 수 있음 - 을 생성하는 수신 비트열 확장부, 상기 확장된 부호화 비트열을 입력받아 비터비 복호를 수행하여 복호 데이터를 출력하는 비터비 복호부, 상기 복호 데이터의 중심 비트열을 선택하여 출력하는 중심 비트열 선택부, 상기 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 재정렬부를 포함한다.According to an aspect of the present invention, a Viterbi decoding apparatus includes a receiving buffer unit for receiving a convolutional coded encoding bit string from a channel, and an extended encoding bit string by receiving an encoding bit string corresponding to a coding unit from the reception buffer unit. The extended coded bit string is a received bit string extension that generates a bit string in which the coded bit string has been extended two or more times, and a part of an initial bit string or a part of the last bit string of the extended bit string may be omitted. A Viterbi decoder which receives the encoded bit strings and performs Viterbi decoding to output decoded data, a center bit string selector which selects and outputs a center bit string of the decoded data, and rearranges the order of the center bit strings And a reordering unit for generating the decoded data.
이때, 상기 비터비 복호부는 상기 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스 상의 부호화 비트와의 차이로 모든 가지에 대해 가지값을 계산하는 가지값 계산부, 상기 가지값 계산부로부터의 가지값과 이전 상태의 경로값을 더 하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 최소 경로값을 가지는 가지에 대한 생존 경로를 선택하는 ACS 연산부, 상기 ACS 연산부로부터의 생존 경로를 역추적하여 복호 데이터를 출력하는 역추적부를 포함할 수 있다.At this time, the Viterbi decoder is a branch value calculation unit for calculating the branch value for all branches by the difference between the coded bit on the trellis of the extended coded bit stream and the transmitter convolutional encoder, the branch value from the branch value calculator ACS calculation unit that calculates the path value from each branch to the current state by adding the path value of the previous state to the current state, and selects the survival path for the branch having the minimum path value. It may include a traceback unit for outputting data.
또한 이때, 상기 ACS 연산부는 이전 상태의 경로값에 이전 상태에서 현재 상태로 이르는 가지의 가지값을 더하여 각 가지로부터 현재 상태에 이르는 경로값을 생성하는 경로값 덧셈부, 상기 경로값 덧셈부에서 생성된 경로값을 비교하여 최소의 경로값을 갖는 생존 경로를 선택하는 경로값 비교부, 상기 생존 경로에 해당하는 경로값을 선택하여 출력하는 경로값 선택부, 상기 경로값 선택부에서 선택된 경로값을 저장하는 경로값 저장부를 포함할 수 있다.In this case, the ACS calculation unit adds the branch value of the branch from the previous state to the current state to the path value of the previous state to generate a path value from each branch to the current state, generated by the path value adder. A path value comparison unit for selecting a survival path having a minimum path value by comparing the path values, a path value selection unit for selecting and outputting a path value corresponding to the survival path, and a path value selected by the path value selection unit It may include a path value storage for storing.
본 발명의 특징에 따른 복호 방법은 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 단계, 상기 부호화 비트열을 바탕으로 부호화 단위마다 확장된 부호화 비트열 - 상기 확장된 부호화 비트열은 상기 부호화 비트열이 2회 이상 확장된 비트열이며 이렇게 확장된 비트열의 초기 비트열의 일부 또는 마지막 비트열의 일부는 생략될 수 있음 - 을 생성하는 단계, 상기 확장된 부호화 비트열을 비터비 복호하여 복호 데이터를 출력하는 단계, 상기 복호 데이터의 중심 비트열을 선택하는 단계, 상기 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 단계를 포함한다.According to an aspect of the present invention, there is provided a decoding method of receiving a convolutional coded coded bit stream from a channel, the coded bit stream extended for each coding unit based on the coded bit stream, and the extended coded bit stream is the coded bit stream. Generating a bit string extended two or more times and a part of an initial bit string or a part of a last bit string of the extended bit string may be omitted, and the decoded data is output by viterbi decoding the extended coded bit string. Selecting a center bit string of the decoded data, rearranging the order of the center bit string to generate the final decoded data.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기 에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.
본 명세서에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In the present specification, when a part "includes" a certain component, this means that the component may further include other components, except for the case where there is no description to the contrary.
이하에서는 본 발명의 실시예를 설명하기 위하여 송신측이 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기를 사용하지만 다양한 길쌈 부호화기를 사용할 수 있음은 당업자에게 자명하다.In the following description, a transmitter uses a convolutional encoder when the length of restriction according to the IEEE802.16 international standard is 7 (K = 7), but it is apparent to those skilled in the art that various convolutional encoders can be used.
또한, 본 발명의 실시예를 설명하기 위하여 길쌈 부호화기는 테일 바이팅 길쌈 부호화 방식을 사용한다.In addition, the convolutional encoder uses a tail biting convolutional coding scheme to describe an embodiment of the present invention.
그리고 길쌈 부호화기의 부호화 단위의 크기를 L이라고 한다. 이때, 길쌈 부호화기의 부호율이 k/n이라고 하면 길쌈 부호화기의 부호화된 출력 비트열의 크기는 L*n/k(이하에서 M이라고도 함)이 된다. 길쌈 부호화기가 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기라고 할 때 이 길쌈 부호화기의 부호화된 출력 비트열의 크기는 2L 개가 된다. 이하 본 발명의 실시예의 설명에서는 부호화된 출력 비트열의 크기를 L*n/k라고 두겠다.The coding unit of the convolutional encoder is referred to as L. In this case, when the code rate of the convolutional encoder is k / n, the size of the encoded output bit string of the convolutional encoder is L * n / k (hereinafter also referred to as M). When the convolutional encoder is a convolutional encoder when the constraint length according to the IEEE802.16 international standard is 7 (K = 7), the coded output bit string of the convolutional encoder has a size of 2L. In the following description of the embodiment of the present invention, the size of the encoded output bit string is assumed to be L * n / k.
다음은 본 발명의 실시예에 따른 비터비 복호 장치에 대하여 도 8 내지 도 12를 참고로 하여 상세하게 설명한다.Next, a Viterbi decoding apparatus according to an embodiment of the present invention will be described in detail with reference to FIGS. 8 to 12.
도 8은 본 발명의 제1 실시예에 따른 비터비 복호 장치를 도시한 도면이다.8 shows a Viterbi decoding apparatus according to a first embodiment of the present invention.
도 8에 도시된 바와 같이 본 발명의 실시예에 따른 비터비 복호 장치는 수신 버퍼부(100), 수신 비트열 확장부(200), 비터비 복호부(300), 중심 비트열 선택부(400), 재정렬부(500), 출력 버퍼부(600)를 포함한다.As shown in FIG. 8, the Viterbi decoding apparatus according to the embodiment of the present invention includes a
수신 버퍼부(100)는 채널로부터 테일 바이팅 길쌈 부호 방식의 부호화 비트열을 수신한다.The
수신 비트열 확장부(200)는 수신 버퍼부(100)로부터 길쌈 부호화기의 부호화 단위(L 개)에 해당하는 부호화 비트열(L*n/k 개)를 입력받는다. 그리고 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 바탕으로 확장된 부호화 비트열을 생성한다. 도 8에 도시된 바와 같이 본 발명의 제1 실시예에 따른 확장된 부호화 비트열은 수신 비트열 확장부(200)가 부호화 비트열을 2회에 걸쳐서 출력하는 신호이다.The reception bit
비터비 복호부(300)는 확장된 부호화 비트열을 비터비 복호 방식에 따라 복호한다. 비터비 복호부(300)는 2*L*n/k 개의 부호화 비트열을 입력받으므로 2L 개의 확장된 복호 데이터를 출력한다. 비터비 복호부(300)는 Radix-2 방식 또는 Radix-4 방식 등의 다양한 비터비 복호 방식을 사용할 수 있다.The
중심 비트열 선택부(400)는 비터비 복호부(300)가 생성한 2L 개의 확장된 복호 데이터 중에서 가운데의 L 개인 중심 비트열(d[L/2+1], ..., d[L], d[1], ..., d[L/2]) 만을 선택하여 출력한다. 본 발명의 실시예에서의 중심 비트열 선택부(400)는 정확히 가운데의 비트열을 선택하여 출력하지만 복호에 오류가 생기지 않을 정도로 중심이 이동된 중심 비트열을 선택하여 출력할 수도 있다. 비터비 복호부(300)의 동작은 크게 복호 과정과 역추적 과정으로 나뉘는데 테일 바이팅 길쌈 부호 방식은 복호 과정의 시작 상태와 역추적 과정의 시작 상태를 용이하게 얻을 수 없다. 특히 본 발명의 실시예와 같이 비터비 복호를 수행하면 테일 바이팅 길쌈 부호 방식의 특성에 따라 복호 과정의 시작 상태가 길쌈 부호화기의 시작 상태와 같지 않으므로 복호 데이터의 초기 L/2 개(d[1], ..., d[L/2])는 오류를 포함하고 있을 확률이 높다. 따라서 중심 비트열 선택부(400)는 복호 데이터의 초기 L/2 개를 출력하지 않는다. 한편 본 발명의 실시예와 같이 비터비 복호를 수행하면 테일 바이팅 길쌈 부호 방식의 특성에 따라 역추적 과정의 시작 상태가 길쌈 부호화기의 종료 상태와 같지 않으므로 복호 데이터의 마지막 L/2 개(d[3L/2+1], ..., d[2L])는 오류를 포함하고 있을 확률이 높다. 따라서 중심 비트열 선택부(400)는 복호 데이터의 마지막 L/2 개를 출력하지 않는다.The center
재정렬부(500)는 중심 비트열 선택부(400)에서 선택된 중심 비트열을 재정렬하여 최종 복호 데이터를 출력한다. 즉 재정렬부(500)는 중심 비트열의 뒷 절반의 비트열(d[3L/2+1], ..., d[2L])을 먼저 출력하고, 중심 비트열의 앞 절반의 비트열(d[L/2+1], ..., d[L])을 출력한다. 중심 비트열의 뒷 절반의 비트열(d[3L/2+1], ..., d[2L])은 최종 복호 데이터의 앞 절반(d[1], ..., d[L/2])이 된다.The rearranging
출력 버퍼부(600)는 최종 복호 데이터를 버퍼에 저장하고 있다가 필요에 따라 8비트 또는 16비트 등으로 출력한다.The
도 9은 본 발명의 제2 실시예에 따른 비터비 복호 장치를 도시한 도면이다.9 is a diagram showing a Viterbi decoding apparatus according to a second embodiment of the present invention.
도 9에 도시된 바와 같이 본 발명의 제2 실시예에 따른 비터비 복호 장치의 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 3회에 걸쳐 출력하는 확장된 부호화 비트열을 생성한다.As shown in FIG. 9, the reception bit
3배로 확장된 부호화 비트열을 입력받은 비터비 복호부(300)는 본래의 정보 비트열의 길이(L)보다 3배 큰 확장된 복호 데이터를 생성한다.The
이때, 상술한 바와 같이 확장된 복호 데이터의 앞쪽 비트열 및 뒤쪽 비트열은 임의의 상태에서의 복호 및 역추적으로 오류를 포함하고 있을 확률이 높으므로 중심 비트열 선택부(400)는 확장된 복호 데이터의 중심 비트열을 선택하여 출력하게 된다.In this case, since the front bit string and the rear bit string of the decoded data expanded as described above have a high probability of including an error in decoding and backtracking in an arbitrary state, the center
도 9에 도시된 바와 같이 본 발명의 제2 실시예에 따른 중심 비트열 선택부(400)는 정확히 가운데의 중심 비트열을 선택하였으므로 재정렬부(500)는 입력받은 중심 비트열을 바이패스(Bypass)하게 된다.As shown in FIG. 9, since the center
도 10은 본 발명의 제3 실시예에 따른 비터비 복호 장치를 도시한 도면이다.10 is a diagram illustrating a Viterbi decoding apparatus according to a third embodiment of the present invention.
도 10에 도시된 바와 같이 본 발명의 제3 실시예에 따른 비터비 복호 장치의 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 4회에 걸쳐 출력하는 확장된 부호화 비트열을 생성할 수도 있다. 즉, 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 2회 이상으로 출력하는 확장된 부호화 비트열을 생성하는데, 확장의 정도가 클수록 정보 비트열의 크기(L)이 작을 때의 복호 성능이 효과적으로 될 수 있다.As shown in FIG. 10, the reception bit
도 11은 본 발명의 제4 실시예에 따른 비터비 복호 장치를 도시한 도면이다.11 shows a Viterbi decoding apparatus according to a fourth embodiment of the present invention.
도 11에 도시된 바와 같이 수신 비트열 확장부(200)가 생성하는 확장된 부호화 비트열의 시작 비트는 반드시 입력받은 부호화 비트열의 시작 비트일 필요는 없고, 또 확장된 부호화 비트열의 마지막 비트는 반드시 입력 받은 부호화 비트열의 마지막 비트일 필요는 없다.As shown in FIG. 11, the start bit of the extended encoded bit string generated by the reception bit
도 11에 도시된 바와 같이 본 발명의 제4 실시예에 따른 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 3회 출력하는 확장된 부호화 비트열을 생성하되, 초기 p개의 비트열 및 마지막 q개의 비트열은 출력하지 않는다.As shown in FIG. 11, the reception bit
도 12은 본 발명의 제5 실시예에 따른 비터비 복호 장치를 도시한 도면이다.12 shows a Viterbi decoding apparatus according to a fifth embodiment of the present invention.
본 발명의 제5 실시예는 중심 비트열 선택부(400)가 확장된 복호 데이터의 정확히 가운데 비트열을 선택할 필요는 없음을 보여준다.The fifth embodiment of the present invention shows that the center
도 12에 도시된 바와 같이 본 발명의 제5 실시예에 따른 비터비 복호 장치는 확장된 복호 데이터의 정확히 가운데에서 i 비트만큼 왼쪽으로 이동된 중심 비트열을 선택하여 출력한다. 이때 재정렬부(500)는 중심의 이동을 고려하여 최종 복호 데이터를 생성한다.As shown in FIG. 12, the Viterbi decoding apparatus according to the fifth embodiment of the present invention selects and outputs a center bit string shifted left by i bits from the center of the expanded decoded data. At this time, the rearranging
다음은 비터비 복호부(300)를 도 13을 참고하여 상세히 설명한다.Next, the
도 13은 본 발명의 실시예에 따른 비터비 복호부(300)를 도시한 블록도이다.13 is a block diagram illustrating a
도 13에 도시된 바와 같이 본 발명의 실시예에 따른 비터비 복호부(300)는 가지값 계산부(310), ACS 연산부(320), 역추적부(330)를 포함한다.As shown in FIG. 13, the
가지값 계산부(310)는 수신 비트열 확장부(200)로부터 입력받은 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스(Trellis) 상의 부호화 비트(Branch Coded Word, 이하 BCW)와의 차이로 모든 가지에 대해 가지값을 계산한다.The branch
ACS 연산부(320)는 가지값 계산부(310)에서 계산된 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산한다. 그리고 ACS 연산부(320)는 각 가지로부터의 경로값을 비교하여 최소의 경로값을 찾고, 최소의 경로값을 갖는 생존 경로를 선택한다.The
역추적부(330)는 ACS 연산부(320)로부터의 생존 경로를 바탕으로 송신단 길쌈 부호화기의 트랠리스를 역추적하여 확장된 복호 데이터를 생성한다.The
이하에서는 가지값 계산부(310)를 도 14를 참고하여 상세히 설명한다.Hereinafter, the
도 14는 본 발명의 실시예에 따른 가지값 계산부(310)를 도시한 도면이다.14 is a diagram illustrating a
본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지고 4비트 연판정된 이진 데이터를 사용한다. Radix-2 비터비 디코더에서는 4 개의 가지값이 생성된다.The
도 14에 도시된 바와 같이 본 발명의 실시예에 따른 가지값 계산부(310)는 거리 계산부(311), 가지값 덧셈부(312), 가지값 저장부(313)를 포함한다.As shown in FIG. 14, the
거리 계산부(311)는 비터비 복호부(300)의 입력값과 0 및 1의 대표값과의 거리값을 계산한다. 본 발명의 실시예에서 0의 대표값은 7이고, 1의 대표값은 8이다.The
가지값 덧셈부(312)는 거리 계산부(311)에서 생성된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성한다. 본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지므로 가지값 덧셈부(312)는 4개의 가지값(BM_00, BM_01, BM_10, BM_11)을 생성한다. 각 가지값은 거리 계산부(311)에 서 계산된 4비트의 거리값 2개를 더하여 얻어지므로 5비트로 표시된다.The
가지값 저장부(313)는 가지값 덧셈부(312)에서 생성된 4개의 가지값을 저장한다. 이후 가지값 저장부(313)에 저정되어 있는 가지값은 경로값을 계산하는데 사용된다.The branch
이하에서는 도 15 및 도 16을 참고하여 ACS 연산부(320)에 대해 상세히 설명한다.Hereinafter, the
도 15는 본 발명의 실시예에 따른 ACS 연산부(320)를 도시한 도면이고 도 16은 본 발명의 실시예에 따른 정규화 인자 생성부(329)를 도시한 도면이다.FIG. 15 is a diagram illustrating an
본 발명의 실시예에 따른 송신단은 구속장(K)이 7인 길쌈 부호화기를 사용하므로 길쌈 부호화기의 상태는 총 64개이다. 따라서 ACS 연산부(320)는 64개의 연산 블록(도면 부호 없음)을 통해 64개의 경로값 및 생존 경로를 생성한다.Since the transmitting end according to the embodiment of the present invention uses a convolutional encoder having a constraint length of 7, the convolutional encoder has a total of 64 states. Accordingly, the
도 15에 도시된 바와 같이 ACS 연산부(320)의 각 블록은 2개의 정규화부(321, 323), 2개의 경로값 덧셈부(322, 324), 경로값 비교부(325), 경로값 선택부(326), 경로값 클리핑부(327), 경로값 저장부(328)를 포함한다.As shown in FIG. 15, each block of the
그리고 도 16에 도시된 바와 같이 ACS 연산부(320)는 정규화 인자 생성부(329)를 포함한다.As shown in FIG. 16, the
정규화 인자 생성부(329)는 다수의 최소 경로값 추출부(329a)를 통해 이전 상태 경로값 중 최소의 경로값인 정규화 인자(norm)를 찾는다.The
본 발명의 실시예에 따른 최소값 추출부(329a)는 이전 상태 경로값 2개를 입력받아 작은 값을 출력한다. 본 발명의 실시예에 따른 최소값 추출부(329a)는 비교 부(329a1) 및 선택부(329a2)를 포함한다. 비교부(329a1)는 이전 상태 경로값 2개를 입력받아 뺄셈을 수행하고 뺄셈의 결과값 중 가장 상위 비트를 출력한다. 이전 상태 경로값 2개를 PM0, PM1이라고 하고 비교부(329a1)의 수행 결과를 R0(=PM0-PM1)이라고 할 때, R0의 가장 상위 비트가 0이면 이는 PM0>PM1을 의미하고, R0의 가장 상위 비트가 1이면 이는 PM0<PM1을 의미한다. 선택부(329a2)는 5-비트 2-입력 멀티플렉서(5-Bit 2-Input Multiplexer)로 구현되고, 비교부(329a1)에서 생성된 1비트 정보를 통해 출력할 값을 선택한다. 이로써 본 발명의 실시예에 따른 최소값 추출부(329a)는 PM0와 PM1 중 작은 값을 출력한다.The minimum
한편 정규화 인자 생성부(329)는 이전 상태의 경로값을 2개씩 쌍으로 묶어 모두 비교하여 작은 값을 찾고, 찾은 작은 값들을 2개씩 묶어 다시 작은 값을 찾아 나간다. 이로써 정규화 인자 생성부(329)는 최소의 경로값인 정규화 인자(norm)를 찾는다. 찾아낸 정규화 인자(norm)는 정규화 인자 저장부(329b)에 저장된다.On the other hand, the
ACS 연산부(320)의 각 연산 블록은 현재 상태(도 15에 나타난 연산 블록에서 0 상태)에 이를 수 있는 이전 상태(도 15에 나타난 연산 블록에서 0 상태 및 1 상태)의 경로값 2개(도 15에 나타난 연산 블록에서 PM[0], PM[1])를 입력받고 최종적으로 현재 상태로 이르는 경로값 중 최소의 경로값을 선택한다. 그리고 ACS 연산부(320)의 각 블록은 최소의 경로값을 가지는 생존 경로(도 15에 나타난 연산 블록에서 Tb[0])를 생성한다.Each operation block of the
2개의 정규화부(321, 323)는 현재 상태(0 상태)에 이를 수 있는 이전 상태(0 상태 및 1 상태)의 경로값 2개(PM[0], PM[1])에서 정규화 인자 생성부(329) 로부터의 정규화 인자(norm)을 뺀다. 이로써 송신단 길쌈 부호화기의 트렐리스(Trellis)를 진행에 나감에 따른 경로값이 일정 비트 수(본 발명의 실시예에서는 6비트)내로 유지될 수 있다. The two
2개의 경로값 덧셈부(322, 324)는 이전 상태의 경로값(PM[0], PM[1])에 이전 상태에서 현재 상태로 이르는 가지의 가지값(도 15에서 BM_00, BM_11)을 더하여 각 가지로부터 현재 상태로 이르는 경로값을 생성한다.The two path value
경로값 비교부(325)는 경로값 덧셈부(322, 324)에서 생성된 각 가지로부터 현재 상태로 이르는 경로값을 입력받아 뺄셈을 수행하고 그 상위 1 비트를 출력한다. 경로값 비교부(325)가 출력하는 1 비트는 각 가지로부터 현재 상태로 이르는 경로값 2개의 크기를 비교한 결과를 지시하는 정보이고, 또한 생존 경로를 지시하는 정보이다. 경로값 비교부(325)가 출력하는 1 비트는 생존 경로로써 후술하는 역추적부(도 17의 330)의 생존 경로 저장부(도 17의 331)에 저장된다.The path value
한편 경로값 선택부(326)는 경로값 비교부(325)가 출력하는 1 비트를 입력받아 각 가지로부터 현재 상태로 이르는 경로값 중 작은 값을 선택하여 출력한다.The
경로값 클리핑부(327)는 경로값 선택부(326)에서 선택된 경로값을 6 비트로 유지하기 위하여 입력받은 경로값이 1000000(2) 보다 크거나 같으면 그 값을 111111(2)로 클리핑하여 출력한다. 이로써 갱신되는 경로값은 6 비트로 유지될 수 있다.The path value clipping
경로값 선택부(326)에서 선택되고 경로값 클리핑부(327)에서 클리핑되어 출 력된 경로값은 다음 상태의 경로값을 생성하는데 다시 사용되기 위해 경로값 저장부(328)에 저장된다.The path value selected by the path
이하에서는 역추적부(330)에 대해서 도 17을 참고하여 상세히 설명한다.Hereinafter, the
도 17은 본 발명의 실시예에 따른 역추적부(330)를 도시한 블록도이다.17 is a block diagram illustrating a
도 17에 도시된 바와 같이 본 발명의 실시예에 따른 역추적부(330)는 생존 경로 저장부(331), 다운 카운터(332), 먹스(333), 시프트 레지스터(334)를 포함한다.As shown in FIG. 17, the
생존 경로 저장부(331)에는 ACS 연산부(320)의 각 연산 블록의 경로값 비교부(325)에서 생성된 생존 경로가 저장된다. ACS 연산부(320)의 각 연산 블록은 64개이므로 생존 경로는 64 비트의 정보이다.The survival
다운 카운터(332)는 한 클록당 생존 경로 저장부(331)의 메모리 주소(Address)를 1씩 줄인다. 이에 따라 생존 경로 저장부(331)는 한 클록당 64비트의 생존 경로가 출력된다.The down counter 332 decrements the memory address of the survival
먹스(333)는 시프트 레지스터(334)가 지시하는 6 비트에 해당하는 1 비트를 출력한다. 시프트 레지스터(334)는 새로 입력 받은 1 비트를 가장 하위 비트에 입력하여 6비트 레지스터를 시프트(shift)하고 발생하는 캐리(carry)를 중심 비트열 선택부(400)에 전송한다. 이때 발생하는 캐리의 집합이 상술한 확장된 복호 데이터가 된다.The
이하에서는 도 18 내지 도 20을 참고하여 본 발명의 실시예에 따른 비터비 복호 방법에 대해 설명한다.Hereinafter, a Viterbi decoding method according to an embodiment of the present invention will be described with reference to FIGS. 18 to 20.
도 18은 본 발명의 실시예에 따른 복호 방법을 도시한 흐름도이고, 도 19는 본 발명의 실시예에 따른 비터비 복호 단계를 도시한 흐름도이다. 그리고, 도 20은 본 발명의 실시예에 따른 가지값 생성 단계 및 ACS 연산 단계를 도시한 흐름도이다.18 is a flowchart illustrating a decoding method according to an embodiment of the present invention, and FIG. 19 is a flowchart illustrating a Viterbi decoding step according to an embodiment of the present invention. 20 is a flowchart illustrating a branch value generation step and an ACS calculation step according to an embodiment of the present invention.
먼저 수신 버퍼부(100)는 채널로부터 부호화 비트열을 수신한다(S100).First, the
다음, 수신 비트열 확장부(200)는 수신 버퍼부(100)로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 확장된 부호화 비트열을 출력한다(S200).Next, the reception bit
비터비 복호부(300)는 확장된 부호화 비트열을 입력받아 비터비 복호를 수행한다(S300). 비터비 복호 단계(S300)은 가지값 계산 단계(S310), ACS 연산 단계(S320), 역추적 단계(S330)를 포함한다.The
가지값 계산 단계(S310)에서는 수신 비트열 확장부(200)로부터 입력받은 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스(Trellis) 상의 부호화 비트(Branch Coded Word, 이하 BCW)와의 차이로 모든 가지에 대해 가지값을 계산한다. 더 구체적으로 거리 계산부(311)는 비터비 복호부(300)의 입력값과 0 및 1의 대표값과의 거리값을 계산한다(S311). 다음 가지값 덧셈부(312)는 거리 계산부(311)에서 생성된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성한다(S312).In the branch value calculating step S310, all branches are different from the extended coded bit string received from the reception bit
ACS 연산 단계(S320)에서는 가지값 계산부(310)에서 계산된 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 계산된 경로값 중에서 최소의 경로값을 찾아 각 상태의 경로값을 갱신하고, 최소의 경로값을 갖는 생존 경로를 선택한다. 구체적으로 정규화 인자 생성부(329)는 각 경로값이 오버플로우(overflow)되지 않도록 하기 위한 정규화 인자(norm)를 생성한다(S321). 이 정규화 인자는 각 상태의 경로값 중 최소값으로 정의될 수 있다. 다음 정규화부(321, 323)는 정규화 인자 생성부(329)에서 생성된 정규화 인자(norm)를 통해 이전 상태의 경로값을 정규화한다(S322). 이때 정규화부(321, 323)는 이전 상태의 경로값에서 정규화 인자(norm)를 빼는 방법으로 이전 상태의 경로값을 정규화할 수 있다. 그리고 경로값 덧셈부(322, 324)는 이전 상태의 경로값에 이전 상태에서 현재 상태로 이르는 가지의 가지값을 더하여 각 가지로부터 현재 상태로 이르는 경로값을 생성한다(S323). 그 다음, 경로값 비교부(325)는 경로값 덧셈부(322, 324)에서 생성된 각 가지로부터 현재 상태로 이르는 경로값을 비교하여 생존 경로를 선택한다(S324). 그리고 경로값 선택부(326)는 선택된 생존 경로에 해당하는 경로값을 경로값 저장부(328)에 저장한다. 다음, 경로값 클리핑부(327)는 경로값 선택부(326)에서 선택된 경로값이 오버플로우 되지 않도록 경로값을 클리핑하여 출력한다.In the ACS operation step S320, the branch value calculated by the branch
다음, 역추적부(330)는 ACS 연산부(320)로부터의 생존 경로를 바탕으로 송신단 길쌈 부호화기의 트랠리스를 역추적하여 확장된 복호 데이터를 생성한다(S330).Next, the
그리고, 중심 비트열 선택부(400)는 역추적부(330)에서 생성된 확장된 복호 데이터의 중심 비트열을 선택하여 출력한다(S400).The center
그 후, 재정렬부(500)는 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성한다(S500).Thereafter, the rearranging
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not implemented only through the apparatus and the method, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded. Implementation may be easily implemented by those skilled in the art from the description of the above-described embodiments.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.
본 발명에 따르면 테일 바이팅 길쌈 부호 방식으로 부호화된 비트열을 단순한 구조의 복호 장치를 통해 복호할 수 있다.According to the present invention, a bit string encoded by a tail biting convolutional code method can be decoded through a decoding apparatus having a simple structure.
한편 본 발명에 따르면 테일 바이팅 길쌈 부호 방식 뿐만 아니라 제로 테일 길쌈 부호 방식으로 부호화된 비트열을 하나의 복호 장치를 통해 복호할 수 있다.Meanwhile, according to the present invention, not only the tail biting convolutional code scheme but also the bit string encoded by the zero tail convolutional code scheme may be decoded through one decoding device.
Claims (14)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050086281A KR100726170B1 (en) | 2005-08-19 | 2005-09-15 | Apparatus and method for viterbi decoding |
PCT/KR2005/004111 WO2007021057A1 (en) | 2005-08-19 | 2005-12-05 | Viterbi decoder and method thereof |
US12/064,175 US8055986B2 (en) | 2005-08-19 | 2005-12-05 | Viterbi decoder and method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050076187 | 2005-08-19 | ||
KR1020050086281A KR100726170B1 (en) | 2005-08-19 | 2005-09-15 | Apparatus and method for viterbi decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070021868A KR20070021868A (en) | 2007-02-23 |
KR100726170B1 true KR100726170B1 (en) | 2007-06-11 |
Family
ID=43653738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050086281A KR100726170B1 (en) | 2005-08-19 | 2005-09-15 | Apparatus and method for viterbi decoding |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100726170B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR920021286A (en) * | 1991-05-20 | 1992-12-18 | 가메다까 소끼찌 | Mold clamping device for tire vulcanizer |
KR930011454A (en) * | 1991-11-21 | 1993-06-24 | 오오가 노리오 | Vitaby decoding device |
US5369671A (en) | 1992-05-20 | 1994-11-29 | Hughes Aircraft Company | System and method for decoding tail-biting code especially applicable to digital cellular base stations and mobile units |
KR19990077972A (en) * | 1998-03-18 | 1999-10-25 | 이데이 노부유끼 | Viterbi decoding apparatus and viterbi decoding method |
US6088405A (en) | 1999-01-15 | 2000-07-11 | Lockheed Martin Corporation | Optimal decoder for tall-biting convolutional codes |
US6877132B1 (en) | 1999-06-11 | 2005-04-05 | Nortel Network Limited | Method and apparatus for channel decoding of tail-biting convolutional codes |
-
2005
- 2005-09-15 KR KR1020050086281A patent/KR100726170B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR920021286A (en) * | 1991-05-20 | 1992-12-18 | 가메다까 소끼찌 | Mold clamping device for tire vulcanizer |
KR930011454A (en) * | 1991-11-21 | 1993-06-24 | 오오가 노리오 | Vitaby decoding device |
US5369671A (en) | 1992-05-20 | 1994-11-29 | Hughes Aircraft Company | System and method for decoding tail-biting code especially applicable to digital cellular base stations and mobile units |
KR19990077972A (en) * | 1998-03-18 | 1999-10-25 | 이데이 노부유끼 | Viterbi decoding apparatus and viterbi decoding method |
US6088405A (en) | 1999-01-15 | 2000-07-11 | Lockheed Martin Corporation | Optimal decoder for tall-biting convolutional codes |
US6877132B1 (en) | 1999-06-11 | 2005-04-05 | Nortel Network Limited | Method and apparatus for channel decoding of tail-biting convolutional codes |
Non-Patent Citations (3)
Title |
---|
공개특허 10-1992-0021286 |
공개특허 1993-0011454 |
공개특허 1999-0077972 |
Also Published As
Publication number | Publication date |
---|---|
KR20070021868A (en) | 2007-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765459B2 (en) | Viterbi decoder and viterbi decoding method | |
JP3677257B2 (en) | Convolution decoding device | |
KR100580160B1 (en) | Two-step soft output viterbi algorithm decoder using modified trace-back | |
US4583078A (en) | Serial Viterbi decoder | |
AU762877B2 (en) | Component decoder and method thereof in mobile communication system | |
US20070266303A1 (en) | Viterbi decoding apparatus and techniques | |
JP3280183B2 (en) | Communication system and information processing method | |
US8055986B2 (en) | Viterbi decoder and method thereof | |
EP2339757B1 (en) | Power-reduced preliminary decoded bits in viterbi decoder | |
US8009773B1 (en) | Low complexity implementation of a Viterbi decoder with near optimal performance | |
EP3996285A1 (en) | Parallel backtracking in viterbi decoder | |
US20070113161A1 (en) | Cascaded radix architecture for high-speed viterbi decoder | |
KR100437697B1 (en) | Method and apparatus for decoding multi-level trellis coded modulation | |
KR101212856B1 (en) | Method and apparatus for decoding data in communication system | |
KR100726170B1 (en) | Apparatus and method for viterbi decoding | |
KR100726171B1 (en) | Apparatus and method for viterbi decoding | |
US20050138535A1 (en) | Method and system for branch metric calculation in a viterbi decoder | |
JP2010206570A (en) | Decoding apparatus and decoding method | |
JP4295871B2 (en) | Error correction decoder | |
Chandel et al. | Viterbi decoder plain sailing design for TCM decoders | |
KR20000049852A (en) | Viterbi decoder | |
KR0169680B1 (en) | Vitervi decoder | |
KR100333336B1 (en) | Traceback method of viterbi decoder | |
KR100504113B1 (en) | System And Method For Decoding Data In Viterbi Decoder | |
JP2002198827A (en) | Maximum likelihood decoding method and decoder thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
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: 20130520 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140519 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150519 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160519 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170519 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20180517 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 13 |