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 Jul 6 2013 10:54:31 for IT++ by Doxygen 1.8.2