IT++ Logo
Public Member Functions | Protected Attributes | List of all members
itpp::Channel_Specification Class Reference

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

#include <itpp/comm/channel.h>

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 ()
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.

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}] \]


\[ \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:


Definition at line 696 of file channel.h.

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

Generated on Sat Jul 6 2013 10:54:31 for IT++ by Doxygen 1.8.2