KR100726170B1 - Apparatus and method for viterbi decoding - Google Patents

Apparatus and method for viterbi decoding Download PDF

Info

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
Application number
KR1020050086281A
Other languages
Korean (ko)
Other versions
KR20070021868A (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 KR1020050086281A priority Critical patent/KR100726170B1/en
Priority to PCT/KR2005/004111 priority patent/WO2007021057A1/en
Priority to US12/064,175 priority patent/US8055986B2/en
Publication of KR20070021868A publication Critical patent/KR20070021868A/en
Application granted granted Critical
Publication of KR100726170B1 publication Critical patent/KR100726170B1/en

Links

Images

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/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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/2939Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6511Support 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

비터비 복호 장치 및 방법{APPARATUS AND METHOD FOR VITERBI DECODING}Viterbi decoding device and method {APPARATUS AND METHOD FOR VITERBI DECODING}

도 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 XOR operators 11 and 12 and six delay units 21 to 26. . In the convolutional encoder, one bit of the information bit string is input through the first delay unit 21 for each clock, and two encoded symbols are generated through two XOR operators 11 and 12. The convolutional codes include zero-tail convolution codes and tail-biting convolution codes.

이하에서는 도 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 reception buffer unit 100, a reception bit string expansion unit 200, a Viterbi decoder 300, and a center bit string selection unit 400. ), A reordering unit 500, and an output buffer unit 600.

수신 버퍼부(100)는 채널로부터 테일 바이팅 길쌈 부호 방식의 부호화 비트열을 수신한다.The reception buffer unit 100 receives a coded bit string of a tail biting convolutional code scheme from a channel.

수신 비트열 확장부(200)는 수신 버퍼부(100)로부터 길쌈 부호화기의 부호화 단위(L 개)에 해당하는 부호화 비트열(L*n/k 개)를 입력받는다. 그리고 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 바탕으로 확장된 부호화 비트열을 생성한다. 도 8에 도시된 바와 같이 본 발명의 제1 실시예에 따른 확장된 부호화 비트열은 수신 비트열 확장부(200)가 부호화 비트열을 2회에 걸쳐서 출력하는 신호이다.The reception bit string extension unit 200 receives an encoding bit string (L * n / k) corresponding to L coding units of the convolutional encoder from the reception buffer unit 100. The receiving bit string extension unit 200 generates an extended encoded bit string based on the received encoded bit string. As shown in FIG. 8, the extended coded bit string according to the first embodiment of the present invention is a signal that the reception bit string extension unit 200 outputs the coded bit string twice.

비터비 복호부(300)는 확장된 부호화 비트열을 비터비 복호 방식에 따라 복호한다. 비터비 복호부(300)는 2*L*n/k 개의 부호화 비트열을 입력받으므로 2L 개의 확장된 복호 데이터를 출력한다. 비터비 복호부(300)는 Radix-2 방식 또는 Radix-4 방식 등의 다양한 비터비 복호 방식을 사용할 수 있다.The Viterbi decoder 300 decodes the extended coded bit string according to the Viterbi decoding method. The Viterbi decoder 300 receives 2 * L * n / k encoded bit strings and outputs 2L extended decoded data. The Viterbi decoder 300 may use various Viterbi decoding schemes such as the Radix-2 scheme or the Radix-4 scheme.

중심 비트열 선택부(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 bit string selector 400 is the L individual center bit strings d [L / 2 + 1], ..., d [L among the 2L pieces of extended decoded data generated by the Viterbi decoder 300. ], d [1], ..., d [L / 2]). The center bit string selector 400 according to the embodiment of the present invention may select and output the center bit string in which the center is moved to such an extent that an error does not occur in decoding. The operation of the Viterbi decoder 300 is largely divided into a decoding process and a backtracking process. The tail biting convolutional code method cannot easily obtain the start state of the decoding process and the start state of the backtracking process. In particular, when Viterbi decoding is performed as in the embodiment of the present invention, since the start state of the decoding process is not the same as the start state of the convolutional encoder according to the characteristics of the tail biting convolutional coding scheme, the initial L / 2 pieces of the decoded data (d [1 ], ..., d [L / 2]) are likely to contain errors. Therefore, the center bit string selector 400 does not output the initial L / 2 pieces of decoded data. On the other hand, if Viterbi decoding is performed as in the embodiment of the present invention, since the start state of the backtracking process is not the same as the end state of the convolutional encoder according to the characteristics of the tail biting convolutional coding scheme, the last L / 2 pieces of the decoded data (d [ 3L / 2 + 1], ..., d [2L]) are likely to contain errors. Therefore, the center bit string selector 400 does not output the last L / 2 pieces of decoded data.

