KR20050045766A - 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법 - Google Patents

기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법 Download PDF

Info

Publication number
KR20050045766A
KR20050045766A KR1020030079942A KR20030079942A KR20050045766A KR 20050045766 A KR20050045766 A KR 20050045766A KR 1020030079942 A KR1020030079942 A KR 1020030079942A KR 20030079942 A KR20030079942 A KR 20030079942A KR 20050045766 A KR20050045766 A KR 20050045766A
Authority
KR
South Korea
Prior art keywords
code
channel
output
read
interleaving
Prior art date
Application number
KR1020030079942A
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 KR1020030079942A priority Critical patent/KR20050045766A/ko
Publication of KR20050045766A publication Critical patent/KR20050045766A/ko

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/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/276Interleaving address generation
    • 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/2782Interleaver implementations, which reduce the amount of required interleaving memory

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 고속 패킷 데이터 통신 시스템에서 무선상의 버스트 에러에 견딜 수 있도록 전송 데이터를 소정 규칙에 따라 인터리빙하는 장치 및 방법에 관한 것이다. 제1 읽기 어드레스 발생기는 입력 부호심볼들 중 동기 채널의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하며, 제2 읽기 어드레스 발생기는 입력 부호심볼들 중 공통 전력제어 채널(CPCCH)의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생한다. 부호심볼 인덱스 발생기는 입력 부호심볼들 중 상기 동기 채널이나 상기 CPCCH가 아닌 다른 채널들의 부호심볼들을 나타내는 부호심볼 인덱스들을 발생하고, BRO 인터리버는 상기 부호심볼 인덱스들에 해당하는 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생한다. 인터리빙 메모리는 부호심볼들을 수신하여 행의 순서로 저장하고 소정 인터리빙 규칙에 대응하는 상기 읽기 어드레스들에 따라 출력한다. 이러한 본 발명은 고속의 데이터 처리가 가능하고 인터리빙을 위한 여분의 메모리를 사용할 필요가 없으므로 하드웨어 리소스 측면에서도 효과적이다.

Description

