wlanHESIGBUserBitRecover

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

Описание

пример

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

Функция восстанавливается bits от symдемодулированные и выравниваемые символы пользовательского поля HE-SIG-B. The 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 формы волны WLAN HE MU.

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Обновленный ОН параметры передачи МУ пришли в себя после расшифрованной области HE-SIG-B, возвращенной как пользовательский массив ячеек 1-by-<reservedrangesplaceholder1> wlanHERecoveryConfig объекты. Nusers - количество пользователей в передаче.

Примечание

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

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

Ограничения

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

Ссылки

[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