KR20050065874A - Apparatus and method for ctc decoder - Google Patents

Apparatus and method for ctc decoder Download PDF

Info

Publication number
KR20050065874A
KR20050065874A KR1020030096772A KR20030096772A KR20050065874A KR 20050065874 A KR20050065874 A KR 20050065874A KR 1020030096772 A KR1020030096772 A KR 1020030096772A KR 20030096772 A KR20030096772 A KR 20030096772A KR 20050065874 A KR20050065874 A KR 20050065874A
Authority
KR
South Korea
Prior art keywords
value
output
state metric
metric
decoding
Prior art date
Application number
KR1020030096772A
Other languages
Korean (ko)
Other versions
KR100612648B1 (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 KR1020030096772A priority Critical patent/KR100612648B1/en
Publication of KR20050065874A publication Critical patent/KR20050065874A/en
Application granted granted Critical
Publication of KR100612648B1 publication Critical patent/KR100612648B1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명은 CTC 복호화 장치 및 방법에 관한 것으로, 특히 CTC 복호화기를 VLSI로 구현하기 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for CTC decoding, and more particularly, to an apparatus and method for implementing a CTC decoder with VLSI.

CTC 복호화 장치는 하나의 MAP 복호기가 포함된 CTC 복호기를 병렬로 배치한다. 그리고 MAP 복호기는 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 동시에 수행하여 하나의 단위 시간당 2 비트를 복호한다. 이를 위하여 순방향 상태 메트릭을 연산하는 역방향 연산부와 역방향 상태 메트릭을 연산하는 순방향 연산부를 상하 대칭적인 구조로 배치한다. 그리고 상태 메트릭 연산부는 결정된 모든 상태 메트릭값을 필요 비트 수보다 하나를 더 추가하여 사용하고 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 오버플로우 발생시 리셋하여 연산 지연을 최소화한다.The CTC decoding apparatus arranges CTC decoders including one MAP decoder in parallel. The MAP decoder simultaneously performs the forward state metric operation and the reverse state metric operation to decode 2 bits per unit time. To this end, the reverse operation unit that calculates the forward state metric and the forward operation unit that calculates the reverse state metric are arranged in a vertically symmetrical structure. The state metric calculation unit uses all determined state metric values by adding one more than necessary bits, and after completion of the state metric operation, inspects the most significant bit of each metric value and resets it when overflow occurs, thereby minimizing operation delay.

이와 같이 하면, 복호 속도를 증가시킬 수 있다.In this way, the decoding speed can be increased.

Description

CTC 복호화 장치 및 방법{APPARATUS AND METHOD FOR CTC DECODER}CT decoding apparatus and method {APPARATUS AND METHOD FOR CTC DECODER}

본 발명은 복호 속도를 향상시키고 하드웨어 구현에 있어서 면적 소모를 최소화하기 위한 CTC 복호화기 장치 및 방법에 관한 것이다.The present invention relates to a CTC decoder device and method for improving the decoding speed and minimizing the area consumption in hardware implementation.

일반적으로 유무선 디지털 통신 시스템에서는 전송로상의 오류를 보정하기 위해 송신단에서 정보비트에 부가 비트를 첨부하고 수신단에서는 오류 정정 알고리즘을 이용하여 오류를 보정한다. 이러한 오류정정알고리즘의 하나로 터보코드(Turbo Code)를 사용한다. 일반적인 터보 코드에서 부호기가 매 클럭마다 하나의 비트 입력을 받아 처리하는 반면에 CTC(Convolutional Turbo Code) 코드에서는 매 클럭마다 2개의 비트를 입력받아 처리한다. 따라서 CTC 복호기에서 처리 속도가 이진 터보 코드에 비해 2배 정도 향상된다.In general, in a wired / wireless digital communication system, an additional bit is added to an information bit at a transmitter to correct an error on a transmission path, and an error is corrected using an error correction algorithm at a receiver. As one of these error correction algorithms, Turbo Code is used. In general turbo code, the encoder receives and processes one bit input every clock, while in Convolutional Turbo Code (CTC) code, two bits are input and processed every clock. Therefore, the processing speed in the CTC decoder is about twice that of binary turbo code.

CTC 코드는 최근 연구가 진행되고 있는 802.16a의 채널 코덱으로써 채택되어 있고, 개인 휴대 인터넷(HPi, High speed Personal Internet) 무선 통신 시스템에도 채택되고 있다.The CTC code has been adopted as the 802.16a channel codec, which is being studied recently, and has also been adopted in a high speed personal Internet (HPi) wireless communication system.

터보 복호기는 기존의 이진 터보 코드와 알고리즘을 이용하여 구현된다. 다만 부분적으로 CTC의 특징을 수용하는 구조를 가진다. 복호 알고리즘으로는 크게 최대 사후 알고리즘(MAP: Maximum A Posteriori)과 연성 출력 비터비 알고리즘(SOVA: Soft Out Viterbi Alogorithm)으로 나누어지고 최대 사후 알고리즘은 다시 순수한 최대 사후 방식(pure MAP), 로그 최대 사후 방식(LOG-MAP), 최대 로그 최대 사후(MAX-LOG-MAP or MIN-LOG-MAP) 방식으로 나누어진다. 하드웨어 구현을 위해서는 오류 정정 능력은 다소 떨어지나 구현 복잡도가 낮은 로그 최대 사후 방식이나 최대 로그 최대 사후 방식이 주로 이용된다. The turbo decoder is implemented using existing binary turbo codes and algorithms. However, it has a structure partially accommodating the characteristics of the CTC. The decoding algorithm is largely divided into Maximum A Posteriori (MAP) and Soft Out Viterbi Alogorithm (SOVA), and the maximum post algorithm is pure pure MAP and log maximum post-mortem. (LOG-MAP), the maximum log maximum post (MAX-LOG-MAP or MIN-LOG-MAP) method. For the hardware implementation, the log max post method or the max log max post method which are somewhat inferior in error correction capability but low in implementation complexity are mainly used.

일반적인 터보 복호기는 두 개의 MAP 복호기가 사용되고 MAP 복호기 사이에 비트열의 순서를 일치시키기 위한 인터리버(interleaver)가 존재한다. 각 MAP 복호기에는 수신 심볼과 전단의 MAP 복호기의 결과인 잉여 정보 값이 들어와 현재의 확률적 가중치를 계산하고 이 값과 입력 값을 이용하여 다음 단의 MAP 복호기의 입력 값으로 쓰일 새로운 잉여 정보를 생성한다. 이 잉여 정보는 수신 심볼과 결합하여 다음 단의 MAP 복호기에서 좀 더 신뢰도가 높은 확률적 가중치를 계산할 수 있도록 도와준다. 이러한 복호 과정을 반복함으로써 복호기의 연판정 결과값의 신뢰도가 점점 높아지게 되어 오류 정정 능력이 향상되게 된다.In a typical turbo decoder, two MAP decoders are used, and an interleaver exists to match the order of bit strings between the MAP decoders. Each MAP decoder contains the received symbol and the surplus information value that is the result of the MAP decoder of the previous stage, calculates the current probabilistic weight, and uses this value and the input value to generate new surplus information to be used as the input value of the next stage MAP decoder. do. This surplus information is combined with the received symbol to help calculate more reliable probabilistic weights in the next stage MAP decoder. By repeating the decoding process, the reliability of the soft decision result value of the decoder is gradually increased, thereby improving the error correction capability.

CTC 복호기의 핵심 연산부인 MAP 복호기의 일반적인 동작은 다음과 같다. MAP 복호기의 중요 요소에는 가지 메트릭 연산, 순방향 상태 메트릭 연산, 역방향 상태 메트릭 연산 그리고 확률적 가중치 연산이 있다. The general operation of the MAP decoder, which is the core operation unit of the CTC decoder, is as follows. Important elements of the MAP decoder include branch metric operation, forward state metric operation, reverse state metric operation, and stochastic weight operation.

가지 메트릭은 트렐리스 상에서 현재 시점에서 다음 시점으로 천이될 확률적 가중치로써 수신 심볼과 전단 MAP 복호기에서 계산되어진 잉여 정보 등을 이용하여 얻을 수 있다. The branch metric may be obtained using the received symbol and the surplus information calculated in the front end MAP decoder as a probabilistic weight to be shifted from the current time to the next time on the trellis.

순방향 상태 메트릭은 시간 0인 시점부터 시작하여 시간 N인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 순방향 상태 메트릭과 현재의 가지 메트릭을 이용하여 현재 시점의 순방향 상태 메트릭을 계산한다.The forward state metric calculates the forward state metric at the present time by using the previous forward state metric and the current branch metric as probabilistic weights for all states starting from time 0 and time N.

역방향 상태 메트릭은 시간 N인 시점부터 시작하여 시간 0인 시점까지 모든 상태에 대한 확률적 가중치로써 이전 역방향 상태 메트릭과 현재 시점의 가지 메트릭을 이용하여 현재의 역방향 상태 메트릭을 계산한다. The reverse state metric calculates the current reverse state metric by using the previous reverse state metric and the branch metric of the current time as probabilistic weights for all states starting from the time point N until time 0.

확률적 가중치는 앞에서 계산된 가지 메트릭, 순방향 상태 메트릭, 역방향 상태 메트릭을 이용하여 구한다.Probabilistic weights are obtained using the branch metric, forward state metric, and reverse state metric calculated above.

그러나, 이와 같은 CTC복호기는 개인 휴대 인터넷에서 요구되는 고속의 데이터를 처리하기에는 한계가 있다.However, such a CTC decoder has a limitation in processing the high speed data required in the personal portable Internet.

본 발명은 상기와 같은 문제점을 해결하고자 하는 것으로, 본 발명이 이루고자 하는 기술적 과제는 복호 수행 시간을 단축시킬 수 있는 CTC 복호화기 장치 및 방법을 제공하기 위한 것이다.The present invention is to solve the above problems, the technical problem to be achieved by the present invention is to provide a CTC decoder device and method that can reduce the decoding execution time.

이러한 과제를 해결하기 위해 본 발명에서는 송신단으로부터 CTC 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 장치가 제공된다.In order to solve this problem, the present invention provides a CTC decoding apparatus for decoding a transmission symbol encoded and transmitted by a CTC code from a transmitter.

본 발명의 하나의 특징에 따른 CTC 복호화기 장치는, 순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 상기 심볼에 대해 하나의 단위 시간당 2 비트를 복호하는 MAP 복호기; 상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기; 역다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버; 상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및 상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함한다.According to an aspect of the present invention, there is provided a CTC decoder, including: a MAP decoder configured to simultaneously perform operations on a forward state metric and a reverse state metric to decode 2 bits per unit time for the symbol; A multiplexer for adjusting inputs and outputs when decoding the MAP decoder; An interleaver / deinterleaver that matches the value output from the demultiplexer with the order of symbols applied in the next decoding; A deinterleaver for deinterleaving the calculated likelihood ratio after decoding from the MAP decoder; And a hard determiner that estimates the final decoding bit based on the value output from the deinterleaver.

상기 MAP 복호기는, 상기 심볼에 대한 현재 복호될 비트값이 4가지 확률에 대한 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과값을 각각의 메모리에 저장하여 시간 N/2인 시점부터 확률적 가중치 연산을 수행하는 순방향 연산부 및 역방향 연산부를 포함하고, 상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조인 것을 특징으로 한다.The MAP decoder performs a forward state metric and a reverse state metric operation on four probabilities in parallel for the current decoded bit value and stores the result in each memory to time N / 2. And a forward calculating unit and a reverse calculating unit performing a stochastic weighting operation, wherein the forward calculating unit and the reverse calculating unit have a vertically symmetrical structure.

그리고 상기 순방향 연산부는, 순차적으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 상단 가지 메트릭 연산부; 상기 상단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부; 상기 순방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제1 메모리; 상기 이전 상태 메트릭 값과 상기 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 상단 확률적 가중치 연산부; 및 상기 상단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 상단 잉여 정보 연산부를 포함하고, 상기 역방향 연산부는, 역순으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 하단 가지 메트릭 연산부; 상기 하단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 역방향 상태 메트릭 연산부; 상기 역방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제2 메모리; 상기 이전 상태 메트릭 값과 상기 하단 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 하단 확률적 가중치 연산부; 및 상기 하단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 하단 잉여 정보 연산부를 포함하며, 상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행하는 것을 특징으로 한다.The forward calculation unit may further include: an upper branch metric calculation unit configured to perform branch metrics on four probabilities of bit values to be decoded for sequentially received reception symbols; A forward state metric calculator for calculating a current state metric using a result value of the upper branch metric calculator and a previous state metric value; A first memory configured to store a state metric value calculated from the forward state metric calculator; An upper probabilistic weight calculator for calculating probabilistic weights using the previous state metric value, the branch metric value, and the current state metric value; And an upper surplus information calculating unit configured to generate surplus information based on the probabilistic weights output from the upper probabilistic weight calculating unit, wherein the reverse calculating unit has four probabilities that the bit values to be decoded for the received symbol are input in reverse order. A lower branch metric calculator for performing branch metrics on the branch; A reverse state metric calculator for calculating a current state metric using a result value of the lower branch metric calculator and a previous state metric value; A second memory for storing a state metric value calculated from the reverse state metric calculation unit; A bottom probabilistic weight calculation unit configured to calculate probabilistic weights using the previous state metric value, the bottom branch metric value, and the current state metric value; And a lower surplus information calculating unit generating surplus information based on the probabilistic weights output from the lower probabilistic weight calculating unit, and simultaneously performing the forward state metric and the reverse state metric.

그리고 상기 상태 메트릭 연산부는, 상기 4가지 확률에 대한 이전 상태 메트릭 값과 가지 메트릭값을 더한 값으로부터 특정 연산에 의해 최소값을 출력하기 위한 제1 및 제2 덧셈기; 상기 특정 연산에 기초하여 출력된 각 비트들이 입력되는 결합기; 및 상기 결합기로부터 출력된 값과 상기 4가지 확률에 대한 이전 상태 메트릭값과 가지 메트릭값을 더한 값에 기초하여 최소값을 출력하는 다중화기를 포함한다. 이 때, 상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는 출력된 상태 메트릭값을 필요 비트 수보다 더 추가하여 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 정규화하는 것을 특징으로 한다. 그리고 모든 상태 메트릭의 최상위 비트 검사 결과에 기초하여 오버플로우를 판단하고 상기 오버플로우가 발생한 경우, 상기 모든 최상위 비트 값을 리셋하여 연산 지연을 최소화하는 것을 특징으로 한다.The state metric calculator comprises: first and second adders for outputting a minimum value by a specific operation from a value obtained by adding a previous state metric value and a branch metric value for the four probabilities; A combiner to which the output bits are input based on the specific operation; And a multiplexer for outputting a minimum value based on a value output from the combiner, a previous state metric value for the four probabilities, and a branch metric value. In this case, the forward state metric calculation unit or the reverse state metric calculation unit adds the output state metric value more than the required number of bits, and after completion of the state metric operation, checks and normalizes the most significant bit of each metric value. The overflow is determined based on the most significant bit check result of all state metrics, and when the overflow occurs, the operation delay is minimized by resetting all the most significant bit values.

또한, 상기 잉여 정보 연산부는, 상기 계산된 확률적 가중치로부터 입력 사전 확률값(APP)을 뺀 값의 크기를 반으로 줄이는 것여 정규화하는 것을 특징으로 한다.The surplus information calculating unit may normalize by reducing the size of the value obtained by subtracting the input prior probability value APP from the calculated probabilistic weight by half.

또한, 상기 인터리버는, 순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터; 상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기; 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제1 및 제2 덧셈기; 상기 제2 덧셈기로부터 출력된 값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제1 비교기; 상기 제1 비교기로부터의 출력값과 제1 및 제2 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제2 다중화기; 상기 상수값과 제2 다중화기로부터의 출력값을 더하는 제3 및 제4 덧셈기; 상기 제4 덧셈기로부터의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제2 비교기; 상기 제2 비교기로부터의 출력값 및 상기 제3 및 제4 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제3 다중화기를 포함하고, 상기 제1 및 제2 다중화기로부터 출력된 값들은 각각의 D 플립플롭에 저장되는 것을 특징으로 한다.The interleaver may further include a counter that counts up to 1/2 of the size of the CTC code block while sequentially increasing; A first multiplexer receiving a least two bits of the count value as a control value and outputting a constant value; First and second adders that receive a specific value and add an operation by a specific operation; A first comparator configured to generate an output value based on a comparison result between the value output from the second adder and a reference value; A second multiplexer which receives an output value from the first comparator and an output value from the first and second adders and selects one output value; Third and fourth adders for adding the constant value and an output value from a second multiplexer; A second comparator for generating an output value based on a result of comparing the output value from the fourth adder with a reference value; A third multiplexer which receives an output value from the second comparator and output values from the third and fourth adders and selects one output value, wherein the values output from the first and second multiplexers are respectively D; And is stored in a flip-flop.

또한, 상기 인터리버는, 상기 제3 다중화기로부터의 출력값과 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제5 덧셈기; 상기 제5 덧셈기의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제3 비교기; 및 상기 제5 덧셈기의 입출력값과 상기 제3 비교기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제4 다중화기를 더 포함하며, 상기 제4 다중화기는 인터리빙 주소를 출력하는 것을 특징으로 한다.The interleaver may further include: a fifth adder configured to add and receive a specific value by an output value and a specific operation from the third multiplexer; A third comparator configured to generate an output value based on a result of comparing the output value of the fifth adder with a reference value; And a fourth multiplexer which receives an input / output value of the fifth adder and an output value from the third comparator and selects one output value, wherein the fourth multiplexer outputs an interleaving address.

그리고 CTC 복호기는 상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부를 더 포함하며, 첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고, 두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력되는 것을 특징으로 한다. 그리고 상기 다중화기는, 상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및 상기 MAP 복호기의 출력을 조정하는 제3 다중화기를 포함하며, 상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력하고, 상기 MAP 복호기로부터 출력되는 확률적 가중치는 상기 제3 다중화기로 입력되는 것을 특징으로 한다. 또한, 상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및 상기 제3 다중화기로의 확률적 가중치 입력을 조정하는 제2 및 제3 가산기를 더 포함할 수 있다.The CTC decoder further includes first and second memory units for storing the output from the MAP decoder. During the first decoding, a value obtained by adding a received symbol and a value stored in the second memory unit is input. When performing the first decoding, a value stored in the first memory is input. And the multiplexer comprises: first and second multiplexers for adjusting the input of the MAP decoder; And a third multiplexer for adjusting the output of the MAP decoder, wherein the MAP decoder receives a value input from the first and second multiplexers, outputs a logarithmic likelihood ratio, and a probabilistic weight output from the MAP decoder. Is input to the third multiplexer. A first adder for adjusting an input to a first multiplexer located in front of the MAP decoder; And second and third adders for adjusting the probabilistic weight input to the third multiplexer.

본 발명에서는 송신단으로부터 CTC 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 방법이 제공된다.According to the present invention, there is provided a CTC decoding method for decoding a transmission symbol encoded and transmitted by a CTC code from a transmitter.

본 발명의 다른 하나의 특징에 따른 CTC 복호화 방법은 a) 상기 CTC 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계; b) 상기 a)단계로부터 수신된 심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 제1 확률적 가중치를 계산하는 1차 복조 단계; c) 상기 제1 확률적 가중치로부터 출력된 잉여 정보 및 상기 계산된 제1 확률적 가중치를 조정한 값을 입력으로 받아 제2 확률적 가중치를 연산하여 출력하는 2차 복조 단계; 및 d) 상기 2차 복호 후 출력된 확률적 가중치로부터 경판정하여 최종 복호 비트를 결정하는 단계를 포함하고, 상기 복호 단계마다 입력 및 출력이 조정되는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a CTC decoding method comprising the steps of: a) multiplexing and receiving a transmission symbol encoded and received by the CTC code; b) a first demodulation step of calculating first probabilistic weights for four probabilities of bit values to be decoded for a symbol received from step a); c) a second demodulation step of receiving surplus information output from the first probabilistic weights and a value obtained by adjusting the calculated first probabilistic weights, and calculating and outputting a second probabilistic weight; And d) hard determining from the probabilistic weights output after the second decoding to determine a final decoding bit, wherein the input and output are adjusted for each decoding step.

