主要内容

wlanMPDUDecode

解码MPDU

描述

例子

cfgMAC有效载荷状态= wlanMPDUDecode(mpduphyFormat复苏有效载荷,一个或多个MAC服务数据单元(msdu),通过解码MAC协议数据单元(MPDU)mpdu.该函数通过使用适合指定PHY格式的参数来解码MPDU。

函数还返回状态, MPDU解码结果,和cfgMAC,一个wlanMACFrameConfig配置对象。

例子

cfgMAC有效载荷状态= wlanMPDUDecode(mpducfgPHY通过PHY传输参数对MPDU进行解码cfgPHY

例子

cfgMAC有效载荷状态= wlanMPDUDecode(___名称=值使用一个或多个名称-值参数以及以前语法中的任何输入参数组合指定选项。

例子

全部折叠

创建MPDU的WLAN MAC帧配置对象(HE SU格式),然后生成MPDU。

phyFormat =“HE-SU”;cfgMAC = wlanMACFrameConfig(“FrameFormat”, phyFormat);有效载荷= randi([0 255],1,40);mpdu = wlanMACFrame(有效载荷,cfgMAC,“OutputFormat”“位”);

通过解码指定PHY格式配置的MPDU返回msdu。

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

通过显示状态确认解码成功。

disp(状态)
成功

创建QoS数据帧的WLAN MAC帧配置对象,生成MPDU。

cfgMAC = wlanMACFrameConfig(“FrameType”“QoS数据”);有效载荷= randi([0 255],1,40);mpdu = wlanMACFrame(有效载荷,cfgMAC,“OutputFormat”“位”);

使用默认设置创建一个非高吞吐量格式(非ht格式)配置对象。

cfgPHY = wlanNonHTConfig;

通过解码指定PHY格式配置的MPDU返回msdu。

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

通过显示状态确认解码成功。

disp(状态)
成功

解聚VHT a - mpdu并解码提取的mpdu。

创建VHT a - mpdu的WLAN MAC帧配置对象。

txCfgMAC = wlanMACFrameConfig(“FrameType”“QoS数据”...“FrameFormat”“VHT”);

创建一个具有默认设置的vht格式配置对象。

cfgPHY = wlanVHTConfig;

随机生成8个msdu的有效载荷。

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

为指定的MAC和PHY配置生成包含8个mpdu的A-MPDU。

ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);

通过解聚A-MPDU提取mpdu列表。显示分解和分隔符CRC的状态。

[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY, ampdu)...“DataFormat”“八位位组”);disp(状态)
成功
disp (failCRC)
0 0 0 0 0 0 0

解码所提取的所有mpdu。通过显示状态确认解码成功。

如果比较字符串(状态,“成功”i = 1:数字(mpduList)如果~failCRC(i) [cfgMAC,payload,status(i)] =...cfgPHY wlanMPDUDecode (mpduList{我},...“DataFormat”“八位位组”);结束结束结束disp(状态)
第一到第七栏成功成功成功成功成功成功成功成功第八栏成功

输入参数

全部折叠

要解码的MPDU,指定为这些值之一。

  • 以位形式表示MPDU的二进制值向量

  • 一个整数向量,间隔为[0,255],表示十进制格式的八位

  • 用十六进制格式的八字节表示MPDU的字符串标量

  • 用十六进制格式的八位元表示MPDU的字符向量

  • 字符数组,其中每行表示十六进制格式的一个八位元

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

PHY格式,指定为这些值之一。

  • “HE-SU”—HE SU (High-efficiency single-user)格式

  • “HE-EXT-SU”- HE增程SU (HE ER SU)格式

  • “HE-MU”—HE多用户(HE MU)格式

  • “HE-TB”—HE TB (trigger-based)格式

  • “VHT”—VHT (very high-throughput)格式

  • “HT”—HT (High-throughput)格式

  • “Non-HT”-非ht格式

数据类型:字符|字符串

PHY格式和传输参数,指定为这些对象之一。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:DataFormat =的八位字节

输入MPDU的格式,指定为这些值之一。

  • “位”—指定mpdu位格式输入

  • “八位位组”—指定mpdu以八位元格式输入

数据类型:字符|字符串

禁止警告消息,指定为这些值之一。

  • 0—允许发送警告信息。

  • 真正的1—屏蔽警告信息。

数据类型:逻辑

网格帧指示,指定为数字或逻辑1真正的)或0).若要指示框架起源于网格BSS中的网格站,请将此属性设置为1真正的).该函数仅在解码QoS Data或QoS Null类型的帧时使用此参数。

