Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes

UWBIRStochasticPathlossModel Class Reference
[IEEE 802.15.4A - Classes that implement the IEEE 802.15.4A UWB PHY.analogueModels - AnalogueModel implementations]

This AnalogueModel models implements the Ghassmezadeh stochastic UWB channel models. More...

#include <UWBIRStochasticPathlossModel.h>

Inherits AnalogueModel.

Collaboration diagram for UWBIRStochasticPathlossModel:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 UWBIRStochasticPathlossModel (double _PL0, double _mu_gamma, double _sigma_gamma, double _mu_sigma, double _sigma_sigma, const Move *_move, bool _enabled, bool _shadowing=true)
void filterSignal (Signal &s)
 Has to be overriden by every implementation.

Public Attributes

double PL0
double mu_gamma
double sigma_gamma
double mu_sigma
double sigma_sigma
double gamma
double S
double sigma
double n1
double n2
double n3
bool isEnabled
bool shadowing
cOutVector distances
cOutVector srcPosX
cOutVector srcPosY
cOutVector dstPosX
cOutVector dstPosY
int myIndex
std::string myName

Static Public Attributes

static const double Gtx = 1
static const double Grx = 1
static const double ntx = 1
static const double nrx = 1
static const double fc = 4492.8
static const double d0 = 1
static double n1_limit = 1.25
static double n2_limit = 2
static const double s_mu = 1.6
static const double s_sigma = 0.5
static const double kappa = 1

Protected Member Functions

double getNarrowBandFreeSpacePathloss (double fc, double distance)
double getGhassemzadehPathloss (double distance)
double getFDPathloss (double freq, double distance)
double simtruncnormal (double mean, double stddev, double a, int rng)

Protected Attributes

double pathloss_exponent
double fading
Dimension frequency
const Movemove
cOutVector pathlosses

Detailed Description

This AnalogueModel models implements the Ghassmezadeh stochastic UWB channel models.

Citation of the following publication is appreciated if you use the MiXiM UWB PHY model for a publication of your own. J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY layer model for network simulation. SIMULATION January 2011 vol. 87 no. 1-2 82-112.

For more information, see also:

[1] J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY layer model for network simulation. SIMULATION January 2011 vol. 87 no. 1-2 82-112. http://dx.doi.org/10.1177/0037549710377767 [2] J. Rousselot, Ultra Low Power Communication Protocols for UWB Impulse Radio Wireless Sensor Networks. EPFL Thesis 4720, 2010. http://infoscience.epfl.ch/record/147987 [3] A High-Precision Ultra Wideband Impulse Radio Physical Layer Model for Network Simulation, Jérôme Rousselot, Jean-Dominique Decotignie, Second International Omnet++ Workshop,Simu'TOOLS, Rome, 6 Mar 09. http://portal.acm.org/citation.cfm?id=1537714

Definition at line 53 of file UWBIRStochasticPathlossModel.h.


Member Function Documentation

void UWBIRStochasticPathlossModel::filterSignal ( Signal s  )  [virtual]

Has to be overriden by every implementation.

Filters a specified Signal by adding an attenuation over time to the Signal.

Implements AnalogueModel.

Definition at line 33 of file UWBIRStochasticPathlossModel.cc.

References Signal::addAttenuation(), Coord::distance(), Signal::getMove(), Move::getPositionAt(), Signal::getSignalStart(), and TimeMapping< Interpolator >::setValue().

                                                         {

  if (isEnabled) {
    // Initialize objects and variables
    TimeMapping<Linear>* attMapping = new TimeMapping<Linear> ();
    Argument arg;
    Move srcMove = s.getMove();
    Coord srcCoord, rcvCoord;
    double distance = 0;

    // Generate channel.
    // assume channel coherence during whole frame

    n1 = simtruncnormal(0, 1, n1_limit, 1);
    n2 = simtruncnormal(0, 1, n2_limit, 2);
    n3 = simtruncnormal(0, 1, n2_limit, 3);

    gamma = mu_gamma + n1 * sigma_gamma;
    sigma = mu_sigma + n3 * sigma_sigma;
    S = n2 * sigma;

    // Determine distance between sender and receiver
    srcCoord = srcMove.getPositionAt(s.getSignalStart());
    rcvCoord = move->getPositionAt(s.getSignalStart());

    distance = rcvCoord.distance(srcCoord);
    /*
     srcPosX.record(srcCoord.getX());
     srcPosY.record(srcCoord.getY());
     dstPosX.record(rcvCoord.getX());
     dstPosY.record(rcvCoord.getY());
     distances.record(distance);
     */
    // Compute pathloss
    double attenuation = getGhassemzadehPathloss(distance);
    pathlosses.record(attenuation);
    //attenuation = attenuation / (4*PI*pow(distance, gamma));
    // Store scalar mapping
    attMapping->setValue(arg, attenuation);
    s.addAttenuation(attMapping);
  }
}


The documentation for this class was generated from the following files: