Recover user field bits in HE-SIG-B field
The function recovers
demodulated and equalized HE-SIG-B user field symbols. The
parameterizes the transmission, which is subject to channel noise with estimated variance
The function also returns
failCRC, the result of the cyclic
redundancy check (CRC) on
the updated transmission parameters recovered from the decoded HE-SIG-B field.
For more information on 802.11ax signal recovery, see the 802.11ax Signal Recovery with Preamble Decoding example.
Recover the information bits in the HE-SIG-B user field of a WLAN HE MU waveform.
Generate an HE MU waveform for the specified information bits and HE-MU-format configuration object.
cfgHE = wlanHEMUConfig(192); bits = [1;0;1;1]; waveform = wlanWaveformGenerator(bits,cfgHE);
Extract the L-SIG and HE-SIG-A portions of the waveform.
ind = wlanFieldIndices(cfgHE); rxLSIG = waveform(ind.LSIG(1):ind.LSIG(2),:); rxSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);
Create an HE recovery configuration object for an HE-MU-format packet, specifying the channel bandwidth and packet format.
cbw = cfgHE.ChannelBandwidth; cfgRecovery = wlanHERecoveryConfig('ChannelBandwidth',cbw,'PacketFormat','HE-MU');
Perform orthogonal frequency-division multiplexing (OFDM) demodulation to extract the L-SIG and HE-SIG-A fields, assuming no channel noise.
noiseVarEst = 0; info = wlanHEOFDMInfo('L-SIG',cbw); lsigDemod = wlanHEDemodulate(rxLSIG,'L-SIG',cbw); sigaDemod = wlanHEDemodulate(rxSIGA,'HE-SIG-A',cbw); [~,~,lsigInfo] = wlanLSIGBitRecover(lsigDemod(info.DataIndices,:),noiseVarEst); cfgRecovery.LSIGLength = lsigInfo.Length; siga = wlanHESIGABitRecover(sigaDemod(info.DataIndices,:),noiseVarEst);
Update the HE recovery configuration object with the HE-SIG-A information bits.
cfg = interpretHESIGABits(cfgRecovery,siga);
Extract the HE-SIG-B field.
rxSIGB = waveform(ind.HESIGB(1):ind.HESIGB(2),:);
Demodulate and decode the HE-SIG-B user field, displaying the result.
sigbDemod = wlanHEDemodulate(rxSIGB,'HE-SIG-B',cbw); sigb = sigbDemod(info.DataIndices,:,:); [bits,failCRC,cfgUpdated] = wlanHESIGBUserBitRecover(sigb,noiseVarEst,cfg); disp(bits')
Columns 1 through 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 20 through 21 0 1
sym— Demodulated and equalized HE-SIG-B symbols
Demodulated and equalized HE-SIG-B symbols, specified as a complex-valued vector. The length of the vector is equal to the number of active subcarriers, which depends on the channel bandwidth of the transmission.
If the channel bandwidth is 20 MHz, specify this argument as a 52-by-1 vector.
If the channel bandwidth is 40 MHz, 80 MHz, or 160 MHz, specify this argument as a 104-by-1 vector. This vector must contain the combined 20 MHz subchannel repetitions.
Complex Number Support: Yes
noiseVarEst— Channel noise variance estimate
Channel noise variance estimate, specified as a nonnegative scalar.
cfg— HE MU transmission parameters
HE MU transmission parameters, specified as a
csi— Channel state information
Channel state information, specified as an NSD-by-1 real-valued vector, where NSD is the number of data subcarriers in the HE-SIG-B field.
bits— Recovered HE-SIG-B user field bits
Recovered HE-SIG-B user field bits, returned as a 21-by-Nusers binary matrix, where Nusers is the number of users in the transmission. Each column of this argument contains the recovered user field bits for the corresponding user.
failCRC— CRC result for each user
CRC result for each user, returned as a
1-by-Nusers logical vector, where
Nusers is the number of users in the
transmission. Each element of this argument represents the result of the CRC for the
corresponding user. A value of
1 indicates that the user bits failed
the CRC. A value of
0 indicates that the user bits passed the
cfgUpdated— Updated HE MU transmission parameters
Updated HE MU transmission parameters recovered from the decoded HE-SIG-B field,
returned as a 1-by-Nusers cell array of
Nusers is the number of users in
wlanHESIGBUserBitRecover function does not return the updated
transmission parameters for users whose
FailCRC result is
wlanHESIGBUserBitRecover function returns output arguments
only for users in a valid HE-SIG-B content channel. If the function cannot decode an HE-SIG-B
content channel, then it does not return any output arguments for users in that content
channel. For more information on allocating users across HE-SIG-B content channels in HE MU
transmissions, see Multiuser HE Transmission.
 IEEE Std 802.11™– 2016. “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications." IEEE Standard for Information Technology – Telecommunications and information exchange between systems – Local and metropolitan area networks – Specific requirements.
 IEEE P802.11ax/D3.1 “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 6: Enhancements for High Efficiency WLAN." Draft Standard for Information Technology – Telecommunications and information exchange between systems – Local and metropolitan area networks – Specific requirements.