IT++ Logo
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itpp::Correlated_Fading_Generator Class Referenceabstract

Correlated (random) fading generator class. More...

#include <itpp/comm/channel.h>

Inheritance diagram for itpp::Correlated_Fading_Generator:
itpp::Fading_Generator itpp::FIR_Fading_Generator itpp::IFFT_Fading_Generator itpp::Rice_Fading_Generator

Public Member Functions

 Correlated_Fading_Generator (double norm_doppler)
 Default constructor. More...
 
virtual ~Correlated_Fading_Generator ()
 Destructor. More...
 
virtual void set_norm_doppler (double norm_doppler)
 Set normalized Doppler. More...
 
virtual void set_LOS_doppler (double relative_doppler)
 Set relative Doppler (compared to the maximum Doppler) for the LOS component. More...
 
virtual void set_time_offset (int offset)
 Set time offset in samples. More...
 
virtual double get_norm_doppler () const
 Return normalized Doppler. More...
 
virtual double get_LOS_doppler () const
 Get relative Doppler (compared to the maximum doppler) for the LOS component. More...
 
virtual double get_time_offset () const
 Get time offset in samples. More...
 
virtual void shift_time_offset (int no_samples)
 Shift generator time offset by a number of samples. More...
 
virtual void init ()=0
 Initialize the generator. More...
 
virtual void generate (int no_samples, cvec &output)=0
 Generate no_samples values from the fading process. More...
 
virtual void generate (int no_samples, cvec &output)=0
 Generate no_samples values from the fading process. More...
 
cvec generate (int no_samples)
 Generate no_samples values from the fading process. More...
 
void set_LOS_power (double relative_power)
 Set relative LOS power. More...
 
virtual void set_filter_length (int filter_length)
 Set FIR filter length (for FIR fading generator) More...
 
virtual void set_doppler_spectrum (DOPPLER_SPECTRUM spectrum)
 Set Doppler spectrum (for Rice fading generator) More...
 
virtual void set_no_frequencies (int no_freq)
 Set number of sine frequencies (for Rice fading generator) More...
 
virtual void set_rice_method (RICE_METHOD method)
 Set calculation method of Doppler frequencies and amplitudes (for Rice fading generator) More...
 
double get_LOS_power () const
 Get relative power of LOS component (Rice factor) More...
 
virtual int get_filter_length () const
 Set FIR filter length (for FIR fading generator) More...
 
virtual DOPPLER_SPECTRUM get_doppler_spectrum () const
 Return Doppler spectrum (for Rice fading generator) More...
 
virtual int get_no_frequencies () const
 Get number of sine frequencies (for Rice fading generator) More...
 
virtual RICE_METHOD get_rice_method () const
 Get calculation method of Doppler frequencies and amplitudes (for Rice fading generator) More...
 

Protected Member Functions

void add_LOS (int idx, std::complex< double > &sample)
 add LOS component to the sample with index idx More...
 

Protected Attributes

double n_dopp
 Normalized maximum Doppler frequency. More...
 
double los_dopp
 Relative Doppler on LOS component (0.7 by default) More...
 
double time_offset
 Time offset in samples (time state in the generator) More...
 
bool init_flag
 signals if generator is initialized or not More...
 
double los_power
 Relative power of LOS component compared to diffuse component (K factor) More...
 
double los_diffuse
 Diffuse component: sqrt(1 / (1 + los_power)) More...
 
double los_direct
 Direct component: sqrt(los_power / (1 + los_power)) More...
 

Detailed Description

Correlated (random) fading generator class.

Author
Adam Piatyszek

Correlated fading generator class implements an abstract interface for a set of generators. Parameter that define the correlated fading process are the normalized Doppler and optionally the relative Doppler of a LOS component.

References:

Definition at line 390 of file channel.h.

Constructor & Destructor Documentation

◆ Correlated_Fading_Generator()

itpp::Correlated_Fading_Generator::Correlated_Fading_Generator ( double  norm_doppler)

Default constructor.

Definition at line 204 of file channel.cpp.

References set_norm_doppler().

◆ ~Correlated_Fading_Generator()

virtual itpp::Correlated_Fading_Generator::~Correlated_Fading_Generator ( )
inlinevirtual

Destructor.

Definition at line 396 of file channel.h.

Member Function Documentation

◆ set_norm_doppler()

void itpp::Correlated_Fading_Generator::set_norm_doppler ( double  norm_doppler)
virtual

Set normalized Doppler.

Reimplemented from itpp::Fading_Generator.

Definition at line 210 of file channel.cpp.

References itpp::Fading_Generator::init_flag, it_assert, and n_dopp.

Referenced by Correlated_Fading_Generator().

◆ set_LOS_doppler()

void itpp::Correlated_Fading_Generator::set_LOS_doppler ( double  relative_doppler)
virtual

Set relative Doppler (compared to the maximum Doppler) for the LOS component.

Reimplemented from itpp::Fading_Generator.

Definition at line 218 of file channel.cpp.

References it_assert, and los_dopp.

◆ set_time_offset()

void itpp::Correlated_Fading_Generator::set_time_offset ( int  offset)
virtual

Set time offset in samples.

Reimplemented from itpp::Fading_Generator.

Definition at line 225 of file channel.cpp.

References time_offset.

◆ get_norm_doppler()

virtual double itpp::Correlated_Fading_Generator::get_norm_doppler ( ) const
inlinevirtual

Return normalized Doppler.

