このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
wirelessNetworkSimulator
必要なダウンロード: wirelessNetworkSimulator を使用するには、最初に Communications Toolbox Wireless Network Simulation Library アドオンをダウンロードします。
説明
Add-On Required: この機能にはが必要です。
wirelessNetworkSimulator オブジェクトは、さまざまな種類の無線ノードを使用してさまざまなワイヤレス ネットワークのシナリオをシミュレートします。オブジェクト関数を使用してシミュレーターにノードを追加し、ノードを操作し、シミュレーション中に実行するアクションのスケジュールを設定し、カスタム チャネル モデルを挿入し、シミュレーションを実行します。
作成
説明
は、既定のプロパティ値を使用して networkSimulator = wirelessNetworkSimulator.initwirelessNetworkSimulator オブジェクトを作成します。wirelessNetworkSimulator オブジェクト networkSimulator が MATLAB® ワークスペースに既に存在する場合、この関数はこのオブジェクトを既定の状態にリセットします。
メモ
既定では、ワイヤレス ネットワーク シミュレーターは単入力単出力 (SISO) のシナリオをサポートします。SISO 以外のシナリオをシミュレートするには、関数addChannelModelを使用してチャネル モデルを追加しなければなりません。
プロパティ
この プロパティ は読み取り専用です。
現在のシミュレーション時間。非負のスカラーとして格納されます。単位は秒です。
データ型: double
この プロパティ は読み取り専用です。
チャネル モデル。関数ハンドルとして格納されます。既定では、シミュレーターは関数 fspl を使用してチャネルをモデル化します。カスタムのチャネル モデルを指定するには、関数 addChannelModel を使用します。
データ型: function_handle
この プロパティ は読み取り専用です。
シミュレーション終了時間。非負のスカラーとして格納されます。単位は秒です。
データ型: double
この プロパティ は読み取り専用です。
シミュレーターに追加するノード。bluetoothLENode (Bluetooth Toolbox) オブジェクト、bluetoothNode (Bluetooth Toolbox) オブジェクト、wlanNode (WLAN Toolbox) オブジェクト、nrGNB (5G Toolbox) オブジェクト、または nrUE (5G Toolbox) オブジェクトを各セルに含む cell 配列として格納されます。
オブジェクト関数
wirelessNetworkSimulator.getInstance | |
addNodes | シミュレーターにノードを追加する |
addChannelModel | |
scheduleAction | |
cancelAction | |
run |
例
関数 wirelessNetworkSimulator.init() を使用してwirelessNetworkSimulatorオブジェクトを作成します。既定では、wirelessNetworkSimulator オブジェクトは自由空間パス損失モデルをチャネルの影響として適用します。
networkSimulator = wirelessNetworkSimulator.init();
2 つの Bluetooth BR ノードを作成します。1 つには "central" の役割、もう 1 つには "peripheral" の役割をもたせます。Peripheral ノードの位置をメートル単位で指定します。
centralNode = bluetoothNode("central"); peripheralNode = bluetoothNode("peripheral",Position=[1 0 0]);
Bluetooth BR の Central ノードと Peripheral ノードの間の接続を構成して共有するため、既定の Bluetooth BR 接続構成オブジェクトを作成します。
cfgConnection = bluetoothConnectionConfig;
Central ノードと Peripheral ノードの間の接続を構成します。
connection = configureConnection( ...
cfgConnection,centralNode,peripheralNode);オンオフ アプリケーションのトラフィック パターンを生成するため、オブジェクトを作成して構成します。
traffic = networkTrafficOnOff( ... DataRate=200, ... PacketSize=27, ... GeneratePacket=true, ... OnTime=inf);
Central ノードから Peripheral ノードへのアプリケーション トラフィックを追加します。
addTrafficSource(centralNode,traffic, ...
DestinationNode=peripheralNode);Central ノードと Peripheral ノードをワイヤレス ネットワーク シミュレーターに追加します。
addNodes(networkSimulator,[centralNode peripheralNode]);
シミュレーション時間を秒単位で指定します。
simulationTime = 0.05;
指定したシミュレーション時間だけシミュレーションを実行します。
run(networkSimulator,simulationTime);
Central ノードと Peripheral ノードに対応するアプリケーション統計、ベースバンド統計、物理レイヤー (PHY) 統計を取得します。
centralStats = statistics(centralNode)
centralStats = struct with fields:
Name: "Node1"
ID: 1
App: [1×1 struct]
Baseband: [1×1 struct]
PHY: [1×1 struct]
peripheralStats = statistics(peripheralNode)
peripheralStats = struct with fields:
Name: "Node2"
ID: 2
App: [1×1 struct]
Baseband: [1×1 struct]
PHY: [1×1 struct]
wirelessNetworkSimulatorオブジェクトを作成します。
networkSimulator = wirelessNetworkSimulator.init();
2 つの Bluetooth BR ノードを作成します。1 つには "central" の役割、もう 1 つには "peripheral" の役割をもたせます。Peripheral ノードの位置をメートル単位で指定します。
centralNode = bluetoothNode("central"); peripheralNode = bluetoothNode("peripheral",Position=[1 0 0]);
Bluetooth BR の Central ノードと Peripheral ノードの間の接続を構成して共有するため、既定の Bluetooth BR 接続構成オブジェクトを作成します。
cfgConnection = bluetoothConnectionConfig;
Central ノードと Peripheral ノードの間の接続を構成します。
connection = configureConnection(cfgConnection,centralNode,peripheralNode);
オンオフ アプリケーションのトラフィック パターンを生成するため、オブジェクトを作成して構成します。
traffic = networkTrafficOnOff(DataRate=200,PacketSize=27, ...
GeneratePacket=true,OnTime=inf);Central ノードから Peripheral ノードへのアプリケーション トラフィックを追加します。
addTrafficSource(centralNode,traffic, ...
DestinationNode=peripheralNode);Central ノードと Peripheral ノードをワイヤレス ネットワーク シミュレーターに追加します。
addNodes(networkSimulator,[centralNode peripheralNode]);
既定では、wirelessNetworkSimulator オブジェクトは自由空間パス損失モデルをチャネルの影響として適用します。関数 addChannelModel を使用することで、カスタムのチャネルの影響を追加できます。ただし、チャネルの影響なしでチャネルをモデル化するには、カスタム MATLAB™ 関数 removeChannelEffect を指定します。これにより、入力された送信パケットがそのまま変更されずに出力で返されるようになります。
addChannelModel(networkSimulator,@removeChannelEffect);
シミュレーション時間を秒単位で指定します。
simulationTime = 0.05;
指定したシミュレーション時間だけシミュレーションを実行します。
run(networkSimulator,simulationTime);
Central ノードと Peripheral ノードに対応するアプリケーション統計、ベースバンド統計、物理レイヤー (PHY) 統計を取得します。
centralStats = statistics(centralNode)
centralStats = struct with fields:
Name: "Node1"
ID: 1
App: [1×1 struct]
Baseband: [1×1 struct]
PHY: [1×1 struct]
peripheralStats = statistics(peripheralNode)
peripheralStats = struct with fields:
Name: "Node2"
ID: 2
App: [1×1 struct]
Baseband: [1×1 struct]
PHY: [1×1 struct]
function outputData = removeChannelEffect(~,txData) outputData = txData; end
この例では、IEEE® 802.11ax™ (Wi-Fi 6) メッシュ ネットワークを作成、構成、およびシミュレートする方法を示します。
この例では以下を行うことができます。
4 つのメッシュ ノードから成る 802.11ax メッシュ ネットワークの作成と構成。
メッシュ ノード間のオンオフ アプリケーションのトラフィックの生成、構成、および追加。
ソース ノードからシンク ノードにアプリケーション トラフィックをルーティングするためのメッシュ パスの追加。
802.11ax メッシュ ネットワークのシミュレーションと統計の可視化。
この例では、メッシュ ネットワークの次のシナリオをシミュレートします。

