KR20080093555A - 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치 - Google Patents

경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치 Download PDF

Info

Publication number
KR20080093555A
KR20080093555A KR1020070037413A KR20070037413A KR20080093555A KR 20080093555 A KR20080093555 A KR 20080093555A KR 1020070037413 A KR1020070037413 A KR 1020070037413A KR 20070037413 A KR20070037413 A KR 20070037413A KR 20080093555 A KR20080093555 A KR 20080093555A
Authority
KR
South Korea
Prior art keywords
sequence
interleaver
sub
block
parity
Prior art date
Application number
KR1020070037413A
Other languages
English (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 KR1020070037413A priority Critical patent/KR20080093555A/ko
Publication of KR20080093555A publication Critical patent/KR20080093555A/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
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/0013Rate matching, e.g. puncturing or repetition of code symbols
    • 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/0041Arrangements at the transmitter end

Landscapes

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

Abstract

경합 없는 인터리버/디인터리버를 이용한 신호 송수신 방법 및 장치가 개시된다. 즉, QPP 인터리버와 같은 경합 없는 인터리버를 서브 블록 인터리버로 이용하여 서브 블록 인터리빙을 수행하여 레이트 매칭을 수행하는 경우, 간단한 펑처링 또는 믹싱 과정을 통해 레이트 매칭을 수행하더라도 수신단에서의 병렬 디코딩시 수신 비트들이 각 프로세서별로 균일하게 분포하여 시스템 성능을 향상시킬 수 있다.
경합없는 인터리버, QPP 인터리버, 레이트 매칭, 병렬 디코딩

Description

경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신 방법 및 장치{Method And Apparatus For Transmitting and Receiving Signals Using Contention Free Interleaver Or Deinterleaver}
도 1은 일반적인 이동통신 시스템의 개략도.
도 2는 터보 인코더(Turbo Encoder)의 기본적인 구조를 도시한 도면.
도 3은 터보 디코더(Turbo Decoder)의 기본적인 구조를 도시한 도면.
도 4는 병렬 디코딩을 수행하는 터보 코드 디코더에 포함된 제 1 구성 디코더의 각각의 윈도우가 부대 정보(extrinsic information)를 계산하여 복수의 메모리 뱅크로 구성된 메모리에 병렬로 저장하는 것을 도시한 도면.
도 5는 병렬 디코딩을 수행하는 터보 코드 디코더에 포함된 제 2 구성 디코더의 각각의 윈도우가 메모리로부터 부대 정보를 판독하는 과정에서 발생하는 메모리 뱅크 경합 문제를 설명하기 위한 도면.
도 6은 본 발명의 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙/디인터리빙을 수행하여 신호를 송수신하는 방법을 설명하기 위한 순서도.
도 7은 본 발명의 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도.
도 8은 본 발명의 일 실시형태에 따른 수신단의 특징 구성을 개략적으로 도 시한 블록도.
도 9는 본 발명의 다른 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙을 수행한 시퀀스의 패리티 비트를 효율적으로 믹싱하는 방법을 설명하기 위한 도면.
도 10은 본 발명의 일 실시형태에 따라 도 9와 같이 믹싱된 시퀀스를 순환버퍼에 저장하여 순차적으로 송신하는 방법을 설명하기 위한 도면.
도 11 및 도 12는 HARQ 방식에 있어서 초기 전송 데이터와 재전송 데이터를 결합하는 두 가지 방식을 설명하기 위한 도면.
도 13은 본 발명의 다른 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙/디인터리빙을 수행하여 신호를 송수신하는 방법을 설명하기 위한 순서도.
도 14는 본 발명의 다른 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도.
도 15는 본 발명의 다른 일 실시형태에 따른 수신단의 특징 구성을 개략적으로 도시한 블록도.
도 16은 본 발명의 추가적인 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도.
본 발명은 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신 방법에 대한 것이다.
최근 통신 시스템들은 대용량의 다양한 멀티미디어 데이터를 위한 높은 처리율(high-throughput) 통신 시스템을 고려하고 있다. 따라서 이하의 설명에서는 통신 시스템에서 정보를 효과적으로 전송하기 위해 코딩율을 가변할 때, 수신된 데이터를 보다 효율적으로 전송할 수 있도록 레이트 매칭을 수행하기 위한 신호 송수신 방법을 제공한다.
도 1은 일반적인 이동통신 시스템의 개략도이다.
송신단(100)에서 전송할 소스 데이터(101)를 무선채널에서 손실이나 왜곡 없이 전송하기 위해 채널 인코딩 모듈(102)에 의한 인코딩 절차를 거친다. 채널 인코딩, 채널 디코딩에는 일반적으로 길쌈 코딩(Convolutional Coding), 터보 코딩(Turbo Coding), LDPC 코딩 등 여러 기술이 사용될 수 있다. 채널 인코딩 모듈(102)에 의한 채널 코딩 절차를 거친 데이터는 변조 모듈(103)에 의해 무선 채널(200)로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 즉, 변조(modulation)는 여러 비트들을 하나의 심볼로 매핑되는 절차를 의미한다.
이와 같이 변조 모듈(104)에 의해 변조된 데이터는 다중화 모듈(104)에 의한 다중화 과정 또는 다중 접속 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 도 1은 다중화 방법으로서 OFDM(Orthogonal Frequency Division Multiplexing)의 예를 도시하였으나 이에 한정될 필요는 없으며 SC-FDMA 등 임의의 다중 접속 방법이 이용될 수 있다.
다중화 모듈(104)을 거친 신호는 한 개 이상의 다중 안테나(105)에 전송되기 적합한 구조로 변경되어 무선채널(200)을 통해 수신부(300)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열잡음을 겪게 되어 데이터에 왜곡이 발생 할 수 있다.
수신부(300)에서는 왜곡된 데이터를 수신한 후 도 1에 도시된 바와 같이 송신부(100)에서 거친 일련의 절차를 역순으로 수행한다. 즉, 다중 안테나 전송을 위해 수행된 변경된 신호를 반대 연산을 통해 재변경한다. 또한, 다중화를 위해 송신부(100)에서 수행된 절차와 반대 절차를 거치고, 심볼로 매핑된 데이터를 복조 모듈(303)에 의해 비트열로 바꾸는 복조 작업을 수행하고, 채널 디코딩 모듈(304)에 의해 디코딩 절차를 거치며 왜곡된 데이터를 원래 전송된 데이터로 복구한다.
상술한 바와 같이 데이터를 전송하는 과정에서 발생하는 오류를 정정하기 위해 채널 코딩을 사용하게 된다. 이때 전송하고자 하는 정보 외의 추가적인 패리티 데이터가 발생하게 된다. 채널 코딩 코드의 에러정정 능력은 전송하고자 하는 정보 대비 패리티 데이터의 비율이 높아질수록 좋아진다. 즉, 전송하는 코드워드의 코딩율이 낮아질수록 에러 복구 성능이 좋아진다. 하지만, 코딩율이 낮아지면 한정된 자원을 이용하는 통신 시스템에서 전송하고자 하는 정보 대비 패리티 데이터의 양이 늘어나게 되어 전송효율이 낮아진다. 따라서 전송하고자 하는 통신 상황에 맞게 코딩율을 맞춰주는 레이트 매칭(rate matching) 작업이 필요하다.
한편, 최근 통신 시스템들은 높은 처리율을 얻기 위해 병렬처리를 고려하게 된다. 하지만 현재 주로 사용되는 레이트 매칭 방법들은 결정된 코딩율로 코드워 드(codeward)를 생성할 때, 병렬처리를 통한 복호화를 고려하지 않고 있다. 특히 오류정정을 위한 부분은 많은 연산량을 요구하는 부분 중의 하나로 코딩율에 따라 전송해야 할 시퀀스를 결정하는 레이트 매칭 부분과 밀접한 관련이 있다. 따라서 현재의 방법을 사용할 경우 병렬처리를 고려하지 않아, 전송된 데이터를 처리하는 과정에서 효율적으로 병렬처리를 할 수 없거나 성능이 저하되는 문제를 가지고 있다.
특히, 코딩율을 가변하는 방법으로 펑처링(puncturing) 기법을 사용하면서, 병렬처리에 대한 고려 없이, 데이터를 전송하는 경우, 수신측에서 데이터를 병렬처리 할 경우, 각 프로세스별로 처리해야 하는 데이터 중 펑처링된 부분이 균일하지 않게 되고, 이는 전체적인 시스템의 성능저하를 초래하게 된다.
상술한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은 송신단에서 레이트 매칭을 보다 간단하게 수행하고, 수신단에서 병렬 처리시 펑처링된 비트가 각 프로세서에 균일하게 분포되는 등 시스템 성능을 향상시킬 수 있는 신호 송수신 방법을 제공하는데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 일 양태에 따른 신호 송신 방법은, 인코더에 의해 인코딩된 시퀀스를 경합 없는 인터리버(contention free interleaver)를 통해 서브 블록 인터리빙하는 단계, 및 상기 서브 블록 인터리빙된 시퀀스에 레이트 매칭(rate matching)을 수행하여 송신하는 단계를 포함한다.
이때, 상기 송신 단계는 상기 서브 블록 인터리빙된 시퀀스를 상기 레이트 매칭에 의해 결정된 코딩율에 따라 어느 한 방향으로 순차적으로 펑처링하여 송신하는 단계를 포함하여 수행될 수도 있으며, 이와 달리 상기 송신 단계는 상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence), 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 단계, 상기 믹싱된 시퀀스를 순환 버퍼에 저장하는 단계, 및 상기 순환버퍼에 저장된 시퀀스를 상기 레이트 매칭에 의해 결정된 코딩률에 따라 순차적으로 송신하는 단계를 포함하여 수행될 수도 있다. 이때, 상기 믹싱하는 단계는 상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence)를 전단에 배치하고, 상기 서브 블록 인터리빙된 시퀀스 중 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 단계일 수 있다.
또한, 상기 송신 단계에서 송신된 시퀀스 부분에 대해 수신단으로부터 긍정응답 신호를 수신하지 못하는 경우, 상기 순환 버퍼에 저장된 시퀀스 중 상기 송신 단계에서 송신된 부분 이후의 시퀀스 부분을 재송신하는 단계를 더 포함할 수 있으며, 바람직하게는 상기 서브 블록 인터리빙 단계에서 블록 인터리버에 의한 인터리빙을 추가적으로 수행할 수도 있다.
아울러, 상기 경합 없는 인터리버는 QPP(Quadratic Permutation Polynomial) 인터리버를 포함할 수 있으며, 상기 인코더에 의한 인코딩은 상기 QPP 인터리버에 의한 내부 인터리빙 단계를 포함하여 수행될 수 있다.
한편, 상술한 바와 같은 목적을 달성하기 위한 본 발명의 다른 일 양태에 따 른 신호 송신 장치는 인코더에 의해 인코딩된 시퀀스에 서브 블록 인터리빙을 수행하는 경합 없는 인터리버(contention free interleaver), 및 상기 경합 없는 인터리버에 의해 서브 블록 인터리빙된 시퀀스에 레이트 매칭(rate matching)을 수행하는 레이트 매칭부를 포함한다.
이때, 상기 레이트 매칭부는, 상기 서브 블록 인터리빙된 시퀀스를 상기 레이트 매칭부에 의해 결정된 코딩율에 따라 어느 한 방향으로 순차적으로 펑처링하는 펑처링 모듈을 포함하여 이루어질 수도 있고, 이와 달리 상기 레이트 매칭부는 상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence)를 전단에 배치하고, 상기 서브 블록 인터리빙된 시퀀스 중 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 믹서, 및 상기 믹서에 의해 믹싱된 시퀀스를 저장하는 순환 버퍼를 포함하여 이루어질 수도 있다.
또한, 바람직하게는 상기 경합 없는 인터리버의 출력단에 블록 인터리버를 더 포함할 수 있다.
다른 한편, 본 발명의 또 다른 일 양태에 따른 신호 수신 방법은, 수신 시퀀스를 경합 없는 디인터리버를 이용하여 서브 블록 디인터리빙하는 단계, 및 상기 서브 블록 디인터리빙된 시퀀스를 복수의 프로세서에 의해 병렬 디코딩을 수행하는 단계를 포함한다.
이때, 상기 서브 블록 디인터리빙 단계 이전에, 상기 수신 시퀀스 중 구조화 시퀀스, 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스에 대응하는 부분을 구분하는 단계를 더 포함할 수 있다.
또한, 본 발명의 또 다른 일 양태에 따른 신호 수신 장치는, 수신 시퀀스에 서브 블록 디인터리빙을 수행하는 경합 없는 디인터리버, 및 상기 경합 없는 디인터리버에 의해 서브 블록 디인터리빙된 시퀀스를 복수의 프로세싱에 의해 병렬 디코딩하는 디코더를 포함한다.
이때, 상기 수신 시퀀스 중 구조화 시퀀스, 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스에 대응하는 부분을 구분하는 구분 모듈을 더 포함할 수 있다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. 몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시된다. 또한, 본 명세서 전체에서 동일한 구성요소에 대해서는 동일한 도면 부호를 사용하여 설명한다.
상술한 바와 같이 본 발명은 송신단에서 레이트 매칭을 보다 간단하게 수행하고, 수신단에서 병렬 처리시 펑처링된 비트가 각 프로세서에 균일하게 분포되는 등 시스템 성능을 향상시킬 수 있는 신호 송수신 방법에 대한 것이다. 송신단 및 수신단에서 수행되는 채널 인코딩 및 채널 디코딩에는 상술한 바와 같이 길쌈 코 드, 터보 코드, LDPC 코드 등 여러 기술이 사용될 수 있으나, 이하의 설명에서는 현재 3GPP, 3GPP2, IEEE 802 계열 통신 시스템에서 널리 이용되고 있는 터보 코드를 이용하는 방법을 중심으로 설명한다. 다만, 본 발명에 따른 신호 송수신 방법은 반드시 터보코드를 이용하는 것으로 한정될 필요는 없으며, 상술한 바와 같은 다양한 코드를 이용할 수 있다.
이하, 터보 코드에 따른 인코딩 및 디코딩 방식에 대해 설명한다.
도 2는 터보 인코더(Turbo Encoder)의 기본적인 구조를 도시한 도면이다.
터보 코드(Turbo Code; 이하 "TC"라 함)는 2 개의 회귀 대칭 길쌈(Recursive Symmetric Convolutional) 코드를 인터리버(Interleaver)를 이용하여 병렬 연접한 부호이다. 이러한 TC는 도 2에 도시된 바와 같은 터보 인코더의 입력 데이터(X)를 제 1 구성 인코더(ENC1; 201)에 의해 인코딩된 패리티 비트(Y1), 및 입력 데이터를 인터리버(202)에 의해 인터리빙한 후, 제 2 구성 인코더(ENC2; 203)에 의해 인코딩된 패리티 비트(Y2)와의 조합을 통해 생성될 수 있다.
도 3은 터보 디코더(Turbo Decoder)의 기본적인 구조를 도시한 도면이다.
TC를 디코딩하는 디코더는 도 2에 도시된 인코더와 대칭되게 2개의 구성 디코더(301, 303)를 포함하며, 이러한 2개의 구성 디코더(301, 303)가 부대 정보(extrinsic information)를 반복적으로 주고 받으며 디코딩이 수행된다. 즉, 제 1 구성 디코더(301; 이하 "DEC1")가 송신단에서 송신한 입력 데이터(X), 제 1 패리 티 비트(Y1), 및 제 2 패리티 비트(Y2) 각각의 수신 신호에 해당하는 RX, RY1, RY2를 입력받아 수신 신호 전체 길이에 해당하는 부대 정보를 계산하면 계산된 부대 정보는 인터리버(302)에 의해 인터리빙되어 제 2 구성 디코더(303; 이하 "DEC2")에 의해 사용된다. 또한 DEC2(303)가 계산한 부대 정보는 역인터리버(304)에 의해 역인터리빙되어 다시 DEC1(301)에서 다시 사용된다. 이와 같이 DEC1, DEC2와 같은 2개의 구성 디코더가 주고 받는 부대 정보는 이들 구성 디코더에서 반복적으로 계산되면서 갱신됨으로써 TC가 좋은 성능을 나타내게 된다.
상술한 구성 디코더는 부대 정보를 계산하기 위해서 순방향 매트릭(Forward Metric), 역방향 매트릭(Backward Metric), 및 가지 매트릭(Branch Metric)을 먼저 계산한다. 이때 구성 인코더가 전체 길이에 대해 상기 3가지 매트릭을 계산하는 대신 전체 길이를 여러 개의 윈도우(window)로 나누어 각각의 윈도우에 대해서 순차적으로 상기 3가지 매트릭을 계산하고, 윈도우 길이 만큼의 부대 정보를 계산하는 방법이 있다.
이와 같이 순차적으로 모든 윈도우에 대해서 부대 정보가 계산되어 전체 길이에 대해서 부대 정보의 계산이 완료되면, 계산된 부대 정보는 인터리빙 또는 역인터리빙을 거쳐서 서로 다른 구성 디코더에서 새로운 (갱신된) 부대 정보를 계산하기 위해서 사용된다. 이와 같이 순차적으로 윈도우 길이 만큼의 부대 정보를 계산하는 방법을 슬라이딩 윈도우 디코딩(Sliding window decoding)이라고 하며, 일 반적인 TC 디코더의 구현 기법이다.
한편, 상술한 슬라이딩 윈도우 디코딩에서 각각의 윈도우에 대해서 순차적으로 부대정보를 계산하지 않고, 각각의 윈도우가 동시에 부대정보를 병렬적으로 계산하는 방법이 있으며, 이를 TC의 병렬 디코딩 방법이라고 한다.
이와 같은 TC의 슬라이딩 윈도우 디코딩 및 병렬 디코딩 방법에 대해서는 Mohamadreza Maandim 등의 "Performance Analysis of Turbo Decoder for 3GPP Standard using the Sliding Window Algorithm" 및 Jah-Ming Hsu 등의 "A PARALLEL DECODING SCHEME FOR TURBO CODES" 등에 상세히 개시되어 있다.
상술한 TC의 병렬 디코딩에서 각각의 윈도우는 상술한 3가지 매트릭을 계산하기 위해서 채널에서 수신한 비트당 수신값(bitwise received value)과 서로 다른 구성 디코더가 계산한 부대 정보를 사용한다. 수신값과 부대 정보는 정해진 메모리공간에 순서대로(비트순으로) 저장되며 각각의 구성 디코더는 메트릭을 계산하기 위해서 필요한 값을 메모리에서 읽어 들이고 구성 디코더가 계산한 부대 정보 값을 메모리에 다시 기록하게 된다.
이때 병렬 디코딩을 위해서는 각각의 윈도우가 한번에 한 개의 메모리 뱅크를 접속해야 한다.
도 4는 병렬 디코딩을 수행하는 터보 코드 디코더에 포함된 제 1 구성 디코더의 각각의 윈도우가 부대 정보(extrinsic information)를 계산하여 복수의 메모리 뱅크로 구성된 메모리에 병렬로 저장하는 것을 도시한 도면이다.
도 4의 예는 전체 길이 K를 길이가 Wm인 Nw개의 윈도우로 나누어 Nw개의 윈도우가 동시에 부대 정보를 계산하는 경우를 도시하고 있다. 도 4에 도시된 바와 같이 제 1 구성 디코더는 각각의 윈도우가 부대 정보를 계산하면, 각각의 부대 정보 메모리에 계산된 부대 정보를 동시에 저장하게 된다. 부대 정보 메모리는 상술한 바와 같이 Nw개의 메모리 뱅크로 구성되어 있으므로 제 1 구성 디코더의 Nw개의 윈도우가 동시에 하나의 단위 시간(time instance)에서 계산한 Nw개 부대 정보를 부대 정보 메모리의 서로 다른 메모리 뱅크에 각각 동시에 저장하게 된다.
이와 같이 구성 디코더의 각각의 윈도우가 1 단위 시간 동안 서로 다른 메모리 뱅크에 접속하는 경우 아무런 문제가 발생하지 않는다. 다만, 터보 디코더에 있어 각 구성 디코더는 다른 구성 디코더가 계산한 부대 정보를 인터리빙 또는 역인터리빙한 정보에 접속하게 되며, 이와 같은 인터리빙 또는 역인터리빙 과정에서 동일한 메모리 뱅크를 2 이상의 윈도우가 동시에 접속하는 메모리 뱅크 경합 문제가 발생할 수 있는 문제가 발생한다. 이하에서 이러한 문제를 상세히 설명한다.
도 5는 병렬 디코딩을 수행하는 터보 코드 디코더에 포함된 제 2 구성 디코더의 각각의 윈도우가 메모리로부터 부대 정보를 판독하는 과정에서 발생하는 메모리 뱅크 경합 문제를 설명하기 위한 도면이다.
일반적으로 제 2 구성 디코더는 제 1 구성 디코더가 계산한 부대 정보를 사용하여 새로운(갱신된) 부대 정보를 계산한다. 이때, 도 5에 도시된 바와 같이 제 2 구성 디코더는 부대정보 메모리에 저장된 부대 정보를 읽어들일 때 저장되어 있 는 순서가 아닌 인터리빙된 순서로 그 순서를 변환하여 읽어 들인다.
여기서 제 1 구성 디코더가 연산하여 부대 정보 메모리에 저장된 순서에 따른 인덱스(인터리버의 입력 인덱스)를 i, 제 2 구성 디코더가 부대 정보를 읽어 들이는 순서에 따른 인덱스(인터리버의 출력 인덱스)를 j라 할 때, 인터리버 수식이 i=π(j)를 만족하는 것을 가정한다.
즉, 제 2 구성 디코더가 0에서 K-1 번째까지 K개의 부대 정보를 계산하는 경우, 0에서 K-1사이에 j번째인 부대 정보는 제 1 구성 디코더가 만든 i=π(j) 번째 부대 정보, 다시 말해 부대 정보 메모리에서 i 번째에 저장되어있는 부대 정보를 읽어 들인 후에, 앞에서 언급한 3가지 매트릭을 계산하고 또한 3가지 매트릭으로 새로운(갱신된) 부대 정보를 계산한다.
한편, 병렬 디코딩을 위해 제 2 구성 디코더 역시 Nw 개의 윈도우가 동시에 부대 정보를 계산하여야 하는바, 제 2 구성 디코더의 Nw 개의 윈도우는 부대 정보 메모리에 저장되어 있는 K 개의 부대 정보 중에서 하나의 단위 시간당 Nw개의 부대 정보를 동시에 읽어 들여야 한다. 즉, 도 5에 도시된 바와 같이 제 2 구성 디코더는 인덱스 j가 0 ~ K-1인 인덱스를 순차적으로 판독하여 계산하는 것이 아니라 각 윈도우 마다 인덱스 0 ~ Wm-1, Wm ~ 2Wm-1, 2Wm ~ 3Wm- 1, ...의 인덱스에 대해 1 단위 시간에 각각 순차적으로 부대 정보 메모리에 저장된 정보를 판독하고, 이는 부대 정보 메모리에 저장된 순서에 따른 인덱스(i)와 상술한 바와 같이 i=π(j)의 관계에 따라 판독한다.
이때 Nw개의 부대 정보가 Nw개의 메모리 뱅크에 각각 한 개씩 존재하지 않는다면 하나의 단위 시간에 두 개 이상의 윈도우가 동시에 한 개의 메모리 뱅크에 접속하는 "메모리 뱅크 접속 경합 문제"가 발생한다.
예를 들어, 도 5에서는 제 2 구성 디코더의 각 윈도우가 단위 시간 1에서 부대 정보 메모리에 저장된 정보를 판독하여 올 때, 윈도우 0과 윈도우 1에서 동시에 메모리 뱅크 1에 접속하여 메모리 뱅크 접속 경합이 발생하는 것을 도시하고 있다.
상술한 바와 같은 메모리 뱅크 접속 경합 문제는 잘 설계된 인터리버를 사용하여 해결될 수 있으며, 이와 같이 메모리 뱅크 접속 경합 문제가 발생하지 않게 설계된 인터리버를 "경합 없는 인터리버(Contention-Free Interleaver)"라고 한다.
일반적인 경합 없는 인터리버는 다음과 같은 성질을 가진다.
Figure 112007029149758-PAT00001
여기서, j1 및 j2는 전체 K 길이의 인덱스에서 서로 다른 판독 위치를 가지나, 구성 디코더의 서로 다른 윈도우에서 동일한 단위 시간에 판독되는 인덱스를 의미하며, 다음과 같이 나타낼 수 있다.
Figure 112007029149758-PAT00002
상기 수학식 1에서
Figure 112007029149758-PAT00003
는 제 2 구성 디코더에서 계산하는 j 번째 부대 정보를 계산하기 위하여 접속해야 하는 메모리 뱅크의 주소를 나타내는 것으로 볼 수 있다. 따라서, 상기 수학식 1을 만족하는 인터리버를 설계할 경우 서로 다른 윈도우가 동일 시간에 서로 다른 메모리 뱅크를 접속하게 된다. 이때, 메모리 뱅크 내에서 저장된 부대 정보가 몇 번째인지는 중요하지 않다. 단 K개의 부대 정보가 각각 한 번씩 접속하게 되면 된다.
상술한 바와 같은 경합 없는 인터리버에는 QPP 인터리버, ARP 인터리버 등이 거론되고 있다. 이하의 본 발명의 일 실시형태에서는 상술한 경합 없는 인터리버 중 QPP 인터리버를 이용하는 경우에 대해 구체적으로 살펴본다.
QPP(Quadratic Permutation Polynomial) 인터리버는 2차 다항식을 이용하여 데이터를 섞어 주는 인터리버로서, 정보 블록(information block)의 길이가 K이고, 입력되는 정보 블록의 인덱스를 j라 할 때, 인터리빙된 주소 i는 다음과 같이 나타낼 수 있다.
Figure 112007029149758-PAT00004
여기서, 이용되는 파라미터들은 0≤ j, f1, f2 < K 를 만족한다. 또한, 여기서 f1, f2는 적절한 값의 상수를 의미한다.
상술한 바와 같은 경합 없는 인터리버 중 하나인 QPP 인터리버를 디코딩단에 서 이용함으로써 도 5에 도시된 바와 같은 메모리 뱅크 접속 경합문제를 해결할 수 있다. 이와 같이 디코딩단에서 이용되는 인터리버는 인코딩단의 내부 인터리버(internal interleaver)와 쌍을 이루어 이용되는 것이 바람직하며, 따라서 본 발명의 일 실시형태에서는 도 2에서 도면부호 "202"로 지칭되는 내부 인터리버를 QPP 인터리버로서 이용하는 것이 바람직하다.
다만, 상술한 바와 같이 인코딩 단의 내부 인터리버로서 QPP 인터리버를 이용하는 경우에도 수신단의 병렬 처리에 있어서 다음과 같은 문제가 발생할 수 있다.
높은 처리율을 지원하는 통신 시스템에서 채널 상황에 따라 적절하게 레이트 매칭을 수행하기 위해서는 전송 시퀀스에 펑처링을 수행할 필요가 있다. 이때, 수신단의 병렬 처리에 대한 고려 없이 일정 방향으로 순차적으로 펑처링을 수행하는 경우, 수신단에서 데이터를 병렬처리를 수행할 때, 각 프로세서별로 처리해야 하는 데이터 중 펑처링된 부분이 균일하지 않게 되고, 이는 전체적인 시스템의 성능저하를 초래할 수 있다.
반대로, 수신단에서의 병렬 처리를 펑처링 단계에서 고려하여 펑처링 위치를 결정하는 경우, 레이트 매칭 과정에서 많은 연산이 필요하게 되는 단점을 가질 수 있다.
따라서, 본 발명의 일 실시형태에서는 QPP 인터리버와 같은 경합 없는 인터리버를 인코딩단의 내부 인터리버로서 뿐만 아니라 이를 전송 시퀀스의 서브 블록 인터리버(subblock interleaver)로서 이용하여 전송 데이터에 서브 블록 인터리빙 을 수행한 후, 이와 같은 시퀀스에 레이트 매칭을 수행하여 송신하는 방법을 제안한다.
구체적으로, 본 발명의 일 실시형태에 따라 상술한 바와 같이 경합 없는 인터리버를 통한 서브 블록 인터리빙을 통해 전송 시퀀스의 펑처링을 레이트 매칭 단계에서 결정된 코딩율에 따라 시퀀스 후반부에 순차적으로 수행하더라도, 수신단에서 수신 시퀀스를 동일한 방식의 볼록 디인터리빙을 거쳐 병렬 디코딩을 수행한다면, 병렬 디코딩시 각 프로세서에 펑처링된 비트들이 균일하게 분포할 수 있는 장점을 가지게 된다.
또한, 본 발명의 다른 일 실시형태에 따라 상술한 바와 같이 경합 없는 인터리버를 통해 서브 블록 인터리빙을 수행한 후, 패리티 시퀀스들을 효율적으로 믹싱(mixing)하여, 이를 순환 버퍼(circular buffer)를 이용하여 저장하고, 레이트 매칭 단계에서 결정된 코딩율에 따라 순차적으로 송신하는 경우, 수신단에서 수신 시퀀스를 상술한 믹싱 단계의 역과정을 통해 분리하여 동일한 방식으로 서브 블록 디인터리빙을 수행하여 병렬 디코딩을 수행한다면, 각 프로세서에서 처리되는 비트들이 균일하게 분포할 수 있는 장점을 가지게 된다
이하에서는 상술한 각각의 실시형태를 보다 구체적으로 설명한다.
도 6은 본 발명의 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙/디인터리빙을 수행하여 신호를 송수신하는 방법을 설명하기 위한 순서도이다.
이하에서는 도 6에 도시된 바와 같은 본 발명의 일 실시형태에 따른 신호 송 수신 방법을 송신단의 인코더로서 터보 코드가 이용되고, 경합 없는 인터리버로서 QPP 인터리버가 이용되는 예를 통해 구체적으로 설명한다. 또한, 터보 인코더의 출력 시퀀스 인덱스를 아래의 표 1과 같이 가정한다.
Figure 112007029149758-PAT00005
먼저, 단계 S601에서는 QPP 인터리버와 같이 경합 없는 인터리버를 서브 블록 인터리버로 이용하여 인코딩단의 출력 시퀀스에 서브 블록 인터리빙을 수행한다. 그 후, 단계 S602에서는 레이트 매칭 단계에 따라 결정된 코딩율에 따라 상기 단계 S601에 의해 서브 블록 인터리빙된 시퀀스의 어느 한 방향에서부터 순차적으로 펑처링을 수행한다. 즉, 본 실시형태에서는 단계 S602와 같은 순차적 펑처링을 통해 레이트 매칭이 용이하게 구현될 수 있다.
이와 같은 방식에 따라 상술한 예에서 출력되는 시퀀스는 다음과 같이 나타낼 수 있다. 구체적으로, 본 예에서의 QPP 인터리버는 상기 수학식 3에서 f1 = 3, f2 = 10를 이용하는 경우를 가정한다.
Figure 112007029149758-PAT00006
상기 표 2에서 굵은 글씨체의 인덱스는 펑처링된 부분을 나타내며, 그 밖의 부분은 전송될 시퀀스 부분을 나타낸다.
이와 같은 과정을 거쳐 송신된 시퀀스는 수신단에 의해 수신된 후 다음과 같은 방법에 의해 디코딩된다.
단계 S603에서는 단계 S602에서 펑처링된 비트들의 해당 위치에 디펑처링을 수행한다. 그 후, 단계 S604에서는 단계 S601에서 사용된 인터리버와 대응되는 경합 없는 디인터리버를 이용하여 수신 시퀀스에 서브 블록 디인터리빙을 수행한다. 그 후, 단계 S605에서는 서브 블록 디인터리빙된 시퀀스를 복수의 프로세서를 통해 병렬 디코딩을 수행한다. 이와 같은 디코딩 방식에 따라 상술한 예에서 디코딩되는 시퀀스를 다음과 같이 나타낼 수 있다.
Figure 112007029149758-PAT00007
여기서, 진한 태두리로 표시한 부분은 복수의 병렬 프로세서 각각에 의해 프로세싱되는 시퀀스 부분을 나타내며, 화살표 방향은 각 병렬 프로세서에 의해 프로세싱되는 방향을 나타낸다. 또한, 굵은 글자체로 표시된 인덱스는 송신단에서 펑처링된 후, 수신단에서 디펑처링된 부분에 대응하는 부분이다.
표 3을 통해 알 수 있는 바와 같이 본 발명의 상술한 일 실시형태에 따르면, 송신단에서 펑처링된 비트들이 각 프로세서에 균일하게 배치됨으로써 병렬 프로세싱 성능이 향상되게 된다.
한편, 본 발명의 바람직한 일 실시형태에서는 상기 도 6의 단계 S601에서와 같이 경합 없는 인터리버에 의한 서브 블록 인터리빙이 수행된 후, 추가적으로 블록 인터리버에 의한 서브 블록 인터리빙을 수행하고, 이와 같이 블록 인터리빙된 시퀀스의 어느 한쪽 방향에서 순차적으로 펑처링을 수행하여 시퀀스를 송신하는 방법을 제안한다.
구체적으로, 상술한 실시형태에서의 예와 동일한 예를 통해 설명하면, 단계 S601에서와 같이 경합 없는 인터리버에 의한 서브 블록 인터리빙이 수행된 시퀀스는 표 2에 나타낸 바와 같다. 이와 같은 시퀀스 인덱스에 본 실시형태에서와 같이 블록 인터리빙을 수행하고, 펑처링을 수행하는 과정은 다음과 같이 나타낼 수 있다.
Figure 112007029149758-PAT00008
상기 표 4에서 굵은 글자체로 표시된 인덱스는 펑처링되는 인덱스를 나타낸다.
이에 따라 최종적으로 서브 블록 인터리빙이 완료된 시퀀스 인덱스는 다음과 같이 나타낼 수 있다.
Figure 112007029149758-PAT00009
한편, 수신단에서는 디펑처링 과정을 거친 후, 송신단의 표 2에 도시된 바와 같은 QPP 인터리빙 및 표 4에 블록 인터리빙 과정에 대응하는 QPP 디인터리빙 및 블록 디인터리빙 과정을 거친다. 이에 따라 서브 블록 디인터리빙이 완료된 시퀀스 인덱스는 다음과 같이 병렬 프로세싱될 수 있다.
Figure 112007029149758-PAT00010
상기 표 6을 통해 알 수 있는 바와 같이 도 6에 도시된 본 발명의 일 실시형태에서 서브 블록 인터리빙 단계에 블록 인터리빙을 추가적으로 수행함으로써, 수신단의 병렬 프로세서 각각에 송신단에서 펑처링된 비트가 보다 균일하게 배치되는 것을 알 수 있다.
상술한 바와 같은 본 발명의 일 실시형태에 따른 장치 구성에 대해 설명하면 다음과 같다.
도 7은 본 발명의 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도이다.
즉, 본 발명의 일 실시형태에 따른 송신단은 경합 없는 인터리버 중 하나인 QPP 인터리버(701)를 내부 인터리버로서 사용하며, 정보 시퀀스에 대해 각각 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 생성하는 제 1 구성 인코더(702) 및 제 2 구성 인코더(703)를 포함한다. 또한, 본 발명의 일 실시형태에 따르면 상술한 내부 인터리버와 쌍을 이루어 QPP 인터리버(704 내지 706)를 각 시퀀스의 블록 인터리버로서 사용하여 각 시퀀스에 블록 인터리빙을 수행한다. 한편, 제 1 패리티 시퀀스 부분 및 제 2 패리티 시퀀스 부분은 펑처링 모듈(707) 및 펑처링 모듈(708)에 의해 레이트 매칭 단계에서 결정된 코딩율에 따라 어느 한 방향으로부터 순차적으로 펑처링되어 송신된다. 즉, 본 실시형태에서 각 패리티 시퀀스에 순차적 펑처링을 수행하는 펑처링 모듈들(707 및 708)을 통해 간단하게 레이트 매핑 모듈을 구현할 수 있다.
또한, 본 발명의 바람직한 일 실시형태에서는 QPP 인터리버를 이용한 서브 블록 인터리버(705, 706)와 펑처링 모듈(707, 708) 사이에 추가적으로 블록 인터리버(미도시)를 포함할 수도 있다.
도 8은 본 발명의 일 실시형태에 따른 수신단의 특징 구성을 개략적으로 도시한 블록도이다.
구체적으로, 본 발명의 일 실시형태에 따른 수신단은 송신단의 펑처링에 대응되는 디펑처링 모듈들(805 및 806)뿐만 아니라 수신 시퀀스 중 정보 시퀀스 대응 부분 및 제 1, 제 2 패리티 시퀀스 대응 부분을 각각 송신단에서의 서브 블록 인터리빙 과정의 역과정으로서 서브 블록 디인터리빙을 수행하기 위한 서브 블록 디인터리버(801 내지 803)을 포함할 수 있다. 이와 같이 서브 블록 디인터리빙된 시퀀스는 구성 디코더(804)에 의해 디코딩이 수행되며, 이 구성 디코더는 병렬 프로세싱을 위한 복수의 프로세서를 포함할 수 있다.
또한, 본 발명의 바람직한 일 실시형태에 따른 송신단에서 서브 블록 인터리빙을 위해 추가적으로 블록 인터리버를 포함하는 경우, 수신단 역시 각각의 서브 블록 디인터리버들(801 내지 803) 전단에 블록 디인터리버(미도시)를 포함할 수도 있다.
본 실시형태에 따르면 상술한 바와 같은 펑처링 과정에서 수신단의 병렬 프로세싱을 별도로 고려하지 않고 이를 단순히 순차적으로 펑처링 하더라도 수신단에서의 병렬 프로세싱시 각 프로세서에 펑처링 비트가 고르게 분포된다.
한편, 이하에서는 패리티 시퀀스를 효율적으로 믹싱하고, 이를 순환 버퍼에 저장하여 결정된 코딩율에 따라 순차적으로 송신함으로써, 보다 간단하게 레이트 매칭을 수행하는 본 발명의 다른 일 실시형태에 대해 구체적으로 살펴본다.
도 9는 본 발명의 다른 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙을 수행한 시퀀스의 패리티 비트를 효율적으로 믹싱하는 방법을 설명하기 위한 도면이다.
구체적으로 본 실시형태에 따르면 인코더에 의해 인코딩된 시퀀스의 구조화 시퀀스(S), 제 1 패리티 시퀀스(P1) 및 제 2 패리티 시퀀스(P2) 부분을 각각 QPP 인터리버와 같은 경합 없는 인터리버에 의해 서브 블록 인터리빙을 수행한다. 그 후, 도 9에 도시된 바와 같이 서브 블록 인터리버에 의해 출력된 시퀀스 중 구조화 시퀀스에 대응하는 부분은 가장 먼저 배열하고, 제 1 패리티 시퀀스에 대응하는 부분과 제 2 패리티 시퀀스에 대응하는 부분을 소정 길이 단위로 교환하여 배치하는 방식으로 믹싱을 수행한다. 이와 같이 믹싱된 시퀀스는 그후 본 실시형태에 따른 순환 버퍼(circular buffer)에 저장될 수 있다. 다만, 본 발명의 다른 일 실시형태에서는 상술한 바와 같은 믹싱 단계에서 제 1 패리티 시퀀스와 제 2 패리티 시퀀스 사이뿐만 아니라 정보 시퀀스 역시 이들 패리티 시퀀스들과 교환 배치되어 믹싱될 수도 있다.
도 10은 본 발명의 일 실시형태에 따라 도 9와 같이 믹싱된 시퀀스를 순환버퍼에 저장하여 순차적으로 송신하는 방법을 설명하기 위한 도면이다.
즉, 도 9에 도시된 바와 같은 믹싱 과정을 거쳐 생성된 시퀀스는 도 10에 도시된 바와 같은 순환 버퍼에 저장될 수 있다. 순환 버퍼는 저장된 데이터의 앞부분에서 정해진 양만큼의 데이터가 송신된 후, 후속적인 송신에서 남아 있는 데이터 이상이 송신되는 경우, 저장된 데이터의 앞부분에서 해당하는 양만큼의 데이터가 송신되는, 즉 저장된 데이터가 순환적으로 송신될 수 있는 버퍼를 의미한다.
도 9에 도시된 바와 같은 믹싱을 거쳐 생성된 시퀀스가 도 10에 도시된 바와 같은 순환 버퍼에 저장된 후, 해당 시스템의 레이트 매칭 단계에서 결정된 코딩율에 따라 순차적으로 초기 송신(1st TX)을 수행한다. 이와 같이 순환 버퍼에 저장된 믹싱된 시퀀스의 전단부를 송신하는 경우, 송신되지 않은 시퀀스 부분은 전술한 본 발명의 실시형태들에 있어서 펑처링이 수행되는 것과 동일한 효과를 가지게 된다.
즉, 도 9 및 도 10에 도시된 바와 같은 방식으로 시퀀스를 송신할 경우, 초기 송신시 송신되는 시퀀스는 표 2 또는 표 5에 나타낸 바와 같이 서브 블록 인터리빙이 수행된 후, 각 패리티 시퀀스의 후단부가 펑처링되는 것과 같이 전송되지 않음으로써 상술한 실시형태에서와 동등한 효과를 획득할 수 있다.
이와 같은 송신 시퀀스를 수신한 수신단에서는 먼저, 전체 시퀀스 중 수신되지 않은 시퀀스 부분을 상술한 실시형태에서의 펑처링 비트와 같이 취급하여, 이에 대해 디펑처링하는 과정을 거친 후, 도 9에 도시된 믹싱 단계의 역과정으로서 수신 시퀀스 중 구조화 시퀀스에 대응하는 부분과 제 1 및 제 2 패리티 시퀀스에 대응하는 부분으로 시퀀스를 구분한다. 그 후, 구분된 시퀀스는 송신단의 서브 블록 인터리빙에 대응하는 디인터리빙 과정을 거쳐 표 3 및 표 6에 대응되는 방식으로 병렬 프로세서에 의해 디코딩이 수행되며, 본 실시형태에 따를 경우 송신단에서 별도의 펑처링 단계를 거치지 않고, 순환버퍼에 저장된 시퀀스를 코딩율에 따라 순차적으로 전송하더라도 수신단에서의 병렬 디코딩시 각 프로세서에 전송 비트들이 균일하게 분포하게 된다.
한편, 도 9에 도시된 바와 같이 믹싱된 시퀀스를 도 10에 도시된 바와 같이 순환버퍼에 저장한 후, 결정된 코딩율에 따라 정해진 양만큼 순차적으로 송신하는 경우, 나머지 시퀀스 부분을 재전송시(2nd TX) 전송함으로써, 별도의 알고리즘에 의하지 않고서도 HARQ의 IR(Incremental Redundancy) 방식을 지원하는 것이 가능하다. 이에 대해 구체적으로 설명하면 다음과 같다.
도 11 및 도 12는 HARQ 방식에 있어서 초기 전송 데이터와 재전송 데이터를 결합하는 두 가지 방식을 설명하기 위한 도면이다.
HARQ는 수신단에서 데이터 수신에 대한 ACK 신호를 수신하지 않는 경우, 이를 다양한 방식으로 재전송하는 ARQ(Automatic repeat request) 방식에서, 재전송을 하는 경우에 먼저 전송된 데이터와 재전송된 데이터를 결합하여, FEC 코드를 통해 복구하는 방법을 의미한다. 이때, 초기 전송 데이터와 재전송 데이터를 결합하는 방법에 따라, CC(Chase Combining) 방식과 IR(Incremental Redundancy) 방식으로 나눌 수 있다.
구체적으로, 도 11은 CC 방식을 도시한 것으로 수신단에서 전송 데이터와 재전송 데이터를 결합하여 수신 SNR(Signal to Noise Ratio)를 높여 수신단에서 데이터에 대한 수신 성공율을 높이는 방법이다.
한편, 도 12는 IR 방식을 도시한 것으로, 도 12에 도시된 바와 같이 송신단에서 재전송 시, 상술한 CC 방법과는 달리, 처음 전송에 사용되지 않았던 부호화된 데이터의 일부를 전송하여 수신단에서 수신된 데이터의 코딩율을 낮추는 방법을 통해 수신 성공률을 높이는 방법이다.
이를 바탕으로 도 9 및 도 10과 관련하여 상술한 실시형태에 따른 신호 송신 방법을 살펴보면, 도 9에 도시된 바와 같이 제 1 패리티 시퀀스와 제 2 패리티 시퀀스가 순차적으로 믹싱된 시퀀스 중 도 10에 도시된 바와 같이 결정된 코딩율에 따라 소정 양의 시퀀스가 초기 전송(1st TX)된 후, 수신단에서 수신에 실패하여 재전송시 순환버퍼에 저장된 시퀀스 중 초기 전송된 시퀀스의 다음 부분(2nd TX)을 전송함으로써, 별도의 추가적인 알고리즘 없이 도 12에 도시된 바와 같은 IR 방식을 구현할 수 있다.
이상에서 상술한 실시형태에 따른 신호 송수신 방법을 정리하여 설명하면 다음과 같다.
도 13은 본 발명의 다른 일 실시형태에 따라 경합 없는 인터리버를 통해 서브 블록 인터리빙/디인터리빙을 수행하여 신호를 송수신하는 방법을 설명하기 위한 순서도이다.
구체적으로, 본 발명의 다른 일 실시형태에 따른 신호 송신 방법에 있어서, 단계 S1301에서는 QPP 인터리버와 같은 경합없는 인터리버를 이용하여 송신 시퀀스에 서브 블록 인터리빙을 수행한다. 그 후, 단계 S1302에서는 상술한 도 9에 도시된 바와 같이 구조화 시퀀스와 제 1 및 제 2 패리티 시퀀스를 믹싱하며, 이에 따라 생성된 시퀀스는 단계 S1303에서 순환버퍼에 저장된다. 이와 같이 저장된 시퀀스는 그 후 단계 S1304에서, 레이트 매칭을 위해 결정된 코딩율에 따라 순환버퍼에 저장된 시퀀스 중 일부를 순차적으로 송신한다. 즉, 본 실시형태에서는 단계 S1302 내지 S1304와 같은 일련의 과정을 거침으로써 간단하게 레이트 매칭을 수행할 수 있다.
이와 같이 송신된 시퀀스는 수신단에 의해 수신되며, 단계 S1305에서는 단계 S1304에서 초기 송신시 미송신된 부분을 펑처링된 비트와 같이 취급하여, 이에 대해 디펑처링을 수행한다. 그 후, 단계 S1306에서는 도 9에 도시된 믹싱 과정의 역과정을 통해 수신 시퀀스 중 구조화 시퀀스 대응 부분과 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스에 각각 대응하는 부분을 구분한다. 그 후, 단계 S1307에서는 송신단의 서브 블록 인터리빙의 역과정으로서 QPP 디인터리버와 같은 경합 없는 디인터리버를 이용하여 서브 블록 디인터리빙을 수행한다. 이에 따라 생성된 시퀀스는 단계 S1308에서 복수의 프로세서에 의해 병렬 프로세싱되어 디코딩된다.
상술한 바와 같은 실시형태에 따른 송신단 및 수신단의 장치 구성에 대해 설명하면 다음과 같다.
도 14는 본 발명의 다른 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도이다.
도 14에 도시된 본 실시형태에 따른 송신단 구성은 도 7의 펑처링 모듈(707, 708)이 없고, 믹서(1401) 및 순환 버퍼(1402)가 추가된 점을 제외하면 도 7에 도시된 실시형태에 따른 송신단 구성과 동일하다. 따라서 이하에서는 도 7의 구성과 차이를 가지는 부분에 대해서만 설명하도록 한다.
도 14에 도시된 송신단 구성은 서브 블록 인터리빙을 수행하는 서브 블록 인터리버(704 내지 706)의 출력에 믹싱을 수행하는 믹서(1401)를 포함한다. 이 믹서(1401)는 상술한 도 9를 통해 설명한 바와 같이 정보 시퀀스(S')를 전단에 배치하고, 제 1 패리티 시퀀스(P1')와 제 2 패리티 시퀀스(P2')를 소정 단위로 교대로 배치하는 방식으로 믹싱을 수행한다. 이와 같이 믹싱된 시퀀스는 상술한 믹서(1401)의 출력부에 연결된 순환버퍼(1402)에 의해 저장될 수 있다. 이와 같이 순환버퍼에 저장된 시퀀스는 레이트 매칭 단계에서 결정된 코딩율에 따라 소정 양만큼씩 순차적으로 송신된다. 따라서, 본 실시형태에 따른 송신단에서 레이트 매칭 모듈은 믹서(1401) 및 순환버퍼(1402) 등의 구성을 포함한다.
도 15는 본 발명의 다른 일 실시형태에 따른 수신단의 특징 구성을 개략적으로 도시한 블록도이다.
도 15에 도시된 본 실시형태에 따른 수신단 구성은 시퀀스 분리 모듈(1501)을 추가적으로 포함하고, 펑처링 모듈(1502)의 기능이 다소 차이가 있는 점을 제외하고는 도 8에 도시된 실시형태에 따른 수신단 구성과 동일하다. 즉, 본 실시형태에 따른 수신단 구성은 송신단으로부터 믹싱 과정을 거쳐 순환버퍼에 저장된 시퀀스 중 레이트 레칭 결과에 따라 결정된 코딩율에 따라 결정된 양만큼 순차적으로 송신된 시퀀스를 수신하여, 수신된 시퀀스 중 송신단에서 송신되지 않는 비트를 펑처링된 것으로 취급하여 디펑처링 모듈(1502)에 의해 디펑처링을 수행한다. 그 후, 디펑처링된 시퀀스를 시퀀스 분리모듈(1501)에 의해 분리한 후, 서브 블록 디인터리버(801 내지 803)에 의한 디인터리빙을 거쳐 구성 디코더(804)에 의해 병렬 프로세싱을 통해 디코딩될 수 있다.
한편, 상술한 본 발명의 각 실시형태에 따른 신호 송수신 방법 및 송수신 장치는 그 핵심 특징을 변경하지 않는 범위 내에서 다양하게 응용되어 실시될 수 있으며, 이하에서 몇 가지 본 발명에 따른 추가적인 실시형태에 대해 설명한다.
도 16은 본 발명의 추가적인 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도이다.
도 16에 도시된 바와 같은 본 실시형태에 따른 송신단 구성은 제 1 및 제 2 구성 인코더(702, 703)와 서브 블록 인터리버들(705, 706) 사이에 각각 반전/시프트 이동을 수행하는 모듈(1601)을 각각 포함할 수 있는 점을 제외하면, 도 14에 도시된 송신단 구성과 동일하다. 즉, 본 실시형태에 따른 송신단 구성은 인코더의 출력단에서 각 패리티 시퀀스를 반전하거나, 시프트하는 변환을 추가적으로 수행할 수 있으며, 이를 통해 인코딩된 시퀀스에 추가적인 조작을 수행할 수 있다.
도 17은 본 발명의 또 다른 일 실시형태에 따른 송신단의 특징 구성을 개략적으로 도시한 블록도이다.
도 17에 도시된 본 실시형태에 따른 송신단 구성은 내부 인터리버(1701) 및 서브 블록 인터리버(1702 내지 1704)를 QPP 인터리버가 아닌 ARP 인터리버를 이용한 점에 있어서만 차이가 있을 뿐 도 7에 도시된 실시형태에 따른 송신단 구성과 동일한 구성을 가진다. 즉, 본 발명의 상술한 실시형태들에 있어서 경합 없는 인터리버로서는 상술한 QPP 인터리버뿐만 아니라 ARP 인터리버 등 상기 수학식 1 및 수학식 2를 만족하는 임의의 인터리버를 이용할 수 있다.
상술한 바와 같은 본 발명의 각 실시형태들은 각 실시형태에서 구체적으로 설명된 구성을 다양하게 조합하여 사용할 수 있다. 예를 들어, 도 7에 도시된 바와 같은 실시형태에 있어서 송신 시퀀스는 순환 버퍼에 저장되어 송신될 수 있으며, 이를 통해 추가적인 알고리즘 없이 간단하게 IR 방식을 구현하는 등의 추가적 효과를 가질 수 있다.
한편, 상술한 바와 같은 본 발명의 각 실시형태들에 대한 설명은 일반적인 터보 코드를 이용하는 것을 중심으로 설명하였으나, CTC(Convolutional Turbo Code), 즉 듀오 바이너리 터보 코드(duo binary Turbo code) 등을 통해서도 실시될 수 있으며, 그 밖에 다양한 코드를 이용할 수 있다.
또한, 상술한 본 발명의 각 실시형태들은 터보 코드 계열이 이용될 수 있는 3GPP 시스템, 3GPP2 시스템, IEEE 802 계열 시스템 등에 다양하게 적용될 수 있다.
상술한 바와 같이 개시된 본 발명의 바람직한 실시형태에 대한 상세한 설명은 당업자가 본 발명을 구현하고 실시할 수 있도록 제공되었다. 상기에서는 본 발명의 바람직한 실시 형태를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명은 여기에 나타난 실시형태들에 제한되려는 것이 아니라, 여기서 개시된 원리들 및 신규한 특징들과 일치하는 최광의 범위를 부여하려는 것이다.
상기와 같은 본 발명의 각 실시형태에 따른 신호 송수신 방법에 의하면, 송신단에서 레이트 매칭을 보다 간단하게 수행하고, 수신단에서 병렬 처리시 펑처링된 비트가 각 프로세서에 균일하게 분포되는 등 시스템 성능을 향상시킬 수 있다.

Claims (15)

  1. 인코더에 의해 인코딩된 시퀀스를 경합 없는 인터리버(contention free interleaver)를 통해 서브 블록 인터리빙하는 단계; 및
    상기 서브 블록 인터리빙된 시퀀스에 레이트 매칭(rate matching)을 수행하여 송신하는 단계를 포함하는, 신호 송신 방법.
  2. 제 1 항에 있어서,
    상기 송신 단계는,
    상기 서브 블록 인터리빙된 시퀀스를 상기 레이트 매칭에 의해 결정된 코딩율에 따라 어느 한 방향으로 순차적으로 펑처링하여 송신하는 단계를 포함하는, 신호 송신 방법.
  3. 제 1 항에 있어서,
    상기 송신 단계는,
    상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence), 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 단계;
    상기 믹싱된 시퀀스를 순환 버퍼에 저장하는 단계; 및
    상기 순환버퍼에 저장된 시퀀스를 상기 레이트 매칭에 의해 결정된 코딩률에 따라 순차적으로 송신하는 단계를 포함하는, 신호 송신 방법.
  4. 제 3 항에 있어서,
    상기 믹싱하는 단계는,
    상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence)를 전단에 배치하고, 상기 서브 블록 인터리빙된 시퀀스 중 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 단계인, 신호 송신 방법.
  5. 제 3 항에 있어서,
    상기 송신 단계에서 송신된 시퀀스 부분에 대해 수신단으로부터 긍정응답 신호를 수신하지 못하는 경우, 상기 순환 버퍼에 저장된 시퀀스 중 상기 송신 단계에서 송신된 부분 이후의 시퀀스 부분을 재송신하는 단계를 더 포함하는, 신호 송신 방법.
  6. 제 1 항에 있어서,
    상기 서브 블록 인터리빙 단계에서 블록 인터리버에 의한 인터리빙을 추가적으로 수행하는, 신호 송신 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 경합 없는 인터리버는 QPP(Quadratic Permutation Polynomial) 인터리버를 포함하며,
    상기 인코더에 의한 인코딩은 상기 QPP 인터리버에 의한 내부 인터리빙 단계를 포함하여 수행되는, 신호 송신 방법.
  8. 인코더에 의해 인코딩된 시퀀스에 서브 블록 인터리빙을 수행하는 경합 없는 인터리버(contention free interleaver); 및
    상기 경합 없는 인터리버에 의해 서브 블록 인터리빙된 시퀀스에 레이트 매칭(rate matching)을 수행하는 레이트 매칭부를 포함하는, 신호 송신 장치.
  9. 제 8 항에 있어서,
    상기 레이트 매칭부는,
    상기 서브 블록 인터리빙된 시퀀스를 상기 레이트 매칭부에 의해 결정된 코딩율에 따라 어느 한 방향으로 순차적으로 펑처링하는 펑처링 모듈을 포함하는, 신호 송신 장치.
  10. 제 8 항에 있어서,
    상기 레이트 매칭부는,
    상기 서브 블록 인터리빙된 시퀀스 중 정보 시퀀스(information sequence)를전단에 배치하고, 상기 서브 블록 인터리빙된 시퀀스 중 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스를 소정 길이 단위로 순차적으로 배치하여 믹싱하는 믹서; 및
    상기 믹서에 의해 믹싱된 시퀀스를 저장하는 순환 버퍼를 포함하는, 신호 송신 장치.
  11. 제 8 항에 있어서,
    상기 경합 없는 인터리버의 출력단에 블록 인터리버를 더 포함하는, 신호 송신 장치.
  12. 수신 시퀀스를 경합 없는 디인터리버를 이용하여 서브 블록 디인터리빙하는 단계; 및
    상기 서브 블록 디인터리빙된 시퀀스를 복수의 프로세서에 의해 병렬 디코딩을 수행하는 단계를 포함하는, 신호 수신 방법.
  13. 제 12 항에 있어서,
    상기 서브 블록 디인터리빙 단계 이전에,
    상기 수신 시퀀스 중 구조화 시퀀스, 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스에 대응하는 부분을 구분하는 단계를 더 포함하는, 신호 수신 방법.
  14. 수신 시퀀스에 서브 블록 디인터리빙을 수행하는 경합 없는 디인터리버; 및
    상기 경합 없는 디인터리버에 의해 서브 블록 디인터리빙된 시퀀스를 복수의 프로세싱에 의해 병렬 디코딩하는 디코더를 포함하는, 신호 수신 장치.
  15. 제 14 항에 있어서,
    상기 수신 시퀀스 중 구조화 시퀀스, 제 1 패리티 시퀀스 및 제 2 패리티 시퀀스에 대응하는 부분을 구분하는 구분 모듈을 더 포함하는, 신호 수신 장치.
