KR100447175B1 - turbo decoding method and Apparatus for the same - Google Patents

turbo decoding method and Apparatus for the same Download PDF

Info

Publication number
KR100447175B1
KR100447175B1 KR10-2001-0075884A KR20010075884A KR100447175B1 KR 100447175 B1 KR100447175 B1 KR 100447175B1 KR 20010075884 A KR20010075884 A KR 20010075884A KR 100447175 B1 KR100447175 B1 KR 100447175B1
Authority
KR
South Korea
Prior art keywords
turbo
codeword
buffer
deinterleaver
bit stream
Prior art date
Application number
KR10-2001-0075884A
Other languages
Korean (ko)
Other versions
KR20030045954A (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 KR10-2001-0075884A priority Critical patent/KR100447175B1/en
Publication of KR20030045954A publication Critical patent/KR20030045954A/en
Application granted granted Critical
Publication of KR100447175B1 publication Critical patent/KR100447175B1/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/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/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명은 이동통신 시스템에 관한 것으로, 특히 효율적인 터보 디코딩 방법 및 이를 위한 장치에 관한 것이다. 이와 같은 본 발명에 따른 터보 디코딩 장치는 펑쳐링된 비트 스트림을 수신하여 디인터리빙하는 디인터리버와, 상기 디인터리버에서 출력된 비트 스트림을 디펑쳐링된 코드워드로 복원하여 주소별로 저장하는 버퍼와, 상기 버퍼의 저장 값을 코드워드 단위의 비트 스트림으로 읽어들여 디코딩을 수행하는 터보 디코더를 포함하여 구성된다.The present invention relates to a mobile communication system, and more particularly, to an efficient turbo decoding method and apparatus therefor. The turbo decoding apparatus according to the present invention includes a deinterleaver for receiving and deinterleaving a punctured bit stream, a buffer for restoring the bit stream output from the deinterleaver into a depunctured codeword and storing the decoded codeword for each address; It is configured to include a turbo decoder for performing decoding by reading the stored value of the buffer as a bit stream in the codeword unit.

Description

터보 디코딩 방법 및 이를 위한 장치{turbo decoding method and Apparatus for the same}Turbo decoding method and apparatus for same {turbo decoding method and Apparatus for the same}

본 발명은 이동통신 시스템에 관한 것으로, 특히 효율적인 터보 디코딩 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a mobile communication system, and more particularly, to an efficient turbo decoding method and apparatus therefor.

일반적으로 차세대 이동통신 시스템은 수 Mpbs까지의 고속 데이터 전송을 지원할 수 있어야 한다. 데이터 통신은 음성 통신과는 달리 10-5~10-6정도의 아주 낮은 패킷 에러 확률을 요구하기 때문에, 고속 데이터 통신에서, 종래 사용되던 컨벌루셔널 코딩(Convolutional Coding) 방법으로는 한계에 부딪칠 수밖에 없다.In general, next generation mobile communication systems must be able to support high-speed data transmission of up to several Mpbs. Unlike voice communication, data communication requires a very low packet error probability of about 10 -5 to 10 -6 . Therefore, in high-speed data communication, the conventional convolutional coding method may encounter limitations. There is no choice but to.

그러나, 최근에 급속도로 널리 알려진 터보 코딩(turbo coding) 방법을 사용하면 열악한 이동통신 환경 하에서도 상기에서 요구하는 정도의 아주 낮은 패킷 에러 확률을 유지할 수 있기 때문에 터보 코딩 방법은 최근 이동통신 시스템에 대한 표준으로 널리 채택되고 있다.However, the recent turbo widely known turbo coding method can maintain a very low packet error probability as required above even in a poor mobile communication environment. It is widely adopted as a standard.

터보 디코더의 구조에 따르면, 입력되는 코드워드들이 두 개의 컨벌루셔널 디코더들을 교대로 통과하므로 상기 터보 디코더의 구성은 복잡도 측면에서, 한번에 코드워드 단위로 디코딩하는 것에 비해 상당히 단순화된다.According to the structure of the turbo decoder, the configuration of the turbo decoder is considerably simplified compared to decoding in units of codewords at one time in terms of complexity since the input codewords alternately pass through two convolutional decoders.

그러나, 전술한 바와 같이, 상기 입력되는 코드워드들이 반복적으로(iterative1y) 상기 두 개의 컨벌루셔널 디코더들을 통과하기 위해서는상기 두 개의 컨벌루션 디코더들의 출력들이 "0" 또는 "1"과 같은 경판정(hard decision)한 값들이 아니라 "0" 이거나 "1" 일 확률의 비에 해당하는 연판정(soft decision)한 값이어야 한다.However, as described above, in order for the input codewords to pass through the two convolutional decoders repeatedly, the outputs of the two convolutional decoders are hard, such as "0" or "1". It must be a soft decision value corresponding to the ratio of probability "0" or "1", not decision values.

상기 연판정값을 얻기 위해서 정보 비트의 사후(A Posteriori) 확률 값을 계산하고, 상기 사후 확률 값이 최대가 되도록 상기 정보 비트를 디코딩 하는 최대 사후(Maximum A Posteriori;이하 MAP) 디코딩 기법이 제안되었다.In order to obtain the soft decision value, a maximum posteriorri (MAP) decoding technique has been proposed that calculates a posteriori probability value of an information bit and decodes the information bit such that the posterior probability value is maximized. .

도 1은 종래 기술에 따른 터보 디코더의 구조를 나타낸 도면이다.1 is a view showing the structure of a turbo decoder according to the prior art.

도 1을 참조하면, 상기 MAP 알고리즘을 이용한 두 개의 구성 MAP 디코더들(101,102)과, 터보 인터리버(103)와, 터보 디인터리버(104)와, 판정기(105)로 구성된다.Referring to FIG. 1, two component MAP decoders 101 and 102, a turbo interleaver 103, a turbo deinterleaver 104, and a determiner 105 are used.

상기 구성 MAP 디코더(101)는 시스테메틱 비트들, 제1 패리티 비트들과, 외부 정보 비트들을 이용하여 1차로 디코딩 한다. 상기 외부 정보 비트들은 상기 제2 구성 MAP 디코더(102)의 출력 비트이다.The configuration MAP decoder 101 primarily decodes the systematic bits, the first parity bits, and the external information bits. The external information bits are output bits of the second component MAP decoder 102.

상기 1차 디코딩 비트들(제2 구성 MAP 디코더 입장에서 외부 정보 비트들이 된다)은 터보 인터리버(103)에 의해 인터리빙되어 상기 제2 구성 MAP 디코더(102)에 입력된다.The primary decoding bits (which become external information bits in terms of the second component MAP decoder) are interleaved by the turbo interleaver 103 and input to the second component MAP decoder 102.

상기 제2 구성 MAP 디코더(102)는 상기 1차 디코딩 비트들과, 제2 패리티 비트들과, 테일 비트들을 이용하여 2차로 디코딩한다.The second configuration MAP decoder 102 decodes second using the first decoding bits, the second parity bits, and the tail bits.

여기서, 상기 시스테메틱 비트들은 정보 비트들이고, 상기 제1, 제2 패리티 비트들은 송신단에서의 부호화 과정에서 오류 정정을 위해 두 개의 구성 MAP 인코더에서 각각 부가된 리던던시 비트들이다. 또한, 상기 테일 비트는 트렐리스 종단(Trellis Termination)을 위해 추가로 부가되는 비트들이다.Here, the systematic bits are information bits, and the first and second parity bits are redundancy bits respectively added by two component MAP encoders for error correction during encoding at a transmitter. In addition, the tail bits are bits that are additionally added for Trellis Termination.

그리고, N번째 반복된 디코딩에서 상기 판정기(107)는 상기 터보 인터리버(103)의 출력 신호와, 상기 터보 디인터리버(104)의 출력 신호를 판정기(105)가 경판정하여 디코딩 비트를 추출한다.In the Nth repeated decoding, the determiner 107 hardly determines the output signal of the turbo interleaver 103 and the output signal of the turbo deinterleaver 104 to extract decoding bits. .

도 2는 종래 기술에 따른 블록 디인터리빙 및 터보 디코딩 과정을 위한 상세 구성을 나타낸 도면이다.2 is a diagram illustrating a detailed configuration for a block deinterleaving and turbo decoding process according to the prior art.

도 2를 참조하면, 디인터리버(201)와, 심볼 생성 블록(202)과, 터보 디코더(203)와, 제어기(204)로 구성된다.Referring to FIG. 2, a deinterleaver 201, a symbol generation block 202, a turbo decoder 203, and a controller 204 are configured.

도 3은 도 2에 도시된 디인터리버의 메모리 포맷을 나타낸 도면이다.FIG. 3 is a diagram illustrating a memory format of the deinterleaver shown in FIG. 2.

먼저, 수신된 신호는 디인터리버(201)에 의해 디인터리빙되어 디인터리버 메모리에 저장된다. 도 3에 도시된 바와 같이, 한 심볼이 5비트이고, 네 개의 심볼들을 한 주소에 저장할 수 있는 상기의 디인터리버 메모리에서는 펑처링된 하나의 코드워드를 예를 들어, x5~x8(x7은 펑처링 비트)은 두 클락에 걸쳐 읽어올 수 있도록 되어 있다.First, the received signal is deinterleaved by the deinterleaver 201 and stored in the deinterleaver memory. As shown in FIG. 3, in the above-described deinterleaver memory capable of storing five symbols at one address with one symbol of five bits, one codeword punctured may be, for example, x5 to x8 (x7 is a puncture). Processing bits) can be read across two clocks.