재정렬부(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 unit 500 rearranges the center bit string selected by the center bit string selecting unit 400 to output final decoded data. That is, the reordering unit 500 first outputs the bit strings d [3L / 2 + 1], ..., d [2L] of the rear half of the center bit string first, and then outputs the bit string d [ L / 2 + 1], ..., d [L]). The bit stream d (3L / 2 + 1], ..., d [2L] of the latter half of the center bit stream is the first half of the final decoded data (d [1], ..., d [L / 2]. )

출력 버퍼부(600)는 최종 복호 데이터를 버퍼에 저장하고 있다가 필요에 따라 8비트 또는 16비트 등으로 출력한다.The output buffer unit 600 stores the final decoded data in a buffer and outputs the data in 8 bits or 16 bits as necessary.

도 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 string extension unit 200 of the Viterbi decoding apparatus according to the second embodiment of the present invention generates an extended encoded bit string that outputs the received encoded bit string three times. .

3배로 확장된 부호화 비트열을 입력받은 비터비 복호부(300)는 본래의 정보 비트열의 길이(L)보다 3배 큰 확장된 복호 데이터를 생성한다.The Viterbi decoder 300 that receives the encoded bit string extended three times generates extended decoded data three times larger than the length L of the original information bit string.

이때, 상술한 바와 같이 확장된 복호 데이터의 앞쪽 비트열 및 뒤쪽 비트열은 임의의 상태에서의 복호 및 역추적으로 오류를 포함하고 있을 확률이 높으므로 중심 비트열 선택부(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 bit string selector 400 may perform extended decoding. The center bit string of the data is selected and output.

도 9에 도시된 바와 같이 본 발명의 제2 실시예에 따른 중심 비트열 선택부(400)는 정확히 가운데의 중심 비트열을 선택하였으므로 재정렬부(500)는 입력받은 중심 비트열을 바이패스(Bypass)하게 된다.As shown in FIG. 9, since the center bit string selector 400 according to the second embodiment of the present invention selects the center bit string in the center, the reordering unit 500 bypasses the received center bit string. )

도 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 string extension unit 200 of the Viterbi decoding apparatus according to the third embodiment of the present invention may generate an extended encoded bit string that outputs the received encoded bit string four times. It may be. That is, the reception bit string extension unit 200 generates an extended coded bit string that outputs the received coded bit string two or more times. As the degree of expansion is larger, the decoding performance when the size L of the information bit string is small. This can be effective.

도 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 string extension unit 200 does not necessarily need to be the start bit of the received encoded bit string, and the last bit of the extended encoded bit string is necessarily input. It does not have to be the last bit of the received coded bit string.

도 11에 도시된 바와 같이 본 발명의 제4 실시예에 따른 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 3회 출력하는 확장된 부호화 비트열을 생성하되, 초기 p개의 비트열 및 마지막 q개의 비트열은 출력하지 않는다.As shown in FIG. 11, the reception bit string extension unit 200 according to the fourth embodiment of the present invention generates an extended coded bit string that outputs the received encoded bit string three times, and includes an initial p bit string and The last q bit strings are not output.

도 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 bit string selector 400 does not need to select exactly the center bit string of the decoded data.

도 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 unit 500 generates final decoded data in consideration of the movement of the center.

다음은 비터비 복호부(300)를 도 13을 참고하여 상세히 설명한다.Next, the Viterbi decoder 300 will be described in detail with reference to FIG. 13.

도 13은 본 발명의 실시예에 따른 비터비 복호부(300)를 도시한 블록도이다.13 is a block diagram illustrating a Viterbi decoder 300 according to an embodiment of the present invention.

도 13에 도시된 바와 같이 본 발명의 실시예에 따른 비터비 복호부(300)는 가지값 계산부(310), ACS 연산부(320), 역추적부(330)를 포함한다.As shown in FIG. 13, the Viterbi decoder 300 according to an exemplary embodiment of the present invention includes a branch value calculator 310, an ACS calculator 320, and a backtracker 330.

가지값 계산부(310)는 수신 비트열 확장부(200)로부터 입력받은 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스(Trellis) 상의 부호화 비트(Branch Coded Word, 이하 BCW)와의 차이로 모든 가지에 대해 가지값을 계산한다.The branch value calculating unit 310 is a branch coded word received from the receiving bit string extension unit 200 and the branch coded word (Branch Coded Word (BCW)) on the trellis of the transmitter convolutional encoder. Calculate the branch value for.

