关于 matlab-generate-wlan-waveform
此 MATLAB 技能指导生成符合 IEEE 802.11 标准的 WLAN 时域 IQ 波形,面向设备测试、链路级仿真和信号分析。内容涵盖 PHY 格式配置、载荷长度规划、波形生成与绘图验证,并包括 OFDMA 和 MU-MIMO 场景。
主要功能
- 01覆盖多代 IEEE 802.11 PHY 格式
- 02配置带宽、MCS 和空间流
- 03按目标时长规划载荷
- 04生成 MAC 帧或随机比特
- 05生成并绘制 IQ 波形
适用场景
- 01生成设备测试用 Wi-Fi 波形
- 02构建链路级仿真的发送端
- 03配置 OFDMA 资源单元分配
- 04制作指定时长的数据包
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-generate-wlan-waveform安装后在 Claude Code 中输入/matlab-generate-wlan-waveform确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manifest.yamlreferences/documentation-links.mdeht-allocation-indices.mdhe-allocation-indices.mdmac-frame-properties.mdmulti-packet-waveforms.mdtrigger-based-uplink.mduhr-waveform-generation.md详细介绍
生成 WLAN 波形
生成符合标准的 IEEE 802.11 波形,用于设备测试、链路级 仿真或信号分析。本技能涵盖发射链路:配置 PHY 格式、设置负载大小、生成时域 IQ 波形并绘图。
适用场景
- 为任意 802.11 标准生成 WLAN/Wi-Fi 测试波形
- 创建链路级仿真的发射端
- 构建具有特定 MAC 帧类型(Data、Block Ack、Beacon 等)的数据包
- 配置 OFDMA 资源单元分配(HE-MU、EHT-MU 或 UHR-MU)
- 配置 MU-MIMO 传输(VHT、HE、EHT、UHR)
- UHR 功能:UEQM(按流设置 MCS)、DRU、LDPC2x、ELR(增强型长距离)
- 针对特定数据包时长或发射时间
不适用场景
- 信道建模、接收机处理、EVM/频谱掩模——不在涵盖范围内
- 非 WLAN 波形(5G NR、LTE、Bluetooth)
UHR(802.11bn)需要 R2026a 或更高版本。 如果用户请求生成 UHR 波形, 而其版本较旧,请告知他们 UHR 支持从 R2026a 开始提供,并建议升级。
工作流
每次波形生成都遵循以下流程:
- 选择格式 → 创建配置对象(参见“格式选择”)
- 配置 PHY → 设置带宽、MCS、空间流和天线
- 设置负载大小 → 直接设置 PSDU/APEP 长度,或根据目标时长设置
- 创建负载比特 → 随机比特,或通过
wlanMACFrame创建 MAC 帧 - 生成波形 →
wlanWaveformGenerator(bits, cfg) - 绘图并验证 → 时域幅度;对于 HE/EHT/UHR 配置,使用
showAllocation
格式选择
| 标准 | 市场名称 | 配置对象 | 用户类型 |
|---|---|---|---|
| 802.11b | Wi-Fi 1 | wlanNonHTConfig(DSSS) | 仅 SU |
| 802.11a/g | Wi-Fi 1/3 | wlanNonHTConfig | 仅 SU |
| 802.11n | Wi-Fi 4 | wlanHTConfig | 仅 SU |
| 802.11ac | Wi-Fi 5 | wlanVHTConfig | SU 或 MU-MIMO |
| 802.11ax | Wi-Fi 6 | wlanHESUConfig | 仅 SU |
| 802.11ax | Wi-Fi 6 | wlanHESUConfig(ExtendedRange) | SU — 扩展覆盖范围 |
| 802.11ax | Wi-Fi 6 | wlanHEMUConfig(allocIdx) | OFDMA 和/或 MU-MIMO |
| 802.11ax | Wi-Fi 6 | wlanHETBConfig | SU 上行链路(基于触发) |
| 802.11be | Wi-Fi 7 | wlanEHTMUConfig(allocIdx) | OFDMA 和/或 MU-MIMO / MRU |
| 802.11be | Wi-Fi 7 | wlanEHTMUConfig("CBW...") | 非 OFDMA MU-MIMO(全带宽 RU) |
| 802.11be | Wi-Fi 7 | wlanEHTMUConfig("CBW...", EHTDUPMode=true) | SU — DUP 模式(仅 MCS 14) |
| 802.11be | Wi-Fi 7 | wlanEHTTBConfig | SU 上行链路(基于触发) |
| 802.11bn | Wi-Fi 8 | uhrMUConfig(allocIdx) | OFDMA / MU-MIMO / UEQM(示例辅助函数) |
| 802.11bn | Wi-Fi 8 | uhrMUConfig("CBW...") | 非 OFDMA MU-MIMO(示例辅助函数) |
| 802.11bn | Wi-Fi 8 | uhrTBConfig | SU 上行链路 / DRU(示例辅助函数) |
| 802.11bn | Wi-Fi 8 | uhrELRConfig | SU 增强型长距离(示例辅助函数) |
对于 OFDMA 格式(HE-MU、EHT-MU),构造函数接受的是分配索引, 而不是 RU 大小。请参阅 references/he-allocation-indices.md 和 references/eht-allocation-indices.md。
UHR(802.11bn / Wi-Fi 8)使用示例辅助文件,而非工具箱内置对象。
使用 setupExample("wlan/UHRParameterizationExample", scriptFolder) 将辅助文件复制到脚本的工作文件夹。
UHR 支持 UEQM(按流设置 MCS)、DRU、LDPC2x、ELR(增强型长距离)以及新的 MCS
值(15-23)。分配索引与 EHT 相同。请参阅
references/uhr-waveform-generation.md。
有关格式特定的约束(分配索引方案、 HT MCS 编码、DSSS 属性),请参阅关键规则。
EHT DUP 模式会在各子信道上复制信号,以实现稳健覆盖。
在构造时设置:wlanEHTMUConfig("CBW80", EHTDUPMode=true)。约束条件:
仅支持 MCS 14(BPSK-DCM)、单用户、1 个空间流、不允许打孔,
以及 80/160/320 MHz。构造后 EHTDUPMode 为只读属性。
按时长设定
根据目标时长计算载荷大小。所有数值均为整数微秒。
| 配置 | 函数 | 示例 |
|---|---|---|
wlanNonHTConfig | wlanPSDULength(cfg, 'TxTime', us) | cfg.PSDULength = wlanPSDULength(cfg, 'TxTime', 500); |
wlanHTConfig | wlanPSDULength(cfg, 'TxTime', us) | cfg.PSDULength = wlanPSDULength(cfg, 'TxTime', 1000); |
wlanVHTConfig(仅 SU) | wlanAPEPLength(cfg, 'TxTime', us) | cfg.APEPLength = wlanAPEPLength(cfg, 'TxTime', 2000); |
wlanHESUConfig | wlanAPEPLength(cfg, 'TxTime', us) | cfg.APEPLength = wlanAPEPLength(cfg, 'TxTime', 3000); |
wlanEHTMUConfig(SU 非 OFDMA) | wlanAPEPLength(cfg, 'TxTime', us) | cfg.User{1}.APEPLength = wlanAPEPLength(cfg, 'TxTime', 1000); |
| 任意 MU/OFDMA 配置 | 迭代 transmitTime 循环 | 见下文 — wlanAPEPLength 在 MU/OFDMA 配置下会报错 |
**时长参数的单位是整数微秒,而非秒。**传入 2000,而不是 2e-3。
MU 时长设定(迭代)
对于任意 MU 配置(用户同质,即使用相同的 MCS、RU 大小和空间流):
targetDuration = 1e-3; apepLen = 2000; % initial guess
for iter = 1:10
for u = 1:numUsers, cfg.User{u}.APEPLength = apepLen; end
txTime = transmitTime(cfg);
if abs(txTime - targetDuration)/targetDuration < 0.01, break; end
apepLen = round(apepLen * targetDuration / txTime);
end
**异质用户(MCS/RU/STS 不同):**容量最低的用户决定时长。
根据流量需求为每个用户设置 APEPLength;使用 transmitTime(cfg)。
获取 PSDU 长度
获取 PSDU 长度的方式因格式而异。使用错误的方式会导致报错。
| 配置 | 获取 PSDU 长度的方式 | 备注 |
|---|---|---|
wlanNonHTConfig | cfg.PSDULength | 可设置的属性 |
wlanHTConfig | cfg.PSDULength | 可设置的属性 |
wlanVHTConfig | cfg.PSDULength | 只读属性(根据 APEPLength 推导)。MU 时为向量。 |
wlanHESUConfig | getPSDULength(cfg) | 方法调用。不是属性。 |
wlanHEMUConfig | getPSDULength(cfg) | 方法调用。返回向量(每个用户一个值)。 |
wlanHETBConfig | getPSDULength(cfg) | 方法调用。与 HE-SU/HE-MU 相同。 |
wlanEHTMUConfig | psduLength(cfg) | 方法名与 HE 不同。返回向量。 |
wlanEHTTBConfig | psduLength(cfg) | 方法名与 EHT-MU 相同。 |
**getPSDULength 和 psduLength 不能互换。**HE 使用
getPSDULength。EHT 使用 psduLength。
主要函数
| 函数 | 用途 |
|---|---|
wlanWaveformGenerator(bits, cfg) | 生成时域 IQ 波形 |
wlanSampleRate(cfg) | 获取配置的采样率 — 始终使用此函数 |
wlanHETBConfig | 配置基于 HE 触发的上行链路(单个 STA) |
wlanEHTTBConfig | 配置基于 EHT 触发的上行链路(单个 STA) |
wlanMACFrame(payload, cfgMAC) | 生成 MAC 帧比特(见 references/mac-frame-properties.md) |
wlanAPEPLength(cfg, 'TxTime', us) | 目标时长对应的 APEP 长度(VHT-SU、HE-SU、EHT-MU 单用户) |
wlanPSDULength(cfg, 'TxTime', us) | 目标时长对应的 PSDU 长度(NonHT/HT) |
transmitTime(cfg) 或 transmitTime(cfg, 'microseconds') | 获取传输时长 — 使用单位参数,而不是 * 1e6 |
showAllocation(cfg) 或 showAllocation(cfg, ax) | 绘制 RU 分配 — 传入坐标区句柄,以嵌入 tiledlayout |
ruInfo(cfg) | 查询 RU 大小、索引和用户数 |
如果需要验证属性名称、查看配置对象的有效值,或查找此技能未涵盖的参数,请参阅 references/documentation-links.md 中的在线文档链接。
模式
具有目标时长的单用户波形
cfg = wlanVHTConfig;
cfg.ChannelBandwidth = 'CBW80';
cfg.MCS = 9;
cfg.NumTransmitAntennas = 4;
cfg.NumSpaceTimeStreams = 4;
cfg.SpatialMapping = 'Fourier';
% Size payload for 2 ms transmit time
cfg.APEPLength = wlanAPEPLength(cfg, 'TxTime', 2000);
% Generate waveform: 3 packets, 20 us idle
psduBits = randi([0 1], cfg.PSDULength * 8, 1);
waveform = wlanWaveformGenerator(psduBits, cfg, ...
'NumPackets', 3, 'IdleTime', 20e-6);
fs = wlanSampleRate(cfg);
DSSS(802.11b)波形
cfg = wlanNonHTConfig;
cfg.Modulation = 'DSSS';
cfg.DataRate = '11Mbps'; % '1Mbps', '2Mbps', '5.5Mbps', or '11Mbps'
cfg.PSDULength = 1000;
psduBits = randi([0 1], cfg.PSDULength * 8, 1);
waveform = wlanWaveformGenerator(psduBits, cfg);
fs = wlanSampleRate(cfg); % 11 MHz (chip rate)
HE-MU OFDMA 波形
对于 OFDMA,构造函数接受每个 20 MHz 子信道的分配索引。 完整的索引到 RU 映射请参阅 references/he-allocation-indices.md。
% 80 MHz, four 242-tone RUs (index 192 = one 242-tone RU per subchannel)
cfg = wlanHEMUConfig([192 192 192 192]);
cfg.NumTransmitAntennas = 4;
% Configure per-user parameters
for u = 1:4
cfg.User{u}.MCS = u + 6; % MCS 7, 8, 9, 10
cfg.User{u}.NumSpaceTimeStreams = 1;
cfg.User{u}.APEPLength = 4000;
cfg.User{u}.ChannelCoding = 'LDPC';
end
% Use Fourier spatial mapping when NumSTS < NumTransmitAntennas per RU
for r = 1:numel(cfg.RU)
cfg.RU{r}.SpatialMapping = 'Fourier';
end
% Generate PSDU bits per user
psduLen = getPSDULength(cfg);
txData = cell(1, numel(psduLen));
for u = 1:numel(psduLen)
txData{u} = randi([0 1], psduLen(u) * 8, 1);
end
waveform = wlanWaveformGenerator(txData, cfg);
showAllocation(cfg);
常见 HE 分配索引(每个 20 MHz 子信道):
| 索引 | RU 布局 | 用户数 |
|---|---|---|
| 0 | 九个 26-tone | 9 |
| 96 | 两个 106-tone | 2 |
| 112 | 四个 52-tone | 4 |
| 192 | 一个 242-tone | 1 |
| 193 | 一个 242-tone | 2(MU-MIMO) |
| 200 | 一个 484-tone(40 MHz 对) | 1 |
| 208 | 一个 996-tone(80 MHz 四元组) | 1 |
对于 40 MHz,提供 2 个索引。对于 80 MHz,提供 4 个。对于 160 MHz,提供 8 个。
EHT-MU OFDMA 波形(含 MRU)
EHT 分配索引支持多资源单元(MRU)——分配给单个用户的非连续音调块。完整映射请参阅 references/eht-allocation-indices.md。
% 80 MHz: 484+242 MRU on subchannels 1-3, 106+26+106 on subchannel 4
% Index 120 = 484+242 MRU (1 MU-MIMO user), 29/28 = continuation, 25 = 106+26+106
cfg = wlanEHTMUConfig([120 29 28 25]);
cfg.NumTransmitAntennas = 2;
% Set APEPLength appropriate to RU size (26-tone RUs have low throughput)
apepPerUser = [2000, 500, 100, 500]; % MRU, 106-tone, 26-tone, 106-tone
mcsPerUser = [7, 4, 2, 4];
for u = 1:numel(cfg.User)
cfg.User{u}.APEPLength = apepPerUser(u);
cfg.User{u}.MCS = mcsPerUser(u);
cfg.User{u}.NumSpaceTimeStreams = 1;
cfg.User{u}.ChannelCoding = 'LDPC';
end
for r = 1:numel(cfg.RU)
cfg.RU{r}.SpatialMapping = 'Fourier';
end
% EHT uses psduLength(), NOT getPSDULength()
psduLens = psduLength(cfg);
txData = cell(1, numel(psduLens));
for u = 1:numel(psduLens)
txData{u} = randi([0 1], psduLens(u) * 8, 1);
end
waveform = wlanWaveformGenerator(txData, cfg);
showAllocation(cfg);
**EHT 延续索引:**当 RU 跨越多个 20 MHz 子信道时,为额外的子信道使用延续索引:
- 28 — 子信道属于更大的 242-tone 分配
- 29 — 子信道属于 484-tone 分配
- 30 — 子信道属于 996-tone 分配
VHT MU-MIMO 波形
cfg = wlanVHTConfig;
cfg.ChannelBandwidth = 'CBW80';
cfg.NumUsers = 2;
cfg.NumTransmitAntennas = 4;
cfg.NumSpaceTimeStreams = [2 2];
cfg.MCS = [8 8];
cfg.APEPLength = [1024 1024];
cfg.GroupID = 2; % MU-MIMO: must be 1-62
cfg.SpatialMapping = 'Fourier'; % Required when total STS < NumTxAntennas
psduLen = cfg.PSDULength; % Read-only vector for MU
txData = cell(1, cfg.NumUsers);
for u = 1:cfg.NumUsers
txData{u} = randi([0 1], psduLen(u) * 8, 1);
end
waveform = wlanWaveformGenerator(txData, cfg);
非 OFDMA MU-MIMO 波形(EHT 和 HE)
当用户请求不使用 OFDMA 的 MU-MIMO(所有用户共享单个全带宽 RU)时,使用以下模式。如果用户提到“MU-MIMO”,但未提及 OFDMA 或多个 RU,则默认使用非 OFDMA。
EHT — 使用字符串构造函数(无需分配索引):
% 80 MHz, 2 MU-MIMO users on a single 996-tone RU (non-OFDMA)
cfg = wlanEHTMUConfig("CBW80", NumUsers=2);
cfg.NumTransmitAntennas = 4;
cfg.User{1}.NumSpaceTimeStreams = 2;
cfg.User{1}.MCS = 9;
cfg.User{1}.APEPLength = 4000;
cfg.User{1}.ChannelCoding = 'LDPC';
cfg.User{2}.NumSpaceTimeStreams = 2;
cfg.User{2}.MCS = 7;
cfg.User{2}.APEPLength = 4000;
cfg.User{2}.ChannelCoding = 'LDPC';
cfg.RU{1}.SpatialMapping = 'Fourier';
psduLens = psduLength(cfg);
txData = cell(1, numel(psduLens));
for u = 1:numel(psduLens)
txData{u} = randi([0 1], psduLens(u) * 8, 1);
end
waveform = wlanWaveformGenerator(txData, cfg);
有效带宽:"CBW20"、"CBW40"、"CBW80"、"CBW160"、"CBW320"。
最多支持 8 个用户。支持通过 PuncturedChannelFieldValue 进行打孔。
HE — 没有字符串构造函数;使用全带宽分配索引:
| 带宽 | N 个用户的索引 | 零用户索引 |
|---|---|---|
| 20 MHz | 192 + N - 1 | 不适用 |
| 40 MHz | [200 + N - 1, 114] | 114 |
| 80 MHz | [208 + N - 1, 115, 115, 115] | 115 |
| 160 MHz | [216 + N - 1, 115, 115, 115, 115, 115, 115, 115] | 115 |
遵循与上述 EHT 相同的逐用户/逐 RU 模式,并使用 getPSDULength(cfg) 代替 psduLength(cfg)。示例:对于 80 MHz、2 个用户,使用 cfg = wlanHEMUConfig([209 115 115 115])。
MAC 帧载荷
有关以下内容,请参阅 references/mac-frame-properties.md:
- 参数顺序、载荷格式(十六进制八位组)和 PHY 配置要求
- 帧类型、属性和聚合(A-MSDU、A-MPDU)
- 常见错误和调用约定
多数据包波形
有关以下内容,请参阅 references/multi-packet-waveforms.md:
- 使用
wlanMSDULengths(uint8 MSDU 元胞数组)进行 A-MPDU 聚合 - 多数据包波形 — 相同格式(
NumPackets、IdleTime)或混合格式的拼接,并采用 SIFS/DIFS/PIFS 间隔
速查 — 帧间间隔:SIFS=16 μs,DIFS=34 μs,PIFS=25 μs。
基于触发的(TB)上行链路
有关以下内容,请参阅 references/trigger-based-uplink.md:
- HE TB(
wlanHETBConfig)、EHT TB(wlanEHTTBConfig)、UHR TB(uhrTBConfig) ruInfo(cfgMU)返回的RUSize/RUIndex、LTF 符号、OversamplingFactor- UHR DRU — 分布式资源单元及 DBW/RU 大小规则
约定
- 生成波形后,除非用户提出了具体要求:
- 告知用户波形变量名、大小和采样率
- 绘制时域波形幅度图,并以毫秒为时间轴单位
- 对于 HE、EHT 或 UHR 配置,调用
showAllocation(cfg) - 按照
matlab-create-live-script技能格式(%[text]标记、%%分节、必需的附录),将生成代码保存为纯文本 Live Code.m文件。使用edit('scriptName.m')在编辑器中打开。
- UHR 脚本使用工作文件夹——使用
setupExample将辅助文件复制到与脚本相同的文件夹中。请参阅 references/uhr-waveform-generation.md。 - 单用户有效载荷是普通列向量——只有多用户时才使用元胞数组。使用
wlanWaveformGenerator(bits, cfg),而不是wlanWaveformGenerator({bits}, cfg)。 - 始终使用
wlanSampleRate(cfg)——切勿硬编码。对于 UHR 配置,使用wlanSampleRate(cfg.ChannelBandwidth)(目前尚不支持 UHR 对象)。 - OFDMA 带宽为只读——根据分配索引向量的长度推断(1→20、2→40、4→80、8→160 MHz)。
- 单位:
IdleTime的单位为秒(20e-6)。时长函数使用整数微秒(2000)。OversamplingFactor乘以wlanSampleRate。transmitTime(cfg, 'microseconds')——显示时使用单位参数,而不是* 1e6。有效单位:'seconds'、'milliseconds'、'microseconds'、'nanoseconds'。 - 使用
ruInfo(cfg)验证多用户配置——构造任何 OFDMA 或 MU-MIMO 配置后,调用ruInfo并检查NumUsers、NumUsersPerRU和RUSizes是否与请求一致。错误的分配索引会静默地产生错误的用户数量。 - **ruInfo:**HE 返回数值数组。EHT 返回元胞数组(支持 MRU)。
- **绘图:**使用
tiledlayout/nexttile(而不是subplot)。showAllocation(cfg, ax)可嵌入现有布局。
关键规则
这些限制最容易导致错误。调用 wlanWaveformGenerator 前请先检查。
不同格式的 PSDU 长度获取方法不同
使用错误的访问器会抛出“Undefined function”错误,或静默地产生错误结果。
| 格式 | 获取 PSDU 长度的方法 | 错误做法 |
|---|---|---|
| Non-HT、HT | cfg.PSDULength(属性) | getPSDULength(cfg) — 会报错 |
| VHT | cfg.PSDULength(只读) | 设置该属性 — 会报错 |
| HE-SU、HE-MU、HE-TB | getPSDULength(cfg) | psduLength(cfg) — 会报错 |
| EHT-MU、EHT-TB | psduLength(cfg) | getPSDULength(cfg) — 会报错 |
分配索引不是 RU 大小
wlanHEMUConfig(242) 无效。242 音调 RU 应使用 wlanHEMUConfig(192)。wlanEHTMUConfig(242) 同样无效——应使用 wlanEHTMUConfig(64)。请务必查阅分配索引参考表。
**HE 和 EHT 使用完全不同的索引方案。**242 音调 RU 在 HE 中的索引为 192,在 EHT 中则为 64。切勿混用。
HE-MU 多子信道 RU 索引用于指示每个内容信道中的用户数量——请参阅 references/he-allocation-indices.md。
前导码打孔与 STAID=2046
| 目标 | HE | EHT(OFDMA) | EHT(非 OFDMA) |
|---|---|---|---|
| 完全打孔子信道 | 分配索引 113 | 分配索引 26 | 构造时设置 PuncturedChannelFieldValue |
| 仅禁用用户数据 | STAID=2046 | STAID=2046 | — |
STAID=2046 不会打孔——它只会禁用一个用户的数据。
非 OFDMA 打孔使用 PuncturedChannelFieldValue(80 MHz 时取值为 1–4,对应子信道 1–4)。必须在构造时设置:
wlanEHTMUConfig("CBW80", NumUsers=2, PuncturedChannelFieldValue=3)
空间映射规则
NumSpaceTimeStreams < NumTransmitAntennas per RU → SpatialMapping = 'Fourier'
NumSpaceTimeStreams == NumTransmitAntennas → SpatialMapping = 'Direct'
当 STS < 天线数时,使用 'Direct' 会导致维度不匹配错误。
MU-MIMO 默认采用非 OFDMA 模式
用户只提到“MU-MIMO”,未提及 OFDMA 或多个 RU 时, 默认采用非 OFDMA 模式(所有用户共享一个全带宽 RU):
- EHT:
wlanEHTMUConfig("CBW80", NumUsers=N) - HE: 全带宽分配索引(请参阅“模式”部分)
基于 ruInfo 的触发式 RUIndex
TB 配置中的 RUIndex 值是来自
ruInfo(cfgMU).RUIndices 的基于子载波的位置,不是顺序 RU 编号。使用错误的
索引会导致子载波重叠错误。
仅可在构造时设置的属性
wlanEHTMUConfig 的 EHTDUPMode、PuncturedChannelFieldValue 和 NumUsers
属性在构造后为只读——请在构造函数中将它们作为名称-值对传入。完整列表和示例请参阅 references/eht-allocation-indices.md。
特定格式的约束
| 约束 | 详情 |
|---|---|
| HT MCS 编码空间流数 | MCS 0-7 = 1 SS,8-15 = 2 SS,16-23 = 3 SS,24-31 = 4 SS。设置 NumSpaceTimeStreams = floor(MCS/8) + 1。 |
| DSSS 没有 OFDM 属性 | 使用 DataRate('1Mbps'...'11Mbps')。没有 ChannelBandwidth、MCS、NumTransmitAntennas 或 NumSpaceTimeStreams。 |
| HE ER + Upper106ToneRU | 将 MCS 限制为 0。242 音调 ER 变体允许 MCS 0-2。 |
| VHT GroupID | 0/63 = SU。1-62 = MU-MIMO。错误值会被静默接受。 |
wlanAPEPLength 仅适用于 SU | 适用于 VHT-SU、HE-SU 和单用户 EHT-MU(非 OFDMA)。任何 MU/OFDMA 配置都会报错——请使用迭代式 transmitTime 循环。 |
| 不要捏造 IEEE 版本 | 请引导用户查阅 WLAN Toolbox 发行说明。 |
版权所有 2026 The MathWorks, Inc.