즉, 상기 심볼 생성 블록(202)은 상기 디인터리버(201)의 출력 심볼을 입력으로 하여 터보 디코더(203)의 입력 심볼을 생성하게 되는데, 상기의 디인터리버 메모리의 데이터 포맷 때문에, 심볼 생성 블록(202)은 한 클락에 상기 디인터리버 메모리로부터 하나의 코드워드 단위를 읽어올 수 없다. 참고적으로, x는 시스테메틱 비트(systematic bit)와, y0와, y1은 제1, 제2 패리티 비트(parity bit)이고,xx는 테일 비트일 경우, 2번째 시스테메틱 비트를 나타낸다.That is, the symbol generation block 202 generates an input symbol of the turbo decoder 203 by inputting an output symbol of the deinterleaver 201. The symbol generation block (202) is generated due to the data format of the deinterleaver memory. 202 cannot read one codeword unit from the deinterleaver memory in one clock. For reference, x is a systematic bit, y0, y1 are first and second parity bits, and xx represents a second systematic bit when the tail bit is a tail bit.

따라서, 상기 터보 디코더(203)는 디코딩을 수행하기 위해 한 클락 이상 동안에 걸쳐, 상기 심볼 생성 블록(202)으로부터 시스테메틱 비트와, 제1, 제2 패리티 비트, 0(송신단에서 펑처링된 비트)을 포함하거나, 제1, 제2 시스테메틱 비트, 제1, 제2 패리티 비트(테일 비트인 경우)를 포함하는 코드워드 단위로 심볼들을 읽어와서 디코딩을 수행해야 한다.Accordingly, the turbo decoder 203 may use the systematic bits from the symbol generation block 202, the first and second parity bits, and the 0 (bits punctured at the transmitting end) for one or more clocks to perform decoding. ) Or read symbols in a codeword unit including the first and second systematic bits and the first and second parity bits (if tail bits).

