interpretHESIGBCommonBits
Interpret HE-SIG-B common field bits and update HE transmission parameters
Since R2020b
Syntax
Description
updates high-efficiency multi-user (HE MU) transmission parameters cfgUpdated
= interpretHESIGBCommonBits(cfg
,bits
,status
)cfg
by interpreting bits
, the recovered HE-SIG-B common field bits, and
status
, the result of content channel decoding. The function
populates the properties of cfg
that are relevant to the HE-SIG-B
common field and returns updated HE MU transmission parameters
cfgUpdated
. If you use this syntax and the function cannot interpret
the recovered HE-SIG-B common field bits, the function does not return an output and issues
an error message.
[
returns the result of HE-SIG-B common field interpretation. If you use this syntax and the
function cannot interpret the recovered HE-SIG-B common field bits, the function returns the
cfgUpdated
,failInterpretation
] = interpretHESIGBCommonBits(cfg
,bits
,status
)failInterpretation
output as 1
and
cfgUpdated
as cfg
without updating any property
values.
Examples
Update HE MU Recovery Configuration Object
Update a WLAN HE recovery configuration object by interpreting recovered HE-SIG-A and HE-SIG-B information bits.
Generate HE MU Waveform
Create a WLAN HE MU configuration object, setting the allocation index to 0
.
cfgHEMU = wlanHEMUConfig(0);
Generate a WLAN waveform and PPDU field indices for the specified configuration.
waveform = wlanWaveformGenerator(1,cfgHEMU); ind = wlanFieldIndices(cfgHEMU);
Recover L-SIG Bits
Create a WLAN recovery configuration object, specifying an HE MU packet format and the length of the L-SIG field.
cfg = wlanHERecoveryConfig('PacketFormat','HE-MU','ChannelBandwidth','CBW20');
Decode the L-SIG field and obtain the orthogonal frequency-division multiplexing (OFDM) information. The recovery configuration object requires this information to obtain the L-SIG length.
lsig = waveform(ind.LSIG(1):ind.LSIG(2)); lsigDemod = wlanHEDemodulate(lsig,'L-SIG',cfg.ChannelBandwidth); info = wlanHEOFDMInfo('L-SIG',cfg.ChannelBandwidth); lsigDemod = lsigDemod(info.DataIndices,:);
Recover the L-SIG bits and related information, making sure that the bits pass the parity check, and update the recovery configuration object with the L-SIG length. For this example we assume a noiseless channel. For more realistic results you can pass the waveform through an 802.11ax™ channel model by using the wlanTGaxChannel
System object™ and work with the received waveform.
csi = ones(52,1); [lsigBits,failCheck,lsigInfo] = wlanLSIGBitRecover(lsigDemod,0,csi); cfg.LSIGLength = lsigInfo.Length;
Update Recovery Configuration Object with HE-SIG-A Bits
Decode the HE-SIG-A field and recover the HE-SIG-A bits, ensuring that the bits pass the cyclic redundancy check (CRC).
siga = waveform(ind.HESIGA(1):ind.HESIGA(2));
sigaDemod = wlanHEDemodulate(siga,'HE-SIG-A',cfg.ChannelBandwidth);
sigaDemod = sigaDemod(info.DataIndices,:);
[sigaBits,failCRC] = wlanHESIGABitRecover(sigaDemod,0,csi);
disp(failCRC)
0
Update the recovery configuration object with the recovered HE-SIG-A bits. Display the updated object. A property value of -1
or 'Unknown'
indicates an unknown or undefined property, which can be updated after decoding the HE-SIG-B common and user fields of the HE MU packet.
[cfg,failInterpretation] = interpretHESIGABits(cfg,sigaBits)
cfg = wlanHERecoveryConfig with properties: PacketFormat: 'HE-MU' ChannelBandwidth: 'CBW20' LSIGLength: 878 SIGBCompression: 0 SIGBMCS: 0 SIGBDCM: 0 NumSIGBSymbolsSignaled: 10 STBC: 0 LDPCExtraSymbol: 1 PreFECPaddingFactor: 1 PEDisambiguity: 0 GuardInterval: 3.2000 HELTFType: 4 NumHELTFSymbols: 1 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 AllocationIndex: -1 NumUsersPerContentChannel: -1 RUTotalSpaceTimeStreams: -1 RUSize: -1 RUIndex: -1 STAID: -1 MCS: -1 DCM: -1 ChannelCoding: 'Unknown' Beamforming: -1 NumSpaceTimeStreams: -1 SpaceTimeStreamStartingIndex: -1
failInterpretation = logical
0
Update Recovery Configuration Object with HE-SIG-B Common Field Bits
Decode the HE-SIG-B common field, ensuring that all content channels pass the CRC.
len = getSIGBLength(cfg);
sigbCommon = waveform(double(ind.HESIGA(2))+(1:len.NumSIGBCommonFieldSamples),:);
sigbCommonDemod = wlanHEDemodulate(sigbCommon,'HE-SIG-B',cfgHEMU.ChannelBandwidth);
sigbCommonDemod = sigbCommonDemod(info.DataIndices);
[sigbCommonBits,status,~] = wlanHESIGBCommonBitRecover(sigbCommonDemod,0,csi,cfg);
disp(status)
Success
Update the recovery configuration object with the recovered HE-SIG-B common field bits and display the updated object. A field returned as -1
or 'Unknown'
indicates an unknown or undefined property value, which can be updated after decoding the HE-SIG-B user field of the HE MU packet.
[cfg,failInterpretation] = interpretHESIGBCommonBits(cfg,sigbCommonBits,status)
cfg = wlanHERecoveryConfig with properties: PacketFormat: 'HE-MU' ChannelBandwidth: 'CBW20' LSIGLength: 878 SIGBCompression: 0 SIGBMCS: 0 SIGBDCM: 0 NumSIGBSymbolsSignaled: 10 STBC: 0 LDPCExtraSymbol: 1 PreFECPaddingFactor: 1 PEDisambiguity: 0 GuardInterval: 3.2000 HELTFType: 4 NumHELTFSymbols: 1 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 AllocationIndex: 0 NumUsersPerContentChannel: 9 RUTotalSpaceTimeStreams: -1 RUSize: -1 RUIndex: -1 STAID: -1 MCS: -1 DCM: -1 ChannelCoding: 'Unknown' Beamforming: -1 NumSpaceTimeStreams: -1 SpaceTimeStreamStartingIndex: -1
failInterpretation = logical
0
Update Recovery Configuration Object with HE-SIG-B User Field Bits
Decode the HE-SIG-B user field, ensuring that all users pass the CRC.
sigbUser = waveform(ind.HESIGB(1):ind.HESIGB(2));
sigbUserDemod = wlanHEDemodulate(sigbUser,'HE-SIG-B',cfgHEMU.ChannelBandwidth);
sigbUserDemod = sigbUserDemod(info.DataIndices,:);
[sigbUserBits,failCRC,~] = wlanHESIGBUserBitRecover(sigbUserDemod,0,csi,cfg);
disp(failCRC)
0 0 0 0 0 0 0 0 0
Update the recovery configuration object with the recovered HE-SIG-B user field bits.
[user,failInterpretation] = interpretHESIGBUserBits(cfg,sigbUserBits,failCRC);
Display the results of interpretation and the third element of the user
output.
disp(failInterpretation)
0 0 0 0 0 0 0 0 0
disp(user{3})
wlanHERecoveryConfig with properties: PacketFormat: 'HE-MU' ChannelBandwidth: 'CBW20' LSIGLength: 878 SIGBCompression: 0 SIGBMCS: 0 SIGBDCM: 0 NumSIGBSymbolsSignaled: 10 STBC: 0 LDPCExtraSymbol: 1 PreFECPaddingFactor: 1 PEDisambiguity: 0 GuardInterval: 3.2000 HELTFType: 4 NumHELTFSymbols: 1 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 AllocationIndex: 0 NumUsersPerContentChannel: 9 RUTotalSpaceTimeStreams: 1 RUSize: 26 RUIndex: 3 STAID: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' Beamforming: 0 NumSpaceTimeStreams: 1 SpaceTimeStreamStartingIndex: 1
Input Arguments
cfg
— HE MU transmission parameters before interpretation of HE-SIG-B common field bits
wlanHERecoveryConfig
object
HE MU transmission parameters before interpretation of HE-SIG-B common field bits,
specified as a wlanHERecoveryConfig
object.
bits
— Recovered HE-SIG-B common field bits
binary-valued matrix
Recovered HE-SIG-B common field bits, specified as binary-valued matrix whose size depends on the channel bandwidth of the transmission.
Channel Bandwidth | Size of bits |
---|---|
20 MHz | 18-by-1 |
40 MHz | 18-by-2 |
80 MHz | 27-by-2 |
160 MHz | 43-by-2 |
Data Types: int8
status
— Result of content channel decoding
character vector
Result of content channel decoding, specified as one of these values.
'Success'
– All content channels passed the cyclic redundancy check (CRC).'ContentChannel1Fail'
– Content channel 1 failed the CRC, and the number of HE-SIG-B symbols signaled in the HE-SIG-A field is less than 16.'ContentChannel2Fail'
– Content channel 2 failed the CRC, and the number of HE-SIG-B symbols signaled in the HE-SIG-A field is less than 16.'UnknownNumUsersContentChannel1'
– Content channel 1 failed the CRC, and the number of HE-SIG-B symbols signaled in the HE-SIG-B field is 16.'UnknownNumUsersContentChannel2'
– Content channel 2 failed the CRC, and the number of HE-SIG-B symbols signaled in the HE-SIG-B field is 16.'AllContentChannelCRCFail'
– All content channels failed the CRC.
The value of this input depends on the result of the cyclic redundancy
check (CRC) per content channel and the number of HE-SIG-B symbols signaled in the
HE-SIG-A field. for more information, see wlanHESIGBCommonBitRecover
.
Data Types: char
| string
Output Arguments
cfgUpdated
— Updated HE MU transmission parameters
wlanHERecoveryConfig
object
Updated HE MU transmission parameters, returned as a wlanHERecoveryConfig
object. The function updates the properties of this object in accordance with the
recovered HE-SIG-B common field bits bits
. For information on the
contents of the HE-SIG-B field, see [1].
failInterpretation
— Result of HE-SIG-B common field interpretation
0
| 1
Result of HE-SIG-B common field interpretation, returned as a logical
0
or 1
. A value of 1
indicates that the function cannot interpret the recovered HE-SIG-B common field bits. A
value of 0
indicates that the function successfully interprets the
HE-SIG-B common field bits.
Data Types: logical
References
[1] IEEE® Std 802.11ax™-2021 (Amendment to IEEE Std 802.11™-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems. Local and Metropolitan Area Networks — Specific Requirements.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2020b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)