itpp::Correlated_Fading_Generator Class Referenceabstract

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

`#include <itpp/comm/channel.h>`

Inheritance diagram for itpp::Correlated_Fading_Generator:

## Public Member Functions

| Correlated_Fading_Generator (double norm_doppler)
| Default constructor.
virtual | ~Correlated_Fading_Generator ()
| Destructor.
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.
virtual void | init ()=0
| Initialize the generator.
virtual void | generate (int no_samples, cvec &output)=0
| Generate no_samples values from the fading process.
virtual void | generate (int no_samples, cvec &output)=0
| Generate no_samples values from the fading process.
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 | 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))

## 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:

- [Pat02] Matthias Patzold, Mobile fading channels, Wiley, 2002.

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

Initialize the generator.

Implements itpp::Fading_Generator.

Implemented in itpp::Rice_Fading_Generator, itpp::FIR_Fading_Generator, and itpp::IFFT_Fading_Generator.

## generate() [1/3]

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

pure virtual

Generate no_samples values from the fading process.

Implements itpp::Fading_Generator.

Implemented in itpp::Rice_Fading_Generator, itpp::FIR_Fading_Generator, itpp::IFFT_Fading_Generator, itpp::Rice_Fading_Generator, itpp::Rice_Fading_Generator, itpp::FIR_Fading_Generator, itpp::FIR_Fading_Generator, itpp::IFFT_Fading_Generator, and itpp::IFFT_Fading_Generator.

## add_LOS()

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

protected

add LOS component to the sample with index idx

Definition at line 235 of file channel.cpp.

References itpp::Fading_Generator::los_diffuse, itpp::Fading_Generator::los_direct, los_dopp, itpp::m_2pi, n_dopp, and time_offset.

Referenced by itpp::Rice_Fading_Generator::generate(), itpp::FIR_Fading_Generator::generate(), and itpp::IFFT_Fading_Generator::generate().

## generate() [2/3]

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

virtual

Generate no_samples values from the fading process.

Implements itpp::Fading_Generator.

Reimplemented in itpp::Rice_Fading_Generator, itpp::FIR_Fading_Generator, itpp::IFFT_Fading_Generator, itpp::Rice_Fading_Generator, itpp::Rice_Fading_Generator, itpp::FIR_Fading_Generator, itpp::FIR_Fading_Generator, itpp::IFFT_Fading_Generator, and itpp::IFFT_Fading_Generator.

## 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 relative LOS power.

Definition at line 57 of file channel.cpp.

References it_assert, itpp::Fading_Generator::los_diffuse, itpp::Fading_Generator::los_direct, and itpp::Fading_Generator::los_power.

Referenced by itpp::Fading_Generator::Fading_Generator().

## 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

Normalized maximum Doppler frequency.

Definition at line 424 of file channel.h.

Referenced by add_LOS(), itpp::Rice_Fading_Generator::generate(), itpp::IFFT_Fading_Generator::generate_Jakes(), itpp::FIR_Fading_Generator::init(), and set_norm_doppler().

## 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

Time offset in samples (time state in the generator)

Definition at line 426 of file channel.h.

Referenced by add_LOS(), itpp::Rice_Fading_Generator::generate(), itpp::FIR_Fading_Generator::generate(), itpp::IFFT_Fading_Generator::generate(), set_time_offset(), and shift_time_offset().

## init_flag

bool itpp::Fading_Generator::init_flag

protectedinherited

signals if generator is initialized or not

Definition at line 282 of file channel.h.

Referenced by itpp::Independent_Fading_Generator::generate(), itpp::Static_Fading_Generator::generate(), itpp::Rice_Fading_Generator::generate(), itpp::FIR_Fading_Generator::generate(), itpp::IFFT_Fading_Generator::generate(), itpp::Static_Fading_Generator::init(), itpp::Rice_Fading_Generator::set_doppler_spectrum(), itpp::FIR_Fading_Generator::set_filter_length(), itpp::Rice_Fading_Generator::set_no_frequencies(), set_norm_doppler(), and itpp::Rice_Fading_Generator::set_rice_method().

## los_power

double itpp::Fading_Generator::los_power

protectedinherited

Relative power of LOS component compared to diffuse component (K factor)

Definition at line 283 of file channel.h.

Referenced by itpp::Independent_Fading_Generator::generate(), itpp::Rice_Fading_Generator::generate(), itpp::FIR_Fading_Generator::generate(), itpp::IFFT_Fading_Generator::generate(), itpp::Static_Fading_Generator::init(), and itpp::Fading_Generator::set_LOS_power().

## 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:

- itpp/comm/channel.h
- itpp/comm/channel.cpp

Generated on Mon Jun 10 2024 11:49:34 for IT++ by Doxygen 1.9.8