Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

simthlib::WssusChannel Class Reference

#include <channel.h>

Inheritance diagram for simthlib::WssusChannel:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 WssusChannel (int id, simth::DeviceSystemIntf *s, const simth::PropertyList &pl, double n=1.0)
virtual ~WssusChannel ()
 destructor
void refresh ()
 determines new random paths
virtual void getTransfer (int relative_time, simth::FreqSignal &trans) const
void transmit (const simth::TimeSignal &insym, simth::TimeSignal *outsym)
void setRiceFactor (double rf)
void setRiceFactor_dB (double rf)
virtual void setCohTime (double tc)=0
 sets the coherence time of the channel
virtual void setCohBandw (double bc)=0
 sets the coherence bandwidth of the channel
double GetDeltaT ()
void adjustDeltaT (double newDeltaT)
void setTimeNormalization ()
void setFreqNormalization (double freqDist, int numFreqs)
virtual void startOfSimulation ()
virtual void print (std::ostream &os) const

Protected Member Functions

virtual double maxDelay () const =0
 -------------------------------
virtual double diceNewDelay () const =0
virtual double diceNewPhase () const =0
virtual double diceNewDopplerFreq () const =0

Related Functions

(Note that these are not member functions.)

 propertylist_WssusChannel (not_a_function)

Detailed Description

WSSUS Channel. This is the abstract base class of statistical time-variant multipath channel models for mobile radio environments. The time-variant impulse response consists of N independent paths which are determined according to given probability density functions (pdf).

For each propagation path $i$ the following parameters are randomly determined: delay $\tau_i$ (e.g. with a negative exponential pdf), Doppler frequency $f_{Di}$ (e.g. with a Jakes pdf) and initial phase $\theta_i$ (e.g. with a uniform pdf). The impulse response of the channel is

\[ h(t,\tau) = \frac{1}{N} \sum_{n=1}^{N} e^{j(\theta_n + 2\pi f_{Dn}t)} \cdot \delta(\tau - \tau_n). \]

Various types of special channels can be supported by derived classes. These classes complement the general channel model (WssusChannel) with special pdf's (one example is given above).

There are two derived channel models which can be constructed for a given coherence time and coherence bandwidth and for a given maximal Doppler frequency and maximal delay, respectively. For the WSSUS channel there are functions which modify the channel's coherence time or bandwidth.

Furthermore, there are the following four COST channel models which can be selected with a different constructor: RA (rural area) -- $0.7\mu s$ maximal delay, TU (typical urban) -- $7\mu s$ max. delay, BU (bad urban) -- $10\mu s$ max. delay, HT (hilly terrain) -- $20\mu s$ max. delay

As a sequence of modulation symbols is transmitted samples of the channel transfer function can be determined, which can be used for channel equalization in OFDM systems.


Constructor & Destructor Documentation

simthlib::WssusChannel::WssusChannel int  id,
simth::DeviceSystemIntf s,
const simth::PropertyList pl,
double  n = 1.0
 

Constructor for given number of paths.

Parameters:
id The Device ID
s The pointer to the simulation system
pl The list of properties this device has
n Noise power, but note that this will be changed by the SNR loop anyway.
The parameter for the number of paths is expected in the PropertyList as property "num_paths".

virtual simthlib::WssusChannel::~WssusChannel  )  [virtual]
 

destructor


Member Function Documentation

void simthlib::WssusChannel::adjustDeltaT double  newDeltaT  ) 
 

Set a new delta_t, and then refresh().

virtual double simthlib::WssusChannel::diceNewDelay  )  const [protected, pure virtual]
 

Returns a (pseudo) random delay value whose probability profile is defined in derived classes.

Implemented in simthlib::WssusChannelDelayProfile.

virtual double simthlib::WssusChannel::diceNewDopplerFreq  )  const [protected, pure virtual]
 

Returns a (pseudo) random doppler value whose probability profile is defined in derived classes.

Implemented in simthlib::WssusChannelJakesUniform.

virtual double simthlib::WssusChannel::diceNewPhase  )  const [protected, pure virtual]
 

Returns a (pseudo) random phase value whose probability profile is defined in derived classes.

Implemented in simthlib::WssusChannelJakesUniform.

double simthlib::WssusChannel::GetDeltaT  )  [inline]
 

Returns the time distance between two samples of the transmitted sequences.

virtual void simthlib::WssusChannel::getTransfer int  relative_time,
simth::FreqSignal trans
const [virtual]
 

Determines channel transfer factors.