상기에서 펑처링된 하나의 코드워드(x5,x6,x8)는 다른 메모리 번지에 저장되어 있어 한 클락에 읽을 수 없게 되므로, 디코딩 시간이 길어지게 된다.One punctured codeword (x5, x6, x8) is stored in another memory address so that it cannot be read in one clock, resulting in a long decoding time.

따라서, 본 발명은 이상에서 언급한 종래 기술의 문제점을 감안하여 안출한 것으로서, 디코딩 시간을 줄이기 위한 터보 디코딩 방법 및 이를 위한 장치를 제공하기 위한 것이다.Accordingly, the present invention has been made in view of the above-mentioned problems of the prior art, and is to provide a turbo decoding method and apparatus for reducing the decoding time.

이상과 같은 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 펑쳐링된 비트 스트림을 수신하여 디인터리빙하는 디인터리버와, 상기 디인터리버에서 출력된 비트 스트림을 디펑쳐링된 코드워드로 복원하여 주소별로 저장하는 버퍼와, 상기 버퍼의 저장 값을 코드워드 단위의 비트 스트림으로 읽어들여 디코딩을 수행하는 터보 디코더를 포함하여 구성된다.According to an aspect of the present invention for achieving the above object, a deinterleaver for receiving and deinterleaving a punctured bit stream, and restores the bit stream output from the deinterleaver to a depunctured codeword for each address And a turbo decoder configured to read the stored value of the buffer into a bit stream in units of codewords and perform decoding.

바람직하게, 상기 터보 디코더의 프로세싱 시간 단위인 슬라이딩 윈도우 깊이(sliding window depth)가 L인 경우에, 상기 버퍼가 (4×L)의 저장 단위(depth)를 갖는 것을 특징으로 한다.Preferably, when the sliding window depth which is a processing time unit of the turbo decoder is L, the buffer has a storage depth of 4 × L.

바람직하게 상기 버퍼의 저장 값이 기준 클럭당 하나의 코드워드 단위로 상기 터보 디코더에 제공되도록, 상기 디인터리버와 상기 버퍼를 제어하는 제어수단을 더 포함하여 구성된다.Preferably, the apparatus further includes control means for controlling the deinterleaver and the buffer such that the stored value of the buffer is provided to the turbo decoder in units of one codeword per reference clock.

이상과 같은 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 펑쳐링된 비트 스트림을 수신하여 디인터리빙하는 단계와, 상기 디인터리빙된 출력 비트 스트림을 디펑쳐링된 코드워드로 복원하는 단계와, 터보 디코딩의 프로세싱 시간 단위인 슬라이딩 윈도우 깊이(sliding window depth)가 L인 경우에, (4×L)의 저장 단위(depth)를 갖는 버퍼에 상기 복원된 코드워드를 주소별로 저장하는 단계와, 상기 버퍼의 저장 값을 코드워드 단위로 읽어들여 상기 터보 디코딩을 수행하는 단계를 포함하여 이루어진다.According to another aspect of the present invention for achieving the above object, receiving and deinterleaving a punctured bit stream, restoring the deinterleaved output bit stream to a depunctured codeword, turbo If the sliding window depth, which is a processing time unit of decoding, is L, storing the reconstructed codeword for each address in a buffer having a storage unit of (4 × L), and the buffer; And performing the turbo decoding by reading the stored value of the codeword unit.

바람직하게, 상기 버퍼의 저장 값을 기준 클럭당 하나의 코드워드 단위로 출력하는 단계를 더 포함하여 이루어진다.The method may further include outputting the stored value of the buffer in one codeword unit per reference clock.

도 1은 종래 기술에 따른 터보 디코더의 구조를 나타낸 도면.1 is a view showing the structure of a turbo decoder according to the prior art.

도 2는 종래 기술에 따른 블록 디인터리빙 및 터보 디코딩 과정을 위한 상세 구성을 나타낸 도면.2 is a diagram illustrating a detailed configuration for a block deinterleaving and turbo decoding process according to the prior art.

도 3은 도 2에 도시된 디인터리버의 메모리 포맷을 나타낸 도면.3 is a diagram illustrating a memory format of the deinterleaver shown in FIG. 2;

도 4는 본 발명에 이용되는 MAP 디코더의 상세 구성을 나타낸 도면.4 is a diagram showing a detailed configuration of a MAP decoder used in the present invention.

도 5는 도 4에 도시된 MAP 디코더의 상세 구성에 따른 슬라이딩 윈도우 기법을 도시한 타이밍도.FIG. 5 is a timing diagram illustrating a sliding window technique according to a detailed configuration of the MAP decoder illustrated in FIG. 4.

도 6은 본 발명에 따른 블록 디인터리빙 및 터보 디코딩 과정을 위한 상세 구성을 나타낸 도면.6 illustrates a detailed configuration for a block deinterleaving and turbo decoding process according to the present invention.

도 7은 도 6에 도시된 터보 입력 버퍼의 데이터 포맷을 나타낸 도면.FIG. 7 shows the data format of the turbo input buffer shown in FIG. 6; FIG.

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

301 : 디인터리버301: Deinterleaver

302 : 터보 입력 버퍼302: turbo input buffer

303 : 심볼 생성 블록303: symbol generation block

304 : 터보 디코더304: Turbo Decoder

305 : 제어기305 controller

이하 본 발명의 바람직한 일 실시 예에 따른 구성 및 작용을 첨부된 도면을 참조하여 설명한다.Hereinafter, a configuration and an operation according to an exemplary embodiment of the present invention will be described with reference to the accompanying drawings.

도 4는 본 발명에 이용되는 MAP 디코더의 상세 구성을 나타낸 도면이다.4 is a diagram illustrating a detailed configuration of a MAP decoder used in the present invention.

도 5는 도 4에 도시된 MAP 디코더의 상세 구성에 따른 슬라이딩 윈도우 기법을 도시한 타이밍도이다.FIG. 5 is a timing diagram illustrating a sliding window technique according to a detailed configuration of the MAP decoder illustrated in FIG. 4.

상기 MAP 디코더는 순방향 프로세서(106), 제1 역방향 프로세서(107)와, 제2 역방향 프로세서(108)와, 이들(106,107,108) 출력을 이용하여 듀얼 맥시마를 수행하는 듀얼 맥시마 프로세서(109)로 구성된다. 상기 구성에 따른 각 프로세서의 동작은 도 5에 타이밍도를 참조하여 이하에서 보다 상세하게 설명하기로 한다.The MAP decoder is comprised of a forward processor 106, a first reverse processor 107, a second reverse processor 108, and a dual maxima processor 109 that performs dual maxima using these 106, 107, and 108 outputs. . Operation of each processor according to the above configuration will be described in more detail below with reference to a timing diagram in FIG. 5.

도 5에서 x축은 시간의 흐름을 나타내며, 상기 각 프로세서(106,107,108)가 시간의 흐름에 따라 어느 심볼을 처리하는가를 나타낸 것이다. 순방향 프로세서(106)의 심볼의 번호는 증가하며, 역방향 프로세서(107,108)의 심볼 번호는 감소한다. 그리고, 파선 구간에서 역방향 프로세서(107,108)는'학습(learning)' 중임을 나타낸다. 그리고, 곡선의 화살표는 MAP 디코더의 비트 결정에 필요한 순방향 재귀 값과, 역방향 재귀 값들의 상관관계를 보이고 있다.In FIG. 5, the x-axis represents the passage of time, and shows which symbols the processors 106, 107, and 108 process as the passage of time. The number of symbols in forward processor 106 increases and the number of symbols in reverse processor 107, 108 decreases. In addition, the reverse processors 107 and 108 indicate that they are 'learning' in the dashed period. The arrow of the curve shows the correlation between the forward recursion value and the reverse recursion value required for bit determination of the MAP decoder.

즉, 상기 순방향 프로세서(106)의 처리 시간은 순방향 재귀 상태 메트릭을 계산하는 시간이고, 상기 제1, 제2 역방향 프로세서(107,108)의 처리 시간은 각각 제1 역방향 재귀 상태 메트릭과, 제2 역방향 재귀 상태 메트릭을 계산하는 시간이다. 상기 제1, 제2 역방향 재귀 값은 2L만큼씩 계산하여 마지막 L 부분만 교대로 듀얼 맥시마 프로세서(109)의 입력이 된다.That is, the processing time of the forward processor 106 is a time for calculating a forward recursive state metric, and the processing times of the first and second reverse processors 107 and 108 are respectively a first reverse recursive state metric and a second reverse recursion. Time to calculate the status metric. The first and second reverse recursion values are calculated by 2L, and only the last L portion is alternately input to the dual Maxima processor 109.