KR1020070037413A 2007-04-17 2007-04-17 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치 KR20080093555A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070037413A KR20080093555A (ko) 2007-04-17 2007-04-17 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070037413A KR20080093555A (ko) 2007-04-17 2007-04-17 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치

Publications (1)

Publication Number Publication Date
KR20080093555A true KR20080093555A (ko) 2008-10-22

Family

ID=40154041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070037413A KR20080093555A (ko) 2007-04-17 2007-04-17 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치

Country Status (1)

Country Link
KR (1) KR20080093555A (ko)

Similar Documents

Publication Publication Date Title
JP7026689B2 (ja) 情報処理方法、デバイス、および通信システム
KR100586343B1 (ko) 향상된 터보 코드 기반 증분 리던던시
RU2427086C2 (ru) Выбор кода прямой коррекции ошибок и кодовой скорости на основании размера пакета
WO2017177926A1 (zh) 一种数据传输处理方法和装置
JP4930512B2 (ja) 無線通信システム、送信装置および受信装置
US7475330B2 (en) Method and apparatus for generating a punctured symbol vector for a given information vector
KR101313782B1 (ko) 무선 통신 시스템에서 데이터 블록을 송신 및 수신하기 위한 방법 및 장치
US20030079170A1 (en) Block puncturing for turbo code based incremental redundancy
US8341490B2 (en) Virtual limited buffer modification for rate matching
WO2018141240A1 (zh) 信息处理的方法、装置、通信设备和通信系统
US20010039636A1 (en) System and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network
US7984365B2 (en) Turbo decoder with stake heritage for data block redundant version decoding
JP2020504932A (ja) データ伝送方法、送信デバイス、受信デバイス、及び通信システム
KR20090061562A (ko) 연판정을 이용한 통신방법 및 장치
US8874985B2 (en) Communication system, transmission device, reception device, program, and processor
WO2014053838A1 (en) Signal processing apparatus and method using llr and a priori probability
US9680602B2 (en) Bit coding device, bit decoding device, transmission device, reception device, bit coding method, bit decoding method, transmission method, reception method, and program
JP2004153354A (ja) 受信装置、復号装置、通信システムおよび復号方法
WO2005031982A1 (ja) 入力制御装置及び入力制御方法
KR20080093555A (ko) 경합 없는 인터리버 또는 디인터리버를 이용한 신호 송수신방법 및 장치
Anghel et al. CTC Turbo decoding architecture for H-ARQ capable WiMAX systems implemented on FPGA
WO2017168821A1 (ja) 無線通信方法及び無線通信システム
KR20010002918A (ko) Rcptc, rcphccc 및 rcphccc를 이용한 적응형 하이브리드 arq의 성능 분석 방법
JP6872073B2 (ja) 無線通信方法及び無線通信システム
WO2018225364A1 (ja) 無線通信方法及び無線通信システム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination