wlanMPDUDecode
解码MPDU
语法
描述
例子
解码HE SU MPDU
创建WLAN MAC帧配置对象(HE SU格式),并生成MPDU。
phyFormat =“HE-SU”;cfgMAC = wlanMACFrameConfig (“FrameFormat”, phyFormat);Payload = randi([0 255],1,40);cfgMAC mpdu = wlanMACFrame(有效载荷,“OutputFormat”,“位”);
通过解码指定PHY格式配置的MPDU返回msdu。
[rxCfgMAC、有效载荷、状态]= wlanMPDUDecode (mpdu phyFormat);
通过显示状态确认解码成功。
disp(状态)
成功
解码Non-HT MPDU
创建WLAN的QoS数据帧MAC帧配置对象,生成MPDU。
cfgMAC = wlanMACFrameConfig (“FrameType”,“QoS数据”);Payload = randi([0 255],1,40);cfgMAC mpdu = wlanMACFrame(有效载荷,“OutputFormat”,“位”);
创建具有默认设置的非高吞吐量格式(非ht -format)配置对象。
cfgPHY = wlanNonHTConfig;
通过解码指定PHY格式配置的MPDU返回msdu。
[cfgMAC、有效载荷、状态]= wlanMPDUDecode (mpdu cfgPHY);
通过显示状态确认解码成功。
disp(状态)
成功
解码从A-MPDU提取的MPDUs
解聚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、状态)= wlanAMPDUDeaggregate (ampdu cfgPHY,...“DataFormat”,“八位位组”);disp(状态)
成功
disp (failCRC)
0 0 0 0 0 0 0 0 0
解码所有的MPDUs在提取。通过显示状态确认解码成功。
如果比较字符串(状态,“成功”)为i = 1:元素个数(mpduList)如果~ failCRC(我)[cfgMAC、有效载荷、状态(i)) =...cfgPHY wlanMPDUDecode (mpduList{我},...“DataFormat”,“八位位组”);结束结束结束disp(状态)
第一栏到第七栏成功成功成功成功成功成功成功成功第八栏成功
输入参数
mpdu
- - - - - -被解码的MPDU
binary-valued向量|区间[0,255]内整数的向量|字符串标量|字符数组
要解码的MPDU,指定为以下值之一。
以比特形式表示MPDU的二值向量
一个整数向量,其间隔为[0,255],以十进制格式表示八位元
一个字符串标量,以十六进制格式的八字节表示MPDU
以十六进制格式的八位元表示MPDU的字符向量
字符数组,其中每一行表示十六进制格式的一个八位元
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
phyFormat
- - - - - -PHY格式
“HE-SU”
|“HE-EXT-SU”
|“HE-MU
|“HE-TB”
|“VHT”
|“HT”
|“Non-HT”
PHY格式,指定为这些值之一。
“HE-SU”
—高效的HE SU (single-user)格式“HE-EXT-SU”
- HE增程SU (HE ER SU)格式“HE-MU”
—HE多用户(HE MU)格式“HE-TB”
—HE TB格式“VHT”
—VHT (very high-throughput)格式“HT”
—HT (High-throughput)格式“Non-HT”
——Non-HT格式
数据类型:字符
|字符串
cfgPHY
- - - - - -PHY格式和传输参数
wlanHESUConfig
对象|wlanHEMUConfig
对象|wlanHETBConfig
对象|wlanHERecoveryConfig
对象|wlanVHTConfig
对象|wlanHTConfig
对象|wlanNonHTConfig
对象
PHY格式和传输参数,指定为这些对象之一。
wlanHESUConfig
- HE SU或HE ER SU格式wlanHEMUConfig
- HE MU格式wlanHETBConfig
- HE TB格式wlanHERecoveryConfig
恢复HE SU、HE ER SU或HE MU格式的HE传输wlanVHTConfig
——VHT格式wlanHTConfig
- HT格式wlanNonHTConfig
—非高吞吐量(Non-high-throughput, non-HT)格式
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:DataFormat =的八位字节
DataFormat
- - - - - -输入MPDU格式
“位”
(默认)|“八位位组”
SuppressWarnings
- - - - - -抑制警告消息
假
或0
(默认)|真正的
或1
抑制警告消息,指定为以下值之一。
假
或0
—允许发送警告消息。真正的
或1
—屏蔽警告信息。
数据类型:逻辑
IsMeshFrame
- - - - - -网框显示
假
或0
(默认)|真正的
或1
网格帧指示,指定为数值或逻辑1
(真正的
)或0
(假
).若要指示帧起源于网格BSS中的网格站,请将此属性设置为1
(真正的
).该函数仅在解码QoS Data或QoS Null类型的帧时使用此参数。
数据类型:逻辑
输出参数
cfgMAC
- MAC帧配置
wlanMACFrameConfig
对象
MAC帧配置,返回为wlanMACFrameConfig
对象。
有效载荷
—一个或多个msdu
字符向量的单元格数组
一个或多个msdu,作为字符数组的单元格数组返回。该函数为每个MSDU返回一个字符数组。在这些字符数组中,每一行都是一个八位元的十六进制表示。对于每一个不包含数据的MAC帧,函数返回有效载荷
作为一个空单元格数组。
数据类型:细胞
状态
—MPDU解码状态
区间[- 31,0]的整数
MPDU解码状态,返回间隔为[- 31,0]的整数。每个值的状态
类的成员wlanMACDecodeStatus
枚举类,表示根据该表进行MAC帧解码的状态。
枚举值 | 枚举类的成员 | 解码状态 |
0 |
成功 |
MAC帧成功解码 |
-1 |
FCSFailed |
帧检查序列失败 |
-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 |
强制IEs失踪 |
-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 |
Common Info字段的UL Length子字段的值无效,对应遗留信号(L-SIG)字段的长度。 |
枚举值,而不是0
说明MPDU解码失败。如果解码失败,则cfgMAC
输出不显示属性,函数返回有效载荷
输出为空单元格数组。
数据类型:int16
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。