역방향 프로세서 두 개를 사용하여 하나의 역방향 프로세서(107)가 "학습(learning)"을 하는 동안, 다른 역방향 프로세서(108)가 MAP 디코더의 비트 결정에 필요한 역방향 재귀 값들을 계산한다.While one reverse processor 107 is "learning" using two reverse processors, the other reverse processor 108 calculates backward recursion values necessary for bit determination of the MAP decoder.

즉, 하나의 MAP 디코딩이 시작되면 제1 역방향 프로세서(107)가 2L부터 (1L+1)까지 "학습" 과정을 수행한다. 이 학습 과정 동안 제2 역방향 프로세서(108)는 정지 상태로 있다. 여기서 L은 슬라이딩 윈도우 길이 즉, 터보 디코더에 포함된 각 프로세서의 프로세싱 단위 시간을 나타낸다.That is, when one MAP decoding is started, the first reverse processor 107 performs a "learning" process from 2L to (1L + 1). The second reverse processor 108 is stationary during this learning process. Where L represents the sliding window length, that is, the processing unit time of each processor included in the turbo decoder.

이후에 제1 역방향 프로세서(107)는 1L부터 1까지의 역방향 재귀 값을 계산하며, 이미 계산되어 저장된 1~1L까지의 순방향 재귀 값을 함께 사용하여 듀얼 맥시마 프로세서(109)는 1L부터 1까지의 듀얼 맥시마를 실행하여 연판정 값인 외부 정보를 생성하여 출력한다. 외부 정보 비트 결정 시간동안 제2 역방향 프로세서(108)는 3L부터 (2L+1)까지의 심볼을 이용하여 "학습"을 수행한다.Thereafter, the first reverse processor 107 calculates backward recursion values of 1L to 1, and the dual maxima processor 109 uses 1L to 1 by using forward recursion values of 1 to 1L that are already calculated and stored. The dual maxima is executed to generate and output external information, which is a soft decision value. During the external information bit determination time, the second reverse processor 108 performs " learning " using symbols from 3L to (2L + 1).

다음 구간에서는 제2 역방향 프로세서(108)가 2L부터 1L까지의 역방향 재귀값을 계산하며, 듀얼 맥시마 프로세서(109)는 2L부터 (1L+1)까지의 듀얼 맥시마를 실행하여 연판정 값인 외부 정보를 생성하여 출력한다. 이 외부 정보 비트의 생성 시간동안 제1 역방향 프로세서는 4L부터 3L까지의 심볼을 이용하여 "학습"을 수행한다.In the next section, the second reverse processor 108 calculates backward recursion values from 2L to 1L, and the dual maxima processor 109 executes dual maxima from 2L to (1L + 1) to obtain external information that is a soft decision value. Create and print During the generation time of this external information bit, the first reverse processor performs " learning " using symbols from 4L to 3L.

상기 듀얼 맥시마 프로세서(108)의 출력인 외부 정보 출력은 제1, 제2 역방향 재귀 값과 같은 인덱스를 가지며, L 단위로 생성되고, 각각의 L 단위에서는 정보 비트들의 역순으로 발생된다.The external information output, which is the output of the dual maxima processor 108, has the same index as the first and second reverse recursion values, is generated in L units, and is generated in the reverse order of the information bits in each L unit.

또한, 상기 3개의 순방향 및 역방향 재귀 값들은 해당 재귀 값에 필요한 심볼들을 블록 인터리버로부터 입력받게 되고, 재귀 값의 한 스텝(3L 길이)을 계산하기 위해서는 해당 디코더의 코드워드를 이루는 심볼들이 모두 필요하다.In addition, the three forward and backward recursion values receive symbols required for the recursion value from the block interleaver, and in order to calculate one step (3L length) of the recursion value, all symbols forming the codeword of the corresponding decoder are required. .

예를 들어, 송신단에서 코드 레이트가 1/4일 경우, 제1 인코더와, 제2 인코더로부터 각 3개의 심볼들이 펑처링 및 연접(concatenation)되어 4개의 심볼들이 새로운 코드워드를 생성하고, 테일 비트인 경우는 제1 인코더와, 제2 인코더로부터 교대로 4 심볼들이 출력되어 새로운 코드워드를 생성한다. 그러므로, 수신단에서 상기의 순방향 프로세서(106), 제1,제2 역방향 프로세서(107,108) 각각의 재귀 값은 최대 4개의 심볼로 구성된 코드워드를 입력으로 하여 한 스텝(3L 길이) 계산을 행할 수 있다.For example, if the code rate is 1/4 at the transmitter, three symbols are punctured and concatenated from the first encoder and the second encoder to generate four codewords, and the tail bits. In the case of, four symbols are alternately output from the first encoder and the second encoder to generate a new codeword. Therefore, at the receiving end, the recursive value of each of the forward processor 106 and the first and second reverse processors 107 and 108 can perform one step (3L length) calculation by inputting a codeword composed of up to four symbols. .

도 6은 본 발명에 따른 블록 디인터리빙 및 터보 디코딩 과정을 위한 상세 구성을 나타낸 도면이다.6 is a diagram illustrating a detailed configuration for a block deinterleaving and turbo decoding process according to the present invention.