그리고 상기 b)단계는, ⅰ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 1차 복호에 따른 제1 확률적 가중치를 출력하는 단계; ⅱ) 상기 제1 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅲ) 상기 ⅱ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.And the step b) comprises: i) outputting a first probabilistic weight according to the first order decoding based on the symbol value received from the step a); Ii) adjusting and multiplexing the output value of the first probabilistic weights to output a specific value; And iv) interleaving and storing the specific value output from step ii).

그리고 상기 c)단계는, ⅳ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 2차 복호에 따른 제2 확률적 가중치를 출력하는 단계; ⅴ) 상기 제2 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및 ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함한다.And the step c) comprises: i) outputting a second probabilistic weight according to the second decoding based on the symbol value received from the step a); Iii) adjusting and multiplexing the output value of the second probabilistic weights to output a specific value; And iv) interleaving and storing the specific value output from the step iii).

그리고 상기 확률적 가중치 연산 단계는, 순차적 또는 역순으로 각각 수신되는 심볼의 4가지 확률 경로에 대해 가지 메트릭 연산을 수행하는 가지 메트릭 연산 단계; 상기 순차적으로 입력되는 수신 심볼에 대한 4가지 확률 경로에 대해 각각 입력된 이전 상태 메트릭 값과 가지 메트릭 값을 더한 값에서 특정 연산에 의해 최소값을 현재의 상태 메트릭 값으로 결정하는 상태 메트릭 연산 단계; 상기 이전 상태 메트릭값과 상기 가지 메트릭값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 결정하는 확률적 가중치 연산 단계; 및 상기 확률적 가중치에 기초하여 잉여 정보를 발생시키는 잉여 정보 연산 단계를 포함하며, 순차적으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 순방향 상태 메트릭값과 상기 역순으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 역방향 상태 메트릭값을 동시에 연산하여 하나의 단위 시간 당 2비트를 복호하는 것을 특징으로 한다.The probabilistic weight calculation step may include a branch metric calculation step of performing a branch metric operation on four probability paths of a received symbol in sequential or reverse order; A state metric calculation step of determining a minimum value as a current state metric value by a specific operation from a value obtained by adding previous state metric values and branch metric values respectively inputted for the four probability paths for the sequentially input received symbols; A probabilistic weight calculation step of determining respective probabilistic weights using the previous state metric value, the branch metric value, and the current state metric value; And a redundancy information calculating step of generating surplus information based on the probabilistic weights, wherein the four states of the forward state metric values for the four probabilistic paths of the received symbols sequentially input and the four probabilities of the received symbols input in the reverse order Simultaneously calculating the reverse state metric value for the path, it is characterized by decoding two bits per unit time.

