본 발명의 다른 양태나 실시형태는 이하에서 설명한다.
본 발명의 특징, 목적 및 이점은, 도면과 관련하여 이하 설명하는 발명의 상세한 설명을 참조하면 보다 명백해질 것이며, 도면에서 동일한 도면부호는 명세서 전반에 걸쳐서 동일한 대상을 나타낸다.
도 1 은 본 발명이 구현될 수도 있는 통신 시스템 (100) 의 실시형태에 대한 개략 블록 다이어그램이다. 송신 유닛 (110) 에서, 통상적으로 프레임 또는 패킷 단위로, 트래픽 데이터는 데이터 소스 (112) 로부터, 특정의 프로세싱 방식 에 따라 데이터를 포맷하고, 인코딩하며, 인터리빙 (즉, 재정렬) 하는 송신 (TX) 데이터 프로세서 (114) 까지 전송된다. 통상적으로, TX 데이터 프로세서 (114) 는 신호를 더 프로세싱하며, 데이터 (예를 들어, 파일럿 및 전력 제어 데이터) 를 제어한다. 그 후, 변조기 (MOD ; 116) 는, 아날로그 신호로 변환된 심볼을 발생시키기 위해, 프로세싱된 데이터를 수신하고, 채널화하며 (즉, 커버), 확산한다. 아날로그 신호는, 안테나 (120) 를 통해 하나 이상의 수신 유닛에 송신되는 변조된 신호를 발생시키기 위해, 송신기 (TMTR) 에 의해 필터되고, 직교 변조되고, 증폭되며, 업컨버트된다.
수신 유닛 (130)에서, 송신된 신호는 안테나 (132) 에 의해 수신되며, 수신기 (RCVR ; 134) 에 제공된다. 수신기 (134) 내에서, 수신된 신호는 데이터 샘플을 제공하기 위해, 증폭되고, 필터되고, 다운컨버트되고, 직교 복조되며, 디지트화된다. 샘플은, 복조된 심볼을 발생시키기 위해, 복조기 (DEMOD ; 136) 에 의해 역확산되고, 디커버되며, 복조된다. 그 후, 수신 (RX) 데이터 프로세서 (138) 는 송신된 데이터를 복원시키기 위해 복조된 심볼을 재정렬하며 디코딩한다. 복조기 (136) 와 RX 데이터 프로세서 (138) 에 의해 행해지는 프로세싱은 송신 유닛 (110) 에서 행해지는 프로세싱과 상보적이다. 그 후, 복원된 데이터는 데이터 싱크 (140) 에 제공된다.
상술된 신호 프로세싱은 음성, 영상, 패킷 데이터, 메시징, 및 단방향 통신의 다른 유형의 통신물의 송신을 지원한다. 양방향 통신 시스템은 양방향 데이터 송신을 지원한다. 그러나, 다른 방향에 대한 신호 프로세싱은 단순화를 위 해 도 1에서 나타내지 않는다.
통신 시스템 (100) 은 지상 링크를 통해 사용자 사이의 음성 및 데이터 통신을 지원하는 코드 분할 다중 접속 (CDMA) 통신 시스템, 시분할 다중 접속 (TDMA) 통신 시스템 (즉, GSM 시스템), 주파수 분할 다중 접속 (FDMA) 통신 시스템, 또는 다른 다중 접속 통신 시스템일 수도 있다.
다중 접속 통신 시스템에서 CDMA 기술의 사용은, 발명의 명칭이 "SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS" 인 미국특허번호 제 4,901,307 호와, 발명의 명칭이 "SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM" 인 미국특허번호 제 5,103,459 호에 개시된다. 또 다른 특정 CDMA 시스템은, 1997 년 11 월 3 일자로 출원되었으며 발명의 명칭이 "METHOD AND APPARATUS FOR HIGH RATE PACKET DATA TRANSMISSION" 인 미국특허출원번호 제 08/963,386 호에 개시된다 (이하, HDR 시스템이라함). 이들 특허 및 특허출원은 모두 본 발명의 양수인에게 양도되었으며 여기서 참조한다.
통상적으로, CDMA 시스템은, "TIA/EIA/IS-95-A Mobile Station - Base Station Compatibility Standard for Dual-Mode Wideband Spread Spectrum Cellular System" (이하, IS-95-A 표준이라 언급함), "TIA/EIA-98 Recommended Minimum Standard for Dual-Mode Wideband Spread Spectrum Cellular Mobile Station" (이하, IS-98 표준이라 언급함), "3rd Generation Partnership Project" (3GPP) 라 명명되며 문서번호 3G TS 25.211, 3G TS 25.212, 3G TS 25.213, 및 3G 25.214 를 포함하는 일련의 문서에 구체화된 콘소시엄에 의해 제공된 표준 (이하, W-CDMA 표준이라 언급함), "TR-45.5 Physical Layer Standard for cdma2000 Spread Spectrum System" (이하, CDMA 2000 표준이라 언급함) 과 같은 하나 이상의 표준에 따르도록 설계된다. 계속적으로, 새로운 CDMA 표준은 제안되며, 사용을 위해 채택된다. 이들 CDMA 표준은 여기서 참조된다.
도 2 은 TX 데이터 프로세서 (114) 의 실시형태에 대한 블록 다이어그램이며, 본 발명의 어떤 실시형태를 구현하도록 설계될 수 있다. 트래픽 데이터는 특정 방법으로 각각의 수신된 프레임을 포맷시키는 프레임 포맷터 (212) 에 의해 수신된다 (통상적으로, 프레임 또는 패킷 단위). 예를 들어, 프레임 포맷터 (212) 는 각각의 데이터 프레임상에 순환 리던던시 체크 (CRC) 코딩을 행할 수 있고, 프레임에 CRC 비트를 부가할 수 있다. 통상적으로, 프레임 포맷터 (212) 는 다수의 코드-테일 비트를 각 프레임의 종단에 더 부가한다. 통상적으로, 코드-테일 비트는 영의 값을 갖고, 프레임이 코딩된 후에, 후속하는 인코더를 주지 상태 (즉, 모두 영 상태) 로 설정하는데 사용된다. 또한, 다른 프레임 포맷팅 기능이 프레임 포맷터 (212) 에 의해 행해진다.
그 후, 포맷된 프레임은, 코드 심볼의 대응하는 프레임을 발생시키기 위해, 특정 코딩 방식으로 각각의 프레임을 코딩하는 인코더 (214) 에 제공된다. 예를 들어, 인코더 (214) 는 데이터 프레임의 컨벌루셔널 또는 터보 코딩을 행할 수도 있다. 사용되는 특정 코딩 방식은 구현되는 특정 시스템 또는 표준에 의존하며, 선택 가능하다 (예를 들어, 서로 다른 코딩 방식이 서로 다른 유형의 서비스 에 사용될 수도 있다). CDMA-2000 및 W-CDMA 시스템에 사용되는 코딩 방식은 상술한 표준 문서에서 상세하게 설명된다.
그 후, 코딩된 프레임은 심볼 반복기 (symbol repeater; 216) 에 제공된다. 특정 프레임에 발생되는 코드 심볼의 수와 프레임의 용량에 따라, 영 또는 그 이상의 심볼이 반복된다. 예를 들어, CDMA-2000 표준에 따라, 특정 프레임의 각각의 심볼은 정수배 반복되며 (즉, M = 1, 2, 3 등등), 정수 M 은 반복 후 심볼의 수가 프레임의 용량을 최소로 초과하도록 선택된다. 따라서, L 코드 심볼이 인코더 (214) 에 의해 특정 프레임에 대해 발생되며 프레임이 N 심볼의 용량을 가지면 (여기에서, N≥L), 프레임 내의 각각의 심볼은 M번 반복되며, 여기서 M 은
로 계산된다. 심볼 "
" 은 씨링 연산자 (ceiling operator) 를 나타내며, 그 다음으로 더 큰 정수를 제공한다. 예를 들어, N/L = 5.2 이면,
이다.
대부분의 경우에서, 반복 후 코드 심볼의 수는 프레임 사이즈와 동일하지 않다 (즉, 코드 심볼의 수는 프레임의 용량을 초과한다). 이러한 것이 발생한 경우, 코드 심볼의 일부가 삭제되며 (즉, 펑처링되며), 그 결과 코드 심볼의 수는 프레임 용량과 일치한다. 심볼 반복 및 펑처링은 이하에서 더 상세하게 설명된다.
그 후, 펑처링된 프레임은 인터리버 (220) 에 제공된다. 통상적으로, 각각의 프레임에 대한 코드 심볼은 특정 기록 순서 (즉, 순차적으로) 로 인터리버 (220) 에 기록되며, 전체 프레임이 저장된 후, 코드 심볼은 심볼의 재정렬을 달성하기 위해 기록 순서와 통상적으로 다른 특정 판독 순서로 검색된다. 또한, 통상적으로 인터리빙 방식은 구현되는 특정 시스템 또는 표준에 의해 한정된다.
도 3A 은 CDMA-2000 표준에서 설명된 종래의 심볼 펑처링 기술의 플로우 다이어그램이다. 우선, 특정 프레임에 대해 발생된 코드 심볼 개수 (S) 와 요구되는 펑처 개수 (P) 가 단계 312 에서 결정된다. 도 2 를 참조하면, S 코드 심볼은 특정 프레임에 대해 심볼 반복기 (216) 에 의해 발생된다. 프레임이 N 심볼의 용량을 갖고, S≥N 이면, P 심볼이 펑처링되며, 여기서 P 는 S-N 이다. P 가 영이 되면, 펑처링이 요구되지 않는다. 그렇지 않으면, 결정된 심볼 개수 (S) 와 펑처 개수 (P) 에 기초하여, 펑처 거리 (D) 가 단계 314 에서 계산된다. 펑처 거리는 2 개의 연속적인 펑처링 심볼 사이의 심볼 개수 플러스 1 이며, 제 1 펑처링은 프레임의 D번째 심볼에서 발생한다. 예를 들어, D 가 3 이면, 다음 펑처링전에 2 개의 펑처링되지 않은 심볼이 있을 것이다. CDMA-2000 에 의하면, 펑처 거리 (D) 는 식 (1) 과같이 계산되며,
이며, 여기서 심볼 "
" 은 플로어 연산자 (floor operator) 이며, 그 다음 낮은 정수를 제공한다. 예를 들어, S/P 가 5.2 이면,
는 5 가 된다.
그 후, 프레임 내의 심볼이 계산된 거리 (D) 를 사용하여 펑처링된다. 심볼 펑처링을 행하기 위해, 프레임 내의 심볼은 제 1 심볼을 시작으로 카운트되며, D번째 심볼이 단계 316 에서 펑처링된다. 심볼이 펑처링된 후, 요구되는 펑처 수 (P) 는 단계 318 에서 감소된다. 그 후, 단계 320 에서, 모든 P 심볼이 펑처링되었는지를 판정한다. P 가 영인지 여부를 체킹함으로써 간단하게 이러한 판정을 할 수 있다. 모든 P 심볼이 펑처링되었으면, 프로세스는 종결한다. 그렇지 않으면, 프로세스는 단계 316 으로 복귀하며, 이전에 계산된 거리 (D) 에 기초하여, 또 다른 심볼이 펑처링된다.
도 3A 에 나타낸 종래의 심볼 펑처링 기술은, S 및 P 의 특정 값에 따라 다양한 펑처링 결과를 제공할 수 있다. 좀 더 상세하게 설명하면, 펑처링된 심볼은 일부 S 및 P 값에 대하여 프레임 전반에 걸쳐 균등하게 분포되거나, 다른 일부 S 및 P 값에 대해 프레임의 일부에 집중될 수도 있다. 이들 다양한 펑처링 결과는 후속하는 단순한 예에서 설명될 수 있다.
도 3B 은 도 3A 에 나타낸 종래의 심볼 펑처링 기술을 사용하는 간단한 예를 설명하는 다이어그램이다. 이러한 특정한 예에서, 30 심볼이 발생되지만 (즉, S=30), (이러한 예에서) 단지 20 심볼이 프레임에 맞춰 채워질 수 있다 (즉, N=20). 따라서, 10 심볼은 펑처링될 필요가 있다 (즉, P=S-N=30-20=10). 식 (1) 을 사용하여, 펑처 거리 (D) 는 3 으로 계산될 수 있다. 도 3B에서 나타낸 바와 같이, X 표시를 한 박스로 나타낸 매 3 번째 심볼이 펑처링된다. 이 특정한 예에서, 펑처링된 심볼은 전체 프레임에 걸쳐 균일하게 분포된다.
도 3C 은 S 와 P 의 상이한 값에 대해 종래의 심볼 펑처링 기술을 사용하는 또 다른 간단한 예를 설명하는 다이어그램이다. 이러한 특정한 예에서는, 31 심볼이 발생되고 (즉, S=31), 20 심볼이 프레임에 맞춰 채워질 수 있다 (즉, N=20). 따라서, 11 심볼이 펑처링될 필요가 있다 (즉, P=11). 식 (1) 을 사용하여, 펑처 거리 (D) 는 2 로 계산될 수 있다. 도 3C에서 나타낸 바와 같이, 모든 11 심볼이 펑처링될 때까지, X 표시를 한 박스로 나타낸 매 2 번째 심볼이 펑처링된다. 11 번째 심볼이 펑처링된 후, 나머지 심볼은 변하지 않고 통과된다. 이 특정한 예에서 나타낸 바와 같이, 펑처링된 심볼은 프레임의 앞부분 쪽으로 집중되는 반면, 프레임의 뒷부분은 변하지 않는다. 펑처링된 심볼의 불균일한 분포는 높은 펑처링 레이트 (즉, 짧은 펑처 거리 (D)) 로 심볼을 펑처링하는 것으로부터 비롯한다.
도 3B 및 도 3C 은 종래의 펑처링 기술을 사용하여 얻어질 수 있는 다양한 펑처링된 결과를 설명한다. 코드 심볼의 수 (S) 를 단순하게 1만큼씩 증가시킨 결과로, 펑처링 패턴은 도 3B 의 균일한 분포로부터 도 3C 의 불균일한 분포까지 변한다. 따라서, 종래의 펑처링 기술은, 불연속한 플로어 연산자 (
) 때문에, 펑처 거리 (D) 는 S 가 1만큼씩 증가할 때 하나의 전체적인 단위만큼 변한다는 중요한 문제점을 갖는다.
도 3C 의 펑처링된 심볼의 불균일한 분포는 수신 유닛에서 성능 저하를 초래 한다. 심볼의 삭제는 이들 심볼에 대한 송신 전력을 영으로 감소하는 것과 균등하다. 컨볼루셔널 코딩된 데이터에 대해서, 비터비 디코더는 심볼을 디코딩하기 위해 수신 유닛에서 사용된다. 에러로 수신된 코드 심볼이 전체 프레임에 걸쳐서 좀더 균일하게 확산되면, 비터비 디코더는 개선된 성능 (즉, 더 우수한 에러 정정 능력) 을 제공한다. 프레임의 일부에서 더 많은 심볼을 펑처링함으로써, 비터비 디코더는 프레임의 그 일부에서의 심볼 에러를 정정할 수 없을 수도 있으며, 전체 프레임은 소거로 선언될 수도 있다 (즉, 에러로 수신).
도 4A 은 본 발명의 심볼 펑처링 기술의 실시형태에 대한 플로우 다이어그램이다. 우선, 특정 프레임에 대해 발생된 코드 심볼 개수 (S) 와 요구되는 펑처 개수 (P) 가 단계 412 에서 결정된다. 프레임이 N 심볼의 용량을 갖고, S≥N 이면, P 심볼이 펑처링되며, 여기서 P 는 S-N 이다. P 가 영이 되면, 펑처링이 요구되지 않는다. 그렇지 않으면, 결정된 심볼 개수 (S) 와 펑처 개수 (P) 에 기초하여, 펑처 거리 (D) 가 단계 414 에서 계산된다. 펑처 거리 (D) 는 식 (1) 을 이용하여 계산될 수 있다.
그 후, 프레임 내의 심볼이 계산된 거리 (D) 를 이용하여 펑처링된다. 심볼 펑처링을 행하기 위해, 프레임 내의 심볼은 우선적으로 제 1 심볼을 시작으로 카운트되며, D번째 심볼이 단계 416 에서 펑처링된다. 심볼이 펑처링된 후, 나머지 심볼의 수 (즉, Sn +1=Sn-D) 가 결정되며, 요구되는 펑처 개수 (즉, Pn +1=Pn-1) 는 단계 418 에서 감소된다. 그 후, 단계 420 에서, 모든 P 심볼이 펑처링되었 는지를 결정한다. 또한, P 가 영인지 여부를 단순한 체킹으로써 이러한 결정을 할 수 있다. 모든 P 심볼이 펑처링되면, 프로세스는 종결한다. 그렇지 않으면, 프로세스는 단계 414 로 복귀하며, 펑처 거리 (D) 는 S 및 P 에 대해 갱신된 값에 기초하여 재계산된다. 심볼은 전방으로부터 카운트되며, D번째 심볼이 단계 416에서 펑처링된다. 그 후, 프로세스는 모든 P 심볼이 펑처링될 때까지 계속한다.
도 4A 에 나타낸 심볼 펑처링 기술은, 각각의 펑처링 후에 "실시간" 으로 펑처링 레이트 (즉, 펑처 거리 (D)) 를 재계산한다. 새로운 "펑처 거리" (즉, 다음 펑처링까지의 심볼 개수) 는 여전히 나머지 심볼 개수와 행해질 펑처 개수에 기초하여 계산된다. 각각의 계산은, 나머지 심볼 펑처링을 균일하게 분배하는 새로운 펑처 거리 (D) 를 발생시킨다.
더 명확한 이해를 위해, 도 4A 에 설명된 펑처링 기술은, 31 코드 심볼이 발생되며 (즉, L=31), 프레임은 20 심볼의 용량 (즉, N=20) 을 갖는 도 3B 에 나타낸 예에 적용될 수 있다. 또한, 11 심볼 펑처링이 요구된다. 표 1 은 각각의 펑처링에 대한 파라미터 (S, P, 및 D) 를 표로 작성한 것이다 (즉, 도 4A 에 나타낸 루프를 통과하는 각각의 경로에 대해).
파라미터 |
S |
P |
D |
개시 |
31 |
11 |
|
1 번째 펑처링 후 |
29 |
10 |
|
2 번째 펑처링 후 |
27 |
9 |
|
3 번째 펑처링 후 |
24 |
8 |
|
4 번째 펑처링 후 |
21 |
7 |
|
5 번째 펑처링 후 |
18 |
6 |
|
6 번째 펑처링 후 |
15 |
5 |
|
7 번째 펑처링 후 |
12 |
4 |
|
8 번째 펑처링 후 |
9 |
3 |
|
9 번째 펑처링 후 |
6 |
2 |
|
10 번째 펑처링 후 |
3 |
1 |
|
도 4B 은 표 1 에서 설명한 펑처링 예의 결과를 나타내는 다이어그램이다. 처음 2 개의 펑처링에 대해서, 거리는 2 로 계산된다 (즉, D=2). 제 2 심볼 펑처링 후에, 나머지 심볼은 거리 3 (즉, D=3) 으로 펑처링된다. 도 4B 에 나타낸 펑처링 패턴과 도 3C 에 나타낸 펑처링 패턴을 비교하면, 본 발명의 심볼 펑처링 기술은 펑처링된 심볼의 훨씬 균일한 분포를 제공한다는 것을 알 수 있다.
도 5A 은 본 발명의 또 다른 심볼 펑처링 기술의 실시형태에 대한 플로우 다이어그램이다. 우선, 특정 프레임에 대해 발생된 코드 심볼 개수 (S) 와 요구되는 펑처 개수 (P) 가 단계 512 에서 결정된다. 또한, 프레임이 N 심볼의 용량을 갖고, S≥N 이면, P 심볼이 펑처링되며, 여기서 P 는 S-N 이다. P 가 영이 되면, 펑처링은 요구되지 않는다. 그렇지 않으면, 결정된 심볼 개수 (S) 와 펑처 개수 (P) 에 기초하여, 2 개의 펑처 거리 (D1 및 D2) 가 단계 514 에서 계산된다.
모든 정수 (S 및 P) 에 있어서, 다음의 식이 성립할 수 있으며 :
식 (2) 에 기초하여, 2 개의 펑처 거리 (D1 및 D2) 는,
와 같이 계산될 수 있으며,
와 같이 계산될 수 있다.
식 (3) 및 식 (4) 로부터, D1 은 단일 나눗셈 연산으로 계산되며, D2 는 D1+1 로 계산될 수 있다. 그러나, 또한 D1 및 D2 에 대해 다른 값들도 선택가능하며, 본 발명의 범위내에 존재한다. 예를 들어, D1 은
과 동일하게 선택할 수 있고, D2 는
과 동일하게 선택할 수 있다.
그 후, 펑처 거리 (D1) 을 사용하여 펑처 개수 (P1) 가, 그리고 펑처 거리 (D2) 를 사용하여 펑처 개수 (P2) 가 단계 516 에서 계산된다. 펑처 개수 (P1 및 P2) 는 다음과 같이 계산될 수 있으며 :
P2 = S - P * D1 및, ----- 식 (5)
P1 = P - P2 ----- 식 (6)
펑처 거리 (D1 및 D2) 와 펑처 개수 (P1 및 P2) 는 다음과 같은 관계가 있다.
S = P1 ·D1 + P2 ·D2 ----- 식 (7)
펑처 거리 (D1 및 D2) 와 펑처 개수 (P1 및 P2) 가 계산되면, 계산된 펑처 거리중 하나가 단계 518 에서 선택된다. 이하에서 설명한 바와 같이, 다양한 방법들이 D1 또는 D2 중 어떤 것을 선택하도록 사용될 수 있다. 그 후, 프레임 내의 심볼은 선택된 펑처 거리를 이용하여 펑처링된다. 또한, 심볼 펑처링을 행하기 위해, 프레임 내의 심볼은 프레임 내의 제 1 심볼 또는 마지막 펑처링된 심볼을 시작으로 카운트되며, D1번째 또는 D2번째 심볼이 단계 520 에서 펑처링된다. 심볼이 펑처링된 후, 어떠한 펑처 거리가 선택되었는지에 따라, 요구되는 펑처 개수 (P1 및 P2) 가 단계 318 에서 감소된다. 좀 더 구체적으로, D1 이 선택되면 P1 이 감소하며, D2 가 선택되면 P2 가 감소된다.
그 후, 단계 524 에서, 모든 P1 및 P2 심볼이 펑처링되었는지를 결정한다. P1 및 P2 가 영인지 여부를 단순히 체킹으로써 이러한 결정을 할 수 있다. 모든 P1 및 P2 심볼이 펑처링되면, 프로세스는 종결한다. 그렇지 않으면, 프로세스는 단계 518 로 복귀하며, 펑처 거리중 하나가 선택된다. 그 후, 프로세스는 모든 P1 및 P2 심볼이 펑처링될 때까지 계속한다.
더 명확한 이해를 위해, 도 5A 에 설명된 펑처링 기술은, 31 심볼이 발생되며 (즉, S=31), 20 심볼이 프레임에 맞춰 채워지며 (즉, N=20), 11 심볼이 펑처링될 필요가 있는 (즉, P=11) 상술한 예에 적용될 수 있다. 식 (3) 및 식 (4) 를 이용하여, 거리 (D1 및 D2) 를,
과 같이 각각 계산할 수 있다.
식 (5) 및 식 (6) 이용하여, 거리 (D2 및 D1) 에서 펑처 개수는,
P1 = 11 - 9 = 2
과 같이 각각 계산할 수 있다.
따라서, 거리 2 에서 2 개의 펑처링이 행해지며, 거리 3 에서 9 개의 펑처링이 행해진다.
상술한 바와 같이, 다양한 방법이 후속 펑처링에 사용하기 위해 거리 (D1 및 D2) 중 하나를 선택하도록 사용될 수 있다. 일 실시형태에서, 펑처 거리중 하나 (예를 들어, D1) 가 선택되며, 대응하는 펑처 개수 (예를 들어, P1) 에 사용되고, 그 후 다른 펑처 거리 (예를 들어, D2) 가 선택되며, 나머지 펑처링 (예를 들어, P2) 에 사용된다. 상술한 예에서, 2 개의 펑처링 (P1) 이 거리 2 (D1) 에서 행해지며, 후속하여 거리 3 (D2) 에서 9 개의 펑처링 (P2) 이 행해진다.
또 다른 실시형태에서, 거리 (D1 및 D2) 는 교대로 선택되며, 거리중 하나에서 모든 펑처링이 달성될 때까지 사용된다. 그 후, 나머지 펑처링은 다른 거리를 사용하여 행해진다. 상기 예에서, 펑처링은 2, 3, 2, 3, 3, 3 등의 거리를 사용하여 행해진다.
또 다른 실시형태에서, 거리 D1 에서의 P1 펑처링은 거리 D2 에서의 P2 펑처링 사이에 대략적으로 분포된다. 예를 들어, R1 대 R2 의 비가 R 이면, R 펑처링은 거리 D2 를 사용한 각각의 펑처링에 대해서 거리 (D1) 를 사용하여 행해진다. 상술한 예에서, 2 개의 펑처링은 펑처 거리 2 를 사용하여 행해지며, 9 개의 펑처링은 거리 3 을 사용하여 행해진다. 따라서, 4 개 또는 5 개의 펑처링은 거리 2 에서의 각각의 펑처링에 대해 거리 3 을 사용하여 행해진다.
또 다른 실시형태에서, 웨이팅 알고리즘은 거리 D2 에서의 P2 펑처링 사이에 거리 D1 에서의 P1 펑처링을 분포하도록 사용될 수 있다. 중간치 값 F 는 P1*N2 - P2*N1 이라고 하며, 여기서 N1 과 N2 는 반복 라운드에서의 펑처 개수를 나타내는 증가 카운터이다. N1 및 N2 에 대한 최대값은 펑처링 거리 (P1 및 P2) 가 프레임내에 분포되도록 선택된다. 모든 프레임의 초기에서 모든 펑처링 후에, N1 + N2 〈 P 이면 거리 D2 가 선택되며, F〈 0 이면 N2 는 1 만큼 증가하며, 그렇지 않으면 거리 D1 이 선택되며 N1 이 1 만큼 증가한다.
또 다른 실시형태에서, 심볼 펑처링은 전체 프레임에 걸쳐서 (대략적으로) 균일하게 분포된다. 이러한 실시형태의 하나의 특정 구현에서, "랩 어라운드 (wrap-around)" 누산기는, 후속 펑처링을 위해 펑처 거리를 선택하도록 사용되는 값을 저장하도록 사용될 수 있다. 누산기는 영부터 B 까지 범위를 갖는 값을 저장하도록 설계되며, 여기서 B 는 통상적으로 2 의 거듭제곱 (즉, 256, 512, 1024, 또는 다른 값) 이다. 또한, B 는 프레임의 사이즈와 동일하거나 더 큰 것 (즉, B≥N) 을 선택할 수도 있다. 우선, 펑처링 (P1 및 P2) 의 더 작은 값을 결정한다. 그 후, 누산 값 (A) 은 더 작은 P1 또는 P2 값과 더 큰 P1 또는 P2 값의 비에 B 값을 곱함으로써 계산된다. 예를 들어, P1 =2, P2 = 9 이며, B=1024 인 경우, 그 후 A = (P1/P2)·B = (2/9)·1024 ≒ 227 이 된다. 그 후, 각각의 펑처링 전에, 누산 값 (A) 은 누산기 내의 값에 부가되며, 누산기에 저장된다. 누산기가 A 값으로 누산 후에 랩 어라운드 하면, 더 작은 P1 또는 P2 값에 대응하는 펑처 거리가 후속 심볼 펑처링을 위해 선택된다.
상술한 예에서, 누산기 내의 값은 각각 1번째, 2번째, 3번째, 4번째, 5번째, 6번째, 7번째, 8번째, 9번째, 10번째, 및 11번째 심볼 펑처링 전에 227, 454, 681, 908, 111, 338, 565, 792, 1019, 222, 및 449 로 계산된다. 누산기가 랩 어라운드하여 각각 111 및 222 를 갖기 때문에, 펑처 거리 (D1) 는 5번째 및 10번째 심볼 펑처링에 대해 선택된다. 영 이외의 값으로 누산기를 초기화함으로써, 거리 2 의 제 1 펑처링은 다를 수 있다. 예를 들어, 누산기가 512 값으로 초기화되면, 3번째 및 7번째 펑처링은 2 의 거리에서 행해지며, 나머지 모든 펑처링은 3 의 거리에서 행해진다.
도 5에서 나타낸 실시형태에 있어서, 계산 비용은 낮게 유지된다. 좀 더 구체적으로, 단지 하나의 나눗셈 연산이 펑처 거리 (D1 및 D2)를 계산하기 위해 단계 514에서 행해지며, 이는 도 3A 에서 나타낸 종래의 펑처링 기술에 관한 나눗셈 연산의 횟수와 동일하다. 따라서, 도 5A에 나타낸 실시형태는 균등한 계산 비용으로 개선된 성능을 제공한다.
도 5B 은 도 5A 에 나타낸 심볼 펑처링 기술을 사용하는 상술한 펑처링 예의 결과를 나타낸 다이어그램이다. 이 다이어그램에서, 1번째 및 6번째 펑처링은 거리 2 를 사용하여 행해지며, 다른 펑처링은 거리 3 을 사용하여 행해진다. 또한, 상술한 바와 같이, 거리 D1 및 D2 에서 펑처링은 다양한 다른 방법으로 분포될 수 있다.
도 5A에서 설명한 본 발명의 심볼 펑처링 기술은 N 펑처 거리를 포괄하기 위해 일반화 될 수 있다. N 펑처 거리 (D1 내지 DN) 는 S 및 P (및 가능한 다른 파라미터) 에 기초하여 계산되며, S 코드 심볼을 펑처링하는데 사용될 수 있다. 개선된 펑처링 결과 (예를 들어, 심볼 펑처링의 더 균일한 분포) 에 있어서, 각각의 거리 (D1 내지 DN) 는
과 같이 정의되는 최소 펑처 거리 (Dmin) 와 동일하거나 그 이상이 되도록 선택될 수 있다. 그러나, 상기 조건으로부터의 편차는 본 발명의 범위내에서 존재할 수 있다.
N 펑처 거리에 대해서, 그 후 각각의 펑처 거리 (D1 내지 DN) 에서 행해질 심볼 펑처의 수를 결정한다. D1 내지 DN 거리에서 P1 내지 PN 심볼 펑처는 각각 이하의 조건들을 만족하도록 선택된다.
그 후, P1 내지 PN 심볼 펑처링은 각각 거리 D1 내지 DN 에서 행해진다.
상술한 바와 같이, 상보적인 프로세스가 송신 유닛에서 행해지는 심볼 펑처링을 설명하기 위해 수신 유닛에서 행해진다. 좀 더 구체적으로, 소거 (즉, "모름") 는 펑처링된 심볼을 대체하여 삽입된다. 소거는 후속하는 디코딩 프로세스 동안의 소정의 적절한 웨이팅이다.
디코딩 이전에, N 코드 심볼이 특정 프레임에 대해 수신된다. 그 후, N 수신 심볼을 발생시키기 위해, S 코드 심볼 사이에 행해지는 심볼 펑처링 (P) 의 수를 결정한다. 그 후, 펑처 거리 (D1 내지 DN) 가 S 및 P 기초하여 계산된다. 또한, 각각 D1 내지 DN 의 거리에서 행해지는 P1 내지 PN 심볼 펑처링을 결정한다. 그 후, N 수신 심볼을 발생시키기 위해 S 심볼을 펑처링하는데 사용되는 펑처링 패턴은 각각 D1 내지 DN 거리의 P1 내지 PN 심볼 펑처링에 기초하여 유도된다. 그 후, S 복원 심볼을 발생시키기 위해 유도된 펑처링 패턴에 기초하여 N 수신 심볼사이에 P 소거가 삽입되며, 그 후 특정한 디코딩 방식으로 디코딩된다. 또한, 소거/심볼 펑처링의 좀더 균일한 분포를 위해서, D1 내지 DN 거리 각각은 상기에서 정의된 최소 펑처 거리 (Dmin) 보다 크거나 동일하도록 선택될 수 있다.
단순한 예로서, D1 거리의 P1 심볼 펑처링이 행해지고 후속하여 D2 거리의 P2 심볼 펑처링이 행해지는 실시형태에 있어서, 수신 유닛은 각 D1 번째 수신 심볼 후에 P1 소거를 삽입하며, D2 번째 수신 심볼 후에 P2 소거를 삽입한다. 그 후, S 복원 심볼은 송신 유닛에서 사용된 코딩 방식과 상보적인 특정한 디코딩 방식으로 디코딩된다.
도 6 은 도 3a에 나타낸 종래의 펑처링 기술과 본 발명의 펑처링 기술로 달성되는 성능에 대한 플롯을 나타낸다. 성능 결과는 CDMA-2000 시스템에서 순방향 링크 (즉, 기지국으로부터 사용자 터미널까지) 에 대한 것이다. 수평축은 각 프레임에 대한 데이터 및 CRC 비트의 수를 나타낸다. CDMA-2000 시스템에서, 다양한 사이즈의 프레임이 이용 가능하고, 그 프레임의 사이즈는 기본 프레임 사이즈의 정수배이다 (예를 들어, 이용 가능한 프레임 사이즈는 768·K, 여기서 K 는 1, 2, …). 수직축은 1% 의 프레임 에러 레이트 (FER) 에 대한 평균 요구된 비트당 에너지 대 총 잡음 플러스 간섭 (Eb/(No + Ioc)) 을 나타낸다.
종래 펑처링 기술에 대한 시뮬레이션 결과는 도 6 에서 파선 (610) 으로 나타낸다. 결과는 대략적으로 주기적인 간격에서 일부 피크를 나타낸다. 예를 들어, 피크는 대략적으로 300, 600, 1200, 및 2400 비트에서 관찰된다. 이들 피크는 종래의 펑처링 기술에 의해 발생되는 불균일한 심볼 펑처링으로부터 초래한다. 피크는 1% 의 동일한 FER을 유지하기 위해 비트 Eb 당 더 높은 평균 에너지에 대한 필요성을 나타낸다.
본 발명의 펑처링 기술에 대한 시뮬레이션 결과는 도 6 에서 실선 (612) 으로 나타낸다. 결과는 피크의 일부에서 성능의 개선을 나타낸다. 특히, 약 0.5 dB 및 1.0 dB 의 개선이 각각 300 및 600 비트에서 관찰된다.
일 실시형태에서, 펑처링은 심볼 펑처 개수 (P1 및 P2) 또는 펑처 거리 (D1 및 D2)를 사용하지 않고도 바람직하게 행해진다. 누산기는, S 보다 크거나 동일한 값으로 증가된 후에 랩 어라운드 하도록 구성되며, 각각의 증분은 심볼 펑처링의 원하는 개수인 사이즈 P 이며, S 는 수신 심볼의 총 개수이며, N 은 심볼에서 프레임 용량 (즉, 펑처링 후에 잔존하는 심볼 개수) 이다. 따라서, 누산기는 모듈로-S 누산기이다. 심볼 인덱스는 바람직하게 영으로 초기화된다. 심볼 인덱스가 값 (S) 에 이를 때까지, 심볼 인덱스는 누산기가 P 만큼 증가할 때마다 1씩 증가한다. 프로세스는 바람직하게 펑처링으로 개시된다. 누산기가 랩 어라운드 할 때마다, 펑처링이 행해진다. 그럼에도 불구하고, 당업자는 프로세스가 펑처링으로 초기화 될 필요는 없음을 이해한다. 부가적으로, 누산기가 S 로 바람직하게 초기화되는 반면, 당업자는 예를 들어 영과 같은 값으로 초기화 될 수도 있다는 것을 알 수 있다. 또한, 당업자는, 프로세스가 오히려 역으로 실행되어, 심볼 인덱스가 초기에 S 값으로 설정되며, 심볼 인덱스가 1 에 이를 때까지 누산기는 P 만큼 증가할 때마다 1 씩 감소됨을 알 수 있다.
바로 상술한 실시형태의 예에서는, 10 개의 심볼이 수신되며, 프레임 용량이 단지 7 개이며, 따라서 3 개의 심볼은 펑처링된다. 따라서, P 는 3 이며, N 은 7 이며, S 는 10 이다. 누산기 및 심볼 인덱스에 대한 값은 이하의 표 2 에서 나타낸다.
누산기 값 (10으로 초기화) |
심볼 인덱스 (1로 초기화) |
0 (10-10) |
펑처링 (X) |
3 |
2 |
6 |
3 |
9 |
4 |
2 (12-10) |
펑처링 (X) |
5 |
6 |
8 |
7 |
1 (11-10) |
펑처링 (X) |
4 |
9 |
7 |
10 |
0 |
중지 |
바로 상술한 실시형태에 따른 알고리즘 단계를 설명하는 플로우 차트를 도 7 에서 나타낸다. 단계 700 에서, ACC_VALUE 로 표시된 필드는 값 S 로 초기화되며, SYMBOL_IDX 로 표시된 필드는 1 로 초기화된다. 다른 실시형태에서, ACC_VALUE 는 예를 들어, 영과 같이 S 이외의 값으로 초기화된다. 그 후, 제어 흐름은 단계 702 로 진행한다. 단계 702 에서, ACC_VALUE 는 수 S 와 비교된다. ACC_VALUE 가 S 보다 크거나 동일하면, 제어 흐름은 단계 704 로 진행한다. 반면, ACC_VALUE 가 S 보다 크지 않거나 동일하면, 제어 흐름은 단계 706 로 진행한다. 단계 704 에서, ACC_VALUE 는 S 만큼 감소한다 (즉, ACC_VALUE 는 ACC_VALUE 와 S 간의 차이와 동일하게 설정됨). 그 후, 제어 흐름은 단계 708 로 진행한다. 단계 708 에서, SYMBOL_IDX 의 값에 대응하는 심볼이 펑처링된다. 그 후, 제어 흐름은 단계 706 로 진행한다. 단계 706에서, ACC_VALUE 는 P 만큼 증가한다 (즉, ACC_VALUE 는 ACC_VALUE 와 P 의 합과 동일함). 그 후, 제어 흐름은 단계 710 로 진행한다. 단계 710에서, SYMBOL_IDX 는 1 만큼 증가한다 (즉, SYMBOL_IDX 는 SYMBOL_IDX 와 1 의 합과 동일함). 그 후, 제어 흐름은 단계 712 로 진행한다. 단계 712에서, SYMBOL_IDX 는 값 S 와 비교된다. SYMBOL_IDX 가 S 보다 크면, 제어 흐름은 단계 714 로 진행하며, 프로세스는 멈춘다. 반면, SYMBOL_IDX 가 S 보다 크지 않으면, 제어 흐름은 단계 702 로 복귀하며, 프로세스는 지속한다. 다른 실시형태에서, SYMBOL_IDX 는 값 S 로 초기화되며, 알고리즘은 SYMBOL_IDX 가 1 이하로 떨어질 때 종결한다.
선택적인 실시형태에서, ACC_VALUE 필드 (SYMBOL_IDX 필드가 아님) 에 있어서, S 와 P 가 공통 분모 M 을 갖고, 값 S/M 은 값 S 로 대체될 수도 있으며, 값 P/M 은 도 7 의 플로우 차트에서 값 P 로 대체될 수도 있다. 따라서, ACC_VALUE 필드는 S/M 로 초기화되며, 모듈로-S/M 레지스터가 누산기로 사용된다. 누산기는 각각이 증가할 때 P/M 만큼 증가한다. 누산기 값이 S/M을 초과할 때마다, 모듈로-S/M 연산이 행해지며, 심볼 펑처링이 행해진다.
명확화를 위해, 본 발명의 일부 양태를 CDMA-2000 시스템에서 순방향 링크에 대해 좀 더 구체적으로 설명한다. 그러나, 또한 본 발명은 동일, 유사, 또는 다른 펑처링 방식을 이용하는 다른 통신 시스템에서 사용될 수 있다. 예를 들어, 본 발명은 W-CDMA 시스템 및 다른 CDMA 시스템에서 펑처링을 행하도록 사용될 수 있다. 또한, 본 발명의 심볼 펑처링 기술은 역방향 링크 상에서 사용될 수 있다 (즉, 사용자 터미널로부터 기지국으로). 본 발명의 펑처링 기술은 사용되는 특정 시스템 또는 표준에 더욱 적합하도록 변경될 수 있다.
본 발명의 심볼 펑처링 기술은 다양한 방법으로 실시될 수 있다. 예를 들어, 펑처링 기술은, 하나 이상의 주문형 반도체 (ASIC), 디지털 신호 프로세서 (DSP), 프로그램 가능 논리 장치 (PLD), 마이크로-제어기, 마이크로 프로세서, 여기에서 설명한 기능들 또는 그것을 조합한 기능들을 행하도록 고안된 다른 전자 유닛의 하드웨어에서 실시될 수 있다. 선택적으로, 본 발명의 펑처링 기술은 프로세서 또는 제어기상에서 실행되는 소프트웨어 또는 펌웨어에서 실시될 수 있다. 또한, 본 발명의 펑처링 기술은 하드웨어와 소프트웨어의 조합체에서 실시될 수 있다.
우선적인 실시형태의 전술한 설명은 당업자가 본 발명을 제조하거나 사용할 수 있도록 제공된다. 이들 실시형태에 대한 다양한 변경은 당업자에게 명백하며, 여기서 정의된 일반적인 원칙들은 창조적인 기술을 이용하지 않고 다른 실시형태에 적용할 수도 있다. 따라서, 본 발명은 여기에서 나타낸 실시형태를 제한하도록 의도된 것은 아니며, 여기에서 개시된 원칙들과 신규한 특징과 일치하는 폭넓은 범위와 일치한다.