#include <itpp/comm/channel.h>
Inheritance diagram for itpp::Rice_Fading_Generator:
Public Member Functions | |
Rice_Fading_Generator (const double norm_doppler=0.0, const DOPPLER_SPECTRUM spectrum=Jakes, const int no_freq=16, const RICE_METHOD method=MEDS) | |
Set normalized dopper, doppler spectrum, number of doppler frequencies and calculation method. | |
virtual | ~Rice_Fading_Generator () |
Destructor. | |
void | set_no_frequencies (const int no_freq) |
Set number of doppler frequencies. | |
void | set_method (const RICE_METHOD method) |
Set calculation method for calculation of doppler frequencies and amplitudes. | |
int | get_no_frequencies () |
Get number of doppler frequencies. | |
RICE_METHOD | get_method () |
Get calculation method for calculation of doppler frequencies and amplitudes. | |
virtual void | init () |
Initialize the generator (is not needed) and set time offset to 0. | |
void | set_time_offset (const int offset) |
set time offset in samples | |
double | get_time_offset () |
get time offset in samples | |
virtual void | generate (const int no_samples, cvec &output) |
Generate no_samples values from the fading process. | |
virtual void | generate (const int no_samples, const int upsampling_factor, cvec &output) |
Generate no_samples values from the fading process upsampled by upsampling_factor . | |
void | set_norm_doppler (const double norm_doppler) |
Set normalized doppler rate. | |
void | set_doppler_spectrum (const DOPPLER_SPECTRUM spectrum) |
Set doppler spectrum. | |
void | set_LOS (const double relative_power, const double relative_doppler) |
Set LOS component. Used e.g. for Rice doppler spectrum. Rice factor and relative doppler (related to maximum doppler). | |
double | get_norm_doppler () |
Return normalized doppler rate. | |
DOPPLER_SPECTRUM | get_doppler_spectrum () |
Return doppler spectrum. | |
double | get_LOS_power () |
Get relative power of LOS component (Rice factor). | |
double | get_LOS_doppler () |
Get relative doppler (compared to maximum doppler) for the LOS component. | |
cvec | generate (const int no_samples) |
Generate no_samples values from the fading process. | |
cvec | generate (const int no_samples, const int upsampling_factor) |
Generate no_samples values from the fading process upsampled by upsampling_factor . | |
void | shift_time_offset (const int no_samples) |
Shift generator time offset by a number of samples. | |
Protected Member Functions | |
void | init_MEDS () |
Init function for MEDS method. | |
void | generate_zero_doppler (const int no_samples, cvec &output) |
void | generate_zero_doppler (const int no_samples, const int upsampling_factor, cvec &output) |
Protected Attributes | |
int | Ni |
Generate no_samples values from the fading process. | |
RICE_METHOD | rice_method |
vec | f1 |
vec | f2 |
vec | c1 |
vec | c2 |
vec | th1 |
vec | th2 |
DOPPLER_SPECTRUM | dopp_spectrum |
double | n_dopp |
double | los_dopp |
double | los_power |
bool | init_flag |
double | time_offset |
Here ,
, and
are the doppler coefficients, discrete doppler frequencies, and doppler phases, respectively. Rice showed that a generator of this form can perfectly model a Gaussian process when
. When generating a fading pattern we need a complex-valued generator
Parameters that define the generator is the normalized doppler and the doppler spectrum. Possible values of doppler spectra are:
Furthermore also the number of doppler frequencies, and the method used to calculate the parameters
,
, and
are parameters. For now the only method defined for calculating the parameters is the Method of Exact Doppler Spread (MEDS). See [P"atzold] for more details.
References:
[P"atzold] Matthias P"atzold, Mobile fading channels, Wiley, 2002.
Definition at line 301 of file channel.h.
|
Set normalized dopper, doppler spectrum, number of doppler frequencies and calculation method.
Definition at line 144 of file channel.cpp. References set_method(), and set_no_frequencies(). |
|
Destructor.
|
|
Set number of doppler frequencies.
Definition at line 151 of file channel.cpp. References itpp::Fading_Generator::init_flag, it_assert, and Ni. Referenced by Rice_Fading_Generator(). |
|
Set calculation method for calculation of doppler frequencies and amplitudes.
Definition at line 158 of file channel.cpp. References itpp::Fading_Generator::init_flag, and rice_method. Referenced by Rice_Fading_Generator(). |
|
Get number of doppler frequencies.
Definition at line 165 of file channel.cpp. References Ni. |
|
Get calculation method for calculation of doppler frequencies and amplitudes.
Definition at line 170 of file channel.cpp. References rice_method. |
|
Initialize the generator (is not needed) and set time offset to 0.
Implements itpp::Fading_Generator. Definition at line 175 of file channel.cpp. References itpp::Fading_Generator::init_flag, init_MEDS(), it_error, rice_method, and itpp::Fading_Generator::time_offset. Referenced by generate(). |
|
set time offset in samples
Definition at line 190 of file channel.cpp. References it_assert, and itpp::Fading_Generator::time_offset. |
|
get time offset in samples
Definition at line 196 of file channel.cpp. References itpp::Fading_Generator::time_offset. |
|
Generate
Implements itpp::Fading_Generator. Definition at line 201 of file channel.cpp. References c1, c2, itpp::cos(), itpp::elem_mult(), f1, f2, itpp::Fading_Generator::generate_zero_doppler(), init(), itpp::Fading_Generator::init_flag, itpp::Fading_Generator::los_dopp, itpp::Fading_Generator::los_power, itpp::Fading_Generator::n_dopp, itpp::pi, itpp::sin(), itpp::sqrt(), itpp::sum(), th1, th2, and itpp::Fading_Generator::time_offset. |
|
Generate
Implements itpp::Fading_Generator. Definition at line 227 of file channel.cpp. References c1, c2, itpp::cos(), itpp::elem_mult(), f1, f2, itpp::Fading_Generator::generate_zero_doppler(), init(), itpp::Fading_Generator::init_flag, itpp::Fading_Generator::los_dopp, itpp::Fading_Generator::los_power, itpp::Fading_Generator::n_dopp, itpp::pi, itpp::sin(), itpp::sqrt(), itpp::sum(), th1, th2, and itpp::Fading_Generator::time_offset. |
|
Init function for MEDS method.
Definition at line 254 of file channel.cpp. References c1, c2, itpp::Fading_Generator::dopp_spectrum, f1, f2, it_error, itpp::linspace(), Ni, itpp::ones(), itpp::pi, itpp::randu(), itpp::sin(), itpp::sqrt(), th1, and th2. Referenced by init(). |
|
Set normalized doppler rate.
Definition at line 72 of file channel.cpp. References itpp::Fading_Generator::init_flag, it_assert, and itpp::Fading_Generator::n_dopp. Referenced by itpp::Fading_Generator::Fading_Generator(). |
|
Set doppler spectrum.
Definition at line 79 of file channel.cpp. References itpp::Fading_Generator::dopp_spectrum, itpp::Fading_Generator::init_flag, itpp::Fading_Generator::los_dopp, and itpp::Fading_Generator::los_power. Referenced by itpp::Fading_Generator::Fading_Generator(). |
|
Set LOS component. Used e.g. for Rice doppler spectrum. Rice factor and relative doppler (related to maximum doppler).
Definition at line 89 of file channel.cpp. References itpp::Fading_Generator::dopp_spectrum, itpp::Fading_Generator::init_flag, it_assert, itpp::Fading_Generator::los_dopp, and itpp::Fading_Generator::los_power. |
|
Return normalized doppler rate.
Definition at line 234 of file channel.h. References itpp::Fading_Generator::n_dopp. |
|
Return doppler spectrum.
Definition at line 236 of file channel.h. References itpp::Fading_Generator::dopp_spectrum. |
|
Get relative power of LOS component (Rice factor).
Definition at line 238 of file channel.h. References itpp::Fading_Generator::los_power. |
|
Get relative doppler (compared to maximum doppler) for the LOS component.
Definition at line 240 of file channel.h. References itpp::Fading_Generator::los_dopp. |
|
Generate
Definition at line 99 of file channel.cpp. References itpp::Fading_Generator::generate(). |
|
Generate
Definition at line 106 of file channel.cpp. References itpp::Fading_Generator::generate(). |
|
Shift generator time offset by a number of samples.
Definition at line 113 of file channel.cpp. References itpp::Fading_Generator::time_offset. |
|
Generate
Definition at line 335 of file channel.h. Referenced by get_no_frequencies(), init_MEDS(), and set_no_frequencies(). |
Generated on Thu Apr 19 14:20:41 2007 for IT++ by Doxygen 1.4.6