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))); }