ACS 연산부(320)는 가지값 계산부(310)에서 계산된 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산한다. 그리고 ACS 연산부(320)는 각 가지로부터의 경로값을 비교하여 최소의 경로값을 찾고, 최소의 경로값을 갖는 생존 경로를 선택한다.The ACS calculator 320 calculates a path value from each branch to the current state by adding the branch value calculated by the branch value calculator 310 and the path value of the previous state. The ACS calculator 320 compares the path values from each branch to find the minimum path value, and selects a survival path having the minimum path value.

역추적부(330)는 ACS 연산부(320)로부터의 생존 경로를 바탕으로 송신단 길쌈 부호화기의 트랠리스를 역추적하여 확장된 복호 데이터를 생성한다.The back tracker 330 back traces the trellis of the transmitter convolutional encoder based on the survival path from the ACS calculator 320 to generate extended decoded data.

이하에서는 가지값 계산부(310)를 도 14를 참고하여 상세히 설명한다.Hereinafter, the branch value calculator 310 will be described in detail with reference to FIG. 14.

도 14는 본 발명의 실시예에 따른 가지값 계산부(310)를 도시한 도면이다.14 is a diagram illustrating a branch value calculator 310 according to an exemplary embodiment of the present invention.

본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지고 4비트 연판정된 이진 데이터를 사용한다. Radix-2 비터비 디코더에서는 4 개의 가지값이 생성된다.The Viterbi decoder 300 according to an embodiment of the present invention uses binary data having a 4-bit soft decision structure having a Radix-2 structure. Four different values are generated in the Radix-2 Viterbi decoder.

도 14에 도시된 바와 같이 본 발명의 실시예에 따른 가지값 계산부(310)는 거리 계산부(311), 가지값 덧셈부(312), 가지값 저장부(313)를 포함한다.As shown in FIG. 14, the branch value calculator 310 according to an exemplary embodiment of the present invention includes a distance calculator 311, a branch value adder 312, and a branch value storage 313.

거리 계산부(311)는 비터비 복호부(300)의 입력값과 0 및 1의 대표값과의 거리값을 계산한다. 본 발명의 실시예에서 0의 대표값은 7이고, 1의 대표값은 8이다.The distance calculator 311 calculates a distance value between the input value of the Viterbi decoder 300 and representative values of 0 and 1. In an embodiment of the present invention, the representative value of 0 is 7 and the representative value of 1 is 8.

가지값 덧셈부(312)는 거리 계산부(311)에서 생성된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성한다. 본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지므로 가지값 덧셈부(312)는 4개의 가지값(BM_00, BM_01, BM_10, BM_11)을 생성한다. 각 가지값은 거리 계산부(311)에 서 계산된 4비트의 거리값 2개를 더하여 얻어지므로 5비트로 표시된다.The branch value adder 312 generates all branch values generated in the state transition process through the distance values generated by the distance calculator 311. Since the Viterbi decoder 300 according to the embodiment of the present invention has a structure of Radix-2, the branch value adder 312 generates four branch values BM_00, BM_01, BM_10, and BM_11. Each branch value is represented by 5 bits because it is obtained by adding two 4-bit distance values calculated by the distance calculation unit 311.

가지값 저장부(313)는 가지값 덧셈부(312)에서 생성된 4개의 가지값을 저장한다. 이후 가지값 저장부(313)에 저정되어 있는 가지값은 경로값을 계산하는데 사용된다.The branch value storage unit 313 stores four branch values generated by the branch value adder 312. Then, the branch value stored in the branch value storage unit 313 is used to calculate the path value.

이하에서는 도 15 및 도 16을 참고하여 ACS 연산부(320)에 대해 상세히 설명한다.Hereinafter, the ACS calculator 320 will be described in detail with reference to FIGS. 15 and 16.

도 15는 본 발명의 실시예에 따른 ACS 연산부(320)를 도시한 도면이고 도 16은 본 발명의 실시예에 따른 정규화 인자 생성부(329)를 도시한 도면이다.FIG. 15 is a diagram illustrating an ACS calculator 320 according to an embodiment of the present invention, and FIG. 16 is a diagram illustrating a normalization factor generator 329 according to an embodiment of the present invention.

