EVM reporting notes
Overview
EVM (error vector magnitude) is a measure of how far from the ideal each pilot carrier is.
- For HT20, there's 56 carriers and 52 usable, leaving 4 pilot carriers;
- For HT40, there's 114 carriers and 108 usable, leaving 6 carriers.
There's one set of EVM pilots for each stream.
The hardware populates EVM for each received HT rate frame.
Details
The unit of the EVM data is a signed number of dB above noise floor. The order in which the EVM fields are populated apparently not only depends on the number of streams, but also on whether HT40 was used for the packet or not.
EVM pilot format
Here's a list of the EVM word to pilot mapping (LSB to MSB, stream:pilot), HT40 adds pilots 4, 5
For single stream rates: EVM0 = 0:0, 0:1, 0:2, 0:3 EVM1 = 0:4, 0:5
For dual stream rates: EVM0 = 0:0, 1:0, 0:1, 1:1 EVM1 = 0:2, 1:2, 0:3, 1:3 EVM2 = 0:4, 1:4, 0:5, 1:5
For triple stream rates (AR9003 only): EVM0 = 0:0, 1:0, 2:0, 0:1 EVM1 = 1:1, 2:1, 0:2, 1:2 EVM2 = 2:2, 0:3, 1:3, 2:3 EVM3 = 0:4, 1:4, 2:4, 0:5 EVM4 = 1:5, 2:5