그리고 상기 상태 메트릭 연산 단계는, 상기 결정된 모든 상태 메트릭값을 필요 비트수보다 하나 더 추가하는 단계; 상기 상태 메트릭 연산 완료 후, 각 메트릭값의 최상위 비트를 검사하는 단계; 및 상기 검사 결과, 수신 심볼의 4가지 확률 경로에 대한 모든 상태 메트릭의 최상위 비트가 제1 값을 가진 경우 모든 최상위 비트의 값을 제2 값으로 리셋하는 단계를 포함하며, 상기 모든 상태 메트릭의 최상위 비트가 제1 값을 가지면, 오버플로우가 발생한 것으로 간주하는 것을 특징으로 한다.And the state metric calculation step includes: adding one more all the determined state metric values than the number of required bits; Checking the most significant bit of each metric value after completion of the state metric operation; And resetting the values of all the most significant bits to a second value if the most significant bit of all the state metrics for the four probability paths of the received symbol has the first value as a result of the check. If the bit has a first value, the overflow is considered to have occurred.

그리고 상기 잉여 정보 연산 단계는, 상기 연산된 확률적 가중치로부터 입력되는 사전정보값을 차감하여 잉여 정보를 발생시키는 단계; 및 상기 발생된 잉여 정보값에 1/2을 곱하여 정규화하는 단계를 포함한다.The surplus information calculating step may include generating surplus information by subtracting a prior information value inputted from the calculated probabilistic weights; And normalizing by multiplying the generated surplus information value by 1/2.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다. 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. Like parts are designated by like reference numerals throughout the specification.

이하, 802.16a 규격에 채택된 부호율 1/2인 CTC 코드를 예로 들어서 본 발명 의 구성 및 동작을 설명한다.Hereinafter, the configuration and operation of the present invention will be described by taking a CTC code having a code rate 1/2 adopted in the 802.16a standard as an example.

먼저, 도 1을 참조하여 802.16a 규격에 채택된 부호율 1/2인 터보 부호기에 대해 설명한다.First, a turbo encoder having a code rate 1/2 adopted in the 802.16a standard will be described with reference to FIG.

도 1은 부호율 1/2인 일반적인 터보 부호기를 나타내는 도면이다.1 is a diagram illustrating a general turbo encoder having a code rate of 1/2.

도 1에서 나타낸 바와 같이 802.16a 규격에 채택된 부호율 1/2인 터보 부호기(10)는 A 및 B가 입력되는 정보 비트 열로부터 제1 길쌈부호기(2)를 통해 패리티 비트(Parity bit;잉여 비트) Y1을 생성하여 출력한다. 또한, 입력 A 및 B는 인터리버(1)에 의해 재배열 된 후, 제1 길쌈 부호기(2)와 병렬 연결된 제2 길쌈 부호기(3)를 통해 패리티 비트 Y2를 생성하여 출력한다. 그리고 입력 A, B는 그대로 부호화되지 않은 C1, C2를 출력한다. 이렇게 생성된 패리티 비트 및 부호화되지 않은 심볼은 병/직렬 변환부(4)를 통해 직렬로 변환되어 하나의 출력심볼이 생성된다.As shown in FIG. 1, the turbo coder 10 having a code rate of 1/2 adopted in the 802.16a standard has a parity bit surplus through the first convolutional encoder 2 from an information bit string to which A and B are input. Bit) Y1 is generated and output. In addition, after the inputs A and B are rearranged by the interleaver 1, the parity bits Y2 are generated and output through the second convolutional encoder 3 connected in parallel with the first convolutional encoder 2. The inputs A and B output C1 and C2 which are not encoded as they are. The generated parity bits and uncoded symbols are serially converted by the parallel / serial converter 4 to generate one output symbol.

이와 같이 구성된 터보 부호기(10)는 제1 및 제2 길쌈 부호기(2, 3)을 통해 독립적인 패리티를 발생시키게 함으로써 반복적인 복호가 가능하도록 한다.The turbo encoder 10 configured as described above allows repeated decoding by generating independent parity through the first and second convolutional encoders 2 and 3.

다음으로, 부호율 1/2인 일반적인 터보 부호기에 대해 802.16a 규격에 채택된 부호율 1/2인 CTC 코드를 예로 들어서 설명한다.Next, a description will be given taking a CTC code having a code rate of 1/2 adopted in the 802.16a standard as an example for a general turbo coder having a code rate of 1/2.

도 2는 본 발명의 실시예에 따른 4개의 CTC 복호기를 병렬로 배치한 고속 CTC 복호기의 구조도이다.2 is a structural diagram of a fast CTC decoder in which four CTC decoders are arranged in parallel according to an embodiment of the present invention.

도 2에 나타낸 바와 같이 본 발명의 실시예에 따른 CTC 복호기(100)는 4개의 CTC 복호기(101, 102, 103, 104)를 병렬 구조로 배치한다. 각각의 CTC 복호기(101, 102, 103, 104)는 동일한 기능을 하고 이에 대한 내부 구조도 각각 동일하므로, 이하, 하나의 CTC 복호기에 대해 도 3을 참조하여 상세하게 설명한다.As shown in FIG. 2, the CTC decoder 100 according to the embodiment of the present invention arranges four CTC decoders 101, 102, 103, and 104 in a parallel structure. Since each of the CTC decoders 101, 102, 103, and 104 have the same function and the internal structure thereof is the same, the following describes one CTC decoder in detail with reference to FIG.

도 3은 본 발명의 실시예에 따른 MAP 복호기를 이용한 CTC 복호기의 구조도이다.3 is a structural diagram of a CTC decoder using a MAP decoder according to an embodiment of the present invention.

도 3에 나타낸 바와 같이, 본 발명의 실시예에 따른 터보 복호기(101)는 하나의 MAP 복호기(110)를 공유하여 사용한다. As shown in FIG. 3, the turbo decoder 101 according to the embodiment of the present invention shares and uses one MAP decoder 110.

본 발명의 실시예에 따른 터보 부호기(101)는 MAP 복호기(110), 가산기(112, 134, 136), 다중화기(114, 116, 118, 128), 인터리버/디인터리버(120), 역다중화기(122), 메모리(124, 126), 디인터리버(130) 및 경판정기(132)를 포함한다.Turbo encoder 101 according to an embodiment of the present invention is MAP decoder 110, adders 112, 134, 136, multiplexers 114, 116, 118, 128, interleaver / deinterleaver 120, demultiplexer Reference numeral 122, memories 124 and 126, deinterleaver 130, and hard determiner 132.

MAP 복호기(110)는 순방향 상태 메트릭 연산과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과 값을 각각의 메모리에 저장한 후, 시간 N/2인 시점부터 확률적 가중치 계산하여 복호를 수행한다.The MAP decoder 110 performs the forward state metric operation and the reverse state metric operation in parallel, stores the result in each memory, and performs decoding by calculating probabilistic weights from the time N / 2.

가산기(112)는 입력되는 값을 더하여 출력한다.The adder 112 adds an input value and outputs it.

다중화기(114, 116, 118, 128)는 입력되는 다수의 값 중 하나를 선택하여 출력으로 연결한다. 이와 같이 하여 MAP 복호기의 입력 및 출력을 조정한다.The multiplexer 114, 116, 118, 128 selects one of a number of inputs and connects it to the output. In this way, the input and output of the MAP decoder are adjusted.

인터리버/디인터리버(120)는 입력되는 정보의 순서를 재배열한다.The interleaver / deinterleaver 120 rearranges the order of the inputted information.

역다중화기(122)는 하나의 입력을 다수 개의 출력으로 연결한다.Demultiplexer 122 connects one input to multiple outputs.

메모리(124, 126)는 역다중화기(122)로부터 출력된 값을 저장한다.The memories 124 and 126 store values output from the demultiplexer 122.