Reimplemented from itpp::Fading_Generator.

Definition at line 406 of file channel.h.

◆ get_LOS_doppler()

virtual double itpp::Correlated_Fading_Generator::get_LOS_doppler ( ) const
inlinevirtual

Get relative Doppler (compared to the maximum doppler) for the LOS component.

Reimplemented from itpp::Fading_Generator.

Definition at line 408 of file channel.h.

◆ get_time_offset()

virtual double itpp::Correlated_Fading_Generator::get_time_offset ( ) const
inlinevirtual

Get time offset in samples.

Reimplemented from itpp::Fading_Generator.

Definition at line 410 of file channel.h.

◆ shift_time_offset()

void itpp::Correlated_Fading_Generator::shift_time_offset ( int  no_samples)
virtual

Shift generator time offset by a number of samples.

Reimplemented from itpp::Fading_Generator.

Definition at line 230 of file channel.cpp.

References time_offset.

◆ init()

virtual void itpp::Correlated_Fading_Generator::init ( )
pure virtual

◆ generate() [1/3]

virtual void itpp::Correlated_Fading_Generator::generate ( int  no_samples,
cvec &  output 
)
pure virtual

◆ add_LOS()

void itpp::Correlated_Fading_Generator::add_LOS ( int  idx,
std::complex< double > &  sample 
)
protected

◆ generate() [2/3]

virtual void itpp::Fading_Generator::generate ( int  no_samples,
cvec &  output 
)
virtual

◆ generate() [3/3]

cvec itpp::Fading_Generator::generate ( int  no_samples)

Generate no_samples values from the fading process.

Definition at line 279 of file channel.cpp.

◆ set_LOS_power()

void itpp::Fading_Generator::set_LOS_power ( double  relative_power)
inherited

◆ set_filter_length()

void itpp::Fading_Generator::set_filter_length ( int  filter_length)
virtualinherited

Set FIR filter length (for FIR fading generator)

Reimplemented in itpp::FIR_Fading_Generator.

Definition at line 81 of file channel.cpp.

References it_warning.

◆ set_doppler_spectrum()

void itpp::Fading_Generator::set_doppler_spectrum ( DOPPLER_SPECTRUM  spectrum)
virtualinherited

Set Doppler spectrum (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 86 of file channel.cpp.

References it_warning.

◆ set_no_frequencies()

void itpp::Fading_Generator::set_no_frequencies ( int  no_freq)
virtualinherited

Set number of sine frequencies (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 91 of file channel.cpp.

References it_warning.

◆ set_rice_method()

void itpp::Fading_Generator::set_rice_method ( RICE_METHOD  method)
virtualinherited

Set calculation method of Doppler frequencies and amplitudes (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 96 of file channel.cpp.

References it_warning.

◆ get_LOS_power()

double itpp::Fading_Generator::get_LOS_power ( ) const
inlineinherited

Get relative power of LOS component (Rice factor)

Definition at line 254 of file channel.h.

◆ get_filter_length()

int itpp::Fading_Generator::get_filter_length ( ) const
virtualinherited

Set FIR filter length (for FIR fading generator)

Reimplemented in itpp::FIR_Fading_Generator.

Definition at line 113 of file channel.cpp.

References it_warning.

◆ get_doppler_spectrum()

DOPPLER_SPECTRUM itpp::Fading_Generator::get_doppler_spectrum ( ) const
virtualinherited

Return Doppler spectrum (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 125 of file channel.cpp.

References it_warning.

◆ get_no_frequencies()

int itpp::Fading_Generator::get_no_frequencies ( ) const
virtualinherited

Get number of sine frequencies (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 131 of file channel.cpp.

References it_warning.

◆ get_rice_method()

RICE_METHOD itpp::Fading_Generator::get_rice_method ( ) const
virtualinherited

Get calculation method of Doppler frequencies and amplitudes (for Rice fading generator)

Reimplemented in itpp::Rice_Fading_Generator.

Definition at line 137 of file channel.cpp.

References it_warning.

Member Data Documentation

◆ n_dopp

double itpp::Correlated_Fading_Generator::n_dopp
protected

◆ los_dopp

double itpp::Correlated_Fading_Generator::los_dopp
protected

Relative Doppler on LOS component (0.7 by default)

Definition at line 425 of file channel.h.

Referenced by add_LOS(), and set_LOS_doppler().

◆ time_offset

double itpp::Correlated_Fading_Generator::time_offset
protected

◆ init_flag

bool itpp::Fading_Generator::init_flag
protectedinherited

◆ los_power

double itpp::Fading_Generator::los_power
protectedinherited

◆ los_diffuse

double itpp::Fading_Generator::los_diffuse
protectedinherited

Diffuse component: sqrt(1 / (1 + los_power))

Definition at line 284 of file channel.h.

Referenced by add_LOS(), itpp::Independent_Fading_Generator::generate(), itpp::Static_Fading_Generator::init(), and itpp::Fading_Generator::set_LOS_power().

◆ los_direct

double itpp::Fading_Generator::los_direct
protectedinherited

Direct component: sqrt(los_power / (1 + los_power))

Definition at line 285 of file channel.h.

Referenced by add_LOS(), itpp::Independent_Fading_Generator::generate(), itpp::Static_Fading_Generator::init(), and itpp::Fading_Generator::set_LOS_power().


The documentation for this class was generated from the following files:

Generated on Tue Aug 17 2021 10:59:15 for IT++ by Doxygen 1.9.4