![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
amsmyah | 投稿日時: 2021/10/1 19:04 |
新米 ![]() ![]() 登録日: 2021/10/1 居住地: 投稿: 9 |
802.11axでのseed値によるパケットロスの違い Qualnetで802.11axを用い伝送レートを固定した状態でシミュレーションを行っています.
伝送レートはMCS=7に固定しています. 2つのノードを50m離れた距離に配置し片方のノードからもう片方のノードへ1sごとにパケットを送信するテスト環境を作成しseedを変化させてシミュレーションを行ったところ,seedの値によってパケットロスの結果が大きく変化してしまいます. どうやら用いるseedによってsnrの値が大きく変化しているようなのですが,伝搬距離がノード間距離以上に十分あり,かつ1ノードしか送信していない状態でもこのようなことは発生するのでしょうか. 具体的にsnrの計算にseedがどのように関わってくるのかがわかりません. 何かわかる方いらっしゃいましたらご教示お願いいたします. ![]() |
azuma | 投稿日時: 2021/10/4 17:07 |
新米 ![]() ![]() 登録日: 2021/9/30 居住地: 投稿: 2 |
Re: 802.11axでのseed値によるパケットロスの違い amsmyahさん、はじめまして。
snrの値の計算そのものは乱数の影響は受けないはずです。 QualNetのWiFiではBERカーブを使用してエラー判定を行いますが、 具体的には希望波の受信が終了してから判定処理を行います。 もしソースコードが参照可能であれば、 ./libraries/wireless/src/wifi/phy_dot11ax.cppにある Dot11axReception::checkPacketError関数と、 Dot11axReception::inError関数を参照して下さい。 この処理で乱数を使用しているのでseedにより乱数発生が 変化するとエラー判定結果に影響が出ます。 このあたりの詳しい内容は下記を参照して下さい。 QualNetのバージョンは古いですが、処理している内容に大きな変更はありません。 https://simweb.kke.co.jp/download/QualNetHacks-03-PhyAndPropChannel-rev01.pdf またWiFiにはBackOffなどの乱数を使用したタイマーもあるので、 その影響があるかもしれません。 また疑問点などございましたら、お知らせください。 |
amsmyah | 投稿日時: 2021/10/6 14:42 |
新米 ![]() ![]() 登録日: 2021/10/1 居住地: 投稿: 9 |
Re: 802.11axでのseed値によるパケットロスの違い azumaさん、回答ありがとうございます。
Dot11axReception::checkPacketError関数および Dot11axReception::inError関数で 乱数が使用されていることは理解しました。 Dot11axReception::inError関数内の sinr(mimo_snr_dB)の値によりBER値が変化し最終的なエラー判定に影響を与えると理解しましたが この認識であってますでしょうか。 またデバッグを行ったところ mimo_snr_dBの値が使用する乱数によって大きく異っているようです。 現在のシミュレーション環境は 送信ノードと受信ノード1つずつのみの配置で他のノードからの干渉等の影響はないはずなのですが 結果が大きく異なるほど乱数の値の影響は大きいのでしょうか。 この点についてわかる方いらっしゃいましたらご教示いただきたいです。 よろしくお願いします。 |
azuma | 投稿日時: 2021/10/7 17:38 |
新米 ![]() ![]() 登録日: 2021/9/30 居住地: 投稿: 2 |
Re: 802.11axでのseed値によるパケットロスの違い amsmyahさん、ご返信ありがとうございます。
> またデバッグを行ったところ > mimo_snr_dBの値が使用する乱数によって大きく異っているようです。 > 現在のシミュレーション環境は > 送信ノードと受信ノード1つずつのみの配置で他のノードからの干渉等の影響はないはずなのですが > 結果が大きく異なるほど乱数の値の影響は大きいのでしょうか。 mimo_snr_dBの値が変数により変化することはこちらの手元でも確認できました。 この値が乱数の影響をどう受けているか、ということについてですが、 libraries\wireless\src\wifi\phy_dot11ax.cpp 3483行目でdemapperという関数から取得しており、demapper関数(libraries\wireless\src\wifi\mimo-mapper.h 107行目)を見るに、引数のp_lambdaに乱数が関与しているのではないかと予想しております。 それより先は調査に少々時間がかかりそうです。 乱数の影響についてですが、 https://simweb.kke.co.jp/download/QualNetHacks-03-PhyAndPropChannel-rev01.pdf の「3.3.4.2 BER ベースの受信エラー判定方式」にある通り、受信データの総ビット数に依存するものです。 また、統計的な観点から、試行したシード値が少数であると安定した結果が得られないかもしれません。多数(100程度)のシード値で試行を行い、平均値を検証する必要がありそうです。 それでは、よろしくお願いいたします。 |
amsmyah | 投稿日時: 2021/10/11 19:19 |
新米 ![]() ![]() 登録日: 2021/10/1 居住地: 投稿: 9 |
Re: 802.11axでのseed値によるパケットロスの違い azumaさん、回答ありがとうございます。
mino_snr_dBの値に影響を与えているのが p_lambdaであることはこちらでも確認できました。 libraries\wireless\src\wifi\phy_dot11ax.cpp 3425辺りのMIMO::Demapper demapper関数ではlambda_kを引数に用いており、 このlambda_kを求める際に乱数が用いられていると考えられます。 phy_dot11ax.cpp 3408行目付近で定義されている部分を確認すると MIMO_getEigenValues関数(main\node.cpp内 848行目)の影響を受けているかと思います。 MIMO_getEigenValues関数の引数mimoLambdaは949行目辺りで定義されており、 定義に用いている変数より945行目のhhが関与しているとわかります。 hhの計算に用いられているnlosの計算(node.cpp内38行目辺り)に用いられているHwは863行目よりgetMIMO_Hw関数(node.cpp内791行目辺り)で求められますが、 この関数内でmimo.Rand.getRandomNumber()という関数が利用されています。 getRandomNumberはmain\random.cpp内で定義されており、ここで乱数が使用されるのではないかと考えています。 >乱数の影響についてですが、 >https://simweb.kke.co.jp/download/QualNetHacks-03->PhyAndPropChannel-rev01.pdf >の「3.3.4.2 BER ベースの受信エラー判定方式」にある通り、受信データの総ビット数に依存するものです。 BERが受信データの総ビット数に依存するということは理解しました。 今回のシミュレーション環境では受信ビット数は乱数の影響を受けておらず一定の値であることを確認したため、 errorProbability(つまりエラー判定)はBERの値のみが影響すると考えています。 BERの求め方の詳細は公開されていないようですが、引数を見る限りsinr以外の引数は乱数によって変動するものがなく、 sinr(つまりmimo_snr_dB)の影響のみで値が大きく変動すると認識しています。 乱数の影響に関してお伺いしたいのは、以前の投稿と重複しますが 乱数の値によってmimo_snr_dBの値が大きく変化する要因についてです。 seed値を1〜50まで変更してシミュレーションを行ったところ SINR値(mimo_snr_dBの値)が乱数によって最大約30dB異なり(最小の場合で約6.5dB、最大で約35dB) https://simweb.kke.co.jp/download/QualNetHacks-03-PhyAndPropChannel-rev01.pdf を参考にするとこの付近でBERが大きく異なってくる事がわかります。 ノード配置やパケット発生間隔、その他の設定を全く変更せずとも seedの値のみでSINRの値がこれだけ大きく異なるのは普通なのでしょうか。 現在のシミュレーション環境で送信ノードと受信ノードの距離は50mで ノード間の距離が原因で電波が到達しないということはないと考えています。 また、統計的な観点からseedを1〜100まで変更し平均値を取得すると、 99パケット中約7パケットがロスしており、パケットロス率は約0.07となりました。 しかし、試行回数100回中88回はパケットロスが0である一方5回の試行で全パケットがロスしています。 ばらつきが非常に大きくなっているのが気になるのですが、この平均値を妥当な値として良いものなのでしょうか。 以上よろしくお願いします。 |
forum_support | 投稿日時: 2021/10/13 19:26 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: 802.11axでのseed値によるパケットロスの違い こんにちは。forum_supportです。
調査いただきありがとうございます。 弊社でも試行を行いましたところ、ご指摘の通り、 mimo_snr_dB の値が乱数のシード値によって大きく変動することが確認できました。弊社でも妥当な出力かどうか判断いたしかねますため、現在開発元に問合せ中です。 開発元からも調査中との回答がありましたので、もうしばらくお待ちください。 |
amsmyah | 投稿日時: 2021/10/16 17:52 |
新米 ![]() ![]() 登録日: 2021/10/1 居住地: 投稿: 9 |
Re: 802.11axでのseed値によるパケットロスの違い forum_support様
開発元へ問い合わせいただきありがとうございます。 よろしくお願いいたします。 |
forum_support | 投稿日時: 2021/10/19 16:03 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: 802.11axでのseed値によるパケットロスの違い forum_supportです。
乱数による値の変動の大きさにつきましては、開発元から引き続き調査中であるとの回答を受けております。 今しばらくお待ちいただければと思います。 なお、ご指摘いただきました"hh"および"nlos"の計算につきまして、開発元より参考文献の提示がありましたので、共有させていただきます。 https://mentor.ieee.org/802.11/dcn/03/11-03-0940-04-000n-tgn-channel-models.doc "hh"の計算はこちらの式(3)をもとに行っているとのことです。 式(3)の行列Xは、式(4)と以下の記述より、複素ガウス型確率変数に従う行列であると考えられます。 それでは、よろしくお願いいたします。 |
forum_support | 投稿日時: 2021/10/19 19:11 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: 802.11axでのseed値によるパケットロスの違い forum_supportです。
連続の投稿となってしまい申し訳ございません。 mimo_snr_dBについては傾向を確認できましたが、PERのばらつきの大きさについては弊社で再現ができませんでした。 弊社で検証したところ、パケットロスが0%である場合と100%である場合の両方とも少数という結果となりました。グラフを添付いたします。 つきましては、次の2点につきまして、お願いしたく存じます。 ・お手持ちのQualNetのバージョンはいくつになりますでしょうか。 ・パケットロスが0%である場合、100%である場合、およびどちらでもない場合の、シード値と出力ファイルを頂いてもよろしいでしょうか。 それでは、よろしくお願いいたします。 ![]() |
amsmyah | 投稿日時: 2021/10/21 16:30 |
新米 ![]() ![]() 登録日: 2021/10/1 居住地: 投稿: 9 |
Re: 802.11axでのseed値によるパケットロスの違い forum_support様
"hh"、"nlos" の導出に関する資料およびPERのバラつきの検証ありがとうございます。 >つきましては、次の2点につきまして、お願いしたく存じます。 >・お手持ちのQualNetのバージョンはいくつになりますでしょうか。 >・パケットロスが0%である場合、100%である場合、およびどちらでもない場合の、シード値と出力ファイルを頂いてもよろしいでしょうか。 現在使用しているQualnetのバージョンは8.2です。 また、パケットロスが0%、100%およびその他の時の出力ファイルを添付します。 seedを1〜100まで変更しシミュレーションを行った結果の代表的なものを添付しています。 ファイルの中身ですが ・scenarios:シミュレーションの設定ファイル一式 ・PacketLoss_0percent:パケットロスが0%の時の出力ファイル ・PacketLoss_100percent:パケットロスが100%の時の出力ファイル ・PacketLoss_else:パケットロスがその他の値の時の出力ファイル となっており、 出力ファイルの名前の数字が各結果の際に使用したseed値となっております。(seed**.statの**の部分です) 以上よろしくお願いいたします。 ![]() |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |