主要内容

wlanAMPDUDeaggregate

解聚A-MPDU,提取mpdu

描述

例子

mpduListfailCRC状态= wlanAMPDUDeaggregate(ampduphyFormat复苏mpduList,一个介质访问控制(MAC)协议数据单元(mpdu)的列表ampdu,一个聚合MPDU (A-MPDU)。函数通过使用适合的参数来解聚A-MPDUphyFormat,物理层(PHY)格式。

函数还返回failCRC中找到的子帧的分隔符循环冗余检查(CRC)状态ampdu,状态,表示A-MPDU解聚状态。

例子

mpduListfailCRC状态= wlanAMPDUDeaggregate(ampducfgPHY通过PHY传输参数对A-MPDU进行解聚cfgPHY

例子

mpduListfailCRC状态= wlanAMPDUDeaggregate(___名称,值除以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。

例子

全部折叠

创建WLAN MAC帧配置对象,指定帧类型、帧格式和MPDU聚合。

cfgMAC = wlanMACFrameConfig(“FrameType”“QoS数据”...“FrameFormat”“HT-Mixed”“MPDUAggregation”1);

创建HT配置对象,指定MPDU聚合。

cfgPHY = wlanHTConfig(“AggregatedMPDU”1);

创建一个8个msdu的随机有效载荷,然后用它生成一个比特形式的a - mpdu。

有效载荷= repmat({randi([0 255],1,40)},1,8);ampdu = wlanMACFrame(有效载荷,cfgMAC,cfgPHY,“OutputFormat”“位”);

通过解聚A-MPDU返回mpdu列表。

phyFormat =“HT”;[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,phyFormat);

通过显示分隔符CRC的结果和解码状态,确认解聚成功。

disp (failCRC)
0 0 0 0 0 0 0
disp(状态)
成功

创建WLAN MAC帧配置对象,指定帧类型和帧格式。

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

创建一个具有默认设置的VHT配置对象。

cfgPHY = wlanVHTConfig;

创建一个8个msdu的随机有效载荷,然后用它来生成一个比特形式的a - mpdu。

有效载荷= repmat({randi([0 255],1,40)},1,8);ampdu = wlanMACFrame(有效载荷,cfgMAC,cfgPHY,“Outputformat”“位”);

对A-MPDU进行解聚。

[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);

通过显示分隔符CRC的结果和解码状态,确认解聚成功。

disp (failCRC)
0 0 0 0 0 0 0
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(状态)
第一到第七栏成功成功成功成功成功成功成功成功第八栏成功

输入参数

全部折叠

要解聚合的A-MPDU,指定为以下值之一。

  • 以位格式表示A- mpdu的二进制值向量

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

  • 以十六进制格式的八字节表示A- mpdu的字符串标量

  • 用十六进制格式的八位元表示A- 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)格式

数据类型:字符|字符串

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

名称-值参数

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

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

例子:“DataFormat”、“八位字节的

输入A-MPDU的格式,指定为由逗号分隔的对组成“DataFormat”其中一个值。

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

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

数据类型:字符|字符串

禁止警告消息,指定为由逗号分隔的对组成“SuppressWarnings”其中一个值。

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

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

数据类型:逻辑

输出参数

全部折叠

MPDU列表,作为字符数组的单元格数组返回,其中每个字符数组对应一个MPDU。在这些字符数组中,每一行都是一个八位元的十六进制表示。

如果在输入的A-MPDU中没有找到MPDU分隔符,则函数返回mpduList作为一个空单元格数组。

数据类型:细胞

分隔符CRC失败指示符,作为逻辑值的行向量返回。这个向量的每个元素都表示A-MPDU子帧的分隔符CRC失败状态。

值为1k元素的第th个分隔符CRC失败k第A-MPDU子帧。在这种情况下,k的第Th元素mpduList包含一个可能无效的MPDU。

值为0k属性的分隔符CRCk子帧。在这种情况下,k的第Th元素mpduList包含有效的MPDU。

数据类型:逻辑

a - mpdu解聚状态,在间隔[- 20,0]内以非正整数形式返回。的每个枚举值状态类的成员wlanMACDecodeStatus枚举类,表示根据该表解析MAC帧的状态。

枚举值 枚举类的成员 解码状态
0 成功 MAC帧成功解码
-1 FCSFailed 帧检查序列(FCS)失败
-2 InvalidProtocolVersion 协议版本无效
3 Un万博1manbetxsupportedFrameType 不支万博1manbetx持的框架类型
4 Un万博1manbetxsupportedFrameSubtype 不支万博1manbetx持的帧子类型
5 NotEnoughData 解码帧的数据不足
6 Un万博1manbetxsupportedBAVariant 不支万博1manbetx持的块Ack帧的变体
7 UnknownBitmapSize 位图大小未知
8 UnknownAddressExtMode 未知地址扩展模式
9 MalformedAMSDULength 长度无效的畸形的聚合MAC服务数据单元(A-MSDU)
-10 MalformedSSID 格式错误的服务集标识符(SSID)信息元素(IE)
-11年 Malformed万博1manbetxSupportedRatesIE 畸形的支持率IE万博1manbetx
-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万博1manbetxsupportedTriggerType 不支万博1manbetx持的触发帧类型
-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万博1manbetxsupportedBARType BA万博1manbetxR控制字段的BAR类型子字段不支持的值
-30年 MissingUserInfo 接收到的触发帧包含无效的用户信息字段
-31年 InvalidLSIGLength 公共信息字段的UL长度子字段的值无效,对应于遗留信号(L-SIG)字段的长度。

以外的枚举值0意思是A-MPDU分解停止,因为输入的A-MPDU损坏或畸形。

数据类型:int16

扩展功能

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

版本历史

在R2019a中引入