NS2中修改无线节点通信半径
来源:互联网 发布:java编写计算器 编辑:程序博客网 时间:2024/05/16 10:57
原文链接:http://blog.sina.com.cn/s/blog_685456fb01011kdk.html
每次在终端运行有关无线节点通讯的代码之后,在终端上你都会看见一些默认的数据:
highestAntennaZ_ = 1.5, distCST_ = 550.0
这其中 :
highestAntennaZ_:指的是无线天线的高度。
distCST_:指的是载波监听范围。
这两个数值都是默认的,至于载波监听的概念,这里不在陈述了,可以谷歌一下。但要说明一下,一般载波监听的范围是通讯距离的2.2倍左右,也就是说在distCST_ = 550 的时候,通讯距离是250,读者可以自己测试一下。
distCST_ = wifp->getDist(wifp->getCSThresh(), wifp->getPt(), 1.0, 1.0,highestZ , highestZ, wifp->getL(),wifp->getLambda());
从这个语句中可以看出,distCST_ 的值是与CSThresh_的值相关的,改变CSThresh_的值就可以改变distCST_的值了,那么什么是CSThresh_呢,其实就是侦听阈值。只有接收功率大于这个阈值的时候数据才可以被接收到。
那么怎样修改通讯距离呢,就是所谓的distance,同上,这个距离是和RXThresh_相关的,改变RXThresh的值就会间接的更改distance的值,也就是通讯半径咯。那么怎样修改RXThresh_的值?在NS2中是用
Phy/WirelessPhy set RXThresh_ < value >
来更改的,另外这条语句是添加在新建一个模拟器之前的。那么这个value的值是不是就是你想要的距离呢,比如直接改为250?不是的,笔者起初就是犯了这个错误,怎么改都没有反映,在RXThresh_与distance之间是有一个换算过程的,至于怎么计算的,笔者没有关心这个问题,但笔者知道这个换算可以通过threshold这个程序计算出来,在ns2中有这个程序的源代码,但需要编译一下生成可执行文件,在文件夹ns-allinone-2.35/ns-2.35/indep-utils/propagation中可以看到threshold.cc这个源文件,用命令
g++ -lm threshold.cc -o threshold
来编译一下,期间你会遇到几个错误,但是都是很明显的错误,有过C++基础的同学,能够很轻易的将代码改过来,然后运行
./threshold -m TwoRayGround < value >
(这个value的值才是你想改变的通讯半径值,比如100) 然后在终端上你就会得到通讯半径100m所对应的RXThresh_值为1.42681e-08 然后你在把这个值复制一下替换你的tcl代码中
Phy/WirelessPhy set RXThresh_ < value >
valu 的值。
懂了吗?不要觉得那个 ./threshold -m TwoRayGround 100 多么神奇,他的作用就是求出对应的RXThresh_值,然后改成
Phy/WirelessPhy set RXThresh_ 1.42681e-08
这样你就将通讯距离改为100M 了。
同理你也可以改变distCST_的值了,对应的修改代码为
Phy/WirelessPhy set CSThresh_ < value >
这个value也是通过以上的方法求出来的。读者可以尝试修改一个这个distCST_的值,这样再次运行tcl脚本的时候,就会发现终端上的默认值终于改变了。
- NS2中修改无线节点通信半径
- NS2节点通信半径修改
- NS2节点通信半径修改
- NS2节点通信半径修改
- NS2中如何设定无线节点的通信半径
- ns2无线节点的通信范围设置
- ns2无线节点的通信范围设置
- NS2中无线节点的信号传输范围
- 设置NS2中无线节点的信号传输范围
- 在AODV中添加恶意节点:NS2: Adding Malicious Node to AODV修改版
- ns2无线仿真中常用命令列表
- NS2中无线仿真场景生成
- NS2节点
- ns2节点
- NS2仿真中nam节点颜色设置
- NS2仿真中nam节点颜色设置
- Win32应用程序中进程间通信方法分析与比较——无线传感器网络节点通信模拟
- NS2(NS-2.33)中无线超宽带模块移植
- 多机器人系统实验室汇总
- 简略说明类目 方法 内存管理
- 六星经典CSAPP-笔记(12)并发编程(上)
- Androd绑定本地服务和绑定远程服务
- Cxf+wss4j的WS-Security实现【未验证】
- NS2中修改无线节点通信半径
- POJ-3259-Wormholes
- 面向对象
- 代理模式与动态代理
- phoenixframe自动化测试平台接口测试方案实例
- Java基础---反射(Reflection)
- Merge Two Sorted Lists
- Java基础二
- iOS开发-UITextView字数限制方法-UITextView使用详细