Wireless Communication Systems @CS.NCTU Lecture 8: Successive Interference Cancellation Instructer: Kate Ching-Ju Lin ( 林靖茹 ) 1
Agenda • Successive Interference Cancellation • ZigZag decoding 2
SRN and SNR dB SNR = P signal • P noise • Unit of power: watt Logarithmic unit of power: decibel ( dBm ) Example: P dB = 10 log 10 P signal = -70 dBm noise = -90 dBm � P signal � • SNR dB = 10 log 10 SNR = -70 - (-90) = 20 dB P noise = 10 log 10 ( P signal ) − 10 log 10 ( P noise ) = P signal,dBm − P noise,dBm 3
Scenario collision!! y = h 1 x 1 + h 2 x 2 + n Data 2 noise interference Data 1 P 1 SINR = P 2 + N 0 Reliably decode when the rate is no larger than capacity P 1 R ≤ C = log(1 + ) u1 u2 P 2 + N 0 4
Scenario collision!! y = h 1 x 1 + h 2 x 2 + n Data 2 noise interference Data 1 P 1 SINR = P 2 + N 0 Example: signal = -70 dBm Interference = -75 dBm noise = -90 dBm u1 u2 SNR ~= -70 - (-75) = 5 dB Can still decode if selecting a very low bit-rate 5
SIC Decoding • Successive Interference Cancellation (SIC) 1. Decode one user first in the presence of interference x’ 2 = y/h 2 = x 2 + h 1 x 1 /h 2 + n/h 2 2. Re-encode the recovered data to remove the noise (demodulate x’ 2 and re-modulate it) 3. Subtract the re-encoded data from the received signal y’ = y – h 2 x 2 = h 1 x 1 +n 4. Decode the second user y = h 1 x 1 + h 2 x 2 + n x’ 1 = y’/h 1 Data 2 Data 1 6
Capacity Region without SIC P 1 • y 1 = h 1 x 1 + (h 2 x 2 + n) R 1 ≤ log(1 + ) P 2 + N 0 P 2 • y 2 = h 2 x 2 + (h 1 x 1 + n) R 2 ≤ log(1 + ) P 1 + N 0 Maximal sum-rate: point C R 2 A B P 2 C log(1 + ) P 1 + N 0 R 1 P 1 log(1 + ) P 2 + N 0 7
Capacity Region of SIC • Decoding order: user 1 à user 2 ⎻ If we decode u1 in the presence of interfering u2, and then decode u2 ⎻ y 1 = h 1 x 1 + (h 2 x 2 + n) R 2 log(1 + P 2 ⎻ y 2 = h 2 x 2 + n A ) N 0 à Get single-user rate B C à Maximal sum-rate: point A R 1 P 1 log(1 + ) P 2 + N 0 8
Capacity Region of SIC • Decoding order: user 2 à user 1 ⎻ If we decode u2 in the presence of interfering u1, and then decode u1 ⎻ y 2 = h 2 x 2 + (h 1 x 1 + n) R 2 ⎻ y 1 = h 1 x 1 + n A à Get single-user rate B P 2 C log(1 + ) P 1 + N 0 à Maximal sum-rate: point B R 1 log(1 + P 1 ) N 0 9
Capacity Region of SIC • To ensure reliable decoding, the rates (R1, R2) need do satisfy three constraints: R 1 + R 2 ≤ log(1 + P 1 + P 2 ) N 0 R 1 ≤ log(1 + P 1 ) N 0 R 2 log(1 + P 2 R 2 ≤ log(1 + P 2 A ) ) N 0 N 0 B P 2 C log(1 + ) P 1 + N 0 R 1 ) log(1 + P 1 P 1 ) log(1 + P 2 + N 0 N 0 10
Capacity Region of SIC • User 1 achieves its single-user bound (point B) while user 2 can get a non-zero rate 2 = log(1 + P 1 + P 2 ) − log(1 + P 1 P 2 ⎻ R ∗ ) = log(1 + ) P 1 + N 0 N 0 N 0 ⎻ Namely, decode u2 in the presence of interfering u1 R 2 • Segment AB contains all the A optimal sum-rate, and can B be achieved via time-sharing C ⎻ Pareto optimal R 1 11
Decoding Order • If the goal is to maximize the sum-rate, any point on AB is equally fine • If we want to ensure max-min fairness such that the weak user get its best possible rate ⎻ Decode the stronger user first • To minimize the total transmit power or increase the capacity in an interference- limited system ⎻ Decode the stronger user first With SIC, the near-far problem (SNR2 < SNR1) becomes an advantage à a far user now becomes decodable if SNR2 << SNR1 12
SIC for Multiple Users y = h 1 x 1 + h 2 x 2 + … + h N x N + n • Repeat the following procedure iteratively 1. Decode any user x i = y/h i 2. Re-encode x i (demodulate and re-modulate) 3. Subtract the re-encoded signal from y • The user decoded earlier is interfered by more users 13
14
Use SIC in MIMO Decoding • Standard Zero Forcing (ZF) decoding ⎻ SNR reduction due to channel correlation SNR ZF = SNR orig * sin 2 ( θ ) ⎻ In 2x2 system, both streams suffer from SNR reduction if they are both decoded using ZF • Combine ZF with SIC ⎻ 2x2 example ⎻ Decode x 2 using ZF ⎻ Decode x 1 using SIC 15
Decode x 2 Using ZF orthogonal vectors ✓ y 1 ◆ ✓ h 11 ◆ ✓ h 12 ◆ ✓ n 1 ◆ * h 21 x 1 + x 2 + = y 2 h 21 h 22 n 2 * - h 11 + ) y 1 h 21 − y 2 h 11 = ( h 12 h 21 − h 22 h 11 ) x 2 + n 0 y 1 h 21 − y 2 h 11 x 0 2 = h 12 h 21 − h 22 h 11 n 0 = x 2 + h 12 h 21 − h 22 h 11 n 0 = x 2 + ~ h 2 · ~ h ? 1 8
Decode x 1 Using SIC ✓ y 1 ◆ ✓ h 11 ◆ ✓ h 12 ◆ ✓ n 1 ◆ x 1 + x 2 + = y 2 h 21 h 22 n 2 • Re-encode x 2 • Removing x 2 and we get y 1 = h 11 x 1 + n 1 y 2 = h 21 x 1 + n 2 • Use traditional SISO decoder x 1 = y 1 or x 1 = y 2 h 11 h 21 8
ZF-SIC Decoding • Combine ZF with SIC to improve SNR ⎻ Decode one stream and subtract it from the received signal ⎻ Repeat until all the streams are recovered ⎻ Example: after decoding x 2 , we have y 1 = h 1 x 1 +n 1 à decode x 1 using standard SISO decoder • Why it achieves a higher SNR? ⎻ The streams recovered after SIC can be projected to a smaller subspace à lower SNR reduction ⎻ In the 2x2 example, x 1 can be decoded as usual without ZF à no SNR reduction (though x2 still experience SNR loss) 18
Wireless Communication Systems @CS.NCTU Lecture 8: Successive Interference Cancellation ZigZag Decoding (SIGCOMM’08) Lecturer: Kate Ching-Ju Lin ( 林靖茹 ) 19
Hidden Terminal • Two nodes hidden to each other transmit at the same time, leading to collision 20
ZigZag Exploits 802.11’s behavior • Retransmissions à Same packets collide again • Senders use random jitters à Collisions start with interference-free bits Interference-free Bits P a P a P b P b ∆ 1 ∆ 2 21
How does ZigZag Work? P a P a P b P b ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other 22
How does ZigZag Work? ✔ 1 1 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 23
How does ZigZag Work? ✔ 1 1 2 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 24
How does ZigZag Work? ✔ 1 3 2 2 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 25
How does ZigZag Work? ✔ 3 1 3 2 4 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 26
How does ZigZag Work? ✔ 1 3 5 4 2 4 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 27
How does ZigZag Work? ✔ 5 1 3 5 6 2 4 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 28
How does ZigZag Work? ✔ 1 3 5 7 6 6 2 4 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one collision and has interference in the other • Decode the interference-free chunk and subtract it from the other collision 29
How does ZigZag Work? ✔ 1 3 5 7 7 6 2 4 8 ∆ 1 ∆ 2 ∆ 1 ≠∆ 2 • Find a chunk that is interference free in one • Deliver 2 packets in 2 timeslots collision and has interference in the other • As efficient as if the packets did not • Decode the interference-free chunk and collide subtract it from the other collision 30
Practical Issues • How does the receiver know it is a collision and where they start? • What if the channel has changes in the second collision? • How to deal with error propagation? 31
Detecting Collisions correlate time P a P b ∆ 1 • Preamble correlation ⎻ Detect collision and the offset value ∆ ⎻ Work despite interference because correlation with an independent signal (random data samples) is zero 32
Signal Subtraction • Channel’s attenuation or phase may change between collisions • Can’t simply subtract a chunk across collisions • Subtract as conventional SIC ⎻ Decode chunk in one collision into bits ⎻ Demodulate and re-modulate bits to get channel- free signal ⎻ Apply the channel learned from the other collision to encode the signal ⎻ Subtract it! 33
What if decoding errors happen? ✘ ✔ ✘ 1 1 3 ✘ 2 2 ∆ 1 ∆ 2 ✘ ✘ • Error can propagate across chunks • Cannot completely avoid the problem, but can reduce this probability via leveraging time diversity ⎻ Get two independent decodings: forward and backward ∆ 2 ∆ 1 2 2 1 3 1 34
Recommend
More recommend