interpretHESIGABits

Обновите параметры передачи битами поля HE-SIG-A

Описание

пример

cfgUpdated = interpretHESIGABits(cfg,bits) обновляет высокоэффективные параметры передачи (HE) cfg путем интерпретации восстановленных бит поля HE-SIG-A. Функция заполняет свойства cfg которые имеют отношение к полю HE-SIG-A и возвращают обновленные параметры передачи HE cfgUpdated. Если вы используете этот синтаксис, и функция не может интерпретировать восстановленные биты поля HE-SIG-A, функция не возвращает выход и выдает сообщение об ошибке.

пример

[cfgUpdated,failInterpretation] = interpretHESIGABits(cfg,bits) возвращает результат интерпретации поля HE-SIG-A. Если вы используете этот синтаксис, и функция не может интерпретировать восстановленные биты поля HE-SIG-A, функция возвращает failInterpretation выход как 1 и cfgUpdated как cfg входы без обновления значений свойств.

Примеры

свернуть все

Восстановление бит из поля HE-Data передачи SU HE.

Сконфигурируйте передачу SU HE путем создания объекта строения с заданной схемой модуляции и кодирования (MCS). Извлеките пропускную способность канала.

cfgHESU = wlanHESUConfig('MCS',0);
cbw = cfgHESU.ChannelBandwidth;       % Channel bandwidth of transmission

Создайте последовательность бит данных и сгенерируйте сигнал HE SU.

bits = randi([0 1],8*getPSDULength(cfgHESU),1,'int8');
waveform = wlanWaveformGenerator(bits,cfgHESU);

Создайте объект строения восстановления WLAN, задав известную пропускную способность канала и формат пакета.

cfgRX = wlanHERecoveryConfig('ChannelBandwidth',cbw,'PacketFormat','HE-SU');

Восстановите поля сигнализации HE путем извлечения индексов полей и выполнения соответствующих операций демодуляции.

ind = wlanFieldIndices(cfgRX);
heLSIGandRLSIG = waveform(ind.LSIG(1):ind.RLSIG(2),:);
symLSIG = wlanHEDemodulate(heLSIGandRLSIG,'L-SIG',cbw);
info = wlanHEOFDMInfo('L-SIG',cbw);

Объедините поля L-SIG и RL-SIG для разнесения и получите поднесущие данных.

symLSIG = mean(symLSIG,2);
lsig = symLSIG(info.DataIndices,:);

Декодируйте поле L-SIG, принимая бесшумный канал, и используйте поле длины, чтобы обновить объект восстановления.

noiseVarEst = 0;
[~,~,lsigInfo] = wlanLSIGBitRecover(lsig,noiseVarEst);
cfgRX.LSIGLength = lsigInfo.Length;

Восстановите и демодулируйте поле HE-SIG-A, получите поднесущие данных и восстановите биты HE-SIG-A.

heSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);
symSIGA = wlanHEDemodulate(heSIGA,'HE-SIG-A',cbw);
siga = symSIGA(info.DataIndices,:);
[sigaBits,failCRC] = wlanHESIGABitRecover(siga,0);

Обновите объект строения восстановления восстановленными битами HE-SIG-A и получите обновленные индексы полей.

cfgHE = interpretHESIGABits(cfgRX,sigaBits);
ind = wlanFieldIndices(cfgHE);

Найдите и декодируйте поле HE-Data.

heData = waveform(ind.HEData(1):ind.HEData(2),:);
symData = wlanHEDemodulate(heData,'HE-Data', ... 
    cbw,cfgHE.GuardInterval,[cfgHE.RUSize cfgHE.RUIndex]);
infoData = wlanHEOFDMInfo('HE-Data',cbw,cfgHE.GuardInterval,[cfgHE.RUSize cfgHE.RUIndex]);
rxDataSym = symData(infoData.DataIndices,:,:);
dataBits = wlanHEDataBitRecover(rxDataSym,noiseVarEst,cfgHE);

Подтвердите, что восстановленные биты совпадают с переданными битами.

isequal(bits,dataBits)
ans = logical
   1

Обновите объект строения восстановления HE WLAN путем интерпретации восстановленных информационных бит HE-SIG-A и HE-SIG-B.

