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 () | 
| 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_SPECTRUM > | get_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_SPECTRUM > | tap_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.  | |
General specification of a time-domain multipath channel.
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:
where 
 is the number of channel taps, 
 is the average amplitude at delay 
, and 
 is the channel phase of the 
 channel tap. The average power profile, and the delay profiles are defined as:
and
respectively. We assume without loss of generality that 
 and 
.
To initialize the class the following parameters should be defined:
, given in dB
, given in seconds. The delay profile should be sorted (increasing delay) and the first delay has to be 0.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:
Generated on Sat May 25 2013 16:32:30 for IT++ by Doxygen 1.8.2