exponenta event banner

wlanHESIGBUserBitRecover

Восстановление битов пользовательского поля в поле HE-SIG-B

Описание

пример

[bits,failCRC,cfgUpdated] = wlanHESIGBUserBitRecover(sym,noiseVarEst,cfg) приходит в себя bits, пользовательские биты области HE-SIG-B содержали в многопользовательской высокой эффективности IEEE® 802.11ax™ (ОН МУ) передача.

Функция восстанавливается bits от symдемодулированные и выровненные символы пользовательского поля HE-SIG-B. cfg вход параметризует передачу, которая подвержена канальному шуму с оценочной дисперсией noiseVarEst.

Функция также возвращает failCRC, результат проверки циклическим избыточным кодом (CRC) на bits, и cfgUpdatedобновленные параметры передачи, восстановленные из декодированного поля HE-SIG-B.

Дополнительные сведения о восстановлении сигнала 802.11ax см. в примере процедуры восстановления для пакета 802.11ax.

пример

[bits,failCRC,cfgUpdated] = wlanHESIGBUserBitRecover(sym,noiseVarEst,csi,cfg) также улучшает преобразование поднесущих с ортогональным мультиплексированием с частотным разделением каналов (OFDM) за счет использования информации о состоянии канала csi.

Примеры

свернуть все

Восстановите информационные биты в поле пользователя HE-SIG-B сигнала MU WLAN HE.

Формирование формы сигнала MU HE для указанных информационных битов и объекта конфигурации формата HE-MU.

cfgHE = wlanHEMUConfig(192);
bits = [1;0;1;1];
waveform = wlanWaveformGenerator(bits,cfgHE);

Извлеките части сигнала L-SIG и HE-SIG-A.

ind = wlanFieldIndices(cfgHE);
rxLSIG = waveform(ind.LSIG(1):ind.LSIG(2),:);
rxSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);

Создайте объект конфигурации восстановления HE для пакета формата HE-MU, указав полосу пропускания канала и формат пакета.

cbw = cfgHE.ChannelBandwidth;
cfgRecovery = wlanHERecoveryConfig('ChannelBandwidth',cbw,'PacketFormat','HE-MU');

Выполните демодуляцию OFDM для выделения полей L-SIG и HE-SIG-A, предполагая отсутствие шумов канала.

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

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

cfg = interpretHESIGABits(cfgRecovery,siga);

Извлеките поле HE-SIG-B.

rxSIGB = waveform(ind.HESIGB(1):ind.HESIGB(2),:);

Демодулируйте и декодируйте пользовательское поле HE-SIG-B, отображая результат.

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
disp(failCRC)
   0

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

Генерация формы сигнала MU HE

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

cfgHEMU = wlanHEMUConfig(0);

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

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

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

Создайте объект конфигурации восстановления WLAN, указав формат пакета MU HE и длину поля 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 пакета HE 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-SIG-B, заданные как вектор с комплексными значениями. Длина вектора равна числу активных поднесущих, которое зависит от полосы пропускания канала передачи.

  • Если пропускная способность канала равна 20 МГц, укажите этот аргумент как вектор 52 на 1.

  • Если пропускная способность канала составляет 40 МГц, 80 МГц или 160 МГц, укажите этот аргумент как вектор 104 на 1. Этот вектор должен содержать объединенные повторы подканалов 20 МГц.

Типы данных: double
Поддержка комплексного номера: Да

Оценка дисперсии шума канала, заданная как неотрицательный скаляр.

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

Параметры передачи MU HE, указанные как wlanHERecoveryConfig объект.

Информация о состоянии канала, заданная как NSD-by-1 действительный вектор, где NSD - количество поднесущих данных в поле HE-SIG-B.

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

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

свернуть все

Восстановленные биты пользовательского поля HE-SIG-B, возвращенные в виде 21-by-Nusers двоичной матрицы, где Nusers - количество пользователей в передаче. Каждый столбец этого аргумента содержит восстановленные биты пользовательского поля для соответствующего пользователя.

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

Результат CRC для каждого пользователя, возвращаемый как 1-by-Nusers логический вектор, где Nusers - количество пользователей в передаче. Каждый элемент этого аргумента представляет результат CRC для соответствующего пользователя. Значение 1 указывает, что пользовательские биты не смогли выполнить CRC. Значение 0 указывает, что пользовательские биты прошли CRC.

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

Обновленные параметры передачи HE MU, восстановленные из декодированного поля HE-SIG-B, возвращенные в виде массива 1-by-Nusers ячеек wlanHERecoveryConfig объекты. Nколичество пользователей в передаче.

Примечание

wlanHESIGBUserBitRecover функция не возвращает обновленные параметры передачи для пользователей, чьи FailCRC результат - 1.

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

Ограничения

wlanHESIGBUserBitRecover функция возвращает выходные аргументы bits, failCRC, и cfgUpdated только для пользователей в действительном канале контента HE-SIG-B. Если функция не может декодировать канал контента HE-SIG-B, то она не возвращает никаких выходных аргументов для пользователей в этом канале контента. Дополнительные сведения о распределении пользователей по каналам контента HE-SIG-B в передачах HE MU см. в разделе Передача MU HE.

Ссылки

[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++ с помощью MATLAB ® Coder™

.
Представлен в R2019b