디인터리버(130)는 인터리버에 의해 재배열 된 정보를 원래의 정보와 같은 순서로 재배열한다.The deinterleaver 130 rearranges the information rearranged by the interleaver in the same order as the original information.

경판정기(132)는 최종 복호 값 출력을 결정한다.The hard determiner 132 determines the final decoded value output.

다음, CTC 복호기의 동작 과정에 대해 상세하게 설명한다.Next, the operation of the CTC decoder will be described in detail.

복호 순서에 따른 입출력 값을 결정하기 위해 확률적 가중치에 대한 정의를 살펴보자. CTC 복호기에서는 stage에서 발생할 확률값이 "00", "01", "10", "11" 총 4가지이다. 이를 어떤 비율로서 하나의 값으로 표현할 수 없기 때문에 각각에 대한 확률값을 메모리에 저장하여 활용하면서 최종 복호비트를 결정한다.Let's look at the definition of probabilistic weights to determine the input and output values according to the decoding order. In the CTC decoder, there are four types of probability values occurring in the stage: "00", "01", "10", and "11". Since it cannot be expressed as a value as a ratio, the final decoding bit is determined while storing and using probability values for each.

하나의 반복 복호 과정 중에서 첫번째 MAP 복호가 진행 될 때 MAP 복호기(110)의 입력 값은 두가지가 있는데 그 중 하나는 다중화기(114)의 출력으로써 하단 입력을 선택하여 사전정보와 수신된 심볼들 중에서 송신단 부호기에서 부호화 되지 않은 심볼을 더한 값으로써 다중화기(114)의 하단 입력이고, 나머지 하나는 수신된 심볼들 중에서 제1 길쌈부호기(2)의 패리티 심볼로써 다중화기(116)의 상단 입력이다.When the first MAP decoding is performed in one iterative decoding process, there are two input values of the MAP decoder 110. One of them is the output of the multiplexer 114. The lower input of the multiplexer 114 is a value obtained by adding an uncoded symbol at the transmitting end encoder, and the other is the upper input of the multiplexer 116 as a parity symbol of the first convolutional encoder 2 among the received symbols.

MAP 복호기(110)는 이들 두개의 값을 입력받아 확률적 가중치를 출력시킨다. 그리고 확률적 가중치로부터 현재 MAP 복호기로 입력되는 사전 정보 값(APP)을 빼서 잉여 정보가 얻어진다.The MAP decoder 110 receives these two values and outputs probabilistic weights. The excess information is obtained by subtracting the prior information value APP input to the current MAP decoder from the probabilistic weights.

확률적 가중치는 두가지 형태로 처리되어 다중화기(118)에 입력되는데 하단 입력 값은 대수우도비에서 사전 정보와 수신 심볼의 합을 뺀 잉여 정보 값이 들어가고 상단 입력 값은 확률적 가중치에서 사전 정보를 뺀 값 즉, 잉여 정보와 수신 심볼을 더한 값이 들어간다.The probabilistic weights are processed in two forms and input to the multiplexer 118. The lower input value contains the surplus information value obtained by subtracting the sum of the prior information and the received symbol from the logarithmic likelihood ratio, and the upper input value receives the dictionary information from the probabilistic weights. The subtracted value, that is, the surplus information plus the received symbol is included.

첫번째 MAP 복호 과정에서는 다중화기(118)에 의해 상단 값을 선택하여 출력하고 다음단 복호시 적용되는 심볼의 순서와 일치시키기 위해 인터리버/디인터리버(120)에서 인터리빙된다.In the first MAP decoding process, the upper value is selected and output by the multiplexer 118 and interleaved in the interleaver / deinterleaver 120 to match the order of symbols applied in the next decoding.

두 번째 MAP 복호 과정은 송신단 부호기의 제2 길쌈 부호기(3)에 대응되는 과정이다. 두번째 MAP 복호가 진행될 때 상기 기술한 복호 과정과 유사하게 MAP 복호기(110)의 입력은 두 가지가 있는데 하나는 전단 MAP 복호(첫번째 MAP 복호) 후 저장된 값(사전 정보와 수신심볼을 더한 후 인터리빙 처리한 값)이고, 다른 하나는 수신된 심볼들 중에서 제 2길쌈부호기(3)의 잉여 심볼로써 다중화기(116) 하단 입력값이다. MAP 복호기(110)는 이 두 개의 입력을 받아 제2 길쌈부호기(3)에 대응하는 복호를 수행하여 확률적 가중치를 출력한다. The second MAP decoding process corresponds to the second convolutional encoder 3 of the transmitter encoder. Similarly to the decoding process described above, when the second MAP decoding is performed, there are two inputs of the MAP decoder 110, one of which is an interleaving process after adding a preliminary information and a reception symbol after the previous MAP decoding (first MAP decoding). Value), and the other is the lower input value of the multiplexer 116 as a surplus symbol of the second convolutional encoder 3 among the received symbols. The MAP decoder 110 receives these two inputs and performs decoding corresponding to the second convolutional encoder 3 to output probabilistic weights.

다음단 복호에 사용될 잉여 정보를 생성하기 위해 대수우도비에서 MAP 복호기(110) 입력(사전정보와 수신심볼을 더한 값)을 뺀 다음 디인터리빙하여 제 2 메모리(124)에 저장된다.The MAP decoder 110 input (preliminary information plus a received symbol) is subtracted from the logarithmic likelihood ratio in order to generate surplus information to be used for subsequent decoding, and then deinterleaved and stored in the second memory 124.

최종으로 경판정 복호 값을 얻기 위해서 두번째 MAP 복호 후 생성된 연판정 확률적 가중치를 디인터리빙 한 후 경판정기(130)을 통과시킨다. Finally, in order to obtain a hard decision decoding value, after deinterleaving the soft decision probabilistic weights generated after the second MAP decoding, the hard decision unit 130 is passed.

상술한 내용을 정리해 보면 MAP 복호기(110) 출력은 첫번째 MAP 복호와 두번째 MAP 복호 동작할 때와 관계 없이 동일하게 확률적 가중치를 각각 2비트씩 출력하고, 입력은 첫번째 MAP 복호가 수행될 때에는 수신된 심볼과 제 2메모리(126)에 저장된 값을 더한 값이 되고, 두번째 MAP 복호가 수행될 때에는 오직 제 1 메모리(126)에 저장된 값이다.In summary, the output of the MAP decoder 110 outputs each of the stochastic weights by 2 bits, regardless of whether the first MAP decoding and the second MAP decoding are performed, and the input is received when the first MAP decoding is performed. The symbol is added to the value stored in the second memory 126, and is the value stored only in the first memory 126 when the second MAP decoding is performed.

MAP 복호기 출력을 약간의 연산을 거쳐 메모리에 저장하는 방법은 첫번째 MAP 복호가 수행될 때 확률적 가중치에서 MAP 복호기(110) 입력을 뺀 후 인터리빙하여 제1 메모리(126)에 저장하고, 두번째 MAP 복호가 수행될 때 대수우도비에서 MAP 복호기 전단의 다중화기(114)의 상단 입력 값을 뺀 후 디인터리빙하여 제2 메모리(126)에 저장한다.The method of storing the MAP decoder output in the memory through some operations is that when the first MAP decoding is performed, the MAP decoder 110 is subtracted from the probabilistic weights, interleaved and stored in the first memory 126, and the second MAP decoding. When is performed, the upper input value of the multiplexer 114 in front of the MAP decoder is subtracted from the logarithmic likelihood ratio and then deinterleaved and stored in the second memory 126.

다음, MAC 복호기(110)에 대해서 도 4를 참조하여 상세하게 설명한다.Next, the MAC decoder 110 will be described in detail with reference to FIG. 4.

도 4는 본 발명의 실시예에 따른 MAP 복호기의 구조를 나타낸 도면이다.4 is a diagram showing the structure of a MAP decoder according to an embodiment of the present invention.

도 4에 나타낸 바와 같이, MAP 복호기(110)는 CTC 복호기의 핵심부로서, 순방향 연산부 및 역방향 연산부를 포함한다.As shown in FIG. 4, the MAP decoder 110 is a core part of the CTC decoder, and includes a forward operator and a backward operator.

순방향 연산부(200)는 상단 가지메트릭 연산부(210), 순방향 상태 매트릭 연산부(220), 메모리(230), 상단 확률적 가중치 연산부(240) 및 상단 잉여 정보 생성부(250)를 포함한다. 그리고 역방향 연산부(300)는 하단 가지 메트릭 연산부(310), 역방향 상태 메트릭 연산부(320), 메모리(330), 하단 확률적 가중치 연산부(340) 및 하단 잉여 정보 생성부(250)를 포함한다.The forward operator 200 includes an upper branch metric operator 210, a forward state metric operator 220, a memory 230, an upper probability weighted operator 240, and an upper surplus information generator 250. The reverse operator 300 includes a lower branch metric operator 310, a reverse state metric operator 320, a memory 330, a lower probabilistic weight calculator 340, and a lower surplus information generator 250.

순방향 연산부(200)는 수신 심볼에 대해 0번째부터 N번째까지 순차적으로 연산이 이루어지고, 역방향 연산부(300)는 수신 심볼에 대해 N번째부터 0번째까지 역순으로 연산이 이루진다는 점을 제외하고 순방향 연산부(200) 및 역방향 연산부(300)는 연산과정이 동일하기 때문에 순방향 연산부(200)만을 설명하기로 한다.The forward operation unit 200 performs calculations sequentially from the 0 th to the N th reception symbols, and the backward operation unit 300 performs the calculation in the reverse order from the N th to 0 th operations on the received symbols. Since the forward operation unit 200 and the reverse operation unit 300 have the same calculation process, only the forward operation unit 200 will be described.

상단 가지 메트릭 연산부(210)는 이진 터보 코드와 달리 CTC 코드에서는 4가지 확률 즉, 현재 시점에 복호될 비트 값들이 “00”, “01”, “10” 또는 “11”에 대한 가지 메트릭 연산을 수행한다. 가지 메트릭은 수학식 1에 의해 구해진다.Unlike the binary turbo code, the upper branch metric calculation unit 210 performs four metric operations in the CTC code, that is, the branch metric operation for “00”, “01”, “10”, or “11” in which the bit values to be decoded at the present time point are executed. Perform. The branch metric is obtained by equation (1).

