NS3仿真wifi網絡環境 - NS3中無線節點的通信傳輸范圍如何設置?


https://www.zhihu.com/question/24549780/answer/66061998

 

 

 

 

官方文檔有一句很概括的話:節點100米以內,要能夠通信;200米外不能工作。

目的節點的收包過程:

當節點接收到數據包的第一比特時,檢測接收能量,如果小於wifiphy的能量檢測門限EnergyDetectionThreshold,就會被丟棄。

能量達到相應的閾值,ns3 最終依據 SNIR (信號與干擾加噪聲比)來決定 BER 和 PER 的,即最終決定數據包是否接收成功。這里涉及到一個errorrate model,估計出錯的概率,來決定最終決定數據包是否接收成功。

ns3::YansWifiPhy類可以設置的屬性:

EnergyDetectionThreshold:能量檢測門限,默認為-96dbm

CcaMode1Threshold:確定為CCA busy狀態的門限,默認為-99dbm

TxGain:傳輸增益,默認為1db

RxGain:接收增益,默認為1db

TxPowerLevels:能量的等級數,默認為1.

TxPowerEnd:最大傳輸水平,默認為16.0206dbm

TxPowerStart:最小傳輸水平,默認為16.0206dbm

RxNoiseFigure:默認為7db

ChannelWidth:5MHz, 10MHz, 20MHz, 22MHz, 40MHz,80 MHz or 160 MHz.默認20MHz

發射功率=TxPowerStart + txPower *(TxPowerEnd - TxPowerStart)/ TxPowerLevels

txPower 供外部程序調用的接口,比如 MacLow,指定傳輸采用的功率級數

所以綜合來講,,來調大距離,可以增大發射功率,發送增益,接受增益。。默認的通信范圍取決於傳播損耗模型和衰落模型以及一些初始值。。。當然上面只是理論,,你可以通過實踐的方法,用ns3建立兩個無線節點,,從100開始,慢慢增大距離,看看是多少的時候開始連不上就可以了。

=================================================================

利用移動模型mobility model的setpositionallocator方法,設置出來就可以用做范圍(看到github上一大牛的寫法),雖然感覺只是節點之間的距離。

=================================================================

 

的答案已經很詳細了,也比較普適,這里我補充一種簡單的方法:
將信道衰落模型(PropagationLossModel)設置為RangePropagationLossModel,然后它有個屬性是“MaxRange”,設置它就幾乎是直接設置了通信范圍。
原理是:這個衰落模型是一個很理想化的模型,其核心思想就是小於通信半徑(MaxRange)時返回接收增益為0db,大於通信半徑時返回接收增益為-1000db,所以就會造成上述效果。
了解其原理之后題主就可以根據自己的需要選擇合適的方法了:如果你的仿真對這一塊要求不高,可以用這個方法,否則還請參照1樓的普適方法。
希望可以幫到你。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM