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