도 7은 도 6에 도시된 터보 입력 버퍼의 데이터 포맷을 나타낸 도면이다.FIG. 7 is a diagram illustrating a data format of a turbo input buffer shown in FIG. 6.

도 6을 참조하면, 디인터리버(301)와, 터보 입력 버퍼(302)와, 심볼 생성 블록(303)과, 터보 디코더(304)와, 제어기(305)로 구성된다.Referring to FIG. 6, a deinterleaver 301, a turbo input buffer 302, a symbol generation block 303, a turbo decoder 304, and a controller 305 are configured.

먼저, 수신된 신호는 디인터리버(301)에 의해 디인터리빙되어 디인터리버 메모리(미도시)에 저장된다. 도 3에 도시된 바와 같이, 상기 디인터리버 메모리는 네 개의 심볼들을 한 주소에 저장할 수 있는 데이터 포맷을 갖는다.First, the received signal is deinterleaved by the deinterleaver 301 and stored in a deinterleaver memory (not shown). As shown in FIG. 3, the deinterleaver memory has a data format capable of storing four symbols at one address.

터보 디코딩의 디코딩 시간을 단축시키기 위하여, 상기 터보 입력 버퍼(302)는 상기 디인터리버 메모리로부터, 송신단에서 하나의 코드워드로부터 펑처링된 심볼들을 읽어와, 펑처링 비트는 0으로 패딩하여, 원래의 코드워드를 한 주소의 메모리에 저장한다. 상기 터보 입력 버퍼(302)는 CDMA 2000 시스템인 경우는 코드 레이트가 최대 1/4이므로, 4 개의 심볼을 한 주소에 저장하고, 저장 단위(depth)는 슬라이딩 윈도 사이즈 L의 4배인 4L을 갖는다.To shorten the decoding time of turbo decoding, the turbo input buffer 302 reads punctured symbols from the deinterleaver memory from one codeword at the transmitting end, and punctures the puncturing bits with zero, Store the codeword in memory at one address. The turbo input buffer 302 has a maximum code rate of 1/4 in the case of the CDMA 2000 system, and thus stores four symbols at one address, and the storage unit has 4L, which is four times the sliding window size L.

상기 제어기(305)는 한 주소에 저장된 코드워드들을 하나의 기준 클럭당 하나의 코드워드를 출력하도록 상기 디인터리버(301) 및 터보 입력 버퍼(302)를 제어한다.The controller 305 controls the deinterleaver 301 and the turbo input buffer 302 to output one codeword per one reference clock for codewords stored at one address.

도 5에 도시된 바와 같이, MAP 디코더는 상기 각 프로세서의 프로세싱 단위시간 L 구간 동안에, 연속적인 3L 개의 터보 코드워드를 필요로 하게 된다. 그러므로, 상기 터보 입력 버퍼(302)는 3L의 저장 단위와 더불어 다음 L 구간의 연산을 위하여, 미리 디인터리버 메모리로부터 L 개의 터보 코드워드를 저장해야 한다. 즉, 터보 입력 버퍼(302)는 (3L+L)의 저장 깊이를 가지고 있어야 한다.As shown in FIG. 5, the MAP decoder needs 3L turbo codewords consecutively during the processing unit time L period of each processor. Therefore, the turbo input buffer 302 must store L turbo codewords from the deinterleaver memory in advance for calculation of the next L section with a storage unit of 3L. That is, the turbo input buffer 302 must have a storage depth of (3L + L).

예를 들어, 도 5에서 처리 시간 (L+1)~2L 사이에는 순방향 재귀 값이(L+1)~2L 구간 동안 구해지고, 제1 역방향 재귀 값은 L~1에서, 제2 역방향 재귀 값은 3L~(2L+1)의 구간에서 구해지므로, 이 구간의 터보 코드워드가 필요하게 된다. 총 1~3L의 연속적인 3L 구간의 터보 코드워드가 필요하게 된다. 그리고, 다음 구간의 연산을 위하여 (3L+1)~4L의 터보 코드워드를 미리 디인터리버 메모리에서 읽어와서 저장해야 한다. 그리고, 다음 (2L+1)~3L 구간에서는 순방향 재귀 값이 구해지고, 제2 역방향 재귀 값은 각각 (2L+1)~L과, 4L~(3L+1), 2L~(L+1)의 터보 코드워드가 필요하게 된다. 이 구간에서는 1~L의 터보 코드워드가 필요 없으므로, 터보 입력 버퍼의 이 영역을 다음 구간(4L+1~5L)에 필요한 터보 코드워드를 미리 메모리로부터 읽어와서 저장한다.For example, in FIG. 5, a forward recursion value is obtained for a period between (L + 1) and 2L between processing times (L + 1) to 2L, and the first reverse recursion value is L to 1 and the second reverse recursion value is obtained. Since is obtained in the section of 3L-(2L + 1), the turbo codeword of this section is required. A total of 1 to 3 L of consecutive 3L turbo codewords are required. The turbo codewords of (3L + 1) to 4L must be read in advance from the deinterleaver memory and stored for the next section of operation. In the next (2L + 1) to 3L interval, the forward recursion value is obtained, and the second reverse recursion value is respectively (2L + 1) to L, 4L to (3L + 1), and 2L to (L + 1). Turbo codeword of is required. Since turbo codewords of 1 to L are not required in this section, the turbo codewords required for the next section (4L + 1 to 5L) in this area of the turbo input buffer are read in advance from the memory and stored.

이와 같이, 매 L 구간 실행함으로 터보 입력 버퍼는 총 4L 개의 터보 코드워드를 저장할 수 있는 4L의 저장 깊이(depth)를 가지고 있어야 한다.As such, with every L interval execution, the turbo input buffer must have a storage depth of 4L to store a total of 4L turbo codewords.

도 7은 상기 기술한 예인 코드 레이트가 1/4 이고, 심볼 펑처링 패턴이 '1101-1101-1010'인 경우에 터보 입력 버퍼에 저장되는 심볼 포맷을 나타내고 있다.FIG. 7 illustrates a symbol format stored in a turbo input buffer when the code rate is 1/4 and the symbol puncturing pattern is '1101-1101-1010'.

도 3과 같은 데이터 포맷을 갖는 디인터리버 메모리로부터 연속적으로 2개(8심볼)의 데이터를 읽어와서 도 7과 같은 포맷으로 3번 기록 동작이 발생하여 터보 입력 버퍼에 저장된다. 이렇게 하면, MAP 디코더는 매 클락마다 각 재귀에 필요한 터보 코드워드를 읽어와서 디코딩을 수행할 수 있고, 3 클락(총 3개의 재귀에 터보 코드워드가 읽어오는 시간)마다 듀얼 맥시마를 수행하여 연판정 값인 외부 출력을 생성할 수 있다. 즉 도 3의 처리 시간 1은 3 클락으로 이루어질 수 있다.Three (8 symbols) data are sequentially read from the deinterleaver memory having the data format as shown in FIG. 3, and the third write operation is performed in the format as shown in FIG. In this way, the MAP decoder can read and decode the turbo codewords required for each recursion at every clock, and perform a soft decision by performing dual maxima at every three clocks (the time when the turbo codewords are read in total of three recursions). You can create an external output that is a value. That is, the processing time 1 of FIG. 3 may consist of three clocks.

그리고, 디코딩 처음 시점에서는 디인터리버로부터 2L 개의 터보 코드워드를 터보 입력 버퍼에 저장시키고, 그 후 디코딩이 수행된다.At the first decoding time, 2L turbo codewords are stored in the turbo input buffer from the deinterleaver, and decoding is then performed.

이상의 설명에서와 같이 본 발명은 터보 디코더에서 학습 기간의 4배의 저장 단위(4L)를 갖는 터보 입력 버퍼를 사용하여 MAP 디코더의 입력 신호인 터보 코드워드를 매 클락 발생시키므로, 총 3개의 재귀에 필요한 터보 코드워드를 3 클락 동안 발생시켜 3 클락당 외부 출력 정보를 생성시켜 터보 디코딩 시간을 단축시킬 수 있다.As described above, the present invention generates a turbo codeword, which is the input signal of the MAP decoder, every clock using a turbo input buffer having four times the storage unit (4L) of the learning period in the turbo decoder. The required turbo codeword can be generated for three clocks to generate external output information per three clocks to shorten the turbo decoding time.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정하는 것이 아니라 특허 청구 범위에 의해서 정해져야 한다.Therefore, the technical scope of the present invention should not be limited to the contents described in the examples, but should be defined by the claims.

Claims (5)

펑쳐링된 비트 스트림을 수신하여 디인터리빙하는 디인터리버;A deinterleaver for receiving and deinterleaving a punctured bit stream; 상기 디인터리버에서 출력된 비트 스트림을 디펑쳐링된 코드워드로 복원하여 주소별로 저장하는 버퍼;A buffer for restoring the bit stream output from the deinterleaver into a depunctured codeword and storing the bit stream for each address; 상기 버퍼의 저장 값을 코드워드 단위의 비트 스트림으로 읽어들여 디코딩을 수행하는 터보 디코더를 포함하여 구성되는 것을 특징으로 하는 터보 디코딩 장치.And a turbo decoder configured to read the stored value of the buffer into a bit stream in codeword units and perform decoding. 제 1 항에 있어서, 상기 터보 디코더의 프로세싱 시간 단위인 슬라이딩 윈도우 깊이(sliding window depth)가 L인 경우에, 상기 버퍼가 (4×L)의 저장 단위(depth)를 갖는 것을 특징으로 하는 터보 디코딩 장치.The turbo decoding of claim 1, wherein the buffer has a storage depth of (4 × L) when a sliding window depth, which is a processing time unit of the turbo decoder, is L. 4. Device. 제 1 항에 있어서, 상기 버퍼의 저장 값이 기준 클럭당 하나의 코드워드 단위로 상기 터보 디코더에 제공되도록, 상기 디인터리버와 상기 버퍼를 제어하는 제어수단을 더 포함하여 구성되는 것을 특징으로 하는 터보 디코딩 장치.2. The turbo according to claim 1, further comprising control means for controlling the deinterleaver and the buffer such that the stored value of the buffer is provided to the turbo decoder in units of one codeword per reference clock. Decoding device. 펑쳐링된 비트 스트림을 수신하여 디인터리빙하는 단계와;Receiving and deinterleaving a punctured bit stream; 상기 디인터리빙된 출력 비트 스트림을 디펑쳐링된 코드워드로 복원하는 단계와;Restoring the deinterleaved output bit stream to a depunctured codeword; 터보 디코딩의 프로세싱 시간 단위인 슬라이딩 윈도우 깊이(sliding window depth)가 L인 경우에, (4×L)의 저장 단위(depth)를 갖는 버퍼에 상기 복원된 코드워드를 주소별로 저장하는 단계와;If the sliding window depth, which is a processing time unit of turbo decoding, is L, storing the reconstructed codeword by address in a buffer having a storage unit of (4 × L); 상기 버퍼의 저장 값을 코드워드 단위로 읽어들여 상기 터보 디코딩을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 하는 터보 디코딩 방법.And performing the turbo decoding by reading the stored value of the buffer in codeword units. 제 4 항에 있어서, 상기 버퍼의 저장 값을 기준 클럭당 하나의 코드워드 단위로 출력하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 터보 디코딩 방법.The turbo decoding method of claim 4, further comprising outputting the stored value of the buffer in one codeword unit per reference clock.
KR10-2001-0075884A 2001-12-03 2001-12-03 turbo decoding method and Apparatus for the same KR100447175B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0075884A KR100447175B1 (en) 2001-12-03 2001-12-03 turbo decoding method and Apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0075884A KR100447175B1 (en) 2001-12-03 2001-12-03 turbo decoding method and Apparatus for the same

Publications (2)

Publication Number Publication Date
KR20030045954A KR20030045954A (en) 2003-06-12
KR100447175B1 true KR100447175B1 (en) 2004-09-04

Family

ID=29572676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0075884A KR100447175B1 (en) 2001-12-03 2001-12-03 turbo decoding method and Apparatus for the same

Country Status (1)

Country Link
KR (1) KR100447175B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617822B1 (en) * 2004-07-29 2006-08-28 삼성전자주식회사 High-Speed Input Apparatus and Method For Turbo Decoder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
KR20010072501A (en) * 1998-08-14 2001-07-31 러셀 비. 밀러 Memory architecture for map decoder
KR20010080951A (en) * 1998-11-05 2001-08-25 러셀 비. 밀러 A system and method for reducing deinterleaver memory requirements through chunk allocation
KR20010088176A (en) * 2000-03-11 2001-09-26 서평원 Interleaver memory control apparatus and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
KR20010072501A (en) * 1998-08-14 2001-07-31 러셀 비. 밀러 Memory architecture for map decoder
KR20010080951A (en) * 1998-11-05 2001-08-25 러셀 비. 밀러 A system and method for reducing deinterleaver memory requirements through chunk allocation
KR20010088176A (en) * 2000-03-11 2001-09-26 서평원 Interleaver memory control apparatus and method

Also Published As

Publication number Publication date
KR20030045954A (en) 2003-06-12

Similar Documents

Publication Publication Date Title
KR100803957B1 (en) Highly parallel map decoder
JP3730238B2 (en) Adaptive channel coding method and apparatus
KR100671075B1 (en) Decoder, decoding system and method for decoding to facilitate the use of turbo coding
US8370713B2 (en) Error correction code decoding device
US6434203B1 (en) Memory architecture for map decoder
KR100744367B1 (en) The Apparatus And Method for Turbo Decording With Variable sliding window size
JP2008118628A (en) Error correction code decoding device
KR100628201B1 (en) Method for Turbo Decoding
KR19990081470A (en) Method of terminating iterative decoding of turbo decoder and its decoder
AU766116B2 (en) Memory architecture for map decoder
KR100447175B1 (en) turbo decoding method and Apparatus for the same
KR20030047100A (en) Apparatus for sharing memory between interleaver and deinterleaver in turbo decoder and method thereof
US7652597B2 (en) Multimode decoder
KR100454952B1 (en) Adaptive Channel Coding Method and Apparatus
JP2004266324A (en) Data receiving method and apparatus
KR19990017546A (en) Decoder of turbo encoder
KR100845829B1 (en) Turbo decoder and decoding method
KR100317377B1 (en) Encoding and decoding apparatus for modulation and demodulation system
KR20010084832A (en) Serially concatenated convolution encoding apparatus and method
KR100311413B1 (en) Serially concatenated convolutional encoding method and apparatus for communication system
JP2006528849A (en) Method, encoder and communication device for individually encoding code block segments
RU2236085C2 (en) Memory architecture for maximal a posteriori probability decoder
KR100332805B1 (en) Serially concatenated convolutional encoding apparatus and encoding/decoding method
JP2007150686A (en) Turbo decoder and communication system therewith
JP2001326577A (en) Device and method for directly connected convolutional encoding

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee