KR101614482B1 - 터보 인터리버의 인터리빙 주소 결정 장치 및 방법 - Google Patents

터보 인터리버의 인터리빙 주소 결정 장치 및 방법 Download PDF

Info

Publication number
KR101614482B1
KR101614482B1 KR1020090073744A KR20090073744A KR101614482B1 KR 101614482 B1 KR101614482 B1 KR 101614482B1 KR 1020090073744 A KR1020090073744 A KR 1020090073744A KR 20090073744 A KR20090073744 A KR 20090073744A KR 101614482 B1 KR101614482 B1 KR 101614482B1
Authority
KR
South Korea
Prior art keywords
interleaving
parameter
size
address
new
Prior art date
Application number
KR1020090073744A
Other languages
English (en)
Other versions
KR20110016168A (ko
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 KR1020090073744A priority Critical patent/KR101614482B1/ko
Priority to US12/854,528 priority patent/US8667341B2/en
Publication of KR20110016168A publication Critical patent/KR20110016168A/ko
Application granted granted Critical
Publication of KR101614482B1 publication Critical patent/KR101614482B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • H03M13/2714Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2767Interleaver wherein the permutation pattern or a portion thereof is stored
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0055MAP-decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 터보 인터리버의 인터리빙 주소 결정 장치 및 방법에 관한 것으로, 일정 인터리빙 크기의 데이터 수신 시, 수신된 인터리빙 크기와 미리 저장된 인터리빙 크기가 동일하면, 미리 저장된 인터리빙 주소에 따라 수신되는 데이터를 디코딩하고, 그렇지 않으면, 수신된 인터리빙 크기로 인터리빙 파라미터를 산출하고, 산출된 인터리빙 파라미터가 미리 저장된 인터리빙 파라미터와 상이하면, 산출된 인터리빙 파라미터로 인터리빙 시퀀스를 생성하고, 생성된 인터리빙 시퀀스로 다른 인터리빙 주소를 생성하여 저장된 인터리빙 주소를 갱신하고, 갱신된 인터리빙 주소에 따라 수신되는 데이터를 디코딩하도록 구성된다. 본 발명에 따르면, 터보 인터리버가 매 코드 블록에서 인터리빙 주소를 생성하지 않아도 되므로, 터보 디코더에서 데이터를 디코딩하는데 소요되는 시간을 절감할 수 있다.
터보 인터리버, 인터리빙 주소, 인터리빙 크기, 인터리빙 파라미터, 인터리빙 시퀀스

Description

터보 인터리버의 인터리빙 주소 결정 장치 및 방법{APPARATUS AND METHOD FOR DETERMINING INTERLEAVED ADDRESS OF TURBO INTERLEAVER}
본 발명은 통신 장치 및 그의 동작 방법에 관한 것으로, 특히 통신 장치에서 터보 인터리버의 인터리빙 주소 결정 장치 및 방법에 관한 것이다.
일반적으로 3GPP(3rd Generation Partnership Project)의 WCDMA(Wideband Code Division Multiple Access), HSDPA(High Speed Downlink Packet Access)와 같은 통신 규격에서, 디지털 통신 시스템은 길쌈 인코더(viterbi encoder), 터보 인코더(turbo encoder) 등과 같은 채널 인코더 및 비터비 디코더(viterbi decoder), 터보 디코더(turbo decoder) 등과 같은 채널 디코더를 사용한다. 이는 전송 채널에서 발생되는 잡음(noise)을 효과적으로 제거하기 위한 것이다. 예를 들면, 디지털 통신 시스템에서, 송신기는 데이터에 터보 인코더로 인코딩(encoding)을 수행하여 전송하며, 수신기는 데이터를 수신하여 터보 디코더로 디코딩(decoding)을 수행한다.
이 때 각각의 인코딩 및 디코딩 성능을 극대화하기 위해, 터보 인코더 및 터보 디코더는 각각의 터보 인터리버(turbo interleaver)를 구비한다. 여기서, 터보 인터리버는 미리 결정되는 인터리빙 크기(interleaved size; interleaver size) 만큼의 인터리빙 주소(interleaved address)를 생성한다. 이를 통해, 각각의 터보 인코더 및 터보 디코더는 인터리빙 주소에 따라 데이터를 인코딩 및 디코딩한다. 그리고 터보 디코더는 도 1에 도시된 바와 같이 다수개의 코드 블록(code block)들로 이루어지는 전송 시간 간격(Transmission Time Interval; TTI) 단위로 동작한다.
그런데, 상기와 같은 터보 디코더에서, 터보 인터리버는 도 1에 도시된 바와 같이 매 코드 블록에서 인터리빙 주소를 생성해야 한다. 이로 인하여, 터보 디코더에서 데이터를 디코딩하는데 시간 지연이 발생하는 문제점이 있다. 이에 따라, 터보 디코더에서 데이터를 디코딩하는데 소요되는 시간을 절감하기 위한 방안이 요구된다.
상기 과제를 해결하기 위하여 본 발명은 터보 인터리버의 인터리빙 주소 결정 방법을 제공한다. 이러한 본 발명에 따른 인터리빙 주소 결정 방법은, 일정 인터리빙 크기의 데이터 수신 시, 상기 수신된 인터리빙 크기와 미리 저장된 인터리빙 크기를 비교하는 과정과, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 동일하면, 미리 저장된 인터리빙 주소에 따라 상기 수신되는 데이터를 디코딩하는 과정과, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 상이하면, 상기 수신된 인터리빙 크기로 인터리빙 주소를 생성하여 상기 수신되는 데이터를 디코딩하는 과정을 포함하는 것을 특징으로 한다.
그리고 본 발명에 따른 인터리빙 주소 결정 방법에 있어서, 상기 인터리빙 주소를 생성하여 디코딩하는 과정은, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 상이하면, 상기 수신된 인터리빙 크기로 인터리빙 파라미터를 산출하는 과정과, 상기 산출된 인터리빙 파라미터가 미리 저장된 인터리빙 파라미터와 동일하면, 미리 저장된 인터리빙 시퀀스로 인터리빙 주소를 생성하여 상기 저장된 인터리빙 주소를 갱신하는 과정과, 상기 갱신된 인터리빙 주소에 따라 상기 수신되는 데이터를 디코딩하는 과정을 포함하는 것을 특징으로 한다. 이 때 본 발명에 따른 인터리빙 주소 결정 방법에 있어서, 상기 인터리빙 주소를 생성하여 디코딩하는 과정은, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 상이하면, 상기 수신된 인터리빙 크기로 상기 저장된 인터리빙 크기를 갱신하는 과정을 더 포함한다.
또한 본 발명에 따른 인터리빙 주소 결정 방법에 있어서, 상기 인터리빙 파라미터는 상기 수신되는 데이터로 형성하기 위한 직사각 행렬의 행값, 열값, 소수 및 원시근을 포함한다. 이 때 본 발명에 따른 인터리빙 주소 결정 방법에 있어서, 상기 인터리빙 파라미터 산출 과정은, 상기 수신되는 인터리빙 크기와 행값으로 소수 인덱스를 예측하는 과정과, 상기 예측된 소수 인덱스에 대응하는 소수로부터 탐색을 수행하여 미리 설정된 조건을 만족하는 최소값을 검출하는 과정을 포함한다.
한편, 상기 과제를 해결하기 위하여 본 발명은 터보 인터리버의 인터리빙 주소 결정 장치를 제공한다. 이러한 본 발명에 따른 인터리빙 주소 결정 장치는, 일정 인터리빙 크기의 데이터 수신 시, 상기 수신된 인터리빙 크기와 미리 저장된 인터리빙 크기를 비교하는 크기 비교부와, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 동일하면, 상기 수신되는 데이터를 디코딩하는데 이용하도록 미리 저장된 인터리빙 주소를 출력하고, 그렇지 않으면, 상기 수신된 인터리빙 크기로 생성되는 인터리빙 주소를 출력하는 주소 결정부를 포함하는 것을 특징으로 한다.
그리고 본 발명에 따른 인터리빙 주소 결정 장치는, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 상이하면, 상기 수신된 인터리빙 크기로 인터리빙 파라미터를 산출하는 파라미터 초기화부와, 상기 산출된 인터리빙 파라미터를 미리 저장된 인터리빙 파라미터와 비교하는 파라미터 비교부와, 상기 산출된 인터리빙 파라미터와 상기 저장된 인터리빙 파라미터가 동일하면, 미리 저장된 인터리빙 시퀀스로 인터리빙 주소를 생성하여 상기 저장된 인터리빙 주소를 갱신하는 주소 생성부를 더 포함한다. 여기서, 본 발명에 따른 인터리빙 주소 결정 장치에 있어서, 상기 주소 결정부는, 상기 수신되는 데이터를 디코딩하는데 이용하도록 상기 갱신된 인터리빙 주소를 출력한다. 이 때 본 발명에 따른 인터리빙 주소 결정 장치에 있어서, 상기 크기 비교부는, 상기 수신된 인터리빙 크기와 상기 저장된 인터리빙 크기가 상이하면, 상기 수신된 인터리빙 크기로 상기 저장된 인터리빙 크기를 갱신한다.
또한 본 발명에 따른 인터리빙 주소 결정 장치에 있어서, 상기 인터리빙 파라미터는 상기 수신되는 데이터로 형성하기 위한 직사각 행렬의 행값, 열값, 소수 및 원시근을 포함한다. 이 때 본 발명에 따른 인터리빙 주소 결정 장치에 있어서, 상기 파라미터 초기화부는, 상기 수신되는 인터리빙 크기와 행값으로 소수 인덱스를 예측하고, 상기 예측된 소수 인덱스에 대응하는 소수로부터 탐색을 수행하여 미리 설정된 조건을 만족하는 최소값을 검출한다.
따라서, 본 발명에 따른 터보 인터리버의 인터리빙 주소 결정 장치 및 방법 은, 터보 인터리버가 인터리빙 주소를 생성하는데 소요되는 시간을 절감할 수 있다. 즉 터보 인터리버가 매 코드 블록에서 인터리빙 주소를 생성하지 않더라도, 터보 디코더에서 데이터를 디코딩할 수 있다. 이로 인하여, 터보 디코더에서 데이터를 디코딩하는데 소요되는 시간을 절감할 수 있다. 그리고 터보 디코더에서 데이터를 디코딩하는 성능을 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 이 때 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 그리고 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
도 2는 본 발명의 실시예에 따른 디지털 통신 시스템의 구성을 도시하는 블록도이다. 이 때 본 실시예에서 디지털 통신 시스템은 WCDMA, HSDPA 등의 통신 규격에 따라 구성될 수 있다.
도 2를 참조하면, 본 실시예의 디지털 통신 시스템은 송신기(transmitter; 110)와 수신기(receiver; 120)를 포함한다. 송신기(110)는 데이터에 인코딩을 수행하여 전송 채널을 통해 전송한다. 그리고 수신기(120)는 전송 채널을 통해 데이터를 수신하여 디코딩을 수행한다. 이를 통해, 디지털 통신 시스템은 전송 채널에서 발생되는 잡음을 효과적으로 제거할 수 있다. 이를 위해, 송신기(110)는 터보 인코더를 구비하며, 수신기(120)는 터보 디코더를 구비한다.
도 3은 본 발명의 실시예에 따른 터보 디코더의 구성을 도시하는 블록도이 다. 본 실시예에서 터보 디코더가 맵 알고리즘(MAP algorithm; Maximum A Posterior algorithm)을 이용하는 예를 가정하여 설명한다.
도 3을 참조하면, 본 실시예에서 수신기(120)의 터보 디코더는 맵 디코더(MAP decoder; 210; 211, 213), 터보 인터리버(220) 및 터보 디인터리버(turbo deinterleaver; 230)를 포함한다. 맵 디코더(210; 211, 213)는 수신되는 데이터를 실질적으로 디코딩하는 기능을 수행한다. 이 때 제 1 맵 디코더(211)는 일정 정렬 순서로 수신되는 데이터, 예컨대 시스티매틱(Systematic) 성분, 패리티(Parity) 성분에 디코딩을 수행한다. 터보 인터리버(220)는 수신되는 데이터를 위한 인터리빙 주소를 결정한다. 그리고 터보 인터리버(220)는 제 1 맵 디코더(211)를 통해 디코딩된 데이터에서 인터리빙 주소에 따라 인터리빙을 수행하여, 정렬 순서를 변경한다. 또한 제 2 맵 디코더(213)는 터보 인터리버(220)를 통해 인터리빙된 데이터에 디코딩을 수행한다. 터보 디인터리버(230)는 제 2 맵 디코더(213)를 통해 디코딩된 데이터에서 인터리빙 주소에 따라 디인터리빙(deinterleaving)을 수행하여, 정렬 순서를 변경되기 이전으로 복구한다.
이러한 터보 디코더는 전송 시간 간격 단위로 동작한다. 이 때 다수개의 전송 시간 간격들이 연속적으로 이루어진다. 그리고 각각의 전송 시간 간격은 다수개의 코드 블록들로 이루어진다. 이 때 터보 인터리버(220)는 본 발명의 실시예에 따라 선택적으로 특정 코드 블록에서 인터리빙 주소를 결정한다. 즉 두 개의 전송 시간 간격들 사이에서 또는 두 개의 코드 블록들 사이에서 인터리빙 주소 변경 시, 터보 인터리버(220)는 인터리빙 주소를 결정한다.
도 4는 본 발명의 실시예에 따른 터보 인터리버의 인터리빙 주소 결정 장치를 도시하는 블록도이다.
도 4를 참조하면, 본 실시예에서 터보 인터리버(220)의 인터리빙 주소 결정 장치는 크기 메모리(310), 크기 비교부(320), 파라미터 초기화부(330), 파라미터 메모리(340), 파라미터 비교부(350), 시퀀스 생성부(360), 주소 생성부(370), 주소 메모리(380) 및 주소 결정부(390)를 포함한다.
크기 메모리(310)는 수신되는 데이터의 인터리빙 크기(K)를 저장한다. 이 때 인터리빙 크기는 코드 블록의 길이(length)로 결정될 수 있다. 즉 인터리빙 크기는 터보 디코더에서 수신되는 데이터 중 한번에 디코딩이 가능한 코드의 양(number of bits input)을 나타낸다.
크기 비교부(320)는 수신되는 데이터의 인터리빙 크기, 즉 현재의 인터리빙 크기를 파악한다. 그리고 크기 비교부(320)는 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기를 비교한다. 이 때 크기 비교부(320)는 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 동일한지의 여부를 판단한다. 또한 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 상이하면, 크기 비교부(320)는 현재의 인터리빙 크기로 크기 메모리(310)의 인터리빙 크기를 갱신한다.
파라미터 초기화부(330)는 수신되는 데이터의 인터리빙 크기로 인터리빙 파라미터(interleaving parameter)를 산출한다. 이 때 크기 비교부(320)에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 상이한 것으로 판단되면, 파라미터 초기화부(330)는 수신되는 데이터로 형성될 직사각 행렬(rectangular matrix; original matrix)을 위한 인터리빙 파라미터를 산출한다. 여기서, 인터리빙 파라미터는 직사각 행렬의 행값(number of rows; R), 열값(number of columns; C), 소수(prime number; p) 및 원시근(primitive root; v) 등을 포함한다.
파라미터 메모리(340)는 인터리빙 파라미터 중 적어도 일부를 저장한다. 이 때 파라미터 메모리(340)는 인터리빙 파라미터에서 행값 및 열값을 선택하여 저장할 수 있다.
파라미터 비교부(350)는 파라미터 초기화부(330)에서 산출되는 인터리빙 파라미터, 즉 현재의 인터리빙 파라미터를 파악한다. 그리고 파라미터 비교부(350)는 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터를 비교한다. 이 때 파라미터 비교부(350)는 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 동일한지의 여부를 판단한다. 또한 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 상이하면, 파라미터 비교부(350)는 현재의 인터리빙 파라미터로 파라미터 메모리(340)의 인터리빙 파라미터를 갱신한다.
시퀀스 생성부(360)는 현재의 인터리빙 파라미터로 인터리빙 시퀀스(interleaving sequence)를 생성한다. 이 때 파라미터 비교부(350)에서 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 상이한 것으로 판단되면, 시퀀스 생성부(360)는 현재의 인터리빙 파라미터로 직사각 행렬에서 인터리빙 시퀀스를 생성한다. 여기서, 인터리빙 시퀀스는 베이스 시퀀스(base sequence; sj sequence), 최소 시퀀스(minimum prime sequence ; qi sequence) 및 교환 시퀀스(permuted prime sequence; ri sequence) 등을 포함한다. 그리고 시퀀스 생성부(360)는 인터리빙 시퀀스를 저장한다. 여기서, 도시되지는 않았으나, 시퀀스 생성부(360)는 인터리빙 시퀀스를 저장하기 위한 시퀀스 메모리를 구비할 수 있다. 또는 인터리버 주소 결정 장치가 시퀀스 생성부(360)와 별도의 시퀀스 메모리를 더 구비할 수 있다.
주소 생성부(370)는 직사각 행렬에서 인터리빙 시퀀스에 따라 인터리빙 주소를 생성한다. 이 때 주소 생성부(370)는 인터리빙 시퀀스에 따라 직사각 행렬에 행 내 교환(intra-row permutation) 또는 행 간 교환(inter-row permutation) 중 적어도 어느 하나를 수행하고, 그 결과에서 인터리빙 주소를 파악한다. 여기서, 주소 생성부(370)는 프루닝(pruning)을 수행하여 인터리빙 주소를 재파악할 수 있다. 즉 주소 생성부(370)는 주소 생성부(370)는 인터리빙 주소와 인터리빙 크기를 비교하여 프루닝을 수행할지의 여부를 판단할 수 있다. 여기서, 인터리빙 주소가 인터리빙 크기를 초과하면, 주소 생성부(370)는 프루닝을 수행할 수 있다.
주소 메모리(380)는 수신되는 데이터의 인터리빙 주소를 저장한다.
주소 결정부(390)는 수신되는 데이터의 인터리빙 주소, 즉 현재의 인터리빙 주소를 결정한다. 이 때 주소 결정부(390)는 주소 생성부(370) 또는 주소 메모리(380) 중 어느 하나에서 현재의 인터리빙 주소를 결정한다. 즉 크기 비교부(320)에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 상이한 것으로 판단되면, 주소 결정부(390)는 주소 생성부(370)에서 현재의 인터리빙 주소를 결정한다. 또는 크기 비교부(320)에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 동일한 것으로 판단되면, 주소 결정부(390)는 주소 메모리(380)에서 현재의 인터리빙 주소를 결정한다. 그리고 주소 결정부(390)는 현재의 인터리빙 주소로 주소 메모리(380)의 인터리빙 주소를 갱신한다.
도 5는 본 발명의 실시예에 따른 터보 인터리버의 인터리빙 주소 결정 절차를 도시하는 순서도이다.
도 5를 참조하면, 본 실시예의 인터리빙 주소 결정 절차는, 터보 디코더가 411단계에서 데이터 수신을 감지하는 것으로부터 출발한다. 이 때 터보 디코더 전단의 버퍼(도시되지 않음)에서 미리 설정된 양의 데이터가 버퍼링되면, 터보 디코더가 데이터 수신을 감지할 수 있다. 그리고 터보 디코더의 터보 인터리버(220)가 413단계에서 현재의 인터리빙 크기를 확인한다. 또한 터보 인터리버(220)의 크기 비교부(320)가 415단계에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기를 비교한다. 이 때 크기 비교부(320)는 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 동일한지의 여부를 판단한다.
다음으로, 415단계에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 상이한 것으로 판단되면, 터보 인터리버(220)의 파라미터 초기화부(330)가 417단계에서 현재의 인터리빙 크기로 인터리빙 파라미터를 산출하여 초기화한다. 아울러, 크기 비교부(320)가 현재의 인터리빙 크기로 크기 메모리(310)의 인터리빙 크기를 갱신한다. 이 때 파라미터 초기화부(330)는 수신되는 데이터로 형성될 직사각 행렬을 위한 현재의 인터리빙 파라미터를 산출한다. 여기서, 인터리빙 파라미터는 직사각 행렬의 행값, 열값, 소수 및 원시근 등을 포함한다.
이와 같이 파라미터 초기화부(330)가 현재의 인터리빙 파라미터를 산출하는 절차를 보다 상세하게 설명하면 다음과 같다. 도 6은 도 5에서 인터리빙 파라미터 초기화 절차를 도시하는 순서도이다. 그리고 도 7은 도 6에서 소수 탐색 절차를 설명하기 위한 그래프들이다.
도 6을 참조하면, 파라미터 초기화부(330)는 511단계에서 현재의 인터리빙 크기로 직사각 행렬의 행값을 검출한다. 이 때 파라미터 초기화부(330)는 하기 <수학식 1>과 같이 미리 설정된 조건에 따라 현재의 인터리빙 크기에 대응하는 행값을 검출한다. 여기서, 파라미터 초기화부(330)는 직사각 행렬에서 위로부터 아래로 0 내지 R-1의 행 인덱스(index of row number; i)를 결정할 수 있다.
Figure 112009048910599-pat00001
그리고 파라미터 초기화부(330)는 513단계에서 현재의 인터리빙 크기 및 행값으로 소수를 탐색한다. 이 때 인터리빙 크기와 소수 인덱스는 도 7에서 마름모 형상의 선으로 도시된 바와 같은 연관 관계를 갖는다. 즉 도 7의 (a)에 도시된 바와 같이 행값 '5'에 대응하여, 인터리빙 크기는 '40 내지 159'에 해당할 수 있다. 여기서, 소수 인덱스는 '0 내지 8'에 해당할 수 있다. 그리고 도 7의 (b)에 도시된 바와 같이 행값 '10'에 대응하여, 인터리빙 크기는 '160 내지 200'에 해당할 수 있 다. 여기서, 소수 인덱스는 '3 또는 4'에 해당할 수 있다. 또한 도 7의 (c)에 도시된 바와 같이 행값 '20'에 대응하여, 인터리빙 크기는 '201 내지 5114'에 해당할 수 있다. 여기서, 소수 인덱스는 '1 내지 51'에 해당할 수 있다.
이 때 파라미터 초기화부(330)는 하기 <표 1>과 같이 미리 설정된 그룹 테이블에서 행값에 대응하는 그룹을 결정한다. 즉 파라미터 초기화부(330)는 현재의 인터리빙 크기가 속하는 크기 범위(x1, x2) 및 소수 인덱스 범위(y1, y2)를 파악한다. 그리고 파라미터 초기화부(330)는 하기 <수학식 2>와 같이 현재의 인터리빙 크기로 검출하고자 하는 소수에 대응하는 것으로 예측되는 소수 인덱스(p index; y)를 산출한다. 이를 통해, 파라미터 초기화부(330)는 도 7에서 점선으로 도시된 바와 같이 행값에 대응하는 크기 범위 및 소수 인덱스 범위 내 직선을 산출할 수 있다. 아울러, 파라미터 초기화부(330)는 도 7에서 실선으로 도시된 바와 같이 내림을 통해 소수 인덱스를 산출할 수 있다.
Figure 112009048910599-pat00002
Figure 112009048910599-pat00003
또한 파라미터 초기화부(330)는 하기 <수학식 3>과 같이 미리 설정된 조건에 부합하는 소수를 검출한다. 즉 파라미터 초기화부(330)는 소수 인덱스에 대응하는 소수로부터 탐색을 수행한다. 다만, 현재의 인터리빙 크기가 '481≤K≤530'을 만족하면, 파라미터 초기화부(330)는, 행값에 대응하는 그룹을 결정하거나 소수 인덱스를 산출할 필요 없이, 하기 <수학식 3>과 같이 소수 '53'을 검출할 수 있다.
Figure 112009048910599-pat00004
Figure 112009048910599-pat00005
예를 들면, 현재의 인터리빙 크기가 '156'이면, 파라미터 초기화부(330)는 소수 인덱스 '7'을 산출한다. 그리고 파라미터 초기화부(330)는 소수 인덱스 '7'에 대응하는 소수 '31'로부터 탐색을 수행한다. 즉 파라미터 초기화부(330)는 소수 인덱스 '7'로부터 소수 인덱스를 1 만큼 증가시켜, 상기 <수학식 3>과 같이 미리 설정된 조건에 부합하는 최소의 소수를 검출한다.
게다가, 파라미터 초기화부(330)는 515단계에서 현재의 인터리빙 크기, 행값 및 소수로 직사각 행렬의 열값을 산출한다. 이 때 파라미터 초기화부(330)는 하기 <수학식 4>와 같이 미리 설정된 조건에 따라 소수에서 열값을 산출한다. 여기서, 파라미터 초기화부(330)는 직사각 행렬에서 좌로부터 우로 0 내지 C-1의 열 인덱스(index of column number; j)를 결정할 수 있다.
Figure 112009048910599-pat00006
Figure 112009048910599-pat00007
Figure 112009048910599-pat00008
더욱이, 파라미터 초기화부(330)는 517단계에서 소수로 원시근을 검출한 다음, 도 5로 리턴한다. 이 때 파라미터 초기화부(330)는 하기 <표 2>와 같이 미리 설정된 룩업 테이블(look-up table)에서 소수에 대응하는 원시근을 검출한다.
y p v y p v y p v y p v y p v
0 7 3 11 47 5 22 101 2 33 157 5 44 223 3
1 11 2 12 53 2 23 103 5 34 163 2 45 227 2
2 13 2 13 59 2 24 107 2 35 167 5 46 229 6
3 17 3 14 61 2 25 109 6 36 173 2 47 233 3
4 19 2 15 67 2 26 113 3 37 179 2 48 237 7
5 23 5 16 71 7 27 127 3 38 181 2 49 241 7
6 29 2 17 73 5 28 131 2 39 191 19 50 251 6
7 31 3 18 79 3 29 137 3 40 193 5 51 257 3
8 37 2 19 83 2 30 139 2 41 197 2
9 41 6 20 89 3 31 149 2 42 199 3
10 43 3 21 97 5 32 151 6 43 211 2
예를 들면, 현재의 인터리빙 크기가 '40'이면, 파라미터 초기화부(330)는 현재의 인터리빙 크기 '40'으로 행값 '5'를 검출한다. 그리고 파라미터 초기화부(330)는 현재의 인터리빙 크기 '40' 및 행값 '5'로 탐색하여 소수 '7'을 검출한다. 또한 행값 '5' 및 소수 '7'의 곱이 인터리빙 크기 '40' 보다 작으므로, 파라미터 초기화부(330)는 열값 '8'을 산출한다. 게다가, 파라미터 초기화부(330)는 소수 '7'에 대응하는 원시근 '3'을 검출한다. 이를 통해, 파라미터 초기화부(330)는 하기 <수학식 5>와 같은 직사각 행렬을 위한 인터리빙 파라미터를 산출할 수 있다.
Figure 112009048910599-pat00009
다음으로, 터보 인터리버(220)의 파라미터 비교부(350)가 419단계에서 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터를 비교한다. 이 때 파라미터 비교부(350)는 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 동일한지의 여부를 판단한다.
이어서, 419단계에서 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 상이한 것으로 판단되면, 터보 인터리버(220)의 시퀀스 생성부(360)는 421단계에서 현재의 인터리빙 파라미터로 인터리빙 시퀀스를 생성한다. 아울러, 파라미터 비교부(350)가 현재의 인터리빙 파라미터로 파라미터 메모리(340)의 인터리빙 파라미터를 갱신한다. 이 때 시퀀스 생성부(360)는 현재의 인터리빙 파라미터로 직사각 행렬에서 인터리빙 시퀀스를 생성한다. 여기서, 인터리빙 시퀀스는 베이스 시퀀스, 최소 시퀀스 및 교환 시퀀스 등을 포함한다.
이와 같이 시퀀스 생성부(360)가 인터리빙 시퀀스를 생성하는 절차를 보다 상세하게 설명하면 다음과 같다. 도 8은 도 5에서 인터리빙 시퀀스 생성 절차를 도시하는 순서도이다.
도 8을 참조하면, 시퀀스 생성부(360)는 611단계에서 행 내 교환을 위한 베 이스 시퀀스를 산출한다. 이 때 시퀀스 생성부(360)는 하기 <수학식 6>과 같이 현재의 인터리빙 파라미터로 베이스 시퀀스를 산출할 수 있다. 그리고 시퀀스 생성부(360)는 613단계에서 최소 시퀀스를 산출한다. 즉 시퀀스 생성부(360)는 각각의 행을 위한 최소 소수(minimum prime integer)로 최소 시퀀스를 산출한다. 이 때 시퀀스 생성부(360)는 하기 <수학식 7>과 같이 현재의 인터리빙 파라미터 중 소수를 이용하여 최소 시퀀스를 산출할 수 있다. 또한 시퀀스 생성부(360)는 615단계에서 교환 시퀀스를 산출한 다음, 도 5로 리턴한다. 이 때 시퀀스 생성부(360)는 하기 <수학식 8>과 같이 최소 시퀀스로 교환 시퀀스를 산출한다. 즉 시퀀스 생성부(360)는 각각의 행을 위한 교환 소수(permuted prime integer)로 교환 시퀀스를 산출할 수 있다.
Figure 112009048910599-pat00010
Figure 112009048910599-pat00011
여기서, g.c.d는 최대 공약수(greatest common divisor)를 나타낸다.
Figure 112009048910599-pat00012
여기서, T(i)는 행 간 교환을 위한 교환 패턴(inter-row permutation pattern)을 나타낸다. 이러한 교환 패턴은 하기 <표 3>과 같이 현재의 인터리빙 크기에 따라 결정될 수 있다. 이 때 교환 패턴은 행값에 상응하는 수로 이루어진다.
인터리빙 크기 행값 교환 패턴들
<T(0), T(1),...,T(R-1)>
40≤K≤159 5 <4, 3, 2, 1, 0>
160≤K≤200 또는
481≤K≤530
10 <9, 8, 7, 6, 5, 4, 3, 2, 1, 0>
2281≤K≤2480 또는
3161≤K≤3210
20 <19, 9, 14, 4, 0, 2, 5, 7, 12, 18, 16, 13, 17, 15, 3, 1, 6, 11, 8, 10>
K=any other value 20 <19, 9, 14, 4, 0, 2, 5, 7, 12, 18, 10, 8, 13, 17, 3, 1, 16, 6, 15, 11>
예를 들면, 현재의 인터리빙 크기가 '40'이고, 행값이 '5'이고, 소수가 '7'이고, 열값이 '8'이며, 원시근이 '3'이면, 시퀀스 생성부(360)는 베이스 시퀀스 '3 2 6 4 5'를 산출한다. 그리고 시퀀스 생성부(360)는 최소 시퀀스 '1 7 11 13 17'을 산출한다. 또한 시퀀스 생성부(360)는 교환 패턴들 '<4, 3, 2, 1, 0>'을 이용하여 교환 시퀀스 '17 13 11 7 1'을 산출한다.
계속해서, 터보 인터리버(220)의 주소 생성부(370)가 423단계에서 직사각 행렬에서 인터리빙 시퀀스에 따라 인터리빙 주소를 생성한다. 이 때 주소 생성부(370)는 인터리빙 시퀀스에 따라 직사각 행렬에 행 내 교환 또는 행 간 교환 중 적어도 어느 하나를 수행하고, 그 결과에서 인터리빙 주소를 파악한다. 여기서, 주소 생성부(370)는 프루닝을 수행하여 인터리빙 주소를 재파악할 수 있다. 즉 주소 생성부(370)는 인터리빙 주소와 인터리빙 크기를 비교하여 프루닝을 수행할지의 여부를 판단할 수 있다. 여기서, 인터리빙 주소가 인터리빙 크기를 초과하면, 주소 생성부(370)는 프루닝을 수행할 수 있다.
한편, 419단계에서 현재의 인터리빙 파라미터와 파라미터 메모리(340)의 인터리빙 파라미터가 동일한 것으로 판단되면, 터보 인터리버(220)의 주소 생성부(370)가 423단계에서 직사각 행렬에서 인터리빙 시퀀스에 따라 인터리빙 주소를 생성한다. 즉 시퀀스 생성부(360)가 현재의 인터리빙 파라미터로 인터리빙 시퀀스를 생성하지 않는다. 다만, 시퀀스 생성부(360)는 파라미터 메모리(340)의 인터리빙 파라미터에 대응하는 인터리빙 시퀀스를 전달한다. 이를 통해, 주소 생성부(370)가 인터리빙 주소를 생성한다.
이와 같이 주소 생성부(370)가 인터리빙 주소를 생성하는 절차를 보다 상세하게 설명하면 다음과 같다. 도 9는 도 5에서 인터리빙 주소 생성 절차를 도시하는 순서도이다.
도 9를 참조하면, 주소 생성부(370)는 711단계에서 직사각 행렬에 행 내 교환을 수행하여 행 내 행렬(intra-row matrix; U)을 생성한다. 이 때 주소 생성부(370)는 하기 <수학식 9>와 같이 베이스 시퀀스, 교환 시퀀스 및 인터리빙 파라미터, 특히 소수를 이용하여 행 내 교환을 수행한다. 그리고 주소 생성부(370)는 713단계에서 행 내 행렬에 행 간 교환을 수행하여 행 간 행렬(inter-row matrix)을 생성한다. 이 때 주소 생성부(370)는 교환 패턴에 따라 행 간 행렬을 수행할 수 있다. 또한 주소 생성부(370)는 715단계에서 행 간 행렬로부터 인터리빙 주소를 파악한다. 여기서, 주소 생성부(370)는 행 간 행렬에서 각각의 열을 인터리빙 주소로 파악할 수 있다.
Figure 112009048910599-pat00013
예를 들면, 현재의 인터리빙 크기가 '40'이고, 행값이 '5'이고, 소수가 '7'이고, 열값이 '8'이며, 원시근이 '3'이면, 주소 생성부(370)는 하기 <수학식 10>과 같은 행 내 행렬을 산출할 수 있다. 그리고 주소 생성부(370)는 하기 <수학식 11>과 같이 행 간 행렬을 산출할 수 있다. 또한 주소 생성부(370)는 행 간 행렬에서 인터리빙 주소를 파악할 수 있다.
Figure 112009048910599-pat00014
Figure 112009048910599-pat00015
여기서, 주소 생성부(370)는 인터리빙 주소, '39 25 17 9 1', '35 27 21 11 1', '34 26 20 10 4', '38 30 22 14 6', '36 28 18 12 2', '37 29 19 13 3', '32 24 16 8 0', '33 31 23 15 7'을 파악할 수 있다.
이 후 주소 생성부(370)는 717단계에서 인터리빙 주소와 인터리빙 크기를 비교한다. 이 때 주소 생성부(370)는 인터리빙 주소가 인터리빙 크기를 초과하는지의 여부를 판단한다. 여기서, 717단계에서 인터리빙 주소가 인터리빙 크기를 초과하지 않는 것으로 판단되면, 주소 생성부(370)는 711단계 내지 717단계를 반복하여 프루닝을 수행한다. 그리고 717단계에서 인터리빙 주소가 인터리빙 크기를 초과하는 것으로 판단되면, 주소 생성부(370)는 도 5로 리턴한다.
마지막으로, 터보 인터리버(220)의 주소 결정부(390)가 425단계에서 현재의 인터리빙 주소를 결정한다. 이 때 주소 결정부(390)는 주소 생성부(370)에서 현재의 인터리빙 주소를 결정한다. 그리고 주소 결정부(390)는 현재의 인터리빙 주소로 주소 메모리(380)이 인터리빙 주소를 갱신한다. 이 후 터보 디코더가 427단계에서 현재의 인터리빙 주소를 이용하여 수신되는 데이터의 디코딩을 수행한다.
한편, 415단계에서 현재의 인터리빙 크기와 크기 메모리(310)의 인터리빙 크기가 동일한 것으로 판단되면, 터보 인터리버(220)의 주소 결정부(390)가 425단계 에서 현재의 인터리빙 주소를 결정한다. 이 때 주소 결정부(390)는 주소 메모리(380)에서 현재의 인터리빙 주소를 결정한다. 즉 파라미터 초기화부(330), 파라미터 비교부(350), 시퀀스 생성부(360) 및 주소 생성부(370)가 별도로 동작하지 않는다. 이 후 터보 디코더가 427단계에서 현재의 인터리빙 주소를 이용하여 수신되는 데이터의 디코딩을 수행한다.
즉 터보 디코더에서 터보 인터리버(220)는 선택적으로 특정 코드 블록에서 인터리빙 주소를 결정한다. 다시 말해, 두 개의 전송 시간 간격들 사이에서 또는 두 개의 코드 블록들 사이에서 인터리빙 주소 변경 시, 터보 인터리버(220)는 인터리빙 주소를 결정한다. 이를 예들로서 보다 상세하게 설명하면 다음과 같다.
도 10은 본 발명의 실시예에 따른 디지털 통신 시스템에서 터보 디코딩하는 예들을 설명하기 위한 예시도들이다. 이 때 도 10의 (a)는 일반적인 터보 디코딩 예를 나타내며, 도 10의 (b) 및 (c)는 본 발명의 실시예에 따른 터보 디코딩 예들을 나타내고 있다. 여기서, N 번째 전송 시간 간격(TTI #N; 800)에서 터보 디코딩 예를 설명한다.
즉 일반적으로 각각의 코드 블록(CB; CB #0, CB #1, ..., CB #M-2, CB #M-1; 810)은, 도 10의 (a)에 도시된 바와 같이 인터리빙 주소를 생성하기 위한 주소 생성 구간(820)과 인터리빙 주소로 디코딩을 수행하기 위한 다수개의 반복 구간(iterative; 830)들을 포함한다. 그러나, 본 실시예에서 각각의 코드 블록(810)은, 도 10의 (b) 또는 (c)에 도시된 바와 같이 주소 생성 구간(820) 및 다수개의 반복 구간(830)들로 이루어질 수 있으며, 주소 생성 구간(820) 없이 다수개의 반복 구간(830)들로 이루어질 수도 있다. 이는 N 번째 전송 시간 간격(800)에서, 터보 인터리버(220)가 매 코드 블록(810)에서 인터리빙 주소를 생성하지 않더라도, 인터리빙 주소를 결정할 수 있기 때문이다. 다시 말해, N 번째 전송 시간 간격(800)에서 인터리빙 크기가 일정하게 유지되면, 터보 인터리버(220)가 첫 번째 코드 블록(810)에서 인터리빙 주소를 생성한 다음, 나머지 코드 블록(810)들에서 인터리빙 주소를 생성하지 않을 수 있다.
이 때 적어도 하나의 코드 블록(810)에서 주소 생성 구간(820)이 제거됨에 따라, N 번째 전송 시간 간격(800)에 잔여 시간이 발생한다. 여기서, 잔여 시간은, 도 10의 (b)에 도시된 바와 같이 N 번째 전송 시간 간격(800)의 후단부에서 대기 구간(840)으로 이용될 수 있다. 이러한 대기 구간(840)에서, 터보 디코더는 터보 디코딩을 일시적으로 중단한다. 이를 통해, 터보 디코더는 대기 구간(840)에 대응하는 시간 동안 소비 전력을 절감시킨다. 또는 잔여 시간은, 도 10의 (c)에 도시된 바와 같이 각각의 코드 블록에서 추가 반복 구간(850)으로 이용될 수 있다. 이를 통해, 터보 디코더는 반복 구간(830)과 더불어 추가 반복 구간(850)에서 디코딩을 수행함으로써, 디코딩 성능을 향상시킬 수 있다.
도 11은 본 발명의 실시예에 따른 디지털 통신 시스템에서 터보 디코딩하는 다른 예들을 설명하기 위한 예시도들이다. 이 때 도 11의 (a)는 일반적인 터보 디코딩 예를 나타내며, 도 11의 (b) 및 (c)는 본 발명의 실시예에 따른 터보 디코딩 예들을 나타내고 있다. 여기서, N 번째 전송 시간 간격(TTI #N; 901)과 N+1 번째 전송 시간 간격(TTI #N+1; 903)에서 터보 디코딩 예를 설명한다.
즉 일반적으로 각각의 코드 블록(910)은, 도 11의 (a)에 도시된 바와 같이 주소 생성 구간(920)과 다수개의 반복 구간(도시되지 않음)들로 이루어지는 디코딩 구간(830)을 포함한다. 그러나, 본 실시예에서 각각의 코드 블록(910)은, 도 11의 (b) 또는 (c)에 도시된 바와 같이 주소 생성 구간(920) 및 디코딩 구간(930)으로 이루어질 수 있으며, 주소 생성 구간(920) 없이 디코딩 구간(930)으로 이루어질 수도 있다. 이는 N 번째 전송 시간 간격(901) 및 N+1 번째 전송 시간 간격(903)에서, 터보 인터리버(220)가 매 코드 블록(910)에서 인터리빙 주소를 생성하지 않더라도, 인터리빙 주소를 결정할 수 있기 때문이다.
이 때 N 번째 전송 시간 간격(901)과 N+1 번째 전송 시간 간격(903) 사이에 인터리빙 크기가 일정하게 유지되면, 터보 인터리버(220)는, 도 11의 (b)에 도시된 바와 같이 N+1 번째 전송 시간 간격(903)에서 인터리빙 주소를 생성하지 않을 수 있다. 또는 N 번째 전송 시간 간격(901)과 N+1 번째 전송 시간 간격(903) 사이에 인터리빙 파라미터가 일정하게 유지되면, 터보 인터리버(220)는, 도 11의 (c)에 도시된 바와 같이 N+1 번째 전송 시간 간격(903)의 첫 번째 코드 블록(910)에서 인터리빙 주소를 생성할 수 있다. 다만, N 번째 전송 시간 간격(901)과 비교하여, N+1 번째 전송 시간 간격(903)의 주소 생성 구간(920)이 비교적 축소된 사이즈로 이루어질 수 있다.
아울러, 적어도 하나의 코드 블록(910)에서 주소 생성 구간(920)의 적어도 일부가 제거됨에 따라, N 번째 전송 시간 간격(901) 및 N+1 번째 전송 시간 간격(903)에 잔여 시간이 발생한다. 여기서, 잔여 시간은, 도 11의 (b) 또는 (c)에 도시된 바와 같이 N 번째 전송 시간 간격(901) 및 N+1 번째 전송 시간 간격(903) 각각의 후단부에서 대기 구간(940)으로 이용될 수 있다. 이러한 대기 구간(940)에서, 터보 디코더는 터보 디코딩을 일시적으로 중단한다. 이를 통해, 터보 디코더는 대기 구간(940)에 대응하는 시간 동안 소비 전력을 절감시킨다.
본 발명에 따르면, 터보 인터리버가 인터리빙 주소를 생성하는데 소요되는 시간을 절감할 수 있다. 즉 터보 인터리버가 매 코드 블록에서 인터리빙 주소를 생성하지 않더라도, 터보 디코더에서 데이터를 디코딩할 수 있다. 이로 인하여, 터보 디코더에서 데이터를 디코딩하는데 소요되는 시간을 절감할 수 있다. 그리고 터보 디코더에서 데이터를 디코딩하는 성능을 향상시킬 수 있다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
도 1은 일반적인 디지털 통신 시스템에서 터보 디코딩하는 예를 설명하기 위한 예시도,
도 2는 본 발명의 실시예에 따른 디지털 통신 시스템의 구성을 도시하는 블록도,
도 3은 본 발명의 실시예에 따른 터보 디코더의 구성을 도시하는 블록도,
도 4는 본 발명의 실시예에 따른 터보 인터리버의 인터리빙 주소 결정 장치를 도시하는 블록도,
도 5는 본 발명의 실시예에 따른 터보 인터리버의 인터리빙 주소 결정 절차를 도시하는 순서도,
도 6은 도 5에서 인터리빙 파라미터 초기화 절차를 도시하는 순서도,
도 7은 도 6에서 소수 탐색 절차를 설명하기 위한 그래프들,
도 8은 도 5에서 인터리빙 시퀀스 생성 절차를 도시하는 순서도,
도 9는 도 5에서 인터리빙 주소 생성 절차를 도시하는 순서도,
도 10은 본 발명의 실시예에 따른 디지털 통신 시스템에서 터보 디코딩하는 예들을 설명하기 위한 예시도들, 그리고
도 11은 본 발명의 실시예에 따른 디지털 통신 시스템에서 터보 디코딩하는 다른 예들을 설명하기 위한 예시도들이다.

Claims (12)

  1. 터보 인터리버의 인터리빙 주소 결정 방법에 있어서,
    데이터를 수신하는 과정과,
    상기 수신된 데이터의 신규 인터리빙 크기와 미리 저장된 인터리빙 크기가 동일한지 여부를 결정하는 과정과,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 동일하면, 신규 인터리빙 주소의 계산 없이, 미리 저장된 인터리빙 주소에 따라 상기 수신된 데이터를 디코딩하는 과정과,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 상이하면,
    상기 신규 인터리빙 크기로 신규 인터리빙 파라미터를 계산하는 과정과,
    상기 신규 인터리빙 파라미터가 미리 저장된 인터리빙 파라미터와 동일한지 여부를 판단하는 과정과,
    상기 신규 인터리빙 파라미터가 상기 미리 저정된 인터리빙 파라미터와 동일한 경우, 상기 미리 저장된 인터리빙 시퀀스로 신규 인터리빙 주소를 계산하는 과정 및
    상기 신규 인터리빙 주소로 상기 수신된 데이터를 디코딩하는 과정을 더 포함하는 인터리빙 주소 결정 방법.
  2. 제 1 항에 있어서,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 동일하면, 상기 신규 인터리빙 주소로 상기 미리 저장된 인터리빙 주소를 갱신하는 과정을 더 포함하는 것을 특징으로 하는 인터리빙 주소 결정 방법.
  3. 제 1 항에 있어서,
    상기 신규 인터리빙 크기로 상기 미리 저장된 인터리빙 크기를 갱신하는 과정을 더 포함하는 것을 특징으로 하는 인터리빙 주소 결정 방법.
  4. 제 2 항에 있어서,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 상이하면, 상기 신규 인터리빙 파라미터로 신규 인터리빙 시퀀스를 생성하는 과정과,
    상기 신규 인터리빙 시퀀스로 다른 인터리빙 주소를 생성하는 과정을 더 포함하는 것을 특징으로 하는 인터리빙 주소 결정 방법.
  5. 제 2 항에 있어서,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 상이하면, 상기 신규 인터리빙 파라미터로 상기 미리 저장된 인터리빙 파라미터를 갱신하는 과정을 더 포함하는 것을 특징으로 하는 인터리빙 주소 결정 방법.
  6. 제 2 항에 있어서,
    상기 신규 인터리빙 파라미터 및 상기 미리 저장된 인터리빙 파라미터는 상기 수신된 데이터로 형성하기 위한 직사각 행렬의 행값, 열값, 소수 및 원시근을 포함하며,
    상기 신규 인터리빙 파라미터를 계산하는 과정은,
    상기 신규 인터리빙 크기와 상기 행값으로 소수 인덱스를 예측하는 과정과,
    상기 예측된 소수 인덱스에 대응하는 소수로부터 탐색을 수행하여 미리 설정된 조건을 만족하는 최소값을 검출하는 과정을 포함하는 것을 특징으로 하는 인터리빙 주소 결정 방법.
  7. 터보 인터리버의 인터리빙 주소 결정 장치에 있어서,
    인터리빙 크기를 저장하는 크기 메모리와,
    데이터를 수신하고, 상기 수신된 데이터의 신규 인터리빙 크기와 상기 크기 메모리에 미리 저장된 인터리빙 크기가 동일한지 여부를 판단하는 크기 비교부와,
    인터리빙 파라미터를 저장하는 파라미터 메모리와,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 상이하면, 상기 신규인터리빙 크기로 인터리빙 파라미터를 계산하는 파라미터 초기화부와,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 크기와 상이하면, 상기 신규 인터리빙 파라미터가 상기 파라미터 메모리에 미리 저장된 인터리빙 파라미터와 동일한지 여부를 판단하는 파라미터 비교부와,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 동일하면, 미리 저장된 인터리빙 시퀀스로 신규 인터리빙 주소를 계산하는 주소 생성부와,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 동일하면, 상기 주소 생성부에서 신규 인터리빙 주소의 계산 없이 상기 크기 저장부에 미리 저장된 인터리빙 주소에 따라 상기 수신된 데이터를 디코딩하고,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 상이하면, 상기 신규 인터리빙 주소에 따라 상기 수신된 데이터를 디코딩하는 주소 결정부를 포함하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
  8. 제 7 항에 있어서,
    상기 주소 생성부는,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 동일하면, 상기 주소 메모리에 미리 저장된 인터리빙 주소를 상기 신규 인터리빙 주소로 갱신하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
  9. 제 7 항에 있어서, 상기 크기 비교부는,
    상기 신규 인터리빙 크기와 상기 미리 저장된 인터리빙 크기가 상이하면, 상기 신규 인터리빙 크기로 상기 크기 메모리에 상기 미리 저장된 인터리빙 크기를 갱신하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
  10. 제 8 항에 있어서,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 상이하면, 상기 신규 인터리빙 파라미터로 신규 인터리빙 시퀀스를 생성하는 시퀀스 생성부를 더 포함하며,
    상기 주소 결정부는,
    상기 신규 인터리빙 시퀀스로 다른 인터리빙 주소를 생성하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
  11. 제 8 항에 있어서, 상기 파라미터 비교부는,
    상기 신규 인터리빙 파라미터가 상기 미리 저장된 인터리빙 파라미터와 상이하면, 상기 신규 인터리빙 파라미터로 상기 저장된 인터리빙 파라미터를 갱신하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
  12. 제 8 항에 있어서,
    상기 신규 인터리빙 파라미터 및 상기 미리 저장된 인터리빙 파라미터는 상기 수신된 데이터로 형성하기 위한 직사각 행렬의 행값, 열값, 소수 및 원시근을 포함하며,
    상기 파라미터 초기화부는,
    상기 신규 인터리빙 크기와 행값으로 소수 인덱스를 예측하고, 상기 예측된 소수 인덱스에 대응하는 소수로부터 탐색을 수행하여 미리 설정된 조건을 만족하는 최소값을 검출하는 것을 특징으로 하는 인터리빙 주소 결정 장치.
KR1020090073744A 2009-08-11 2009-08-11 터보 인터리버의 인터리빙 주소 결정 장치 및 방법 KR101614482B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090073744A KR101614482B1 (ko) 2009-08-11 2009-08-11 터보 인터리버의 인터리빙 주소 결정 장치 및 방법
US12/854,528 US8667341B2 (en) 2009-08-11 2010-08-11 Apparatus and method for determining interleaved address of turbo interleaver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090073744A KR101614482B1 (ko) 2009-08-11 2009-08-11 터보 인터리버의 인터리빙 주소 결정 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110016168A KR20110016168A (ko) 2011-02-17
KR101614482B1 true KR101614482B1 (ko) 2016-04-21

Family

ID=43589317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090073744A KR101614482B1 (ko) 2009-08-11 2009-08-11 터보 인터리버의 인터리빙 주소 결정 장치 및 방법

Country Status (2)

Country Link
US (1) US8667341B2 (ko)
KR (1) KR101614482B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438434B2 (en) * 2009-12-30 2013-05-07 Nxp B.V. N-way parallel turbo decoder architecture

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040220988A1 (en) 2003-05-01 2004-11-04 Barry Mark Patrick Parameter generation for interleavers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100393608B1 (ko) * 2000-09-29 2003-08-09 삼성전자주식회사 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법
CA2507620C (en) * 2002-12-16 2014-04-15 Telecom Italia S.P.A. Addresses generation for interleavers in turbo encoders and decoders
US7398446B2 (en) * 2003-05-29 2008-07-08 Lucent Technologies Inc. Low power operation of an address interleaver
US7552377B1 (en) * 2005-02-10 2009-06-23 Xilinx, Inc. Method of and circuit for interleaving data in a data coder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040220988A1 (en) 2003-05-01 2004-11-04 Barry Mark Patrick Parameter generation for interleavers

Also Published As

Publication number Publication date
US20110041042A1 (en) 2011-02-17
KR20110016168A (ko) 2011-02-17
US8667341B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
KR100963384B1 (ko) 랜덤-액세스 다방향 cdma2000 터보 코드 인터리버
KR100711326B1 (ko) 선형 합동 시퀀스들을 이용한 터보 코드 인터리버
JP3996514B2 (ja) ターボ復号器のためのバッファアーキテクチャ
KR100350459B1 (ko) 통신시스템의인터리빙/디인터리빙장치및방법
KR101459801B1 (ko) 비경쟁 인터리버들을 이용한 터보-인코딩
US6339834B1 (en) Interleaving with golden section increments
KR100955305B1 (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
RU2451392C2 (ru) Способ и устройство для кодирования и декодирования данных
EP0963049A2 (en) Interleaving with golden section increments
AU759580B2 (en) 2-dimensional interleaving apparatus and method
EP2621091B1 (en) Turbo code parallel interleaving with quadratic permutation polynomial (qpp) functions
JP2004531116A (ja) ターボデコーダ用インタリーバ
US20030221084A1 (en) Interleaver address generator and method of generating an interleaver address
EP1060564A1 (en) Interleaving/deinterleaving device and method for communication system
US7734989B2 (en) Multi-standard turbo interleaver using tables
Hui et al. Interleaved CRC for polar codes
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
KR101614482B1 (ko) 터보 인터리버의 인터리빙 주소 결정 장치 및 방법
EP1113581A2 (en) Method of efficient interleaving of variable-length packets
KR100370780B1 (ko) 해밍 부호를 연접한 터보 부호화/복호화 방법 그리고 그의 부호기/복호기
KR100853497B1 (ko) 터보 인터리빙 장치 및 그의 출력주소 발생 방법
KR101365372B1 (ko) 이동 통신 시스템에서의 고속 패킷데이타 채널의 인터리빙방법
KR20040061283A (ko) 터보 디코딩의 인터리버 주소 발생 방법
KR20030082699A (ko) 골든 시퀀스를 이용한 터보 내부 인터리빙 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee