wlanMPDUDecode

Описание

пример

[cfgMAC,payload,status] = wlanMPDUDecode(mpdu,phyFormat) восстанавливает payload, один или несколько модулей эксплуатационных данных MAC (MSDUs), путем декодирования Модуля данных о протоколе MAC (MPDU) mpdu. Функция декодирует MPDU при помощи параметров, подходящих для заданного формата PHY.

Функция также возвращает status, результат декодирования MPDU и cfgMAC, wlanMACFrameConfig объект настройки.

пример

[cfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY) декодирует MPDU при помощи параметров передачи PHY cfgPHY.

пример

[cfgMAC,payload,status] = wlanMPDUDecode(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение", кроме того, любая комбинация входных аргументов от предыдущих синтаксисов.

Примеры

свернуть все

Создайте объект настройки системы координат ВЛАНА МАКА для MPDU в однопользовательской высокой эффективности (SU HE) формат, и затем сгенерируйте MPDU.

phyFormat = 'HE-SU';
cfgMAC =  wlanMACFrameConfig('FrameFormat',phyFormat);
payload = randi([0 255],1,40);
mpdu = wlanMACFrame(payload,cfgMAC,'OutputFormat','bits');

Возвратите MSDUs путем декодирования MPDU для заданной настройки формата PHY.

[rxCfgMAC,payload,status] = wlanMPDUDecode(mpdu,phyFormat);

Подтвердите успешное декодирование путем отображения состояния.

disp(status)
    Success

Создайте объект настройки системы координат ВЛАНА МАКА для системы координат Данных QoS, и затем сгенерируйте MPDU.

cfgMAC = wlanMACFrameConfig('FrameType','QoS Data');
payload = randi([0 255],1,40);
mpdu = wlanMACFrame(payload,cfgMAC,'OutputFormat','bits');

Создайте не высокий формат пропускной способности (non-HT-format) объект настройки с настройками по умолчанию.

cfgPHY = wlanNonHTConfig;

Возвратите MSDUs путем декодирования MPDU для заданной настройки формата PHY.

[cfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY);

Подтвердите успешное декодирование путем отображения состояния.

disp(status)
    Success

Deaggregate VHT A-MPDU и декодируют извлеченный MPDUs.

Создайте объект настройки системы координат ВЛАНА МАКА для VHT A-MPDU.

txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ...
    'FrameFormat','VHT');

Создайте объект настройки VHT-формата с настройками по умолчанию.

cfgPHY = wlanVHTConfig;

Сгенерируйте случайную полезную нагрузку восьми MSDUs.

txPayload =  repmat({randi([0 255],1,40)},1,8);

Сгенерируйте A-MPDU, содержащий восемь MPDUs для заданного MAC и настроек PHY.

ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);

Извлеките список MPDUs deaggregating A-MPDU. Отобразите состояние deaggregation и CRC разделителя.

[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY, ...
    'DataFormat','octets');
disp(status)
    Success
disp(failCRC)
   0   0   0   0   0   0   0   0

Декодируйте все MPDUs в извлеченном. Подтвердите успешное декодирование путем отображения состояния.

if strcmp(status,'Success')
    for i = 1:numel(mpduList)
        if ~failCRC(i)
            [cfgMAC,payload,status(i)] = ...
                wlanMPDUDecode(mpduList{i},cfgPHY, ...
                'DataFormat','octets');
        end
    end
end
disp(status)
  Columns 1 through 7

    Success    Success    Success    Success    Success    Success    Success

  Column 8

    Success

Входные параметры

свернуть все

MPDU, который будет декодироваться в виде одного из этих значений.

  • Вектор с бинарным знаком, представляющий MPDU в битной форме

  • Вектор из целых чисел в интервале [0, 255] представление октетов в десятичном формате

  • Строковый скаляр, представляющий MPDU как октеты в шестнадцатеричном формате

  • Вектор символов, представляющий MPDU как октеты в шестнадцатеричном формате

  • Символьный массив, где каждая строка представляет октет в шестнадцатеричном формате

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

Формат PHY в виде одного из этих значений.

  • 'HE-SU' — Однопользовательская высокая эффективность (SU HE) формат

  • 'HE-EXT-SU' — SU расширенной области значений HE (HE SU ER) формат

  • 'HE-MU' — Многопользовательский HE (HE МУ) формат

  • 'HE-TB' — Основанный на триггере HE (Тбайт HE) формат

  • 'VHT' — Формат очень высокопроизводительного (VHT)

  • 'HT' — Высокопроизводительный (HT) формат

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