기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법{INTERLEAVING LOGIC OF BASE STATION MODEM AND INTERLEAVING METHOD THEREFOR}
본 발명은 고속 패킷 데이터 통신 시스템에 관한 것으로서, 특히 무선상의 버스트 에러에 견딜 수 있도록 전송 데이터를 소정 규칙에 따라 인터리빙하는 장치 및 방법에 관한 것이다.
일반적으로 CDMA(Code Division Multiple Access)2000, WCDMA/UMTS(Wideband Code Division Multiple Access/Universal Mobile Telecommunications System), GPRS(General Packet Radio System) 및 CDMA2000 1xEV-DV(Evolution Data and Voice)와 같은 이동통신시스템은 이동교환국(Mobile Switching Center: MSC)과, 기지국 제어기(Base Station Controller: BSC)와, 기지국 송수신기(Base Transceiver System: BTS)를 포함한다. 전형적인 이동통신시스템은 이동 단말 가입자에게 음성 서비스만을 제공하는 형태였으나, 사용자의 요구가 증대되고 통신 기술이 비약적으로 발전함에 따라 음성 서비스뿐만 아니라 화상통신 및 인터넷을 위한 고속 패킷 데이터 서비스까지 지원하는 형태로 발전하고 있는 추세이다.
동기식 CDMA(Code Division Multiple Access)2000 및 비동기식 UMTS(Universal Mobile Telecommunication Service)와 같은 이동통신 시스템에서는 멀티미디어 데이터의 신뢰성 있는 전송을 위해 터보 부호화(Turbo Encoding)와 인터리빙(Interleaving)을 사용한다. 터보 부호화는 낮은 신호대 잡음비에서도 비트 에러율(Bit Error Rate: BER) 관점에서 매우 양호한 정보 복원 성능을 보이는 것으로 알려져 있다. 인터리빙은 페이딩 환경에서 비트들의 손상이 한곳에 집중되지 않고 여러 곳으로 분산되도록 한다. 이러한 인터리빙은 인접한 비트들이 랜덤하게 페이딩 영향을 받도록 함으로서 군집에러(burst error)가 발생하지 않도록 해 주어 채널 부호화의 효과를 보다 높여준다.
도 1은 전형적인 인터리버를 포함하는 디지털 이동통신 시스템의 간략화된 송신기 구조를 나타낸 것이다.
상기 도 1을 참조하면, 터보 부호화기(Turbo Encoder)(10)는 입력 정보 시퀀스를 소정 부호율(Coding Rate)에 따라 부호화하여 부호화된 심볼들(Coded Symbols)(이하 부호심볼들이라 칭함)을 출력한다. 상기 부호심볼들은 인터리버(12)에 의하여 소정 인터리빙 규칙에 따라 인터리빙되고, 변조기(14)에 의하여 QPSK(Quadrature Phase Shift Keying), 8PSK(8-ary PSK), 16QAM(16-ary Quadrature Amplitude Modulation), 64QAM(64-ary QAM) 등의 변조방식에 따라 동위상 성분(In-phase element: I)과 직교위상 성분(Quadrature element: Q)으로 이루어진 변조 심볼들로 변환된다. 상기 변조 심볼들은 확산기(16)에 의해 소정 확산 코드와 곱해짐으로써 확산된다. 도시하지 않을 것이지만 상기 확산된 데이터는 RF(Radio Frequency) 부에 의하여 반송파에 실려진 후 안테나를 통해 방사된다.
단순한 인터리버는 인터리빙을 수행하기 위하여 인터리빙 메모리라 불리는 특별한 랜덤 액세스 메모리(Random Access Memory: RAM)를 사용한다. 순차적인 데이터 값들은 인터리빙 메모리에 행의 순서대로 기록되고, 열의 순서로 읽혀진다. 이러한 방식에 의해 순차적인 데이터 값들이 섞여진다.(scrambling) 좀더 복잡한 구조의 인터리버는 입력 데이터 값들을 소정 쓰기 어드레스에 따라 인터리빙 메모리에 저장하고 소정 읽기 어드레스에 따라 읽어냄으로써 동작한다. 이러한 인터리빙 구조는 그 특성상 매우 많은 연산과 큰 메모리 용량을 필요로 한다.
3GPP 및 3GPP2에서 추진중인 CDMA2000 표준안에 따르면, 기지국은 전송하고자 하는 패킷 데이터의 열을 채널 부호기에 의해 부호화하여 생성한 부호심볼들을 소정 크기의 서브블럭(sub-block)들로 분할하고, 상기 분리된 서브블럭들을 각각 인터리빙한다. 단말기는 상기 인터리빙된 데이터의 열을 수신하여 부호심볼의 형태로 변환한 후 기지국에서 사용한 인터리빙의 역과정인 디인터리빙을 거쳐, 채널 부호기의 출력 순서와 동일한 순서로 복원한다.
이러한 고속 패킷 데이터 통신 시스템에서 대량의 데이터를 처리하기 위해서는 많은 하드웨어 자원이 필요하며 또한 데이터의 전송을 지연시키지 않을 정도의 고속 처리가 필요하다. 따라서 CDMA2000 표준안에 따른 통신을 지원하는 기지국에서 하드웨어 자원을 최소화하면서 고속 연산에 적합한 인터리빙 모듈을 필요로 하게 되었다.
따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명의 목적은, CDMA2000 기지국을 위한 인터리빙 로직 및 인터리빙 방법을 제공하는 것이다.
본 발명의 목적은 채널 용량을 증대시키고 고속의 데이터 처리를 위한 효율적인 인터리빙 로직 및 방법을 제공하는 것이다.
본 발명의 목적은 하드웨어 자원을 최소화하면서 고속 연산에 적합한 인터리빙 로직 및 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 실시예는, CDMA2000 기지국의 모뎀을 위한 인터리빙 로직에 있어서,
부호심볼들을 수신하여 행의 순서로 저장하고 소정 인터리빙 규칙에 대응하는 읽기 어드레스들에 따라 출력하는 인터리빙 메모리와,
상기 부호심볼들 중 동기 채널의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 제1 읽기 어드레스 발생기와,
상기 부호심볼들 중 공통 전력제어 채널(CPCCH)의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 제2 읽기 어드레스 발생기와,
상기 부호심볼들 중 상기 동기 채널이나 상기 CPCCH가 아닌 다른 채널들의 부호심볼들을 나타내는 부호심볼 인덱스들을 발생하는 부호심볼 인덱스 발생기와,
상기 부호심볼 인덱스들에 해당하는 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 비트역전(BRO) 인터리버로 구성되는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2는 본 발명에 따라 각 채널들을 위한 읽기 어드레스들을 이용하는 인터리빙 로직의 구조를 나타낸 것이다.
상기 도 2를 참조하면, 패킷 메모리(100)는 부호화기(도시하지 않음)로부터의 부호심볼들을 수신하여 패킷 단위로 저장하며, 인터리빙 메모리(200)는 상기 패킷 메모리(100)로부터 순차적으로 출력되는 부호심볼들 행의 순서로 저장하고 소정 인터리빙 규칙에 대응하는 읽기 어드레스들에 따라 출력한다. 상기 읽기 어드레스들은 읽기 어드레스 발생을 위한 구성요소들(300, 400, 500, 600)에 의해 발생된다.
제1 읽기 어드레스 발생기(read address generator)(300)는 동기 채널(Synchronous Channel)의 부호심볼들을 위한 읽기 어드레스들을 발생하며, 제2 읽기 어드레스 발생기(400)는 공통 전력제어 채널(Common Power Control Channel: 이하 CPCCH라 칭함)의 부호심볼들을 위한 읽기 어드레스들을 발생한다. 부호심볼 인덱스 발생기(Coded Symbol Index Generator)(500)는 다른 채널들의 부호심볼들을 위한 부호심볼 인덱스들을 발생하며, 비트역전(Bit Reverse Operation: 이하 BRO라 칭함) 인터리버(BRO Interleaver)(600)는 상기 부호심볼 인덱스들을 이용하여 상기 다른 채널들을 위한 읽기 어드레스들을 발생한다.
이하 상기한 본 발명의 각 구성요소들의 동작을 상세히 설명한다.
먼저, 동기채널의 데이터 인터리빙을 위한 읽기 어드레스들을 발생하는 상기 제1 읽기 어드레스 발생기(300)의 동작을 설명한다.
동기채널은 80ms 단위의 동기채널 프레임들을 전달하며 동기채널 프레임들은 256칩 길이의 부호심볼들로 구성된다. 동기채널은 0 내지 511 사이의 범위에서 64칩 단위로 PN(Pseudo-random Noise) 옵셋을 가질 수 있으므로, 동기채널 데이터의 인터리빙을 위한 읽기 어드레스는 이를 고려하여 생성되어야 한다.
제1 읽기 어드레스 발생기(300)는 내부 카운팅에 의해 만들어진 동기채널의 부호심볼 인덱스에 대해 해당 인터리빙 규칙을 적용하여 동기채널의 인터리빙을 위한 읽기 어드레스들을 만든다. 동기채널을 위한 인터리빙 규칙은 도 3에 도시한 바와 같다.
상기 도 3을 참조하면, 인터리빙 이전에 9비트의 동기채널 데이터 C8 내지 C0 중 처음 2비트 C8, C7은 프레임 인덱스이고, 나머지 7비트 C6, C5, C4, C3, C2, C1, C0은 부호심볼 인덱스이다. 인터리빙이 이루어진 이후, 상기 프레임 인덱스는 그대로 인터리빙된 데이터의 처음 2비트 C'8, C'7이 된다. 상기 부호심볼 인덱스는 비트 역전(Bit Reverse)에 의해 C0, C1, C2, C3, C4, C5, C6의 순서로 변환된다.
도 4는 본 발명에 따라 동기채널의 인터리빙 읽기 어드레스들을 생성하는 제1 읽기 어드레스 발생기(300)의 상세 구성을 도시한 것이다.
상기 도 4를 참조하면, 입력으로 주어진 칩 카운트 값 chip_cnt[16:0]은 상위 6비트인 LDivCnt[5:0]과 하위 11비트인 DivCnt[16:6]으로 구분된다. Mod_80ms_counter[5:0]은 상기 LDivCnt[5:0]에 대응되며 1.25ms 단위로 80ms 구간을 카운팅하는 카운트 값으로서 0 ~ 63 PCG의 범위를 갖는다. PCG_counter[10:0]은 상기 DivCnt[16:6]에 대응되며 칩 단위로 1.25ms 구간을 카운팅하는 카운트 값으로서, 0 ~ 1535 chip의 범위를 갖는다. (1칩??0.8138㎲)
곱셈기(302)는 상기 Mod_80ms_counter[5:0]에 24를 곱한다. 상기 곱셈기(302)의 다른 한 입력인 24는 1PCG 구간인 1536 칩을 64 칩 옵셋으로 나눈 값이다. 덧셈기(304)는 상기 곱셈기(302)의 출력에 상기 PCG_counter[10:6]을 더한다. 이로써 입력 카운트 값은 0 내지 1535의 범위 내에서 80ms 구간에 대한 64 칩 단위의 카운트 값으로 변환된다. 이를 수학식으로 표현하면 하기 <수학식 1>과 같다.
상기 덧셈기(304)의 출력은 D-플립플롭으로 구현된 지연기(306)에 일시 저장된다. PN 옵셋 값 channel_ofs[8:0] 또한 지연기(310)에 저장된다. 뺄셈기(308)는 상기 지연기(306)에 저장된 카운트 값에서 상기 지연기(310)에 저장된 채널 옵셋을 뺀다. 이를 수학식으로 나타내면 하기 <수학식 2>와 같다.
상기 PN 옵셋 channel_ofs은 0 ~ 511까지의 값을 가지며, 동기채널의 채널 옵셋을 나타낸다. 상기 뺄셈기(308)의 출력은 지연기(312)에 저장된다. 이때 연산기(314)는 2비트 라이트 쉬프터(2-bit right shift)로서 결과적으로 입력을 4로 나누는 기능을 수행한다. 이를 수학식으로 표현하면 하기 <수학식 3>과 같다.
비트 역전기(316)는 상기 부호심볼 인덱스 C로부터 앞서 설명한 동기채널의 인터리빙 규칙을 적용하여 4개의 부호심볼들에 대한 읽기 어드레스를 생성한다. 상기 생성된 읽기 어드레스는 4개의 부호심볼들을 읽어내기 위하여 4번 반복해서 사용된다. 상기 인터리빙 규칙은 부호심볼 인덱스 sync_index[8:0]의 처음 2비트를 프레임 인덱스 sync_index[8:7]로 하고 나머지 7비트의 비트 순서를 거꾸로 배열하여 sync_index[0:6]로 하는 것이다.
구체적으로 설명하면, 첫 번째 부호심볼을 위한 읽기 어드레스는 (C8 C7 C0 C1 C2 C3 C4 C5 C6)이고, 두 번째 부호심볼을 위한 읽기 어드레스는 (C8 C7 C0 C1 C2 C3 C4 C5 C6)이고, 세 번째 부호심볼을 위한 읽기 어드레스는 (C8 C7 C0 C1 C2 C3 C4 C5 C6)이고, 네 번째 부호심볼을 위한 읽기 어드레스는 (C8 C7 C0 C1 C2 C3 C4 C5 C6)이다.
다음으로, CPCCH의 데이터 인터리빙을 위한 읽기 어드레스들을 발생하는 상기 제2 읽기 어드레스 발생기(400)의 동작을 설명한다.
단말에서 전송하는 역방향 전송전력을 제어하기 위해 CPCCH를 통해 전송되는 정보는 2 비트로서, 상위 1비트(Most Significant Bit: MSB)는 심볼 존재 지시자(Symbol Present Indicator)이고 하위 1비트(Least Significant Bit: LSB)는 전력제어비트(Power Control Bit: PCB)이다.
도 5는 CPCCH를 통해 전달되는 전력제어그룹(PCG)의 패킷 데이터 포맷을 나타낸 것이다. 1.25ms, 2.5ms, 5ms 길이의 전력제어그룹은 도시한 바와 같은 형태로 패킷 메모리(100)에 기록되고 데이터 처리 시작 명령에 의하여 인터리빙 메모리(200)로 전송된다. 패킷 메모리(100)에 기록된 상기 전력제어그룹은 8개의 비트쌍들로 나누어지며 각 비트 쌍들은 심볼존재 지시자와 전력제어비트로 이루어진다. 상기 전력제어그룹의 홀수 번째 비트 쌍들은 Q 채널을 위한 것이며 짝수번째 비트 쌍들은 I 채널을 위한 것이다.
인터리빙 메모리(200)에 저장된 CPCCH의 PCB를 읽어내기 위한 제2 읽기 어드레스 발생기(400)의 상세 구조는 도 6에 나타내었다. 여기서 사용되는 롱 코드 데시메이션에 대하여 설명하면 다음과 같다. 즉, CDMA 시스템에서는 미리 정해지는 롱 코드를 매 칩마다 1 비트씩 생성하여 사용하고 있다. 즉 매 칩마다 1 비트의 롱 코드 값이 발생하는데, 롱 코드 데시메이션 값이란 이러한 롱 코드의 값을 특정 시점에서 추출함으로써 생성되는 것이다.
상기 도 6을 참조하면, 다중화기(402)는 프레임 길이 지시자 frm_len[1:0]에 따라 입력으로 주어진 롱 코드 데시메이션 값 2'b00, lc_dec[4:2]와 1'b0, lc_dec[6:3]과 lc_dec[8:4]와 5'b000 중 하나를 선택하며, 다중화기(406) 또한 프레임 길이 지시자 frm_len[1:0]에 따라 입력으로 주어진 롱 코드 데시메이션 값 2'b00, lc_dec[1:0]과 1'b0, lc_dec[2:0]과 lc_dec[3:0]과 4'b000 중 하나를 선택한다. 여기서 2'b00 등은 2진수인 2비트의 "00"을 의미한다. 또한 프레임 길이 지시자 frm_len[1:0]은 공통 전력 제어 채널(Common Power Control Channel: CPCCH)에 사용될 수 있는 1.25ms, 2.5ms, 5ms 중 어느 하나를 나타낸다.
덧셈기(404)는 상기 다중화기들(402, 406)의 출력들을 더해 상대적 옵셋(relative offset) rel_ofs[5:0]을 구하여, 지연기(408)에 저장한다.
곱셈기(420)는 프레임 길이 지시자 frm_len[1:0]에 따라 입력으로 주어진 11비트 카운트 값의 하위 2비트 Mod_80ms_counter[1:0]에 12를 곱한다. 덧셈기(422)는 상기 곱셈기(420)의 출력에 입력으로 주어진 카운트 값의 상위 4비트 PCG_counter[10:7]을 곱해 초기 옵셋 init_ofs[6:0]을 구하여, 지연기(424)에 저장한다. 상기 곱셈기(420)의 한 입력인 12는 상기 입력 카운트 값을 프레임 길이에 따라 128 칩 단위의 카운트 값으로 변환하기 위하여, 1PCG 구간의 1536 칩을 128 칩으로 나눈 값이다. 여기서 128 칩 단위를 사용하는 것은 동일한 옵셋이 적용되는 2개의 I/Q 심볼들을 하나의 조합으로 고려할 경우 칩 길이가 128 칩이기 때문이다.
다중화기(412)는 프레임 길이에 따라 12, 24, 48 중 어느 하나를 선택하여 출력하고, 뺄셈기(410)는 상기 지연기(408)에서 읽어낸 rel_ofs[5:0]에서 상기 다중화기(412)로부터의 출력을 빼어, rel_ofs[5:0]과 init_ofs[6:0]의 단위를 일치시킨다. 그러면 덧셈기(414)는 상기 뺄셈기(410)로부터의 출력과 상기 지연기(424)에서 읽어낸 init_ofs[6:0]을 더한다.
모듈로 연산기(416)는 상기 덧셈기(414)의 출력에 대해 모듈로-N 연산을 수행하여 CPCCH를 위한 유효 옵셋(effective Offset)이 '0'인 초기 옵셋에 해당하는 심볼 인덱스 CPCCH_index[6:0]을 구한다. 상기 CPCCH_index[6:0]은 지연기(418)에 저장된다. 이를 수학식으로 나타내면 하기 <수학식 4>와 같다.
여기서 N은 CPCCH를 통해 전송되는 데이터의 개수를 의미하는데, 프레임 길이에 따라 12, 24, 48의 값을 가진다. 즉, 프레임의 길이에 따라 1.25ms일 때 12개, 2.5ms일 때 24개, 5ms일 때 48개가 된다.
다중화기(426)는 DivCnt[1:0]에 따라 상기 CPCCH_index[6:0]에 하위 2비트, 00, 01, 10, 11 중 어느 하나를 붙여 동일한 옵셋으로 전송될 I/Q 두 심볼들(4-bit)에 대한 읽기 어드레스들 Csym_idx[8:0]을 생성한다. 여기서 Csym_idx[8:0]는 읽기 어드레스가 된다.
도 7은 CPCCH를 위한 상대적 옵셋 rel_ofs의 계산에 필요한 파라미터들을 정의한 것으로서, 상기 도 7에 나타낸 바와 같이, 1.25ms, 2.5ms, 5.0ms 길이인 전력제어그룹(PCG)에 대한 롱 코드 데시메이션 값의 길이 L은 각각 5, 7, 9이고, 상기 롱 코드 데시메이션 값은 각각 2, 3, 4 비트 길이(L1)를 가지는 제1 비트 블록과 각각 3, 4, 5 비트 길이(L2)를 가지는 제2 비트 블록으로 구분된다. 상기 롱 코드 데시메이션 값은 옵셋 위치비트들이 된다. 그러면, 상기 PCG 길이들에 대해 계산된 상대적 옵셋은 각각 0 내지 10, 0 내지 22, 0 내지 46 범위의 값이 된다.
도 8a 내지 도 8c는 CPCCH를 위해 L 비트의 롱 코드 데시메이션 값으로부터 상대적 옵셋 rel_ofs를 구하는 동작을 보인 것이다.
상기 도 8a는 입력으로 주어진 롱 코드 데시메이션 값을 나타낸 것으로서, 롱 코드 데시메이션 값은 도 8b에 나타낸 바와 같이 각각 L1비트와 L2비트인 2개의 블록들로 구분된다. 여기에서는 1.25ms의 전력제어그룹을 나타내었으며 상기 롱 코드 데시메이션 값은 '10011'이므로, 상기 롱 코드 데시메이션 값은 2비트의 제1 블록 '01'과 3비트의 제2 블록 '110'으로 구분된다. 상기 두 블록들은 부호없는 정수(unsigned integer) P1과 P2로 변환된다. 상기 P1은 1이고 상기 P2는 6이다. 상대적 옵셋 값은 상기 P1과 P2의 합인 7로 계산된다.
심볼 프로세서 #0의 경우, 상대적 옵셋 값은 이득 제어된 CPCCH을 위한 이득의 읽기 어드레스로도 사용된다. 심볼 프로세서 #0은 인터리빙 장치를 포함하는 상위 블록이며, 이득 읽기 어드레스란 메모리에 저장된 이득을 읽기 위한 어드레스이다.
다음으로, 상기 부호심볼 인덱스 발생기(500)의 동작을 설명한다.
상기 부호심볼 인덱스 발생기(500)는, 채널 별로 설정된 부호심볼 길이와, 채널 옵셋을 나타내는프레임 스테거링 인덱스(frame staggering index)와, 프레임 길이를 이용하여 변조기 내부 카운터(modulator internal counter)로부터 프레임 구간에서의 부호심볼 인덱스 및 PCG안에서의 부호심볼 인덱스를 만들어 BRO 인터리버(600)로 제공하는 기능을 수행한다. 여기서 프레임 스테거링 인덱스는 1.25ms 프레임 단위로 설정된다.
먼저 상기 부호심볼 인덱스 발생기(500)는 미리 설정된 프레임 길이에 따라 스테거링 인덱스를 적용하여 카운트 값을 변환함으로써 채널의 옵셋 인덱스를 구한다. 하기된 <수학식 5>는 상기 채널의 옵셋 인덱스를 구하기 위한 프로그램 코드를 나타낸 것이다.
상기 부호심볼 인덱스 발생기(500)는 80ms 카운트 값 Mod_80ms_counter에서 상기 옵셋 인덱스를 빼서 채널의 현재 PCG 인덱스를 구하고, 부호심볼 길이 유형에 따라 1.25ms 구간의 부호심볼 수를 구한다. 그리고 상기 PCG 인덱스에 상기 구해진 1.25ms 구간의 부호심볼 개수를 곱하고, 또한 현재 1.25ms 구간에서의 부호심볼 인덱스를 구한다. 마지막으로 상기 부호심볼 인덱스 발생기(500)는 상기 곱셈 결과에 상기 부호심볼 인덱스를 더하여 현재 읽어낼 부호심볼 인덱스를 구한다.
여기서 변조방식(modulation type)과 전송 다이버시티(Transmit Diversity: TD)의 사용 여부에 따라 1 칩 구간동안 1개 채널에 할당된 4개의 시간슬롯들에서 읽어낼 인덱스의 값이 달라진다. 즉, BPSK의 경우 1개의 부호심볼을 4번 반복해서 읽어낸다. QPSK와 비직교 전송 다이버시티(Non-Orthogonal Transmit Diversity: Non-OTD)의 경우 2개의 부호심볼들을 2번씩 읽어낸다. QPSK와 직교 전송 다이버시티(OTD)의 경우 4개의 부호심볼들을 읽어낸다.
도 9a 내지 도 9c는 칩 단위로 1.25ms 구간을 카운팅하는 PCG_counter와 1.25ms 단위로 80ms 구간을 카운팅하는 Mod_80ms_counter를 이용하여 동기채널과 CPCCH를 제외한 다른 채널 종류에 대하여 부호심볼 인덱스를 생성하는 부호심볼 인덱스 발생기(500)의 상세 구성을 나타낸 것이다.
상기 도 9a에 나타낸 장치(502)에 대해 설명하면, 다중화기(514)는 프레임 길이 지시자 frm_len[2:0]에 따라, 칩 카운트 값 chip_cnt[16:0] 중 chip_cnt[16:11]과 {chip_cnt[16:12], channel_ofs[0]}과 {chip_cnt[16:13], channel_ofs[1:0]}과 {chip_cnt[16:14], channel_ofs[2:0]}과 {chip_cnt[16:15], channel_ofs[3:0]}과 {chip_cnt[16], channel_ofs[4:0]}과 channel_ofs[5:0] 중 어느 하나를 선택한다. 연산기(504)는 chip_cnt[16:11]에서 상기 다중화기(514)의 출력을 빼어 현재 PCG의 인덱스를 구한 후 지연기(506)에 저장한다.
앞서 언급한 <수학식 5>를 참조하면, 채널의 종류에 따라 프레임 길이가 1.25ms인 경우 chip_cnt[16:11]이 선택되고, 2.5ms인 경우 {chip_cnt[16:12],channel_ofs[0]}이 선택되고, 5ms인 경우 {chip_cnt[16:13], channel_ofs[1:0]}이 선택되고, 10ms인 경우 {chip_cnt[16:14], channel_ofs[2:0]}이 선택되고, 20ms인 경우 {chip_cnt[16:15], channel_ofs[3:0]}이 선택되고, 40ms인 경우 {chip_cnt[16], channel_ofs[4:0]}이 선택되고, 80ms인 경우 channel_ofs[5:0]이 선택된다.
다중화기(516)는 부호심볼 길이를 나타내는 cs_len[2:0]에 따라 768, 384, 192, 96, 48, 24, 12, 6 중 어느 하나인 1.25 ms 구간의 부호심볼 개수를 선택하여 지연기(518)에 저장한다. 곱셈기(508)는 상기 지연기(506)에 저장된 현재 PCG 인덱스에 상기 지연기(518)에 저장된 1.25ms 구간의 부호심볼 개수를 곱하여 지연기(510)에 저장한다.
또한 다중화기(524)는 cs_len[2:0]에 따라 chip_cnt[10:1], chip_cnt[10:2], chip_cnt[10:3], chip_cnt[10:4], chip_cnt[10:5], chip_cnt[10:6], chip_cnt[10:7], chip_cnt[10:8] 중 어느 하나인 현재 1.25ms 구간에서의 부호심볼 인덱스를 구하여 지연기들(526, 528)을 거쳐 덧셈기(512)로 전달한다. 상기 덧셈기(512)는 상기 지연기(510)로부터의 출력에 상기 지연기(528)로부터 제공된 상기 현재 1.25ms 구간의 부호심볼 인덱스를 더하여 현재의 부호심볼 인덱스 값을 add_out[13:0]으로서 출력한다.
한편, 다중화기(530)는 지연기들(520, 522)을 거쳐 제공된 상기 cs_len[2:0]에 따라, 2, 4, 8, 16, 32, 64, 128, 256 중 어느 하나를 선택하여 지연기(532)를 통해 cs_len[7:0]으로서 출력한다.
다음으로 도 9b에 나타낸 장치(532)의 동작을 설명한다. 상기 현재의 부호심볼 인덱스 값 add_out[13:0]은 장치(532)의 다중화기들(534, 536, 540)로 입력된다. 상기 다중화기(534)는 DivCnt[1:0]에 따라 {add_out[13:1], 1'b0}, {add_out[13:1], 1'b1}, {add_out[13:1], 1'b0}, {add_out[13:1], 1'b1} 중 어느 하나를 선택하여 출력하고, 상기 다중화기(536)는 또한 DivCnt[1:0]에 따라 {add_out[13:2], 2'b00}, {add_out[13:2], 2'b01}, {add_out[13:2], 2'b10}, {add_out[13:2], 2'b11} 중 어느 하나를 선택하여 출력한다.
다중화기(438)는 OTD가 사용되는지의 여부를 나타내는 otd_enb에 따라 상기 다중화기들(534, 536)의 출력들 중 어느 하나를 선택한다. 그러면 다중화기(540)는 변조방식을 나타내는 mod_type에 따라, 상기 add_out[13:0] 또는 상기 다중화기(538)의 출력 중 하나를 선택하여 최종 부호심볼 인덱스 Csym_idx[13:0]을 구한 후 지연기(542)에 저장한다.
마지막으로 도 9c의 장치(544)의 동작을 설명한다. 다중화기(550)는 2개의 지연기들(546, 548)을 거쳐 입력된 rev_len_type[1:0]에 따라 4, 5, 6, 7 중 어느 한 값을 선택하여 sync_rev_len_type[1:0]을 구한 후 지연기(552)에 저장한다. 다중화기(554)는 2개의 지연기들(556, 558)을 거쳐 입력된 grp_dist_type[2:0]에 따라 가능한 인터리빙 파라미터 J의 값들 3, 6, 12, 24, 48, 96, 96, 96 중 어느 하나를 선택하여 sync_grp_dist_type[7:0]을 구한 후 지연기(560)에 저장한다. intv_off는 3개의 지연기들(562, 564, 566)을 거쳐 sync_intv_off로서 출력된다.
마지막으로, 상기 BRO 인터리버(600)의 동작에 대하여 설명한다.
상기 BRO 인터리버(600)는 상기 부호심볼 인덱스 발생기(500)로부터 입력으로 주어진 부호심볼 인덱스에 대하여 하기와 같은 인터리빙 규칙을 적용하여 인터리빙을 위한 읽기 어드레스들을 계산한다.
동기채널이나 호출 채널(Paging Channel)이나 RC(Radio Configuration) 1,2의 트래픽 채널의 데이터를 위한 인터리빙 읽기 어드레스들을 생성하고자 하는 경우, 읽어내고자 하는 i번째 부호심볼의 읽기 어드레스 Ai는 하기 <수학식 6>과 같다.
여기서 i는 0부터 N-1 사이의 정수이고, BROm(y)는 y라는 m비트의 값을 비트역전하는 함수이다. 또한 상기 m과 J는 인터리빙 파라미터로서, 구체적으로 설명하면 2m은 인터리빙 메모리(200)의 행의 수이고 J는 인터리빙 메모리(200)의 열의 수이다.
또한 방송채널(Broadcast Channel)이나 공통할당채널(Common Assignment Channel), 순방향 공통제어채널(Forward Common Control Channel) 또는 RC 3, 4, 5의 트래픽 채널의 데이터를 위한 인터리빙 읽기 어드레스들을 생성하고자 하는 경우, 짝수 번째 인터리빙된 부호심볼의 읽기 어드레스 Ai는 하기 <수학식 7>과 같다.
여기서 i는 읽어내고자 하는 짝수 번째 부호심볼의 인덱스로서 0에서 N-2 사이의 짝수이다.
또한 홀수 번째 인터리빙된 부호심볼의 읽기 어드레스 Ai는 하기 <수학식 8>과 같다.
여기서 i는 읽어내고자 하는 홀수 번째 부호심볼의 인덱스로서 1에서 N-1 사이의 홀수이다.
이상과 같이 홀수 번째 부호심볼을 읽어내고자 하는 경우의 모듈로 계산결과는, 짝수 번째 부호심볼을 위한 모듈로 계산결과를 (J-1)에서 뺌으로써 구해진다. 마찬가지로 홀수 번째 부호심볼을 위한 BRO 계산 결과는 짝수 번째 부호심볼을 위한 BRO 계산결과에 대해 m비트만큼을 반전(inverting)함으로써 구해진다.
상기한 바와 같이 동작하는 BRO 인터리버의 상세 구조는 도 10에 나타낸 바와 같다.
상기 도 10을 참조하면, 순차적으로 증가하는 카운터 값인 index_input[13:0] 또는 인터리빙 규칙에 따라 생성된 Csym_idx[13:0]가 BRO 인터리버(600)에 입력되면, 다중화기(604)는 상기 index_input[13:0]과 쉬프터(shifter)(602)에 의해 소정비트만큼 쉬프트 라이트(shift-right)된 index_put[13:0] 중 어느 하나를 선택하여 지연기(606)에 저장한다.
모듈로 연산기(608)는 상기 지연기(606)의 출력에 대해 모듈로-J 연산을 수행하며, 홀수/짝수 검사기(odd/even checker)(610)는 현재 읽어내고자 하는 부호심볼이 홀수 번째인지 짝수 번째인지를 판별하고, 쉬프터(612)는 상기 판별 결과에 따라 rev_len에 의해 쉬프트 레프트를 수행한다. 상기 쉬프터(612)의 출력은 지연기(614)에 저장된다.
또한 쉬프터(616)는 상기 지연기(606)의 출력에 대해 소정비트만큼 쉬프트 라이트를 수행하여 지연기(618)에 저장한다. 나눗셈기(divider)(620)는 상기 지연기(618)의 출력을 J로 나누어 지연기(622)에 저장하며, BRO 연산기(624)는 상기 지연기(622)의 출력에 대해 BRO 연산을 수행하여 지연기(626)에 저장한다. 홀수/짝수 검사기(628)는 ???하여 지연기(630)에 저장한다.
합산기(634)는 상기 지연기들(614, 630)에 저장된 데이터를 합산하며, 프레임 검사기(636)는 5ms 프레임 길이가 사용되는지의 여부를 나타내는 Frm_5ms_enb[7:0]에 따라 5ms 프레임이 존재하는지를 확인한다. 다중화기(648)는 인터리빙의 수행 여부를 나타내는 intv_off에 따라 5개의 지연기들(638 ,640, 642, 644, 646)을 거쳐 입력된 상기 index_input[13:0]과 상기 프레임 검사기(636)의 출력 중 어느 하나를 선택하여 broidx_out[13:0]을 구한 후 지연기(650)에 저장한다. 상기 broidx_out[13:0]은 동기채널과 CPCCH를 제외한 나머지 채널들, 즉 호출채널이나 방송채널, 공통할당 채널, 순방향 공통제어 채널 또는 트래픽 채널의 데이터를 인터리빙하기 위한 읽기 어드레스로서 인터리빙 메모리(200)로 제공된다.
상기 모듈로 연산기(608)에 의한 모듈로 계산은 타이밍 마진(timing margin)을 고려하여 3-단 파이프라인(3-stage pipeline) 구조로 설계된 것이다. 상기 모듈로 연산기(608)는 입력 데이터를 하위 비트로부터 차례로 상위 비트까지 4 비트씩 나누어 인터리빙 파라미터 J에 따라 4 비트 데시멀 값에 대한 모듈로 값을 계산한다. 이러한 모듈로 연산은 처리 지연을 감소시키기 위하여 모듈로 테이블을 이용하여 수행될 수 있다.
도 11은 4 비트 모듈로 테이블을 이용하는 모듈로 연산기의 구조를 나타낸 것이고, 도 12는 4 비트 모듈로 테이블을 나타낸 것이다.
상기 도 11을 참조하면, 14비트의 입력 데이터 input[13:0]은 4비트씩 나누어져 4개의 모듈로 테이블들(20, 22, 24, 26)로 제공된다. 여기서 상기 모듈로 테이블들(20 내지 26)은 각각 비트 위치(bit position)에 따른 4096, 256, 16, 1의 가중치(weight)를 가진다. 각 가중치와 인터리빙 파라미터 J에 대응하는 모듈로 연산 값은 도 12에 나타낸 바와 같다.
입력 데이터의 크기가 4의 배수가 아니기 때문에 첫 번째 모듈로 테이블(20)은 처음 2비트 input[13:12]를 입력받지만, 나머지 모듈로 테이블들(22, 24, 26)은 각각 4비트의 데이터 input[11:8], input[7:4], input[3:0]을 입력받는다. 상기 모듈로 테이블들(20 내지 26)은 입력 데이터와 인터리빙 파라미터 J에 대응하는 모듈로 연산 값들을 구하여 해당하는 지연기들(28, 30, 32, 34)에 저장한다.
덧셈기(36)는 지연기들(28, 30)을 통한 모듈로 테이블들(20, 22)의 모듈로 연산 값들을 더하며, 모듈로 연산기(38)는 상기 덧셈기(36)의 출력에 대해 모듈로-J 연산을 수행하여 그 결과를 지연기(40)에 저장한다. 마찬가지로 덧셈기(42)는 지연기들(32, 34)을 통한 모듈로 테이블들(24, 26)의 모듈로 연산 값들을 더하며, 모듈로 연산기(44)는 상기 덧셈기(42)의 출력에 대해 모듈로-J 연산을 수행하여 그 결과를 지연기(46)에 저장한다.
덧셈기(48)는 상기 지연기들(40, 46)에 저장된 모듈로 연산 값들을 더하여 출력하며, 모듈로 연산기(50)는 상기 덧셈기(48)의 출력에 대하여 다시 모듈로-J 연산을 수행하여 지연기(52)에 저장한다. 상기 지연기(52)에 저장된 데이터는 최종 모듈로 연산 결과로서 출력된다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 인터리빙과 확산(spreading)을 파이프-라인 방식으로 수행이 가능하며 고속의 데이터 처리가 가능하고, 또한 인터리빙을 위한 여분의 메모리를 사용할 필요가 없으므로 하드웨어 리소스 측면에서도 효과적이다.
도 1은 전형적인 인터리버를 포함하는 디지털 이동통신 시스템의 간략화된 송신기 구조도.
도 2는 본 발명의 일 실시예에 따라 각 채널들을 위한 읽기 어드레스들을 이용하는 인터리빙 로직의 구조도.
도 3은 동기채널의 인터리빙을 위한 인터리빙 규칙을 설명하는 도면.
도 4는 본 발명의 일 실시예에 따라 동기채널을 위한 인터리빙 읽기 어드레스들을 생성하는 제1 읽기 어드레스 발생기의 상세 구성도.
도 5는 CPCCH를 통해 전달되는 전력제어그룹(PCG)의 패킷 데이터 포맷.
도 6은 본 발명의 일 실시예에 따라 CPCCH를 위한 인터리빙 읽기 어드레스들을 생성하는 제2 읽기 어드레스 발생기의 상세 구성도.
도 7은 CPCCH를 위한 상대적 옵셋 rel_ofs의 계산에 필요한 파라미터들과 계산된 상대적 옵셋을 나타낸 도면.
도 8a 내지 도 8c는 본 발명의 일 실시예에 따라 CPCCH를 위해 L 비트의 롱 코드 데시메이션 값으로부터 상대적 옵셋 rel_ofs를 구하는 동작을 보인 도면.
도 9a 내지 도 9c는 본 발명의 일 실시예에 따라 동기채널과 CPCCH를 제외한 다른 채널 종류에 대하여 부호심볼 인덱스를 생성하는 부호심볼 인덱스 발생기의 상세 구성도.
도 10은 본 발명의 일 실시예에 따른 BRO 인터리버의 상세 구조도.
도 11은 4 비트 모듈로 테이블을 이용하는 모듈로 연산기의 구조도.
도 12는 4 비트 모듈로 테이블들의 일 예를 나타낸 도면.

Claims (20)

  1. CDMA2000 기지국의 모뎀을 위한 인터리빙 로직에 있어서,
    부호심볼들을 수신하여 행의 순서로 저장하고 소정 인터리빙 규칙에 대응하는 읽기 어드레스들에 따라 출력하는 인터리빙 메모리와,
    상기 부호심볼들 중 동기 채널의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 제1 읽기 어드레스 발생기와,
    상기 부호심볼들 중 공통 전력제어 채널(CPCCH)의 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 제2 읽기 어드레스 발생기와,
    상기 부호심볼들 중 상기 동기 채널이나 상기 CPCCH가 아닌 다른 채널들의 부호심볼들을 나타내는 부호심볼 인덱스들을 발생하는 부호심볼 인덱스 발생기와,
    상기 부호심볼 인덱스들에 해당하는 부호심볼들을 읽어내기 위한 읽기 어드레스들을 발생하여 상기 인터리빙 메모리로 제공하는 비트역전(BRO) 인터리버로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  2. 제 1 항에 있어서, 상기 제1 읽기 어드레스 발생기는,
    칩 단위의 카운트 값을 80ms 구간에 대한 64칩 단위의 카운트 값으로 변환하고, 상기 변환된 카운트 값에서 동기채널의 채널 옵셋을 빼고 4로 나누어 256칩 단위의 부호심볼 인덱스를 구하고, 상기 부호심볼 인덱스로부터 동기채널의 인터리빙 규칙에 따라 4개의 부호심볼들을 읽어내기 위한 읽기 어드레스를 생성하는 것을 특징으로 하는 상기 인터리빙 로직.
  3. 제 2 항에 있어서, 상기 동기채널의 인터리빙 규칙은,
    상기 제2 부호심볼 인덱스의 처음 2비트들은 프레임 인덱스로 사용하고 나머지 비트들을 비트역전(BRO)을 수행하여 상기 읽기 어드레스로서 사용하는 것을 특징으로 하는 상기 인터리빙 로직.
  4. 제 1 항에 있어서, 상기 제1 읽기 어드레스 발생기는,
    1.25ms 단위로 80ms 구간을 0 내지 63의 범위 내에서 카운트하는 카운트 값 Mod_80ms_counter에 24를 곱하는 곱셈기와,
    칩 단위로 1.25ms 구간을 0 내지 1535의 범위 내에서 카운트하는 카운트 값 PCG_counter에 상기 곱셈기의 출력을 더하는 덧셈기와,
    상기 덧셈기의 출력에서 상기 동기채널의 채널 옵셋 channel_ofs를 빼는 뺄셈기와,
    상기 뺄셈기의 출력을 4로 나누는 나눗셈기와,
    상기 나눗셈기의 출력 중 처음 2비트를 제외한 나머지 비트들에 대해 비트역전을 수행하여 동기채널의 읽기 어드레스로서 출력하는 비트 역전기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  5. 제 1 항에 있어서, 상기 제2 읽기 어드레스 발생기는,
    롱 코드 데시메이션 값에 대해 CPCCH의 프레임 길이에 따라 상대적 옵셋을 구하고, 칩 단위의 카운트 값을 CPCCH의 프레임 길이에 따라 128 칩 단위의 카운트 값으로 변환하여 초기 옵셋을 구하고, 상기 초기 옵셋에 상기 상대적 옵셋을 더하고 CPCCH를 통해 전송되는 데이터의 개수 N에 따라 모듈로-N 연산을 수행하여 유효 옵셋을 구하고, 상기 유효 옵셋이 0인 초기 옵셋에 해당하는 CPCCH를 위한 부호심볼 인덱스를 구하고, 상기 심볼 인덱스에 하위 2비트를 추가하여 I/Q 두 개의 부호심볼들에 대한 읽기 어드레스를 생성하는 것을 특징으로 하는 상기 인터리빙 로직.
  6. 제 5 항에 있어서, 상기 상대적 옵셋은,
    상기 롱 코드 데시메이션 값을 상기 CPCCH의 프레임 길이에 따라 2개의 비트 블록들로 구분한 각 블록의 비부호 정수값들을 더함으로써 구해지는 것을 특징으로 하는 상기 인터리빙 로직.
  7. 제 1 항에 있어서, 상기 제2 읽기 어드레스 발생기는,
    CPCCH의 프레임 길이에 따라 롱 코드 데시메이션 값 2'b00, lc_dec[4:2]와 1'b0, lc_dec[6:3]과 lc_dec[8:4]와 5'b000 중 하나를 선택하는 제1 다중화기와,
    상기 CPCCH의 프레임 길이에 따라 롱코드 데시메이션 값 2'b00, lc_dec[1:0]과 1'b0, lc_dec[2:0]과 lc_dec[3:0]과 4'b000 중 하나를 선택하는 제2 다중화기와,
    상기 제1 및 제2 다중화기들의 출력들을 더하여 상대적 옵셋을 구하는 제1 덧셈기와,
    상기 CPCCH의 프레임 길이에 따라 12, 24, 48 중 어느 한 값을 선택하는 제3 다중화기와,
    상기 제3 다중화기의 출력에서 상기 제1 덧셈기의 출력을 빼는 뺄셈기와,
    상기 CPCCH의 프레임 길이에 따라 1.25ms 단위로 80ms 구간을 카운트하는 카운트 값의 하위 2비트에 12를 곱하는 곱셈기와,
    칩 단위로 1.25ms 구간을 카운트하는 카운트값의 상위 4비트에 상기 곱셈기의 출력을 더하는 제2 덧셈기와,
    상기 뺄셈기의 출력에 상기 제2 덧셈기의 출력을 더하는 제3 덧셈기와,
    상기 제3 덧셈기의 출력에 대해 CPCCH를 통해 전송되는 데이터의 개수 N에 따라 모듈로-N 연산을 수행하는 모듈로 연산기와,
    상기 모듈로 연산기의 출력에 칩 카운트 값의 하위 2비트에 따라 선택된 2비트 값을 추가하여 CPCCH의 읽기 어드레스로서 출력하는 부가기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  8. 제 1 항에 있어서, 상기 부호심볼 인덱스 발생기는,
    해당 채널의 프레임 길이에 따라 칩 카운트 값의 상위 소정 비트들에 채널 옵셋을 적용하여 옵셋 인덱스를 구하고, 상기 칩 카운트 값의 상위 5비트에서 상기 옵셋 인덱스를 빼서 현재 PCG 인덱스를 구하고, 읽어내고자 하는 부호심볼의 길이 유형에 따라 1.25ms 구간의 부호심볼 개수를 구하고, 상기 현재 PCG 인덱스에 상기 1.25ms 구간의 부호심볼 개수를 곱하고, 현재 1.25ms 구간의 부호심볼 인덱스를 구하고, 상기 곱한 결과에 상기 현재 1.25ms 구간의 부호심볼 인덱스를 더하여 현재의 부호심볼 인덱스를 구하는 것을 특징으로 하는 상기 인터리빙 로직.
  9. 제 1 항에 있어서, 상기 부호심볼 인덱스 발생기는,
    칩 카운트 값의 상위 6비트 중 일부 비트를 해당 채널의 프레임 길이에 따라 선택된 채널 옵셋으로 대체하여 채널 옵셋 인덱스를 출력하는 제1 다중화기와,
    상기 칩 카운트 값의 상위 6비트에서 상기 제1 다중화기의 출력을 빼어 현재 PCG의 인덱스를 구하는 뺄셈기와,
    읽어내고자 하는 부호심볼의 길이 유형에 따라 1.25 ms 구간의 부호심볼 개수를 선택하는 제2 다중화기와,
    상기 뺄샘기의 출력에 상기 제2 다중화기의 출력을 곱하는 곱셈기와,
    상기 부호심볼의 길이 유형에 따라 현재 1.25ms 구간의 부호 심볼 인덱스를 나타내는 칩 카운트 값의 일부 비트들을 선택하는 제3 다중화기와,
    상기 곱셈기의 출력에 상기 제3 다중화기의 출력을 더하여 현재의 부호심볼 인덱스를 구하는 덧셈기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  10. 제 9 항에 있어서, 상기 부호심볼 인덱스 발생기는,
    상기 덧셈기의 출력 중 하위 1비트를 상기 칩 카운트 값의 하위 2비트에 따라 선택된 소정 비트로 대체하여 출력하는 제4 다중화기와,
    상기 덧셈기의 출력 중 하위 2비트를 상기 칩 카운트 값의 하위 2비트에 따라 선택된 소정 비트들로 대체하여 출력하는 제5 다중화기와,
    직교전송 다이버시티(OTD)가 사용되는지의 여부에 따라 상기 제4 또는 제5 다중화기의 출력을 선택하는 제6 다중화기와,
    변조방식에 따라 상기 덧셈기의 출력 또는 상기 제6 다중화기의 출력을 선택하여 최종 부호심볼 인덱스를 구하는 제7 다중화기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  11. 제 1 항에 있어서, 상기 BRO 인터리버는,
    동기채널이나 호출 채널이나 RC 1,2의 트래픽 채널의 읽어내고자 하는 i번째 부호심볼의 인터리빙 읽기 어드레스를 Ai = 2m (i mod J) + BROm(i/J)로서 계산하고, 여기서 m과 J는 인터리빙 파라미터이며,
    방송채널이나 공통할당채널, 순방향 공통제어채널 또는 RC 3, 4, 5의 트래픽 채널의 데이터의 읽어내고자 하는 짝수 번째 부호심볼의 인터리빙 어드레스를 Ai = 2m (i/2 mod J) + BROm((i/2)/J)로서 계산하고, 홀수 번째 부호심볼의 읽기 어드레스를 Ai = 2m ((N-(i+1)/2) mod J) + BROm((N-(i+1)/2)/J)로서 계산하는 것을 특징으로 하는 상기 인터리빙 로직.
  12. 제 1 항에 있어서, 상기 BRO 인터리버는,
    상기 부호심볼 인덱스 발생기에 의해 구해진 상기 부호심볼 인덱스를 소정비트만큼 쉬프트 라이트하는 제1 쉬프터와,
    상기 쉬프터의 출력 또는 상기 부호심볼 인덱스를 선택하는 제1 다중화기와,
    상기 제1 다중화기의 출력에 대해 인터리빙 파라미터 J에 따른 모듈로-J 연산을 수행하는 제1 모듈로 연산기와,
    상기 제1 모듈로 연산기의 출력을 가지고 현재 읽어내고자 하는 부호심볼이 홀수번째인지 짝수번째인지를 판별하는 제1 홀수/짝수 검사기와,
    상기 홀수/짝수 검사기의 판별 결과를 소정비트만큼 쉬프트 라이트하는 제2 쉬프터와,
    상기 제1 다중화기의 출력을 소정비트만큼 쉬프트 라이트하는 제3 쉬프터와,
    상기 제3 쉬프터의 출력을 상기 인터리빙 파라미터 J로 나누는 나눗셈기와,
    상기 나눗셈기의 출력에 대해 BRO 연산을 수행하는 BRO 연산기와,
    상기 BRO 연산기의 출력을 가지고 현재 읽어내고자 하는 부호심볼이 홀수번째인지 짝수번째인지를 판별하는 제2 홀수/짝수 검사기와,
    상기 제2 쉬프터의 출력과 상기 제2 홀수/짝수 검사기의 출력을 합산하는 합산기와,
    5ms 프레임 길이가 사용되는지의 여부에 따라 상기 합산기로부터의 데이터를 검사하는 프레임 검사기와,
    intv_off에 따라 상기 부호심볼 인덱스 또는 상기 프레임 검사기의 출력을 선택하여 출력하는 제2 다중화기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  13. 제 12 항에 있어서, 상기 BRO 연산기는,
    입력 데이터를 소정 비트의 비트 그룹들로 나누는 분배기와,
    상기 비트 그룹들을 각각 수신하여 상기 비트 그룹의 값에 소정 가중치를 적용한 후 상기 인터리빙 파라미터 J에 따른 모듈로 연산 값을 출력하는 복수의 모듈로 테이블들과,
    상기 모듈로 테이블들 중 각 2개의 값들을 더하는 덧셈기들과,
    상기 덧셈기들의 출력들에 대해 모듈로-J 연산을 수행하는 제2 모듈로 연산기들과,
    상기 제2 모듈로 연산기들의 출력을 합산하는 합산기와,
    상기 합산기의 출력에 대해 모듈로-J 연산을 수행하여 출력하는 제3 모듈로 연산기로 구성되는 것을 특징으로 하는 상기 인터리빙 로직.
  14. CDMA2000 기지국의 모뎀을 위한 인터리빙 방법에 있어서,
    입력 부호심볼들 중 동기 채널의 부호심볼들을 읽어내기 위한 제1 읽기 어드레스들을 발생하는 과정과,
    입력 부호심볼들 중 공통 전력제어 채널(CPCCH)의 부호심볼들을 읽어내기 위한 제2 읽기 어드레스들을 발생하는 과정과,
    입력 부호심볼들 중 상기 동기 채널이나 상기 CPCCH가 아닌 다른 채널들의 부호심볼들을 나타내는 부호심볼 인덱스들을 발생하는 과정과,
    상기 부호심볼 인덱스들에 해당하는 부호심볼들을 읽어내기 위한 제3 읽기 어드레스들을 발생하는 과정과,
    입력 부호심볼들을 수신하여 인터리빙 메모리에 행의 순서로 저장하고 상기 해당하는 채널의 읽기 어드레스들에 따라 읽어내어 출력하는 과정으로 구성되는 것을 특징으로 하는 상기 인터리빙 방법.
  15. 제 14 항에 있어서, 상기 제1 읽기 어드레스들을 발생하는 과정은,
    칩 단위의 카운트 값을 80ms 구간에 대한 64칩 단위의 카운트 값으로 변환하는 단계와,
    상기 변환된 카운트 값에서 동기채널의 채널 옵셋을 빼고 4로 나누어 256칩 단위의 부호심볼 인덱스를 구하는 단계와,
    상기 부호심볼 인덱스로부터 동기채널의 인터리빙 규칙에 따라 4개의 부호심볼들을 읽어내기 위한 읽기 어드레스를 생성하는 단계로 구성되는 것을 특징으로 하는 상기 인터리빙 방법.
  16. 제 15 항에 있어서, 상기 동기채널의 인터리빙 규칙은,
    상기 제2 부호심볼 인덱스의 처음 2비트들은 프레임 인덱스로 사용하고 나머지 비트들을 비트역전(BRO)을 수행하여 상기 읽기 어드레스로서 사용하는 것을 특징으로 하는 상기 인터리빙 방법.
  17. 제 14 항에 있어서, 상기 제2 읽기 어드레스들을 발생하는 과정은,
    롱 코드 데시메이션 값에 대해 CPCCH의 프레임 길이에 따라 상대적 옵셋을 구하는 단계와,
    칩 단위의 카운트 값을 CPCCH의 프레임 길이에 따라 128 칩 단위의 카운트 값으로 변환하여 초기 옵셋을 구하는 단계와,
    상기 초기 옵셋에 상기 상대적 옵셋을 더하고 모듈로-N 연산을 수행하여 유효 옵셋을 구하는 단계와,
    상기 유효 옵셋이 0인 초기 옵셋에 해당하는 CPCCH를 위한 부호심볼 인덱스를 구하는 단계와,
    상기 심볼 인덱스에 하위 2비트를 추가하여 I/Q 두 개의 부호심볼들에 대한 읽기 어드레스를 생성하는 단계로 구성되는 것을 특징으로 하는 상기 인터리빙 방법.
  18. 제 17 항에 있어서, 상기 상대적 옵셋은,
    상기 롱 코드 데시메이션 값을 상기 CPCCH의 프레임 길이에 따라 2개의 비트 블록들로 구분한 각 블록의 비부호 정수값들을 더함으로써 구해지는 것을 특징으로 하는 상기 인터리빙 방법.
  19. 제 14 항에 있어서, 상기 부호심볼 인덱스들을 발생하는 과정은,
    해당 채널의 프레임 길이에 따라 칩 카운트 값의 상위 소정 비트들에 채널 옵셋을 적용하여 옵셋 인덱스를 구하는 단계와,
    상기 칩 카운트 값의 상위 5비트에서 상기 옵셋 인덱스를 빼서 현재 PCG 인덱스를 구하는 단계와,
    읽어내고자 하는 부호심볼의 길이 유형에 따라 1.25ms 구간의 부호심볼 개수를 구하는 단계와,
    상기 현재 PCG 인덱스에 상기 1.25ms 구간의 부호심볼 개수를 곱하는 단계와,
    현재 1.25ms 구간의 부호심볼 인덱스를 구하는 단계와,
    상기 곱한 결과에 상기 현재 1.25ms 구간의 부호심볼 인덱스를 더하여 현재의 부호심볼 인덱스를 구하는 단계로 구성되는 것을 특징으로 하는 상기 인터리빙 방법.
  20. 제 19 항에 있어서, 상기 제3 읽기 어드레스들을 발생하는 과정은,
    동기채널이나 호출 채널이나 RC 1,2의 트래픽 채널의 읽어내고자 하는 i번째 부호심볼의 인터리빙 읽기 어드레스를 Ai = 2m (i mod J) + BROm(i/J)로서 계산하는 단계와, 여기서 m과 J는 인터리빙 파라미터이며,
    방송채널이나 공통할당채널, 순방향 공통제어채널 또는 RC 3, 4, 5의 트래픽 채널의 데이터의 읽어내고자 하는 짝수 번째 부호심볼의 인터리빙 어드레스를 Ai = 2m (i/2 mod J) + BROm((i/2)/J)로서 계산하고, 홀수 번째 부호심볼의 읽기 어드레스를 Ai = 2m ((N-(i+1)/2) mod J) + BROm((N-(i+1)/2)/J)로서 계산하는 단계로 구성되는 것을 특징으로 하는 상기 인터리빙 방법.