メッシュ ノード 1 (ソース) によって生成されたアプリケーション トラフィックが、中継ノード (メッシュ ノード 2 およびメッシュ ノード 3) を経由してメッシュ ノード 4 (シンク) に送信されます。この例では、5 GHz 帯のメッシュ ネットワーク通信をシミュレートします。
Communications Toolbox™ Wireless Network Simulation Library サポート パッケージがインストールされているかどうかを確認します。このサポート パッケージがインストールされていない場合、MATLAB® は、サポート パッケージをダウンロードしてインストールするためのリンクと共にエラーを返します。
wirelessnetworkSupportPackageCheck;
乱数発生器のシードを 1 に設定します。シード値によって、乱数発生パターンが制御されます。シード値によって生成された乱数は、MAC レイヤーでのバックオフ カウンターの選択や、物理レイヤーでのパケット受信成否の予測といった、シミュレーション内のいくつかのプロセスに影響を与えます。シミュレーション結果の精度を向上させるには、シミュレーション実行後にシード値を変更してシミュレーションを再度実行し、複数のシミュレーション結果を平均化します。
rng(1,"combRecursive");シミュレーション時間を秒単位で指定します。
simulationTime = 0.5;
ワイヤレス ネットワーク シミュレーターを初期化します。
networkSimulator = wirelessNetworkSimulator.init;
メッシュ ノードの名前と位置を指定します。
nodeNames = ["MeshNode1","MeshNode2","MeshNode3","MeshNode4"]; nodePositions = [10 0 0; 20 0 0; 30 0 0; 40 0 0]; % x-, y-, and z-coordinates, in meters
wlanDeviceConfig (WLAN Toolbox)オブジェクトを使用して、メッシュ ノードのコンフィギュレーション パラメーターを設定します。
meshNodeCfg = wlanDeviceConfig(Mode="mesh",BandAndChannel=[5 36],MCS=7,TransmitPower=15);wlanNode (WLAN Toolbox)オブジェクトを使用して、指定した構成に基づいてメッシュ ノードを作成します。
meshNodes = wlanNode(Name=nodeNames, ... Position=nodePositions, ... DeviceConfig=meshNodeCfg);
オブジェクトを使用して、オンオフ アプリケーションのトラフィック パターンを生成します。アプリケーションのデータ レートとパケット サイズを指定して、オンオフ アプリケーションのトラフィックを構成します。メッシュ ノード 1 からメッシュ ノード 4 へのアプリケーション トラフィックを追加します。
trafficSource = networkTrafficOnOff(DataRate=50000,PacketSize=1500); addTrafficSource(meshNodes(1),trafficSource,DestinationNode=meshNodes(4));
送信元のメッシュ ノード 1 から送信先のメッシュ ノード 4 にアプリケーション トラフィックを伝播させるためのメッシュ パスを追加します。このアプリケーション トラフィックは、中継ノード (メッシュ ノード 2 およびメッシュ ノード 3) を経由してメッシュ ノード 1 からメッシュ ノード 4 に流れます。
addMeshPath(meshNodes(1),meshNodes(4),meshNodes(2)); addMeshPath(meshNodes(2),meshNodes(4),meshNodes(3)); addMeshPath(meshNodes(3),meshNodes(4));
ノードをワイヤレス ネットワーク シミュレーターに追加します。
addNodes(networkSimulator,meshNodes);
指定したシミュレーション時間だけネットワークのシミュレーションを実行します。
run(networkSimulator,simulationTime);
このシミュレーションでは、各メッシュ ノードにおいて、オブジェクト関数 statistics を使用して統計が取得されます。変数 stats では、各ノードのアプリケーションの統計、MAC レイヤーの統計、物理レイヤーの統計、およびメッシュ転送の統計が取得されます。これらの統計の詳細については、WLAN System-Level Simulation Statistics (WLAN Toolbox)のトピックを参照してください。
stats = statistics(meshNodes)
stats=1×4 struct array with fields:
Name
ID
App
MAC
PHY
Mesh
ワイヤレス ネットワーク シミュレーターを初期化します。
networkSimulator = wirelessNetworkSimulator.init;
次の仕様で gNB ノードを作成します。
デュプレックス モード — 時分割デュプレックス
チャネル帯域幅 — 20 MHz
サブキャリア間隔 — 30 KHz
gnb = nrGNB(ChannelBandwidth=20e6,DuplexMode="TDD",SubcarrierSpacing=30e3);送信パワーが 20 dBm の UE ノードを作成します。
ue = nrUE(TransmitPower=20);
gNB ノードにおいて、次のアップリンク パワー制御パラメーターを構成します。
リソース ブロックごとの UE の公称送信パワー — 7 dBm
非整数パワー制御乗数 — 2
configureULPowerControl(gnb,PoPUSCH=7,Alpha=0.4)
ランダム ウェイ ポイント移動モデルを UE ノードに追加します。
addMobility(ue,BoundaryShape="rectangle")UE ノードと gNB ノードの間で接続を確立します。
connectUE(gnb,ue)
ボイス オーバー インターネット プロトコル (VoIP) アプリケーションのトラフィック パターン オブジェクトを作成します。
traffic = networkTrafficVoIP(GeneratePacket=true);
データ トラフィックの送信元を gNB ノードに追加します。送信先ノードを UE ノードとして設定します。
addTrafficSource(gnb,traffic,DestinationNode=ue)
gNB ノードをワイヤレス ネットワーク シミュレーターに追加します。
addNodes(networkSimulator,gnb)
UE ノードをワイヤレス ネットワーク シミュレーターに追加します。
addNodes(networkSimulator,ue)
シミュレーション時間を秒単位で指定します。
simulationTime = 0.3;
指定したシミュレーション時間だけシミュレーションを実行します。
run(networkSimulator,simulationTime)
gNB ノードと UE ノードの統計を取得します。
gnbStats = statistics(gnb); ueStats = statistics(ue);
バージョン履歴
R2022b で導入以前は、wirelessNetworkSimulator には Bluetooth® Toolbox が必要でした。
参考
オブジェクト
- networkTrafficFTP | networkTrafficOnOff | networkTrafficVideoConference | networkTrafficVoIP
トピック
- Create, Configure, and Simulate Bluetooth BR/EDR Piconet (Bluetooth Toolbox)
- Bluetooth BR/EDR Data and Voice Communication with WLAN Signal Interference (Bluetooth Toolbox)
- Simulate Multiple Bluetooth BR/EDR Piconets with ACL Traffic (Bluetooth Toolbox)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)