mcpField
M
matlab-generate-wlan-waveform

matlab-generate-wlan-waveform

github.com/matlabその他1.2k63 回インストール2 日前に更新
リポジトリ

matlab-generate-wlan-waveform について

デバイステスト、リンクレベルシミュレーション、信号解析向けに、IEEE 802.11準拠のWLAN IQ波形を生成する MATLAB スキルです。PHY設定、ペイロード長の調整、波形生成と描画を扱い、OFDMAやMU-MIMOにも対応します。

主な機能

  1. 01複数世代のIEEE 802.11 PHY形式
  2. 02帯域幅、MCS、空間ストリームの設定
  3. 03目標時間に合わせたペイロード長調整
  4. 04MACフレームまたはランダムビットの作成
  5. 05IQ波形の生成と描画

活用シーン

  1. 01デバイステスト用Wi-Fi波形の生成
  2. 02リンクレベルシミュレーションの送信部作成
  3. 03OFDMAリソースユニット割り当ての設定
  4. 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.yaml
references/
documentation-links.md
eht-allocation-indices.md
he-allocation-indices.md
mac-frame-properties.md
multi-packet-waveforms.md
trigger-based-uplink.md
uhr-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 で導入されたことを伝え、アップグレードを勧めてください。

ワークフロー

すべての波形生成は、次のパイプラインに従います。

  1. 形式を選択する → 設定オブジェクトを作成します(「形式の選択」を参照)
  2. PHY を設定する → 帯域幅、MCS、空間ストリーム、アンテナを設定します
  3. ペイロードサイズを決める → PSDU/APEP の長さを直接設定するか、目標持続時間から設定します
  4. ペイロードビットを作成する → ランダムビットまたは wlanMACFrame による MAC フレームを使用します
  5. 波形を生成する → wlanWaveformGenerator(bits, cfg)
  6. プロットして確認する → 時間領域の振幅を確認し、HE/EHT/UHR の設定では showAllocation を使用します

形式の選択

規格マーケティング名設定オブジェクト用途
802.11bWi-Fi 1wlanNonHTConfig(DSSS)SU のみ
802.11a/gWi-Fi 1/3wlanNonHTConfigSU のみ
802.11nWi-Fi 4wlanHTConfigSU のみ
802.11acWi-Fi 5wlanVHTConfigSU または MU-MIMO
802.11axWi-Fi 6wlanHESUConfigSU のみ
802.11axWi-Fi 6wlanHESUConfig(ExtendedRange)SU — 拡張範囲
802.11axWi-Fi 6wlanHEMUConfig(allocIdx)OFDMA および/または MU-MIMO
802.11axWi-Fi 6wlanHETBConfigSU アップリンク(トリガーベース)
802.11beWi-Fi 7wlanEHTMUConfig(allocIdx)OFDMA および/または MU-MIMO/MRU
802.11beWi-Fi 7wlanEHTMUConfig("CBW...")非 OFDMA MU-MIMO(全帯域 RU)
802.11beWi-Fi 7wlanEHTMUConfig("CBW...", EHTDUPMode=true)SU — DUP モード(MCS 14 のみ)
802.11beWi-Fi 7wlanEHTTBConfigSU アップリンク(トリガーベース)
802.11bnWi-Fi 8uhrMUConfig(allocIdx)OFDMA/MU-MIMO/UEQM(サンプルヘルパー)
802.11bnWi-Fi 8uhrMUConfig("CBW...")非 OFDMA MU-MIMO(サンプルヘルパー)
802.11bnWi-Fi 8uhrTBConfigSU アップリンク/DRU(サンプルヘルパー)
802.11bnWi-Fi 8uhrELRConfigSU 拡張長距離(サンプルヘルパー)

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 は作成後に変更できません。

送信時間の指定

目標送信時間からペイロードサイズを計算します。すべての値は整数のマイクロ秒です。

ConfigFunctionExample
wlanNonHTConfigwlanPSDULength(cfg, 'TxTime', us)cfg.PSDULength = wlanPSDULength(cfg, 'TxTime', 500);
wlanHTConfigwlanPSDULength(cfg, 'TxTime', us)cfg.PSDULength = wlanPSDULength(cfg, 'TxTime', 1000);
wlanVHTConfig(SU のみ)wlanAPEPLength(cfg, 'TxTime', us)cfg.APEPLength = wlanAPEPLength(cfg, 'TxTime', 2000);
wlanHESUConfigwlanAPEPLength(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 でエラーになります

送信時間の引数は秒ではなく整数のマイクロ秒です。 2e-3 ではなく 2000 を渡します。

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 長の取得方法はフォーマットによって異なります。誤ったパターンを使用するとエラーになります。

ConfigPSDU 長の取得方法Notes
wlanNonHTConfigcfg.PSDULength設定可能なプロパティ
wlanHTConfigcfg.PSDULength設定可能なプロパティ
wlanVHTConfigcfg.PSDULength読み取り専用プロパティ(APEPLength から算出)。MU ではベクトルです。
wlanHESUConfiggetPSDULength(cfg)メソッド呼び出しです。プロパティではありません。
wlanHEMUConfiggetPSDULength(cfg)メソッド呼び出しです。ベクトル(ユーザーごとに 1 つ)を返します。
wlanHETBConfiggetPSDULength(cfg)メソッド呼び出しです。HE-SU/HE-MU と同じです。
wlanEHTMUConfigpsduLength(cfg)HE とはメソッド名が異なります。ベクトルを返します。
wlanEHTTBConfigpsduLength(cfg)EHT-MU と同じメソッド名です。

getPSDULength と psduLength は互換ではありません。 HE では getPSDULength を使用します。EHT では psduLength を使用します。

主な関数

FunctionPurpose
wlanWaveformGenerator(bits, cfg)時間領域の IQ 波形を生成します
wlanSampleRate(cfg)構成のサンプルレートを取得します — 常にこれを使用してください
wlanHETBConfigHE トリガーベースのアップリンク(単一 STA)を構成します
wlanEHTTBConfigEHT トリガーベースのアップリンク(単一 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 に埋め込むには axes ハンドルを渡します
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 レイアウトユーザー数
026 トーン×99
96106 トーン×22
11252 トーン×44
192242 トーン×11
193242 トーン×12(MU-MIMO)
200484 トーン×1(40 MHz ペア)1
208996 トーン×1(80 MHz クアッド)1

40 MHz の場合はインデックスを 2 個、80 MHz の場合は 4 個、160 MHz の場合は 8 個指定します。

EHT-MU OFDMA 波形(MRU を使用)

EHT 割り当てインデックスは、1 人のユーザーに割り当てる非連続トーンブロックである複数リソースユニット(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 トーン割り当ての一部である場合
  • 29 — サブチャネルが、484 トーン割り当ての一部である場合
  • 30 — サブチャネルが、996 トーン割り当ての一部である場合
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 MHz192 + 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 ごとのパターンに従い、psduLength(cfg) の代わりに getPSDULength(cfg) を使用します。例:80 MHz、2 ユーザーの場合は cfg = wlanHEMUConfig([209 115 115 115]) です。

MAC フレームのペイロード

以下については、references/mac-frame-properties.md を参照してください。

  • 引数の順序、ペイロード形式(16 進オクテット)、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 サイズのルールに基づく分散リソースユニット

規約

  • 波形を生成した後は、ユーザーから具体的な指示がない限り、次の操作を行ってください。
    1. 波形変数名、サイズ、サンプルレートをユーザーに伝えます
    2. 時間軸をミリ秒で示して、時間領域の波形の振幅をプロットします
    3. HE、EHT、または UHR の設定では、showAllocation(cfg) を呼び出します
    4. 生成コードを 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 をサポート)。
  • プロット: subplot ではなく、tiledlayout/nexttile を使います。 showAllocation(cfg, ax) を使うと、既存のレイアウトに埋め込めます。

重要なルール

以下の制約は、最も多くのエラーの原因になります。wlanWaveformGenerator を呼び出す前に確認してください。

PSDU 長を取得する方法はフォーマットによって異なります

誤ったアクセサーを使うと、"Undefined function" エラーが発生したり、警告なしに誤った結果になったりします。

フォーマットPSDU 長の取得方法誤った方法
Non-HT、HTcfg.PSDULength(プロパティ)getPSDULength(cfg) — エラーになります
VHTcfg.PSDULength(読み取り専用)値の設定 — エラーになります
HE-SU、HE-MU、HE-TBgetPSDULength(cfg)psduLength(cfg) — エラーになります
EHT-MU、EHT-TBpsduLength(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 の違い
目的HEEHT(OFDMA)EHT(非 OFDMA)
サブチャネル全体をパンクチャする割り当てインデックス 113割り当てインデックス 26構築時に PuncturedChannelFieldValue を指定
ユーザーデータのみを無効にするSTAID=2046STAID=2046—

STAID=2046 はパンクチャリングを行いません。1 ユーザーのデータを無効にするだけです。

非 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 がデフォルトです

ユーザーが OFDMA や複数の RU に言及せずに「MU-MIMO」と述べた場合は、 非 OFDMA(全ユーザーで共有する単一の全帯域幅 RU)をデフォルトにします。

  • EHT: wlanEHTMUConfig("CBW80", NumUsers=N)
  • HE: 全帯域幅割り当てインデックス(Patterns セクションを参照)
ruInfo から取得するトリガーベースの RUIndex

TB 設定の RUIndex 値は、連番の RU 番号ではなく、 ruInfo(cfgMU).RUIndices に含まれるサブキャリアベースの位置です。誤った インデックスを使うと、サブキャリアの重複エラーが発生します。

コンストラクターでのみ設定できるプロパティ

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 + Upper106ToneRUMCS は 0 に制限されます。242 トーンの ER バリアントでは MCS 0-2 が使用できます。
VHT GroupID0/63 = SU。1-62 = MU-MIMO。誤った値でもエラーにならずに受け入れられます。
wlanAPEPLength は SU のみ対応VHT-SU、HE-SU、および EHT-MU のシングルユーザー(非 OFDMA)で動作します。MU/OFDMA 設定ではエラーになります。反復的な transmitTime ループを使用してください。
IEEE のバージョンを捏造しないでくださいWLAN Toolbox Release Notes を案内してください。

Copyright 2026 The MathWorks, Inc.

コメント