wlanHESIGBCommonBitRecover

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

Описание

пример

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

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

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

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

пример

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

Примеры

свернуть все

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

Сгенерируйте сигнал HE MU для заданных информационных бит и объекта строения формата 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

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

  • Если ширина полосы пропускания канала составляет 20 МГц, задайте этот аргумент как вектор 52 на 1.

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

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

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

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

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

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

Информация о состоянии канала, заданная как N вектор с реальным значением SD на 1, N котором SD является количеством поднесущих данных в поле 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2019b