Main Content

Recover and Analyze Packets in 802.11 Waveform

This example blindly detects, decodes, and analyzes multiple IEEE 802.11a™, IEEE 802.11n™, IEEE 802.11ac™, and IEEE 802.11ax™ packets in a waveform. The example provides a summary of the detected packets and displays the MAC contents, error vector magnitude (EVM), power, and signaling information for a selected packet.

Introduction

In this example, you detect, decode, and analyze multiple packets within a waveform. This example can decode OFDM non-HT, non-HT duplicate, HT, VHT [1], HE MU, HE SU, and HE ER SU [2] packet formats. The receiver does not know any transmission parameters, except for the channel bandwidth, and retrieves these parameters by decoding the preamble fields of the packet.

  • The spectrum and time domain samples.

  • The signaling field contents.

  • The resource unit and user information for an HE waveform.

  • The constellation of the equalized data symbols.

  • The EVM of the signaling fields.

  • The EVM per data subcarrier averaged over spatial streams and symbols.

  • The EVM per data symbol averaged over spatial streams and subcarriers.

  • The spectral flatness for non-OFDMA packets.

  • The MAC frame contents: A-MPDU deaggregation status, Address1, Address2, Frame Check Sequence (FCS) and Frame Type.

Setup Waveform Recovery Parameters

This example analyzes I/Q data containing non-HT, HT-MF, VHT, and HE packets. TheuseSDRvariable controls the data source for this example:

  • When set tofalse,comm.BasebandFileReaderreads a synthetic waveform stored in a binary file format.

  • When set totrue, an SDR platform captures an off-the-air-waveform from a commercial device.

useSDR =false;

Reception with an SDR Device

This section demonstrates how to capture an off-the-air-waveform using an SDR device. Communications Toolbox supports radio communication with several SDR devices. For a list of supported devices and for an overview of how to install and setup a support package for your device, refer to the documentation of these support packages.

Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio

  • Installation and Setup(Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio)andSupported Hardware(Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio)

  • UsePlutoasdeviceName

Communications Toolbox Support Package for USRP Embedded Series Radio

  • Installation and Setup(Communications Toolbox Support Package for USRP Embedded Series Radio)andHardware Support(Communications Toolbox Support Package for USRP Embedded Series Radio)

  • UseE3xxasdeviceName

Communications Toolbox Support Package for Xilinx Zynq-Based Radio

  • Installation and Setup(Communications Toolbox Support Package for Xilinx Zynq-Based Radio)andHardware Support(Communications Toolbox Support Package for Xilinx Zynq-Based Radio)

  • UseAD936xorFMCOMMS5asdeviceName

% Configure the analysis sourceifuseSDR%#ok<*UNRCH>deviceName ="Pluto";% Device namefrequencyBand =5;% Frequency bandchannelNumber =102;% WLAN channel numbercaptureTime =0.1;% Signal capture duration in secondssr =20000000;% Captured sampling ratechanBW ='CBW20';% Channel bandwidth of all packets within the waveform% Set the center frequency to the corresponding channel number. The% center frequency should be centered on the channel bandwidth.fc = wlanChannelFrequency(channelNumber,frequencyBand); rx = sdrrx(deviceName,'BasebandSampleRate',sr,'CenterFrequency',fc,'OutputDataType','double'); rxWaveform = capture(rx,captureTime,'Seconds'); release(rx);end

To recover 802.11a™ OFDM non-HT beacon frames transmitted over the air from the commercial 802.11 hardware see theOFDM Beacon Receiver Using Software-Defined Radioexample.

Import a Captured Waveform from a File

This section loads I/Q data from an existing binary file usingcomm.BasebandFileReader. The baseband file format includes the sample rate and the number of channels in the captured waveform. Alternatively, you can load the waveform from a MAT file.

% Configure the analysis sourceif~ useSDR BBR = comm.BasebandFileReader ('wlanWaveform.bb');% Create a baseband file reader objectchanBW ='CBW20';% Channel bandwidth of all packets within the waveformbbrInfo = info(BBR); BBR.SamplesPerFrame = bbrInfo.NumSamplesInData;% Number of sample in the waveformrxWaveform = BBR();% Load the I&Q sample from a binary filesr = BBR.SampleRate;% Sampling rate of the input signalrelease(BBR);end

