wlanMPDUDecode

Описание

пример

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

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

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

disp(status)
    Success

Создайте объект MAC системы координат строения WLAN для системы координат данных QoS, а затем сгенерируйте MPDU.

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

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

cfgPHY = wlanNonHTConfig;

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

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

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

disp(status)
    Success

Деагрегируйте VHT A-MPDU и декодируйте извлеченные MPDU.

Создайте объект MAC системы координат строения WLAN для VHT A-MPDU.

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

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

cfgPHY = wlanVHTConfig;

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

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

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

ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);

Извлеките список MPDU путем деагрегирования A-MPDU. Отображение статуса деагрегирования и CRC разделителя.

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

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

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 как октеты в шестнадцатеричном формате

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

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

Формат PHY, заданный как одно из следующих значений.

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

  • 'HE-EXT-SU' - HE расширенный формат SU (HE ER SU)

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

  • 'HE-TB' - Формат на основе триггеров (HE TB)

  • 'VHT' - Очень высокопроизводительный (VHT) формат

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

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

Формат PHY и параметры передачи, заданные как один из следующих объектов.

Аргументы в виде пар имя-значение

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

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

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

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

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

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

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

  • false или 0 - Разрешить предупреждающие сообщения.

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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