PHY parameters have a drastic effect on the results and accuracy of the
simulation. Therefore, one has to be fully aware of the values chosen to these
parameters.
I will now briefly describe the various PHY parameters used in SWANS and provide
the default setup I use in my simulations:
Signal propagation model:
Signal propagation model (also known as signal attenuation model) describes how
a single signal propagates in the air and how its strength changes
(attenuates) as a function of distance and environment (obstacles, temperature
...).
Signal interference model:
Signal interference model describes how a number of signals interact when
they are received by the same radio.
I use RadioNoiseAdditive signal interference model.
You can read here why.
PHY parameters:
This is the default setup I use in most of my simulations is (see file jist.swans.Constants).
It matches a scenario of an open air, in which there are no obstacles from which
the signal can reflect off and fade. The signal attenuation is according to
FreeSpace or TwoRay with exponent 2.
- RadioNoiseAdditive
- Transmit power: I set TRANSMIT_DEFAULT to 15.0 db and vary
the THRESHOLD_DEFAULT and SENSITIVITY_DEFAULT.
- FREQUENCY_DEFAULT = 2.4e9
- Bandwidth (notice that bandwidth influences the level of the
background noise, which may indirectly influence the effective receive area.
Thus, merely increasing the bandwidth might decrease the effective receive
area)
- For unicast messages I use: BANDWIDTH_DEFAULT = 11 * (int)1e6; (11Mb/s).
- For multicast and MAC broadcast messages I use: BANDWIDTH_DEFAULT = 1*
(int)1e6; (1Mb/s). This is since in real wireless cards MAC broadcast is
sent at the lowest rate of 1 or 2 Mb/s
- GAIN_DEFAULT = 0.0;
- TEMPERATURE_DEFAULT = 290.0;
- TEMPERATURE_FACTOR_DEFAULT = 10.0;
- AMBIENT_NOISE_DEFAULT = 0.0;
- PROPAGATION_LIMIT_DEFAULT = SENSITIVITY_DEFAULT;
- HEIGHT_DEFAULT = 1.5;
- SNR_THRESHOLD_DEFAULT = 10.0;
- Fading: I use Fading.None()
- PathLoss: I use PathLoss.TwoRay(). This is an attenuation model of
direct path of radio waves between sender and receiver and one reflection to
the ground.
Now one can set THRESHOLD_DEFAULT and SENSITIVITY_DEFAULT to
play with the receive and sensing range (the range values below are only correct
when all parameters above are set to the values described above)
- For PathLoss.TwoRay
- THRESHOLD_DEFAULT = -71; transmission range - 198m
- THRESHOLD_DEFAULT = -81; transmission range - 376
-
- SENSITIVITY_DEFAULT = -76; sensing range - 282m
- SENSITIVITY_DEFAULT = -77; sensing range - 299m
- SENSITIVITY_DEFAULT = -81; sensing range - 376m
- SENSITIVITY_DEFAULT = -82; sensing range - 399m
- SENSITIVITY_DEFAULT = -91; sensing range - 670m
- For PathLoss.FreeSpace
- THRESHOLD_DEFAULT = -71; transmission range - 198m
- THRESHOLD_DEFAULT = -81; transmission range - 672m
-
- SENSITIVITY_DEFAULT = -76; sensing range - 352m
- SENSITIVITY_DEFAULT = -81; sensing range - 672m
- SENSITIVITY_DEFAULT = -91; sensing range - 1983m
- The influence of Antenna Gain: antenna gain is expressed in
dB. The value of antenna gain in swans has a linear relationship with the
receive and sensitivity thresholds. Setting antenna gain to some positive
value X, is equivalent to to increasing both receive and sensitivity
thresholds by 2X (this is since swans uses teh same gain for tx and rx
antenna). For example:
- For GAIN_DEFAULT = -1
- THRESHOLD_DEFAULT = -73; transmission range - 198m
- SENSITIVITY_DEFAULT = -78; transmission range - 282
- For GAIN_DEFAULT = -4.9
- THRESHOLD_DEFAULT = -81; transmission range - 202m
- SENSITIVITY_DEFAULT = -91; transmission range - 381
Range Test:
I have written a short simulation setup program, based on
driver.hearbeat.java, which allows one to play with all the above PHY parameters and
see if two nodes receive messages from each other or not.
This is the code of driver.RangeTest.java. It
receives one parameter - the distance between two nodes.
Gabriel Kliot
12/31/2008