IFFT type Fading generator class. More...
#include <itpp/comm/channel.h>
Public Member Functions | |
IFFT_Fading_Generator (double norm_doppler) | |
Default constructor. | |
virtual | ~IFFT_Fading_Generator () |
Destructor. | |
virtual void | init () |
Initialize the generator. | |
virtual void | generate (int no_samples, cvec &output) |
Generate no_samples values from the fading process. | |
virtual void | set_norm_doppler (double norm_doppler) |
Set normalized Doppler. | |
virtual void | set_LOS_doppler (double relative_doppler) |
Set relative Doppler (compared to the maximum Doppler) for the LOS component. | |
virtual void | set_time_offset (int offset) |
Set time offset in samples. | |
virtual double | get_norm_doppler () const |
Return normalized Doppler. | |
virtual double | get_LOS_doppler () const |
Get relative Doppler (compared to the maximum doppler) for the LOS component. | |
virtual double | get_time_offset () const |
Get time offset in samples. | |
virtual void | shift_time_offset (int no_samples) |
Shift generator time offset by a number of samples. | |
cvec | generate (int no_samples) |
Generate no_samples values from the fading process. | |
void | set_LOS_power (double relative_power) |
Set relative LOS power. | |
virtual void | set_filter_length (int filter_length) |
Set FIR filter length (for FIR fading generator) | |
virtual void | set_doppler_spectrum (DOPPLER_SPECTRUM spectrum) |
Set Doppler spectrum (for Rice fading generator) | |
virtual void | set_no_frequencies (int no_freq) |
Set number of sine frequencies (for Rice fading generator) | |
virtual void | set_rice_method (RICE_METHOD method) |
Set calculation method of Doppler frequencies and amplitudes (for Rice fading generator) | |
double | get_LOS_power () const |
Get relative power of LOS component (Rice factor) | |
virtual int | get_filter_length () const |
Set FIR filter length (for FIR fading generator) | |
virtual DOPPLER_SPECTRUM | get_doppler_spectrum () const |
Return Doppler spectrum (for Rice fading generator) | |
virtual int | get_no_frequencies () const |
Get number of sine frequencies (for Rice fading generator) | |
virtual RICE_METHOD | get_rice_method () const |
Get calculation method of Doppler frequencies and amplitudes (for Rice fading generator) | |
Protected Member Functions | |
void | generate_Jakes (int no_samples, cvec &output) |
Generator for Jakes spectrum. | |
void | add_LOS (int idx, std::complex< double > &sample) |
add LOS component to the sample with index idx | |
Protected Attributes | |
double | n_dopp |
Normalized maximum Doppler frequency. | |
double | los_dopp |
Relative Doppler on LOS component (0.7 by default) | |
double | time_offset |
Time offset in samples (time state in the generator) | |
bool | init_flag |
signals if generator is initialized or not | |
double | los_power |
Relative power of LOS component compared to diffuse component (K factor) | |
double | los_diffuse |
Diffuse component: sqrt(1 / (1 + los_power)) | |
double | los_direct |
Direct component: sqrt(los_power / (1 + los_power)) | |
IFFT type Fading generator class.
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.
The method is block-based and consecutive blocks are independent fading. The method is very efficient for large blocks. The size of the FFT, , is given by the nearest higher integer power of two that is larger than 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:
Generated on Sat May 25 2013 16:32:30 for IT++ by Doxygen 1.8.2