#include <itpp/comm/channel.h>
Inheritance diagram for itpp::IFFT_Fading_Generator:
Public Member Functions | |
IFFT_Fading_Generator (const double norm_doppler=0.0, const DOPPLER_SPECTRUM spectrum=Jakes) | |
virtual | ~IFFT_Fading_Generator () |
virtual void | init () |
Initialize the generator (is not needed). | |
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 | generate_Jakes (const int no_samples, cvec &output) |
Generator for Jakes spectrum. | |
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 | |
DOPPLER_SPECTRUM | dopp_spectrum |
double | n_dopp |
double | los_dopp |
double | los_power |
bool | init_flag |
double | time_offset |
A IFFT generator is a frequency domain filter implementation of filter method for generation of a fading process. Parameters that define the generator is the normalized doppler and the doppler spectrum. Possible values of doppler spectra are:
no_samples
. For small blocks the FFT size is increased to keep a good accuracy (at least 10 samples in the representation of the doppler-spectrum). However, to keep the program reasonably efficient the largest upsampling factor is 64. Higher factors will result in a run-time error. If so, please use another method.References:
[St"uber] Gordon L. St"uber, Principles of mobile communication, 2nd. ed., Kluwer, 2001.
[Rappaport] Theodore S. Rappaport, Wireless communications: principles and practise, Prentice Hall, 1996.
Definition at line 422 of file channel.h.
void itpp::IFFT_Fading_Generator::init | ( | ) | [virtual] |
Initialize the generator (is not needed).
Implements itpp::Fading_Generator.
Definition at line 365 of file channel.cpp.
References itpp::Fading_Generator::init_flag.
Referenced by generate().
void itpp::IFFT_Fading_Generator::generate | ( | const int | no_samples, | |
cvec & | output | |||
) | [virtual] |
Generate no_samples
values from the fading process.
Implements itpp::Fading_Generator.
Definition at line 371 of file channel.cpp.
References itpp::cos(), itpp::Fading_Generator::dopp_spectrum, generate_Jakes(), itpp::Fading_Generator::generate_zero_doppler(), init(), itpp::Fading_Generator::init_flag, it_error, itpp::Jakes, itpp::Fading_Generator::los_dopp, itpp::Fading_Generator::los_power, itpp::Fading_Generator::n_dopp, itpp::pi, itpp::Rice, itpp::sin(), itpp::sqrt(), and itpp::Fading_Generator::time_offset.
Referenced by generate().
void itpp::IFFT_Fading_Generator::generate | ( | const int | no_samples, | |
const int | upsampling_factor, | |||
cvec & | output | |||
) | [virtual] |
Generate no_samples
values from the fading process upsampled by upsampling_factor
.
Implements itpp::Fading_Generator.
Definition at line 400 of file channel.cpp.
References generate().
void itpp::IFFT_Fading_Generator::generate_Jakes | ( | const int | no_samples, | |
cvec & | output | |||
) | [protected] |
Generator for Jakes spectrum.
Definition at line 406 of file channel.cpp.
References itpp::abs(), itpp::ceil(), itpp::concat(), itpp::elem_mult(), itpp::ifft(), it_assert, itpp::levels2bits(), itpp::linspace(), itpp::Fading_Generator::n_dopp, itpp::norm(), itpp::pi, itpp::pow(), itpp::pow2i(), itpp::randn_c(), itpp::reverse(), itpp::sqrt(), itpp::to_cvec(), itpp::zeros(), and itpp::zeros_c().
Referenced by generate().
void itpp::Fading_Generator::set_norm_doppler | ( | const double | norm_doppler | ) | [inherited] |
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().
void itpp::Fading_Generator::set_doppler_spectrum | ( | const DOPPLER_SPECTRUM | spectrum | ) | [inherited] |
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, itpp::Fading_Generator::los_power, and itpp::Rice.
Referenced by itpp::Fading_Generator::Fading_Generator().
void itpp::Fading_Generator::set_LOS | ( | const double | relative_power, | |
const double | relative_doppler | |||
) | [inherited] |
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, itpp::Fading_Generator::los_power, and itpp::Rice.
double itpp::Fading_Generator::get_norm_doppler | ( | ) | [inline, inherited] |
Return normalized doppler rate.
Definition at line 234 of file channel.h.
References itpp::Fading_Generator::n_dopp.
DOPPLER_SPECTRUM itpp::Fading_Generator::get_doppler_spectrum | ( | ) | [inline, inherited] |
Return doppler spectrum.
Definition at line 236 of file channel.h.
References itpp::Fading_Generator::dopp_spectrum.
double itpp::Fading_Generator::get_LOS_power | ( | ) | [inline, inherited] |
Get relative power of LOS component (Rice factor).
Definition at line 238 of file channel.h.
References itpp::Fading_Generator::los_power.
double itpp::Fading_Generator::get_LOS_doppler | ( | ) | [inline, inherited] |
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.
cvec itpp::Fading_Generator::generate | ( | const int | no_samples | ) | [inherited] |
Generate no_samples
values from the fading process.
Definition at line 99 of file channel.cpp.
References itpp::Fading_Generator::generate().
cvec itpp::Fading_Generator::generate | ( | const int | no_samples, | |
const int | upsampling_factor | |||
) | [inherited] |
Generate no_samples
values from the fading process upsampled by upsampling_factor
.
Definition at line 106 of file channel.cpp.
References itpp::Fading_Generator::generate().
void itpp::Fading_Generator::shift_time_offset | ( | const int | no_samples | ) | [inherited] |
Shift generator time offset by a number of samples.
Definition at line 113 of file channel.cpp.
References itpp::Fading_Generator::time_offset.
Generated on Wed Apr 18 11:23:41 2007 for IT++ by Doxygen 1.5.2