interpretUSIGBits
Syntax
Description
updates extremely high-throughput (EHT) transmission parameters cfgUpdated
= interpretUSIGBits(cfg
,bits
,failCRC
)cfg
by interpreting recovered U-SIG field bits. The function sets the properties of
cfg
that are encoded in the U-SIG field and returns updated
transmission parameters cfgUpdated
. If you use this syntax and the
function cannot interpret the recovered U-SIG field bits, the function does not return
an output and issues an error message.
[
additionally returns the result of U-SIG field interpretation. If you use this syntax
and the function cannot interpret the recovered U-SIG field bits, the function returns
the cfgUpdated
,failInterpretation
] = interpretUSIGBits(cfg
,bits
,failCRC
)failInterpretation
output as 1
and
cfgUpdated
as the cfg
input without
updating any property values.
Examples
Generate EHT SU Waveform
Create a single-user EHT configuration object with a channel bandwidth of 320 MHz.
chanBW = "CBW320";
cfgEHTSU = wlanEHTMUConfig(chanBW);
Create an EHT recovery object with the same channel bandwidth.
cfg = wlanEHTRecoveryConfig(ChannelBandwidth=chanBW);
Create a sequence of data bits. Use the bits to generate a time-domain waveform for the specified configuration. Pass the waveform through an AWGN channel with a signal-to-noise ratio of 10 dB. Return the PPDU field indices.
bits = randi([0 1],8*psduLength(cfgEHTSU),1); tx = wlanWaveformGenerator(bits,cfgEHTSU); rx = awgn(tx,10); ind = wlanFieldIndices(cfg);
Recover L-SIG Bits
Demodulate the L-LTF and estimate the channel. Using the demodulated symbols, estimate the noise power.
lltf = rx(ind.LLTF(1):ind.LLTF(2),:);
lltfDemod = wlanEHTDemodulate(lltf,"L-LTF",cfg);
lltfChanEst = wlanLLTFChannelEstimate(lltfDemod,chanBW);
nVar = wlanLLTFNoiseEstimate(lltfDemod);
Decode the L-SIG field and obtain the OFDM information. The recovery configuration object requires this information to obtain the L-SIG length.
lsig = rx(ind.LSIG(1):ind.LSIG(2)); lsigDemod = wlanEHTDemodulate(lsig,"L-SIG",cfg); info = wlanEHTOFDMInfo("L-SIG",cfg); lsigDemodData = lsigDemod(info.DataIndices,:);
Estimate the channel at the L-SIG field and equalize the L-SIG symbols.
preEHTChanEst = wlanPreEHTChannelEstimate(lsigDemod,lltfChanEst,chanBW);
lsigEq = wlanEHTEqualize(lsigDemodData,preEHTChanEst(info.DataIndices,:),nVar,cfg,"L-SIG");
Recover the L-SIG bits and set the L-SIG length of the recovery object.
[lsigBits,failCheck,lsigInfo] = wlanLSIGBitRecover(lsigEq,0); cfg.LSIGLength = lsigInfo.Length;
Update Recovery Configuration Object with U-SIG Bits
Demodulate the U-SIG field.
usig = rx(ind.USIG(1):ind.USIG(2),:);
usigDemod = wlanEHTDemodulate(usig,"U-SIG",cfg);
Get the OFDM information that corresponds to the U-SIG field. Use this information to isolate the data subcarriers.
preEHTInfo = wlanEHTOFDMInfo("U-SIG",cfg);
usigDataSym = usigDemod(preEHTInfo.DataIndices,:);
Equalize the U-SIG data symbols.
x = wlanEHTEqualize(usigDataSym,preEHTChanEst(preEHTInfo.DataIndices,:),nVar,cfg,"U-SIG");
Recover the U-SIG bits, ensuring that the bits pass the cyclic redundancy check (CRC).
[usigBits,failCRC] = wlanUSIGBitRecover(x,nVar); disp(failCRC)
0 0 0 0
Update the recovery configuration object with the U-SIG bits. Display the updated object. A property value of -1
or unknown
indicates an unknown or undefined property, which you can update after decoding the EHT-SIG common and user fields of the EHT SU packet.
[cfg,failInterpretation] = interpretUSIGBits(cfg,usigBits,failCRC) % This syntax does not cause an error if interpretation fails
cfg = wlanEHTRecoveryConfig with properties: ChannelBandwidth: 'CBW320' LSIGLength: 39 CompressionMode: 1 EHTSIGMCS: 0 NumEHTSIGSymbolsSignaled: 2 LDPCExtraSymbol: -1 PreFECPaddingFactor: -1 PEDisambiguity: -1 GuardInterval: -1 EHTLTFType: -1 NumEHTLTFSymbols: -1 UplinkIndication: 0 BSSColor: 0 SpatialReuse: -1 TXOPDuration: -1 NumNonOFDMAUsers: -1 NumUsersPerContentChannel: -1 RUTotalSpaceTimeStreams: -1 RUSize: -1 RUIndex: -1 PuncturedChannelFieldValue: 0 STAID: -1 MCS: -1 ChannelCoding: unknown Beamforming: -1 NumSpaceTimeStreams: -1 SpaceTimeStreamStartingIndex: -1 Channelization: 1 Read-only properties: PPDUType: su EHTDUPMode: 0
failInterpretation = logical
0
Update Recovery Configuration Object with EHT-SIG Common Field Bits
Update the field indices with the new information from the U-SIG bits.
ind = wlanFieldIndices(cfg);
Demodulate the EHT-SIG field. Get the corresponding OFDM information.
ehtSig = rx(ind.EHTSIG(1):ind.EHTSIG(2),:); ehtsigDemod = wlanEHTDemodulate(ehtSig,"EHT-SIG",cfg); preEHTInfo = wlanEHTOFDMInfo("EHT-SIG",cfg);
Equalize the EHT-SIG data symbols.
x = wlanEHTEqualize(ehtsigDemod(preEHTInfo.DataIndices,:),preEHTChanEst(preEHTInfo.DataIndices,:), ... nVar,cfg,"EHT-SIG");
Recover and interpret the EHT-SIG common field bits.
[ehtsigCommonBits,failCRC,cfg] = wlanEHTSIGCommonBitRecover(x,nVar,cfg); % This syntax causes an error if interpretation fails
Update Recovery Configuration Object with EHT-SIG User Field Bits
Recover and interpret the EHT-SIG user field bits. Display the updated recovery configuration object.
[ehtsigUserBits,failCRC] = wlanEHTSIGUserBitRecover(x,nVar,cfg);
cfg = interpretEHTSIGUserBits(cfg,ehtsigUserBits,failCRC); % This syntax causes an error if interpretation fails
cfg = cfg{1};
disp(cfg)
wlanEHTRecoveryConfig with properties: ChannelBandwidth: 'CBW320' LSIGLength: 39 CompressionMode: 1 EHTSIGMCS: 0 NumEHTSIGSymbolsSignaled: 2 LDPCExtraSymbol: 1 PreFECPaddingFactor: 3 PEDisambiguity: 0 GuardInterval: 3.2000 EHTLTFType: 4 NumEHTLTFSymbols: 1 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: -1 NumNonOFDMAUsers: 1 NumUsersPerContentChannel: 1 RUTotalSpaceTimeStreams: 1 RUSize: 3984 RUIndex: 1 PuncturedChannelFieldValue: 0 STAID: 0 MCS: 0 ChannelCoding: ldpc Beamforming: 0 NumSpaceTimeStreams: 1 SpaceTimeStreamStartingIndex: 1 Channelization: 1 Read-only properties: PPDUType: su EHTDUPMode: 0
Recover EHT-Data Field
Update the field indices with the new information from the EHT-SIG bits.
ind = wlanFieldIndices(cfg);
Demodulate the EHT-Data field and recover the bits. Verify that the recovered bits match the transmitted bits.
ehtData = rx(ind.EHTData(1):ind.EHTData(2),:); ehtdataDemod = wlanEHTDemodulate(ehtData,"EHT-Data",cfg); infoData = wlanEHTOFDMInfo("EHT-Data",cfg); rxDataSym = ehtdataDemod(infoData.DataIndices,:,:); dataBits = wlanEHTDataBitRecover(rxDataSym,nVar,cfg); isequal(bits,dataBits)
ans = logical
1
Input Arguments
EHT transmission parameters before interpretation of the U-SIG field bits,
specified as a wlanEHTRecoveryConfig
object.
Recovered U-SIG field bits, specified as a binary-valued matrix. The size of the matrix is 52-by-L. L is the number of 80 MHz subblocks in the channel and is equal to:
1 when the channel bandwidth is 80 MHz or less
2 when the channel bandwidth is 160 MHz
4 when the channel bandwidth is 320 MHz
Data Types: double
| int8
Cyclic redundancy check (CRC) result for the U-SIG field, specified as a
logical-valued row vector of length L. L is
the number of 80 MHz subblocks in the channel. A value of 1
indicates a CRC failure.
Data Types: logical
Output Arguments
Updated EHT transmission parameters, returned as a wlanEHTRecoveryConfig
object. The function updates the properties of
this object in accordance with the recovered U-SIG field bits.
For a non-OFDMA EHT multi-user (MU) packet, the function updates the following properties after interpreting the U-SIG field bits:
Result of U-SIG field interpretation, returned as a logical
0
or 1
. A value of 1
indicates that the function cannot interpret the recovered U-SIG field bits. A
value of 0
indicates that the function has successfully
interpreted the U-SIG field bits.
Data Types: logical
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2023bWhen you use the interpretUSIGBits
function for 802.11be™ blind recovery, you can now generate C and C++ code using MATLAB®
Coder™.
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)