Implements Rayleigh fading after Jakes' model. More...
#include <JakesFading.h>
Inherits AnalogueModel.

Public Member Functions | |
| JakesFading (int fadingPaths, simtime_t delayRMS, Move *hostMove, double carrierFrequency, simtime_t interval) | |
| Takes the number of fading paths, the maximum delay on a path, the hosts move, the carrier frequency used and the interval in which to defien attenuation entries in. *. | |
| virtual void | filterSignal (Signal &s) |
| Has to be overriden by every implementation. | |
Protected Attributes | |
| int | fadingPaths |
| Number of fading paths used. | |
| double * | angleOfArrival |
| Angle of arrival on a fading path used for Doppler shift calculation. | |
| simtime_t * | delay |
| Delay on a fading path. | |
| Move * | hostMove |
| HostMove of this analogue models host. | |
| double | carrierFrequency |
| Carrier frequency to be used. | |
| Argument | interval |
| The interval to set attenuation entries in. | |
Friends | |
| class | JakesFadingMapping |
Implements Rayleigh fading after Jakes' model.
An example config.xml for this AnalogueModel can be the following:
<AnalogueModel type="JakesFading"> <!-- Carrier frequency of the signal in Hz If ommited the carrier frequency from the connection manager is taken if available otherwise set to default frequency of 2.412e+9--> <parameter name="carrierFrequency" type="double" value="2.412e+9"/> <!-- Number of fading paths per host --> <parameter name="fadingPaths" type="long" value="3"/> <!-- f-selectivity: mean delay spread in seconds --> <parameter name="delayRMS" type="double" value="0.0001"/> <!-- Interval in which to define attenuation for in seconds --> <parameter name="interval" type="double" value="0.001"/> </AnalogueModel>
Definition at line 93 of file JakesFading.h.
| void JakesFading::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 86 of file JakesFading.cc.
References Signal::addAttenuation(), Move::getDirection(), Signal::getMove(), Signal::getSignalLength(), Signal::getSignalStart(), Move::getSpeed(), hostMove, and interval.
{
const Move& senderMove = s.getMove();
double relSpeed = (senderMove.getDirection() * senderMove.getSpeed()
- hostMove->getDirection() * hostMove->getSpeed()).length();
simtime_t start = s.getSignalStart();
simtime_t end = start + s.getSignalLength();
s.addAttenuation(new JakesFadingMapping(this, relSpeed,
Argument(start),
interval,
Argument(end)));
}
1.7.1