이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 동일 부호를 가지도록 하였다. 또한 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
1. Packet Code Combining
이하 본 발명은 터보부호를 사용하는 재전송 시스템에서 최적의 패킷부호결합을 위한 서브부호를 생성하기 위한 방법을 제시하고, 이러한 부호를 사용하여 패킷부호결합과 패킷다이버시티결합을 데이터율(data rate)에 따라서 가변적으로 사용하는 시스템을 제안하며, 이러한 시스템이 가지는 장점과 성능이득에 관해서 기술할 것이다. 또한, 이러한 시스템을 운영하기 위한 HARQ방식의 프로토콜에 대해 설명할 것이다.
상기 데이터율에 따라 패킷부호결합과 패킷다이버시티결합을 가변적으로 사용하는 시스템의 동작을 살펴보면 다음과 같다.
예를 들어, R=1/5 터보 부호를 사용하는 시스템의 경우, 재 전송된 패킷들로부터 연성결합(soft combining)에 의해 구한 부호어(code word)의 전체 부호율(overall code rate)이 '1/5'이 되기까지는 패킷 부호 결합(packet code combining)을 사용하고, 이후부터 재 전송되는 패킷들에 대해서는 우선 패킷 다이버시티 결합(packet diversity combining)을 사용하고 이어서 패킷 부호 결합을 사용한다. 즉, 처음 전송하는 패킷의 부호율이 1/3인 경우 다음 번 재전송 요구 때에는 전체 부호율(Overall code rate)이 1/5이 되도록 나머지 리던던시(redundancy)를 전송한다. 따라서 수신기가 두개의 패킷들(packets)을 모두 수신하면 전체 부호율(overall code rate)이 1/5이 된다. 그리고 이후에 전송되는 패킷들에 대해서는 각각을 반복해서 전송하고, 수신기는 패킷 다이버시티 결합을 사용한 후에 부호율 1/5를 기준으로 재전송 패킷을 패킷 부호 결합한다.
일반적으로 컨벌루션널 부호(convolutional codes)의 경우에 부호율(code rate)이 작은 경우 패킷 다이버시티 결합(packet diversity combining)과 패킷 부호 결합(packet code combining) 사이에 성능 차이가 그리 크지 않은 것으로 알려져 있다. 그러나, 터보부호의 경우에는 컨벌루션널 부호와는 달리 그 차이가 매우 크며, 패킷 부호 결합(packet code combining)이 패킷 다이버시티 결합(packet diversity combining)에 비하여 상당한 성능 이득이 제공된다. 따라서 이러한 성질을 터보부호를 사용하는 Hybrid ARQ II/III에 적용하여 상당한 이득율(throughput)의 개선을 얻을 수 있다.
도 1은 터보부호의 경우 패킷부호결합과 패킷 다이버시티결합 사이의 성능차 이를 그래프로 도시한 도면이다. 도시된 바와 같이, 동일한 심볼에너지(Es)를 가정하는 경우 낮은 부호율(1/6)의 터보부호는 높은 부호율(1/3)의 터보부호에 비해 상당한 성능이득을 가짐을 알 수 있다. 또한, 패킷 부호 결합에 의한 성능이득이 3dB 정도임을 알수 있다. 종합해 볼때, 부호율 1/3인 터보부호를 부호율 1/6인 서브부호들을 패킷 부호 결합하여 생성하게 되면, 1/3보다 낮은 부호율을 사용함으로써 얻는 이득과 다른 부호를 결합(부호결합)함으로써 얻는 이득을 동시에 얻을 수 있다.
상세히 살펴보면, 동일한 부호 심볼 에너지(coded symbol energy) Es와 동일한 부호율을 가정할 때, 터보부호는 길쌈부호와 달리 반복(iteration) 복호(decoding)가 충분히 제공되는 경우, "Shannon Channel Capacity limit"에 근접하는 성능을 부호율에 따라서 제공한다. 다시 말해, 동일한 Es를 가정하는 경우, 낮은 부호율의 터보 부호는 높은 부호율의 터보 부호에 비하여 상당한 성능이득을 제공하는 것으로 알려져 있다. 예를 들어, 부호율이 R=1/3에서 R=1/6로 감소하는 경우 "Shannon Channel Capacity limit"의 변화를 분석해서 그 성능차이를 예측할 수 있다. 여기서 하이브리드 ARQ(Hybrid ARQ)를 사용하는 시스템에서는 재전송마다 동일한 심볼 에너지 Es를 사용하므로, 상기 도 1에서의 성능곡선은 R=1/3의 경우나 R=1/6의 경우나 동일한 심볼에너지 Es를 가정한 것이다. 여기서 주의할 부분은 HARQ를 사용하지 않는, 즉 재전송을 사용하지 않는 이동통신시스템의 경우 기존의 부호율(code rates)에 따른 터보부호의 성능 분석을 부호율 R의 감소로 인한 심볼 에너지(symbol energy)의 감소를 고려해서 비교하였다. 이에 반하여 HARQ를 사용하 는 이동통신시스템에서는 재전송마다 동일한 심볼 에너지(symbol energy) Es를 사용하므로 R=1/3의 경우나 R=1/6의 경우나 동일한 심볼 에너지(symbol energy) Es를 가진다.
도시된 바와 같이, 부가적 백색 가우시안 잡음(AWGN : Additive White Gaussian Noise)채널의 가정 하에, R=1/3의 부호를 2번 반복해서 패킷 다이버시티 결합하는 경우, 심볼 에너지 대 잡음비(Es/No) 면에서 최대 3dB의 이득을 가지며, R=1/6 부호를 사용하는 경우에도 마찬가지이다. 따라서 부호율에 따른 부호의 성능비교에서 사용하는 Eb/No를 기준으로 그린 터보 부호의 성능곡선에서, R=1/3의 성능곡선이 패킷 다이버시티 결합에 의한 이득(gain)으로 +3dB 스케일(scale)만큼 왼쪽으로 평행 이동되고, R=1/6 터보부호의 성능곡선도 R=1/3과 동일한 심볼 에너지를 사용하는 가정 하에 +3dB 스케일(scale)만큼 왼쪽으로 평행 이동되므로, R=1/3 터보부호와 R=1/6 터보 부호의 성능곡선의 차이가 패킷 다이버시티 결합과 패킷 부호 결합 사이에 제공되는 성능차이가 된다. 이러한 부호율(code rates)에 따른 성능차이는 "Shannon Channel Capacity limit"에 의해서 예측가능하며, 최소의 성능차이는 최소 요구되는 신호대잡음비(minimum required S/N)를 사용하여 구할 수 있다.
2. Minimum Required Eb/No for code rates
일반적으로, 부호율(Code rate)이 R이고 부호기의 블록 사이즈(encoder block size)가 매우 큰 터보 부호를 사용하는 시스템에서, 오류가 전혀 발생하지 않는(즉, error free) 채널을 제공하기 위한 최소 에너지대잡음비(Eb/No)는 하기 <수학식 1>로 결정된다.
상기 수식에 따르면, AWGN에서 각각의 부호율(code rates)에 따른 터보 부호에서 요구되는 최소의 Eb/No 즉, 최소 요구 에너지대잡음비(minimum required Eb/No)는 하기 <표 1>과 같다. 하기 <표 1>에서 대표 에너지대잡음비(Typical Eb/No)는 터보 부호의 부호화 블록 사이즈(encoding block size) L이 1024일 때 비트에러율(Bit error rate : BER)이 0.00001보다 작게 하기 위해서 요구되는 Eb/No를 나타낸다.
Code rates |
Required Eb/No (dB) |
Typical Eb/No (db) for BER=10-5
|
3/4 |
0.86 |
3.310 |
2/3 |
0.57 |
2.625 |
1/2 |
0.00 |
1.682 |
3/8 |
-0.414 |
1.202 |
1/3 |
-0.55 |
0.975 |
1/4 |
-0.82 |
0.756 |
1/5 |
-0.975 |
0.626 |
1/6 |
-1.084 |
0.525 |
0 |
-1.62 |
NA |
상기 <표 1>에서 부호율(Code rate)이 3/4, 2/3, 1/2, 3/8, 1/3, 1/4, 1/5, 1/6 인 경우에 각각 요구되는 Eb/No는 각각 0.86, 0.57, 0.0, -0.414, -0.55, -0.82, -0.975, -1.084 (dB)임을 알 수 있다. 또한, 상기 <표 1>에서 부호율 R=1/3인 부호를 사용하는 시스템과 부호율 R=1/6인 부호를 사용하는 시스템 사이에는 최 소한 0.53dB 이상의 성능차이가 있음을 알 수 있다. 이는 "Shannon Channel Capacity limit"에 따른 최소의 성능차이이다. 따라서, 실제 구현 가능한 복호기와 시스템 환경을 고려하면 그 차이는 이 보다 증가한다. 실제로 시뮬레이션에 의한 성능 차이에 따르면, R=2/3 부호를 사용하고 패킷 부호 결합을 사용하는 시스템과 동일한 부호율 R=2/3를 사용하여 패킷 다이버시티 결합을 사용하는 시스템 사이에는 약 1.12dB의 성능차이가 있음을 알 수 있다.
하기 <표 2>는 서브부호 부호율(sub code rate)로 2/3을 사용하는 시스템에서 한번의 재전송을 사용한 경우에 패킷 부호 결합을 사용하는 경우와 패킷 다이버시티 결합을 사용하는 경우의 성능차이를 보여준다. 하기 <표 2>에서 보듯이 최소의 성능차이가 1.12dB이므로 터보 부호를 사용하는 시스템에서 패킷 부호 결합이 많은 성능 이득을 가지는 것을 알 수 있다.
Items |
Packet Combining |
Code Combining |
Mother code rate Rm
|
1/3 (X, Y0, Y'0) in Figure 1 |
1/3 (X, Y0, Y'0) in Figure 1 |
Block size (L) |
496 |
496 |
Maximum number of iterations |
8 |
8 |
Number of transmissions |
2 |
2 |
Actual Tx code rate Re for each transmission |
2/3(by puncturing) See section 3. |
2/3(by puncturing) See section 3. |
Redundancy selection |
Identical pattern for all transmissions. See section 3. |
Different pattern for all transmissions. See section 3. |
Soft Combining |
Packet diversity combining |
Packet code combining |
Gain through retransmissions |
Symbol repetition gain |
Coding gain for low rate codes |
Minimum required Eb/No in Table 3 |
+0.57(dB) |
R-2/3 +0.57(dB) R-2/6 -0.55(dB) |
Required Eb/No at 2'nd retransmissions |
+0.57-3.0(dB) |
-0.55-3.0(dB) |
Relative performance gain |
0 |
1.12(=0.57+0.55) dB |
Simulated relative gain (@ BER=10-5) |
0 |
2.5(dB) |
이상에서 살펴본 바와 같이, 터보 부호(Turbo codes)를 사용하는 재전송 시스템은 패킷 부호 결합방식을 사용하는 것이 우수한 성능을 가질 수 있다. 따라서, 본 발명은 터보부호를 사용하는 재전송 시스템에서 최적의 패킷 부호 결합을 위한 서브부호 생성방법에 대해 설명할 것이다. 즉, 본 발명에서 제안하는 소정 규칙에 의해 패킷부호결합을 위한 서브부호를 생성하면, 앞서 설명한 부호 결합(code combining)에 의한 이득을 얻을 수 있고, 동일한 양의 재전송을 요구하는 시스템의 성능을 최대로 개선시킬 수 있다.
도 2는 본 발명의 실시 예에 따른 터보부호를 이용해 서브부호를 생성하기 위한 장치를 도시하고 있다. 도시된 바와 같이, 상기 서부부호를 생성하기 위한 장치는 크게 터보부호기와, 서브부호 발생기(204)와 제어기(205)로 구성된다.
먼저, 상기 터보부호기를 살펴보면, 제1구성부호기 201은 입력되는 정보비트열을 부호화하여 제1부호심볼들(정보심볼들(X), 제1패리티심볼들(Y0,Y1)을 출력한다. 인터리버 202는 상기 입력되는 정보비트열을 주어진 규칙에 의해 인터리빙하여 출력한다. 제2구성부호기203은 상기 인터리버 202로부터 출력되는 상기 인터리빙된 정보비트열을 부호화하여 제2부호심볼들(정보심볼들(X'), 제2패리티심볼들(Y'0,Y'1)을 출력한다. 따라서, 터보부호기의 출력 심볼들은 상기 제1구성부호기(201) 및 상기 제2구성부호기(203)에서 출력되는 상기 제1 및 제2부호심볼들이 된다. 여기서, 상기 제2구성부호기(203)에서 발생되는 정보심볼들(X')는 실제로 전송되지 않으므로 상기 터보부호기의 부호율은 '1/5'이 된다.
서브부호발생기 204는 상기 제1구성부호기201 및 상기 제2구성부호기 203으로부터 출력되는 상기 제1 및 제2부호심볼들을 입력하고, 제어부 205의 제어하에 상기 부호심볼들을 소정 규칙에 의해 천공 및 반복하여 서브부호를 발생한다. 상기 제어부 205는 후술되는 도 7 내지 도 9의 알고리즘을 통해 생성한 천공(및 반복) 매트릭스들을 메모리에 저장해 놓고, 상기 천공 매트릭스에 따른 심볼선택신호를 상기 서브부호 발생기 204로 출력한다. 그러면, 상기 서브부호 발생기 204는 상기 심볼선택신호에 의해 상기 터보부호기로부터의 소정 천공범위에 속하는 부호심볼들중 소정 개수의 심볼들을 선택하여 서브부호를 생성한다.
상술한 바에 따르면, 기호 X, Y0, Y1, Y'0, Y'1은 각각 다음과 같이 정의된다.
X'1 : 정보심볼들(Systematic code symbol 또는 Information symbols)
X : 정보심볼들(Systematic code symbol 또는 Information symbols)
Y0 : 터보부호기의 상위 구성부호기로부터의 리던던시 심볼들(Redundancy symbol from the upper component encoder of Turbo encoder)
Y1 : 터보부호기의 상위 구성부호기로부터의 리던던시 심볼들(Redundancy symbol from the upper component encoder of Turbo encoder)
Y'0 : 터보부호기의 하위 구성부호기로부터의 리던던시 심볼들(Redundancy symbol from the lower component encoder of Turbo encoder)
Y'1 : 터보부호기의 하위 구성부호기로부터의 리던던시 심볼들(Redundancy symbol from the lower component encoder of Turbo encoder)
이하 설명되는 도 7 내지 도 9는 본 발명의 실시 예에 따른 터보부호를 가지고 서브 부호(또는 천공 매트릭스)들을 생성하기 위한 절차를 도시하고 있다. 특히, 도 7은 상기 서브 부호들의 집합에서 첫 번째 서브부호(C0)를 생성하기 위한 절차이고, 상기 도 6은 첫 번째와 마지막 서브부호를 제외한 중간의 서브부호들(C1∼Cs-2)을 생성하기 위한 절차이며, 상기 도 9는 마지막 서브부호(Cs-1)를 생성하기 위한 절차를 보여준다.
한편, 이하 설명에서 ENC1(이하 '제1부호심볼들"이라 칭함)은 터보부호기에서 발생하는 부호심볼들 중 제1구성부호기(201)에서 발생하는 정보심볼들(X)과 제1 패리티심볼들(Y0,Y1) 통칭하는 의미이고, ENC2(이하 '제2부호심볼들'이라 칭함)는 제2구성부호기(203)에서 발생하는 제2패리티심볼들(Y'0, Y'1)을 칭하는 의미이다.
상기 도 7을 참조하면, 먼저 401단계에서 송신기에서 제공할 수 있는 최대의 부호율 Rmax를 정한다. 이는 사용하는 시스템의 전송 데이타율에 의해서 결정되며 대부분 주어지는 값이 된다. 그리고 상기 주어지는 최대 부호율 Rmax=(k/n)의 정수배가 될 수 있는 최소의 부호율 Rmin을 정한다. 물론 상기 최소 부호율은 임의로 결정할 수 있으나 통상은 1/6 혹은 1/7 이하의 부호율을 사용한다. 이는 터보 부호의 경우 R=1/7 이하에서는 부호율 감소에 따른 부호이득(Coding Gain)이 포화되는 성향을 보이기 때문이다. 그리고, 수신단 복호기의 실제 부호율(R, 모 부호율)을 정한다. 상기 모 부호율(R)은 상기 최소부호율 Rmin 보다 크게 설계한다.
실제 시스템 구현시, 상기 최대 부호율 Rmax 및 최소 부호율 Rmin은 미리 정해지는 값이다. 다른 의미로, 상기 최대 부호율 Rmax는 생성하고자 하는 서브부호의 부호율(subcode code rate)을 나타내고, 상기 최소 부호율 Rimn은 서브부호들을 부호 결합(code combing)했을 때 만들어지는 목표(target) 부호의 부호율을 나타낸다. 일반적으로, 상기 최소 부호율은 송신기에서 사용하는 부호기의 부호율이다.
상기 최대 부호율(Rmax) 및 최소 부호율(Rmin)이 주어지면, 403단계에서 상기 최대 부호율 Rmax과 최소 부호율 Rmin을 가지고 하기 <수학식 2>를 이용해 서브 부호의 개수(S)를 구한다. 여기서, 상기 서브부호들의 수(또는 천공 매트릭스의 개수)는 상기 Rmax 대 Rmin의 비 값을 넘는 최소 정수로 정해진다.
여기서,
는 *의 값과 동일하거나 큰 최소정수를 나타낸다.
상기 서브부호들의 수를 구한 후, 405단계에서 변수 m을 '1'로 초기화하고, 407단계에서 C(=m×k)를 결정한다. 여기서, 상기 C는 각 천공 매트릭스의 열(column)의 수(또는 크기)를 나타낸다. 여기서, 상기 천공 매트릭스의 열의 수 C는 상기 최대 부호율 Rmax에 의해 결정된다. 예를들어, 상기 최대 부호율이 3/4 인 경우, 상기 열의 수 C는 3,6,9....가 될 수 있으며, 초기전송 서브부호 생성시 상기 열의 수C는 상기 가능한 크기들 중 최소의 값으로 결정한다. 여기서, 상기 최대 부호율 Rmax를 '3/4'로 가정하였기 때문에, 상기 천공 매트릭스의 열의 수 C는 '3'으로 설정한다.
그리고, 상기 407단계에서 상기 변수 m과 상기 최대 부호율의 부호심볼수(n, 분모)을 곱해 상기 천공 매트릭스내에서 선택되는 심볼들의 수 Ns를 결정한다. 상기 변수 Ns는 각 천공 매트릭스 내에서 선택되는 심볼들의 수(또는 선택되는 위치들의 수)를 나타낸다. 또한, 상기 선택되는 심볼들의 수 Ns는 상기 열들의 수 C에 대해 C/Rmax 에 의해 정해지기도 한다.
그리고, 409단계에서 상기 천공 매트릭스 내에서 선택되는 심볼들의 수 Ns와 상기 천공 매트릭스의 열들의 수의 차가 송신기에서 제공되는 터보부호기내의 구성부호기(constitution encoder 또는 component encoder)들의 수와 동일하거나 큰지 를 검사한다. 현재 제안되어 있는 터보부호기들은 도 2에 도시된 바와 같이 통상 2개의 구성부호기들로 구성된다. 따라서, 상기 구성부호기들의 수를 2로 가정한다. 즉, 409단계에서 상기 선택되는 심볼들의 수 Ns와 상기 열들의 수 C의 차가 '2' 이상인지를 검사한다. 이렇게 하는 이유는 터보부호기가 기존의 다른 단일부호를 사용하는 부호기와 달리 도 2에서 보듯이 두 개의 구성부호기(Component encoder)들(ENC1 및 ENC2)이 인터리버에 의해서 병렬로 연결된 구조를 갖기 때문이다. 즉, 터보부호기의 고유의 특성을 보존하기 위해서는, 정보심볼들을 모두 전송한 후 상기 복수의 구성부호기들의 각각에서 발생되는 패리티심볼들 중 적어도 하나씩은 전송되어야 한다.
예를 들어, 상기 천공 매트릭스 내에서 선택되는 심볼들의 수 Ns에서 상기 열들의 수 C를 감산한 값이 '2'보다 작으면 결국 상기 제1 및 제2패리티심볼들 중 1개의 심볼만을 선택할 수 있다. 이 경우, 이 한 개의 심볼을 제1패리티심볼들 중에서 선택하거나 혹은 제2패리티심볼들 중에서 선택해야 되는데, 두 경우 모두 터보부호의 관점에서 큰 문제점을 지니고 있다. 첫 번째의 경우에는 제2패리티심볼들에서 선택되는 심볼이 전혀 없다. 결국, 이렇게 생성된 서브 부호는 터보부호가 아닌 제1구성부호기로만 구성된 K=4인 길쌈부호(convolutional codes)가 되고 터보부호가 가지는 터보 인터리버의 이득을 전혀 제공하지 못하는 결과를 초래한다. 두 번째의 경우에도 제1구성부호기에서 보면 정보어심볼(systematic symbol)만이 전송되고 패리티 심볼이 전혀 없으므로 부호율이 1인 부호가 되며, 부호율이 1이므로 부호이득(coding gain)이 전혀 없는 부호화하지 않은 무부호화 시스템(uncoded system)이 된다. 따라서 터보부호기의 성능을 제공하기 위해서는 최소한 상기 선택되는 심볼들의 수 Ns에서 상기 열들의 수 C를 감산한 값이 2보다 크거나 같아야 한다.
만일, 상기 409단계의 조건을 만족하면, 411단계로 진행하여 상기 천공 매트릭스에서 상기 C개의 정보심볼들을 선택한 후 미리 정해진 타입(TYPE)에 따라 나머지 심볼들을 선택한다. 타입1인 경우, 413단계로 진행하여 하기 <수학식 3>에 의해 제1패리티심볼들과 제2패리티심볼들 중에서 상기 나머지 심볼들을 선택한 후 종료한다. 여기서, 상기 제1패리티심볼들에서 선택되는 심볼들의 수가 상기 제2패리티심볼들에서 선택되는 심볼들의 수와 동일하거나 크게 한다. 예를 들어, 상기 나머지 심볼들의 수(Ns-C)가 3이면 하기 <수학식 3>에 의해 제1패리티심볼들에서 2개의 심볼들을 선택하고, 제2패리티심볼들에서 1 개의 심볼을 선택하게 된다.
여기서,
는 상기 *의 값과 동일하거나 작은 최대정수를 나타냄.
한편, 타입2인 경우 415단계로 진행하여 하기 <수학식 4>에 의해 제1패리티심볼들과 제2패리티심볼들에서 상기 나머지 심볼들을 정해진 비율에 따라 선택한 후 종료한다. 여기서, a 와 b를 각각 상기 제1 및 제2패리티심볼들에서 선택되는 심볼선택 분배비라 할 때, 상기 제1패리티심볼들에서 a(Ns-C) 대 a+b의 비값과 동일하거나 큰 최소정수의 심볼들을 선택하고, 상기 제2패리티심볼들 중에서 b(Ns-C) 대 a+b의 비와 동일하거나 작은 최대정수의 심볼들을 선택한다.
한편, 409단계의 조건을 만족하지 않으면, 즉 상기 천공 매트릭스 내에서 선택되는 심볼들의 수 Ns와 상기 천공 매트릭스의 열들의 수 C의 차가 상기 터보부호기의 구성부호기들의 수보다 작으면, 417단계로 진행하여 상기 변수 m을 '1'만큼 증가시킨 후 상기 407단계로 되돌아간다. 즉, 상기 409단계는 현재 정해진 천공범위(천공 매트릭스의 크기)에서 터보부호의 특성을 보존할 수 있는 서브부호를 생성할 수 있는지 여부를 결정하는 단계이다. 만일, 터보부호의 특성을 보존할 수 없으면, 상기 417단계에서 천공범위(천공 매트릭스의 크기)를 확장시킨후 상기 407단계로 되돌아가 이하 단계를 재 수행한다.
상술한 바와 같이, 초기 천공 매트릭스는 기본적으로, 터보부호기로부터의 심볼들 중 정보심볼들을 모두 선택하고, 제1 및 제2패리티심볼들 중에서 각각 적어도 하나의 심볼을 선택할 수 있도록 구성된다.
이하 상기 도 8을 참조하여 중간의 천공 매트릭스들(C1 ∼ Cs-2)을 생성하기 위한 방법을 설명한다. 상기 도 8을 반복 수행하여 C1에서부터 Cs-2 까지의 천공 매트릭스들을 생성한다.
상기 도 8을 참조하면, 미리 정해진 타입에 따라 501단계 혹은 503단계를 수 행한다. 만일 타입1인 경우, 상기 501단계로 진행하여 하기 <수학식 5>에 의해 제1패리티심볼들과 제2패리티심볼들에서 상기 각 천공 매트릭스에서 선택될 심볼들의 수 Ns의 심볼들을 선택한다. 상기 심볼들의 수 Ns는 앞서 설명한 바와 같이 변수 m과 상기 최대 부호율의 부호심볼수(n)를 곱해 결정된다. 여기서, 상기 제1패리티심볼들에서 선택되는 심볼들의 수가 상기 제2패리티심볼들 중에서 선택되는 심볼들의 수와 동일하거나 크게 한다. 또한 이전 생성된 천공 매트릭스들에서 선택되지 않은 심볼들을 선택하도록 한다.
한편, 타입2인 경우 상기 503단계로 진행하여 하기 <수학식 6>에 의해 제1패리티심볼들과 제2패리티심볼들에서 상기 각 천공 매트릭스에서 선택될 심볼들의 수 Ns의 심볼들을 정해진 비율에 따라 선택한다. 여기서, a와 b를 각각 상기 제1 및 제2패리티심볼들에서 선택되는 심볼선택 분배비라 할 때, 제1패리티심볼들 중에서 a(Ns) 대 a+b의 비 값과 동일하거나 큰 최소정수의 심볼들을 선택하고, 상기 제2부호심볼들 중에서 b(Ns) 대 a+b의 비 값과 동일하거나 작은 최대정수의 제2패리티심볼들을 선택한다. 심볼들을 선택함에 있어, 이전 생성된 천공 매트릭스들에서 선택되지 않은 심볼들을 선택하도록 한다.
이하 상기 도 9를 참조하여 마지막 천공 매트릭스(Cs-1)를 구성하는 방법을 설명한다.
상기 도 9를 참조하면, 601단계에서 이전 구성된 천공 매트릭스들을 참조하여 선택되지 않았던 심볼들을 모두 선택한다. 여기서, 상기 선택된 심볼들의 개수를 Ns2라 정의한다. 그리고, 603단계에서 상기 Ns에서 상기 Ns2를 감산하여 새로운 Ns를 정의한다. 앞서 설명한 도 7 내지 도 9의 과정에 따라 천공 매트릭스의 모든 위치의 심볼들이 선택되었기 때문에, 상기 새로이 정의된 Ns는 반복 선택할 심볼들의 개수가 된다. 상기와 같이 반복 선택할 심볼들의 개수를 구한 후, 605단계에서 상기 반복 선택할 심볼들의 수가 '0'보다 큰지를 검사한다. 만일, 반복 선택할 심볼들의 수가 '0'이면 바로 종료하고, '0'보다 크다면 상기 정보심볼들 중 상기 반복 선택될 심볼들의 수만큼 심볼들을 다시 선택한다. 여기서, 상기 다시 선택한다는 것은 해당 정보심볼을 반복하여 전송함을 의미한다.
본 발명의 서브부호 생성과정을 구체적인 수치대입을 통해 살펴보면 다음과 같다. 예를 들어서, 시스템이 제공하는 최대 부호율 Rmax가 3/4이고, 시스템이 제공할 수 있는 복호기의 부호율(R), 즉 모부호율이 1/5이라고 가정하면 최소 부호율(Rmin)과 서브부호의 개수(혹은 천공 매트릭스의 수) S는 다음과 같이 결정된다.
Rmin= 1/6
S=6/(4/3)=4.5 --> 5
따라서 천공 매트릭스들의 수는 '5'가 된다.
{C0, C1, C2, C3, C4} : Rmax=3/4
여기서, 상기 서브부호의 부호율은 '3/4'이고, 서브부호들의 수는 '5'이므로, 상기 서브부호들을 부호결합하면, "(1/S)xRmax=(1/5)x(3/4) =3/20"에 의해 부호율이 3/20가 된다. 이것은 3개의 정보비트를 전송하는 경우, 수신기쪽으로 20개의 부호심볼들이 전달되는 것을 의미한다. 하지만, S*b=5*4=20, S*a=5*3=15이므로 생성되는 심볼들은 15개이므로 상기 20개를 만족시키기 위해서는 상기 생성된 15개 심볼들중 소정 5개의 심볼들은 반복해서 전송하게 된다. 여기서, 반복되는 심볼들은 가능한 정보심볼들로 정한다. 상기 예에서, 각각의 서브 부호에서 정보심볼인 X를 1번씩 반복하도록 서브부호를 구성하면 복호기는 S개의 서브부호들을 모두 수신하는 경우 정보심볼이 2번 반복된 R=1/5인 터보부호를 구할 수 있으며 이를 가지고 복호를 수행한다.
3. Redundancy Selection(Quasi-Complementary Code Set)
상기 도 4 내지 도 6을 통해 생성된 서브부호들은 일종의 보완 부호(complementary codes)라 할 수 있다. 하지만, 서브부호를 생성함에 있어 반복 선택되는 심볼들이 존재하고, 각각의 서브부호의 특성이 상이하므로 완전한 보완부호라 할 수 없다. 또한, 본 발명에 따른 서브부호는 터보 부호를 가지고 생성되므 로, 상기 도 4 내지 도 6을 통해 생성되는 서브부호들을 "준보완 터보부호(Quasi-Complementary Turbo Codes : QCTC)"라 칭하기로 한다. 상기 준보완 터보부호를 하이브리드 ARQ 시스템에서 사용할 경우 재전송 방식을 살펴보면 다음과 같다.
패킷 부호 결합(Packet code combining)을 사용하는 대표적인 시스템에는 하이브리드 ARQ 시스템이 있다. 현재, 제안되어 있는 HARQ Type I, Type II, Type III에서 모두 패킷 부호 결합을 사용할 수 있으며, 이러한 시스템에 상기 준보완 터보부호를 사용해 재전송 기술을 구현할수 있다. 예를 들어 패킷(Packet) 전송을 위한 기본 단위의 정보비트 블록을 트랜스포트 유니트(transport unit : TU)이라고 정의하면 패킷 부호 결합을 사용하는 상기 하이브리드 ARQ 시스템 즉, HARQ Type I, Type II, Type III에서는 각각의 트랜스포트 유니트(transport unit) 전송 시마다 소정 하나의 서브부호 Ci를 선택하여 전송한다.
물론, 재전송의 기본단위는 초기전송에 사용되는 TU의 크기와 동일한 것을 사용할 수도 있으며, 혹은 매 전송마다 다른 것을 사용할 수 도 있다. 단, 한번의 초기전송과 각각의 재전송 마다 다음과 같이 정의되는 준보완 터보부호의 집합(Quasi-complementary turbo code set)을 사용한다.
상기 준보완 터보부호(Quasi-complementary code) Cq는 서브 부호 집합 사이즈(code set size) S를 가지며, 각각의 서브부호 Ci(i=0,1,2,..,S-1)을 조합(또는 부호 결합)함으로써 모 부호(mother code) C를 재구성(reconstruction)할 수 있거나, 혹은 상기 모 부호의 부호율 보다 작은 부호율을 가지는 새로운 Cq를 구성할수 있다. 여기서 모 부호(mother codes)라 함은 부호기(encoder)가 가질 수 있는 최소 의 부호율(Rmin)을 의미한다. 앞서 설명한 성질들을 고려할 때 상기 준보완 터보부호는 하기 <수학식 7>과 같이 정의된다.
Original code C with code rate R=Rmin or a code C with code rate RRmin
,where S is number of sub codes with code rate of Ri and Rm is mother code rate.
이하 준보완(quasi-complementary) 터보 부호를 사용하고 전송단위를 트랜스포트 유니트(Transport Unit)로 정의하며, 초기전송과 재전송에서 모두 동일한 TU 크기를 사용하는 시스템에서의 구체적인 전송방식을 설명하고 있다. 물론 각각의 전송에서 상이한 TU 크기를 사용하는 시스템에서의 전송방식도 지원이 가능하며, 여기서는 설명의 편의를 위해서 모두 동일한 TU 크기를 사용하는 시스템에 대해 설명한다. 여기서, 서브 부호들의 수 S가 '4'이고 모 부호 부호율(mother code rate)이 '1/5'인 경우를 가정한다.
< 1단계 > 초기전송 및 재전송단위는 트랜스포트 유니트(Transport Unit : TU)단위로 이루어지며 각각의 초기전송 및 재 전송시에 준보완 터보부호의 서브부호 Ci가 각각 전송된다.
< 2단계 > 재전송과 초기전송을 포함한 수신된 패킷의 모든 연성결합에 의한 전체 부호율(Overall code rate)이 1/5보다 큰 경우에는 재전송이 요청될 때마다 준보완 터보부호의 서브부호 Ci가 각각 전송되며, 그 순서는 C0, C1, C2, ..., CS-1가 된다. 이 과정은 패킷 부호 결합을 수행하는 단계이다.
< 3단계 >: 재전송과 초기전송을 포함한 수신된 패킷의 모든 연성결합에 의한 전체 부호율(Overall code rate)이 1/5보다 작거나 같은 경우에는 재전송이 요청될 때마다 준보완터보부호의 서브부호 Ci가 각각 다시 반복되어 전송되며 그 순서는 C0, C1, C2, ..., CS-1가 된다. 이 과정은 패킷 다이버시티 결합을 수행하는 단계이다.
< 4단계 > 준보완 터보부호의 집합크기는 임의의 값을 사용할 수 있으며, 이는 초기에 결정되는 Rmax와 Rmin에 의해서 결정된다. 여기서는 모 부호율 R이 1/5이고, 재전송을 위한 서브의 부호율로 2/3을 사용하므로 최대 4개의 서브부호들을 사용할 수 있다.
하기 <표 3>은 순방향 트래픽 채널 패킷 데이터율(Forward Traffic Channel packet data rates)에 따른 준보완 터보부호의 집합을 보여준다. 하기 <표 3>은 현재 IS-2000의 1XEVDV에서 사용될 것으로 보이는 가용한 순방향채널의 데이터율에 따라서 부호집합을 구한 것으로, 모 부호율(Mother code rate) R=1/5이고 각각의 서브 부호(sub code)의 부호율로 R=2/3, 1/3, 1/6을 사용하는 경우를 보여준다.
Set Size S |
Code Set |
Subcode Rute Set |
Data Rates |
1 |
{C0} |
C0: R0=1/6 |
307.2kbps 153.6kbps 76.8kbps 38.4kbps 19.2kbps |
2 |
{C0, C1} |
C0: R0=1/3 C1: R1=1/3 |
1228.8kbps 921.6kbps 614.4kbps 307.2kbps |
4 |
{C0, C1, C2, C3} |
C0: R0=2/3 C1: R1=2/3 C2: R2=2/3 C3: R3=2/3 |
2457.6kbps 1843.2kbps 1228.8kbps |
상기 <표 3>에서 보듯이 서브부호의 부호율이 R=1/6의 경우에는 모 부호율이 R=1/5보다 작으므로 매 전송 시마다 동일한 부호가 사용되며 이를 Co로 표시하였다. 반면에 서브부호의 부호율이 R=1/3의 경우에는 모 부호율(Mother code rate)이 R=1/5보다 크므로 매 전송 시마다 상이한 부호가 사용되며 이를 Co, C1로 표시하였다. 이 경우 부호집합의 크기(Set Size) S는 '2'가 된다. 서브부호의 부호율이 R=2/3의 경우에는 모 부호율(Mother code rate)이 R=1/5보다 크므로 매 전송 시마다 상이한 부호가 사용되며 이를 Co, C1, C2, C3으로 표시하였다. 이 경우 부호집합의 크기 S는 '4'가 된다. 결국 집합 사이즈(Set Size) S만큼 서브부호가 모두 전송되면, 수신기는 원래의 모 부호율 R을 복원할 수 있으며, 부호기가 제공하는 최대의 부호화 이득을 획득할 수 있다.
4. Puncturing Matrix for Quasi-complementary codes
하기 <표 4>는 각각의 서브부호의 부호율에 따른 천공 매트릭스(puncturing matrix)들의 일 예를 보여준다.
Code rates |
C0
|
C1
|
C2
|
C3
|
R=1/6 |
|
NA |
NA |
NA |
R=1/3 |
|
|
NA |
NA |
R=2/3 |
|
|
|
|
R=2/3 |
|
|
|
|
상기 <표 4>에서 보듯이 부호율이 1/5인 터보 부호를 모 부호로 사용하고 각각의 전송마다 4개의 정보비트들에 의해 발생된 부호심볼들을 가지고 부호율이 2/3인 서브부호를 생성한다고 가정하면, 4개의 정보비트들에 대해서 20개의 부호 심볼들이 발생되기 때문에 이 중에서 14개를 천공하여 부호율이 2/3인 서브부호를 생성하게 된다. 만일, 상기와 같이 생성되는 서브부호들을 가지고 패킷 다이버시티 결합을 수행한다면, 위 천공 매트릭스에 의해 생성되는 C0을 재전송이 요구될 때마다 반복해서 전송하면 된다. 반면에 패킷 부호 결합을 수행한다면, 재전송 요청이 있을 때 마다 서로 다른 부호심볼들을 전송하고, 집합내의 서브부호들(C0, C1, C2
, C3)을 모두 전송한 후에는 상기 패킷 다이버시티 결합을 수행한다. 따라서 패킷 부호 결합을 사용하는 HARQ Type III의 경우에는 4 번의 전송이 이루어진 이후에 비로소 상기 모 부호에 따른 부호 심볼들(full coded symbols)을 모두 가지고 복호를 수행할 수 있다.
한편, 상기 <표 4>의 천공 매트릭스들에서 기호 '1'은 그 위치의 심볼이 선택(또는 전송)됨을 나타내고, '0'은 전송되지 않고 천공(puncturing)됨을 나타낸다. 또한 '2'는 해당되는 위치의 심볼이 2번 반복되어 전송되는 것을 의미한다. 여기서 천공(및 반복) 매트릭스는 다음의 조건들을 만족하도록 설계한다.
<조건1> 반복(Repetition)이 사용되는 준보완 터보부호의 서브부호는 정보심볼 X를 반복한다.
<조건2> 반복이 사용되는 준보완 터보부호의 서브부호는, 정보심볼 X를 반복하는 경우 모든 서브부호들을 결합한 준보완 터보부호에서 정보심볼의 반복주기가 항상 일정하고 최소가 되도록 설정한다.
<조건3> 천공(Puncturing)이 사용되는 경우, 준보완 터보부호의 서브부호는 정보심볼 X를 제외한 리던던시 심볼을 가급적 천공한다.
<조건4> 천공이 사용되는 경우, 준보완 터보부호의 서브부호는 정보심볼 X를 제외한 리던던시 심볼을 가급적 균일하게(uniform하게) 천공한다.
상기한 천공 매트릭스의 생성 조건들을 고려해서 만든 R=1/6의 천공 및 반복 매트릭스(Puncturing and Repetition Matrix)를 살펴보면, 복호기에서 2번 반복된 X 심볼을 심볼연성결합 (soft symbol combining)하여 하나의 심볼로 전환한 뒤에 복호를 수행하므로 실제 복호기에 사용되는 부호율은 R=1/5로 간주된다. 따라서 이러한 정보어 심볼의 에너지가 증가된 R=1/5부호를 사용하는 경우에는 통상의 균일 한 심볼에너지를 사용하는 R=1/5 부호에 비하여 성능이 개선된다. 즉, 이러한 부호심볼을 반복하는데 있어 가장 적절한 위치는 바로 정보심볼이 된다. 이러한 관점에서 보면, 상기 <표 4>의 천공(및 반복) 매트릭스는 정보심볼들에 대해 균일한 심볼 반복을 사용함으로써 정보심볼의 에너지를 증가시키는 구조라 할 수 있다.
상기 <표 4>에서 R=1/6의 경우 전송되는 부호심볼의 수열은 다음과 같다.
C0 : X, X, Y0, Y1, Y'0, Y'1, X, X, Y0, Y1, Y'0, Y'1, ......
여기서, 실제 전송되는 부호심볼들의 수는 하나의 정보어심볼(information symbol)에 대하여 6개의 부호어 심볼이 생성되므로 서브부호의 부호율은 '1/6'이 된다. 상기 R=1/6의 천공(및 반복) 매트릭스(Puncturing and Repetition Matrix)를 보면 복호기에서는 2번 반복된 X 심볼을 심볼연성결합(soft symbol combining)하여 하나의 심볼로 전환한 뒤에 복호를 수행한다. 따라서, 실제 복호기에 사용되는 부호율은 R=1/5로 간주된다. 이러한 정보어 심볼의 에너지가 증가된 R=1/5부호를 사용하는 경우에는 통상의 균일한 심볼 에너지를 사용하는 R=1/5 부호에 비하여 성능이 개선된다. 이러한 부호어 심볼을 반복함에 있어 가장 적절한 위치는 바로 정보어 심볼이 된다. 이러한 관점에서 보면 R=1/6의 천공 및 반복 매트릭스(Puncturing and repetition matrix)를 사용함으로써 균일한 심볼 반복을 사용하고, 정보어 심볼을 반복하여 정보어 심볼의 에너지를 증가시키는 구조의 R=1/6 부호를 사용할 수 있다.
상기 <표 4>에서 R=1/3 경우 전송되는 부호심볼의 수열은 다음과 같다.
C0 : X, Y0, Y'0, X, Y0, Y'0, X, Y0, Y'0, X, Y0, Y'0,.....
C1 : X, Y1, Y'1, X, Y1, Y'1, X, Y1, Y'1, X, Y1, Y'1,...
여기서, 실제 전송되는 부호심볼들의 수는 하나의 정보어심볼(information symbol)에 대하여 3개의 부호어 심볼이 생성되므로 서브부호의 부호율은 '1/3'이 된다. 그러나 각각의 전송에서 사용되는 천공 매트릭스(Puncturing matrix)가 다르므로 전송되는 부호가 서로 상이하다는 것을 알 수 있다. 또한 C0와 C1을 연성결합하면 정보 심볼인 X는 2번 반복되어 전송되고 나머지 Y0, Y1, Y'0, Y'1
는 각각 한번씩 전송된다. 따라서 부호율이 '1/5"인 복호기를 사용하여 복호가 가능하고 위에서 설명한 천공( 및 반복) 매트릭스의 생성조건을 모두 만족하므로 성능을 보장받을 수 있다.
상기 <표 4>에서 R=2/3의 첫 번째 경우 전송되는 부호심볼의 수열은 다음과 같다.
C0 : Y0, X, Y'0, Y0, X, Y'0, Y0, X, Y'0, Y0, X, Y'0,....
C1 : X, Y'0, Y0, X, Y'0, Y0, X, Y'0, Y0, X, Y'0, Y0,...
C2 : Y1, X, Y'1, Y1, X, Y'1, Y1, X, Y'1, Y1, X, Y'1, ...
C3 : X, Y'1, Y1, X, Y'1, Y1, X, Y'1, Y1, X, Y'1, Y1, ...
여기서, 실제 전송되는 부호심볼의 수는 두개의 정보어심볼(information symbol)에 대하여 3개의 부호어 심볼이 생성되므로 서부부호의 부호율은 '2/3'이 된다. 그러나 각각의 전송에서 사용되는 즉, C0, C1, C2, C3의 각각에서 사용되는 천공 매트릭스(Puncturing matrix)가 다르므로 전송되는 부호가 서로 상이하다는 것을 알 수 있다. 또한 C0, C1, C2, C3를 연성결합하면 정보어심볼인 X는 2번 반복되어 전송되고 나머지 Y0, Y1, Y'0, Y'1는 각각 한번씩 전송된다. 따라서 상기 R=1/6인 경우와 동일하게 R=1/5의 복호기를 사용하여 복호가 가능하고 위에서 설명한 천공( 및 반복) 매트릭스의 생성조건을 모두 만족하므로 성능을 보장받을 수 있다.
상기 <표 4>에서 R=2/3의 두 번째 경우 전송되는 부호심볼의 수열은 다음과 같다.
C0 : X, Y0, X, X, Y'0, X, X, Y0, X, X, Y'0, X, X, Y0, X, X, Y'0, X, ...
C1 : Y'0, Y0, Y'0, Y0, Y0, Y'0
, Y'0, Y0, Y'0, Y0, Y0, Y'0, ...
C2 : Y1, Y1, Y'1, Y'1, Y1, Y'1
, Y1, Y1, Y'1, Y'1, Y1, Y'1, ...
C3 : X, Y'1, X, X, Y1, X, X, Y'1, X, X, Y1, X, ...
여기서, 실제 전송되는 부호심볼들의 수는 4개의 정보어심볼(information symbol)에 대하여 6개의 부호어 심볼이 생성되므로 서브부호의 부호율은 '2/3'가 된다. 그러나 각각의 전송에서 사용되는 천공 매트릭스가 다르므로 전송되는 부호가 서로 상이하다는 것을 알 수 있다. 또한 C0, C1, C2, C3을 연성결합하면 정보심볼인 X는 2번 반복되어 전송되고 나머지 Y0, Y1, Y'0, Y'1은 각각 한번씩 전송된다. 따라서 상기 R=1/6인 경우와 동일하게 R=1/5의 복호기를 사용하여 복호가 가능하고 위에서 설명한 천공(및 반복) 매트릭스의 생성조건을 모두 만족하므로 성능을 보장 할 수 있다.
5. 전송 프로토콜
패킷이 전송되는 트래픽 채널에 HARQ III를 적용하는 방식에 있어 전송하고자 하는 각각의 패킷의 전송 프로토콜은 순방향 트래픽 채널과 역방향 트래픽 채널 모두에서 사용 가능하다. 따라서, 여기서는 특별히 전달하고자 하는 의미의 혼돈 가능성이 없는 경우에 순방향 트래픽 채널과 역방향 트래픽 채널을 구별하지 않고 총칭하여 트래픽 채널로 명칭한다.
5.1 전송패킷의 길이 및 물리채널 대응관계
패킷이 전송되는 트래픽 채널에 HARQ III를 적용하는 방식에 있어 전송하고자 하는 각각의 패킷의 길이는 가변적으로 결정할 수 있다. 여기서는 전송하고자 하는 하나의 패킷을 물리계층 패킷(Physical Layer Packet, 이하 "PLP"라 칭함)으로 정의하고, 하나의 PLP에는 복수개의 서브 패킷이 존재할 수 있다. 이들을 각각 전송 유닛(Transport Unit, 이하 "TU"라 칭함)이라고 명칭 한다. 상기 각각의 TU들은 가변적인 크기를 가질 수 있다. 따라서, 상기 PLP 또한 가변적인 길이를 가질 수 있다. 물론 하나의 PLP에 한 개의 TU가 전달될 수도 있다. 따라서 아래에 기술되는 HARQ III의 프로토콜의 설명에서는 이를 구별하지 않고 대표되는 두 가지의 경우를 가지고 설명한다. 즉, 전송하고자 하는 패킷의 길이는 TU, 2TU, 3TU, 4TU를 가질 수 있고, 각각의 경우에 있어 최소의 TU당 비트수인 TU=768인 경우와 TU=1536인 경우 두 가지를 가진다. 여기서 TU=768인 경우를 이제부터 숏 포맷(Short Format)이라고 명칭하며, TU=1536인 경우를 롱 포맷(Long Format)이라고 명칭 한다. 아래에서는 숏 포맷(Short Format)과 롱 포맷(Long Format)의 두 가지 경우로 크게 나누어서 구별하고, 각각의 경우에 1TU, 2TU, 3TU, 4TU에 해당하는 PLP 크기를 가지는 경우의 재전송 방식과 HARQ III에 관해서 기술한다. 물론 하나의 PLP에 포함되는 TU의 최대 수는 가변적이며, 물리전송채널이 제공하는 전송율에 따라서 결정되는 값이다. 여기서는 편의상 4를 사용한다.
한편, 하나의 PLP를 전송하는 물리채널의 전송단위는 물리전송채널의 최소 전송단위로 이루어진다. 여기서는 편의상 이를 슬롯(Slot)으로 정의하며, 이를 기준으로 하나의 PLP를 전송한다. 하나의 PLP의 전송을 위한 슬롯(Slot)의 수는 1에서 임의의 수까지 설정 가능하다. 하나의 슬롯(Slot)에 전송되는 데이터의 수는 가변적이며, 물리전송채널이 제공하는 전송율에 따라서 결정되는 값이다. 즉, 하나의 PLP에 대해서 해당되는 데이터 전송율을 감안하여 슬롯(Slot)의 수가 결정된다. 여기서는 그 중 한가지 예로서 하나의 PLP가 최소 1개의 슬롯(Slot)으로부터 최대 32개의 슬롯들(Slots)에 해당되는 숏 포맷(Short Format)의 경우와 하나의 PLP가 최소 2개의 슬롯(Slot)으로부터 최대 64개의 슬롯들(Slots)에 해당되는 롱 포맷(Long Format)의 경우를 고려한다. 이러한 구분은 앞서 TU=768과 TU=1536을 구분하는 것과 동일하며, TU=768이 최대 16개의 슬롯(slot)에 전송된다는 전제에서 이를 숏 포맷(Short Format)이라고 정의한다. 한편, 이의 두 배가되는 TU=1536 그리고 32 슬 롯(slot)을 사용하는 것을 롱 포맷(Long Format)이라고 정의한다. 물론 이러한 구분은 전송하는 패킷의 길이에 따른 구분으로서 기본적으로 HARQ III의 프로토콜 동작 여부와는 큰 관계가 없으나 길이에 따른 시스템의 이득율(Throughput)의 변화와는 밀접한 관계가 있으므로 이를 구별하여 설명한다.
5.2 전송 트래픽의 오류검출방식 및 재전송 방식
하나의 PLP에 있는 각각의 TU들은 독립적인 오류검출 부호를 가지고 있다. 따라서 각각의 TU에 발생되는 오류를 검출하여 재전송을 요청할 수 있으며, 혹은 복수개의 TU들로 구성되는 하나의 PLP에 하나의 오류검출부호를 사용하여 전체 TU들에 발생되는 오류를 검출하여 재전송을 요청할 수 있다. 실제로 수신기가 전송한 패킷에 관한 오류 여부를 검출하고 이를 송신기에 전송하는 과정에서 초기전송 및 재전송의 단위는 PLP를 기준으로 동작한다. 하지만, 하나의 PLP에 존재하는 서브 블록인 복수개의 TU들 각각의 오류발생 여부에 따라서 재 전송되는 PLP 내의 TU 구성은 다를 수 있다.
도 3에서는 하나의 PLP가 하나의 슬롯(Slot)을 사용하는 경우의 HARQ의 전송방식을 보여주고 있다. 상기 도 3에서 보듯이 하나의 PLP는 인접한 3개의 슬롯들(slots)과 상호 얽혀(Interlacing) 전송된다. 즉, 상기 도 3에서 보듯이 4개의 슬롯(slot)에 대해서 각각 상이한 패킷이 전송될 수 있으며, 각각에 대해서 독립적인 ACK/NACK 신호가 역방향 채널을 통해서 전달된다. 따라서 이러한 구조에서 각각의 PLP는 독립적인 Stop-and-Wait ARQ(SW-ARQ) 프로토콜로 동작할 수 있으며, 항상 일정한 역방향 제어신호가 수신기로부터 송신기로 전달된다. 이러한 구조를 "Modulo N HARQ"라고 정의하고, 상기 정의된 N에 따라서 얽히게 되는 슬롯들(slots)의 수를 정의한다. 상기 도 3에서는 N=4인 경우를 보인 것이다. 이러한 구조에서 얽혀진 슬롯들(Interlaced slots)을 하나의 사용자가 사용할 수도 있다. 이 경우 각각의 연속한 슬롯(Slot)을 PLP 전송을 위한 슬롯(Slot)으로 사용 가능하다. 그러나 이 경우에는 사용자의 HARQ III의 프로토콜이 SR-ARQ(Selective Repeat-ARQ)로 동작하며, N=4개의 슬롯(Slot) 만큼 전송된 데이터를 저장할 메모리가 수신기의 물리채널에 요구된다. 따라서, 여기서는 이러한 메모리 요구가 불필요한 SW-ARQ를 기준으로 설명한다. 그러나 SR-ARQ를 사용하는 경우에도 동일하게 프로토콜 설명이 가능하다.
도 4는 하나의 PLP가 두 개의 슬롯(Slot)을 사용하는 경우의 HARQ의 전송방식을 보여주고 있는 도면이다. 상기 도 4에서 보듯이 하나의 PLP는 인접한 3개의 슬롯들(slots)과 상호 얽혀(Interlacing) 2개의 슬롯(Slot)에 걸쳐서 전송된다. 따라서 수신기는 2개의 슬롯들(Slots)을 수신해야 완벽한 하나의 PLP를 복원할 수 있다. 상기 도 4에서 보듯이 4개의 슬롯들(slots)에 대해서 각각 상이한 패킷이 전송될 수 있으며, 각각에 대해서 독립적인 ACK/NACK 신호가 역방향 채널을 통해서 전달된다. 따라서 이러한 구조에서 각각의 PLP는 독립적인 Stop-and-Wait ARQ 프로토콜로 동작할 수 있으며, 항상 일정한 역방향 제어신호가 수신기로부터 송신기로 전달된다. 이러한 구조를 "Modulo N HARQ"라고 정의하고, 상기 정의된 N에 따라서 얽혀진 슬롯들(Interlaced slots)의 수를 정의한다.
송신기는 만일 복수개의 ACK/NACK 식별자 비트들(indicator bits) 중에서 어느 한 개라도 NACK로 검출되면 순방향 트래픽 채널(Forward Traffic Channel)을 통해서 하기의 <표 5>와 <표 6>의 준보완 코드 집합들(quasi-complementary code sets)을 사용하여 재전송이 요청된 트래픽 채널의 PLP를 전송한다. 복수개의 ACK/NACK 식별자 비트들(indicator bits)이 사용되는 경우에 발생할 수 있는 ACK/NACK의 조합은 매우 다양하며, 각각의 경우에 송신기가 재전송 PLP를 통하여 전송하는 TU의 종류는 여러 방식에 의해서 전송할 수 있다. 일반적인 원칙으로서 다음과 같은 조건을 가지고 구성할 수 있다.
<조건 1> 복수개의 TU들에 해당하는 각각의 ACK/NAXK 비트들 중에서 ACK로 수신된 TU들은 전송하지 않는다.
<조건 2> 복수개의 TU들에 해당하는 각각의 ACK/NAXK 비트들 중에서 NACK로 수신된 TU들은 우선해서 전송하며, 이 때 전송의 우선순위는 서비스의 우선순위, 즉 각각의 TU들에 따른 QoS에 우선적으로 전송한다.
<조건 3> 재 전송하고자 하는 PLP에 주어진 슬롯 전체에 사용 가능한 총 비트수가 NACK로 수신된 TU에 해당하는 비트 수보다 큰 경우에는 상기 조건 2의 우선순위를 가지는 TU를 우선적으로 반복해서 전송한다.
<조건 4> 단, 각각의 TU들에 대한 QoS를 보전해야하는 경우에는 재 전송시에도 초기전송과 같은 QoS를 유지해서 전송하도록 각각의 TU들에 대한 가중치를 계산해서 전송한다. 예로서 4개의 TU들을 사용하는 PLP의 경우에 각각의 TU0, TU1, TU2, TU3에 할당된 QoS를 각각 QoS0, QoS1, QoS2, QoS3라하고 (QoS0+QoS1+QoS2+QoS3)=1.0이라고 가정하면 역방향 ACK 채널로부터 TU0가 ACK, 나머지 TU1, TU2, TU3이 NACK로 수신된 경우,
QoS1=QoS1*(1/(QoS0+QoS1+QoS2)), 여기서 (QoS0+QoS1+QoS2)<1.0
QoS2=QoS2*(1/(QoS0+QoS1+QoS2)), 여기서 (QoS0+QoS1+QoS2)<1.0
QoS3=QoS3*(1/(QoS0+QoS1+QoS2)), 여기서 (QoS0+QoS1+QoS2)<1.0
로 사용하면 된다. 따라서 이를 일반화하면 다음과 같다. 하나의 PLP에 P개의 TU들을 사용하고 각각을 TU0, TU1, TU2, .... TU(P-1)라고 정의하면 이 중에서 NACK로 수신된 TU를 각각 TU(i), TU(j), .., TU(s), i,j,..s ∈ {0,1,2,3,4,...,P-1} 이라고 하면 다음의 방식에 의해서 재전송 해야하는 TU들의 가중치를 계산하여 각각의 전송 비트수를 조정하여 재 전송한다.
QoS(i)=QoS(i)*(1/(QoS(i)+QoS(j)+ .... +QoS(s))), 여기서 (QoS(i)+QoS(j)+...+ QoS(s))<1.0
QoS(j)=QoS(j)*(1/(QoS(i)+QoS(j)+ .... +QoS(s))), 여기서 (QoS(i)+QoS(j)+...+ QoS(s))<1.0
: :
QoS(s)=QoS(s)*(1/(QoS(i)+QoS(j)+ .... +QoS(s))), 여기서 (QoS(i)+QoS(j)+...+ QoS(s))<1.0
다음으로 트래픽 채널(Traffic Channel)은 역방향 ACK 채널(the Reverse Link ACK Channel)로 전달되는 복수개의 ACK/NACK 식별자 비트들(indicator bits) 모두에서 ACK가 검출되는 경우에만 새로운 순방향 트래픽 채널의 PLP를 전송한다.
5.3 트래픽 채널의 전송부호선택 방식
트래픽 채널로 전송되는 PLP는 매 전송 시마다 준보완 코드(Qusi-complementary code)를 사용하여 부호화(encoding)된다. 즉, 트래픽 채널의 PLP 전송율(data rate)에 따라 하기의 <표 5>와 <표 6>으로부터 설정되는 셋 크기(set size)가 S인 보완 부호 집합(complementary code set)에서 초기 전송에는 C0이 사용되고, 이후에 역방향 ACK 채널로부터 NACK가 전달될 때마다 트래픽 채널(Traffic Channel)로 C1, C2, CS-1, C0, C1,...의 순서로 전송되는 부호(code)가 순환(circulating)되어 선택된다.
Data Rates |
Slots/ Physical Layer Packet |
Transport Unit/ Physical Layer Packet |
Code rate |
Repetition |
ACK/NACK Period |
ACK Indicator bits /Reverse ACK channel |
Quasi complementary code set |
19.2kbps |
32 |
1 |
1/6 |
16 |
2×4 slots |
1 |
{C0} |
38.4kbps |
16 |
1 |
1/6 |
8 |
2×4 slots |
1 |
{C0} |
76.6kbps |
8 |
1 |
1/6 |
4 |
2×4 slots |
1 |
{C0} |
153.6kbps |
4 |
1 |
1/6 |
2 |
2×4 slots |
1 |
{C0} |
307.2kbps |
2 |
1 |
1/6 |
1 |
2×4 slots |
1 |
{C0} |
614.4kbps |
1 |
1 |
1/3 |
1 |
1×4 slots |
1 |
{C0,C1} |
307.2kbps |
4 |
2 |
1/3 |
2 |
2×4 slots |
2 |
{C0,C1} |
614.4kbps |
2 |
2 |
1/3 |
1 |
2×4 slots |
2 |
{C0,C1} |
1228.8kbps |
1 |
2 |
2/3 |
1 |
1×4 slots |
2 |
{C0,C1,C2,C3} |
921.6kbps |
2 |
3 |
1/3 |
1 |
2×4 slots |
3 |
{C0,C1} |
1843.2kbps |
1 |
3 |
2/3 |
1 |
1×4 slots |
3 |
{C0,C1,C2,C3} |
1228.8kbps |
2 |
4 |
1/3 |
1 |
2×4 slots |
4 |
{C0,C1} |
2457.6kbps |
1 |
4 |
2/3 |
1 |
1×4 slots |
4 |
{C0,C1,C2,C3} |
Data Rates |
Slots/ Physical Layer Packet |
Transport Unit/ Physical Layer Packet |
Code rate |
Repetition |
ACK/NACK Period |
ACK Indicator bits /Reverse ACK channel |
Quasi complementary code set |
19.2kbps |
32 |
1 |
1/6 |
16 |
2×8 slots |
1 |
{C0} |
38.4kbps |
16 |
1 |
1/6 |
8 |
2×8 slots |
1 |
{C0} |
76.6kbps |
8 |
1 |
1/6 |
4 |
2×8 slots |
1 |
{C0} |
153.6kbps |
4 |
1 |
1/6 |
2 |
2×8 slots |
1 |
{C0} |
307.2kbps |
2 |
1 |
1/6 |
1 |
2×8 slots |
1 |
{C0} |
614.4kbps |
1 |
1 |
1/3 |
1 |
1×8 slots |
1 |
{C0,C1} |
307.2kbps |
4 |
2 |
1/3 |
2 |
2×8 slots |
2 |
{C0,C1} |
614.4kbps |
2 |
2 |
1/3 |
1 |
2×8 slots |
2 |
{C0,C1} |
1228.8kbps |
1 |
2 |
2/3 |
1 |
1×8 slots |
2 |
{C0,C1,C2,C3} |
921.6kbps |
2 |
3 |
1/3 |
1 |
2×8 slots |
3 |
{C0,C1} |
1843.2kbps |
1 |
3 |
2/3 |
1 |
1×8 slots |
3 |
{C0,C1,C2,C3} |
1228.8kbps |
2 |
4 |
1/3 |
1 |
2×8 slots |
4 |
{C0,C1} |
2457.6kbps |
1 |
4 |
2/3 |
1 |
1×8 slots |
4 |
{C0,C1,C2,C3} |
예를 들어서 역방향 ACK 채널로부터 계속해서 3번의 NACK가 전달되면 순방향 트래픽 채널(Forward Traffic Channel)로는 각각의 NACK에 대응해서 C1, C2, C3
의 순서로 차례대로 서브 부호(sub code)가 전달된다. 만일, 이후에도 계속해서 2번의 NACK가 전달되면 다시 C0, C1을 전달한다. 이후 ACK가 전달되면 전송을 중지하고, 새로운 트래픽 채널(Traffic Channel)의 PLP를 전송한다. 각각의 재전송에서 사용되는 준보완 부호(quasi-complementary code) 종류에 관한 정보는 송신기가 매번 전송하지 않고, 송신기와 수신기 모두 전송율(Data rate)에 따라 결정된 집합 크기(set size) S에 따라서 0, 1, 2, ..., S-1, 0, 1, , 의 순서로 순환(circulating)된다.
6. 역방향 ACK 채널의 구조 및 전송방식
순방향 트래픽 채널(Forward Traffic Channel)로 전송되는 각각의 PLP들에 대하여 수신기는 PLP의 오류발생 여부를 역방향 ACK 채널(Reverse Link ACK Channel)로 전송한다. 상기 역방향 ACK 채널(Reverse Link ACK Channel)로 전송되는 ACK/NACK 메시지는 하나의 PLP에 있는 각각의 TU들마다 하나의 ACK/NACK 식별자 비트(indicator bit)를 전송한다. 따라서, 최대 4개의 독립적인 TU들이 순방향 채널에서 전송되는 경우 역방향 채널에 사용되는 ACK/NACK 채널에도 4개의 ACK/NACK 비트가 전달된다. 물론 4개 이상의 TU들이 사용되는 경우에는 이에 해당하는 개수만큼의 ACK/NACK 비트들이 전송된다.
6.1. 역방향 ACK 채널로 전송되는 ACK/NACK 신호의 주기성
다음으로 역방향 ACK 채널로 전송되는 ACK/NACK 신호의 주기성에 관해서 기술한다. 본 발명에서 제안하는 HARQ 방식에서는 SR-ARQ나 SW-ARQ 프로토콜에 관계없이 항상 일정한 ACK/NACK 전송주기를 사용하며, 아래와 같이 항상 일정한 ACK/NACK 신호의 주기성은 각각의 트래픽 전송율에 의해서 결정된다. 또한 트래픽 채널에서 전송되는 각각의 서브 부호(Sub code)의 부호길이가 1 슬롯(slot) 또는 최대 2 슬롯들(slots) 이내로 제한되므로 최대 2개의 슬롯들(slots)을 수신하면 하나의 PLP에 대응되는 서브 부호(Sub code)를 반드시 수신할 수 있다. 즉, 트래픽 전송에 사용되는 모든 부호들은 반드시 1 슬롯(slot) 혹은 2 슬롯들(slots)에서 전송이 완료되도록 설계된다. 따라서 정확한 ACK/NACK의 전송은 최대 2 슬롯들(slots) 혹은 최소 1 슬롯(Slot)의 단위로 전송되며, 항상 일정한 간격을 가진다. 상기 도 3과 상기 도 4는 전술한 바와 함께 각각의 전송율에 따른 서브 부호(sub codes)를 보였다.
상기 역방향 ACK 채널(Reverse Link ACK Channel)로 전송되는 ACK/NACK 메시지는 트래픽 채널(Traffic Channel)의 PLP가 사용하는 패킷 전송율(Packet data rates), 패킷 포맷(Packet Format, Short Format/Long Format), 그리고 섞여진 멀티-슬롯(Interlaced multi-slot)을 사용하는 가에 따라 상기 <표 5>와 상기 <표 6>으로 구분된다. 상기 역방향 ACK 채널(Reverse Link ACK Channel)로 전송되는 ACK/NACK 메시지는 상기 트래픽 채널(Traffic Channel)의 PLP가 숏 포맷(Short Format)을 사용하고, 4 슬롯의 섞여진 멀티-슬롯(interlaced multi-slot) 구조를 사용하는 경우 각각의 PLP 전송율(data rates)에 따라서 주기가 4 슬롯(=5msec)인 것과 8 슬롯(=10msec)인 두 가지 경우로 구분된다. 즉, 수신기는 전송 트래픽을 수신한 시점으로부터 1 슬롯이 진행한 후에 두 번째 슬롯의 앞 쪽 반 슬롯에 상기 ACK/NACK 메시지를 시간 다중화(time multiplexing)하여 송신기로 전송한다. 따라서, 상기 ACK/NACK 메시지는 전송 트래픽을 수신한 시점으로부터 정확하게 1 슬롯이 진행한 후에 항상 전송된다.
상기 트래픽 채널(Traffic Channel)의 PLP 전송 후에 처음으로 역방향 ACK 채널(Reverse ACK Channel)로부터 전송되는 ACK/NACK을 1번 ACK/NACK이라 정의할 때, 주기가 4 슬롯인 경우 상기 도 3과 같이 홀수/짝수 번째 구별 없이 각각 전송되는 ACK/NACK는 빠른 종료(Early termination)를 위해 사용된다. 또한 상기 순방향 트래픽 채널(Forward Traffic Channel)의 PLP의 재전송 시 준보완 서브 부호(quasi-complementary sub code)의 전환을 위한 제어 메시지(control message)로도 사용된다. 상기 도 4와 같이 주기가 8 슬롯인 경우 홀수 번째와 짝수 번째 관계없이 전송되는 모든 ACK/NACK는 빠른 종료(Early termination)를 위해 사용되며, 짝수 번째 전송되는 ACK/NACK만이 순방향 트래픽 채널(Forward Traffic Channel)의 PLP의 재전송 시 준보완 서브 부호(quasi-complementary sub code)의 전환을 위한 제어 메시지(control message)로 사용된다. 여기서 빠른 종료(Early termination)라 함은 하나의 PLP에 할당된 슬롯을 모두 수신하기 이전에 이보다 작은 제한된 슬롯을 수신한 상태에서 전송하고자 하는 PLP를 오류 없이 수신할 수 있는 경우 더 이상의 슬롯 전송을 트래픽 채널로 전송하지 않고 새로운 PLP를 전송함으로써 전송효율을 증가시키기 위한 방식을 말한다.
상기 트래픽 채널(Traffic Channel)의 PLP가 상기 롱 포맷(Long Format)을 사용하는 경우에는 PLP 전송율(data rates)에 따라서 주기가 8 슬롯(=10msec)인 것과 16 슬롯(=20msec)인 두 가지 경우로 구분되며, 홀수 번째와 짝수 번째의 ACK/NACK의 역할은 상기 숏 포맷(Short Format)의 경우와 동일하다.
6..2 전송프로토콜의 동작 예
도 5와 도 6은 본 발명의 실시에 따른 동작의 예를 보이고 있는 도면이다. 앞서 언급하였듯이 ACK/NACK에 의한 제어상태 변화는 1 슬롯/PLP와 2 슬롯/PLP의 두 가지로 구분되며, 모든 전송율에 대해 상기 두 가지 경우 중 어느 한가지가 사용된다.
상기 도 5에는 2 슬롯/PLP의 경우에 HARQ 동작에 따른 슬롯 처리 흐름을 보여주고 있는 도면이다. 상기 도 6에는 1 슬롯/PLP의 경우에 HARQ 동작에 따른 슬롯 처리 흐름을 보여주고 있는 도면이다. 상기 두 방식은 재전송 시에 사용하는 서브 부호(Sub code)의 전환을 2 슬롯단위로 수행하는지 아니면 1 슬롯단위로 수행하는지에 의해 구분된다.
상기 도 10과 도 11 및 도 12에서 보여지고 있는 바와 같이 모든 경우에 있어서 ACK/NACK는 매 슬롯마다 전송되며, 이를 구분해서 두 가지로 사용한다.
이하 상기 첨부된 도면을 참조하여 본 발명의 실시 예에 따른 동작을 상세히 설명하면 다음과 같다. 우선 후술할 본 발명의 실시 예에 따른 상세한 동작은 이동통신시스템의 송신장치에서 수행되는 동작과 수신장치에서 수행되는 동작을 구분하여 설명할 것이다.
먼저, 도 10에서 보여지고 있는 제어 흐름을 참조하여 송신장치에서의 동작을 상세히 설명하면, 송신장치는 710단계에서 전송할 PLP를 부호화하여 서브 부호들의 집합인 서브 부호 셋을 생성한다. 부호화를 통해 상기 서브 부호 셋을 생성하는 부호화기의 일 예는 도 2에서 보여지고 있는 터보 부호화기를 들 수 있다. 한 편, 상기 서브 부호 셋은 상기 서브 부호 셋의 크기에 의해 개수가 결정되는 서로 다른 복수의 서브 부호들로 구성된다. 이와 같은 구성을 가지는 것은 패킷 코드 컴바이닝을 적용하기 위함이다. 상기 서브 부호 셋을 생성하는 구체적인 동작은 이미 도 7 내지 도 9를 참조하여 앞에서 살펴보았음에 따라 상세한 설명은 생략한다.
상기 서브부호 셋의 생성이 완료되면 상기 송신장치는 712단계로 진행한다. 상기 송신장치는 712단계로 진행하여 상기 복수의 서브부호들 중 전송되는 서브부호를 카운트하기 위해 소정 카운트 값(i)을 0으로 세팅한다. 즉, 상기 카운트 값 i는 상기 서브 부호 셋을 구성하는 모든 서브부호들의 전송이 완료되었는지를 판단하기 위해 사용된다. 상기 i를 0으로 설정한 후 상기 송신장치는 714단계로 진행한다. 상기 송신장치는 714단계에서 상기 서브부호들 중 i번째 서브 부호(Ci)를 전송 프레임을 통해 전송한다. 상기 송신장치는 상기 i번째 서브부호 Ci를 전송한 후 716단계로 진행한다. 상기 송신장치는 상기 716단계에서 상기 전송한 i번째 서브부호에 응답하여 상기 수신장치로부터 ACK가 수신되는 지를 판단한다. 한편, 상기 714단계와 상기 716단계에서는 전송단위에 대응하여 ACK를 전송하는 경우를 설명하고 있으나 앞에서 밝힌 바와 같이 전송 프레임을 통해 전송되는 서브 부호에 대응하여 ACK를 전송하는 형태로 구현할 수 있음은 자명하다. 또한, 상기 도 3과 상기 도 4를 참조하면, 하나의 전송단위(슬롯)를 통해 하나의 서브 부호를 전송하는 경우에는 서브 부호 각각에 대응하여 ACK 또는 NACK를 수신하게 된다. 상기 서브부호에 응답하여 ACK 또는 NACK를 전송하는 수신장치의 구체적인 동작은 도 11과 도 12를 참조하여 후술될 것이다.
상기 송신장치는 상기 716단계에서 ACK의 수신을 감지하면 상기 710단계로 리턴하여 다음 전송할 PLP을 부호화하여 전송하기 위한 일련의 동작을 수행한다. 이에 반하여 상기 716단계에서 ACK가 수신되지 않았다는 것은 NACK(재 전송 요구)를 수신하였다는 것을 의미한다. 따라서, 상기 송신장치는 상기 716단계에서 NACK가 수신되었음을 감지하면 718단계로 진행한다. 상기 송신장치는 상기 718단계에서 PLP 단위로의 전송이 완료되었는가를 판단한다. 상기 718단계에서 해당 PLP 단위로의 전송이 완료되었다고 판단하면 720단계로 진행하며, 전송이 완료되지 않았다고 판단되면 722단계로 진행한다. 상기 송신장치는 상기 720단계에서 다음으로 전송할 서브부호를 선택하기 위해 상기 i를 1 증가시킨 후 상기 722단계로 진행한다. 이는, 상기 송신장치가 동일한 PLP에 대해 코드 전환을 하여 전송하도록 하기 위함이다. 즉, 상기 PLP가 복수의 슬롯들로 구성되고, 상기 슬롯 단위로 ACK/NACK를 수신하는 경우 상기 PLP를 구성하는 슬롯들의 전송이 완료될 때까지 서브 부호를 전환하지 않음을 보이고 있다. 한편, 다른 예로서 슬롯 단위로 ACK/NACK을 수신하는 것이 아니라 PLP 단위로의 ACK/NACK을 수신하는 경우에는 상기 714단계와 상기 718단계는 하나의 과정으로 수행될 것이다. 즉, 상술한 경우 상기 714단계에서 Ci를 PLP 단위로 전송함에 따라 PLP 단위로의 전송이 완료되었는지를 판단하는 상기 718단계는 불필요하게 된다.
상기 송신장치는 722단계에서 상기 i를 상기 서브부호들의 총 개수(S)와 비교하여 모든 서브부호들에 대한 전송이 완료되었는가를 판단한다. 만약, 상기 송신장치는 상기 722단계에서 i가 S보다 크지 않으면 아직 모든 서브부호들에 대한 전 송이 이루어지지 않았다고 판단하여 상기 714단계로 리턴한다. 상기 송신장치는 상기 714단계로 리턴하면 상기 i에 의해 선택된 다음 전송할 서브부호(Ci)를 전송한다. 이에 반하여, 상기 송신장치는 상기 722단계에서 i가 S보다 크면 상기 모든 서브부호들의 전송이 완료되었다고 판단하여 712단계로 리턴하여 상기 i를 0으로 리셋한 후 전술한 동작에 의해 상기 서브부호들에 대한 재 전송 동작을 반복하여 수행한다. 따라서, 상기 재 전송 동작에 의해서는 상기 최초 전송된 서브 부호들과 동일한 서브 부호들이 전송되어 수신장치에서의 패킷 다이버시티 컴바이닝이 수행되도록 하기 위함이다.
전술한 바와 같이 상기 서로 다른 복수의 서브 부호들은 수신장치로부터의 재 전송 요구(NACK)의 수신에 의해 순차적으로 전송하여야 함에 따라 상기 서로 다른 복수의 서브 부호들 각각은 상기 PLP를 의미할 수 있다. 예를 들어, 상기 서브 부호 셋이 C0, C1, C2, ..., CS-1의 서브 부호들로 구성될 수 있다면 상기 송신장치는 최초에 C0을 상기 수신장치로 전송할 것이다. 상기 수신장치는 상기 C0가 정상적으로 수신되었다면 상기 PLP의 수신을 종료하고 다음 PLP를 수신하기 위한 동작을 수행한다. 하지만, 상기 수신장치가 상기 C0을 정상적으로 수신하지 못하였다면 상기 송신장치로 재 전송을 요청하는 재 전송 요구(NACK)를 전송할 것이다. 상기 송신장치는 상기 수신장치로부터의 NACK을 수신하여 상기 서브 부호 셋을 구성하는 다음 서브 부호인 C1을 전송한다. 이를 위해서는 상기 송신장치로부터 전송되는 서브 부호들 각각은 상기 PLP로서의 의미를 가진다고 할 수 있다.
다음으로, 도 11과 도 12에서 보여지고 있는 제어 흐름을 참조하여 수신장치에서의 동작을 상세히 설명하면, 수신장치는 810단계에서 다이버시티 컴바이닝의 수행 여부를 판단하기 위한 카운트 값(j)과 서브부호 셋을 구성하는 모든 서브부호들의 수신 여부를 판단하기 위한 카운트 값(i)을 0으로 셋팅한다. 본 발명에서는 앞에서도 밝힌 바와 같이 코드 컴바이닝과 다이버시티 컴바이닝을 혼용하여 사용하고 있다. 즉, 최초 전송되는 PLP에 대해서는 코드 컴바이닝만을 사용하여 복호를 수행하며, 최초 전송되는 PLP 이후에 전송되는 PLP에 대해서는 다이버시티 컴바이닝을 우선적으로 수행한 후 코드 컴바이닝을 수행한다.
상기 수신장치는 812단계에서 송신장치로부터의 소정 서브부호(Ci)를 수신한다. 상기 수신장치는 상기 서브부호 Ci를 수신하면 814단계에서 상기 수신한 서브부호 Ci가 상기 송신장치로부터 최초로 전송된 PLP에 속하는 지를 판단한다. 상기 판단은 상기 j를 한 PLP를 구성하는 전송 프레임의 총 개수(S)와 비교함으로서 가능하다. 즉, 상기 j가 상기 S보다 크지 않다면 상기 수신한 서브부호는 최초 PLP에 속한다고 판단하여 816단계로 진행한다. 하지만, 상기 j가 상기 S보다 크다면 상기 수신한 서브부호는 최초 PLP에 속하지 않는 다고 판단하여 818단계로 진행한다.
상기 수신장치는 상기 816단계로 진행하면 상기 수신한 전송 프레임에 대해 다이버시티 컴바이닝을 수행한다. 상기 다이버시티 컴바이닝은 상기 전송 프레임을 통해 수신한 서브 부호 Ci와 이전에 수신한 서브 부호들 중 상기 서브 부호 Ci와 동일한 서브 부호간에 수행된다. 예컨대, 상기 이전 서브 부호들이 C0, C1, C2
, ..., CS-1이고, 상기 수신한 서브 부호가 C0이면 상기 816단계에서는 이전의 서브 부호 C0과 상기 수신한 C0간의 다이버시티 컴바이닝을 수행한다.
하지만, 상기 송신장치는 j가 S보다 크지 않다고 판단되거나 상기 다이버시티 컴바이닝의 수행이 완료되면 상기 818단계로 진행하여 코드 컴바이닝을 수행한다. 상기 코드 컴바이닝에 따른 일련의 동작은 도 12에서 제어 흐름으로 보여지고 있다.
상기 도 12을 참조하여 코드 컴바이닝에 따른 일련의 동작을 상세히 설명하면, 상기 수신장치는 910단계에서 상기 전송 프레임을 통해 수신한 서브 부호 Ci에 대한 코드 컴바이닝을 수행한다. 상기 코드 컴바이닝은 하기의 <수학식 8>에 의해 계산되어질 수 있다.
C0∪C1∪C2...∪Ci
상기 <수학식 8>에서 알 수 있는 바와 같이 상기 코드 컴바이닝은 첫 번째부터 i번째까지의 서브 부호들의 합집합(union)에 의해 계산된다. 상기 코드 컴바이닝에 의해 부호어가 결정되면 상기 수신장치는 912단계로 진행하여 상기 결정된 부호어에 의해 수신한 서브부호의 정보에 대한 복호를 수행한다. 상기 수신장치는 914단계에서 상기 복호된 정보들에 대해 오류 검사를 수행한다. 상기 오류 검사는 상기 서브부호를 통해 제공받은 CRC를 통해 수행한다. 상기 오류 검사가 완료되면 상기 수신장치는 916단계에서 오류 발생 여부를 판단한다. 상기 판단에 의해 상기 수신한 전송 프레임에 오류가 발생하였다고 판단하면 상기 수신장치는 918단계로 진행하여 재 전송 요구에 해당하는 NACK를 상기 송신장치로 전송한다. 하지만, 상기 판단에 의해 오류가 발생하지 않았다고 판단되면 상기 수신장치는 920단계로 진행하여 정상적인 전송이 이루어졌음을 알리는 ACK를 상기 송신장치로 전송한 후 상기 도 11의 810단계로 리턴하여 상기 송신장치로부터의 다음 PLP를 수신한다.
한편, 상기 수신장치는 상기 918단계에서 NACK를 전송한 후 922단계로 진행하여 상기 수신한 Ci를 저장한다. 상기 수신장치는 해당 서브 부호의 저장을 완료한 후 상기 도 8의 820단계로 진행한다. 상기 820단계로 진행한 상기 송신장치는 상기 j를 1 증가시키고, 822단계에서 상기 i를 1증가시킨 후 824단계로 진행한다. 상기 824단계로 진행한 상기 수신장치는 상기 i를 PLP를 구성하는 전송 프레임의 총 개수인 S로 모듈러 연산하고, 상기 연산 결과를 i로 지정한다. 이는 상기 PLP를 구성하는 모든 전송 프레임들의 수신이 완료되는 시점에서 상기 i를 0으로 초기화하기 위한 과정으로서 다음으로 수신될 PLP를 구성하는 전송 프레임들을 카운트하기 위함이다. 따라서, 상기 i는 0에서 S 범위에서 카운트 동작을 수행하게 된다. 상기 모듈러 연산이 이루어진 후 상기 수신장치는 다음 서브부호의 수신을 위해 상기 812단계로 리턴한다.
전술한 바와 같이 본 발명의 실시 예에 따른 수신장치는 송신장치로부터의 서브부호에 대응하여 ACK 또는 NACK를 전송하며, 상기 ACK를 전송한 경우에는 송신장치로부터의 다음 PLP에 의한 서브부호를 수신한다. 하지만, 상기 NACK를 전송한 경우에는 송신장치로부터의 동일한 PLP에 의한 서브부호를 수신한다. 따라서, 상기 수신장치는 정상적인 서브부호의 수신에 따른 ACK를 전송할 때까지 최대 S개의 서브부호들을 수신하여 코드 컴바이닝을 수행한다. 상기 S개의 서브부호에 의해서도 정상적인 수신이 이루어지지 않는 다면 상기 수신하지 못한 PLP의 수신을 위한 동일한 수신 동작을 반복하여 재 수행하고, 이 경우에는 다이버시티 컴바이닝과 코드 컴바이닝을 동시에 수행한다.