An ideal estimation of the channel transfer function is performed. This means, the exact values $H(f_i,t_0)$ are determined, where $t_0$ is the time of the last transmitted time sample over this channel plus ${\tt relativetime} * {\tt delta\_t}$ and $f_i = n\cdot \mbox{\tt delta\_f}, n=0, \dots, \mbox{\tt num\_f}-1$. (time = 0 indicates the transmission time of the last sample transmitted over the channel; time = -numSamples indicates the transmission time of the first sample of the last transmitted sequence.

Parameters:
relative_time The relative time at which the transfer function is calculated, relative to the last time sample that was transmitted over this channel!
trans The simth::FreqSignal that receives the resulting transfer function.

Implements simthlib::Channel.

virtual double simthlib::WssusChannel::maxDelay  )  const [protected, pure virtual]
 

-------------------------------

Returns the maximal signal delay in seconds that is possible for a path, i.e. the maximal value that can be returned by the function diceNewDelay().

Implemented in simthlib::WssusChannelDelayProfile.

virtual void simthlib::WssusChannel::print std::ostream &  os  )  const [virtual]
 

Reimplemented from simthlib::Channel.

Reimplemented in simthlib::WssusChannelJakesUniform, and simthlib::WssusChannelDelayProfile.

void simthlib::WssusChannel::refresh  )  [virtual]
 

determines new random paths

Reimplemented from simth::Device.

virtual void simthlib::WssusChannel::setCohBandw double  bc  )  [pure virtual]
 

sets the coherence bandwidth of the channel

Implemented in simthlib::WssusChannelExpDelay, simthlib::WssusChannelBU, and simthlib::WssusChannelHt.

virtual void simthlib::WssusChannel::setCohTime double  tc  )  [pure virtual]
 

sets the coherence time of the channel

Implemented in simthlib::WssusChannelJakesUniform.

void simthlib::WssusChannel::setFreqNormalization double  freqDist,
int  numFreqs
 

Sets the normalization mode to {FREQ}. {freqDist} and {numFreqs} are used to specify the used frequency range (starts at zero).

void simthlib::WssusChannel::setRiceFactor double  rf  ) 
 

Sets the Ricean factor of the channel, default is 0

void simthlib::WssusChannel::setRiceFactor_dB double  rf  ) 
 

sets the Ricean factor of the channel (in dB), default is $-\infty$

void simthlib::WssusChannel::setTimeNormalization  ) 
 

Sets the normalization mode to TIME.

virtual void simthlib::WssusChannel::startOfSimulation  )  [virtual]
 

Called by the simulation system at the beginning of each simulation run.

Reimplemented from simthlib::Channel.

void simthlib::WssusChannel::transmit const simth::TimeSignal insym,
simth::TimeSignal outsym
[virtual]
 

Transmits a symbol sequence.

The symbol sequence insym is transmitted over the channel with the result outsym. Inter-symbol interference of a previously transmitted sequence is considered.

Implements simthlib::Channel.


Friends And Related Function Documentation

propertylist_WssusChannel not_a_function   )  [related]
 

These are the properties of class WssusChannel . This list is auto-generated from the XML-Devicelist of this device by means of an XSLT transformation script.

Description of this device in the XML file: This is the abstract base class of statistical time-variant multipath channel models for mobile radio environments. The time-variant impulse response consists of N independent paths which are determined according to given probability density functions (pdf).

Note that this class also has the Properties of its base classes. The direct base class is simthlib::Channel ; direct link to its propertylist should be propertylist_Channel(). The list below usually includes the properties that have been inherited from the base classes; the properties which belong only to this class can be found at the end of this list.

input_length
<sequencelength>, default "-1" -- The length of the input sequence. '-1' means it will be determined dynamically at runtime.

snr
<string>, default "" -- Name of the SNR loop variable in your simulation setup

channel_refresh
<string>, default "" -- Name of the channel refresh loop variable in your simulation setup

3 properties in this class. The above properties have been inherited from the base class simthlib::Channel .

num_path
<unsigned>, default "30" -- Important WSSUS parameter: The number of scattering paths in the WSSUS channel model. This number should be at least 30 or larger in order to model a sufficiently random channel.

normalization_mode
<enum>, default "standard" -- The normalization mode in this channel: standard, time, or freq. Additionally the channel will be normalized by the number of transmit antennas.

freq_dist
<double>, default "312500" -- Only for normalization mode 'frequency': Distance of frequence samples when calculating the normalization factor in frequency normalization mode

num_freqs
<unsigned>, default "64" -- Only for normalization mode 'frequency': Number of frequency points/samples when calculating the normalization factor in frequency normalization mode

rice_factor_db
<double>, default "-1e6" -- The rice factor of this channel in dB. If unset (minus infinity), then there is no line of sight. The dB property overrides the scalar one.

rice_factor
<double>, default "0.0" -- The rice factor of this channel as a scalar. If unset (zero), then there is no line of sight.

6 properties in this class.


Generated on Tue Aug 9 14:37:00 2005 for simtheticlib by  doxygen 1.4.1