《simulate 802.11b channel within NS2》 by Wu
xiuchao是一篇很好的文章。解答了我的很多困惑,或者老是记不住,记不清的东西。其中包括3个threshold,和这些个thresold的计算
方法(在ns2)中的。而且,我怀疑因为作者是新加坡人的缘故,使得他的写作逻辑和英语对于我来说都是十分的容易,好像在看中文一样。^_^
————————————————————————————————
1
ns2中的传输模型。
1>propagation model 的意义
“propagation
model”,在课上学了无数次,考了无数次,直到我需要用它的今天,终于明白它存在的意义了。就像以前说的,天线的作用是发出电磁信号和接收空气中的电
磁信号。根据收到的信号力来确定它收到了什么东西。那么这个信号力是多大呢?人类根据电磁波在不同的环境中的传输情况,概括出3个传输模型,用以预测收到
的信号力的大小(之所以是预测,是因为可能有衰减之类,如果有衰减,那么真实的值应该是围绕在这个预测值周围的一个值。比如
真实值=预测值+/-误差)
2>
ns中实现的传输模型
ns中有3个传输模型:Free
space
Two ray ground
Shadowing
3>
这3个传输模型的用途
Free space model: is used to simulate
path loss of wireless communication when line-of-sight path
exists between transmitter
and receiver.
这个看起来很简单的概念有一个地方要特别注意,就是这个词“exist”。它说存在,并没有说唯一。可能有其他非
line-of-sight的path存在,也可能有不止一条的line-of-sight
path存在。
Two ray ground: this model is used when
line-of-sight path
exists and
reflection of ground is considered.
这个模型是free space
model的修正版,除了考虑直接的路径以外,还考虑了
地面反射。
Shadowing model: simulate
shadow effect of obstructions between the transmitter and
receiver.
(没找到shadow
effect。google根本没有)不过,知道这个
shadowing
model用于模拟in-door environment的无线channel就行。
4> 一个扩展模型——Ricean
model
除了ns2原有的3个模型以外,外界又有人对其增加了扩展。一个扩展模型Ricean
model用于模拟移动终端运动的effect.
5>ns2中的3个threshold
CSThresh_:determine whether
one frame is detected by the
receiver.
如果signal strength < CSThresh_的话,
那么在ns2的PHY就会直接丢掉,MAClayer
(ns2里的)连看都看不到。
RxThresh_: 如果signal strength
比这个值大的话,receiver就可以正确的接受他。否则,这个frame会被tagged为corrupted,
MAC层会丢掉它。
CPThresh_: When multiple frames are received
simultaneously by one mobile node,
it calculates the radio
of the strongest frame's signal strength to the signal strength sum
of other frames.
(很好的英语表达法)如果这个比值大于CPThresh_,这个frame会正确接受其他的frame会被忽略。否则所有的frame都会被丢掉,认为是collided.
这里要注意的有2点:1,要用最强的信号力和剩余其他所有信号力的和相比
2, 不是相减,而是相除。
6>
NS2用threshold来决定一个包是否正确接受,ns2没有考虑BER。那么什么是BER?
wiki对 error rate的解释:“
In telecommunication, an error
ratio is the ratio of
the number of bits, elements, characters, or blocks
incorrectly
received to the total number of bits, elements,
characters, or blocks sent
during a
specified time interval.”
这里有3点要注意:1 错误的部分是所收到的错误部分
2 正确的部分是发送的正确的部分
3这个比值是在一个具体的时间内的。
那么bit error ratio是什么?
“the number of erroneous bits received divided by the total number
of bits transmitted”
注意2点:1,比较的单位在这里是“bit”
2,还是bit的来源问题,收到的错误的bit数除以发送的bit数(而不是除以收到的所有bit数)
7
这篇文章中奇怪的一个地方
这篇文章中有一个地方没有说的很清楚,很奇怪。在“But there are some
errors in this simulation script.”的后面他说: firstly,
25meter is the
receiving range in closed enviroment.
这个25米出现的特别的奇怪,前面的脚本和文章中都没有提到任何有关的内容。所以我怀疑25是根据它脚本中各个值算出来的一个transmission
range。所以我进入ns/indep/propagation/
用threshold加上它脚本里的各个参数,随后让distance
option为25m计算了下。奇怪的是,得到的结果(RxThreshold值)并不是它脚本里给的值(5.82587e-09),而是偏小
(4.71896e-09)。然后我不断的缩小distance,再看计算出的结果和脚本里给的RXThresh_相比较。直到distance
为22.5米的时候,得到的RXThresh_和文中的值一摸一样。我怀疑要么是它写错了,将22.5写成了25,要么就是因为我和作者的ns2的版本不
一样,以至于计算RXThresh_的公式不太一样。前者的可能性好像比较大。
(^_^,
都没有错,在本天才孜孜不倦的研究下发现了它的目的。因为这个脚本给出的所有的数据都是真实的Orinoco
11bCard的实际数据。这个25m是这个网卡在closed
环境中的最大的传输距离。所以在closed
环境里的的传输距离只能小于等于25m。这个脚本实际上是用了22.5m作为传输距离计算出一个RXThresh_值。因为22.5<最大传输距离25m,所以这个脚本只能用在closed
环境中。但是如果是closed environment,就不该用two ray ground
model。所以作者才说这个脚本有问题。简单的说,这个脚本前后矛盾,它用open
环境的里的propation model来计算closed 环境里的transmission
接受power.如果有人问,你怎么知道这个环境是closed的呢?那么作者说,因为这个网卡在closed环境里的传输距离最大是25米。现在这个脚本里用的传输距离比25米还小,显然这个脚本是用于closed
的环境里的)
8> 接受敏感度(receiver
sensitivity)在ns中(主要问题是没有考虑BER)
Receiver sensitivity is the received sigal power with which BER is
approximately 1.0E-5."
这真是神奇的一句话,我死活看不懂。我的英语水平将这句话翻译成:“接受敏感度是有BER值为1。0E-5的signal
power。”。缩一下就是“接受敏感度是signal
power”。还好中文网站上说的很清楚:“
在保证达到所要求的误比特率的条件下,接收所需要的最小输入功率。接收灵敏度一般用dBm来表示,它是以lmW光功率为基础的绝对功率,或写为
其中,Pmin指在给定误比特率的条件下,接收机能接收的最小平均功率。例如,在给定的误比特率为10的负9次方时,接收机能接收的最小平均功率为InW(即10的负9次方W),接收机灵敏度为-60dBm。
所以,真正的接受灵敏度是在BER一定的情况下,所需要的最小的信号力。如果收到的信号力大于这个最小的值,那么这个信号就可以被cs到。
可是ns对cs的定义和receiver
sensitivity有偏差。ns没有考虑BER而是直接设定一个能量power。这样的方法是不准确的。
如果不考虑BER和SNR,用CSThresh_和RxThresh_来决定sense
range 和receive
range那么问题不会很大。否则,可能会有很大的问题。
阅读(967) | 评论(0) | 转发(0) |