여기서, 는 시간 k일 때, state s에서 출력되는 가지들 중에서 부호화 비트 a인 가지메트릭이고, 는 전단 MAP 복호기에서 생성된 잉여 정보 값(CTC에서는 a라는 인덱스에 의해 "00", “01”, “10”, “11” 총 4가지의 값을 갖음)이다. 그리고 는 수신된 1번째 정보(systematic) 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미하고 는 수신된 2번째 정보 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미한다.here, Is a branch metric whose coding bit a is among the branches output from state s at time k, Is a surplus information value generated in the front end MAP decoder (in the CTC, four values are "00", "01", "10", and "11" by the index "a"). And Is the first received systematic symbol, where A is distorted as it passes through the noise channel. Is the second information symbol received, and A is distorted while passing through the noise channel.

그리고 는 수신된 잉여 심볼로써 A는 노이즈 채널을 통과하면서 왜곡된 것을 의미하고, a(1)은 부호기 출력 비트 중 1번째 systematic 비트를 의미하고, a(0)는 부호기 출력 비트 중 2번째 systematic 비트를 의미하며, c는 부호기 출력 비트 중 잉여(parity) 비트를 의미한다.And Denotes a distorted signal while passing through the noise channel, a (1) denotes the first systematic bit of the encoder output bit, and a (0) denotes the second systematic bit of the encoder output bit. C denotes a parity bit among the encoder output bits.