KR1020030079942A 2003-11-12 2003-11-12 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법 KR20050045766A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030079942A KR20050045766A (ko) 2003-11-12 2003-11-12 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030079942A KR20050045766A (ko) 2003-11-12 2003-11-12 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법

Publications (1)

Publication Number Publication Date
KR20050045766A true KR20050045766A (ko) 2005-05-17

Family

ID=37245401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030079942A KR20050045766A (ko) 2003-11-12 2003-11-12 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법

Country Status (1)

Country Link
KR (1) KR20050045766A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582911A (zh) * 2017-09-28 2019-04-05 三星电子株式会社 用于实行卷积的计算装置及实行卷积的计算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582911A (zh) * 2017-09-28 2019-04-05 三星电子株式会社 用于实行卷积的计算装置及实行卷积的计算方法
CN109582911B (zh) * 2017-09-28 2023-11-21 三星电子株式会社 用于实行卷积的计算装置及实行卷积的计算方法

Similar Documents

Publication Publication Date Title
CA2302391C (en) A method of and apparatus for transmitting data in a multiple carrier system
US6233271B1 (en) Method and apparatus for decoding trellis coded direct sequence spread spectrum communication signals
FI107094B (fi) Menetelmä päivittää koodigeneraattorin lineaarinen palautesiirtorekisteri
US5689511A (en) Data receiver for receiving code signals having a variable data rate
US20070104086A1 (en) Apparatus and Method for Modulating Data Message By Employing Orthogonal Variable Spreading Factor (OVSF) Codes in Mobile Communication System
US7702970B2 (en) Method and apparatus for deinterleaving interleaved data stream in a communication system
US6125136A (en) Method and apparatus for demodulating trellis coded direct sequence spread spectrum communication signals
KR19990076513A (ko) 확산 부호화 장치 및 그 방법
US6215813B1 (en) Method and apparatus for encoding trellis coded direct sequence spread spectrum communication signals
JPH11275059A (ja) 可変速度伝送方法および可変速度伝送装置
KR100392620B1 (ko) 월시코드생성기,신호송신장치및신호수신장치
KR20050045766A (ko) 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법
US6847677B1 (en) Method and apparatus for efficient Walsh covering and summing of signals in a communication system
US6714599B1 (en) Method and apparatus for efficient processing of signal in a communication system
US6421336B1 (en) Variable rate orthogonally coded reverse link structure
JP2862527B1 (ja) スペクトル拡散通信装置
US6975584B1 (en) Communication system method and apparatus
JP2855172B2 (ja) 可変レート伝送方法、および同方法を用いた送信装置および受信装置
Kong et al. Design of new multi-code CDMA system based on SOC technique
KR20010027280A (ko) 다중 전송률을 지원하기 위한 병렬조합 적응형 통신시스템 및 그 방법
JP3285475B2 (ja) スペクトル拡散方式通信装置
US7433906B2 (en) Method of updating a shift register
JP2928776B1 (ja) スペクトル拡散通信装置
KR100805342B1 (ko) 직교 확산 방법
KR100646016B1 (ko) 정 포락선 부호화를 사용한 코드선택 코드분할 다중접속통신 시스템에서 상관기 출력과 패리티 검사 결과를이용한 수신 신호의 복조 방법 및 그 장치

Legal Events

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