이하 본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
이하 후술될 본 발명은 기존의 컨벌루션날 코드(Convolutional code) 또는 터보 코드(turbo codes) 혹은 선형블록부호를 사용하는 복합 재전송형식의 성능개선을 위한 방식을 제안하고자 한다. 이를 위해 우선 기존에 사용되는 제1복합 재전송형식을 분석 그 문제점을 파악하고, 최적의 성능을 제공하는 제2 및 제3복합 재전송형식에 관해서 분석할 것이다. 다음으로 상기 문제점을 해결하기 위한 조건들을 제시하고 이에 따른 몇 가지 실시 예를 보일 것이다. 마지막으로 이러한 분석결과와 실제 시뮬레이션 결과를 상호 비교하여 제안된 방식이 우수함을 보일 것이다.
즉, 본 발명에 따른 제2 및 제3복합 재전송형식은 첫 번째로 본 발명에서 제안한 제2 및 제3복합 재전송형식과 이를 위한 조건, 두 번째로 기존의 제1복합 재전송형식과 본 발명에 따른 제2 및 제3복합 재전송형식과의 관계 및 성능 분석의 순으로 설명되어질 것이다.
앞서 언급하였듯이 제2 및 제3복합재전송 형식에서 가장 중요한 것은 소스 데이터 패킷에 대해서 처음 전송하는 데이터 블록의 크기와 이에 해당되는 부호율과 부호, 그리고 각각의 재전송 시에 사용되는 데이터 블록의 크기와 이에 해당되는 부호율과 부호의 결정이다. 예를 들어, 모부호(Mother code)의 부호율이 R=1/3이고, 3번의 재전송이 가능한 시스템을 가정한 경우에 전술한 <표 1>과 같이 각각의 재전송에 따른 부호율을 결정할 수 있다. 이와 같이 각각의 재전송에 따른 부호율을 결정한 경우에도 각각의 부호율에 해당되는 모부호(mother code)로부터 각 재전송에 따른 전송할 리던던시 비트의 결정은 매우 다양한 종류가 있다. 또한, 경우에 따라서는 선택한 리던던시 비트에 따른 성능 저하 또는 향상의 성능차이가 매우 크게 발생할 수도 있으므로 최적의 성능을 보장하는 리던던시 비트의 선택이 매우 중요한 요소이다. 따라서, 본 발명에서는 우선 리던던시 비트의 선택이 3가지로 구분되는 경우(3번의 전송이 이루어지는 재전송 방식) 즉, 부호율이 R1=1, R2=1/2, R3=1/3인 경우를 전제로 하고 있다. 또한, 상기 각 경우 리던던시를 선택하는 일반적인 규칙을 컨벌루션날 코드(Convolutional codes) 및 터보 코드(turbo codes)를 사용하는 시스템에 관해서 제시한다. 물론, 부호율의 선택에 따라 세부적인 변화는 있을 수 있으나 아래에 제시한 조건들이 기본적으로 만족되어야 최적의 성능을 보일 수 있으므로 이를 일반화하는 것에는 큰 문제가 없을 것이다.
일반적으로 채널부호화 방식으로 컨벌루션날 코드(convolutional codes)와 터보 코드(turbo codes) 또는 선형블록부호 등이 사용되는 채널부호기를 사용하는 CDMA-2000시스템 또는 UMTS 시스템은 코딩된 심볼을 전송 프레임 레이트에 맞추거나 가변 부호율 전송을 위하여 심볼 천공(symbol puncturing) 또는 심볼 반복(symbol repetition) 등을 사용한다. 본 발명은 제2, 제3복합 재전송형식을 효과적으로 전용하기 위하여 아래의 조건들이 충분히 고려되고 반영되어야 오류정정부호의 성능을 보장할 수 있음을 제안한다.
조건1: 부호기에서 출력되는 부호어 심볼(Coded symbol)을 가급적 균일한 천공패턴 즉, 가급적 주기적인 패턴을 사용하여 천공하며, 이 천공 주기를 최소화한다.
조건2: 천공 비트 수를 가급적 최소화한다.
조건3: 부호기에서 출력되는 부호어 심볼(Coded symbol)을 가급적 균일한 반복패턴 즉, 가급적 주기적인 패턴을 사용하여 반복하며, 이 반복 주기를 최소화한다.
조건4: 반복 비트 수를 가급적 최대화한다.
이와 더불어 반복 복호방식을 사용하는 터보 코드(Turbo cdoes)와 같은 쇄상부호들의 경우 일반적으로 심볼 천공(symbol puncturing) 또는 심볼 반복(symbol repetition) 등을 사용하는 경우 아래의 조건들이 추가로 고려되고 반영되어야 오류정정부호의 성능을 보장할 수 있다.
조건 5: 만일 최초 부호화 율 R1=1인 제2복합 재전송형식에서는 최초의 전송 시에는 입력 정보어에 해당되는 구조적인 심볼(Systematic symbol)들을 전송한다.
조건6: 만일 R1<1인 제3복합 재전송형식에서는 최초의 전송 시에 전송되는 데이터 블록의 구성을 가급적 입력 정보어에 해당되는 구조적 심볼(Systematic symbols)을 모두 포함하고, 남는 부분에 여분의 리던던시를 포함토록 선택한다.
조건7: 각각의 재전송에 의해 전달되는 리던던시의 형태는 반복복호기의 특성을 고려하여 각 구성 복호기에서 출력하는 리던던시를 가급적 균등하게 전송할 수 있는 형태를 가져야 한다.
전술한 조건들 중 조건 5와 조건 6을 사용하는 이유는 채널의 상태가 좋은 경우 시스티메틱 코드(Systematic codes)의 성능이 넌-시스티메틱 코드(Non systematic codes)의 성능에 비하여 우수하기 때문이다. 또한, 일반적으로, 부호율이 1.0에 근접할수록 시스티메틱 코드(Systematic codes)의 성능이 넌-시스티메틱 코드(Non systematic codes)의 성능에 비하여 우수하기 때문이다. 이것을 일반화 한 것이 후술할 조건 8이 된다.
다음으로 조건 7을 사용하는 이유를 터보 코드를 사용하는 경우와 컨벌루션날 코드를 사용하는 경우로 구분하여 살펴보면 다음과 같다.
먼저, 터보 코드를 사용하는 경우에 있어 부호기와 복호기에 대해 설명한다.
예로서, R=1/3인 터보 코드(turbo codes)의 경우 부호기와 이에 따른 반복 복호기 구조를 도 3과 도 4에서 각각 보였다.
상기 도 3을 참조하여 본 발명의 일 실시 예에 따른 터보 코드 부호기에 대해 살펴보면, 입력 데이터(Ut)는 스위치 SW1을 통해 제1가산기(310)로 인가된다. 상기 제1가산기(310)는 상기 스위치 SW1을 통해 인가되는 데이터를 피드-백되는 데이터와 가산하여 출력한다. 이때, 상기 제1가산기(310)로 인가되는 데이터는 제1코딩 데이터(X)로 출력된다. 상기 제1가산기(310)로부터 출력되는 데이터는 제1, 제2, 제3지연기 m0, m1, m2에 의해 순차적으로 지연 출력된다. 상기 제1지연기 m0과 상기 제3지연기 m2로부터의 출력은 제2가산기(312)에 의해 상기 제1가산기(310)의 출력과 가산되어 제2코딩 데이터(Y)로 출력된다. 한편, 상기 제3지연기 m2로부터의 출력과 상기 제2지연기 m1의 출력은 제3가산기(314)에 의해 가산되어 상기 피드-백 신호로 상기 제1가산기(310)로 인가된다. 또한, 상기 스위치 SW1은 상기 피드-백되는 신호에 의해 스위칭 동작을 수행한다. 상기 스위치 SW1이 B측으로 스위칭 되는 것은 한 프레임에 대한 코딩이 이루어진 후 테일 비트를 삽입하기 위함이다.
한편, 상기 입력 데이터(Ut)는 인터리버(316)로 인가되어 인터리빙된 후 스위치 SW2로 인가된다. 상기 스위치 SW2에 인가된 데이터는 제4가산기(318)로 인가된다. 상기 제4가산기(318)는 상기 스위치 SW2로부터 인가되는 데이터와 피드-백되는 데이터를 가산하여 출력한다. 상기 가산된 데이터는 제4, 제5, 제6지연기 n0, n1, n2를 통해 순차적으로 지연되어 출력된다. 이때, 상기 제4지연기 n0과 상기 제6지연기 n2로부터의 출력은 제5가산기(320)에 의해 상기 제4가산기(318)의 출력과 가산되어 제3코딩 데이터(z)로 출력된다. 또한, 상기 제6지연기 n2로부터의 출력 데이터는 제6가산기(322)에 의해 상기 제5지연기 n1의 출력과 가산되어 상기 피드-백 데이터로 상기 제4가산기(318)로 제공된다. 또한, 상기 스위치 SW2는 상기 피드-백되는 신호에 의해 스위칭 동작을 수행한다. 상기 스위치 SW2가 B측으로 스위칭 되는 것은 한 프레임에 대한 코딩이 이루어진 후 테일 비트를 삽입하기 위함이다.
상기 도 3에서 보이고 있듯이 터보 부호기는 시스티메틱 파트(systematic part)와 리던던시인 패리티 1(Parity 1), 패리티 2(Parity 2)가 각각 있으며, 이들 부호어 심볼의 시퀀스를 편의상 X, Y, Z(c1t, c2t, c3t)라 한다. 또한, 이들은 각각 컴포넌트 엔코더(Component encoder) 1과 2로부터 시스티메틱 정보 비트(Systematic information bit)와 패리티 비트들(Parity bits)을 의미한다. 그런데 제1복합 재전송형식(HARQ-Type I)의 경우에는 이 모두가 한번에 전송되므로 복호기에 문제가 발생되지 않으나 제2 및 제3복합 재전송형식처럼 리던던시가 분할되어 전송되는 경우 컴포넌트 엔코더(Component encoder) 1과 2에 각각 해당하는 리던던시를 잘못 전송하면 수신기에서 성능의 급격한 저하를 초래한다. 아래의 <표 2>는 터보 코드에서 리던던시 선택의 예를 보였으며, <표 3>은 터보 코드에서 리던던시 선택에 따른 부호심볼 전송패턴의 예를 보였다.
|
1차 전송 |
2차 전송 |
3차 전송 |
Case 1 |
X |
Y |
Z |
Case 2 |
X |
(Y/2+Z/2) |
(Y/2+Z/2) |
Case 3 |
(X+Y+Z)/3 |
(X+Y+Z)/3 |
(X+Y+Z)/3 |
|
1차 전송 |
2차 전송 |
3차 전송 |
Case 1 |
x1,x2,x3, ..xL |
y1,y2,y3,y4, ,yL |
z1,z2,z3, ,zL |
Case 2 |
x1,x2,x3, ..xL |
y1,z2,y3,z4, ,zL |
z1,y2,z3,y4, ,yL |
Case 3 |
x1,y2,z3,x4,y5, ,zL |
x2,y3,z2,x5,y6,z5,. ,yL |
3,y1,z1,x6,y4,z4,..,xL |
상기 <표 2> 및 <표 3>에서 X는 시스티메틱 정보비트(systematic information bit)의 수를 나타낸다. Y는 컴포넌트 엔코더(component encoder) 1의 패리티 비트(parity bit)의 수를 나타내고, Z는 컴포넌트 엔코더(component encoder) 2의 패리티 비트(parity bit)의 수를 나타낸다. 즉, 상기 <표 3>에서의 Case 1의 경우에는 x1,x2,x3, ..xL을 전송 후에 2차 전송 시에 y1,y2, ,yL, 그리고 3차 전송 시에 z1,z2,z3, ,zL을 전송하는 것을 의미한다. 상기 Case 1의 경우를 보면 리던던시의 전송이 2차 전송까지 컴포넌트 엔코더(component encoder) 1의 패리티(parity)에 국한되어 있음을 알 수 있다. 즉, 2차 전송까지 인터리빙되지 않는 정보들만이 전송되고 있다. 따라서 2차 전송의 경우까지 터보 부호화기(Turbo encoder)는 z1, z2, z3,..,zL을 사용하지 않으므로 터보 인터리빙이 사용되지 않는 단지 K=4, R=1/2의 컨벌루션날 코드(convolutional code)의 성능밖에 더 이상의 성능 개선을 제공할 수 없다. 즉, 터보 코드(turbo codes)의 가장 큰 장점인 입력 프레임 사이즈에 비례하는 터보 인터리빙 이득이 제공될 수 없음을 의미한다. 이러한 문제는 전술한 조건 7을 만족하지 못하는 이유에서 발생된다. 그러나, <표 2> 및 <표 3>에서 보여지고 있는 Case 2, Case 3의 경우에는 리던던시의 전송이 2차 전송까지 컴포넌트 엔코더(component encoder) 1의 패리티(parity)와 컴포넌트 엔코더(component encoder) 2의 패리티(parity)가 균등하게 상호 배타적 위치에서전송됨을 알 수 있다. 따라서, 2차 전송의 경우에서부터 터보 부호화기(Turbo encoder)는 K=4, R=1/3인 터보부호로부터 심볼 천공에 의해 구한 K=4, R=1/2의 터보 코드(turbo code)의 성능을 제공한다. 즉, 이 경우는 터보 코드(turbo codes)의 가장 큰 장점인 입력 프레임 사이즈에 비례하는 성능이 제공될 수 있음을 의미한다. 그러나 Case 3은 조건 5와 조건 6을 만족하지 못하므로 이 경우에는 Case 2에 비하여 성능의 저하가 발생 될 수 있다. 따라서, 전술한 조건 5, 조건6, 조건 7을 모두 만족하는 Case 2의 경우가 터보 코드(Turbo code) 자체가 지닌 구조적인 코드(Systematic code) 성질을 이용하여 최적의 성능을 제공할 수 있다.
상기 도 4를 참조하여 본 발명의 일 실시 예에 따른 반복 복호화기에 대해 살펴보면, 상기 도 4에서 보여지고 있는 바와 같이 반복복호기는 두 개의 디코더를 포함한다. 제1가산기(410)는 반복 복호를 위해 수신한 제1코딩 데이터(x)와 피드-백되는 데이터를 가산(Xk+Ext)하여 출력한다. 제1시소 디코더(SISO Decoder)(412)는 상기 가산기(412)로부터의 데이터와 수신한 제2코딩 데이터(Y)를 입력하고, 상기 두 데이터를 디코딩하여 출력한다. 제2가산기(414)는 상기 제1시소 디코더(412)에 의해 디코딩된 데이터와 상기 피드-백되는 데이터를 가산하여 출력한다. 인터리버(416)는 상기 제2가산기(414)에 의해 가산된 데이터를 입력으로 하여 인터리빙을 수행한다. 한편, 제2시소 디코더(418)는 상기 인터리버(416)에 의해 인터리빙된 데이터와 제3코딩 데이터(Z)를 입력으로 하며, 상기 입력되는 데이터를 디코딩하여 출력한다. 하지만, 입력되는 코딩 데이터로 X, Y만이 존재하게 되면 상기 제1시소 디코더(412)만이 동작할 뿐 상기 제2시소 디코더(418)는 동작이 불필요하다. 또한, 입력되는 코딩 데이터로 X만이 존재하면 상기 제1시소 디코더(412)의 동작을 요구되지 않으며, 상기 제2시소 디코더(418)의 동작만으로도 디코더로서의 동작을 수행한다. 따라서, 전술한 바와 같이 본 발명의 일 실시 예에 따른 부호화기에서는 재전송시 X, Y, Z의 코딩 데이터를 균등한 비율로 혼합하여 전송하는 이유인 것이다. 즉, 부호기에서 재 전송시 코딩 데이터를 혼합하여 전송함에 따라 상기 제1시소 디코더(412)와 상기 제2시소 디코더(418)의 동작이 모두 요구됨에 따라 적절한 디코딩이 수행될 수 있는 것이다. 제3가산기(420)는 상기 제2시소 디코더(418)에 의해 디코딩된 데이터와 상기 인터리버(416)에 의해 인터리빙된 데이터를 입력으로 하고, 상기 두 데이터를 가산하여 출력한다. 제1디인터리버(422)는 상기 제3가산기(420)로부터의 가산된 데이터를 디인터리빙하여 상기 피드-백 신호로 출력한다. 제2디인터리버(424)는 상기 제2시소 디코더(418)로부터의 디코딩된 데이터를 디인터리빙하여 출력한다. 판단기(426)는 상기 제2디인터리버(424)로부터의 디인터리빙된 데이터를 입력으로 하고, 상기 디인터리빙된 데이터를 구성하는 심볼들 각각의 값을 결정한다. CRC 검사부(428)는 상기 판단기(426)에 의해 결정된 심볼들의 값을 입력으로 하여 CRC 검사를 수행한다. 한편, 상기 CRC 검사부(428)는 상기 검사 결과에 의해 해당 데이터의 재 전송 여부를 결정한다. 출력 버퍼(430)는 상기 판단기(426)에 의해 결정된 심볼들의 값을 입력으로 하여 임시 저장하고, 상기 CRC 검사부(428)로부터의 검사 결과에 의해 에러가 없을 시 상기 임시 저장하고 있는 심볼들, 즉 송신기에서 전송하고자 하는 원래 데이터(Ut)를 출력한다.
전술한 도 4의 구조에서도 알 수 있는 바와 같이 본 발명의 일 실시 예에 따른 반복 복호기는 디인터리버를 통해 디코딩된 데이터를 피드-백함으로서 반복하여 디코딩이 이루어질 수 있도록 하는 구조를 개시한다.
한편, 전술한 조건과 더불어 본 발명에 따른 제2 및 제3복합 재전송형식에서 아래의 조건이 반영되는 것이 성능개선에 필요하다.
조건 8: 최초의 전송 시에 사용하는 부호의 부호율 R1이 매우 1.0에 근접하는 높은 코드 레이트을 가지는 코드(High code rate code)인 경우 부호기는 가급적 시스티메틱 코드(Systematic codes)를 사용한다.
따라서, 상술한 조건들이 반영되도록 제2 및 제3복합 재전송형식을 구성하여야 최적의 성능을 구할 수 있다.
다음으로, 컨벌루션날 코드를 사용하는 경우에 있어 부호기와 복호기에 대해 설명한다.
예로서, R=1/2인 컨벌루션날 코드의 경우에 있어 부호기의 구조를 도 5a에서 보이고 있으며, R=1/3인 컨벌루션날 코드의 경우에 있어 부호기의 구조를 도 5b에서 보이고 있다.
상기 도 5a를 참조하여 R=1/2인 컨벌루션날 코드의 경우에 있어 부호기를 살펴보면, 입력 데이터는 8개의 지연기들(510 내지 524)에 의해 순차적으로 지연 출력된다. 제1가산기(526)는 상기 입력 데이터와 제2지연기(512)로부터의 지연 데이터를 가산하여 출력한다. 제2가산기(528)는 상기 제1가산기(526)의 출력과 제3지연기(514)로부터의 지연 데이터를 가산하여 출력한다. 제3가산기(530)는 상기 제2가산기(528)의 출력과 제4지연기(516)로부터의 지연 데이터를 가산하여 출력한다. 제4가산기(532)는 상기 제3가산기(530)의 출력과 제8지연기(524)로부터의 지연 데이터를 가산하여 제1코딩 데이터(G0)로 출력한다.
제5가산기(534)는 상기 입력 데이터와 제1지연기(510)로부터의 지연 데이터를 가산하여 출력한다. 제6가산기(536)는 상기 제5가산기(526)의 출력과 상기 제2지연기(512)로부터의 지연 데이터를 가산하여 출력한다. 제7가산기(538)는 상기 제6가산기(536)의 출력과 상기 제3지연기(514)로부터의 지연 데이터를 가산하여 출력한다. 제8가산기(540)는 상기 제7가산기(538)의 출력과 제5지연기(518)로부터의 지연 데이터를 가산하여 출력한다. 제9가산기(542)는 상기 제8가산기(540)의 출력과 제7지연기(522)로부터의 지연 데이터를 가산하여 출력한다. 제10가산기(544)는 상기 제9가산기(542)의 출력과 상기 제8지연기(524)로부터의 지연 데이터를 가산하여 제2코딩 데이터(G1)로 출력한다.
상기 도 5b를 참조하여 R=1/3인 컨벌루션날 코드의 경우에 있어 부호기를 살펴보면, 입력 데이터는 8개의 지연기들(550 내지 564)에 의해 순차적으로 지연 출력된다. 제1가산기(566)는 상기 입력 데이터와 제2지연기(552)로부터의 지연 데이터를 가산하여 출력한다. 제2가산기(568)는 상기 제1가산기(566)의 출력과 제3지연기(554)로부터의 지연 데이터를 가산하여 출력한다. 제3가산기(570)는 상기 제2가산기(568)의 출력과 상기 제5지연기(558)로부터의 지연 데이터를 가산하여 출력한다. 제4가산기(572)는 상기 제3가산기(570)의 출력과 제6지연기(560)로부터의 지연 데이터를 가산하여 출력한다. 제5가산기(574)는 상기 제4가산기(572)의 출력과 제7지연기(562)로부터의 지연 데이터를 가산하여 출력한다. 제6가산기(576)는 상기 제5가산기(574)의 출력과 제8지연기(564)로부터의 지연 데이터를 가산하여 제1코딩 데이터(G0)로 출력한다.
제7가산기(578)는 상기 입력 데이터와 제1지연기(550)로부터의 지연 데이터를 가산하여 출력한다. 제8가산기(580)는 상기 제7가산기(578)의 출력과 상기 제3지연기(554)로부터의 지연 데이터를 가산하여 출력한다. 제9가산기(582)는 상기 제8가산기(580)의 출력과 제4지연기(582)로부터의 지연 데이터를 가산하여 출력한다. 제10가산기(584)는 상기 제9가산기(582)의 출력과 상기 제7지연기(562)로부터의 지연 데이터를 가산하여 출력한다. 제11가산기(586)는 상기 제10가산기(584)의 출력과 상기 제8지연기(564)로부터의 지연 데이터를 가산하여 제2코딩 데이터(G1)로 출력한다.
제12가산기(588)는 상기 입력 데이터와 상기 제1지연기(550)로부터의 지연 데이터를 가산하여 출력한다. 제13가산기(590)는 상기 제12가산기(590)의 출력과 상기 제2지연기(552)로부터의 지연 데이터를 가산하여 출력한다. 제14가산기(592)는 상기 제13가산기(590)의 출력과 상기 제5지연기(558)로부터의 지연 데이터를 가산하여 출력한다. 제15가산기(594)는 상기 제14가산기(592)의 출력과 상기 제8지연기(564)로부터의 지연 데이터를 가산하여 제3코딩 데이터(G2)로 출력한다.
다음으로 본 발명의 실시 예에 따른 전술한 조건들을 만족하도록 하는 컨벌루션날 코드(Convolutional codes)와 터보 코드(turbo codes)의 리던던시 선택방법의 실시 예를 UMTS의 에어 인터페이스(Air interface)를 기준으로 제시한다. 아래에 예로서 3GPP에 제안된 제2 및 제3복합 재전송형식의 전송방식 예를 보였다. 이 경우 처음 전송에서 세 번째 전송까지의 부호율 변화는 전술한 <표 1>과 동일하다. 즉, R1=1, R2=1/2, R3=1/3라고 가정한다. 여기 R2가 1/2이라 함은 최초 전송시에 수신된 데이터와 2차 전송시에 수신된 데이터를 합쳐서 총 부호율이 R2=1/2임을 의미한다. 그리고 세 번째부터 그 이후의 재전송 시에는 수신되는 리던던시를 심볼 결합(symbol combining)해서 R=1/3 부호어로 만들어 이를 R=1/3 채널부호 복호기를 사용하여 복호화 한다. 앞서 언급하였듯이 아래의 전송사양에서 위 조건들에 의해서 컨벌루션날 코드(convolutional codes)를 사용하는 경우와 터보 코드(turbo codes)를 사용하는 경우의 리던던시 선택방법을 제안한다. 우선 이를 위해서 3GPP에 사용되는 터보 코드 부호화기(turbo codes encoder)와 컨벌루션날 코드 부호화기(Convolutional code encoder)의 구조는 앞에서도 살펴본 바와 같이 도 3과 도 5a 및 도 5b에서 각각 보여주고 있다. 하기 <표 4>는 3GPP에 제안된 제2 및 제3복합 재전송형식의 전송방식의 예를 보여주고 있다.
컨벌루션날 코드들(Convolutional codes)의 재전송패턴
하기의 <표 5>는 컨벌루션날 코드(Convolutional codes) 각각의 재전송 시 리던던시 선택 방법을 보여주고 있다. 여기서 패턴 1(Pattern 1) 내지 패턴 6(Pattern 6) 각각의 방법은 전술한 조건 1, 조건 2를 자연스럽게 만족한다. 또한, 패턴 7(Pattern 7)의 경우에도 (X,Y,Z)를 <표 5>에서 보여지고 있는 바와 같이 전송하면 조건 1, 조건 2를 자연스럽게 만족한다. 물론, 4차 전송 이후의 재전송에서도 이러한 패턴(Pattern)을 반복함으로써 주기성을 유지할 수 있으며, 조건 3과 조건 4를 만족함으로써 일정한 성능이 보장된다. 컨벌루션날 코드(Convolutional code)의 경우에는 리피티션 패턴(Repetition pattern)에서도 가장 중요한 것이 균등(Uniformity)이 된다. 따라서, 가급적 주기적인 반복 패턴(Repetition pattern)이 사용되어야 한다. 이러한 관점에서 보면, 재전송 시에 우선 X를 다시 보내서 심볼 결합(symbol combining)하는 것이 균등(uniformity) 관점에서 가장 좋다. 왜냐하면 X를 다시 보내서 심볼 결합(symbol combining)하는 것이 반복 주기(Repetition cycle)가 3으로 최소의 주기를 가지므로 이는 Dfree 관점에서 가장 좋다는 의미가 된다. 아래의 <표 5>에서 패턴 7(Pattern 7)의 경우에는 (X,Y,Z)를 각각 혼합하여 전송하는 조합이 여러 가지 가능하며 여기서는 그 중에서 두 가지 예를 보인 것임을 의미한다.
|
1차 전송 |
2차 전송 |
3차 전송 |
Pattern 1 |
X |
Y |
Z |
Pattern 2 |
X |
Z |
Y |
Pattern 3 |
Y |
X |
Z |
Pattern 4 |
Y |
Z |
X |
Pattern 5 |
Z |
X |
Y |
Pattern 6 |
Z |
Y |
X
|
Pattern 7 |
A part of (X,Y,Z)x1,y2,z3,x4,y1,z2 ,zL혹은x1,y3,z2,x4,z1,y2,.,zL |
A part of (X,Y,Z)x2,y3,z2,x5,y6,z5, ,yL혹은x2,z3,y2,x5,z6,y5,.,yL |
A part of (X,Y,Z)x3,y1,z1,x6,y4,z4,..,xL혹은x3,z1,y1,x6,z4,y4,.,xL |
터보 코드들(Turbo codes)의 재전송패턴
아래의 <표 6>은 R=1/3인 터보 코드(turbo codes)에서 각각의 재전송 시 리던던시 선택 방법을 보여주고 있다. 여기서, 패턴 1(Pattern 1)과 패턴 2(Pattern 2)의 방법은 전술한 조건 7을 만족하지 못하며, 나머지는 조건 7을 만족한다. 물론, 4차 전송 이후의 재전송에서도 이러한 패턴(Pattern)을 반복함으로써 주기성을 유지할 수 있으며, 조건 3과 조건4를 만족함으로써 일정한 성능이 보장된다. 리던던시를 전송하고자 하는 경우 전송할 리던던시(X,Y,Z)를 각각 혼합하여 전송하는 여러 가지 조합이 가능한데 아래의 <표 6>에서는 그 중에서 10가지의 예로서 패턴 1(Pattern 1) - 패턴 10(Pattern 10)을 보이고 있다. 따라서 상기 조건 1- 조건 7을 만족하는 예들은 아래의 <표 6> 이외에도 많은 수가 있으며 여기서는 그 모두를 구체적으로 나열하지는 않았다.
|
1차 전송 |
2차 전송 |
3차 전송 |
Pattern 1 |
x1,x2,x3, ..xL |
y1,y2,y3,y4, ,yL |
z1,z2,z3, ,zL |
Pattern 2 |
x1,x2,x3, ..xL |
z1,z2,z3, ,zL |
y1,y2,y3,y4, ,yL |
Pattern 3 |
x1,x2,x3, ..xL |
y1,z2,y3,z4, ,zL |
z1,y2,z3,y4, ,yL |
Pattern 4 |
x1,x2,x3, ..xL |
z1,y2,z3,y4, ,yL |
y1,z2,y3,z4, ,zL |
Pattern 5 |
x1,y2,z3,x4,y5, ,zL |
x2,y3,z2,x5,y6,z5,. ,yL |
x3,y1,z1,x6,y4,z4,..,xL |
Pattern 6 |
x1,y2,z3,x4,y5, ,zL |
x3,y1,z1,x6,y4,z4,..,xL |
x2,y3,z2,x5,y6,z5,. ,yL |
Pattern 7 |
x2,y3,z2,x5,y6,z5,. ,yL |
x1,y2,z3,x4,y5, ,zL |
x3,y1,z1,x6,y4,z4,..,xL |
Pattern 8 |
x2,y3,z2,x5,y6,z5,. ,yL |
x3,y1,z1,x6,y4,z4,..,xL |
x1,y2,z3,x4,y5, ,zL |
Pattern 9 |
x3,y1,z1,x6,y4,z4,..,xL |
x1,y2,z3,x4,y5, ,zL |
x2,y3,z2,x5,y6,z5,. ,yL |
Pattern 10 |
x3,y1,z1,x6,y4,z4,..,xL |
x2,y3,z2,x5,y6,z5,. ,yL |
x1,y2,z3,x4,y5, ,zL |
따라서 본 발명의 조건들을 만족하는 패턴 3, 4가 이용되는 것이 추천된다. 하지만 터보코드를 사용하는 경우에 상기 <표 6>의 다른 패턴들의 이용을 제한하지는 않는다. 이상에서 언급한 것은 각각의 재전송 시에 동일한 데이터 블록 크기를 사용하는 제2 및 제3복합 재전송형식에 관해서 언급한 것이다. 그러나, 각각의 재전송 시에 서로 다른 크기의 데이터 블록 크기를 사용하는 제2 및 제3복합 재전송형식에 관해서도 일관되도록 하기 위에서 언급한 조건들을 적용 할 수 있다. 예를 들어 R1=3/4, R2=2/3, R3=1/3과 같이 각각의 전송시에 상이한 데이터 블록 크기를사용할 수 있다. 즉, 부호기에 입력되는 데이터 블록 크기를 L이라고 할 때, 최초 데이터 블록 크기는 (3/4)L, 두 번째 전송되는 데이터 블록 크기는 (2/3)L, 세 번째 데이터 블록 크기는 L을 사용할 수 있다. 따라서 이 경우에도 R1=3/4, R2=2/3, R3=1/3의 선택에 있어 상기 조건 1 내지 조건7이 고려되면 된다. 이와 더불어 성능을 향상시키기 위해서 한가지 고려해야 할 것은 앞서 언급한 조건들과 함께 각각의 재전송 시에 사용되는 부호의 오류정정 능력을 최대로 하는 조건이 우선 만족되어야 한다. 따라서 이를 위해서 앞서 제시한 조건들을 유지하되 약간의 불일치가 있을 수 있다.
부호율의 선택에 따른 성능변화
앞서 언급하였듯이 제2 및 제3복합 재전송형식에서 가장 중요한 것은 소스 데이터 패킷에 대해서 처음 전송하는 데이터 블록의 크기와 이에 해당되는 부호율과 부호, 그리고 각각의 재전송 시에 사용되는 데이터 블록의 크기와 이에 해당되는 부호율과 부호의 결정이다. 예를 들어, 모부호(Mother code)의 부호율이 R=1/3이고, 3번의 재전송이 가능한 시스템을 가정한 경우에 전술한 <표 1>과 같이 각각의 재전송에 따른 부호율을 결정할 수 있다. 그러나 최적의 성능을 보장하기 위해서는 채널의 환경에 적응적인 부호율을 결정하는 것이 필요하다. 하지만, 이를 구현하기 위한 구현의 복잡도가 매우 커서 현실적으로 빠른 처리속도를 요구하는 이동 데이터 통신시스템에서는 사용이 어려울 것으로 보인다. 이러한 상황에서 가장 효율적인 방식은 초기 전송하는 부호의 부호율(R1)을 1로 해서는 안되고, 1.0에 근접하는 부호율로 설정하는 것이 필요하다. 왜냐하면, 만일 초기 부호율 R1=1.0인 경우에는 결국 오류정정부호를 사용하지 않는 언코디드 시스템(Uncoded system)을 사용하는 것과 마찬가지가 된다. 따라서 채널의 상태가 아주 좋은 경우가 아니면 대부분의 경우 처음 전송하는 데이터 블록은 모두 수신오류가 발생하고 결국 재전송을 요구하여 수신된 리던던시를 함께 사용하여 구성되는 R2의 부호율을 지닌 오류정정부호를 사용해야만 이를 정정하여 성공적으로 수신 가능하다. 이는 기본적으로 처리율이 50%를 초과하지 못함을 의미한다. 그러나 이런 경우 처음 전송되는 부호의 부호율 R1이 1.0보다 작다면 즉, 오류정정 능력이 있다면 적정한 S/N에서도 오류정정이 가능하다. 따라서 처리율의 증가를 가져올 수 있다. 이러한 이유에서 하기의 조건이 필요하다.
조건 9: 처음에 전송되는 부호의 부호율 R1이 R1<1.0을 만족하며, 최대 처리율의 상한에 맞추어 그 값을 결정해야 한다.
여기서, 최대 처리율의 상한을 고려하는 것은 채널의 상태가 매우 좋은 경우 , 즉 S/N이 매우 큰 경우 제2 및 제3복합 재전송형식의 처리율은 R1로 포화되기 때문이다. 따라서, 이 값을 상향 조절하기 위해서는 가급적 R1을 1.0에 근접시켜야 하나 이런 경우 앞서 제시한 문제가 발생하므로 이 둘 사이에서 가장 최적인 값을 R1로 결정해야 한다.
복합재전송 형식 II/III의 구현에 따른 복호기의 선택
제2 및 제3복합 재전송형식을 사용하는 시스템이나 혹은 심볼 결합(symbolcombining)을 사용하는 수정된 제1, 제2 또는 제3복합 재전송형식에서는 기존의 데이터 통신시스템에서 사용하는 오류정정부호 복호기와는 달리 다음의 조건을 가급적 만족하는 오류정정부호 복호기가 사용되어야 성능이 개선된다.
조건 10: 심볼 결합(symbol combining) 혹은 심볼 천공(symbol puncturing)을 사용하는 통신시스템에서 사용되는 오류정정부호 복호기는 채널의 수신상태를 지시하는 인자(예로서, 채널의 S/N, Eb/No, Ec/No, Ec/Ior 등)와 독립적인 복호방식 또는 이들 인자의 변화에 덜 민감한(less sensitive) 복호방식을 지닌 복호기를 가급적 사용해야 한다.
조건 11: 제2 및 제3복합 재전송형식을 사용하는 시스템이나 혹은 심볼 결합(symbol combining)을 사용하는 수정된 제1, 제2 또는 제3복합 재전송형식에서는 가급적이면 기존의 통신시스템에서 사용하는 오류정정부호 복호기는 채널의 수신상태를 지시하는 인자(예로서, 채널의 S/N, Eb/No, Ec/No, Ec/Ior 등)와 독립적인 복호방식 또는 이들 인자의 변화에 덜 민감한(less sensitive) 복호방식을 지닌 복호기를 사용해야 한다.
상기의 조건이 사용되는 이유는 다음과 같다.
일반적으로 오류정정부호 복호기는 하기의 <표 7>과 같이 채널의 수신상태를 지시하는 인자(예로서, 채널의 S/N, Eb/No, Ec/No, Ec/Ior 등)를 복호하는 과정에서 직접적으로 사용하는 지의 여부에 따라 이에 종속적인 복호기와 독립적인 복호기로서 구별될 수 있다. 즉, 매 부호 심볼마다 변화하는 채널의 상태를 직접적으로 복호기가 사용하는 가의 여부에 따른 구별이 가능하다. 또한, 하기의 <표 7>과 같이 이러한 채널상태정보는 대부분의 복호기가 복호화를 위해 수신된 부호어 심볼로부터 제일 먼저 수행하는 초기 연산과정인 가지 메트릭(Branch Metric: BM) 계산과정에 반영된다. 예를 들어, 아래 <표 7>과 같이 채널상태정보에 종속적인 복호기와 채널상태정보에 독립적인 복호기의 BM의 계산과정상의 차이점을 보였다. 아래의 <표 7>에서 u1,u2,...,ur은 수신된 부호어 심볼들을 나타내며 Max()와 Min()은 각각 이들 중의 최대 또는 최소를 각각 의미한다. 또한 ±는 BM의 종류에 따라 + 또는 -가 선택되어 사용할 수 있음을 의미한다. 다음으로 δ는 (u1,u2,...,ur)의 차이로 결정되는 값이며, f(channel information)는 채널의 수신상태를 지시하는 인자에 의해서 결정되는 특정함수를 의미한다.
채널상태정보에 독립적인 복호기 |
채널상태정보에 종속적인 복호기 |
BM = Max(u1, u2, u3, ., ur)orBM = Min(u1, u2, u3, ., ur) |
BM = Max(u1, u2, u3, ., ur) ±δ(u1,u2,u3, ,ur)f(Channel information)orBM = Min (u1, u2, u3, ., ur) ±δ(u1,u2,u3, ,ur)f(Channel information) |
예로서 다음에 채널상태정보에 독립적인 복호기들과 채널상태정보에 종속적인 복호기들의 예를 보였다.
채널상태정보에 독립적인 복호기 : Viterbi decoder, SOVA (Soft Output Viterbi Decoder), RE-SOVA (Register Exchange SOVA), Max LOG MAP decoder, Max MAP decoder
* 채널상태정보에 종속적인 복호기 : LOG MAP decoder, MAP decoder, Sub LOG MAP decoder
한편, 일반적으로 채널상태정보에 대해 종속적인 복호기가 채널상태정보에 대해 독립적인 복호기에 비하여 이상적인 채널상태정보를 제공받는 경우 더 우수한 성능을 제공한다. 상기 <표 7>에서 보듯이 채널상태정보에 종속적인 복호기는 가지 메트릭(Branch metric)을 구하는 과정에서 매 수신한 부호어 심볼에 해당되는 채널상태정보인 f(Channel information)를 사용한다. 그러나 어떠한 이유, 예를 들어 심볼 결합(symbol combining) 혹은 심볼 천공(symbol puncturing)을 사용하는 통신시스템의 경우처럼 각각의 부호어 심볼의 수신에너지가 각기 다른 경우 동일한 채널상태 환경이라도 각각의 수신한 부호어 심볼에 해당되는 최종적인 채널상태정보인 f(Channel information)는 매 시간 바뀌게 된다. 따라서, 이러한 채널상태 정보를 정확하게 추정(Estimation)할 수 없는 경우에는 오히려 채널상태정보에 독립적인 복호기를 사용하는 것이 더 나은 성능을 제공한다. 예를 들어, δ(u1,u2,u3, ,ur)×f(Channel information)값이 Max(u1, u2, u3, ., ur) 보다 크게 변화하는 경우에는 큰 오류가 발생하게 된다.
또한, 제2 및 제3복합 재전송형식을 사용하는 시스템이나 혹은 심볼 결합(symbol combining)을 사용하는 수정된 제1, 제2 및 제3복합 재전송형식에서도 위와 같은 문제가 발생한다. 즉, 도 9에서 보는 것처럼 각각의 부호어 심볼에 대응하는 수신 에너지가 재전송 회수에 따라서 각기 다른 경우 동일한 채널상태 환경이라도 각각의 수신한 부호어 심볼에 해당되는 최종적인 채널상태정보인 f(Channel information)는 매 시간 바뀌게 된다. 상기 도 9는 복합재전송 형식에서 수신된 심볼의 에너지 변화를 보여주고 있는 도면이다.
따라서, 이러한 채널상태 정보를 정확하게 추정(Estimation)할 수 없는 경우에는 오히려 채널상태정보에 독립적인 복호기를 사용하는 것이 더 나은 성능을 제공한다. 현실적으로 이러한 심볼 단위의 에너지 변화를 각기 다르게 설정해준다는 것은 구현상에 매우 큰 장해 요인이 된다.
반면에 일반적으로 채널상태정보에 독립적인 복호기의 성능은 채널상태정보에 종속적인 복호기의 성능에 비하여 낮은 S/N인 경우에는 다소의 차이가 있으나 S/N이 증가하면 양자간의 성능차이는 거의 발생하지 않는다. 왜냐하면 S/N이 증가하면 δ(u1,u2,u3, ,ur)값 자체가 매우 작아져서 결국 0에 가까운 값이 되기 때문이다. 따라서 실제 구현을 고려할 때 채널의 수신상태를 지시하는 인자(예로서, 채널의 S/N, Eb/No, Ec/No, Ec/Ior 등)와 독립적인 복호방식 또는 이들 인자의 변화에 덜 민감한(less sensitive ) 복호방식을 지닌 복호기를 사용하는 것이 바람직하다.
기존의 복합재전송 형식I과 고안한 복합재전송 형식II/III과의 관계 및 성능분석
도 7과 도 8에 제2복합 재전송형식을 사용한 비동기방식의 표준인 3GPP(3rd Generation Project Partnership) UMTS의 에어 인터페이스(Air interface)에서의 성능을 보였다. 상기 도 7과 상기 도 8의 성능분석에 사용된 변수는 다음과 같다.
① Transport channel multiplexing structure for down-link is used according to TS25.212
② One TrCH with one TrBlk: (@ 24.8kbps, TTI=20msec, TrBlk size= 496 bits)
③ Rate matching is not performed for simple analysis.
④ Channel model: AWGN
⑤ Channel decoders: Floating C models are used.
- Convolutional codes: Viterbi decoder
- Turbo codes: MAX LOG MAP decoder
⑥ A simple HARQ TYPE II protocol with 3 steps for incremental redundancy is as follows
상기 ⑥의 변수에 대응하는 표는 하기 <표 8>과 같다.
리던던기 선택과 결합(Redundancy Selection and Combining)
제2복합 재전송형식을 사용하기 위해서 도 6a 와 도 6b에서 보여지고 있는 바와 같이 송신기에 리던던시 선택기(Redundancy Selection)와 수신기에 재 전송된 리던던시로부터 심볼 결합을 하기 위한 버퍼/결합기(Buffering/Combining)가 사용되었다.
상기 도 6a는 본 발명의 제2복합 재전송형식에 따른 송신기 구조의 일 실시 예를 보여주고 있으며, 상기 도 6b는 본 발명의 제2복합 재전송형식에 따른 수신기 구조의 일 실시 예를 보여주고 있다.
상기 도 6a를 참조하면, 채널 부호화기(channel coding)(610)는 전송하고자 하는 데이터를 복수의 채널 코딩 방식에 의해 채널 코딩을 수행한다. 리던던시 선택부(612)는 상기 채널 코딩된 복수의 데이터들 각각을 소정 개수로 분할하고, 전송 요구시 마다 상기 분할된 데이터들을 동일 비율로 혼합하여 상호 배타적 위치에서 전송한다. 즉, 상기 리던던시 선택부(612)는 채널 코딩된 데이터를 복합 재전송형식에 의해 레이트 매칭하여 출력하거나 일반 재전송형식에 의해 레이트 매칭하여 출력한다. 상기 리던던시 선택부(612)는 선택부(614), 복합 재전송형식 레이트 매칭부(616) 및 일반 재전송형식 레이트 매칭부(618)로 구성된다. 상기 선택부(614)는 상기 채널 부호화기(610)로부터의 채널 코딩된 복수의 데이터들을 제2복합 재전송형식의 사용 여부에 의해 상기 복합 재전송형식 레이트 매칭부(616) 또는 상기 일반 재전송형식 레이트 매칭부(618)로 스위칭한다. 상기 복합 재전송형식 레이트 매칭부(616)는 상기 선택부(614)로부터의 데이터들 각각을 소정 개수로 분할하고,전송 요구시 마다 상기 분할된 데이터들을 동일 비율로 혼합하여 상호 배타적 위치에서 전송한다. 상기 일반 재전송형식 레이트 매칭부(618)는 상기 선택부(614)로부터의 데이터들을 일반 재전송형식에 의해 전송한다.
즉, 상술한 도 6a에서도 보이고 있는 바와 같이 본 발명의 제2복합 재전송형식에 따른 송신기는 사용할 재전송형식에 의해 데이터를 제2복합 재전송형식으로 전송하거나 일반 재전송형식으로 전송하는 구조를 가진다.
상기 도 6b를 참조하면, 리던던시 선택부(620)는 전송 또는 재 전송되는 데이터를 복합 재전송형식에 의해 레이트 디매칭을 수행하거나 일반 재전송형식에 의해 레이트 디매칭을 수행한다. 상기 리던던시 선택부(620)는 버퍼 및 결합기(624), 복합 재전송형식 레이트 디매칭부(626), 일반 재전송형식 레이트 디매칭부(622) 및 선택부(628)로 구성된다. 상기 버퍼 및 결합기(624)는 재 전송되는 데이터들을 버퍼링하고, 상기 재 전송되는 데이터들의 리던던시로부터 심볼 결합을 수행한다. 상기 복합 재전송형식 레이트 디매칭부(626)는 상기 버퍼 및 결합기(624)로부터의 데이터에 대해 복합 재전송형식에 따른 레이트 디매칭을 수행한다. 일반 재전송형식 레이트 매칭부(622)는 상기 재전송되는 데이터들에 대해 일반 재전송형식에 따른 레이트 매칭을 수행한다. 상기 선택부(628)는 상기 복합 재전송형식 레이트 매칭부(626)와 상기 일반 재전송형식 레이트 매칭부(622)로부터의 출력을 스위칭한다. 한편, 상기 선택부(628)에 의해 선택 출력되는 데이터는 채널 디코딩부(630)로 인가되어 채널 디코딩된 후 출력된다.
전술한 제2복합 재전송형식에 따른 각각의 재전송 시에 사용되는 부호율의일 예를 보이면 하기 <표 9>와 같다.
부호율Code rate | 제1리던던시 버젼First redundancy version | 제2리던던시 버젼Second redundancy version | 제3리던던시 버젼Third redundancy version |
1/3 | 1 | 1/2 | 1/3 |
한편, 분석에 사용한 처리율(Throughput) 정의는 하기 <수학식 1>과 같다.
채널(Channel) |
AWGN |
정보 크기(Information Size) |
496 |
CRC |
16 |
코딩 기법(Coding Scheme) |
컨벌루셔널 코드(Convolutional Code) |
부호율(Code Rate) |
1/3 |
레이트 매칭 레이트(Rate Matching Ratio) |
1.0 |
정보 패턴(Information Pattern) |
111111 .. |
다음으로 하기 <표 11>에서는 전송패턴에 따른 성능의 차이를 비교하였다.
|
1dB |
5dB |
10dB |
XYZ |
2.79e-01 |
4.98e-01 |
6.80e-01 |
YZX |
2.86e-01 |
5.00e-01 |
6.94e-01 |
ZXY |
2.87e-01 |
4.98e-01 |
7.04e-01 |
상기 <표 10>에서 보여지고 있는 결과와 같이 (X,Y,Z)의 변화에 따른 성능의 차이는 크게 없음을 알 수 있다.
도 8은 본 발명의 일 실시 예에 따른 제2복합 재전송형식을 사용하는 부호율 R=1/3의 터보 코드의 경우 처리율을 보여주고 있다.
터보코드의 경우 기존의 제1복합 재전송형식에 비하여 상당한 처리율의 증가를 보여주고 있다. 예를 들어서 Es/No가 0.23dB인 지점에서 현재의 제1복합 재전송형식은 부호율이 R=1/3이므로 최대 처리율 33%를 초과하지 못한다. 그러나 본 발명의 일 실시 예에 따른 제2복합 재전송형식(HARQ Type II)은 48%를 제공하고 있음을 알 수 있다. 즉, Es/No가 증가하면 할수록 처리율은 증가하여 Es/No가 7.23dB인 경우에는 약 90%의 처리율을 보여주고 있다. 또한, 재전송 횟수의 제한에 따라서 낮은 Es/No에서 처리율이 변화하는 것을 알 수 있다. 재전송 횟수가 증가할수록 처리율은 증가한다. 이와 더불어 낮은 Es/No의 경우 컨벌루션날 코드(Convolutionalcodes)에 비하여 터보 코드(turbo codes)가 더 높은 처리율을 보였다. 이는 앞서 조건 8에 해당되는 결과로 우리가 현재 사용하고 있는 컨벌루션날 코드(Convolutional codes)는 넌시스티메틱 코드(Non systematic code)이며, 터보 코드(turbo codes)는 시스티메틱 코드(Systematic code)이다. 따라서 낮은 Es/No의 경우 터보 코드(turbo codes) 쪽이 컨벌루션날 코드(convolutional codes)에 비하여 더 높은 처리율을 보여주고 있다. 즉, 높은 Es/No인 경우에도 터보 코드(turbo codes) 쪽이 컨벌루션날 코드(convolutional codes)에 비하여 더 높은 처리율을 보여주고 있으며, 이것도 터보 코드(turbo code)가 구조적인 코드(Systematic code)이기 때문에 발생되는 이득이다.