즉, 각 가지에서 수신심볼(2의 보수로 표현)의 부호비트(최상위비트)와 부호기 출력 비트를 각각 비교하여 서로 같으면 0, 다르면 해당 수신 심볼의 절대값을 취해 모두 더한 것이 그 천이에 해당하는 가지 메트릭 값으로 결정한다.That is, in each branch, the sign bits (most significant bits) of the received symbol (represented by two's complement) and the encoder output bits are compared, and if they are equal to each other, 0 is taken, and if they are different, the absolute value of the corresponding received symbol is added and all of them correspond to the transition. Determined by two metric values.

상단 가지 메트릭 연산부(210)는 한 번의 가지 메트릭 연산에 2개의 systematic 심볼과 하나의 패리티 심볼이 필요하고 더불어 이전 MAP 복호기에서 생성된 잉여 정보 값을 입력 받아 수신 심볼 값을 이용하여 계산된 메트릭 값에 더해준다. The top branch metric calculation unit 210 needs two systematic symbols and one parity symbol in one metric operation, receives surplus information values generated in the previous MAP decoder, and calculates the received metric values using the received symbol values. Add it.

순방향 상태 메트릭 연산부(220)는 이전 상태 메트릭 값과 가지 메트릭 값을 이용하여 현재의 상태 메트릭을 계산한다. 그리고 “00”, “01”, “10”, “11” 4가지 확률 경로에 대해 각각의 상태 메트릭과 가지 메트릭 값을 서로 더한 후에 이들 중에서 가장 작은 값을 현재의 상태 메트릭 값으로 정한다. 또한,“00”, “01”, “10”, “11” 4가지 확률 경로에 대해 각각의 상태 메트릭과 가지 메트릭 값을 서로 더한 후 메모리(230)에 저장한다.The forward state metric calculator 220 calculates the current state metric using the previous state metric value and the branch metric value. Then, for each of the four probability paths, "00", "01", "10", and "11", the state metric and the branch metric value are added together, and the smallest of them is set as the current state metric value. In addition, the state metric and the branch metric values for the four probability paths “00”, “01”, “10”, and “11” are added to each other and stored in the memory 230.

상단 확률 가중치 연산부(240)는 이전 상태 메트릭, 가지 메트릭, 현재 상태 메트릭 등 세가지 값들을 이용하여 각각의 확률적 가중치를 결정한다. 즉, “00” 확률을 갖는 총 8개의 경로 각각에 대해 이전 상태 메트릭, 가지 메트릭, 현재 메트릭에 대한 합을 구하고 이들 중 최소 값을 “00”에 대한 확률적 가중치로써 결정한다. 나머지 “01”, “10”, “11”에 대한 확률적 가중치도 동일한 방법으로 구한다. 이렇게 구해진 값들은 다음단의 잉여 정보 연산부의 입력으로 작용하거나 경판정을 할 경우 최종 복호 비트로 결정된다.The upper probability weight calculator 240 determines each of the probabilistic weights using three values such as a previous state metric, a branch metric, and a current state metric. That is, the sum of the previous state metric, the branch metric, and the current metric for each of the eight paths having a probability of "00" is determined, and the minimum value of these is determined as the probability weight for "00". Probability weights for the remaining “01”, “10” and “11” are also calculated in the same way. The values thus obtained are determined as the final decoded bits when they act as inputs to the next redundant information operation unit or when hard decision is made.

상단 잉여 정보 연산부(250)는 다음 번 반복 복호 수행시 APP 값으로써 작용하는 잉여 정보를 발생시킨다. 잉여 정보는 확률적 가중치로부터 현재 MAP 복호기로 입력되는 APP 값을 빼서 얻어지고 정규화를 위해 다시 그 크기를 1/2로 줄인다. 이렇게 얻어진 값은 메모리에 저장되어 다음 번 반복 복호의 입력으로 사용된다.The upper surplus information calculating unit 250 generates surplus information which acts as an APP value at the next iterative decoding. The surplus information is obtained by subtracting the APP value input to the current MAP decoder from the probabilistic weights and reducing the size to 1/2 again for normalization. The value thus obtained is stored in memory and used as the input for the next iterative decoding.

상기와 같이 수신 심볼에 대해 0번째부터 N번째까지 순차적으로 이루지는 동시에 N번째부터 0번째까지 역순으로 연산이 이루어진다. 이렇게 함으로써 복호 속도를 2 배 빠르게 할 수 있다. 즉, 일반적으로 CTC 복호기는 매 단위시간마다 2비트를 복호 할 수 있지만 도 4에서와 같이 연산부를 순방향 연산부(200)와 역방향 연산부(300)를 두어 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 동시에 수행하면 상단 확률 가중치 연산부와 하단 확률 가중치 연산부에서 각각 복호 값을 얻을 수 있어 매 단위 시간마다 4비트를 복호 할 수 있다. 또한, 이러한 방법은 일반적인 방법과 비교하여 추가적인 메모리를 필요로 하지도 않는다.As described above, operations are sequentially performed from the 0th to the Nth with respect to the received symbol, and the operations are performed in the reverse order from the Nth to the 0th. By doing this, the decoding speed can be doubled. That is, in general, the CTC decoder can decode 2 bits every unit time, but as shown in FIG. Decoded values can be obtained from the upper probability weight calculator and the lower probability weight calculator, respectively, so that 4 bits can be decoded every unit time. In addition, this method does not require additional memory compared to the conventional method.

다음, 도 5 내지 도 6을 참조하여 고속 동작에 적합하도록 하기 위한 상태 메트릭 연산부(220, 320)의 하드웨어적인 구성에 대해 상세하게 설명한다.Next, a hardware configuration of the state metric calculation units 220 and 320 to be suitable for high speed operation will be described in detail with reference to FIGS. 5 to 6.

도 5는 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 연산부를 나타내는 도면이고, 도 6은 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 정규화부를 나타내는 도면이다.5 is a diagram illustrating a state metric operation unit having a minimum delay in a MAP decoder according to an embodiment of the present invention, and FIG. 6 is a diagram illustrating a state metric normalization unit having a minimum delay in a MAP decoder according to an embodiment of the present invention.

도 5에서 보면, 상태 메트릭 연산부(220, 320)는 덧셈기(211, 212)와 AND 게이트(213)와 결합기(214) 및 다중화기(215)를 포함한다. 상태 메트릭 연산부(220, 320)는 각각 입력된 이전 상태 메트릭과 가지 메트릭을 더한 값인 a, b, c, d 중 가장 작은 값을 선택한다.In FIG. 5, the state metric calculators 220 and 320 include adders 211 and 212, an AND gate 213, a combiner 214, and a multiplexer 215. The state metric calculators 220 and 320 select the smallest value among a, b, c, and d, which are the sum of the input previous state metric and the branch metric, respectively.

그리고 본 발명에서는 상태 메트릭 연산에 있어서, 수학식 2와 같은 알고리즘을 사용한다.In the present invention, in the state metric calculation, an algorithm such as Equation 2 is used.

이와 같이 a, b, c, d 중 최소값을 구하기 위해서 수학식 2에서 같은 알고리즘을 사용하면, 임계 경로가 두 개의 덧셈기(211, 212)로도 상태 메트릭을 연산할 수 있게 된다. 두 개의 덧셈기(211, 212)로부터 출력된 값들은 AND 게이트(213)를 통해 해당 비트가 출력되어 결합기(214)로 입력된다. 결합기(214)는 입력된 3개의 비트를 결합하여 다중화기(215)로 출력한다. 다중화기(215)는 이 3개의 비트열에 따라 최소값을 출력한다.As such, when the same algorithm is used in Equation 2 to obtain the minimum value among a, b, c, and d, the critical path can calculate the state metric with two adders 211 and 212. Values output from the two adders 211 and 212 are output to the combiner 214 by outputting the corresponding bit through the AND gate 213. The combiner 214 combines the three input bits and outputs them to the multiplexer 215. The multiplexer 215 outputs the minimum value according to these three bit strings.

한편, 1/2 CTC 코드는 총 8개의 상태를 가지고 있고, 매 시점마다 오버플로우 발생 방지를 위해 8개 상태 메트릭 값은 정규화 되어야 한다. On the other hand, the 1/2 CTC code has a total of eight states, and the eight state metric values must be normalized to prevent overflow at each time point.

따라서 본 발명의 실시예에 따른 CTC 복호기는 도 6에서와 같이 AND 게이트(216, 217)를 통해 정규화부를 구성한다. 이를 위해 모든 상태 메트릭 값을 필요 비트 수보다 하나를 더 추가하여 사용하고 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 모든 상태 메트릭의 최상위 비트가 '1’의 값을 가지면 오버플로우가 발생한 것으로 간주하여 모든 최상위 비트를 값을 '0’으로 리셋한다. 이렇게 하면 추가적인 덧셈기 없이 간단하게 구현이 가능하고 더불어 처리 시간도 크게 단축된다.Accordingly, the CTC decoder according to the embodiment of the present invention configures the normalization unit through the AND gates 216 and 217 as shown in FIG. 6. To do this, use all the state metric values plus one more than the required number of bits, and after completion of the state metric operation, examine the most significant bit of each metric value so that an overflow occurs if the most significant bit of all the state metrics has a value of '1'. The most significant bit is reset to '0'. This simplifies implementation without additional adders and greatly reduces processing time.

다음, 본 발명의 실시예에 따른 CTC 복호기에서는 802,16a에서 CTC 내부 인터리빙 알고리즘을 수학식 3과 같이 나타낸다.Next, in the CTC decoder according to the embodiment of the present invention, the CTC internal interleaving algorithm is represented by Equation 3 at 802 and 16a.

수학식 3를 보면, 덧셈 연산으로만 모든 과정이 이루어진다. 따라서, 인터리빙 알고리즘에 따른 하드웨어 구현이 용이하다. 이에 대한 인터리버의 구조 및 동작에 대해 도 7을 참조하여 설명한다.In Equation 3, all processes are performed only by the addition operation. Therefore, hardware implementation according to the interleaving algorithm is easy. The structure and operation of the interleaver will be described with reference to FIG. 7.

도 7은 본 발명의 실시예에 따른 인터리버의 구조도이다. 여기서, 인터리버 주소 생성은 수학식 3에서와 같이 두 단계로 나누어진다. 도 7은 이 두 단계 중 두 번째 단계(Step 2)에 관한 것이다.7 is a structural diagram of an interleaver according to an embodiment of the present invention. Here, the interleaver address generation is divided into two stages as in Equation 3. 7 relates to the second of these two steps (Step 2).

도 7에서 나타낸 바와 같이, 인터리버(120)는 카운터(21), 다중화기(22, 26, 31, 35), 덧셈기(23, 24, 28, 29, 33), 비교기(25, 30, 34) 및 D 플립플롭(27, 32)을 포함한다.As shown in FIG. 7, the interleaver 120 includes a counter 21, multiplexers 22, 26, 31, 35, adders 23, 24, 28, 29, 33, and comparators 25, 30, 34. And D flip-flops 27 and 32.

먼저, 카운터(21)는 0부터 1씩 증가하면서 코드 블록 사이즈의 1/2까지(N-1) 카운트된다. 그리고 다중화기(22)는 카운터 값의 최하위 2비트를 제어값으로 받아 상수 값(const)을 출력한다. 이와 같은 인터리버의 동작은 수학식 3의 B부분의 연산을 수행한다.First, the counter 21 is counted up to 1/2 of the code block size (N-1) in increments of 0 to 1. The multiplexer 22 receives the least significant two bits of the counter value as a control value and outputs a constant value const. The operation of the interleaver performs the operation of part B of Equation 3.

그리고 덧셈기(23, 24)와 비교기(25) 및 다중화기(26)를 통해 D 플립플롭(27)으로 입력되어 D+P0에 대해 N으로 모듈로 연산을 수행한다. 이와 같은 인터리버의 동작은 수학식 3의 A부분 연산을 수행한다. 즉, D+P0에서 N을 뺀 후 이 값이 0보다 크면 비교기 출력으로 ‘1’을 발생시키고, 작으면 ‘0’을 발생 시켜 비교기(25)의 출력이 ‘1’이면 (D+P0)-N을 출력하고 ‘0’이면 D+P0를 출력하여 D 플립플롭(27)에서 저장한다.Then, it is input to the D flip-flop 27 through the adders 23 and 24, the comparator 25, and the multiplexer 26 to perform a modulo operation with N for D + P 0 . The operation of the interleaver performs the A part operation of Equation 3. That is, after subtracting N from D + P 0 , if this value is greater than 0, '1' is generated to the comparator output. If it is small, '0' is generated, and if the output of the comparator 25 is '1', (D + P 0 ) -N and '0' to output D + P 0 to store in the D flip-flop 27.

다음, D 플립플롭(27)의 출력값과 다중화기(35)의 출력값을 입력으로 받아 덧셈기(28, 29)와 비교기(30) 및 다중화기(31)를 통해 D 플립플롭(39)으로 입력되어 수학식 3의 C부분 연산을 수행한다. 이와 같이 인터리버의 연산 동작은 A부분 연산을 위한 인터리버의 동작 과정과 동일하다. 단, 덧셈기(28)에 입력되는 값은 D 플립플롭(27)의 출력값과 다중화기(35)의 출력값이고, 다중화기(31)의 출력값은 Y가 된다.Next, the output value of the D flip-flop 27 and the output value of the multiplexer 35 are received as inputs to the D flip-flop 39 through the adders 28 and 29, the comparator 30, and the multiplexer 31. Perform C part operation of Equation 3. As described above, the operation of the interleaver is the same as the operation of the interleaver for the A-part operation. However, the value input to the adder 28 is the output value of the D flip-flop 27 and the output value of the multiplexer 35, and the output value of the multiplexer 31 is Y.

이후, 덧셈기(33)와 비교기(34) 및 다중화기(35)를 통해 인터리빙 주소가 출력된다. 이 때, 덧셈기(33)의 입력값은 D 플립플롭(32)의 출력값이다. 이 동작과정 역시 A부분 연산을 위한 동작 과정과 동일하다. 단, 덧셈기(33)의 입력값은 D 플립플롭(32)의 출력값이고 다중화기(35)의 출력값은 최종 인터리빙 주소가 된다.Thereafter, the interleaving address is output through the adder 33, the comparator 34, and the multiplexer 35. At this time, the input value of the adder 33 is the output value of the D flip-flop 32. This operation process is also the same as the operation process for the A part operation. However, the input value of the adder 33 is the output value of the D flip-flop 32 and the output value of the multiplexer 35 is the final interleaving address.

이와 같이 덧셈기(28)의 입력 값에 대해 모듈로 연산을 수행하는데 덧셈기(28)의 입력값이 어느 특정한 경우에 2*N보다 큰 경우가 발생한다. 이렇게 되면 모듈로 연산에 오류가 발생하므로 이를 방지하기 위해 본 발명의 실시예에서는 동일한 부분(33-35)을 연속적으로 둔다.In this way, a modulo operation is performed on the input value of the adder 28, but the input value of the adder 28 may be larger than 2 * N in some specific cases. In this case, since an error occurs in the modulo operation, in order to prevent this, in the embodiment of the present invention, the same parts 33 to 35 are continuously placed.

이상의 실시예들은 본원 발명을 설명하기 위한 것으로, 본원 발명의 범위는 실시예들에 한정되지 아니하며, 첨부된 청구 범위에 의거하여 정의되는 본원 발명의 범주 내에서 당업자들에 의하여 변형 또는 수정될 수 있다.The above embodiments are intended to illustrate the present invention, the scope of the present invention is not limited to the embodiments, it can be modified or modified by those skilled in the art within the scope of the invention defined by the appended claims. .

본 발명에 의하면, 순방향 연산부와 역방향 연산부를 각각 구성하고 고속 처리가 가능하도록 설계함으로써 복호 속도를 향상시킬 수 있는 효과가 있다. According to the present invention, there is an effect that the decoding speed can be improved by configuring the forward computing unit and the reverse computing unit, respectively, and designing for high-speed processing.

도 1은 부호율 1/2인 일반적인 터보 부호기를 나타내는 도면이다.1 is a diagram illustrating a general turbo encoder having a code rate of 1/2.

도 2는 본 발명의 실시예에 따른 4개의 CTC 복호기를 병렬로 배치한 고속 CTC 복호기의 구조도이다. 2 is a structural diagram of a fast CTC decoder in which four CTC decoders are arranged in parallel according to an embodiment of the present invention.

도 3은 도 2에서 하나의 MAP 복호기를 이용한 CTC 복호기의 구조도이다.3 is a structural diagram of a CTC decoder using one MAP decoder in FIG. 2.

도 4는 도 3에서 MAP 복호기의 구조도이다.4 is a structural diagram of a MAP decoder in FIG. 3.

도 5는 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 연산부를 나타내는 도면이다.5 is a diagram illustrating a state metric calculation unit having a minimum delay in a MAP decoder according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 MAP 복호기에서 최소 지연을 갖는 상태 메트릭 정규화부를 나타내는 도면이다.6 is a diagram illustrating a state metric normalizer having a minimum delay in a MAP decoder according to an embodiment of the present invention.

도 7은 인터리버의 구조도이다.7 is a structural diagram of an interleaver.

Claims (22)

송신단으로부터 CTC(Convolutional Turbo Code) 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 장치에 있어서,In the CTC decoding apparatus for decoding a transmission symbol coded by a Convolutional Turbo Code (CTC) code transmitted from a transmitting end, 순방향 상태 메트릭과 역방향 상태 메트릭에 대한 연산을 동시에 수행하여 상기 심볼에 대해 하나의 단위 시간당 2 비트를 복호하는 MAP 복호기;A MAP decoder for performing operations on a forward state metric and a reverse state metric simultaneously to decode 2 bits per unit time for the symbol; 상기 MAP 복호기의 복호 시에 입력 및 출력을 조정하는 다중화기;A multiplexer for adjusting inputs and outputs when decoding the MAP decoder; 상기 다중화기로부터 출력된 값을 다음 복호시 적용되는 심볼의 순서와 일치시키는 인터리버/디인터리버;An interleaver / deinterleaver that matches a value output from the multiplexer with a sequence of symbols applied at the next decoding; 상기 MAP 복호기로부터 복호한 후 계산된 대수우도비를 디인터리빙하는 디인터리버; 및A deinterleaver for deinterleaving the calculated likelihood ratio after decoding from the MAP decoder; And 상기 디인터리버로부터 출력된 값에 기초하여 상기 최종 복호 비트를 추정하는 경판정기를 포함하는 CTC 복호화 장치.And a hard determiner for estimating the final decoded bit based on a value output from the deinterleaver. 제 1항에 있어서, The method of claim 1, 상기 MAP 복호기는,The MAP decoder, 상기 심볼에 대한 현재 복호될 비트값이 4가지 확률에 대한 순방향 상태 메트릭과 역방향 상태 메트릭 연산을 병렬로 수행하고 그 결과값을 각각의 메모리에 저장하여 시간 N/2인 시점부터 확률적 가중치 연산을 수행하는 순방향 연산부 및 역방향 연산부를 포함하고,The current decoded bit value for the symbol performs the forward state metric and the reverse state metric operation for four probabilities in parallel, and stores the result in each memory to perform a probabilistic weight operation from the time N / 2. A forward computing unit and a backward computing unit to perform, 상기 순방향 연산부와 상기 역방향 연산부는 상하 대칭 구조인 것을 특징으로 하는 CTC 복호화 장치.And the forward computing unit and the reverse computing unit have a vertically symmetrical structure. 제 2항에 있어서, The method of claim 2, 상기 순방향 연산부는,The forward operation unit, 순차적으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 상단 가지 메트릭 연산부;A top branch metric calculation unit configured to perform branch metrics on four probabilities of bit values to be decoded for sequentially received reception symbols; 상기 상단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 순방향 상태 메트릭 연산부;A forward state metric calculator for calculating a current state metric using a result value of the upper branch metric calculator and a previous state metric value; 상기 순방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제1 메모리;A first memory configured to store a state metric value calculated from the forward state metric calculator; 상기 이전 상태 메트릭 값과 상기 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 상단 확률적 가중치 연산부; 및An upper probabilistic weight calculator for calculating probabilistic weights using the previous state metric value, the branch metric value, and the current state metric value; And 상기 상단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 상단 잉여 정보 연산부를 포함하는 CTC 복호화 장치.And an upper surplus information calculating unit generating surplus information based on the probabilistic weights output from the upper probabilistic weight calculating unit. 제 3항에 있어서, The method of claim 3, wherein 상기 역방향 연산부는,The reverse operation unit, 역순으로 입력되는 수신심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 가지 메트릭을 수행하는 하단 가지 메트릭 연산부;A lower branch metric calculation unit configured to perform branch metrics on four probabilities of the bit values to be decoded for the received symbols input in the reverse order; 상기 하단 가지 메트릭 연산부의 결과값과 이전 상태 메트릭 값을 이용하여 현재의 상태 메트릭을 계산하는 역방향 상태 메트릭 연산부;A reverse state metric calculator for calculating a current state metric using a result value of the lower branch metric calculator and a previous state metric value; 상기 역방향 상태 메트릭 연산부로부터 계산된 상태 메트릭값을 저장하는 제2 메모리;A second memory for storing a state metric value calculated from the reverse state metric calculation unit; 상기 이전 상태 메트릭 값과 상기 하단 가지 메트릭 값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 계산하는 하단 확률적 가중치 연산부; 및A bottom probabilistic weight calculation unit configured to calculate probabilistic weights using the previous state metric value, the bottom branch metric value, and the current state metric value; And 상기 하단 확률적 가중치 연산부로부터 출력된 확률적 가중치에 기초하여 잉여 정보를 발생시키는 하단 잉여 정보 연산부를 포함하고,A lower surplus information calculating unit generating surplus information based on the probabilistic weights output from the lower probabilistic weight calculating unit; 상기 순방향 상태 메트릭 및 상기 역방향 상태 메트릭을 동시에 수행하는 것을 특징으로 하는 CTC 복호화 장치.And performing the forward state metric and the reverse state metric at the same time. 제 3항 또는 제 4항에 있어서,The method according to claim 3 or 4, 가지 메트릭 연산부는 다음의 계산식에 기초하여 가지 메트릭을 구하는 것을 특징으로 하는 CTC 복호화 장치.The branch metric calculation unit obtains a branch metric based on the following calculation formula. 여기서, 는 시간 k일 때, state s에서 출력되는 가지들 중에서 부호화 비트 a인 가지메트릭이고, 는 전단 MAP 복호기에서 생성된 잉여 정보 값, 는 수신된 1번째 정보 심볼, 는 수신된 2번째 정보 심볼, 는 수신된 잉여 심볼임.here, Is a branch metric whose coding bit a is among the branches output from state s at time k, Is the surplus information value generated by the shear map decoder, Is the first information symbol received, Is the second information symbol received, Is a surplus symbol received. 제 3항 또는 제 4항에 있어서,The method according to claim 3 or 4, 상기 상태 메트릭 연산부는,The state metric calculation unit, 상기 4가지 확률에 대한 이전 상태 메트릭 값과 가지 메트릭값을 더한 값으로부터 특정 연산에 의해 최소값을 출력하기 위한 제1 및 제2 덧셈기;First and second adders for outputting a minimum value by a specific operation from a sum of previous state metric values and branch metric values for the four probabilities; 상기 특정 연산에 기초하여 출력된 각 비트들이 입력되는 결합기; 및A combiner to which the output bits are input based on the specific operation; And 상기 결합기로부터 출력된 값과 상기 4가지 확률에 대한 이전 상태 메트릭값과 가지 메트릭값을 더한 값에 기초하여 최소값을 출력하는 제2 다중화기를 포함하는 CTC 복호화 장치.And a second multiplexer for outputting a minimum value based on a value output from the combiner, a previous state metric value for the four probabilities, and a branch metric value. 제 3항 또는 제 4항에 있어서,The method according to claim 3 or 4, 상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는, 출력된 상태 메트릭값을 필요 비트 수보다 더 추가하여 상태 메트릭 연산 완료 후 각 메트릭 값의 최상위 비트를 검사하여 정규화하는 것을 특징으로 하는 CTC 복호화 장치.The forward state metric operation unit or the reverse state metric operation unit adds the output state metric value more than the required number of bits and checks and normalizes the most significant bit of each metric value after completion of the state metric operation. 제 7항에 있어서,The method of claim 7, wherein 상기 순방향 상태 메트릭 연산부 또는 역방향 상태 메트릭 연산부는 모든 상태 메트릭의 최상위 비트 검사 결과에 기초하여 오버플로우를 판단하고 상기 오버플로우가 발생한 경우, 상기 모든 최상위 비트 값을 특정값으로 리셋하는 것을 특징으로 하는 CTC 복호화 장치.The forward state metric operation unit or the reverse state metric operation unit determines an overflow based on a result of checking the most significant bit of all state metrics, and if the overflow occurs, resets all the most significant bit values to a specific value. Decryption device. 제 3항 또는 제 4항에 있어서,  The method according to claim 3 or 4, 상기 잉여 정보 연산부는, 상기 계산된 확률적 가중치로부터 입력 사전 확률값(APP)을 뺀 값의 크기를 1/2로 줄이는 것을 특징으로 하는 CTC 복호화 장치.The surplus information calculating unit may reduce the size of a value obtained by subtracting an input prior probability value (APP) from the calculated probabilistic weight to 1/2. 제 1항에 있어서, The method of claim 1, 상기 인터리버는,The interleaver, 순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터;A counter that counts up to 1/2 of the CTC code block size while sequentially increasing; 상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기;A first multiplexer receiving a least two bits of the count value as a control value and outputting a constant value; 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제1 및 제2 덧셈기;First and second adders that receive a specific value and add an operation by a specific operation; 상기 제2 덧셈기로부터 출력된 값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제1 비교기;A first comparator configured to generate an output value based on a comparison result between the value output from the second adder and a reference value; 상기 제1 비교기로부터의 출력값과 제1 및 제2 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제2 다중화기;A second multiplexer which receives an output value from the first comparator and an output value from the first and second adders and selects one output value; 상기 상수값과 제2 다중화기로부터의 출력값을 더하는 제3 및 제4 덧셈기;Third and fourth adders for adding the constant value and an output value from a second multiplexer; 상기 제4 덧셈기로부터의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제2 비교기; 및A second comparator for generating an output value based on a result of comparing the output value from the fourth adder with a reference value; And 상기 제2 비교기로부터의 출력값 및 상기 제3 및 제4 덧셈기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제3 다중화기를 포함하고,A third multiplexer which receives an output value from the second comparator and output values from the third and fourth adders and selects one output value, 상기 제1 및 제2 다중화기로부터 출력된 값들은 각각의 D 플립플롭에 저장하는 것을 특징으로 하는 CTC 복호화 장치.And the values output from the first and second multiplexers are stored in respective D flip-flops. 제 10항에 있어서,The method of claim 10, 상기 인터리버는,The interleaver, 상기 제3 다중화기로부터의 출력값과 특정 연산에 의해 특정값을 입력받아 덧셈연산하는 제5 덧셈기;A fifth adder which adds and receives a specific value by an output value and a specific operation from the third multiplexer; 상기 제5 덧셈기의 출력값과 기준값과의 비교 결과에 기초하여 출력값을 발생시키는 제3 비교기; 및A third comparator configured to generate an output value based on a result of comparing the output value of the fifth adder with a reference value; And 상기 제5 덧셈기의 입출력값과 상기 제3 비교기로부터의 출력값을 입력받아 하나의 출력값을 선택하는 제4 다중화기를 더 포함하며,And a fourth multiplexer which receives an input / output value of the fifth adder and an output value from the third comparator and selects one output value. 상기 제4 다중화기는 인터리빙 주소를 출력하는 것을 특징으로 하는 CTC 복호화 장치.And the fourth multiplexer outputs an interleaving address. 제 1항에 있어서,The method of claim 1, 상기 MAP 복호기로부터의 출력을 저장하는 제1 및 제2 메모리부를 더 포함하며,Further comprising a first and a second memory unit for storing the output from the MAP decoder, 첫 번째 복호 수행시, 수신되는 심볼과 상기 제2 메모리부에 저장된 값을 더한 값이 입력되고, 두 번째 복호 수행시, 상기 제1 메모리에 저장된 값이 입력되는 것을 특징으로 하는 CTC 복호화 장치.And a value obtained by adding a received symbol and a value stored in the second memory unit when the first decoding is performed, and a value stored in the first memory is input when performing the second decoding. 제 1항에 있어서, The method of claim 1, 상기 다중화기는,The multiplexer, 상기 MAP 복호기의 입력을 조정하는 제1 및 제2 다중화기; 및First and second multiplexers for adjusting the input of the MAP decoder; And 상기 MAP 복호기의 출력을 조정하는 제3 다중화기를 포함하며,A third multiplexer for adjusting the output of the MAP decoder, 상기 MAP 복호기는 제1 및 제2 다중화기로부터 입력되는 값을 입력받아 대수우도비를 출력하고, 상기 MAP 복호기로부터 출력되는 확률적 가중치는 상기 제3 다중화기로 입력되는 것을 특징으로 하는 CTC 복호화 장치.And the MAP decoder receives values input from the first and second multiplexers, outputs a logarithmic likelihood ratio, and a probabilistic weight output from the MAP decoder is input to the third multiplexer. 제1항에 있어서,The method of claim 1, 상기 MAP 복호기 앞단에 위치한 제1 다중화기로의 입력을 조정하는 제1 가산기; 및 A first adder for adjusting an input to a first multiplexer located in front of the MAP decoder; And 상기 제3 다중화기로의 확률적 가중치 입력을 조정하는 제2 및 제3 가산기를 더 포함하는 CTC 복호화 장치.And second and third adders for adjusting the probabilistic weight input to the third multiplexer. 송신단으로부터 CTC(Convolutional Turbo Code) 코드에 의해 부호화하여 전송되는 송신 심볼을 복호화하기 위한 CTC 복호화 방법에 있어서,In the CTC decoding method for decoding a transmission symbol coded by a Convolutional Turbo Code (CTC) code transmitted from a transmitting end, a) 상기 CTC 코드에 의해 부호화되어 수신된 송신 심볼을 멀티플렉싱하여 수신하는 단계;a) multiplexing and receiving a transmission symbol encoded and received by the CTC code; b) 상기 a)단계로부터 수신된 심볼에 대한 복호될 비트 값들이 4가지 확률에 대한 제1 확률적 가중치를 계산하는 1차 복조 단계;b) a first demodulation step of calculating first probabilistic weights for four probabilities of bit values to be decoded for a symbol received from step a); c) 상기 제1 확률적 가중치로부터 출력된 잉여 정보 및 상기 계산된 제1 확률적 가중치를 조정한 값을 입력으로 받아 제2 확률적 가중치를 연산하여 출력하는 2차 복조 단계; 및c) a second demodulation step of receiving surplus information output from the first probabilistic weights and a value obtained by adjusting the calculated first probabilistic weights, and calculating and outputting a second probabilistic weight; And d) 상기 2차 복호 후 출력된 확률적 가중치로부터 경판정하여 최종 복호 비트를 결정하는 단계를 포함하고,d) hard decision from the probabilistic weights output after the second decoding to determine a final decoding bit, 상기 복호 단계마다 입력 및 출력이 조정되는 것을 특징으로 하는 CTC 복호화 방법.CTC decoding method characterized in that the input and output is adjusted for each decoding step. 제 15항에 있어서, The method of claim 15, 상기 b)단계는, Step b), ⅰ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 1차 복호에 따른 제1 확률적 가중치를 출력하는 단계;Iii) outputting a first probabilistic weight according to the first decoding based on the symbol value received from step a); ⅱ) 상기 제1 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및Ii) adjusting and multiplexing the output value of the first probabilistic weights to output a specific value; And ⅲ) 상기 ⅱ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함하는 CTC 복호화 방법.Iv) interleaving and storing the specific value output from step ii). 제 15항에 있어서, The method of claim 15, 상기 c)단계는,Step c) is ⅳ) 상기 a)단계로부터 수신되는 심볼값에 기초하여 2차 복호에 따른 제2 확률적 가중치를 출력하는 단계;Iii) outputting a second probabilistic weight according to the second decoding based on the symbol value received from step a); ⅴ) 상기 제2 확률적 가중치의 출력값을 조정하여 멀티플렉싱하여 특정값을 출력하는 단계; 및Iii) adjusting and multiplexing the output value of the second probabilistic weights to output a specific value; And ⅵ) 상기 ⅴ)단계로부터 출력된 특정값을 인터리빙한 후 저장하는 단계를 포함하는 CTC 복호화 방법.Iv) interleaving and storing the specific value output from step iii). 제 15항에 있어서,The method of claim 15, 상기 a) 단계에서, 상기 1차 복호와 상기 2차 복호를 위한 입력값이 각각 다르게 입력되도록 조정하는 것을 특징으로 하는 CTC 복호화 방법.In step a), the CTC decoding method is characterized in that the input values for the first decoding and the second decoding are input differently. 제 15항 내지 제18항 중 어느 한 항에 있어서,The method according to any one of claims 15 to 18, 상기 확률적 가중치 연산 단계는,The probabilistic weight calculation step, 순차적 또는 역순으로 각각 수신되는 심볼의 4가지 확률 경로에 대해 가지 메트릭 연산을 수행하는 가지 메트릭 연산 단계;A branch metric calculation step of performing a branch metric operation on four probability paths of a received symbol in sequential or reverse order, respectively; 상기 순차적으로 입력되는 수신 심볼에 대한 4가지 확률 경로에 대해 각각 입력된 이전 상태 메트릭 값과 가지 메트릭 값을 더한 값에서 특정 연산에 의해 최소값을 현재의 상태 메트릭 값으로 결정하는 상태 메트릭 연산 단계;A state metric calculation step of determining a minimum value as a current state metric value by a specific operation from a value obtained by adding previous state metric values and branch metric values respectively inputted for the four probability paths for the sequentially input received symbols; 상기 이전 상태 메트릭값과 상기 가지 메트릭값 및 현재 상태 메트릭 값을 이용하여 각각의 확률적 가중치를 결정하는 확률적 가중치 연산 단계; 및A probabilistic weight calculation step of determining respective probabilistic weights using the previous state metric value, the branch metric value, and the current state metric value; And 상기 확률적 가중치에 기초하여 잉여 정보를 발생시키는 잉여 정보 연산 단계를 포함하며,A redundant information calculating step of generating redundant information based on the probabilistic weights, 순차적으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 순방향 상태 메트릭값과 상기 역순으로 입력되는 수신 심볼의 4가지 확률 경로에 대한 역방향 상태 메트릭값을 동시에 연산하여 하나의 단위 시간 당 2비트를 복호하는 것을 특징으로 하는 CTC 복호화 방법.Decoding two bits per unit time by simultaneously calculating the forward state metric values for the four probability paths of the received symbols sequentially input and the reverse state metric values for the four probability paths of the received symbols inputted in the reverse order. CTC decoding method characterized in that. 제 19항에 있어서,The method of claim 19, 상기 상태 메트릭 연산 단계에서,In the state metric calculation step, 상기 결정된 모든 상태 메트릭값을 필요 비트수보다 하나 더 추가하는 단계;Adding all the determined state metric values one more than the required number of bits; 상기 상태 메트릭 연산 완료 후, 각 메트릭값의 최상위 비트를 검사하는 단계; 및Checking the most significant bit of each metric value after completion of the state metric operation; And 상기 검사 결과, 수신 심볼의 4가지 확률 경로에 대한 모든 상태 메트릭의 최상위 비트가 제1 값을 가진 경우 모든 최상위 비트의 값을 제2 값으로 리셋하는 단계를 포함하는 CTC 복호화 방법.And resetting the values of all the most significant bits to the second value when the most significant bit of all the state metrics for the four probability paths of the received symbol has the first value. 제 20항에 있어서,The method of claim 20, 상기 모든 상태 메트릭의 최상위 비트가 제1 값을 가지면, 오버플로우가 발생한 것으로 간주하는 것을 특징으로 하는 CTC 복호화 방법.And if the most significant bit of all the state metrics has a first value, it is assumed that an overflow has occurred. 제 19항에 있어서, 상기 잉여 정보 연산 단계는,The method of claim 19, wherein the step of calculating surplus information, 상기 연산된 확률적 가중치로부터 입력되는 사전정보값을 차감하여 잉여 정보를 발생시키는 단계; 및Generating surplus information by subtracting a prior information value inputted from the calculated probabilistic weights; And 상기 발생된 잉여 정보값에 1/2을 곱하여 정규화하는 단계를 포함하는 CTC 복호화 방법.And multiplying the generated surplus information value by 1/2 to normalize the generated surplus information value.
KR1020030096772A 2003-12-24 2003-12-24 Apparatus and method for ctc decoder KR100612648B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096772A KR100612648B1 (en) 2003-12-24 2003-12-24 Apparatus and method for ctc decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096772A KR100612648B1 (en) 2003-12-24 2003-12-24 Apparatus and method for ctc decoder