To recover beacon packets from a MAT-file, see theOFDM Beacon Receiver Using Software-Defined Radioexample.

Signal Recovery and Analysis

This section detects, analyzes, and displays a summary of the detected packets. All packets in the waveform must have the specified channel bandwidth. Parse and analyze the packets within a waveform by using theWaveformAnalyzerobject.

analyzer = WaveformAnalyzer; process(analyzer,rxWaveform,chanBW,sr);

Display a summary of the detected packets.

detectionSummary(analyzer);
Summary of the Detected Packets
detSummary=11×9 tableNumber Format PHY Status Power (dBm) CFO (Hz) Offset (samples) MAC Contents RMS EVM (dB) Max EVM (dB) ______ ________ __________ ___________ ________ ________________ ____________ ____________ ____________ 1 "Non-HT" "Success" 12.7 61431 97 "Beacon" -25.824 -17.272 2 "Non-HT" "Success" 13.08 -39757 2577 "RTS" -24.937 -17.737 3 "Non-HT" "Success" 13.01 62250 4017 "CTS" -26.181 -18.982 4 "HE-MU" "Success" 14.98 -39660 5297 "A-MPDU" -25.353 -12.353 5 "Non-HT" "Success" 13.04 -39437 18657 "Block Ack" -25.564 -17.118 6 "Non-HT" "Success" 13.07 -29899 20417 "RTS" -25.082 -16.625 7 "Non-HT" "Success" 13.01 52489 21857 "CTS" -26.118 -18.372 8 "VHT" "Success" 17.43 62290 23137 "A-MPDU" -20.9 -10.955 9 "Non-HT" "Success" 14.99 -38861 28337 "RTS" -27.842 -20.114 10 "Non-HT" "Success" 14.94 42363 29777 "CTS" -27.409 -19.042 11 "HT-MF" "Success" 15.03 22238 31058 "A-MPDU" -26.55 -17.287

Use thepktNumvariable to display the MAC and PHY analysis for a selected packet.

pktNum =4;

Display the MAC information of the selected packet.

macSummary(analyzer,pktNum);
Recovered MPDU Summary of Packet 4 AMPDU/MPDU Number STAID Address1 Address2 AMPDU/MPDU Decode Status MAC Frame Type _________________ _____ ______________ ______________ ________________________ ______________ "AMPDU1_MPDU1" 1 "1342ABC2FF1F" "00123456789B" "Success" "QoS Data" "AMPDU2_MPDU1" 2 "23FFAB1234AC" "00123456789B" "Success" "QoS Data" "AMPDU3_MPDU1" 3 "13EF35781356" "00123456789B" "Success" "QoS Data" "AMPDU4_MPDU1" 4 "159A123AFFFF" "00123456789B" "Success" "QoS Data"

Display the time samples and spectrum of the detected packet.

plotWaveform(analyzer,pktNum)

Figure contains an axes object. The axes object with title Power of time-domain samples (packet 4) contains 9 objects of type line, area. This object represents HE.

Figure contains an axes object. The axes object with title Power spectrum (packet 4) contains an object of type line.

Display the packet field information of the selected packet.

fieldSummary(analyzer,pktNum);
Field Summary of Packet 4 (HE-MU) Field Name Modulation Num Symbols Parity Check/CRC Power (dBm) RMS EVM (dB) Max EVM (dB) __________ __________ ___________ ________________ ___________ ____________ ____________ L-STF BPSK 2 14.59 L-LTF BPSK 2 14.61 L-SIG BPSK 1 Pass 14.96 -27.59 -22.62 RL-SIG BPSK 1 Pass 14.86 -27.14 -19.87 HE-SIG-A BPSK 2 Pass 15.37 -26.14 -19.54 HE-SIG-B BPSK 5 Pass 14.98 -27.56 -20.08 HE-STF BPSK 1 14.95 HE-LTF BPSK 2 15.01 Data 35 14.99 -25.35 -12.35

Display the signaling field information of the selected packet.

signalingSummary(analyzer,pktNum);
Signaling Field Summary of Packet 4 (HE-MU) Property Value Property Value Property Value ________________ _____ ____________________ _____ ______________________ _____ L-SIG Length 467 Bandwidth CBW20 Num HE-LTF Symbols 2 L-SIG Rate 0xB Num HE-SIG-B Symbols 5 LDPC Extra Symbol True UL/DL Indication DL SIGB Compression False STBC False SIGB MCS 0 Guard Interval 3.2 Pre-FEC Padding Factor 1 SIGB DCM False HE-LTF Type 4 PE Disambiguity False BSS Color 0 Doppler False Spatial Reuse 0 TXOP 127

