propagation.tex
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:12k
源码类别:

通讯编程

开发平台:

Visual C++

  1. %----------------------------------------------------------------------------
  2. chapter{Radio Propagation Models}
  3. label{chap:propagation}
  4. This chapter describes the radio propagation models implemented in ns.
  5. These models are used to predict the received signal power of
  6. each packet. At the physical layer of each wireless node, there is a receiving
  7. threshold. When a packet is received, if its signal power is below the receiving
  8. threshold, it is marked as error and dropped by the MAC layer.
  9. Up to now there are three propagation models in ns, which are the free
  10. space modelfootnote{Based on the code contributed to ns~from the CMU Monarch
  11. project.}, two-ray ground reflection modelfootnote{Contributed to ns~from the
  12. CMU Monarch project.} and the shadowing modelfootnote{Implemented in ns~by
  13. Wei Ye at USC/ISI}. Their implementation can be found in nsf{propagation.{cc,h}},
  14. nsf{tworayground.{cc,h}} and nsf{shadowing.{cc,h}}. This documentation
  15. reflects the APIs in ns-2.1b7.
  16. %----------------------------------------------------------------------------
  17. section{Free space model}
  18. label{sec:freespace}
  19. The free space propagation model assumes the ideal propagation condition
  20. that there is only one clear line-of-sight path between the transmitter and
  21. receiver. H. T. Friis presented the following equation to
  22. calculate the received signal power in free space at distance $d$ from the
  23. transmitter cite{Friis46}.
  24. begin{equation}
  25.   P_r (d) = frac{P_t G_t G_r lambda^2}{(4pi)^2 d^2 L}
  26.   label{eqn:freespace}
  27. end{equation}
  28. where $P_t$ is the transmitted signal power. $G_t$ and $G_r$ are the antenna
  29. gains of the transmitter and the receiver respectively. $L (Lge1)$ is the
  30. system loss, and $lambda$ is the wavelength. It is common to select
  31. $G_t = G_r = 1$ and $L = 1$ in ns~ simulations.
  32. The free space model basically represents the communication range as a circle
  33. around the transmitter. If a receiver is within the circle, it receives all
  34. packets. Otherwise, it loses all packets
  35. The OTcl interface for utilizing a propagation model is the code{node-config}
  36. command. One way to use it here is
  37. begin{program}
  38. $ns_ node-config -propType Propagation/FreeSpace
  39. end{program}
  40. Another way is
  41. begin{program}
  42. set prop [new Propagation/FreeSpace]
  43. $ns_ node-config -propInstance $prop
  44. end{program}
  45. %----------------------------------------------------------------------------
  46. section{Two-ray ground reflection model}
  47. label{sec:tworay}
  48. A single line-of-sight path between two mobile nodes is seldom the only means
  49. of propation. The two-ray ground reflection model considers both the direct
  50. path and a ground reflection path. It is shown cite{Rappaport96} that this
  51. model gives more accurate prediction at a long distance than the free space
  52. model. The received power at distance $d$ is predicted by
  53. begin{equation}
  54.   P_r (d) = frac{P_t G_t G_r {h_t}^2 {h_r}^2}{d^4 L}
  55.   label{eqn:tworay}
  56. end{equation}
  57. where $h_t$ and $h_r$ are the heights of the transmit and receive antennas
  58. respectively. Note that the original equation in cite{Rappaport96} assumes
  59. $L = 1$. To be consistent with the free space model, $L$ is added here.
  60. The above equation shows a faster power loss than Eqn. (ref{eqn:freespace})
  61. as distance increases. However, The two-ray model does not give a good result
  62. for a short distance due to the oscillation caused by the constructive and
  63. destructive combination of the two rays. Instead, the free space model is
  64. still used when $d$ is small.
  65. Therefore, a cross-over distance $d_c$ is calculated in this model. When
  66. $d < d_c$, Eqn. (ref{eqn:freespace}) is used. When $d > d_c$, Eqn.
  67. (ref{eqn:tworay}) is used. At the cross-over distance, Eqns. (ref{eqn:freespace})
  68. and (ref{eqn:tworay}) give the same result. So $d_c$ can be calculated as
  69. begin{equation}
  70. %  d_c = frac{4pi h_t h_r}{lambda}
  71.   d_c = left( 4pi h_t h_r right) / lambda
  72.   label{eqn:crossover}
  73. end{equation}
  74. Similarly, the OTcl interface for utilizing the two-ray ground reflection model
  75. is as follows.
  76. begin{program}
  77. $ns_ node-config -propType Propagation/TwoRayGround
  78. end{program}
  79. Alternatively, the user can use
  80. begin{program}
  81. set prop [new Propagation/TwoRayGround]
  82. $ns_ node-config -propInstance $prop
  83. end{program}
  84. %----------------------------------------------------------------------------
  85. section{Shadowing model}
  86. label{sec:shadowing}
  87. subsection{Backgroud}
  88. The free space model and the two-ray model predict the received power
  89. as a deterministic function of distance. They both represent the communication
  90. range as an ideal circle. In reality, the received power at certain distance
  91. is a random variable due to multipath propagation effects, which is also
  92. known as fading effects. In fact, the above two models predicts the mean
  93. received power at distance $d$. A more general and widely-used model is
  94. called the shadowing model~cite{Rappaport96}.
  95. The shadowing model consists of two parts. The first one is known as path
  96. loss model, which also predicts the mean received power at distance $d$,
  97. denoted by $overline{P_r(d)}$. It uses a close-in distance $d_0$ as
  98. a reference. $overline{P_r(d)}$ is computed relative to $P_r(d_0)$
  99. as follows.
  100. begin{equation}
  101.   frac{P_r(d_0)}{overline{P_r(d)}} = {left( frac{d}{d_0} right)}^beta
  102.   label{eqn:pathloss}
  103. end{equation}
  104. $beta$ is called the path loss exponent, and is usually empirically
  105. determined by field measurement. From Eqn. (ref{eqn:freespace}) we
  106. know that $beta = 2$ for free space propagation. Table~ref{tab:pathlossexp}
  107. gives some typical values of $beta$.
  108. Larger values correspond to more obstructions and hence faster
  109. decrease in average received power as distance becomes larger. $P_r(d_0)$
  110. can be computed from Eqn. (ref{eqn:freespace}).
  111. begin{table}
  112. begin{center}
  113.   centering small
  114.   begin{tabular}{|l|l|c|}
  115.   hline multicolumn{2}{|c|}{bf{Environment}} & $beta$ \
  116.   hline Outdoor & Free space & 2 \
  117.   cline{2 - 3}  & Shadowed urban area & 2.7 to 5 \
  118.   hline In building & Line-of-sight & 1.6 to 1.8 \
  119.   cline{2 - 3}  & Obstructed & 4 to 6 \ hline
  120.   end{tabular}
  121.   caption{Some typical values of path loss exponent $beta$}
  122.   label{tab:pathlossexp}
  123. end{center}
  124. end{table}
  125. begin{table}
  126. begin{center}
  127.   centering small
  128.   begin{tabular}{|l|c|}
  129.   hline bf{Environment} & $sigma_{dB}$ (dB) \
  130.   hline Outdoor & 4 to 12 \
  131.   hline Office, hard partition & 7 \
  132.   hline Office, soft partition & 9.6 \
  133.   hline Factory, line-of-sight & 3 to 6 \
  134.   hline Factory, obstructed & 6.8 \ hline
  135.   end{tabular}
  136.   caption{Some typical values of shadowing deviation $sigma_{dB}$}
  137.   label{tab:stddb}
  138. end{center}
  139. end{table}
  140. The path loss is usually measured in dB. So from Eqn. (ref{eqn:pathloss})
  141. we have
  142. begin{equation}
  143.   {left[ frac{overline{P_r(d)}}{P_r(d_0)} right]}_{dB} =
  144.     -10 beta log left( frac{d}{d_0} right)
  145.   label{eqn:pathlossdb}
  146. end{equation}
  147. The second part of the shadowing model reflects the variation of the
  148. received power at certain distance. It is a log-normal random variable,
  149. that is, it is of Gaussian distribution if measured in dB. The overall
  150. shadowing model is represented by
  151. begin{equation}
  152. {left[ frac{P_r(d)}{P_r(d_0)} right]}_{dB} =
  153.     -10 beta log left( frac{d}{d_0} right) + X_{dB}
  154.   label{eqn:shadowing}
  155. end{equation}
  156. where $X_{dB}$ is a Gaussian random variable with zero mean and
  157. standard deviation $sigma_{dB}$. $sigma_{dB}$ is called the
  158. shadowing deviation, and is also obtained by measurement. Table
  159. ~ref{tab:stddb} shows some typical values of $sigma_{dB}$. Eqn.
  160. (ref{eqn:shadowing}) is also known as a log-normal shadowing model.
  161. The shadowing model extends the ideal circle model to a richer
  162. statistic model: nodes can only probabilistically communicate when
  163. near the edge of the communication range.
  164. subsection{Using shadowing model}
  165. Before using the model, the user should select the values of the path
  166. loss exponent $beta$ and the shadowing deviation $sigma_{dB}$
  167. according to the simulated environment.
  168. The OTcl interface is still the code{node-config} command. One way to
  169. use it is as follows, and the values for these parameters are just examples.
  170. begin{program}
  171. # first set values of shadowing model
  172. Propagation/Shadowing set pathlossExp_ 2.0  ;# path loss exponent
  173. Propagation/Shadowing set std_db_ 4.0       ;# shadowing deviation (dB)
  174. Propagation/Shadowing set dist0_ 1.0        ;# reference distance (m)
  175. Propagation/Shadowing set seed_ 0           ;# seed for RNG
  176. $ns_ node-config -propType Propagation/Shadowing
  177. end{program}
  178. The shadowing model creates a random number generator (RNG) object. The RNG has
  179. three types of seeds: raw seed, pre-defined seed (a set of known good seeds)
  180. and the huristic seed (details in Section~ref{sec:random}). The
  181. above API only uses the pre-defined seed. If a user want different seeding
  182. method, the following API can be used.
  183. begin{program}
  184. set prop [new Propagation/Shadowing]
  185. $prop set pathlossExp_ 2.0
  186. $prop set std_db_ 4.0
  187. $prop set dist0_ 1.0
  188. $prop seed <seed-type> 0              ;# user can specify seeding method
  189. $ns_ node-config -propInstance $prop
  190. end{program}
  191. The code{<seed-type>} above can be code{raw}, code{predef} or code{heuristic}.
  192. %--------------------------------------------------------------------------------
  193. section{Communication range}
  194. label{sec:commrange}
  195. In some applications, a user may want to specify the communication range of
  196. wireless nodes. This can be done by set an appropriate value of the receiving
  197. threshold in the network interface, ie,
  198. begin{program}
  199. Phy/WirelessPhy set RXThresh_ <value>
  200. end{program}
  201. A separate C program is provided at nsf{indep-utils/propagation/threshold.cc}
  202. to compute the receiving threshold. It can be used for all the
  203. propagation models discussed in this chapter. Assume you have compiled it and get
  204. the excutable named as code{threshold}. You can use it to compute the threshold
  205. as follows
  206. begin{program}
  207. threshold -m <propagation-model> [other-options] distance
  208. end{program}
  209. where code{<propagation-model>} is either code{FreeSpace}, code{TwoRayGround}
  210. or code{Shadowing}, and the code{distance} is the communication range in meter.
  211. code{[other-options]} are used to specify parameters other than their
  212. default values. For the shadowing model there is a necessary parameter,
  213. code{-r <receive-rate>}, which specifies the rate of correct reception at the
  214. code{distance}. Because the communication range in the shadowing model is not
  215. an ideal circle, an inverse Q-function cite{Rappaport96} is used to calculate the
  216. receiving threshold. For example, if you want 95% of packets can be correctly
  217. received at the distance of 50m, you can compute the threshold by
  218. begin{program}
  219. threshold -m Shadowing -r 0.95 50
  220. end{program}
  221. Other available values of code{[other-options]} are shown below
  222. begin{program}
  223. -pl <path-loss-exponent> -std <shadowing-deviation> -Pt <transmit-power>
  224. -fr <frequency> -Gt <transmit-antenna-gain> -Gr <receive-antenna-gain>
  225. -L <system-loss> -ht <transmit-antenna-height> -hr <receive-antenna-height>
  226. -d0 <reference-distance>
  227. end{program}
  228. %-------------------------------------------------------------------------------
  229. section{Commands at a glance}
  230. label{sec:propcommand}
  231. Following is a list of commands for propagation models.
  232. begin{flushleft}
  233. code{$ns_ node-config -propType <propagation-model>}\
  234. This command selects code{<propagation-model>} in the simulation. the
  235. code{<propagation model>} can be code{Propagation/FreeSpace},
  236. code{Propagation/TwoRayGround} or code{Propagation/Shadowing}
  237. code{$ns_ node-config -propInstance $prop}\
  238. This command is another way to utilize a propagation model. code{$prop} is
  239. an instance of the code{<propagation-model>}.
  240. code{$sprop_ seed <seed-type> <value>}\
  241. This command seeds the RNG. code{$sprop_} is an instance of the shadowing model.
  242. code{threshold -m <propagation-model> [other-options] distance}\
  243. This is a separate program at nsf{indep-utils/propagation/threshold.cc}, which
  244. is used to compute the receiving threshold for a specified communication range.
  245. end{flushleft}
  246. endinput
  247. %------------------------------------------------------------------------------