itpp::Channel_Specification Class Reference
[Channel Modeling]

General specification of a time-domain multipath channel. More...

#include <channel.h>

List of all members.

Public Member Functions

 Channel_Specification (const vec &avg_power_dB="0", const vec &delay_prof="0")
 Default constructor (power profile in dB, delay profile in seconds).
 Channel_Specification (const CHANNEL_PROFILE profile)
 Initialize with predetermined channel profile.
virtual ~Channel_Specification ()
 Destructor.
void set_channel_profile (const vec &avg_power_dB, const vec &delay_prof)
 Set both average power profile in dB and power delay profile in seconds.
void set_channel_profile (const CHANNEL_PROFILE profile)
 Set channel profile to a predetermined profile.
void set_doppler_spectrum (DOPPLER_SPECTRUM *tap_spectrum)
 Set doppler spectrum for each tap in the channel profile.
void set_doppler_spectrum (int tap_number, DOPPLER_SPECTRUM tap_spectrum)
 Set doppler spectrum for tap tap_number in the channel profile.
void set_LOS (int tap_number, double relative_power, double relative_doppler=0.7)
 Set LOS (Rice) components for tap tap_number.
void set_LOS (const vec &relative_power, const vec &relative_doppler="")
 Set LOS (Rice) components for all taps.
void get_channel_profile (vec &avg_power_dB, vec &delay_prof) const
 Get both average power profile in dB and power delay profile in seconds.
vec get_avg_power_dB () const
 Return power profile in dB.
vec get_delay_prof () const
 Return delay profile in seconds.
Array< DOPPLER_SPECTRUMget_doppler_spectrum () const
 Get doppler spectrum for tap index.
DOPPLER_SPECTRUM get_doppler_spectrum (int index) const
 Get doppler spectrum for tap index.
vec get_LOS_power () const
 Get relative power (Rice factor) for each tap.
vec get_LOS_doppler () const
 Get relative Doppler for each tap.
double get_LOS_power (int tap_number) const
 Get relative power (Rice factor) for tap tap_number.
double get_LOS_doppler (int tap_number) const
 Get relative Doppler for tap tap_number.
int taps () const
 Return the number of channel taps.
double calc_mean_excess_delay () const
 Calculate mean excess delay in samples.
double calc_rms_delay_spread () const
 Calculate RMS delay spread in samples.

Protected Attributes

vec a_prof_dB
 Power profile in dB.
vec d_prof
 Delay profile in seconds.
Array< DOPPLER_SPECTRUMtap_doppler_spectrum
 Doppler spectrum for each tap.
int N_taps
 Number of taps.
vec los_power
 Relative power for each Rice component.
vec los_dopp
 Relative Rice Doppler for each Rice component.


Detailed Description

General specification of a time-domain multipath channel.

Author:
Tony Ottosson and Adam Piatyszek
This class does NOT generate any channel values. It is only used to specify the channel model. To generate channel coefficients use the Tapped-Delay Line (TDL) class TDL_Channel.

A time invariant (or at least wide-sense stationary) channel have an impulse response that can be modeled as:

\[ h(t) = \sum_{k=0}^{N_\mathrm{taps}-1} a_k \exp (-j \theta_k) \delta(t-\tau_k), \]

where $ N_{taps} $ is the number of channel taps, $ a_k $ is the average amplitude at delay $ \tau_k $, and $ \theta_k $ is the channel phase of the $ k^{th} $ channel tap. The average power profile, and the delay profiles are defined as:

\[ \mathbf{a} = [a_0, a_1, \ldots, a_{N_\mathrm{taps}-1}] \]

and

\[ \mathbf{\tau} = [\tau_0, \tau_1, \ldots, \tau_{N_\mathrm{taps}-1}], \]

respectively. We assume without loss of generality that $ \tau_0 = 0 $ and $ \tau_0 < \tau_1 < \ldots < \tau_{N_\mathrm{taps}-1} $.

To initialize the class the following parameters should be defined:

Optionally one can define LOS parameters: relative_power and relative_doppler, and additionally the kind of Doppler spectrum for each tap.

It is also possible to specify a predefined channel model. The implemented ones are as follows:

References:


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

Generated on Tue Jun 2 10:02:19 2009 for mixpp by  doxygen 1.5.8