AccuRate: Constellation Aware Rate Estimation in Wireless Networks Souvik Sen, Naveen Santhapuri, Romit Roy Choudhury, Srihari Nelakuditi
Bit-rate in Wireless Networks Wireless link throughput depends on transmission bit-rate 6 Mbps 24 Mbps Choosing the optimal bit-rate is an important problem
Bit-rate in Wireless Networks Optimal bit-rate selection is challenging because the wireless channel varies over: Space Time 6 Mbps Channel Time 24 Mbps Channel Time
Current Wireless Rate Selection Frame Based Remember History SampleRate, RRAA SNR Based Data RBAR, CHARM Data SNR ACK ✦ Recently PHY-based: ✦ SoftRate [SIGCOMM ʼ09] • Uses a BER heuristic to estimate bit rate BER accurately identifies when to increase/decrease rate However, may not be able to jump to optimal rate
Ideally Tx wants optimal rate for next packet
Function of optimal rate of the previous packet Ideally Tx wants optimal rate for next packet Function of optimal rate of the previous packet
Function of optimal rate of the previous packet Ideally Tx wants optimal rate for next packet Function of optimal rate of the previous packet
Ideally Tx wants optimal rate for next packet Function of optimal rate of the previous packet In other words, Given a transmission at rate R, what would have been the max rate R*, at which that transmission would have been successful
Ideally Tx wants optimal rate for next packet Function of optimal rate of the previous packet In other words, Given a transmission at rate R, what would have been the max rate R*, at which that transmission would have been successful We propose AccuRate
Background: Symbols, Modulation, Bit-rate
Physical Layer Symbols = 01111001 .... Data 11 01 00 10 Tx 4QAM Symbol
Physical Layer Symbols = 01111001 .... Data 2 bits together 11 01 00 10 Tx 4QAM Symbol
Physical Layer Symbols = 01111001 .... Data 2 bits together 11 01 00 10 Tx 4QAM Symbol
Symbols to Modulation = 01111001 .... Data 11 01 00 10 Tx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol 2 bits together Data 2 bits together 11 01 00 10 Tx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol Rx 4QAM Symbol Data 2 bits together 11 01 11 01 11 11 Channel 01 01 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol Rx 4QAM Symbol Data 2 bits together 11 01 11 01 Dispe rsion 11 11 Channel 01 01 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol Rx 4QAM Symbol Data 2 bits together 11 01 11 01 Dispe rsion 11 11 Channel 01 01 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol Rx 4QAM Symbol Data 2 bits together 11 01 11 01 Dispe rsion Channel 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol
Symbols to Modulation = 01111001 .... Tx 4QAM Symbol Rx 4QAM Symbol Disper sion = 01111001 .... Data 2 bits together Channel 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol
Different Modulations in 802.11 01 11 01 Dispe rsion = 01111001 .... Data 2 bits together Channel 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol 011 Dispersion 1 = 01111001 .... Data Channel 4 bits together Tx 16QAM Symbol Rx 16QAM Symbol
Different Modulations in 802.11 01 11 01 Dispe rsion = 01111001 .... Data 2 bits together Channel 00 10 00 10 Tx 4QAM Symbol Rx 4QAM Symbol 01111 Dispersion = 01111001 .... Data Channel 6 bits together Tx 64QAM Symbol Rx 64QAM Symbol
Why not always transmit many bits per symbol? e.g., 64QAM or 54Mbps
Weak Channel Induces Errors = 01111001 .... Data Tx 16QAM Symbol
Weak Channel Induces Errors = 01111001 .... Data Weak Channel Tx 16QAM Symbol
Weak Channel Induces Errors High Dispersion = 01111001 .... Data Weak Channel Tx 16QAM Symbol
Weak Channel Induces Errors High Dispersion = 01111001 .... Data Weak Channel Tx 16QAM Symbol Wrongly demodulated symbol
In General ... Weak Channel Moderate Channel 01 0111 Strong Channel
In General ... 01 0111 Weak Channel Moderate Channel Strong Channel 6 Mbps Moderate Channel 01 24 Mbps 0111 Strong Channel 36 Mbps
In General ... Smaller dispersion permits higher rate 01 0111 Weak Channel 6 Mbps Moderate Channel 01 24 Mbps 0111 Strong Channel 36 Mbps Smaller dispersion permits higher rate
AccuRate Design and Implementation
AccuRate Design and Implementation Hypothesis: Symbol dispersion is independent of modulation
Dispersion Independent of Modulation? 11 01 11 01 00 10 00 10 Channel Tx 4QAM Rx QPSK Tx 16QAM Rx16QAM
Dispersion Independent of Modulation? Testbed 1 0.8 0.6 Fraction of symbols 0.4 BPSK QPSK 16QAM 64QAM 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 0.2 Symbol dispersion magnitude
Dispersion Independent of Modulation? Testbed 1 0.8 0.6 Fraction of symbols 0.4 BPSK QPSK 16QAM 64QAM 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 0.2 Symbol dispersion magnitude McKinley et. al., 2004,“EVM calculation for broadband modulated signals”
Symbol dispersion is independent of modulation Hypothesis: Symbol dispersion is independent of modulation Selection of optimal modulation
Data
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
BPSK Data 4QAM 16QAM
We call it Virtual Channel Replay BPSK Data 4QAM 16QAM We call it Virtual Channel Replay
Channel Replay Vector V = {d1, d2, ...., dn} ✦ AccuRate records dispersion for every symbol in a packet ✦ Creates a vector: Channel Replay Vector (V) d1 V = {d1, d2, ...., dn}
✦ When packet succeeds ✦ When packet fails Channel Replay Vector ✦ AccuRate records dispersion for every symbol in a packet ✦ Creates a vector: Channel Replay Vector (V) d1 V = {d1, d2, ...., dn} ✦ When packet succeeds ✦ All dispersions are known ✦ When packet fails ✦ Approximates V from (known) preamble/postamble
Receiver Channel Demodulator Packet
Channel Replay CRC Check BPSK Demodulator Receiver Demodulator Packet
Channel Replay CRC Check BPSK Demodulator Receiver Demodulator Packet
Channel Replay CRC Check BPSK Demodulator Channel Replay CRC Check Receiver Channel Demodulator Channel Replay CRC Check Packet BPSK Demodulator Channel Replay CRC Check 4QAM Demodulator
Channel Replay CRC Check BPSK Demodulator Channel Replay CRC Check Receiver Channel Demodulator Channel Replay CRC Check Packet BPSK Demodulator Channel Replay CRC Check 4QAM Demodulator
Channel Replay CRC Check BPSK Demodulator Channel Replay CRC Check Receiver Channel Demodulator Channel Replay CRC Check Packet BPSK Demodulator Channel Replay CRC Check 4QAM Demodulator Channel Replay CRC Check 16QAM Demodulator
Channel Replay CRC Check BPSK Demodulator Channel Replay CRC Check Receiver Channel Demodulator Channel Replay CRC Check Packet BPSK Demodulator Channel Replay CRC Check 4QAM Demodulator Channel Replay CRC Check 16QAM Demodulator
Best Rate Channel Replay CRC Check BPSK Demodulator Channel Replay CRC Receiver Channel Demodulator Channel Replay CRC Check Packet BPSK Demodulator Best Rate Channel Replay CRC Check 4QAM Demodulator Channel Replay CRC Check 16QAM Demodulator
Bit-rate is a function of both modulation and coding
<modulation, coding> for a received packet? Can we find the optimal <modulation, coding> for a received packet?
CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Demodulator Receiver Channel Demodulator Decoder CRC Check Data Channel Replay BPSK 1/2 Demodulator Decoder CRC Check Channel Replay BPSK 3/4 Demodulator Decoder CRC Check Channel Replay QAM4 1/2 Demodulator Decoder CRC Check Channel Replay QAM4 3/4 Demodulator Decoder CRC Check Channel Replay QAM64 3/4 Demodulator Decoder
CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Demodulator Receiver Channel Demodulator Decoder CRC Data Channel Replay BPSK 1/2 Demodulator Decoder 6 Mbps Check CRC Check Channel Replay BPSK 3/4 Demodulator Decoder CRC Check Channel Replay QAM4 1/2 Demodulator Decoder CRC Check Channel Replay QAM4 3/4 Demodulator Decoder CRC Check Channel Replay QAM64 3/4 Demodulator Decoder
CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Demodulator Receiver Channel Demodulator Decoder CRC Data Channel Replay BPSK 1/2 Demodulator Decoder 6 Mbps Check CRC Channel Replay BPSK 3/4 Demodulator Decoder 9 Mbps Check CRC Check Channel Replay QAM4 1/2 Demodulator Decoder CRC Check Channel Replay QAM4 3/4 Demodulator Decoder CRC Check Channel Replay QAM64 3/4 Demodulator Decoder
CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Demodulator Receiver Channel Demodulator Decoder CRC Data Channel Replay BPSK 1/2 Demodulator Decoder 6 Mbps Check CRC Channel Replay BPSK 3/4 Demodulator Decoder 9 Mbps Check CRC Channel Replay QAM4 1/2 12 Mbps Demodulator Decoder Check CRC Check Channel Replay QAM4 3/4 Demodulator Decoder CRC Check Channel Replay QAM64 3/4 Demodulator Decoder
CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Demodulator Receiver Channel Demodulator Decoder CRC Data Channel Replay BPSK 1/2 Demodulator Decoder 6 Mbps Check CRC Channel Replay BPSK 3/4 Demodulator Decoder 9 Mbps Check CRC Channel Replay QAM4 1/2 12 Mbps Demodulator Decoder Check CRC 18 Mbps Channel Replay QAM4 3/4 Demodulator Decoder Check CRC 54 Mbps Channel Replay QAM64 3/4 Demodulator Decoder Check
Best Rate CRC Check CRC Check CRC Check CRC Check CRC Check BPSK 1/2 Receiver Channel Demodulator Decoder CRC Data Channel Replay BPSK 1/2 Demodulator Decoder 6 Mbps Check CRC Channel Replay BPSK 3/4 Demodulator Decoder 9 Mbps Check Best Rate CRC Channel Replay QAM4 1/2 12 Mbps Demodulator Decoder Check CRC 18 Mbps Channel Replay QAM4 3/4 Demodulator Decoder Check CRC 54 Mbps Channel Replay QAM64 3/4 Demodulator Decoder Check
Performance Evaluation ✦ Used 802.11 like Tx and Rx design on USRP/GnuRadio ✦ Modulation: BPSK, QPSK, 16QAM, 64QAM Coding: Convolution coding with puncturing with rate 1/2, 3/4 Compare with Softrate, SNR-based ✦ Testbed ✦ 10 traces at walking speed Trace based evaluation Channel Simulator ✦ Simulation ✦ Characterize AccuRateʼs performance under high mobility Raleigh fading channel simulator ported to GnuRadio
What is the True Optimal Rate? ✦ Testbed ✦ Using train of packets (Virtual Packet) Each Virtual Packet consists of data packets at all bit-rates Similar method as Softrate Virtual Packet 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 54Mbps
What is the True Optimal Rate? ✦ Testbed ✦ Using train of packets (Virtual Packet) Each Virtual Packet consists of data packets at all bit-rates Similar method as Softrate Virtual Packet 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 54Mbps
What is the True Optimal Rate? ✦ Testbed ✦ Using train of packets (Virtual Packet) Each Virtual Packet consists of data packets at all bit-rates Similar method as Softrate Virtual Packet 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 54Mbps Optimal Optimal-1 Optimal+1
Can we estimate the optimal rate? Simulation Testbed 1 1 Simulation Testbed Fraction of Packets 0.8 Fraction of Packets 0.8 0.6 0.6 0.4 0.4 AccuRate correct-packets AccuRate using preamble AccuRate pre+postamble AccuRate correct-packets AccuRate using preamble AccuRate pre+postamble 0.2 0.2 -1 -1 Optimal 1 Optimal 1 (AccuRate Rate) minus (Optimal Rate) (AccuRate Rate) minus (Optimum Rate) For correctly received packets, 100% in Simulation, 95% in Testbed
AccuRate needs to detect Interference
Rate selection needs to be independent of interference AccuRate needs to detect Interference b Rate selection needs to be independent of interference
How to Detect Interference? ✦ Interference causes substantial symbol dispersion Interference
How to Detect Interference? ✦ Interference starts first: Preamble with high dispersion Data Interference ✦ Interference starts second: Postamble with high dispersion Data Interference
How to Detect Interference? ✦ Interference starts first: Preamble with high dispersion Data Interference ✦ Interference starts second: Postamble with high dispersion Data Interference Compare preamble with postamble dispersion
Interference Detection Accuracy Testbed Testbed 1.2 AccuRate Softrate Fraction of Lost Packets 1 0.8 0.6 0.4 0.2 BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 QAM16 1/2 QAM16 3/4 Bit Rate
Interference Detection Accuracy Testbed Testbed 1.2 AccuRate Softrate Fraction of Lost Packets 1 0.8 0.6 0.4 0.2 BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 QAM16 1/2 QAM16 3/4 Bit Rate Detection Accuracy is better at higher rates (95%)
Estimation Performance with Interference Testbed Testbed-AccuRate 1.2 Overselect Accurate Underselect Over select 1 Fraction of Lost Packets 0.8 0.6 Correct 0.4 0.2 Under select BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 Bit Rate QAM16 1/2 QAM16 3/4
Estimation Performance with Interference Testbed Testbed-AccuRate 1.2 Overselect Accurate Underselect Over select 1 Fraction of Lost Packets 0.8 0.6 Correct 0.4 0.2 Under select BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 Bit Rate QAM16 1/2 QAM16 3/4 91% accuracy in Optimal rate selection
AccuRate estimates the optimal rate for an already received packet What is the performance if the next transmission uses this rate?
Throughput at Walking Speeds Testbed AccuRate Softrate Testbed Normalized Throughput SNR based 1 0.8 0.6 0.4 0.2 0 1 2 3 4 5 6 7 8 9 10 11 Walking Trace Number
Throughput at Walking Speeds Testbed AccuRate Softrate Testbed Normalized Throughput SNR based 1 0.8 0.6 0.4 0.2 0 1 2 3 4 5 6 7 8 9 10 11 AccuRate achieves 87% of the optimal throughput Walking Trace Number
Throughput under Mobility Simulation 18 16 14 12 10 8 6 4 2 AccuRate Softrate Throughput (Mbps) SNR based 1ms .5ms .2ms Channel Coherence Time .1ms AccuRate performs well even under high mobility
✦ Rate estimation sub-optimal under packet failure Limitations ✦ Hardware Complexity ✦ AccuRate targets optimal rate estimation Does not consider implementation cost ✦ Rate estimation sub-optimal under packet failure ✦ Pre/Post amble based estimation achieves 93% accuracy Improvements possible with midamble ✦ Interfering packet may engulf or be engulfed by data ✦ AccuRate unable to detect such cases
✦ AccuRate uses symbol dispersion to estimate bit-rate Summary ✦ AccuRate uses symbol dispersion to estimate bit-rate ✦ Symbol dispersion is a measure of channel behavior ✦ AccuRate replays this channel on different bit-rates ✦ The max rate that “passes” this replay is declared optimal ✦ The optimal rate is prescribed for subsequent transmissions ✦ USRP testbed results show 87% of optimal throughput ✦ SoftRate capable of choosing very good bit-rates ✦ AccuRate pushes rate estimation towards optimality