Формат PHY и параметры передачи в виде одного из этих объектов.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'DataFormat','octets'

Формат входа MPDU в виде разделенной запятой пары, состоящей из 'DataFormat' и одно из этих значений.

  • 'bits' — Задайте mpdu введите в битном формате

  • 'octets' — Задайте mpdu введите в формате октета

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

Подавите предупреждающие сообщения в виде разделенной запятой пары, состоящей из 'SuppressWarnings' и одно из этих значений.

  • false или 0 — Позвольте предупреждающие сообщения.

  • true или 1 — Подавите предупреждающие сообщения.

Типы данных: логический

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

свернуть все

Настройка системы координат MAC, возвращенная как wlanMACFrameConfig объект.

Один или несколько MSDUs, возвращенные как массив ячеек символьных массивов. Функция возвращает символьный массив для каждого MSDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета. Для каждой системы координат MAC, которая не содержит данных, функция возвращает payload как массив пустой ячейки.

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

Состояние декодирования MPDU, возвращенного как целое число в интервале [–31, 0]. Каждое значение status соответствует члену wlanMACDecodeStatus класс перечисления, который указывает на состояние декодирования системы координат MAC согласно этой таблице.

Перечислимая величинаЧлен класса перечисленияДекодирование состояния
0SuccessСистема координат MAC успешно декодируется
-1FCSFailedПоследовательность проверки системы координат (FCS) перестала работать
-2InvalidProtocolVersionНедопустимая версия протокола
-3UnsupportedFrameTypeНеподдерживаемый тип системы координат
-4UnsupportedFrameSubtypeНеподдерживаемый подтип системы координат
-5NotEnoughDataНедостаточные данные, чтобы декодировать систему координат
-6UnsupportedBAVariantВариант Unsupported Блока система координат Ack
-7UnknownBitmapSizeНеизвестный растровый размер
-8UnknownAddressExtModeНеизвестный режим расширения адреса
-9MalformedAMSDULengthУродливый совокупный модуль эксплуатационных данных MAC (A-MSDU) с недопустимой длиной
-10MalformedSSIDУродливый сервис установил идентификатор (SSID) информационный элемент (IE)
-11MalformedSupportedRatesIEУродливый поддерживаемый IE уровней
-12MalformedIELengthУродливое поле длины IE
-13MissingMandatoryIEsОбязательные пропавшие без вести IES
-14NoMPDUFoundНикакой MPDU не найден в A-MPDU
-15CorruptedAMPDUВсе разделители в принятом А-МПДУ привели контроль циклическим избыточным кодом (CRC) к сбою
-16InvalidDelimiterLengthНедопустимое поле длины в разделителе MPDU
-17MaxAMSDULenthExceededA-MSDU превышает максимальный предел длины
-18MaxMPDULengthExceededMPDU превышает максимальный предел длины
-19MaxMMPDULengthExceededСистема координат управления MAC превышает максимальный предел длины
-20MaxMSDULengthExceededMSDU превышает максимальный предел длины
-21UnexpectedProtectedFrameНедопустимое значение защищенного бита для этого типа системы координат
-22UnsupportedTriggerTypeНеподдерживаемый триггер структурирует тип
-23UnknownHELTFTypeAndGIНеизвестный защитный интервал (GI) и высокая эффективность длинное учебное поле (HE-LTF) тип
-24UnknownAPTxPowerНеизвестное значение для AP подполе Степени Tx поля Common Info
-25UnknownAID12ValueНеизвестное значение для подполя AID12 поля User Info
-26UnknownRUAllocationНеизвестное значение для B7-B1 в подполе Выделения RU поля User Info
-27UnknownULMCSНеизвестное значение для подполя MCS UL поля User Info
-28UnknownTargetRSSIНеизвестное значение для Цели UL подполе RSSI поля User Info
-29UnsupportedBARTypeНеподдерживаемое значение для подполя Типа ПАНЕЛИ Поля элемента управления ПАНЕЛИ
-30MissingUserInfoПринятый триггерный кадр содержит поле Info недействительного пользователя
-31InvalidLSIGLengthНедопустимое значение для подполя Длины UL поля Common Info, соответствуя длине устаревшего поля (L-SIG) сигнала.

Перечислимая величина кроме 0 средние значения это MPDU декодирование не пройдено. Если декодирование перестало работать, cfgMAC выведите не отображает свойств, и функция возвращает payload выведите как массив пустой ячейки.

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

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

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

Введенный в R2019a