Publications (2)

Publication Number Publication Date
KR20050065874A true KR20050065874A (en) 2005-06-30
KR100612648B1 KR100612648B1 (en) 2006-08-16

Family

ID=37257024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096772A KR100612648B1 (en) 2003-12-24 2003-12-24 Apparatus and method for ctc decoder

Country Status (1)

Country Link
KR (1) KR100612648B1 (en)

Also Published As

Publication number Publication date
KR100612648B1 (en) 2006-08-16

Similar Documents

Publication Publication Date Title
JP3640924B2 (en) Configuration decoding apparatus and method in mobile communication system
US20040153942A1 (en) Soft input soft output decoder for turbo codes
US6999531B2 (en) Soft-decision decoding of convolutionally encoded codeword
US20040044946A1 (en) Higher radix Log MAP processor
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
US7234100B1 (en) Decoder for trellis-based channel encoding
US7925964B2 (en) High-throughput memory-efficient BI-SOVA decoder architecture
US7236591B2 (en) Method for performing turbo decoding in mobile communication system
US6614858B1 (en) Limiting range of extrinsic information for iterative decoding
KR100606023B1 (en) The Apparatus of High-Speed Turbo Decoder
Chen et al. Design of a low power viterbi decoder for wireless communication applications
KR100612648B1 (en) Apparatus and method for ctc decoder
CN1129257C (en) Maximum-likelihood decode method f serial backtracking and decoder using said method
KR100625242B1 (en) Apparatus and method for turbo decoder
KR101134806B1 (en) Method for decoding code
US7120851B2 (en) Recursive decoder for switching between normalized and non-normalized probability estimates
Benaissa et al. Reconfigurable hardware architectures for sequential and hybrid decoding
US11251815B2 (en) Decoding circuit and decoding method based on Viterbi algorithm
CN113765622B (en) Branch metric initializing method, device, equipment and storage medium
KR100305293B1 (en) Method of calculating log likelihood ratio using minimium memory in a turbo decoder
Kim et al. Reduction of computational complexity in two-step SOVA decoder for turbo code
Han et al. A power efficient reconfigurable max-log-MAP turbo decoder for wireless communication systems
CN111130570A (en) Method for applying parallel Turbo decoding algorithm in LEO
Han et al. Power and area efficient turbo decoder implementation for mobile wireless systems
JP2000252840A (en) Error-correcting decoder

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: 20120719

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150717

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160719

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180716

Year of fee payment: 13