exponenta event banner

wlanHESIGBCommonBitRecover

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

Описание

пример

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

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

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

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

пример

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

Примеры

свернуть все

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

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

AllocationIndex = 192;
cfgHE = wlanHEMUConfig(AllocationIndex,'SIGBCompression',false);
bits = [1;0];
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.

s = getSIGBLength(cfg);
rxSIGB = waveform(ind.HESIGA(2)+(1:s.NumSIGBCommonFieldSamples),:);

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

sigbDemod = wlanHEDemodulate(rxSIGB,'HE-SIG-B',cbw);
sigb = sigbDemod(info.DataIndices,:,:);
[bits,status,cfgUpdated] = wlanHESIGBCommonBitRecover(sigb,noiseVarEst,cfg);
disp(bits')
   0   0   0   0   0   0   1   1   0   0   0   0   0   0   0   0   0   0
disp(status)
Success

Обновление объекта конфигурации восстановления 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 МГц.

ChannelBandwidth имущества cfg входной сигнал определяет пропускную способность канала.

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

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

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

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

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

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

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

свернуть все

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

Полоса пропускания канала/МГцРазмер bits
2018 на 1
4018 на 2
8027 на 2
16043 на 2

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

Результат декодирования канала контента, возвращаемый как одно из этих значений.

  • 'Success' - Все каналы контента прошли проверку циклическим избыточным кодом (CRC).

  • 'ContentChannel1Fail' - Канал 1 контента отказал CRC, и количество символов HE-SIG-B, переданных в поле HE-SIG-A, меньше 16.

  • 'ContentChannel2Fail' - Канал 2 контента отказал CRC, и количество символов HE-SIG-B, переданных в поле HE-SIG-A, меньше 16.

  • 'UnknownNumUsersContentChannel1' - Канал 1 контента отказал CRC, и количество символов HE-SIG-B, переданных в поле HE-SIG-B, равно 16.

  • 'UnknownNumUsersContentChannel2' - Канал 2 контента отказал CRC, и количество символов HE-SIG-B, переданных в поле HE-SIG-B, равно 16.

  • 'AllContentChannelCRCFail' - Во всех каналах контента произошел сбой CRC.

Если количество символов HE-SIG-B, сигнализируемых в поле HE-SIG-A, меньше 16 и какой-либо канал контента не выполняет CRC, поле HE-SIG-A определяет длину поля HE-SIG-B. Если количество символов HE-SIG-B, сигнализируемых в поле HE-SIG-A, равно 16, и какой-либо канал контента отказывает CRC, длина поля HE-SIG-B не определена.

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

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

Ссылки

[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