wlanHESIGBCommonBitRecover

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

Описание

пример

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

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

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

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

пример

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

Примеры

свернуть все

Восстановите информационные биты в общем поле HE-SIG-B формы волны ВЛАНЬ ХЭ МУ.

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

AllocationIndex = 192;
cfgHE = wlanHEMUConfig(AllocationIndex,'SIGBCompression',false);
bits = [1;0];
waveform = wlanWaveformGenerator(bits,cfgHE);

Извлеките L-SIG и фрагменты "SIG HE" от формы волны.

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

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

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 с информационным SIG HE "битов".

cfg = interpretHESIGABits(cfgRecovery,siga);

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

s = getSIGBLength(cfg);
rxSIGB = waveform(double(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 путем интерпретации восстановленного "SIG HE" и информационные биты HE-SIG-B.

Сгенерируйте HE форма волны МУ

Создайте объект настройки ВЛАНЬ ХЭ МУ, установив индекс выделения на 0.

cfgHEMU = wlanHEMUConfig(0);

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

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

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

Создайте объект настройки восстановления WLAN, задав 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;

Обновите объект настройки восстановления с битами "SIG HE"

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

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

[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(double(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 пакет МУ.

[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

HE параметры передачи МУ в виде wlanHERecoveryConfig объект.

Информация о состоянии канала в виде N SD-1 вектор с действительным знаком, где SD N является количеством поднесущих данных в поле 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 параметры передачи МУ, восстановленные с декодируемого поля HE-SIG-B, возвращенного как wlanHERecoveryConfig объект.

Ссылки

[1] Станд. IEEE 802.11™-2016 (Версия Станд. IEEE 802.11-2012). “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования”. Стандарт IEEE для Информационных технологий — Телекоммуникации и обмен информацией между системами. Локальные сети и городские компьютерные сети — Конкретные требования.

[2] IEEE P802.11ax/D4.1. “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования. Поправка 1: Улучшения для Высокой эффективности WLAN”. Спроектируйте Стандарт для Информационных технологий — Телекоммуникации и обмен информацией между системами. Локальные сети и городские компьютерные сети — Конкретные требования.

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

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

Введенный в R2019b