Сгенерируйте сигнал HE MU

Создайте объект строения MU HE WLAN, задав значение индекса выделения 0.

cfgHEMU = wlanHEMUConfig(0);

Сгенерируйте сигнал WLAN и индексы поля PPDU для указанного строения.

waveform = wlanWaveformGenerator(1,cfgHEMU);
ind = wlanFieldIndices(cfgHEMU);

Восстановление бит L-SIG

Создайте объект строения восстановления WLAN, задающий формат пакета HE MU и длину поля L-SIG.

cfg = wlanHERecoveryConfig('PacketFormat','HE-MU','ChannelBandwidth','CBW20');

Декодируйте поле L-SIG и получайте информацию ортогонального частотного мультиплексирования (OFDM). Объект строения восстановления требует этой информации для получения длины L-SIG.

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,:);

Восстановите биты L-SIG и связанную информацию, убедившись, что биты проходят проверку четности, и обновите объект строения восстановления с длиной L-SIG. В данном примере мы принимаем бесшумный канал. Для более реалистичных результатов можно передать форму волны через модель 802.11ax™ канала при помощи wlanTGaxChannel Системная object™ и работа с полученной формой волны.

csi = ones(52,1);
[lsigBits,failCheck,lsigInfo] = wlanLSIGBitRecover(lsigDemod,0,csi);
cfg.LSIGLength = lsigInfo.Length;

Обновление объекта строения восстановления с помощью бит HE-SIG-A

Декодируйте поле HE-SIG-A и восстановите биты HE-SIG-A, гарантируя, что биты пройдут циклическую проверку избыточности (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

Обновите объект строения восстановления восстановленными битами HE-SIG-A. Отображение обновленного объекта. Значение свойства -1 или 'Unknown' указывает неизвестное или неопределенное свойство, которое может быть обновлено после декодирования общих и пользовательских полей HE-SIG-B пакета MU.

[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

Обновление объекта строения восстановления с помощью общих бит поля HE-SIG-B

Декодируйте общее поле HE-SIG-B, гарантируя, что все каналы содержимого проходят CRC.

len = getSIGBLength(cfg);
sigbCommon = waveform(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

Обновите объект строения восстановления с помощью восстановленных общих бит поля HE-SIG-B и отобразите обновленный объект. Поле возвращено следующим -1 или 'Unknown' указывает неизвестное или неопределенное значение свойства, которое может быть обновлено после декодирования пользовательского поля HE-SIG-B пакета HE MU.

[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

Обновление объекта Строения восстановления с помощью пользовательского поля HE-SIG-B Бит

Декодируйте пользовательское поле HE-SIG-B, гарантируя, что все пользователи пройдут 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

Обновите объект строения восстановления восстановленными битами пользовательского поля HE-SIG-B.

[user,failInterpretation] = interpretHESIGBUserBits(cfg,sigbUserBits,failCRC);

Отображение результатов интерпретации и третьего элемента user выход.

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

Входные параметры

свернуть все

Параметры передачи HE перед интерпретацией бит поля HE-SIG-A, заданные как wlanHERecoveryConfig объект.

Восстановленные биты поля HE-SIG-A, заданные как двоичный вектор-столбец длины 52.

Типы данных: double | int8

Выходные аргументы

свернуть все

Обновленные параметры передачи He, возвращенные как wlanHERecoveryConfig объект. Функция обновляет свойства этого объекта в соответствии с восстановленными битами поля HE-SIG-A.

Для получения информации о содержимом поля HE-SIG-A см. [2].

Результат интерпретации HE-SIG-A, возвращенный как логический 0 или 1. Значение 1 указывает, что функция не может интерпретировать восстановленные биты поля HE-SIG-A. Значение 0 указывает, что функция успешно интерпретирует биты поля HE-SIG-A.

Типы данных: logical

Ссылки

[1] IEEE Std 802.11™-2016 (Редакция IEEE Std 802.11-2012). «Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY)». Стандарт IEEE на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - Особые требования.

[2] P802.11ax™/D4.1 IEEE. "Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY). Поправка 1: Улучшения для высокоэффективной WLAN ". Проект стандарта на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - Особые требования.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Объекты

Функции

Введенный в R2019a