FIR type Fading generator class. More...
#include <itpp/comm/channel.h>
Public Member Functions | |
FIR_Fading_Generator (double norm_doppler, int filter_length=500) | |
Default constructor. | |
virtual | ~FIR_Fading_Generator () |
Destructor. | |
virtual void | set_filter_length (int filter_length) |
Set FIR filter length. | |
virtual int | get_filter_length () const |
Get filter length. | |
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_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 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 | |
vec | Jakes_filter (double norm_dopp, int order=100) |
Jakes spectrum filter. | |
void | add_LOS (int idx, std::complex< double > &sample) |
add LOS component to the sample with index idx | |
Protected Attributes | |
int | fir_length |
Size of FIR filter. | |
int | upsample_rate |
MA_Filter< std::complex < double >, double, std::complex< double > > | fir_filter |
Filter used for fading generation. | |
cvec | left_overs |
Left-overs from upsampling. | |
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)) | |
FIR type Fading generator class.
A FIR generator is a linear finite impulse response (FIR) filter implementation of a filter method for generation of a fading process. Parameters that define the generator are the normalized Doppler and length of the FIR filter. The default value of filter length is 500. If the normalized Doppler frequency is lower than 0.1 an equivalent process of a higher normalized Doppler is generated and linearly interpolated.
References:
|
protected |
Jakes spectrum filter.
Function that generates the taps in the Jakes filter.
order | Number of taps in the filter |
norm_dopp | Normalized Doppler frequency, i.e. , where is the actual Doppler frequency and is the sampling interval. |
Definition at line 447 of file channel.cpp.
References itpp::besselj(), itpp::concat(), itpp::elem_mult(), itpp::hamming(), itpp::m_2pi, itpp::norm(), itpp::pow(), and itpp::reverse().
Referenced by init().
|
protected |
Upsampling rate for linear interpolation
Definition at line 559 of file channel.h.
Referenced by generate(), and init().
Generated on Sat Jul 6 2013 10:54:31 for IT++ by Doxygen 1.8.2