The specific behavior of the wireless link depends on two
elements: the radio, and the environment (channel) where they are placed.
Hence, in order to obtain better simulations, the characteristics of
both elements should be provided. The model presented in this tutorial is part of a more
general link-layer model proposed by the
ANRG group at USC,
and it is valid for static and low-dynamic environments.
The configuration file contains various channel, radio and topology parameters that can be modified. Any line starting with the percentage symbol (%) is treated as a comment. The format of the configuration file is as follows:
A sample file (configurationFile) is provided as the default configuration file.
The next sections explain the different channel, radio and deployment parameters.
When a radio signal propagates it may be diffracted, reflected and scattered. These events have two important consequences on the signal strength. First, the signal strength decays exponentially with respect to distance. And second, for a given distance the signal strength is random and log-normally distributed.
The channel is modeled using the log-normal path loss model. This model has the following parameters:
Channel parameters for some scenarios with D0 = 1m are presented in the following table:
PL_D0 (dB) | PATH_LOSS_EXPONENT | SHADOWING_STANDARD_DEVIATION (dB) | |
---|---|---|---|
Football Field | 55.4 | 4.7 | 3.2 |
Aisle of Building | 52.1 | 3.3 | 5.5 |
In
"Near-ground wideband channel measurements", the authors present channel parameters for several scenarios.
Usually, the PATH_LOSS_EXPONENT and the SHADOWING_STANDARD_DEVIATION take values between 2 and 6 for scenarios
with LOS (line-of-sight) conditions.
Another important effect to be considered is link asymmetry. Link asymmetry have a static and a dynamic component. The dynamic component is due to thermal noise, which leads to a dynamic variation of a node's noise floor readings at runtime. This dynamic variation is usually modeled as a gaussian random variable with mean 0 and a standard deviation given by the parameter:
The static component is caused by hardware variance (variance in the output power and baseline noise floor across nodes). When a user sets the output power of a node to a value P, the actual output power can be below or above P; similarly, the baseline noise floor of the radio is not fixed and has some variance around its mean value. Also, there might be some correlation between the variances of the output power and noise floor, for example, mica2 motes show that nodes with an output power higher than the set value ("better transmitters") usually have a lower noise floor ("better receivers"), and viceversa.
Hardware variance can be modeled as a multidimensional Gaussian process, where a covariance matrix captures the variances of the output power, the noise floor, and their correlation. In this process, the baseline (average) noise floor in dBm is given by:
And the variances of the output power and noise floor on a per node basis are given by the covariance matrix S = [S11 S12; S21 S22] :
All the variances (elements of S) should be in dB. The values of the covariance matrix are hardware dependent (default values are given for MICA2 motes), but in general the smaller S11 and S22, the lower the impact on link asymmetry. S12 and S21 are usually negative, and it is important to recall the properties of a covariance matrix (linear algebra), where the absolute values of S21 (and S12) should be less than sqrt(S11xS22), i.e. |S21| < sqrt(S11xS22). In case symmetric links are desired, the user should set S11 and S22 to 0.
Finally, it is important to mention that hardware measurements are required to obtain the radio parameters described above. However, the user can modify some of these parameters to study their impact on different protocols. As a general guideline we suggest not to increase the hardware variance too much (mica2 motes have been observed to have the highest levels of asymmetry). The next table presents some suggested values for radio parameters:
SUGGESTED VALUES | |
---|---|
NOISE_FLOOR | between -110 dBm and -104 dBm |
S = [S11 S12; S21 S22] | [3.7 -3.3; -3.3 6.0] for high asymmetry levels
[0.9 -0.7; -0.7 1.2] for low asymmetry levels |
WHITE_GAUSSIAN_NOISE | between 4 dB and 5 dB |
The TOPOLOGY parameter allows to test different deployments (described below). Each one of these deployments have a number identifying it, which should be assigned to the variable TOPOLOGY. The available type of deployments are:
For example, if a RANDOM deployment is desired, the parameter TOPOLOGY should be set to 3 (TOPOLOGY = 3;). When a user desires to specify the topology, TOPOLOGY should be set to 4, and the format of the deployment file provided by the user should be:
nodeid Xcoordinate Ycoordinate
Where the X and Y coordinates should be in meters, and the nodeid should start with 0. A topology file looks like:
A sample topology file is provided in topologyFile. Other topology parameters are:
Please recall that no pair of nodes can be closer than D0. Hence,
GRID_UNIT should be greater equal than D0 when GRID topologies are chosen (TOPOLOGY = 1;)
, and the TOPOLOGY_FILE provided
by the user should not violate this constraint either. For UNIFORM and RANDOM
topologies the node density (NUMBER_OF_NODES / area) is not allowed
to be higher than 0.5 nodes / D0^2.
Example 1: A chain topology defined by the user on file chainTopo, placed in the aisle of a building (channel parameters), with nodes having an average noise floor of -106 dBm, a standard deviation of 4.5 dB for the white gaussian noise and a high level of asymmetry. The resulting configuration file is:
Example 2: A uniform topology with 49 nodes in a 100m by 100m terrain, placed in a football field (channel parameters), with nodes having an average noise floor of -105 dBm, a standard deviation of 4.0 dB for the white gaussian noise and a low level of asymmetry. The resulting configuration file is:
Example 3: similar to example 2, however in this case a 64 node grid topology is deployed with an internode distance of 2m and symmetric links are assumed. The resulting configuration file is:
To use the model just provide the following commands
$ javac LinkLayerModel.java
$ java LinkLayerModel configurationFileName
The link gains will be written in a file called linkgain.out, which contains the gain for each link and the noise floor for each node (format:   "gain"   src   dest   linkgain |   "noise"   nid   nf   awgn), for example: