Automatic Rate Adaptation Aditya Gudipati & Sachin Katti Stanford University 1
Wireless channel varies rapidly To maximize throughput, we have to estimate channel and adjust bit rate continuously. Motivation 10 s Source: VJB’09 2
Passive Adaptation Infer channel condition from packet loss rate Current Approach P1P1 P2P2 P3P3 3
Passive Adaptation Infer channel from packet loss rate Coarse estimate ; wasted transmissions Passive Adaptation P1P1 P2P2 P3P3 P1P1 ACK 1 4
Active Adaptation P1P1 P2P2 P3P3 P1P1 ACK 1 + SNR 1 NACK 2 + SNR 2 NACK 3 + SNR 3 SNR 1 SNR 2 SNR 3 5 Passive Adaptation Infer channel from packet loss rate Coarse estimate ; wasted transmissions Active Adaptation Receiver feedback on channel conditions Higher overhead; inaccurate for mobile wireless channels
Passive Adaptation Infer channel condition from packet loss rate Coarse estimate ; wasted transmissions Active Adaptation Receiver gives feedback on channel conditions Higher control overhead; channel coherence time is small. Current Approach P1P1 P2P2 P3P3 P1P1 ACK 1 + SNR 1 NACK 2 + SNR 2 NACK 3 + SNR 3 SNR 1 SNR 2 SNR 3 6
Passive Adaptation Infer channel condition from packet loss rate Inefficient and not accurate Current Approach 7
Passive Adaptation Infer channel condition from packet loss rate Inefficient and not accurate Active Adaptation Continuous probing to estimate channel conditions Costly in terms of power and bandwidth Inaccurate due to Interference Current Approach 8
Can we achieve the best rate without doing any estimation or requiring channel feedback? 9
Life of a Packet Data Channel Code Coded bits Modulator Coded Symbols Channel Demodulator Decoder for Channel Code Decoded bits Received Symbols Demodulated bits 10
Passive Adaptation Infer channel condition from packet loss rate Inefficient and not accurate Active Adaptation Continuous probing to estimate channel conditions Costly in terms of power and bandwidth Current Approach 11
Choosing the transmitted constellation Modulation AWGN Channel 12
Redundancy to correct bit errors ‘b’ data bits mapped to ‘c’ coded bits (c>b) then code rate = (b/c) Ideally this code can correct (c-b)/2 bit errors Typical convolutional code rates : 1/3, 1/2, 2/3 Higher code rate implies Smaller redundancy Lesser resilience to errors Channel Coding 13
Map channel coded bits to constellation points Modulation Wireless Channel 14 a3a-5a-a [ a 2 + (3a) 2 + (5a) 2 ]/3 =P -3a5a a3a-5a-a-3a5a
Map channel coded bits to constellation points Modulation 15 -b (0,0) -a (0,1) a=√(P/5) ; b=3√(P/5) [ (-b) 2 + (-a) 2 + a 2 +b 2 ]/4 =P a (1,1) b (1,0)
Attenuation and additive noise from channel To demodulate, map to closest constellation point Demodulation Wireless Channel 16 -b (0,0) -a (0,1) a=√(P/5) ; b=3√(P/5) [ (-b) 2 + (-a) 2 + a 2 +b 2 ]/4 =P ab -b -a N N a (1,1) b (1,0)
4-PAM to BPSK reduces errors for the same noise Sparser Constellation Lesser Bit Errors Wireless Channel 17 a -a a=√P [ (-a) 2 + a 2 ]/2 =P a -a Minimum Distance between constellation points determines error rate N
Map channel coded bits to constellation points Modulation AWGN Channel 18 ab -b-a a=√(P/5) ; b=2√(P/5) [ (-b) 2 + (-a) 2 + a 2 +b 2 ]/4 =P
Map channel coded bits to constellation points Modulation AWGN Channel 19
Map channel coded bits to constellation points Modulation AWGN Channel Minimum Distance between constellation points determines error rate 20
Throughput α Coding rate α Constellation density Estimate highest coding rate and densest constellation that can be supported. Rate Adaptation 21
Automatic Rate Adaptation (ARA): Uses fixed code rate Automatically adjusts minimum distance of the constellation without channel state feedback Achieves throughput almost as good as omniscient scheme with perfect advance channel knowledge This Talk … 22 Can we achieve the best rate without doing any estimation or requiring channel feedback?
Take 2 BPSK coded symbols Keep sending random linear combinations of coded symbols An Example 1 1 -c-d (B 1 = -1 B 2 = -1) B1B1 B2B2 c = 0.89 ; d = 0.45 c 2 + d 2 =1 P1P1 P2P2 -c+d (B 1 = -1 B 2 = 1) c-d (B 1 = 1 B 2 = -1) c+d (B 1 = 1 B 2 = 1) -c-d (B 1 = -1 B 2 = -1) -c+d (B 1 = 1 B 2 = -1) c-d (B 1 = -1 B 2 = 1) c+d (B 1 = 1 B 2 = 1) 2(c-d) 23 2d P 1 : cB 1 + dB 2 P 2 : dB 1 + cB 2
Take 2 BPSK coded symbols Keep sending random linear combinations of coded symbols An Example 1 1 B1B1 B2B2 P1P1 P2P2 (-c-d, -c-d) (B 1 = -1, B 2 = -1) (-c+d, c-d) (B 1 = -1, B 2 = 1) (c-d, -c+d) (B 1 = 1, B 2 = -1) (c+d, c+d) (B 1 = 1, B 2 = 1) √2(2 (c-d)) Minimum Distance Transformer 24 c = 0.89 ; d = 0.45 c 2 + d 2 =1 P 1 : cB 1 + dB 2 P 2 : dB 1 + cB 2
Formally, 25 c d d c B1B1 B2B2 = P1P1 P2P2 P3P3 ef
An Example 26 c 11 c 21 c 12 c 22 B1B1 B2B2 = P1P1 P2P2 ……… c M1 c M2 PMPM 2 dimensional point mapped to M dimensional space Minimum distance α √M
An Example 27 B1B1 B2B2 = P1P1 P2P2 … PMPM G 2 dimensional point mapped to M dimensional space Minimum distance α √M
From Bits to Packets 28 B 11 B 21 = P 11 P 21 P M1 B 12 B 22 B 1n B 2n … …P 12 P 22 P M2 P 1n P 2n P Mn … … … c 11 c 21 c 12 c 22 …… c M1 c M2 ………… M depends on channel Achieved Rate = (2/M) bits per transmitted symbol 1 st transmitted packet M th transmitted packet 1 st coded symbol packet 2 nd coded symbol packet
Our Approach 29 B 11 B 21 = Tx 11 Tx 21 Tx M1 B 12 B 22 B 1n B 2n … … Tx 12 Tx 22 Tx M2 Tx 1n Tx 2n Tx Mn … … … B K1 B K2 B Kn … ………… ………… c 11 c 21 c 12 c 22 …… c M1 c M2 c 1n c 2n … … c Mn … …… K dimensional point mapped to M dimensional space M depends on channel Achieved Rate = (K/M) bits per transmission
Our Approach 30 B 11 B 21 = Tx 11 Tx 21 Tx M1 B 12 B 22 B 1n B 2n … … Tx 12 Tx 22 Tx M2 Tx 1n Tx 2n Tx Mn … … … B K1 B K2 B Kn … ………… ………… K dimensional point mapped to M dimensional space M depends on channel Achieved Rate = (K/M) bits per transmission G
Our Approach 31 B 11 B 21 = B 12 B 22 B 1n B 2n … … 2 dimensional point mapped to M dimensional space M depends on channel Achieved Rate = (2/M) bits per transmitted symbol G P 11 P 21 P M1 P 12 P 22 P M2 P 1n P 2n P Mn … … … ………… 1 st transmitted packet M th transmitted packet
How does the receiver decode? 32 B1B1 B2B2 P1P1 P2P2 PMPM … Transmitter Receiver Channel P 1 +n 1 P 2 +n 2 P M +n M … B1B1 B2B2
How does the receiver decode? 33 B 11 B 21 Tx 11 Tx 21 Tx M1 … B 11 B 21 = Tx 11 Tx 21 Tx M1 B 12 B 22 B 1n B 2n … …Tx 12 Tx 22 Tx M2 Tx 1n Tx 2n Tx Mn … … … ………… G
How does the receiver decode? 34 y1y1 y2y2 yMyM … P1P1 P2P2 PMPM … = n1n1 n2n2 nMnM … +
How does the receiver decode? 35 = n1n1 n2n2 nMnM … + B1B1 B2B2 G y1y1 y2y2 yMyM … = P 1 +n 1 P 2 +n 2 P M +n M …
Receiver 36 = Rx 11 Rx 21 Rx M1 Rx 12 Rx 22 Rx M2 Rx 1n Rx 2n Rx Mn … … … Tx ij : j th symbol in the i th transmitted packet Rx ij : j th symbol in the i th received packet ………… n 11 n 21 n M1 n 12 n 22 n M2 n 1n n 2n n Mn … … … ………… Tx 11 Tx 21 Tx M1 Tx 12 Tx 22 Tx M2 Tx 1n Tx 2n Tx Mn … … … ………… +
Receiver Solves each column separately 37 = Rx 1i Rx 2i Rx Mi … n 1i n 2i n Mi … Tx 11 Tx 21 Tx M1 … +
Receiver Solves each column separately 38 = Rx 1i Rx 2i Rx Mi … n 1i n 2i n Mi … + B 1i B 2i G B Ki …
How does receiver decode Receiver gets set of random linear combinations of coded symbols : y = Gx +n x є K- dimensional space ( each symbol picked from a different packet ) y є M - dimensional space ( each entry being a different transmission ) Find possible values of ‘x’ given ‘y’ and known G Sphere Decoding – Outputs probability of each symbol in x Channel decoder taking probabilities as inputs 39
How does receiver decode Receiver : y = Gx +n x = [B 1 B 2 ] T є 2- dimensional space ( the coded symbols we wished to transmit) y = [y 1 y 2 … y M ] T є M - dimensional space ( each entry being a different received symbol) Find possible values of ‘x’ given ‘y’ and known G Sphere Decoding – Outputs probability of each bit in x Probabilities fed into channel decoder 40
Sphere Decoding R Possible values of x (in K-dimensional space) Possible values of Gx (in M-dimensional space) Map randomly via G Ref:KVH’05 41
How is a packet generated? Data Channel Code Coded Data bits Modulator Coded Data Symbols Channel Demodulator Decoder for Channel Code Decoded bits Received Symbols Demodulated bits 42
Block Diagram Data Channel Code Coded bits Modulator Coded symbols Minimum Distance Transformer Channel Sphere Decoder Probabilities of coded bits Decoder for Channel Code 43 Decoded bits
Characteristics Existing coding and modulation techniques need not be changed. G is fixed and known at the transmitter and receiver. Keep transmitting until minimum distance sufficient to decode and receiver sends ACK Achieved Rate = (2/M) bits per transmitted symbol 44
MATLAB Evaluation ARA uses – QPSK and fixed 2/3 convolutional code – 8 packets linearly combined Compared with omniscient scheme – Knows exact channel SNR in advance – Chooses best possible modulation and code rate among: (QPSK, 8-PSK, 16-QAM, 64-QAM) and (1/4,1/3,1/2,2/3) rates 45
Evaluation 46 ARA’s throughput is almost as good as omniscient scheme without advance channel SNR knowledge 64 - QAM 16 - QAM 8 - PSK QPSK 2/3 1/2 1/3 1/4
Evaluation 47 ARA achieves the best possible throughput without knowing channel SNR in advance
Decision Correctness 48 LLR = ln (prob that bit decision is correct) (prob that bit decision is incorrect) = (prob (bit=0)) (prob (bit=1)) ln if actual bit =0 (prob (bit=1)) (prob (bit=0)) ln if actual bit =1
Evaluation 49
Conclusion ARA adapts the minimum distance without estimation or channel feedback Automatically adapts rate and simplifies PHY design Future Work – Reducing complexity of decoder – Extend ARA to work in the presence of collisions – Prototype implementation on USRP2 50