Display the RU information.

ruSummary(analyzer,pktNum);
资源单位(俄文)数据包信息4 (HE-MU)RU Number RU Size Subcarrier Index (Start) Subcarrier Index (End) Num Users Num STS Power (dBm) _________ _______ ________________________ ______________________ _________ _______ ___________ "RU1" 52 -121 -70 1 1 8.98 "RU2" 52 -68 -17 1 1 8.96 "RU3" 52 17 68 1 2 8.97 "RU4" 52 70 121 1 1 8.97

Display the user information.

userSummary(analyzer,pktNum);
User Information of Packet 4 (HE-MU) STAID RU Number MCS Modulation Code Rate DCM Channel Coding Num STS Transmit BeamForming _____ _________ ___ __________ _________ ___ ______________ _______ ____________________ 1 "RU1" 0 "BPSK" "1/2" 0 "LDPC" 1 0 2 "RU2" 2 "QPSK" "3/4" 0 "LDPC" 1 0 3 "RU3" 4 "16QAM" "3/4" 0 "LDPC" 2 0 4 "RU4" 6 "64QAM" "3/4" 0 "LDPC" 1 0

Display EVM per spatial streams for all users.

userEVM(analyzer,pktNum);
挣值管理用户都每包4 (HE-MU)的空间流AID Spatial Stream Index RMS EVM (dB) Max EVM (dB) _____ ____________________ ____________ ____________ 1 1 -26.391 -17.295 2 1 -27.401 -19.682 3 1 -23.564 -12.353 3 2 -23.122 -14.444 4 1 -27.278 -17.793

Plot the constellation for all users.

plotConstellation(analyzer,pktNum);

               

Figure contains an axes object. The axes object with title Equalized data symbols (packet 4) contains 8 objects of type line. These objects represent STAID 1, STAID 2, STAID 3, STAID 4, Ref.

Plot the EVM.

plotEVM(analyzer,pktNum);

               

Figure contains an axes object. The axes object with title Average EVM (RMS) per data subcarrier (packet 4) contains 4 objects of type line. These objects represent STAID 1, STAID 2, STAID 3, STAID 4.


               

Figure contains an axes object. The axes object with title Average EVM (RMS) per symbol (packet 4) contains 4 objects of type line. These objects represent STAID 1, STAID 2, STAID 3, STAID 4.

Plot the spectral flatness.

plotSpectralFlatness(analyzer,chanBW,pktNum);

Further Exploration

TheWaveformAnalyzerprovides properties to control the pilot tracking, equalization, DC blocking, and packet detection algorithms that can be tweaked to improve packet detection and analysis performance.

False packet detections

False packet detections are detected packets that you do not believe are actual packets. Evaluating the time domain waveform of the packet is one way to determine if the detected packet is legitimate. If there is a significant number of false detections present these techniques may help reduce them:

  • Enable theEnergyDetectionproperty and set theEnergyDetectionThresholdproperty to a suitable value given the noise floor of the capture device. When enabled,EnergyDetectiononly detects packets with a power exceedingEnergyDetectionThresholdduring the preamble.

  • Increase theLLTFSNRDetectionThresholdandPacketDetectionThresholdproperties to discard packets with a low measured SNR during detection.

Missed packet detections

Missed packet detections are packets that you believe are in the waveform but have not been detected.

  • One possible reason a packet detection may have been missed is if a false detection occurred earlier in the waveform, but the L-SIG check passed, causing samples to be skipped. To search within possible false detections, enable theSearchWithinUnsupportedPacketproperty.

  • Alternatively try decreasing thePacketDetectionThresholdproperty to detect packet with low SNR during detection.

For detail on 802.11ax and 802.11ac signal recovery and processing, see theRecovery Procedure for an 802.11ax PacketandRecovery Procedure for an 802.11ac Packetexamples.

References

  1. IEEE Std 802.11™ - 2020 IEEE Standard for Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.

  2. IEEE 802.11ax™ - 2021 IEEE Standard for Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 6: Enhancements for High Efficiency WLAN.

Baidu
map