数据类型:逻辑

输出参数

全部折叠

MAC帧配置,返回为wlanMACFrameConfig对象。

一个或多个msdu,作为字符数组的单元格数组返回。该函数为每个MSDU返回一个字符数组。在这些字符数组中,每一行都是一个八位元的十六进制表示。对于每个不包含数据的MAC帧,函数返回有效载荷作为一个空单元格数组。

数据类型:细胞

MPDU解码状态,在间隔[- 31,0]内以整数形式返回。的每个值状态类的成员wlanMACDecodeStatus枚举类,根据该表指示MAC帧解码的状态。

枚举值 枚举类的成员 解码状态
0 成功 MAC帧成功解码
-1 FCSFailed 帧检查序列(FCS)失败
-2 InvalidProtocolVersion 协议版本无效
3 Un金宝appsupportedFrameType 不支金宝app持的框架类型
4 Un金宝appsupportedFrameSubtype 不支金宝app持的帧子类型
5 NotEnoughData 解码帧的数据不足
6 Un金宝appsupportedBAVariant 不支金宝app持的块Ack帧的变体
7 UnknownBitmapSize 位图大小未知
8 UnknownAddressExtMode 未知地址扩展模式
9 MalformedAMSDULength 长度无效的畸形的聚合MAC服务数据单元(A-MSDU)
-10年 MalformedSSID 格式错误的服务集标识符(SSID)信息元素(IE)
-11年 Malformed金宝appSupportedRatesIE 畸形的支持率IE金宝app
-12年 MalformedIELength IE长度字段不正确
-13年 MissingMandatoryIEs 强制性ie缺失
-14年 NoMPDUFound A-MPDU中没有发现MPDU
-15年 CorruptedAMPDU 接收到的A-MPDU中的所有分隔符都未通过循环冗余检查(CRC)
-16年 InvalidDelimiterLength MPDU分隔符中的长度字段无效
-17年 MaxAMSDULenthExceeded A-MSDU超过最大长度限制
-18年 MaxMPDULengthExceeded MPDU超过最大长度限制
-19年 MaxMMPDULengthExceeded MAC管理帧超过最大长度限制
-20年 MaxMSDULengthExceeded MSDU超过最大长度限制
-21年 UnexpectedProtectedFrame 此帧类型的保护位值无效
-22年 Un金宝appsupportedTriggerType 不支金宝app持的触发帧类型
-23年 UnknownHELTFTypeAndGI 未知警戒间隔(GI)和高效长训练场(HE-LTF)类型
-24年 UnknownAPTxPower 普通信息字段的AP Tx电源子字段的未知值
-25年 UnknownAID12Value 用户信息字段的AID12子字段的值未知
-26年 UnknownRUAllocation 用户信息字段的RU分配子字段中B7-B1的值未知
-27年 UnknownULMCS 用户信息字段的UL MCS子字段的值未知
-28年 UnknownTargetRSSI 用户信息字段的UL目标RSSI子字段的值未知
-29年 Un金宝appsupportedBARType BA金宝appR控制字段的BAR类型子字段不支持的值
-30年 MissingUserInfo 接收到的触发帧包含无效的用户信息字段
-31年 InvalidLSIGLength 公共信息字段的UL长度子字段的值无效,对应于遗留信号(L-SIG)字段的长度。

以外的枚举值0表示MPDU解码失败。如果解码失败,则cfgMAC输出不显示任何属性,函数返回有效载荷输出为空单元格数组。

数据类型:int16

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2019a中引入