KR20100100237A - 통신시스템에서의 디인터리버 및 디인터리빙 방법 - Google Patents
통신시스템에서의 디인터리버 및 디인터리빙 방법 Download PDFInfo
- Publication number
- KR20100100237A KR20100100237A KR1020090019009A KR20090019009A KR20100100237A KR 20100100237 A KR20100100237 A KR 20100100237A KR 1020090019009 A KR1020090019009 A KR 1020090019009A KR 20090019009 A KR20090019009 A KR 20090019009A KR 20100100237 A KR20100100237 A KR 20100100237A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- demodulated
- modulo
- group
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2782—Interleaver implementations, which reduce the amount of required interleaving memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/655—UWB OFDM
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은 통신시스템에서 디인터리버에 관한 것으로, 특히 병렬 심볼 처리가 가능하도록 FCH의 디인터리버가 설계 및 디인터리빙하는 방법에 관한 것이다. 본 발명은 디인터리빙 테이블을 사용하지 않고, 디인터리빙 비트 인덱스의 규칙성을 이용하여 수개의 메모리로 분할하여 나누어 쓰고, 순차로 읽어내어 간단히 디인터리빙 기능을 수행함으로써, 디인터리버의 구성요소에서 두심볼씩 복조된 값을 일차원 순열로 재정렬을 위한 메모리가 필요없고, 출력을 위한 클럭수를 줄여 전력소모를 줄일 수 있다.
OFDM, 인터리버
Description
본 발명은 직교주파수 분할다중화 시스템(OFDM: Orthogonal Frequency Division Multiplexing)에 관한 것으로, 특히 무선OFDM 시스템에서 병렬 구조를 가지는 FCH의 디인터리버(deinterleaver)에 관한 것이다.
직교주파수 분할다중화(OFDM)란, 고속의 데이터를 각 반송파가 직교 관계에 있는 다수의 부반송파에 나누어 실어 다중 전송하는 디지털 변조 방식.
보통의 주파수 분할 다중(FDM)에 비해 훨씬 더 많은 반송파의 다중이 가능하므로 주파수 이용 효율이 높고, 멀티패스(multipath)에 의한 심벌 간 간섭(ISI)에 강한 특성이 있어 고속 데이터 전송에 적합하다. OFDM은 802.11 Wireless LAN, DMB(Digital Multimedia Broadcasting), PLC (Power Line Communication), xDSL, 4G 이동통신, 와이브로 등 많은 분야의 핵심기술로 사용되고 있다.
디지털 무선 전송시스템 등에서 말하는 인터리빙(Interleaving)이란, 페이딩 등에 의한 집중 비트 에러(Burst Error)가 발생되기 쉬운 무선 채널 환경에서 집중적인 비트 에러를 분산(비트 오류 발생을 랜덤하게 분산)시키는 기술을 말한 다. 그 구현방식은, 데이터 열의 순서를 일정 단위(블록 등)로 재 배열시킴으로써, 순간적인 잡음에 의한 데이터 열 중간의 비트가 손실되더라도 그 영향을 국부적으로 나타나게 하여 그것을 복구할 수 있게 한다. 즉, 어떤 한 시점에서 간섭 등으로 정보가 손실된 채 신호를 수신할 경우에, 이 신호를 다시 원래의 순서대로 재배열해 봄으로써 손실된 정보가 분산되며, 단지 부분적으로만 정보가 손실되게 된다.
Wireless OFDMA 시스템에서 모든 길쌈 부호화된 데이터는 설정된 바와 같이 부호화된 블록 크기 Ncpbs당 부호화된 비트 수에 해당하는 크기의 블록 인터리버로 인터리빙 되어야만 한다. 인터리버는 두 단계의 순열식으로 정의된다. 첫 번째 순열은 인접한 부호화된 비트들을 인접되지 않은 부반송파로 매핑된다. 그리고, 두 번째 순열은 부호화된 인접한 비트가 성상도(constellation) 중에서 하위 또는 상위 비트에 교대로 매핑되도록 한다. 이 과정에 의해 신뢰도가 낮은 비트들이 연속적으로 나타나는 것을 피할 수 있다.
Ncpc를 부반송파 당 부호화된 비트 수 즉, QPSK, 16-QAM, 혹은 64-QAM에 대하여 각각 2, 4, 6으로 한다. s=Ncpc/2로 한다. 전송 시 Ncpbs 비트의 블록 내에서 k를 첫 번째 순열 이전의 부호화 비트 인덱스, mk를 첫 번째 이후 두 번째 순열 이전의 부호화된 비트 인덱스, 그리고 jk를 변조 매핑 바로 전 두 번째 순열 이후의 인덱스, 그리고 d를 순열에 사용되는 모듈로 정의한다.
첫 번째 순열은 식1에 의해 규정된다.
두 번째 순열은 식2에 의해 규정된다.
인터리버의 역-연산을 하는 디인터리버 또한 두 개의 순열로 규정된다. 수신된 Ncbps비트 블록에서, j를 첫 번째 순열 이전에 수신된 비트 인덱스, mj를 첫 번째 이후 두 번째 순열 이전의 비트 인덱스, 그리고 kj를 복호기에 전달하기 바로 이전 두 번째 순열 이후 비트 인덱스로 정의한다.
첫 번째 순열은 식3에 의해 규정된다.
두 번째 순열은 식4에 의해 규정된다.
디인터리버의 첫 번째 순열은 인터리버에서 두 번째 순열의 역이고 반대의 경우도 마찬가지다.
도 1은 인터리버와 디인터리버의 구조이다. 도 1에서 디인터리버를 구현 시 순열을 미리 테이블로 작성하여 활용하게 된다. 이 경우 하드웨어 메모리를 추가로 소비하게 된다. 또한, IEEE 802.16e의 슬롯 구조 특성 상 FCH는 두 개의 심볼이 병렬 처리할 수 있는데 이 경우 FCH의 디인터리버로 인해 순차 처리하는 제어기를 거 치게 되므로 클럭(clock) 수가 올라가거나 처리 지연 시간이 길어지게 된다.
도 2는 종래 디인터리버(deinterleaver)의 블록도이다. 도 2는 연판정에 의해 복조된 소프트 비트를 4비트인 경우의 예시도를 보여주고 있다.
도 2를 살펴보면, IEEE 802.16e 시스템에서 FCH부는 QPSK변조 방식이므로 하나의 부반송파에 대하여 두 개의 연판정 데이터가 발생되며 슬롯이 2개의 심볼로 이뤄져 있으므로, 한번에 네 개의 병렬 데이터가 발생하게 된다. 따라서, 이를 디인터리버의 순열 처리기의 입력으로 하기 위해서는 순차적 데이터로 재정렬 시키는 블록이 필요하다. IEEE 802.16e 따르면, FCH의 디인터리버는 Ncbps는 96, Ncpc는 2, s는 1이 되므로 첫 번째 순열과 두 번째 순열을 계산해 보면 디인터리빙 비트 인덱스는 다음과 같다.
{0, 16, 32, 48, 64, 80, 1, 17, 33, 49, 65, 81, 2, 18, 34, 50, 66, 82, 3, 19, 35, 51, 67, 83,
4, 20, 36, 52, 68, 84, 5, 21, 37, 53, 69, 85, 6, 22, 38, 54, 70, 86, 7, 23, 39, 55, 71, 87,
8, 24, 40, 56, 72, 88, 9, 25, 41, 57, 73, 89, 10, 26, 42, 58, 74, 90, 11, 27, 43, 59, 75, 91,
12, 28, 44, 60, 76, 92, 13, 29, 45, 61, 77, 93, 14, 30, 46, 62, 78, 94, 15, 31, 47, 63, 79, 95}
이와 같은 순열을 매번 계산하는 것은, 불필요한 연산량과 하드웨어 자원을 소비하게 되므로 상기 비트 인덱스를 테이블로 가지는 메모리에 블록이 있으며, 이를 통해 입력되는 데이터를 디인터리빙하여 해당 주소에 저장하는 데이터 메모리 블록이 있다.
도 2에 도시된 바와 같이, IEEE802.16e의 FCH는 QPSK변조 방식을 사용하여 부 반송파당 두 개의 데이터가 생성되고, 두 심볼의 슬롯 구조이므로 한번에 4개의 데이터가 발생된다. 따라서 총 16비트의 병렬 데이터가 발생된다. 이를 디인터리빙하기 위해서는 4개의 병렬 데이터를 1개의 직렬 데이터로 출력을 하게 된다. 이때, 두번째 심볼의 데이터는 첫 번째 심볼 이후에 데이터가 발생하므로 추가적인 버퍼에 저장하게 된다. 순차적으로 발생된 순열은 식3과 식 4에 의해 생성된 데이블을 이용하여, 메모리의 해당 인덱스에 쓰여지게 된다. 이 과정이 디인터리빙 과정이다. 메모리에 쓰여진 데이터는 카운터에 의한 어드레스 증가에 따라, 메모리에서 읽어냄으로써 디인터리빙이 완료 된다.
그런데, IEEE802.16e 시스템에서 두 심볼씩 복조 된 FCH 값을 디인터리빙 하기 위해 정렬하기 위해서는 두번째 심볼을 메모리에 저장해야 한다. 이러한 경우, 두번째 심볼을 저장하기 위한 하드웨어적 구성요소가 요구된다. 또한, 병렬 데이터를 직렬 데이터로 처리하려면, 입력 데이터에 비해 4배 빠른 처리 클럭이 필요하거나 지연시간이 증가하게 되는 문제점이 있다. 또한, 디인터리빙 하기 위해 순열 주소정보를 저장하고 있는 추가적인 메모리가 필요하여 역시 하드웨어의 증가를 가져오게 된다.
본 발명의 목적은, 복조된 데이터(값)들을 일차원 순열로 재정렬하지 않고, 간단히 디인터리빙을 수행하는 디이터리빙 방법 및 디이터리버를 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 통신 시스템에서의 인터리버는,
12개의 메모리가 3개의 뱅크로 구성되는 그룹 메모리와;
상기 그룹 메모리의 주소를 가리키는 모듈로 8 및 모듈로 3을 포함하고, 상기 모듈로 3 카운터의 플래그 신호로 동작시켜 인덱스가 8씩 증가하도록 상기 그룹 메모리에 4개의 데이터를 병렬로 입력하는 입력 주소 제어부와;
모듈로 8 카운터를 포함하고, 공통주소 3비트를 이용하여 상기 모듈로 8 카운터에 의해 상기 그룹 메모리에서 데이터를 병렬로 읽어 출력하는 출력 주소 제어부;를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 그룹 메모리의 각 메모리는
사이즈는 길이가 8이고 4비트이고, 상기 각 메모리의 길이는 비터비 복호기 전단계인 FCH의 기본 길이인 96과 동일한 것을 특징으로 한다.
바람직하게는, 상기 그룹 메모리는
제1 뱅크와 제2 뱅크와 제3 뱅크로 구성되고,
상기 제1 뱅크는 메모리 0(GRP0), 메모리 3(GRP3), 메모리 6(GRP6), 메모리 9(GRP9)로 구성되고,
상기 제2 뱅크는 메모리 1(GRP1), 메모리 4(GRP4), 메모리 7(GRP7), 메모리 10(GRP10)로 구성되고,
상기 제3 뱅크는 메모리 2(GRP2), 메모리 5(GRP5), 메모리 8(GRP9), 메모리 11(GRP11로 구성된 것을 특징으로 한다.
바람직하게는, 상기 그룹 메모리 중
1열의 메모리들로서, 상기 메모리 0, 상기 메모리 1, 상기 메모리 2에는 복조된 제1심볼의 제1 데이터(sym0_0)가,
2열의 메모리들로서, 상기 메모리 3, 상기 메모리 4, 상기 메모리 5에는 복조된 제2심볼의 제1 데이터(sym1_0)가,
3열의 메모리들로서, 상기 메모리 6, 상기 메모리 7, 상기 메모리 8에는 복조된 제1심볼의 제2 데이터(sym0_1)가,
4열의 메모리들로서, 상기 메모리 9, 상기 메모리 10, 상기 메모리 11에는 복조된 제2심볼의 제2 데이터(sym1_1)가,
순차적으로 상기 입력주소제어부의 제어에 의해 병렬로 입력되는 것을 특징으로 한다.
바람직하게는, 상기 디인터리버는
두 심볼씩 복조된 값을 일차원 순열로 재정렬과정이 수행되지 않고 디인터리빙하는 것을 특징으로 한다.
또한, 상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 통신시스템에서 의 디인터리빙 방법은,
두 심볼씩 복조된 데이터를 입력하기 위해 그룹 메모리를 16개로 메모리로 분할하고 4개의 열로 메모리들로 구성하는 단계와;
상기 두 심볼씩 복조된 데이터를 인덱스가 8씩 증가하는 상기 4개 열의 메모리에 순차적으로 입력시키는 단계와;
모듈로 3 및 모듈로 8을 이용하여 상기 4개의 열에 입력된 상기 복조된 데이터를 출력시키는 단계;를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 4개 열의 메모리들은
1열의 메모리들로서, 상기 메모리 0, 상기 메모리 1, 상기 메모리 2에는 복조된 제1심볼의 제1 데이터(sym0_0)가,
2열의 메모리들로서, 상기 메모리 3, 상기 메모리 4, 상기 메모리 5에는 복조된 제2심볼의 제1 데이터(sym1_0)가,
3열의 메모리들로서, 상기 메모리 6, 상기 메모리 7, 상기 메모리 8에는 복조된 제1심볼의 제2 데이터(sym0_1)가,
4열의 메모리들로서, 상기 메모리 9, 상기 메모리 10, 상기 메모리 11에는 복조된 제2심볼의 제2 데이터(sym1_1)가,
순차적으로 상기 복조된 데이터가 병렬로 입력되는 것을 특징으로 한다.
본 발명은, 복조가 끝난 값들을 디인터리빙을 위하여 일차원 순열로 입력할 필요가 없어 지연시간이 줄어드는 효과가 있다. 또한, 본 발명은 디인터리버 테이 블 메모리를 사용할 필요가 없어, 하드웨어 자원 절약할 수 있는 효과가 있다. 또한 본 발명은 데이터 출력에서만 4배의 클럭을 사용함으로써, 디인터리버 처리에 대한 전력 소모를 줄일 수 있는 효과가 있다.
본 발명은 통신시스템의 디인터리빙 기술에 적용된다. 그러나, 본 발명은 이에 한정하지 않고, 본 발명의 기술적 사상이 적용될 수 있는 타 통신시스템의 데이터처리 기술에 적용될 수도 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항복들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여 본 발명에 바람직한 실시 예를 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 발명은 IEEE802.16e 시스템에서 두 심볼씩 병렬 처리된 값들을 처리하는 FCH의 디인터리빙 방법 및 인터리버이다. 본 발명은, 두 심볼씩 복조된 값을 일차원 순열로 재정렬 하지 않고 디인터리빙 할 수 있다. 또한, 본 발명은 디인터리빙 테이블을 사용하지 않고, 디인터리빙 비트 인덱스의 규칙성을 이용하여 수개의 메모리로 분할하여 나누어 쓰고, 순차로 읽어내어 간단히 디인터리빙 기능을 수행한다. 또한, 본 발명은 디인터리빙 순열식 혹은 순열 테이블 메모리 없이 입력 데이터를 디인터리빙 할 수 있다.
본 발명은 통신시스템(예를 들어, IEEE802.16e)에서 QPSK로 변조된 값들이 두 심볼씩 수신될 때, 총 4개의 병렬 데이터를 입력 가능하도록 구성된 것이다. 본 발명은 총 12개의 메모리와; 입력 주소 제어부와; 출력 주소 제어부;로 구성되어 있다. 각 메모리 하나의 사이즈는 길이가 8인 4비트를 기본 단위로 하고 있다. 즉, 총 메모리 길이는 비터비 복호기 전단계인 FCH의 기본 길이인 96과 동일하다. 입력 주소 제어기는 모듈로(modulo) 3카운터와 모듈로 8카운터로 구성되어 있다. 메모리 출력단 주소는 모듈로 96카운터에 의해 생성된다.
도 3은 본 발명의 일 실시 예로서, QPSK 복조 되어 두 심볼씩 병렬 수신된 데이터의 디인터리버 입력 순서이다.
도 3에 도시된 바와 같이, 본 발명에서는 QPSK 복조 된 값들이 두 심볼씩 병렬데이터로 수신 하게 된다. 가로축은 OFDM 심볼이며, 세로축은 부반송파를 보여주고 있다. 첫번째 심볼에 대한 부 반송파는 {sym0_0(n), sym0_1(n)}를 두번째 심볼 에 대한 부 반송파는 {sym1_0(n),sym1_1(n)}의 각 4비트 데이터를 발생한다. 여기서 n은 0부터 23까지의 부반송파 인덱스를 의미한다. 도 3의 테이블 안의 인덱스는 본래 디인터리버로 순차적으로 입력되어질 순서를 의미한다. 하지만 본 발명에서는 복조된 두 심볼이 동시에 처리하므로 인덱스가 부반송파 24개에 대해 {sym0_0(n), sym0_1(n), sym1_0(n), sym1_1(n)}인 병렬 데이터를 입력으로 하게 된다.
도 4는 본 발명의 일 실시 예로서, 복조 되어 두 심볼씩 병렬 수신된 Data에 대해 디인터리빙 순열식에 의한 테이블 값이다. 특히, 도 4는 도 3을 순열 식3과 식4에 의해 디인터리빙 된 인덱스를 적용한 값이다.
도 5는 본 발명의 일 실시 예로서, 디인터리버 순열 테이블의 메모리 그룹화한 도면이다.
도 6은 본 발명의 일 실시 예로서, 단위 사이즈가 4x8bits인 12개의 메모리를 사용한 FCH 디인터리버 구조이다. 이하, 도 4 내지 도 6을 참조하여 설명한다.
첫번째 심볼의sym0_1(n)과 두 번째 심볼의 sym1_0(n)의 위치를 도 5와 같이 바꾸면 가로축 심볼은 인덱스가 8씩 증가하는 4개의 열이 만들어진다. 첫번째 열에서 도 5와 같이 부 반송파 인덱스가 {0,3,6,9,12,15,18,21}를 첫 번째 그룹 GRP0, {1,4,7,10,13,16,19,22}를 두 번째 그룹 GRP1, {2,5,8,11,14,17,20,23}를 세 번째 그룹 GRP2이라 하면 각 그룹에서 부 반송파가 가진 디인터리버 순열 속성은 0에서 7까지 순차 증가하는 모듈로 8카운터와 동일함을 알 수 있다. 첫 번째 열과 같은 방법으로 나머지 세 개의 열에 대해서도 GRP3, GRP4, GRP5, GRP6, GRP7, GRP8, GRP9, GRP10, GRP11의 그룹을 동일하게 만들 수 있다. 그룹 하나를 4x8bits 메모리 하나로 정의할 경우 결과적으로 총 12개의 메모리가 필요하게 된다. 이에 대한 디인터리버를 위한 메모리 배치는 도 6과 같이 구성할 수 있다.
입력 포트 sym0_0은 메모리 GRP0, GRP1, GRP2의 입력으로, sym1_0은 GRP3, GRP4, GRP5의 입력으로, sym0_1은 GRP6, GRP7, GRP8로, sym1_1은 GRP9, GRP10, GRP11의 입력으로 한다. 여기서 GRP0, GRP3, GRP6, GRP9를 BANK0라 하고, GRP1, GRP4, GRP7, GRP10을 BANK1이라 하고 GRP2, GRP5, GRP8, GRP11을 BANK2라 하였을 때 각 BANK1, BANK2, BANK3의 입력을 선택하는 제어 신호는 모듈로-3 카운터에 의해 순차 카운트한 뒤 WR1, WR2, WR3를 생성하게 된다. 각 BANK에는 모듈로8 카운터에 의해 입력 주소를 만들게 되는데 이는 BANK1, BANK2, BANK3에 공통 입력 주소로 쓰이게 된다. 동작은 인터리버의 입력 순서에 따라 최초 모듈로3 카운터를 동작하게 되고 모듈로3 카운터가 순환이 완료될 때 마다 플래그 신호로 모듈로8 카운터를 1씩 증가하게 된다. 이와 같이 동작 시키게 되면 자동으로 해당 그룹 GRP0부터 GRP11까지의 메모리에 복조 된 데이터가 들어가게 된다. 출력은 GRP0부터 GRP11까지에 공통 주소 3비트 R_ADDR를 이용하여 모듈로 8카운터에 의해 그룹 메모리에서 읽어낸다. 이때, 그룹의 선택이 필요한데 모듈로 8카운터가 한번 순환될 때마다 플래그를 받아 모듈로 3카운터를 순환시켜 12개의 그룹 메모리 출력 포트를 선택하면 원하는 디인터리버 출력이 나오게 된다. 이는 비터비 복호기의 입력으로 들어가게 된다.
이하, 본 발명에 따른 디인터리버를 설명한다.
본 발명은 통신시스템에서 예를 들어, QPSK로 변조된 값들이 두 심볼씩 수신 될 때, 총 4개의 병렬 데이터를 입력 가능하도록 구성된 것이다. 본 발명은 총 12개의 메모리와; 입력 주소 제어부와; 출력 주소 제어부;로 구성되어 있다. 각 메모리 하나의 사이즈는 길이가 8인 4비트를 기본 단위로 하고 있다. 즉, 총 메모리 길이는 비터비 복호기 전단계인 FCH의 기본 길이인 96과 동일하다. 입력 주소 제어기는 모듈로(modulo) 3카운터와 모듈로 8카운터로 구성되어 있다. 메모리 출력단 주소는 모듈로 96카운터에 의해 생성된다.
본 발명의 인터리버의 구성을 보다 상세히 설명하면 다음과 같가.
12개의 메모리가 3개의 뱅크로 구성되는 그룹 메모리와; 상기 그룹 메모리의 주소를 가리키는 모듈로 8 및 모듈로 3을 포함하고, 상기 모듈로 3 카운터의 플래그 신호로 동작시켜 인덱스가 8씩 증가하도록 상기 그룹 메모리에 4개의 데이터를 병렬로 입력하는 입력 주소 제어부와; 모듈로 8 카운터를 포함하고, 공통주소 3비트를 이용하여 상기 모듈로 8 카운터에 의해 상기 그룹 메모리에서 데이터를 병렬로 읽어 출력하는 출력 주소 제어부;를 포함하여 구성된다.
한편, 여기까지 설명된 본 발명에 따른 방법은 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 본 발명에 따른 방법은 저장 매체(예를 들어, 이동 단말기 내부 메모리, 플래쉬 메모리, 하드 디스크, 기타 등등)에 저장될 수 있고, 프로세서(예를 들어, 이동 단말기 내부 마이크로 프로세서)에 의해서 실행될 수 있는 소프트웨어 프로그램 내에 코드들 또는 명령어들로 구현될 수 있다.
이상, 본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시 적인 것에 불과하며, 본 발명 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 인터리버와 디인터리버의 구조이다.
도 2는 종래 디인터리버(deinterleaver)의 블록도이다.
도 3은 본 발명의 일 실시 예로서, QPSK 복조 되어 두 심볼씩 병렬 수신된 데이터의 디인터리버 입력 순서이다.
도 4는 본 발명의 일 실시 예로서, 복조 되어 두 심볼씩 병렬 수신된 Data에 대해 디인터리빙 순열식에 의한 테이블 값이다. 특히, 도 4는 도 3을 순열 식3과 식4에 의해 디인터리빙 된 인덱스를 적용한 값이다.
도 5는 본 발명의 일 실시 예로서, 디인터리버 순열 테이블의 메모리 그룹화한 도면이다.
도 6은 본 발명의 일 실시 예로서, 단위 사이즈가 4x8bits인 12개의 메모리를 사용한 FCH 디인터리버 구조이다. 이하, 도 4 내지 도 6을 참조하여 설명한다.
Claims (7)
12개의 메모리가 3개의 뱅크로 구성되는 그룹 메모리와;
상기 그룹 메모리의 주소를 가리키는 모듈로 8 및 모듈로 3을 포함하고, 상기 모듈로 3 카운터의 플래그 신호로 동작시켜 인덱스가 8씩 증가하도록 상기 그룹 메모리에 4개의 데이터를 병렬로 입력하는 입력 주소 제어부와;
모듈로 8 카운터를 포함하고, 공통주소 3비트를 이용하여 상기 모듈로 8 카운터에 의해 상기 그룹 메모리에서 데이터를 병렬로 읽어 출력하는 출력 주소 제어부;를 포함하는 것을 특징으로 하는 통신 시스템에서의 인터리버.
제1항에 있어서, 상기 그룹 메모리의 각 메모리는
사이즈는 길이가 8이고 4비트이고,
상기 각 메모리의 길이는 비터비 복호기 전단계인 FCH의 기본 길이인 96과 동일한 것을 특징으로 하는 통신 시스템에서의 인터리버.
제2항에 있어서, 상기 그룹 메모리는
제1 뱅크와 제2 뱅크와 제3 뱅크로 구성되고,
상기 제1 뱅크는 메모리 0(GRP0), 메모리 3(GRP3), 메모리 6(GRP6), 메모리 9(GRP9)로 구성되고,
상기 제2 뱅크는 메모리 1(GRP1), 메모리 4(GRP4), 메모리 7(GRP7), 메모리 10(GRP10)로 구성되고,
상기 제3 뱅크는 메모리 2(GRP2), 메모리 5(GRP5), 메모리 8(GRP9), 메모리 11(GRP11)로 구성된 것을 특징으로 하는 통신 시스템에서의 인터리버.
제3항에 있어서, 상기 그룹 메모리 중
1열의 메모리들로서, 상기 메모리 0, 상기 메모리 1, 상기 메모리 2에는 복조된 제1심볼의 제1 데이터(sym0_0)가,
2열의 메모리들로서, 상기 메모리 3, 상기 메모리 4, 상기 메모리 5에는 복조된 제2심볼의 제1 데이터(sym1_0)가,
3열의 메모리들로서, 상기 메모리 6, 상기 메모리 7, 상기 메모리 8에는 복조된 제1심볼의 제2 데이터(sym0_1)가,
4열의 메모리들로서, 상기 메모리 9, 상기 메모리 10, 상기 메모리 11에는 복조된 제2심볼의 제2 데이터(sym1_1)가,
순차적으로 상기 입력주소제어부의 제어에 의해 병렬로 입력되는 것을 특징으로 통신 시스템에서의 디인터리버.
제1항에 있어서, 상기 디인터리버는
두 심볼씩 복조된 값을 일차원 순열로 재정렬과정이 수행되지 않고 디인터리빙하는 것을 특징으로 하는 통신 시스템에서의 디인터리버.
두 심볼씩 복조된 데이터를 입력하기 위해 그룹 메모리를 16개로 메모리로 분할하고 4개의 열로 메모리들로 구성하는 단계와;
상기 두 심볼씩 복조된 데이터를 인덱스가 8씩 증가하는 상기 4개 열의 메모리에 순차적으로 입력시키는 단계와;
모듈로 3 및 모듈로 8을 이용하여 상기 4개의 열에 입력된 상기 복조된 데이터를 출력시키는 단계를 포함하는 것을 특징으로 하는 통신시스템에서의 디인터리빙 방법.
제6항에 있어서, 상기 4개 열의 메모리들은
1열의 메모리들로서, 상기 메모리 0, 상기 메모리 1, 상기 메모리 2에는 복조된 제1심볼의 제1 데이터(sym0_0)가,
2열의 메모리들로서, 상기 메모리 3, 상기 메모리 4, 상기 메모리 5에는 복조된 제2심볼의 제1 데이터(sym1_0)가,
3열의 메모리들로서, 상기 메모리 6, 상기 메모리 7, 상기 메모리 8에는 복조된 제1심볼의 제2 데이터(sym0_1)가,
4열의 메모리들로서, 상기 메모리 9, 상기 메모리 10, 상기 메모리 11에는 복조된 제2심볼의 제2 데이터(sym1_1)가,
순차적으로 상기 복조된 데이터가 병렬로 입력되는 것을 특징으로 통신 시스템에서의 디인터리빙 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090019009A KR20100100237A (ko) | 2009-03-05 | 2009-03-05 | 통신시스템에서의 디인터리버 및 디인터리빙 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090019009A KR20100100237A (ko) | 2009-03-05 | 2009-03-05 | 통신시스템에서의 디인터리버 및 디인터리빙 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100100237A true KR20100100237A (ko) | 2010-09-15 |
Family
ID=43006333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090019009A KR20100100237A (ko) | 2009-03-05 | 2009-03-05 | 통신시스템에서의 디인터리버 및 디인터리빙 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100100237A (ko) |
-
2009
- 2009-03-05 KR KR1020090019009A patent/KR20100100237A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5437281B2 (ja) | 周波数ダイバーシティのためのシステム及び方法 | |
JP4296172B2 (ja) | インタリーバ及びデインタリーバシステム | |
JP2003224615A (ja) | 高速ダウンリンクパケットアクセス移動通信システムにおけるシンボルマッピングのためのインターリービング装置及び方法 | |
CN104868971A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN104868972A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
TW200915768A (en) | System and method for frequency diversity | |
CN105376008A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN104901772A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
Iqbal et al. | Efficient interleaver design for MIMO-OFDM based communication systems on FPGA | |
KR20100100237A (ko) | 통신시스템에서의 디인터리버 및 디인터리빙 방법 | |
CN105450333A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN109728826B (zh) | 一种数据交织与解交织方法和装置 | |
KR100888505B1 (ko) | 통신 시스템의 송신 장치 및 방법과, 수신 장치 및 방법 | |
CN104935399A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
Wu et al. | A high speed interleaver for emerging wireless communications | |
CN112291051B (zh) | 一种ofdm系统中的低时延高效交织方法 | |
CN104901773A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN104868970B (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
KR100782214B1 (ko) | 멀티 캐리어 인터리빙 구현장치 및 방법 | |
CN104935398A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN114745076A (zh) | 一种基于fpga的码长自适应交织/解交织器及方法 | |
CN105450344A (zh) | Ldpc码字的交织和映射方法及解交织解映射方法 | |
CN105099615A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
KR101365372B1 (ko) | 이동 통신 시스템에서의 고속 패킷데이타 채널의 인터리빙방법 | |
Patel | Power and Area Efficient Hardware Architecture for WiMAX Interleaving |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |