#include <channel.h>
Public Member Functions | |
| Rice_Fading_Generator (double norm_doppler, DOPPLER_SPECTRUM spectrum=Jakes, int no_freq=16, RICE_METHOD method=MEDS) | |
| Default constructor. | |
| virtual | ~Rice_Fading_Generator () |
| Destructor. | |
| virtual void | set_doppler_spectrum (DOPPLER_SPECTRUM spectrum) |
| Set Doppler spectrum. | |
| virtual void | set_no_frequencies (int no_freq) |
| Set number of Doppler frequencies. | |
| virtual void | set_rice_method (RICE_METHOD method) |
| Set calculation method of Doppler frequencies and amplitudes. | |
| virtual DOPPLER_SPECTRUM | get_doppler_spectrum () const |
| Return Doppler spectrum. | |
| virtual int | get_no_frequencies () const |
| Get number of Doppler frequencies. | |
| virtual RICE_METHOD | get_rice_method () const |
| Get calculation method of Doppler frequencies and amplitudes. | |
| 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). | |
| 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). | |
Protected Member Functions | |
| void | init_MEDS () |
| Init function for MEDS method. | |
| void | add_LOS (int idx, std::complex< double > &sample) |
| add LOS component to the sample with index idx | |
Protected Attributes | |
| DOPPLER_SPECTRUM | dopp_spectrum |
| int | Ni |
| Number of sine waves in a Gaussian process. | |
| RICE_METHOD | rice_method |
| Rice process generation method. | |
| 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)). | |
| vec | f1 |
| vec | f2 |
| vec | c1 |
| vec | c2 |
| vec | th1 |
| vec | th2 |
| double | f01 |
| double | f02 |
A Rice generator is a generator of the form:
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 are the normalized Doppler and the doppler spectrum. Possible values of the Doppler spectrum are:
Furthermore also the number of sine waves,
and method used to calculate the parameters
,
, and
can be specified. For now the only method defined for calculating the parameters is the Method of Exact Doppler Spread (MEDS). See [Pat02] for more details.
References:
Doppler spectrum type (Jakes by default)
Referenced by generate(), get_doppler_spectrum(), init_MEDS(), and set_doppler_spectrum().
double itpp::Rice_Fading_Generator::f01 [protected] |
Frequency shift values of the Doppler spectrum in GaussI and GaussII
Referenced by generate(), and init_MEDS().
vec itpp::Rice_Fading_Generator::f1 [protected] |
Doppler frequencies, amplitudes and phases
Referenced by generate(), and init_MEDS().
1.5.8