여기 사용되는 용어 "예시적"은 "예, 보기 또는 설명으로서 제시되는"것을 의미한다. 여기에서 "예시적"으로 기술된 임의의 실시예 또는 설계가 반드시 다른 실시예들이나 설계들에 대해 바람직하거나 유리한 것으로 해석되는 것은 아니다.
여기 기술되는 단일 패킷에 대해 다중 변조 방식들을 이용하기 위한 기술은 직교 주파수 분할 다중 접속(OFDMA) 시스템, 코드 분할 다중 접속(CDMA) 시스템, 시분할 다중 접속(TDMA) 시스템, 주파수 분할 다중 접속(FDMA) 시스템, 직교 주파수 분할 다중화(OFDM)-기반 시스템, 단일-입력 단일-출력(SISO) 시스템, 다중-입력 다중-출력(MIMO) 시스템 등과 같은 다양한 통신 시스템들에 이용될 수 있다. 이러한 기술들은 증분적 중복(IR)을 이용하는 시스템들 및 IR을 이용하지 않는 시스템들(예컨대, 단순히 데이터를 반복하는 시스템)에 대해 이용될 수 있다. 명확화를 위해, 이러한 기술들은 IR을 이용하는 통신 시스템에 대해 기술된다.
도 1은 통신 시스템에서 송신기 및 수신기 간의 IR 전송을 나타낸다. 데이터 전송에 대한 타임라인(timeline)이 프레임들로 구분되며, 각 프레임은 특정한 시간 듀레이션(duration)을 갖는다. 도 1에 도시된 IR 전송 실시예에 대해, 수신기는 처음에 통신 채널을 추정하고, 상기 채널 상태에 기초하여 "모드(mode)"를 선 택하고, 상기 선택된 모드를 프레임 0에서 송신기로 전송한다. 대안적으로, 상기 수신기는 상기 채널 품질의 추정(estimate)을 역전송하고, 송신기는 상기 채널 품질 추정에 기초하여 모드를 선택한다. 어느 경우이든, 상기 모드는 패킷에 대한 패킷 크기, 코드 레이트(code rate), 변조 방식 등을 지시할 수 있다. 상기 송신기는 선택된 모드에 따라 데이터 패킷(패킷 1)을 처리하고, 상기 패킷에 대한 데이터 심볼들의 T개 까지의 블록을 발생시킨다. T는 특정 데이터 패킷에 대한 블록들의 최대 개수이며 IR에 대해 1보다 크다(T>1). 일반적으로 제 1 블록은 충분한 정보를 포함하여 상기 수신기로 하여금 양호한 채널 상태 하에서 상기 패킷을 디코딩하도록 하여 준다. 이후의 각 블록은 일반적으로 선행 블록들에 포함되지 않은 추가적인 패리티/리던던시(parity/redundancy) 정보를 포함한다. 그리고 나서 상기 송신기는 프레임 1에서 패킷 1에 대한 제 1 데이터 심볼 블록(블록 1)을 전송한다. 상기 수신기는 상기 제 1 데이터 심볼 블록을 수신, 검출 및 디코딩하여, 패킷 1이 잘못 디코딩되었는지(즉, "소거되었는지")를 결정하고, 프레임 2에서 부정 응답(NAK)을 역전송한다. 상기 송신기는 상기 NAK를 수신하고 프레임 3에서 패킷 1에 대한 제 2 데이터 심볼 블록(블록 2)를 전송한다. 수신기는 블록 2를 수신 및 검출하고, 블록 1과 2를 디코딩하고, 패킷 1이 여전히 잘못 디코딩 되었다고 결정하며, 프레임 4에서 다른 NAK를 역전송한다. 상기 블록 전송 및 NAK 응답은 임의의 횟수만큼 반복될 수 있다.
도 1에 도시된 상기 예시에 있어서, 상기 송신기는 데이터 심볼 블록 N-1에 대해 NAK를 수신하고 프레임 n에서 패킷 1에 대한 데이터 심볼 블록 N(블록 N)을 전송하며, 여기서 N≤T이다. 상기 수신기는 블록 N을 수신 및 검출하고, 블록 1내지 N을 디코딩하고, 상기 패킷이 정확하게 디코딩되었는지를 결정하고, 그리고 프레임 n+1에서 확인응답(ACK)를 역전송한다. 또한 수신기는 통신 채널을 추정하고, 다음 데이터 패킷에 대한 모드를 선택하며, 상기 선택된 모드를 프레임 n+1에서 송신기로 전송한다. 상기 송신기는 블록 N에 대한 ACK를 수신하고 패킷 1의 전송을 종결한다. 또한 송신기는 선택된 모드에 따라 다음 데이터 패킷(패킷 2)을 처리하고, 프레임 n+2에서 패킷 2에 대한 제 1 데이터 심볼 블록(블록 1)을 전송한다. 송신기 및 수신기에서의 처리는 상기 통신 채널을 통해 전송되는 각각의 데이터 패킷에 대해 동일한 방법으로 계속된다.
도 1에 도시된 바와 같이, 증분적 중복으로써, 송신기는 일련의 블록 전송들로 각 데이터 패킷을 전송하며, 각 블록 전송은 상기 패킷의 일부를 반송한다. 수신기는 상기 패킷에 대해 수신된 모든 블록들에 기초하여 각 블록 전송 후에 상기 패킷을 디코딩하려 할 수 있다. 송신기는 수신기에 의한 성공적인 디코딩 후에 상기 전송을 종료한다.
도 1에 도시된 바와 같이, 각 블록 전송에 대해 상기 송신기로부터의 ACK/NAK 응답에 대해 1 프레임의 지연이 존재한다. 일반적으로, 이러한 지연은 하나 또는 복수의 프레임들일 수 있다. 채널 활용을 개선하기 위해, 복수의 데이터 패킷들이 인터레이스(interlace)되는 방식으로 전송될 수 있다. 예를 들어, 하나의 트래픽 채널에 대한 데이터 패킷들은 홀수-번 프레임들로 전송될 수 있으며 다른 트래픽 채널에 대한 데이터 패킷들은 짝수-번 프레임들로 전송될 수 있다. 또 한 3개 이상의 트래픽 채널들이, 예컨대 상기 ACK/NAK 지연이 1 프레임보다 길다면, 인터레이스될 수도 있다.
상기 시스템은 한 세트의 모드들을 지원하도록 설계될 수 있는데, 이들은 또한 레이트(rate), 패킷 포맷(packet format), 무선 설정(radio configuration), 또는 어떠한 다른 용어로 불리울 수 있다. 각 모드는 특정한 코드 레이트 또는 코딩 방식, 특정 변조 방식, 특정한 주파수 효율(spectral efficiency), 및 목표 성능 레벨, 예컨대 1%의 패킷 오류율(packet error rate, PER)을 달성하는데 요구되는 신호-대-잡음-및-간섭비(signal-to-noise-and-interference ratio, SINR)과 관련될 수 있다. 주파수 효율(spectral efficiency)은 상기 시스템 대역폭에 의해 정규화되는 데이터율(또는 정보 비트율)을 지칭하며, 헤르츠 당 초당 비트(bps/Hz) 단위로 주어진다. 일반적으로, 더 높은 SINR이 더 높은 주파수 효율을 위해 요구된다. 지원되는 모드들의 세트는 일반적으로 다소 고르게 이격되는 증분들로, 주파수 효율들의 범위를 커버한다. 특정 채널 상태 및 수신된 SINR에 대해, 상기 수신되는 SINR이 지원하는 최고의 주파수 효율을 가진 모드가 선택되고 데이터 전송을 위해 이용될 수 있다.
주파수 효율은 상기 코드율 및 변조 방식에 의해 결정된다. 상기 코드율은 인코더에 의해 발생되고 전송된 코드 비트들의 수에 대한 인코더로의 입력 비트들의 수의 비율이다. 예를 들어, 2/9의 코드율(또는 R=2/9)은 매 2개의 입력 비트들에 대해 9개의 코드 비트를 발생시킨다. 더 낮은 코드율(예컨대 R=1/4 또는 1/5)은 더 많은 리던던시(redundancy)를 가지며 따라서 더 좋은 에러 정정 능력을 갖는 다. 그러나, 더 많은 코드 비트들이 낮은 코드율에 대해 전송될수록, 주파수 효율 또한 낮아진다.
다양한 변조 방식들이 데이터 전송에 이용될 수 있다. 각 변조 방식은 M개의 신호 포인트들을 포함하는 신호 컨스텔레이션(constellation)과 관련되며, 여기서 M>1 이다. 각 신호 포인트는 복소수 값으로 정의되며 B-비트 이진 값으로 식별되며, 여기서 B≥1 이고 2B=M 이다. 심볼 매핑에 있어서, 전송되는 상기 코드 비트들은 먼저 B 코드 비트들의 세트로 그룹핑(group)된다. 각각의 B 코드 비트들의 세트는 특정 신호 포인트로 매핑되는 B-비트 이진 값을 형성하며, 그리고 나서 상기 B 코드 비트들의 그룹에 대한 변조 심볼로서 전송된다. 따라서 각각의 변조 심볼은 B 코드 비트들에 대한 정보를 반송한다. 일부 널리 이용되는 변조방식들은 이진 위상 편이 변조(BPSK), 직교 위상 편이 변조(QPSK), M-진 위상 편이 변조(M-PSK), 및 M-진 직교 진폭 변조(M-QAM)를 포함한다. 변조 심볼 당 코드 비트들의 수(B)는: BPSK에 대해 B=1, QPSK에 대해 B=2, 8-PSK에 대해 B=3, 16-QAM에 대해 B=4, 64-QAM에 대해 B=6 등으로 주어질 수 있다. B는 변조 방식들의 차수를 나타내며, 변조 심볼 당 더 많은 코드 비트들이 더 고차의 변조 방식들에 대해 전송될 수 있다.
특정 코드율 및 특정 변조 방식에 대한 주파수 효율(S)은 코드율(R)과 변조 방식에 대한 변조 심볼 당 코드 비트의 수(B)의 곱, 즉 S=R×B로 계산될 수 있다. 특정 주파수 효율은 코드율과 변조 방식(또는 코딩 및 변조 쌍)의 다른 다양한 조 합들로써 구해질 수 있다. 예를 들어, S=4/3 인 주파수 효율은 이하의 코드율 및 변조 방식의 조합들로써 구해질 수 있다:
QPSK(B=2) 및 코드율 R=2/3;
8-PSK(B=3) 및 코드율 R=4/9;
16-QAM(B=4) 및 코드율 R=1/3; 및
64-QAM(B=6) 및 코드율 R=2/9.
특정 주파수 효율에 대한 상기 상이한 코드율 및 변조 방식의 조합들은 다른 성능을 가질 수 있으며, 이는 목표 PER을 달성하는데 요구되는 SINR로써 계량될 수 있다. 이러한 상이한 코드율 및 변조 방식의 조합들이 상이한 채널 상태들과 아마도 상이한 채널 모델들에 대해 평가될 수 있다(예컨대, 컴퓨터 시뮬레이션, 실측 등을 통해). 최상의 성능을 갖는 코드율 및 변조 방식의 조합이 선택되어 상기 시스템에 의해 지원되는 모드들의 세트에 포함될 수 있다.
특정 주파수 효율에 대해, 더 고차의 변조 방식 및 더 낮은 코드율의 조합이 일반적으로 더 낮은 차수의 변조 방식 및 더 높은 코드율의 조합보다 더 나은 용량을 달성할 수 있다. 그러나, 더 나은 용량을 달성하는 변조 방식과 코드율의 특정 조합은 실질적인 문제들 때문에 더 나은 성능을 제공하지 못할 수 있으며, 일반적으로 변조 방식과 코드율 간에는 트레이드 오프(tradeoff)가 존재한다. 성능을 최적화하기 위해 이러한 트레이드 오프에 대하여 변조 방식 및 코드율의 "최적" 조합이 존재한다.
더 고차의 변조 방식 및 낮은 코드율 조합의 성능 이점은 주파수 또는 시간- 선택적 채널에 대한 증가이다. 주파수 선택적 채널은 시스템 대역폭에 걸쳐 변화하는(즉, 평평하지 않은) 주파수 응답을 갖는 통신채널이다. 시간 선택적 채널은 시간에 걸쳐 변화하는(즉, 정지하지 않은) 응답을 갖는 통신 채널이다. 상이한 주파수 효율에 대해 최적의 코드율 및 변조 방식의 조합을 결정하기 위한 연구가 수행되었다. 상기 연구에서, 어림잡은 결과는 R=1/2 또는 더 낮은 코드율이 주파수/시간 선택적 채널에 대해 이용되어야 한다는 것이다. 따라서, 1/2보다 높은 코드율이 특정 주파수 효율에 대해 이용될 수 있을지라도, 1/2에 근접하거나 더 낮은 코드율이 더 고차의 변조 방식과 함께 이용되어야 한다. 본 연구는 특정 채널 모델에 대한 것이었으며, 성능은 다른 채널 모델들에 대해 달라질 수 있다.
증분 리던던시를 이용하지 않는 시스템에 대해, 각 데이터 패킷은 상기 패킷에 대해 선택되는 코드를 위한 특정 코드율 및 특정 변조 방식에 기초하여 코딩되고 변조된다. 그리고 나서 패킷 전체가 전송되고 상기 선택된 모드에 관련된 주파수 효율을 달성한다. 시스템에 의해 지원되는 각 모드에 대한 코드율 및 변조 방식은 컴퓨터 시뮬레이션, 실측 등으로써 결정될 수 있다.
증분 리던던시를 이용하는 시스템에 대해, 각 데이터 패킷은 상술한 바와 같이, 상기 패킷이 수신기에 의해 정확하게 디코딩될 때까지 하나 이상의 블록들로 전송된다. 데이터 패킷을 위해 전송되는 각각의 추가 블록은 상기 패킷의 주파수 효율을 감소시킨다. 따라서 각 데이터 패킷에 대한 주파수 효율은 선험적으로 알려지 있지 않으며 상기 패킷에 대한 각각의 블록 전송과 함께 변화한다.
표 1은 시스템에 의해 지원되는 7가지 모드들의 예시적인 세트를 나타낸다. 각 모드 m은 특정 변조 방식 및 특정 "기준(base)" 코드율 Rbase ,m과 관련되며, 이는 각 블록 전송을 위해 이용되는 코드율이다. 동일한 기준 코드율 및 변조 방식이 특정 모드에 대해 각각의 블록 전송을 위해 이용된다. 예를 들어, QPSK 및 R=2/3인 기준 코드율이 모드 3에 대해 이용된다. 모드 3으로 전송되는 데이터 패킷에 대해, 각각의 상기 패킷 블록은 QPSK 및 코드율 R=2/3을 이용하여 전송된다. 표 1은 T=4이며 데이터 패킷은 상기 데이터 패킷이 정확하게 디코딩되었는지 여부에 관계없이 4 블록 전송들 이후에 종결된다.
또한 각 모드는 다른 수의 블록 전송들에 대해 상이한 "유효(effective)" 코드율들과 관련된다. 모드 m으로 전송되는 데이터 패킷에 대해, l번째 블록 전송 이후의 데이터 패킷에 대한 상기 유효 코드율 Reff ,m(l)은(여기서 l=1,2,...,T) l로 나누어진 상기 기준 코드율, 즉 Reff ,m(l)=Rbase ,m/l과 같다. 이는 l배의 코드 비트들의 수가 l 블록 전송들로 상기 패킷 데이터에 대해 전송되었기 때문이다. 예를 들어, 모드 3으로 전송되는 데이터 패킷은 상기 패킷에 대해 단 하나의 블록이 전송된다면 R=2/3 인 유효 코드율과 S=3/4인 주파수 효율을, 두 개의 블록들이 상기 패킷에 대해 전송된다면 R=1/3인 유효 코드율과 S=2/3인 주파수 효율을, 3개의 블록들이 상기 패킷에 대해 전송된다면 R=2/9인 유효 코드율과 S=4/9인 주파수 효율을, 그리고 4개의 블록들이 상기 패킷에 대해 전송된다면 R=1/6인 유효 코드율과 S=1/3인 주파수 효율을 갖는다.
표 1
모드 |
변조 방식 |
기준 코드율 |
~이후의 주파수 효율 |
1 블록 전송 |
2 블록 전송 |
3 블록 전송 |
4 블록 전송 |
1 |
QPSK |
R = 1/5 |
2×(1/5)=2/5 |
2×(1/10)=1/5 |
2×(1/15)=2/15 |
2×(1/20)=1/10 |
2 |
QPSK |
R = 1/3 |
2×(1/3)=2/3 |
2×(1/6)=1/3 |
2×(1/9)=2/9 |
2×(1/12)=1/6 |
3 |
QPSK |
R = 2/3 |
2×(2/3)=4/3 |
2×(2/6)=2/3 |
2×(2/9)=4/9 |
2×(2/12)=1/3 |
4 |
8-PSK |
R = 2/3 |
3×(2/3)=2 |
3×(2/6)=1 |
3×(2/9)=2/3 |
3×(2/12)=1/2 |
5 |
16-QAM |
R = 2/3 |
4×(2/3)=8/3 |
4×(2/6)=4/3 |
4×(2/9)=8/9 |
4×(2/12)=2/3 |
6 |
64-QAM |
R = 5/9 |
6×(5/9)=10/3 |
6×(5/18)=5/3 |
6×(5/27)=10/9 |
6×(5/36)=5/6 |
7 |
64-QAM |
R = 2/3 |
6×(2/3)=4 |
6×(2/6)=2 |
6×(2/9)=4/3 |
6×(2/12)=1 |
표 1에 도시한 바와 같이, 각 모드에 대한 유효 코드율(열 4내지 7의 괄호 내부에 표시됨) 및 주파수 효율(열 4내지 7의 등호 이후에 표시됨)은 패킷에 대해 전송되는 블록들의 수에 따라 달라진다. 따라서 각 모드는 복수의 주파수 효율들에 대해 이용될 수 있다. 각 모드에 대해, 특정 주파수 효율(예컨대, 두 블록 전송들을 가진)에서 최적의 성능을 달성하는 코드율과 변조 방식의 조합이 선택되어 상기 모드에 대해 이용될 수 있다. 그러나, 이러한 코드율 및 변조 방식의 조합은 다른 주파수 효율들에서는(예컨대, 하나, 셋, 그리고 네개의 블록 전송들을 갖는) 좋은 성능을 달성하지 못할 수 있다.
성능을 향상시키기 위해, 상이한 코드율과 변조 방식의 조합이 특정 모드에 대해 상이한 블록 전송들을 위해 이용될 수 있다. 각 모드에 대한 상기 상이한 코드율 및 변조 방식의 조합들은 다양한 방식으로 결정될 수 있다.
제 1 실시예로, 각 블록 전송을 위해 이용할 변조 방식은 상기 블록 전송 후에 달성되는 주파수 효율에 기초하여 선택된다. 각각의 모드 m에 대해, l번째 블록 전송에 대한 상기 변조 방식 Mm(l)은 다음과 같이 선택될 수 있다. 모드 m에 대한 l번째 블록 전송 후의 주파수 효율 Sm(l)이 먼저 표 1로부터 결정된다. 그리고 나서 상기 변조 방식 Mm(l)은, 1/2 또는 그보다 낮은 유효 코드율 R' eff,m (l)과 함께, 상기 주파수 효율 Sm(l)을 달성하는 최저차의 변조 방식으로 세팅 된다. 상기 유효 코드율 R' eff ,m (l)은 상기 변조 방식 Mm(l)이 각각의 l번째 블록 전송들을 위해 이용되었다면 모든 l개의 블록 전송들에 대한 코드율이다. 상기 유효 코드율, 변조 방식, 그리고 주파수 효율 간의 관계는 다음과 같이 표현될 수 있다: Sm(l)=R' eff ,m (l)×Bm(l), 여기서 Bm(l)은 변조 방식 Mm(l)에 대한 변조 심볼 당 코드 비트들의 수이다. 따라서 변조 방식 Mm(l)은 다음과 같이, 주파수 효율 Sm(l)에 기초하여 선택될 수 있다:
1.0 bps/Hz 이하인 주파수 효율에 대해 QPSK를 이용;
1.0 과 1.5 bps/Hz 간의 주파수 효율에 대해 8-PSK를 이용;
1.5 및 2.0 bps/Hz 간의 주파수 효율에 대해 16-QAM을 이용; 그리고
2.0 bps/Hz를 초과하는 주파수 효율에 대해 64-QAM을 이용한다.
상기 매핑은 단지 QPSK, 8-P나 16-QAM, 그리고 64-QAM 만이 시스템에 의해 지원된다고 가정한다. 다른 매핑들도 지원되는 변조 방식들의 다른 세트들에 대해 이용가능할 수 있다.
표 2는 표 1에 열거된 7가지 모드들을 위한 각 블록 전송들에 대한 제 1 실시예에 기초하여 선택되는 변조 방식을 나타낸다. 표 2의 제 2 행은 기준 주파수 효율 S base ,m 을 나타내며, 이는 1 블록 전송 후의 주파수 효율이다. 각 모드 m에 대 해, 각 블록 전송에 이용하는 변조 방식은 상기 블록 전송 후의 주파수 효율에 기초하고 상기 기술된 주파수 효율-대-변조 방식 매핑을 이용하여 결정된다. 예를 들어, 모드 3에 대해, 8-PSK가 제 1 블록 전송을 위해 이용되는데 이는 이러한 전송 후의 주파수 효율이 S=4/3이기 때문이며, 제 2 블록 전송에 대해 QPSK가 이용되는데 이는 이러한 전송 후의 주파수 효율이 S=2/3이기 때문이다. 다른 예로써, 모드 6에 대해, 64-QAM이 제 1 블록 전송에 이용되는데 이는 이 전송 후의 주파수 효율이 S=10/3이기 때문이고, 16-QAM이 제 2 블록 전송에 이용되는데 이는 이러한 전송 후의 주파수 효율이 S=5/3이기 때문이고, 8-PSK가 제 3 블록 전송에 이용되는데 이는 이러한 전송 후의 주파수 효율이 S=10/9 이기 때문이며, QPSK가 제 4 블록 전송에 이용되는데 이는 이러한 전송 후의 주파수 효율이 S=5/6이기 때문이다.
표 2
모드 m |
S base ,m |
제 1 블록 전송 |
제 2 블록 전송 |
제 3 블록 전송 |
제 4 블록 전송 |
1 |
2/5 |
QPSK |
QPSK |
QPSK |
QPSK |
2 |
2/3 |
QPSK |
QPSK |
QPSK |
QPSK |
3 |
4/3 |
8-PSK |
QPSK |
QPSK |
QPSK |
4 |
2 |
16-QAM |
QPSK |
QPSK |
QPSK |
5 |
8/3 |
64-QAM |
8-PSK |
QPSK |
QPSK |
6 |
10/3 |
64-QAM |
16-QAM |
8-PSK |
QPSK |
7 |
4 |
64-QAM |
16-QAM |
8-PSK |
QPSK |
제 2 실시예로, 각 모드에 대해, 각 블록 전송에 이용하기 위한 코드율 및 변조 방식의 특정 조합이 우수한 성능을 달성하기 위해 독립적으로 선택된다. 모드 m인 제 1 블록 전송에 대해, 주파수 효율 S base ,m 를 갖는 코드율과 변조 방식의 다양한 조합들이 평가되고(예컨대, 컴퓨터 시뮬레이션, 실측 등에 기초하여), 최고의 성능을 갖는 코드율 Rm(1)과 변조 방식 Mm(1)의 조합이 선택된다. 모드 m인 제 2 블록 전송에 대해, 비록 상기 제 1 전송이 Mm(1)과 Rm(1)을 이용하여 전송되었으며 디코딩된 패킷이 삭제되었다는 전제 하에서이기는 하나, 주파수 효율 S base,m 를 갖는 코드율과 변조 방식의 다양한 조합들이 다시 평가된다. 제 2 블록 전송에 대해 최적의 성능을 갖는 코드율 Rm(2) 및 변조방식 Mm(2)의 조합이 선택된다. 모드 m인 제 3 블록 전송에 대해, 비록 상기 제 1 전송이 Mm(1)과 Rm(1)을 이용하여 전송되었고, 제 2 블록 전송이 Mm(2)과 Rm(2)을 이용하여 전송되었으며, 상기 두 블록 전송들 모두로써 디코딩된 패킷이 삭제되었다는 전제 하에서이기는 하나, 주파수 효율 S base ,m 를 갖는 코드율과 변조 방식의 다양한 조합들이 다시 평가된다. 최적의 성능을 갖는 코드율 Rm(3) 및 변조방식 Mm(3)의 조합이 다시 선택된다. 모드 m인 제 4 블록 전송에 대해, 비록 상기 제 1 전송이 Mm(1)과 Rm(1)을 이용하여 전송되었고, 제 2 블록 전송이 Mm(2)과 Rm(2)을 이용하여 전송되었고, 제 3 블록 전송이 Mm(3)과 Rm(3)을 이용하여 전송되었으며, 상기 세 블록 전송들 모두로써 디코딩된 패킷이 삭제되었다는 전제 하에서이기는 하나, 주파수 효율 S base ,m 를 갖는 코드율과 변조 방식의 다양한 조합들이 다시 평가된다. 최적의 성능을 갖는 코드율 Rm(4) 및 변조방식 Mm(4)의 조합이 다시 선택된다. 따라서 코드율 Rm(l)과 변조 방식 Mm(l)의 다른 조합이 모드 m의 각 블록 전송에 대해 선택될 수 있다.
제 3 실시예로, 각 모드에 대해 지정된 주파수 효율에 대한 최적의 성능을 제공하는 코드율 및 변조 방식의 조합이 선택된다. 이러한 지정된 주파수 효율은 미리 결정된 수의(예컨대 2) 블록 전송들 이후의 주파수 효율이며 패킷들이 이러한 많은 블록 전송들 이후에 정확하게 디코딩되었다고 가정한다. 제 2 블록 전송 후의 조기 종료되는 각 모드에 대한 최적의 변조 방식은 표 2의 제 4 열에 제시된다. 그리고 나서 만일 결과적인 코드율이 1/2 이하라면, 각 모드에 대해, 더 고차의 변조 방식이 제 1 블록 전송을 위해 선택된다. 표 3은 제 3 실시예에 관한 각각의 모드에 대해 선택된 변조 방식들을 나타낸다. 본 실시예는 모든 T 블록 전송들 중 가장 빈번한, 제 1 블록 전송에 대하여 향상된 성능을 제공하는 반면 송신기 및 수신기에서의 복잡도를 감소시킬 수 있다.
표 3
모드 m |
S base ,m |
제 1 블록 전송 |
제 2 블록 전송 |
제 3 블록 전송 |
제 4 블록 전송 |
1 |
2/5 |
QPSK |
QPSK |
QPSK |
QPSK |
2 |
2/3 |
QPSK |
QPSK |
QPSK |
QPSK |
3 |
4/3 |
8-PSK |
QPSK |
QPSK |
QPSK |
4 |
2 |
16-QAM |
8-PSK |
8-PSK |
8-PSK |
5 |
8/3 |
64-QAM |
16-QAM |
16-QAM |
16-QAM |
6 |
10/3 |
64-QAM |
64-QAM |
64-QAM |
64-QAM |
7 |
4 |
64-QAM |
64-QAM |
64-QAM |
64-QAM |
각 모드에서 각각의 블록 전송을 위해 코드율 및 변조 방식을 선택하기 위한 몇가지 실시예들이 상기 기술되었다. 또한 각각의 블록 전송을 위한 코드율 및 변조 방식이 다른 방법으로 선택될 수 있으며, 이는 본 발명의 범위 내에 해당된다.
도 2는 IR 전송을 이용하는 무선 통신 시스템(200)의 송신기(210) 및 수신기(250)의 블록 다이어그램을 나타낸다. 송신기(210)에서, TX 데이터 처리기(220) 는 데이터 소스(212)로부터 데이터 패킷들을 수신한다. TX 데이터 처리기(220)는 패킷에 대해 선택된 모드에 따라 각 데이터 패킷을 처리(예컨대, 포맷(format), 인코딩, 구분(partition), 인터리빙(interleave), 및 변조)하고 상기 패킷에 대해 T 개까지 데이터 심볼들의 블록을 발생시킨다. 각 데이터 패킷에 대해 선택된 상기 모드는 (1) 패킷 크기(즉, 상기 패킷에 대한 정보 비트들의 개수) 및 (2) 상기 패킷의 각 데이터 심볼 블록에 이용하기 위한 코드율 및 변조 방식의 특정 조합을 나타낼 수 있다. 제어기(230)는 상기 패킷에 대해 수신된 피드백(ACK/NAK)와 함께 상기 선택된 모드에 기초하여 각각의 데이터 패킷에 대해 데이터 소스(212) 및 TX 데이터 처리기(220)에 관한 다양한 제어를 제공한다. TX 데이터 처리기(220)는 데이터 심볼 블록들의 흐름(stream)(예컨대, 각 프레임 당 한 1 블록)을 제공하며, 여기서 각 패킷에 대한 블록들은 하나 이상의 다른 패킷들에 대한 블록들과 인터레이스(interlace) 될 수 있다.
송신기 유닛(TMTR)(222)은 TX 데이터 처리기(220)로부터 상기 데이터 심볼 블록들의 흐름을 수신하고 변조된 신호를 발생시킨다. 송신기 유닛(222)은 상기 데이터 심볼들과 함께 파일럿 심볼들로 다중화하며(예컨대, 시간, 주파수, 및/또는 코드분할 다중화) 전송 심볼들의 흐름(stream)을 얻는다. 각 전송 심볼은 데이터 심볼, 파일럿 심볼, 또는 0인 신호 값을 갖는 널(null) 심볼일 수 있다. 송신기 유닛(222)은 상기 시스템이 OFDM을 이용한다면 OFDM 변조를 수행할 수 있다. 송신기 유닛(222)은 일련의 시간-영역 샘플(sample)들을 발생시키고 나아가 상기 샘플 흐름(stream)을 조정(예컨대, 아날로그로 변환, 주파수 상향변환, 필터링, 및 증 폭)하여 변조된 신호를 발생시킨다. 그리고 나서 상기 변조된 신호는 안테나(224)로부터 통신 채널을 통해 수신기(250)로 송신된다.
수신기(250)에서, 상기 송신된 신호는 안테나(252)에 의해 수신되며, 상기 수신된 신호는 수신기 유닛(RCVR)(254)에 제공된다. 수신기 유닛(254)은 상기 수신된 신호를 조정, 디지털화, 및 전-처리(pre-process)(예컨대, OFDM 복조)하여 수신된 데이터 심볼들과 수신된 파일럿 심볼들을 얻는다. 수신기 유닛(254)은 상기 수신된 데이터 심볼들을 검출기(256)에 제공하며 상기 수신된 파일럿 심볼들을 채널 추정기(258)에 제공한다. 채널 추정기(258)는 상기 수신된 파일럿 심볼들을 처리하고 상기 통신 채널에 대한 채널 추정들(예컨대, 채널 이득 추정 및 SINR 추정들)을 제공한다. 검출기(256)는 상기 채널 추정들로써 수신된 데이터 심볼들에 대한 검출을 수행하고 검출된 데이터 심볼들을 RX 데이터 처리기(260)에 제공한다. 상기 검출된 데이터 심볼들은 상기 데이터 심볼들을 형성하는데 이용되는 코드 비트들에 대한 로그-우도 비(log-likelihood ratio, LLR)들로써(이하에서 기술되는 바와 같이) 또는 다른 표현들로써 나타낼 수 있다. 새로운 검출된 데이터 심볼들의 블록이 특정 데이터 패킷에 대해 얻어질 때마다, RX 데이터 처리기(260)는 상기 패킷에 대해 얻어진 모든 검출된 데이터 심볼들을 처리(예컨대, 디인터리빙(deinterleave) 및 디코딩)하고 디코딩된 패킷을 데이터 싱크(data sink)(262)에 제공한다. 또한 RX 데이터 처리기(260)는 상기 디코딩된 패킷을 점검하고 상기 패킷 상태를 제공하며, 이는 상기 패킷이 정확하게 또는 잘못 디코딩되었는지 여부를 나타낸다.
제어기(270)는 채널 추정기(258)로부터 채널 추정들을 그리고 RX 데이터 처리기(260)로부터 패킷 상태를 수신한다. 제어기(270)는 상기 채널 추정들에 기초하여 수신기(250)로 전송될 다음 데이터 패킷에 대한 모드를 선택한다. 또한 제어기(270)는 피드백 정보를 조합하며, 이는 다음 패킷에 대하여 선택된 모드, 방금 디코딩된 패킷에 대한 ACK 또는 NAK 등을 포함할 수 있다. 상기 피드백 정보는 TX 데이터 처리기(282)에 의해 처리되며, 추가로 송신기 유닛(284)에 의해 조정되고, 안테나(252)를 통해 송신기(210)로 전송된다.
송신기(210)에서, 수신기(250)로부터 전송된 상기 신호는 안테나(224)에 의해 수신되고, 수신기 유닛(242)에 의해 조정되며, 추가로 RX 데이터 처리기(244)에 의해 처리되어 수신기(250)에 의해 전송된 상기 피드백 정보를 복구한다. 제어기(230)는 상기 수신된 피드백 정보를 획득하고, ACK/NAK를 이용하여 수신기(250)로 전송 중인 패킷의 IR 전송을 제어하며, 선택된 모드를 이용하여 수신기(250)로 전송될 다음 데이터 패킷을 처리한다.
제어기들(230 및 270)은 송신기(210) 및 수신기(250)에서의 동작을, 각각 감독한다. 메모리 유닛들(232 및 272)은 제어기들(230 및 270)에 의해 이용되는 프로그램 코드들과 데이터를 위한 스토리지를 각각 제공한다.
도 3은 송신기(210)에서의 TX 데이터 처리기(220)의 실시예인 블록 다이어그램을 나타낸다. TX 데이터 처리기(220)는 데이터 패킷들을 수신하고, 선택된 모드에 기초하여 각 패킷을 처리하며, 상기 패킷에 대한 T개까지의 데이터 심볼 브록들을 제공한다. 도 4는 TX 데이터 처리기(220)에 의한 하나의 데이터 패킷에 대한 처리를 나타낸다.
TX 데이터 처리기(220) 내부에서, 순환 잉여 검사(cyclic redundancy check, CRC) 발생기(312)가 데이터 패킷을 수신하고, 상기 데이터 패킷에 대한 CRC 값을 발생시키며, 상기 CRC 값을 상기 데이터 패킷에 덧붙여서 포맷된(formatted) 패킷을 형성한다. 상기 CRC 값은 상기 수신기에 의해 이용되어 패킷이 정확하게 또는 잘못 디코딩되었는지 여부를 검사한다. 또한 다른 오류 검출 코드들이 CRC 대신 이용될 수 있다. 전방 오류 정정(forward error corection, FEC) 인코더(314)는 기준 코딩 방식에 따라 상기 포맷된 패킷을 인코딩하고 코딩된 패킷 즉 "코드워드(codeword)"를 제공한다. 상기 인코딩은 데이터 전송의 신뢰성을 향상시킨다. FEC 인코더(314)는 터보 코드(Turbo code), 컨벌루션 코드(convolutional coce), 저-밀도 패리티 체크(low-density parity check, LDPC) 코드, 또는 다른 코드를 구현할 수 있다. 예를 들어, FEC 인코더(314)는 레이트 1/5 터보 코드를 구현하고 각각의 포맷된 패킷에 대해 K 입력 비트들로써 5K 코드 비트들을 발생시키며, 여기서 K는 패킷 크기이며 선택된 모드에 좌우될 수 있다. 예시적인 레이트 1/5 터보 코드는 IS-2000 표준에 의해 정의되며 문서 3GPP2 C.S0024, 명칭 "cdma2000 고속 레이트 패킷 데이터 무선 인터페이스 사양(High Rate Packet Data Air Interface Specification)"에 기술되어 있으며, 공개적으로 이용가능하다.
구분 유닛(partitioning unit)(320)은 각 패킷에 대한 코드 비트들을 수신하고, 제어기(230)로부터의 코딩 제어에 의해 지시되는 바와 같이, 상기 블록을 위해 이용되는 변조 방식에 기초하여 각 블록에 대하여 충분한 수의 코드 비트들을 제공 한다. 버퍼들(322a내지 322t)은 각 패킷의 블록 1내지 T에 대한 코드 비트들을, 각각 수신하고 저장한다. 또한 각 버퍼(322)는 인터리빙 방식에 따라 그 블록에 대한 코드 비트들을 인터리빙(즉, 재배열) 할 수 있다. 상기 인터리빙은 코드 비트들에 대해 시간 및/또는 주파수 다이버시티를 제공한다. 멀티플렉서(MUX)(324)는 모든 T개의 버퍼들(322a 내지 322t)에 접속되며 T개의 코드 비트들의 블록들을, 한 번에 한 블록씩 그리고 제어기(230)로부터의 IR 전송 제어에 의해 지시되었다면, 제공한다. 멀티플렉서(324)는 제 1 블록 전송에 대해 버퍼(322a)로부터의 상기 코드 비트들을 제공하고, 제 2 블록 전송에 대해 버퍼(322b)(도 3에 도시하지 않음)로부터의 코드 비트들을 제공하며, 이렇게 하여, 최종 블록 전송에 대해 버퍼(322t)로부터의 코드 비트들을 제공한다. 멀티플렉서(324)는 NAK가 데이터 패킷에 대해 수신되면 다음 코드 비트들의 블록을 제공한다. 모든 T개의 버퍼들(322a 내지 322t)은 ACK가 수신될 때마다 소거될 수 있다.
심볼 매핑 유닛(326)은 각 블록에 대한 코드 비트들을 수신하고 상기 코드 비트들을 변조 심볼들에 매핑한다. 상기 심볼 매핑은, 제어기(230)로부터의 변조 제어에 의해 지시되는 바와 같이, 상기 블록에 대해 이용된 변조 방식에 따라 수행된다. 상기 심볼 매핑은 (1) B개의 비트들의 세트들을 그룹화하여 B-비트 이진 값들을 형성함으로써(여기서 QPSK에 대해 B=2, 8-PSK에 대해 B=3, 16-QAM에 대해 B=4, 64-QAM에 대해 B=6), 그리고 (2) 각 B-비트 이진 값을 상기 블록에 이용되는 변조 방식에 대한 신호 컨스텔레이션(constellation) 내의 어느 점으로 매핑함으로써 이뤄질 수 있다. 심볼 매핑 유닛(326)은 각 코드 비트들의 블록에 대해 데이터 심볼들의 블록을 제공한다.
명확화를 위해, 코딩된 패킷의 상기 코드 비트들을 복수의 블록들로 분할하는 것이 예시적인 설계로서 이하에서 기술된다. 본 설계에 있어서, FEC 코드는 레이트 1/5 터보 코드이고, 최대 블록 전송 횟수는 4(즉, T=4)이며, 패킷 사이즈는 모든 모드들에 대해 K 입력 비트이며, 각 블록은 주파수 효율 S에 대해 K/S 변조 심볼들을 포함한다. 모든 모드들에 대하여 동일한 패킷 사이즈를 이용하는 것은 상이한 모드들에 대해 이하에서 기술되는 처리를 명확하게 설명한다. 많은 시스템에서, 변조 심볼의 수는 모든 모드들에 대해 고정되며, 패킷 사이즈는 상이한 모드들에 대하여 변화한다. 따라서, 상이한 패킷 사이즈들이 상이한 모드들에 대해 이용될 수도 있으며, 고정된 블록 사이즈가 모든 모드들에 대해 이용될 수도 있다.
도 5a는 특정 모드에 대해 동일한 변조 방식이 모든 T 블록 전송들에 대해 이용 중인 표 1의 상기 방식에 대한 분할 유닛(320a)의 블록 다이어그램을 나타낸다. 데이터 패킷에 CRC 값이 부착되어 K개의 입력 비트들로 포맷된 패킷을 형성하며, 이는 이후에 인코딩되어 5K개의 코드 비트들로 코딩된 패킷을 발생시킨다. 상기 레이트 1/5 터보 코드에 대해, 첫 번째 K개의 코드 비트들은 K개의 입력 비트들과 동일하며 계통적 비트(systematic bit)들로 칭하며, 나머지 4K개의 코드 비트들은 터보 인코더에 의해 발생되며 패리티 비트(parity bit)들로 칭한다.
도 5a는 표 1의 모드 3에 대한 분할을 나타내며, 이는 각 블록 전송에 대해 QPSK를 이용한다. 상기 예시적 설계에 있어서, 각 블록은 모드 3에 대해 3K/4개의 변조 심볼들을 포함하며, 3K/2개의 코드 비트들이 QPSK를 이용하여 한 블록으로 전 송될 수 있다. 분할 유닛(320a)내에서, 펑처링(puncturing) 유닛(510a)은 상기 코딩된 패킷에 대한 5K 코드 비트들을 수신하고, 제 1 블록 전송에 대한 3K/2개의 코드 비트들을 버퍼(322a)에 제공하며, 나머지 7K/2개의 코드 비트들을 펑처링 유닛(510b)에 제공한다. IR 전송을 위해, 상기 K개의 계통적 비트들과 요구되는 수만큼의 패리티 비트들은 일반적으로 제 1 블록 전송으로 전송된다. 이는 상기 수신기로 하여금 좋은 채널 상태 하에서 단 하나의 블록 전송으로써 상기 데이터 패킷을 복구하게 하여 준다. 각 블록 전송으로 전송되는 상기 패리티 비트들은 특정한 펑처링 패턴(puncturing pattern)에 기초하여 코딩된 패킷 전체로부터 얻어질 수 있다. 향상된 디코딩 성능은 복수의 블록 전송들에 걸쳐 상기 코딩된 패킷에 대하여 상기 패리티 비트들을 의사-난수적으로(pseudo-randomly) 확산시킴으로써 달성될 수 있다.
펑처링 유닛(510b)은 유닛(510a)로부터 7K/2개의 코드 비트들을 수신하고, 제 2 블록에 이용되는 펑처링 패턴에 기초하여 수신되는 7K/2개의 코드 비트들 중에서 3K/2개의 코드 비트들을 선택하고, 상기 선택된 3K/2개의 코드 비트들을 버퍼(322b)에 제공하며, 나머지 2K개의 코드 비트들을 펑처링 유닛(510c)에 제공한다. 유닛(510c)은 제 3 블록에 이용되는 펑처링 패턴에 기초하여 상기 수신된 2K개의 코드 비트들 중에서 3K/2개의 코드 비트들을 선택하고, 상기 선택된 3K/2 개의 코드 비트들을 버퍼(322c)에 제공하며, 나머지 K/2개의 코드 비트들을 펑처링 유닛(510d)에 제공한다. 이러한 K/2개의 코드 비트들은 다른 블록에 대해서 충분하지 않다. 전체 코딩된 패킷이 전송되었기 때문에, 동일한 코딩된 패킷이 도 4에 제시된 바와 같이 반복된다. 일반적으로, 상기 코딩된 패킷은 상기 패킷에 대한 T 블록 전송들에 대해 필요한 횟수만큼 반복될 수 있다. 따라서 유닛(510d)은 또한 FEC 인코더(314)로부터 코드 비트들을 수신하고, FEC 인코더(314)로부터의 1K개의 계통적 비트들과 함께 유닛(510c)로부터 K/2개의 코드 비트들을 선택하며, 선택된 3K/2개의 코드 비트들을 버퍼(322d)에 제공한다. 그 후에 각각의 버퍼들(322a 내지 322d)로부터의 상기 3K/2개의 코드 비트들은 심볼 매핑되어 3K/4개의 QPSK 변조 심볼들을 얻는다.
도 5b는 단일 패킷에 이용되는 복수의 변조 방식들과 함께 표 2에 제시되는 실시예들의 모드 3에 대한 분할 유닛(320b)의 블록 다이어그램을 나타낸다. 표 2의 모드 3에 대해, 8-PSK가 제 1 블록에 이용되고 QPSK가 이후 각각의 블록에 이용된다. 분할 유닛(320b) 내부에서, 펑처링 유닛(520a)는 상기 코딩된 패킷에 대해 5K개의 코드 비트들을 수신하고, 제 1 블록에 대한 9K/4개의 코드 비트들을 버퍼(322a)에 제공하며, 나머지 11K/4개의 코드 비트들을 펑처링 유닛(520b)에 제공한다. 유닛(520b)은 제 2 블록에 이용되는 펑처링 패턴에 기초하여 상기 수신된 11K/4개의 코드 비트들 중에서 3K/2개의 코드 비트들을 선택하고, 상기 선택된 3K/2개의 코드 비트들을 버퍼(322b)에 제공하며, 나머지 5K/4개의 코드 비트들을 펑처링 유닛(520c)에 제공한다. 또한 유닛(520c)은 FEC 인코더(314)로부터 5K 코드 비트들을 수신하고, FEC 인코더(314)로부터의 제 1 K/4개의 계통적 비트들 뿐 아니라 유닛(520b)로부터의 5K/4개의 코드 비트들을 선택하고, 선택된 3K/2개의 코드 비트들을 버퍼(322c)에 제공하며, 나머지 19K/4개의 코드 비트들을 펑처링 유 닛(520d)에 제공한다. 유닛(520d)은 나머지 3K/4개의 계통적 비트들을 선택하고, 펑처링 패턴에 기초하여 다른 3K/4개의 패리티 비트들을 선택하며, 상기 선택된 3K/2개의 코드 비트들을 버퍼(322d)에 제공한다. 그 후에 각각의 버퍼들(322a 내지 322d)로부터의 상기 코드 비트들은 심볼 매핑되어 3K/4개의 변조 심볼들을 얻는다.
도 5c는 표 2에 제시된 실시예에서 모드 7에 대한 분할 유닛(320c)의 블록 다이어그램을 나타내며, 여기서는 제 1, 2, 3, 및 4 블록 각각에 대하여 64-QAM, 16-QAM, 8-PSK, 및 QPSK를 이용한다. 블록 크기 K/S에 대하여, 각 블록은 S=4인 모드 7에 대해 K/4개의 변조 심볼들을 포함하며, 3K/2개의 코드 비트들이 64-QAM을 이용하여 한 블록으로 전송될 수 있다. 분할 유닛(320c) 내부에서, 펑처링 유닛(530a)은 코딩된 패킷에 대한 5K개의 코드 비트들을 수신하고, 제 1 블록에 대한 3K/2개의 코드 비트들을 버퍼(322a)에 제공하며, 나머지 7K/2개의 코드 비트들을 펑처링 유닛(530b)에 제공한다. 유닛(530b)은 제 2 블록에 대해 이용되는 펑처링 패턴에 기초하여 수신된 7K/2개의 코드 비트들 중에서 K개의 코드 비트들을 선택하고, 상기 선택된 K개의 코드 비트들을 버퍼(322b)에 제공하며, 나머지 5K/2개의 코드 비트들을 펑처링 유닛(530c)에 제공한다. 유닛(530c)은 제 3 블록에 대해 이용되는 펑처링 패턴에 기초하여 수신된 5K/2개의 코드 비트들 중에서 3K/4개의 코드 비트들을 선택하고, 상기 선택된 3K/4개의 코드 비트들을 버퍼(322c)에 제공하며, 나머지 7K/4개의 코드 비트들을 펑처링 유닛(530d)에 제공한다. 유닛(530d)은 제 4 블록에 대해 이용되는 펑처링 패턴에 기초하여 상기 수신된 7K/4개의 코드 비트 들 중에서 K/2개의 코드 비트들을 선택하며, 상기 선택된 K/2개의 코드 비트들을 버퍼(322d)에 제공한다. 각각의 버퍼들(322a 내지 322d)로부터의 코드 비트들은 이후에 심볼 매핑되어 K/4개의 변조 심볼들을 얻는다.
도 5a 내지 5C는 예시적인 설계 및 수 개의 모드에 대한 분할 및 펑처링을 나타낸다. 각 모드에 대한 T개의 블록들에 관한 분할 및 펑처링은 상기 기술된 바와 같이 또는 다른 방법으로 수행될 수 있다. 예를 들어, 상기 계통적 비트들은 상기 패킷에 대해 먼저 전송되지 않을 수 있고, 각 패킷에 대한 코드 비트들은 의사-난수(pseudo-random) 방식 등으로 선택될 수 있다. 또한 FEC(예컨대 컨벌루션) 코드가 계통적 비트들을 발생시키지 않을 수 있으며, 이 경우 각각의 블록에 대한 상기 코드 비트들은 상기 코딩된 패킷들 중에서 의사-난수적으로 선택될 수 있다. 또한, 상기 프레이밍 구조(framing structure)는 상기 기술된 구조와 상이할 수 있다.
도 6은 수신기(250)의 검출기(256) 및 RX 데이터 처리기(260)의 실시예의 블록 다이어그램이다. 검출기(256) 내부에서, LLR 계산 유닛(610)은 수신기 유닛(254)으로부터 수신된 데이터 심볼들을 그리고 채널 추정기(258)로부터 채널 추정들을 얻어서 상기 수신된 데이터 심볼들에 대한 LLR들을 계산한다. 각각의 수신된 데이터 심볼은 다음과 같이 표현될 수 있다:
여기서 s i 는 데이터 패킷에 대해 전송되는 i번째 데이터 심볼이고;
h i 는 데이터 심볼 s i 에 의해 관찰되는 복소 채널 이득이고;
η i 는 데이터 심볼
에 의해 관찰되는 잡음 및 간섭이며; 그리고
는 상기 데이터 패킷에 대해 i번째로 수신되는 데이터 심볼이다.
등식(1)은 각 데이터 심볼 s i 가 단일 채널 이득 h i 를 갖는 통신 채널을 가정한다. 예를 들어, 이 경우는 각 데이터 심볼이 OFDM을 이용하는 하나의 부대역(subband)으로 전송되거나, 또는 상기 통신 채널이 단일 전파(propagation) 경로에 대해 단일 채널 탭(tap)을 갖는 경우일 수 있다. 상기 잡음은 평균 0이고 분산 v i 인 부가 백색 복소 가우스 잡음(additive white complex Gaussian noise, AWGN)으로 가정될 수 있다.
각각의 수신된 데이터 심볼
는 송신된 데이터 심볼
s i 의 추정이며, 이는 B 코드 비트들
b i = [
b i ,1,
b i ,2 ...
b i ,B]를 상기 데이터 심볼
s i 에 대해 이용되는 변조 방식에 관한 신호 컨스털레이션(constellation) 내의 점으로 매핑함으로써 얻어진다. 수신된 데이터 심볼
에 대한 j번째 코드 비트의 LLR은 다음과 같이 표현될 수 있다:
여기서
b i,j 는 수신된 데이터 심볼
에 대한 j번째 코드 비트이고;
Pr(
|
b i,j =1)은 비트
b i,j 가 1인 데이터 심볼
가 수신될 확률이고;
Pr(
|
b i,j =-1)은 비트
b i,j 가 -1(즉, '0')인 데이터 심볼
가 수신될 확률이며; 그리고
LLR i ,j 는 코드 비트 b i,j 의 LLR이다.
LLR은 양-극성 값으로, 상기 코드 비트가 a+1일 가능성이 더 크면 더 큰 양수값을 그리고 코드 비트가 a-1일 가능성이 더 크면 더 큰 음수 값을 갖는다. 0인 LLR은 상기 코드비트가 +1 또는 -1이 될 가능성이 동일함을 나타낸다.
각 수신된 데이터 심볼
에 대한 상기 B 코드 비트들이 독립적이라면(이는 적절한 인터리빙으로써 이뤄질 수 있다), 등식(2)은 다음과 같이 표현될 수 있다:
여기서 Ω j,q 는 j번째 코드 비트가 q인 신호 컨스털레이션 내의 점들의 세트이고;
s는 값이 구해지는 상기 세트 Ω j,q 내의 변조 심볼 또는 신호 점이며; 그리고
는 수신된 데이터 심볼
에 대한 채널 이득의 추정이다.
q=1에 대한 상기 신호 세트 Ω
j, 1,
q=-1에 대한 신호 세트 Ω
j,- 1, 그리고 파라미터 B 모두는 상기 수신된 데이터 심볼
에 이용되는 변조 방식에 따라 좌우된다. 상이한 변조 방식들이 패킷의 상이한 블록들이 이용될 수 있으며, Ω
j, 1, Ω
j,- 1, 및 B는 블록들에 따라 달라질 수 있다.
등식(3)은 공지된 바와 같이, 다양한 방법으로 구해질 수 있다. 유닛(610)은 {
LLR i ,j }로 표기되는 B개의 LLR들을, 각 수신된 데이터 심볼
의 B개 코드 비트들에 대해 계산한다. 또한 유닛(610)은 복수의 동일한 데이터 심볼
s i 의 전송들에 대해 계산되는 LLR들을 결합할 수 있어서, 단지 하나의 LLR만이 코딩된 패킷의 각 코드 비트를 관하여 저장되며, 이는 메모리 요구를 감소시킬 수 있다. 또한 유닛(610)은 각 코드 비트에 대한 상기 LLR을 미리 결정된 수의 비트들로 양자화하여 저장을 용이하게 할 수 있다. 상기 LLR들에 대해 이용되는 비트들의 수는 디코더의 요구사항, 상기 수신된 데이터 심볼들의 SINR 등과 같은 다양한 요인들에 달려 있다. 유닛(610)은 각각의 수신된 데이터 블록의 코드 비트들에 대한 LLR들을 RX 데이터 처리기(260)에 제공한다.
RX 데이터 처리기(260) 내부에서, 패킷 버퍼(620)는 각 데이터 패킷의 코드 비트들에 대한 상기 LLR들을 저장한다. 새로운 데이터 패킷을 수신하기에 앞서, 버퍼(620)는 초기화되거나 0인 LLR 값들인, 소거값(erasure)들로 채워진다. 소거(erasure)는 디코딩 프로세스에서 불명의(missing) 코드 비트(아직 수신되지 않 았거나 전혀 송신되지 않은 것)를 대체하고 적절한 웨이트(weight)가 주어지는 값이다. 주소 발생기(622)는 유닛(610)으로부터 수신된 각각의 LLR에 대한 적절한 주소를 발생시켜서, 상기 LLR이 상기 패킷에 대해 적절한 위치에 저장된다. 각 코드 비트에 대한 상기 LLR에 관한 주소는 (1) 데이터 패킷에 대해 선택된 모드, (2) 코드비트가 수신되는 특정 블록, 그리고 (3) 이러한 블록에 이용되는 펑처링 패턴에 기초하여 발생될 수 있으며, 이들 모두는 IR 전송 제어에 의해 지시될 수 있다.
새로운 데이터 심볼 블록이 데이터 패킷에 대해 송신기(210)로부터 수신될 때마다, 디코딩은 상기 패킷에 대해 수신되는 모든 블록들에 대한 LLR들 상에서 새로이 실행될 수 있다. 패킷 버퍼(620)는 LLR들과 소거값(erasure)들의 시퀀스(즉, 재조합된 패킷)를 디코딩을 위해 FEC 디코더(630)에 제공한다. 이러한 시퀀스는 상기 패킷에 대해 수신된 모든 데이터 심볼들에 관한 LLR들과 상기 패킷에 대해 수신되지 않은 모든 데이터 심볼들에 관한 소거값(erasure)들을 포함한다. 제 1 블록을 수신 후에, 상기 시퀀스는 블록 1로 반송된 코드 비트들에 대한 LLR들과 다른 모든 코드 비트들에 대한 소거값들을 포함한다. 제 2 블록을 수신한 후에, 상기 시퀀스는 블록 1 및 2로 반송된 코드 비트들에 대한 LLR들과 다른 모든 코드 비트들에 대한 소거값들을 포함한다. FEC 디코더(630)는 제어기(270)로부터의 디코딩 제어에 의해 지시되는 바와 같이, 송신기(210)에서 수행되는 FEC 인코딩과 상보적인 방법으로 상기 LLR들과 소거값들의 시퀀스를 디코딩한다. 예를 들어, 터보 또는 컨벌루션 코딩이, 각각, 송신기(210)에서 실행된다면, 터보 디코더 또는 비터비(Viterbi) 디코더가 FEC 디코더(630)로 이용될 수 있다. FEC 디코더(630)는 디 코딩된 패킷을 제공한다. 그리고 나서 CRC 검사기(632)는 상기 디코딩된 패킷을 검사하여 상기 패킷이 정확하게 또는 잘못 디코딩되었는지 여부를 결정하고 상기 디코딩된 패킷의 상태를 제공한다.
또한 수신기(250)는 반복 검출 및 디코딩(iterative detection and decoding, IDD) 방식을 이용하여 패킷을 디코딩할 수 있다. 상기 IDD 방식은 FEC 코드의 오류 정정 능력을 활용하여 향상된 성능을 제공한다. 이는 LLR 계산 유닛(610)과 FEC 디코더(630) 사이에서 다수의 반복을 위해 선험적 정보를 반복적으로 전달함으로써 이뤄질 수 있다. 상기 선험적 정보는 상기 수신된 데이터 심볼들에 대한 전송된 코드 비트들의 우도(likelihood)을 나타낸다. 각 반복에 대해, LLR 계산 유닛(610)은 수신된 데이터 심볼들, 채널 추정들, 그리고 FEC 디코더(630)로부터의 디코더 LLR들에 기초하여 상기 코드 비트들에 대한 LLR들을 계산한다. 등식(2)는 상기 디코더 LLR들을 고려하여 수정될 수 있다. 그리고 나서 FEC 디코더(630)는 유닛(610)으로부터의 갱신된 LLR들을 디코딩하여 새로운 디코더 LLR들을 얻으며, 이는 유닛(610)에 역으로 제공될 수 있다. 상기 반복 검출 및 디코딩 프로세스 동안, 검출된 데이터 심볼들의 신뢰성은 각각의 검출/디코딩 반복과 함께 향상된다.
일반적으로, 수신기(250)는 다양한 방법들로 데이터 검출 및 디코딩을 수행할 수 있다. LLR들의 발생은 일반적으로 터보 및 컨벌루션 코드들에 이용되는 특정한 디코딩 구현이다. 수신기(250)는 송신기(210)에서 이용되는 인코딩 기술에 적용가능한 임의의 일반적인 디코딩 기술을 이용할 수 있다.
도 7은 데이터 패킷을 전송하기 위해 송신기(210)에서 수행되는 프로세스(700)의 순서도를 나타낸다. 먼저 송신기는 상기 데이터 패킷을 인코딩(예를 들어, 기준 FEC 코드로써)하여 코드 비트들을 발생시킨다(블록(712)). 블록 번호에 대한 인덱스 l은 제 1 블록에 대해 1로 초기화된다(블록(714)). l번째 블록을 전송하기 위해, 코드 비트들의 블록이 상기 데이터 패킷에 대하여 이미 전송된 코드 비트들을 고려하여 상기 데이터 패킷에 대해 발생되는 코드 비트들로써 형성된다(블록(722)). 상기 l번째 블록에 이용하는 변조 방식은 상기 데이터 패킷에 대해 선택된 모드에 기초하여 결정된다(블록(724)). 그리고 나서 l번째 블록에 대한 코드 비트들이 이러한 블록에 대한 변조 방식에 기초하여 데이터 심볼들로 매핑된다(블록(726)). 상기 데이터 심볼들의 l번째 블록은 추가로 처리되고 전송된다(블록(728)). 상기 데이터 패킷이 l 블록 전송들에 기초하여 정확하게 디코딩되지 않았다면 그리고 블록들의 최대 개수가 전송되지 않았다면(블록(732)에서 결정되는 바와 같이), 인덱스 l은 증가되고(블록(734)), 상기 프로세스는 블록(722)로 복귀하여 다음 데이터 심볼들의 블록을 발생시키고 전송한다. 그렇지 않으면, 상기 프로세스는 종료된다.
도 8은 데이터 패킷을 수신하기 위해 수신기(250)에서 수행되는 프로세스(800)의 순서도를 나타낸다. 먼저 수신기는 데이터 패킷의 모든 코드 비트들에 대한 소거값들로써 패킷 버퍼를 초기화한다(블록(812)). 블록 번호에 대한 인덱스 l은 제 1 블록에 대해 1로 초기화된다(블록(814)). l번째 블록에 대해, 수신된 데이터 심볼들의 블록이 처음에 획득된다(블록(822)). 상기 l번째 블록에 이용되는 변조 방식은 상기 데이터 패킷에 대해 선택된 모드에 기초하여 결정된다(블록(824)). 그리고 나서 수신기는 수신된 데이터 심볼들의 l번째 블록에 대한 검출을 상기 블록에 관해 이용되는 변조 방식에 따라서 수행하여 상기 블록으로 전송된 코드 비트들에 관한 LLR들을 획득한다(블록(826)). l번째 블록에 관한 상기 LLR들은 이러한 블록 내의 코드 비트들에 대해 이전에 계산된 LLR들과 조합된다(블록(828)). 어느 경우이던, 상기 l번째 블록에 대한 LLR들은 패킷 버퍼 내의 적절한 위치들에 저장된다(블록(828)). 그리고 나서 상기 데이터 패킷에 대한 LLR들 및 소거값들이 상기 패킷 버퍼로부터 검색되고 상기 기준 FEC 코드에 따라 디코딩되어 디코딩된 패킷을 얻으며(블록(830)), 이는 추가로 상기 패킷이 정확하게 또는 잘못 디코딩되었는지 여부를 결정하기 위해 검사된다(블록(832)). 상기 데이터 패킷이 수신된 데이터 심볼들의 l번째 블록에 기초하여 정확하게 디코딩되지 않았다면(블록(840)에서 결정되는 바와 같이) 그리고 최대 개수의 블록들이 얻어지지 않았다면(블록(842)에서 결정되는 바와 같이), 상기 인덱스 l은 증가되고(블록(844)), 상기 프로세스는 블록(822)로 복귀하여 수신된 데이터 심볼들의 다음 블록을 얻고 처리한다. 그렇지 않으면, 상기 프로세스는 종료된다.
단일 데이터 패킷에 대한 복수의 변조 방식 이용은 향상된 성능을 제공할 수 있다. 제 1 블록 전송에 더 고차의 변조 방식을(상응하는 더 낮은 코드율과 조합하여) 이용하는 것은 어떠한 채널 모델들에 대한 이러한 블록 전송에 상당한 이득(예컨대 1 내지 2.5dB)을 제공할 수 있다. 더 낮은 차수의 변조 방식들(및 그에 상응하는 더 높은 코드율들)을 이용하는 것은 코딩된 패킷의 반복을 피하거나 감소 시키며, 이는 또한 성능을 향상시킬 수 있다. 예를 들어, 코딩된 패킷은 모드 7에서 모든 4 블록 전송들에 대해 64-QAM이 이용된다면 부분적으로 반복되고 만일 64-QAM, 16-QAM, 8-P나 및 QPSK가 상기 4 블록 전송들에 대해 이용된다면 반복되지 않는다.
여기 기술된 단일 패킷에 대해 복수의 변조 방식들을 이용하기 위한 기술들은 다양한 수단들로써 구현될 수 있다. 예를 들어, 이러한 기술들은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 하드웨어 구현으로, 송신기의 처리 유닛들(예컨대, TX 데이터 처리기(220))은 하나 이상의 주문형 반도체(ASIC), 디지털 신호 처리기(DSP), 디지털 신호 처리 장치(DSPD), 프로그래머블 논리 장치(PLD), 필드 프로그래머블 게이트 어레이(FPGA), 처리기, 제어기, 마이크로-제어기, 마이크로프로세서, 여기 기술된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 조합 내에서 구현될 수 있다. 또한 수신기의 처리 유닛(예컨대 검출기(256) 및 RX 데이터 처리기(260))은 하나 이상의 ASIC, DSP 등 내부에서 구현될 수 있다.
소프트웨어 구현으로, 상기 기술들은 여기 기술된 기능들을 수행하는 모듈들(예컨대, 프로시저, 기능 등)로써 구현될 수 있다. 소프트웨어 코드들은 메모리 유닛(예컨대 도 2의 메모리 유닛들(232 및 272)) 내에 저장되고 처리기(예컨대, 제어기들(230 및 270))에 의해 실행될 수 있다. 상기 메모리 유닛은 처리기 내부에서 또는 상기 처리기 외부에서 구현될 수 있다.
상기 개시된 실시예들에 대한 상술한 설명은 임의의 당업자가 본 발명을 생 산 또는 이용할 수 있게 하기 위해 제시된다. 이러한 실시예들에 대한 다양한 수정들이 당업자에게는 명백할 것이며, 여기 정의된 일반 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고 다른 실시예들에 적용가능하다. 따라서, 본 발명은 여기 제시된 실시예들에 제한하고자 하는 것이 아니라 여기 개시된 원리들과 신규한 특징들에 따라 가장 광범위하게 해석되는 것이다.