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 failscfg =
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 failsUpdate 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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の 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)