본 발명의 실시예에 따른 송신단은 구속장(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 ACS calculator 320 generates 64 path values and surviving paths through 64 calculation blocks (not shown).

도 15에 도시된 바와 같이 ACS 연산부(320)의 각 블록은 2개의 정규화부(321, 323), 2개의 경로값 덧셈부(322, 324), 경로값 비교부(325), 경로값 선택부(326), 경로값 클리핑부(327), 경로값 저장부(328)를 포함한다.As shown in FIG. 15, each block of the ACS calculator 320 includes two normalizers 321 and 323, two path value adders 322 and 324, a path value comparer 325, and a path value selector. 326, a path value clipping unit 327, and a path value storage unit 328.

그리고 도 16에 도시된 바와 같이 ACS 연산부(320)는 정규화 인자 생성부(329)를 포함한다.As shown in FIG. 16, the ACS calculator 320 includes a normalization factor generator 329.

정규화 인자 생성부(329)는 다수의 최소 경로값 추출부(329a)를 통해 이전 상태 경로값 중 최소의 경로값인 정규화 인자(norm)를 찾는다.The normalization factor generator 329 finds a normalization factor (norm) that is the minimum path value among the previous state path values through the plurality of minimum path value extractors 329a.

본 발명의 실시예에 따른 최소값 추출부(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 value extracting unit 329a according to the embodiment of the present invention receives two previous state path values and outputs a small value. The minimum value extracting unit 329a according to the embodiment of the present invention includes a comparing unit 329a1 and a selecting unit 329a2. The comparator 329a1 receives the two previous state path values and performs subtraction, and outputs the most significant bit of the result of the subtraction. When the two previous state path values are called PM0 and PM1, and the execution result of the comparison unit 329a1 is R0 (= PM0-PM1), if the most significant bit of R0 is 0, it means PM0> PM1 and If the most significant bit is 1, it means PM0 <PM1. The selector 329a2 is implemented as a 5-bit 2-input multiplexer, and selects a value to be output through the 1-bit information generated by the comparator 329a1. As a result, the minimum value extracting unit 329a according to the embodiment of the present invention outputs a smaller value among PM0 and PM1.

한편 정규화 인자 생성부(329)는 이전 상태의 경로값을 2개씩 쌍으로 묶어 모두 비교하여 작은 값을 찾고, 찾은 작은 값들을 2개씩 묶어 다시 작은 값을 찾아 나간다. 이로써 정규화 인자 생성부(329)는 최소의 경로값인 정규화 인자(norm)를 찾는다. 찾아낸 정규화 인자(norm)는 정규화 인자 저장부(329b)에 저장된다.On the other hand, the normalization factor generator 329 compares all the path values of the previous state in pairs and compares them all together to find a small value. As a result, the normalization factor generator 329 finds a normalization factor (norm) that is a minimum path value. The normalized factor found is stored in the normalization factor storage unit 329b.

ACS 연산부(320)의 각 연산 블록은 현재 상태(도 15에 나타난 연산 블록에서 0 상태)에 이를 수 있는 이전 상태(도 15에 나타난 연산 블록에서 0 상태 및 1 상태)의 경로값 2개(도 15에 나타난 연산 블록에서 PM[0], PM[1])를 입력받고 최종적으로 현재 상태로 이르는 경로값 중 최소의 경로값을 선택한다. 그리고 ACS 연산부(320)의 각 블록은 최소의 경로값을 가지는 생존 경로(도 15에 나타난 연산 블록에서 Tb[0])를 생성한다.Each operation block of the ACS operation unit 320 has two path values (the state 0 in the operation block shown in FIG. 15 and the state 1 in the operation block shown in FIG. 15) that may reach the current state (the state in the operation block shown in FIG. 15). In the operation block shown in 15, PM [0], PM [1]) are input, and the minimum path value among the path values leading to the current state is selected. Each block of the ACS calculator 320 generates a survival path (Tb [0] in the calculation block shown in FIG. 15) having a minimum path value.

2개의 정규화부(321, 323)는 현재 상태(0 상태)에 이를 수 있는 이전 상태(0 상태 및 1 상태)의 경로값 2개(PM[0], PM[1])에서 정규화 인자 생성부(329) 로부터의 정규화 인자(norm)을 뺀다. 이로써 송신단 길쌈 부호화기의 트렐리스(Trellis)를 진행에 나감에 따른 경로값이 일정 비트 수(본 발명의 실시예에서는 6비트)내로 유지될 수 있다. The two normalization units 321 and 323 generate the normalization factor generator from two path values (PM [0] and PM [1]) of the previous state (0 state and 1 state) that can reach the current state (0 state). Subtract the normalization factor (norm) from (329). As a result, the path value according to the progress of the trellis of the transmitter convolutional encoder can be maintained within a certain number of bits (6 bits in the embodiment of the present invention).

2개의 경로값 덧셈부(322, 324)는 이전 상태의 경로값(PM[0], PM[1])에 이전 상태에서 현재 상태로 이르는 가지의 가지값(도 15에서 BM_00, BM_11)을 더하여 각 가지로부터 현재 상태로 이르는 경로값을 생성한다.The two path value adders 322 and 324 add the branch values (BM_00 and BM_11 in FIG. 15) from the previous state to the current state to the path values PM [0] and PM [1] of the previous state. Create a path value from each branch to the current state.

경로값 비교부(325)는 경로값 덧셈부(322, 324)에서 생성된 각 가지로부터 현재 상태로 이르는 경로값을 입력받아 뺄셈을 수행하고 그 상위 1 비트를 출력한다. 경로값 비교부(325)가 출력하는 1 비트는 각 가지로부터 현재 상태로 이르는 경로값 2개의 크기를 비교한 결과를 지시하는 정보이고, 또한 생존 경로를 지시하는 정보이다. 경로값 비교부(325)가 출력하는 1 비트는 생존 경로로써 후술하는 역추적부(도 17의 330)의 생존 경로 저장부(도 17의 331)에 저장된다.The path value comparison unit 325 receives a path value from each branch generated by the path value adders 322 and 324 to the current state, subtracts it, and outputs the upper 1 bit. One bit output by the path value comparison unit 325 is information indicating a result of comparing two magnitudes of path values from each branch to the current state, and also information indicating a survival path. One bit output by the path value comparison unit 325 is stored in the survival path storage unit 331 of FIG. 17 as a survival path described later (330 in FIG. 17).

한편 경로값 선택부(326)는 경로값 비교부(325)가 출력하는 1 비트를 입력받아 각 가지로부터 현재 상태로 이르는 경로값 중 작은 값을 선택하여 출력한다.The path value selector 326 receives 1 bit output from the path value comparator 325 and selects and outputs a smaller value of path values from each branch to the current state.

경로값 클리핑부(327)는 경로값 선택부(326)에서 선택된 경로값을 6 비트로 유지하기 위하여 입력받은 경로값이 1000000(2) 보다 크거나 같으면 그 값을 111111(2)로 클리핑하여 출력한다. 이로써 갱신되는 경로값은 6 비트로 유지될 수 있다.The path value clipping unit 327 clips the value to 111111 (2) when the input path value is greater than or equal to 1000000 (2) in order to maintain the path value selected by the path value selection unit 326 as 6 bits. . The updated route value can thus be maintained at 6 bits.

경로값 선택부(326)에서 선택되고 경로값 클리핑부(327)에서 클리핑되어 출 력된 경로값은 다음 상태의 경로값을 생성하는데 다시 사용되기 위해 경로값 저장부(328)에 저장된다.The path value selected by the path value selection unit 326 and clipped by the path value clipping unit 327 and output is stored in the path value storage unit 328 to be used again to generate a path value of the next state.

이하에서는 역추적부(330)에 대해서 도 17을 참고하여 상세히 설명한다.Hereinafter, the back tracker 330 will be described in detail with reference to FIG. 17.

도 17은 본 발명의 실시예에 따른 역추적부(330)를 도시한 블록도이다.17 is a block diagram illustrating a traceback unit 330 according to an exemplary embodiment of the present invention.

도 17에 도시된 바와 같이 본 발명의 실시예에 따른 역추적부(330)는 생존 경로 저장부(331), 다운 카운터(332), 먹스(333), 시프트 레지스터(334)를 포함한다.As shown in FIG. 17, the traceback unit 330 according to an embodiment of the present invention includes a survival path storage unit 331, a down counter 332, a mux 333, and a shift register 334.

생존 경로 저장부(331)에는 ACS 연산부(320)의 각 연산 블록의 경로값 비교부(325)에서 생성된 생존 경로가 저장된다. ACS 연산부(320)의 각 연산 블록은 64개이므로 생존 경로는 64 비트의 정보이다.The survival path storage unit 331 stores the survival paths generated by the path value comparison unit 325 of each operation block of the ACS calculator 320. Since each operation block of the ACS operation unit 320 is 64, the survival path is 64-bit information.

다운 카운터(332)는 한 클록당 생존 경로 저장부(331)의 메모리 주소(Address)를 1씩 줄인다. 이에 따라 생존 경로 저장부(331)는 한 클록당 64비트의 생존 경로가 출력된다.The down counter 332 decrements the memory address of the survival path storage unit 331 by one clock. Accordingly, the survival path storage unit 331 outputs a 64-bit survival path per clock.

먹스(333)는 시프트 레지스터(334)가 지시하는 6 비트에 해당하는 1 비트를 출력한다. 시프트 레지스터(334)는 새로 입력 받은 1 비트를 가장 하위 비트에 입력하여 6비트 레지스터를 시프트(shift)하고 발생하는 캐리(carry)를 중심 비트열 선택부(400)에 전송한다. 이때 발생하는 캐리의 집합이 상술한 확장된 복호 데이터가 된다.The mux 333 outputs one bit corresponding to six bits indicated by the shift register 334. The shift register 334 inputs the newly input 1 bit into the least significant bit to shift the 6-bit register and transmits the generated carry to the center bit string selector 400. The set of carriers generated at this time becomes the above-described extended decoded data.

이하에서는 도 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 reception buffer unit 100 receives an encoded bit string from a channel (S100).

다음, 수신 비트열 확장부(200)는 수신 버퍼부(100)로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 확장된 부호화 비트열을 출력한다(S200).Next, the reception bit string extension unit 200 receives an encoding bit string corresponding to a coding unit from the reception buffer unit 100 and outputs an extended encoding bit string (S200).

비터비 복호부(300)는 확장된 부호화 비트열을 입력받아 비터비 복호를 수행한다(S300). 비터비 복호 단계(S300)은 가지값 계산 단계(S310), ACS 연산 단계(S320), 역추적 단계(S330)를 포함한다.The Viterbi decoder 300 receives the extended encoded bit string and performs Viterbi decoding (S300). The Viterbi decoding step S300 includes a branch value calculating step S310, an ACS calculation step S320, and a backtracking step S330.

가지값 계산 단계(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 string extension unit 200 and the code bits (Branch Coded Word, BCW) on the Trellis of the transmitter convolutional encoder. Calculate the branch value for. More specifically, the distance calculator 311 calculates a distance value between the input value of the Viterbi decoder 300 and representative values of 0 and 1 (S311). The next branch value adder 312 generates all branch values generated in the state transition process through the distance values generated by the distance calculator 311 (S312).

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 value calculating unit 310 and the path value of the previous state are added to calculate a path value from each branch leading to the current state, and the minimum path value is calculated from the calculated path values. Find and update the path value of each state, and select the survival path with the minimum path value. In more detail, the normalization factor generator 329 generates a normalization factor norm for preventing each path value from overflowing (S321). This normalization factor may be defined as the minimum of the path values of each state. Next, the normalizers 321 and 323 normalize the path value of the previous state through the normalization factor generated by the normalization factor generator 329 (S322). In this case, the normalizers 321 and 323 may normalize the path value of the previous state by subtracting a normalization factor (norm) from the path value of the previous state. The path value adders 322 and 324 add 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 (S323). Next, the path value comparison unit 325 selects a survival path by comparing path values from each branch generated by the path value adders 322 and 324 to the current state (S324). The path value selector 326 stores the path value corresponding to the selected survival path in the path value storage 328. Next, the path value clipping unit 327 clips and outputs the path value so that the path value selected by the path value selection unit 326 does not overflow.

다음, 역추적부(330)는 ACS 연산부(320)로부터의 생존 경로를 바탕으로 송신단 길쌈 부호화기의 트랠리스를 역추적하여 확장된 복호 데이터를 생성한다(S330).Next, the back tracker 330 back traces the trellis of the transmitter convolutional encoder based on the survival path from the ACS calculator 320 to generate extended decoded data (S330).

그리고, 중심 비트열 선택부(400)는 역추적부(330)에서 생성된 확장된 복호 데이터의 중심 비트열을 선택하여 출력한다(S400).The center bit string selector 400 selects and outputs the center bit string of the expanded decoded data generated by the backtrace 330 (S400).

그 후, 재정렬부(500)는 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성한다(S500).Thereafter, the rearranging unit 500 rearranges the order of the center bit strings to generate final decoded data (S500).

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. 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)

채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 수신 버퍼부;A reception buffer unit for receiving a convolutional coded encoding bit stream from a channel; 상기 수신 버퍼부로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 확장된 부호화 비트열 - 상기 확장된 부호화 비트열은 상기 부호화 비트열이 2회 이상 확장된 비트열이며 이렇게 확장된 비트열의 초기 비트열의 일부 또는 마지막 비트열의 일부는 생략될 수 있음 - 을 생성하는 수신 비트열 확장부;An encoded bit string extended from the reception buffer unit corresponding to a coding unit, the extended coded bit string being a bit string in which the coded bit string is extended two or more times; A part or part of the last bit string may be omitted; 상기 확장된 부호화 비트열을 입력받아 비터비 복호를 수행하여 복호 데이터를 출력하는 비터비 복호부;A Viterbi decoder which receives the extended coded bit string and performs Viterbi decoding to output decoded data; 상기 복호 데이터의 중심 비트열을 선택하여 출력하는 중심 비트열 선택부;A center bit string selector for selecting and outputting a center bit string of the decoded data; 상기 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 재정렬부를 포함하는 비터비 복호 장치.And a reordering unit for rearranging the order of the center bit strings to generate final decoded data. 제1항에 있어서,The method of claim 1, 상기 비터비 복호부는,The Viterbi decoder, 상기 확장된 부호화 비트열과 0 및 1의 대표값과의 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지에 대해 가지값을 계산하는 가지값 계산부;A branch value calculator configured to calculate branch values for all branches generated in a state transition process through distance values between the extended coded bit string and representative values of 0 and 1; 상기 가지값 계산부로부터의 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 최소 경로값을 가지는 가지에 대한 생존 경로를 선택하는 ACS 연산부;An ACS calculator for adding path values from the branch value calculator and path values of the previous state to calculate path values from each branch to the current state and selecting a survival path for the branch having the minimum path value; 상기 ACS 연산부로부터의 생존 경로를 역추적하여 복호 데이터를 출력하는 역추적부를 포함하는 비터비 복호 장치.And a back tracer for tracing the survival path from the ACS calculator and outputting decoded data. 제2항에 있어서,The method of claim 2, 상기 ACS 연산부는,The ACS calculation unit, 이전 상태의 경로값에 이전 상태에서 현재 상태로 이르는 가지의 가지값을 더하여 각 가지로부터 현재 상태에 이르는 경로값을 생성하는 경로값 덧셈부;A path value adder for generating a path value from each branch to the current state by adding a branch value of the branch from the previous state to the current state to the path value of the previous state; 상기 경로값 덧셈부에서 생성된 경로값을 비교하여 최소의 경로값을 갖는 생존 경로를 선택하는 경로값 비교부;A path value comparison unit selecting a survival path having a minimum path value by comparing the path values generated by the path value adder; 상기 생존 경로에 해당하는 경로값을 선택하여 출력하는 경로값 선택부;A path value selection unit for selecting and outputting a path value corresponding to the survival path; 상기 경로값 선택부에서 선택된 경로값을 저장하는 경로값 저장부를 포함하는 비터비 복호 장치.And a path value storage unit for storing the path value selected by the path value selection unit. 제3항에 있어서,The method of claim 3, 상기 ACS 연산부는,The ACS calculation unit, 트랠리스를 진행해 나감에 따라 누적되는 경로값의 오버플로우를 막는 정규화 인자를 생성하는 정규화 인자 생성부;A normalization factor generator for generating a normalization factor that prevents an overflow of a path value that accumulates as the traverse proceeds; 상기 정규화 인자 생성부에서 생성된 정규화 인자를 통해 이전 상태의 경로값을 정규화하는 정규화부를 더 포함하는 비터비 복호 장치.And a normalization unit for normalizing a path value of a previous state through the normalization factor generated by the normalization factor generator. 제4항에 있어서,The method of claim 4, wherein 상기 정규화 인자 생성부는 이전 상태의 경로값 중에 최소의 경로값으로 정규화 인자를 생성하고,The normalization factor generator generates a normalization factor with a minimum path value among the path values of the previous state, 상기 정규화부는 이전 상태의 경로값에서 상기 정규화 인자를 감산하는 비터비 복호 장치.And the normalization unit subtracts the normalization factor from a path value of a previous state. 제3항 내지 제5항 중 어느 한 항에 있어서,The method according to any one of claims 3 to 5, 상기 경로값 선택부에서 선택된 경로값이 상기 경로값 저장부의 저장 단위보다 큰 경우 상기 경로값의 클리핑을 수행하는 클리핑부를 더 포함하는 비터비 복호 장치.And a clipping unit for clipping the path value when the path value selected by the path value selecting unit is larger than a storage unit of the path value storing unit. 제2항에 있어서,The method of claim 2, 상기 가지값 계산부는,The branch value calculation unit, 상기 수신 비트열 확장부로부터 입력받은 부호화 비트열과 0 및 1의 대표값과의 거리값을 계산하는 거리 계산부;A distance calculator configured to calculate a distance value between the encoded bit string received from the received bit string extension unit and a representative value of 0 and 1; 상기 거리 계산부에서 계산된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성하는 가지값 덧셈부를 포함하는 비터비 복호 장치.And a branch value adder for generating all branch values generated in the state transition process through the distance values calculated by the distance calculator. 제7항에 있어서,The method of claim 7, wherein 상기 가지값 계산부는,The branch value calculation unit, 상기 가지값 덧셈부에서 생성된 가지값을 저장하는 가지값 저장부를 더 포함하는 비터비 복호 장치.And a branch value storage unit for storing branch values generated by the branch value adding unit. a) 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 단계;a) receiving a convolutional coded bitstream from a channel; b) 상기 부호화 비트열을 바탕으로 부호화 단위마다 확장된 부호화 비트열 - 상기 확장된 부호화 비트열은 상기 부호화 비트열이 2회 이상 확장된 비트열이며 이렇게 확장된 비트열의 초기 비트열의 일부 또는 마지막 비트열의 일부는 생략될 수 있음 - 을 생성하는 단계;b) an encoded bit string extended for each coding unit based on the coded bit string, wherein the extended coded bit string is a bit string in which the coded bit string is extended two or more times and a part or the last bit of the initial bit string of the extended bit string. Some of the columns may be omitted; c) 상기 확장된 부호화 비트열을 비터비 복호하여 복호 데이터를 출력하는 단계;c) outputting decoded data by Viterbi decoding the extended coded bit stream; d) 상기 복호 데이터의 중심 비트열을 선택하는 단계;d) selecting a center bit string of the decoded data; e) 상기 중심 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 단계를 포함하는 복호 방법.e) rearranging the order of the center bit strings to generate final decoded data. 제9항에 있어서,The method of claim 9, 상기 c) 단계는,C), 상기 확장된 부호화 비트열과 0 및 1의 대표값과의 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지에 대해 가지값을 계산하는 단계;Calculating branch values for all branches generated in a state transition process through distance values between the extended coded bit string and representative values of 0 and 1; 상기 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 최소 경로값을 가지는 가지에 대한 생존 경로를 선택하는 단계;Calculating a path value from each branch reaching the current state by adding the branch value and the path value of the previous state and selecting a survival path for the branch having the minimum path value; 상기 선택된 생존 경로를 역추적하여 복호 데이터를 출력하는 단계를 포함하는 복호 방법.And back-tracking the selected survival path to output decoded data. 제10항에 있어서,The method of claim 10, 상기 생존 경로를 선택하는 단계는,The step of selecting the survival path, 이전 상태의 경로값에 이전 상태에서 현재 상태로 이르는 가지의 가지값을 더하여 각 가지로부터 현재 상태에 이르는 경로값을 생성하는 단계;Generating a path value from each branch to the current state by adding a branch value of the branch from the previous state to the current state to the path value of the previous state; 상기 생성된 경로값을 비교하여 최소의 경로값을 갖는 생존 경로를 선택하는 단계;Comparing the generated path values to select a survival path having a minimum path value; 상기 생존 경로에 해당하는 경로값을 선택하는 단계;Selecting a path value corresponding to the survival path; 상기 선택된 경로값을 저장하는 단계를 포함하는 복호 방법.And storing the selected path value. 제11항에 있어서,The method of claim 11, 상기 생존 경로를 선택하는 단계는,The step of selecting the survival path, 이전 상태의 경로값 중에 최소의 경로값으로 정규화 인자를 생성하는 단계;Generating a normalization factor with a minimum path value among the path values of the previous state; 이전 상태의 경로값에서 상기 정규화 인자를 감산하는 단계를 더 포함하는 복호 방법.Subtracting the normalization factor from a path value of a previous state. 제11항 또는 제12항에 있어서,The method according to claim 11 or 12, wherein 상기 생존 경로를 선택하는 단계는,The step of selecting the survival path, 상기 선택된 경로값의 클리핑을 수행하는 단계를 더 포함하는 복호 방법.And performing clipping of the selected path value. 삭제delete
KR1020050086281A 2005-08-19 2005-09-15 Apparatus and method for viterbi decoding KR100726170B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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