IT++ Logo Newcom Logo

itpp::IFFT_Fading_Generator Class Reference
[Communication Channel Models]

IFFT type Fading generator class. More...

#include <itpp/comm/channel.h>

Inheritance diagram for itpp::IFFT_Fading_Generator:

itpp::Fading_Generator List of all members.

Public Member Functions

 IFFT_Fading_Generator (const double norm_doppler=0.0, const DOPPLER_SPECTRUM spectrum=Jakes)
virtual ~IFFT_Fading_Generator ()
virtual void init ()
 Initialize the generator (is not needed).
virtual void generate (const int no_samples, cvec &output)
 Generate no_samples values from the fading process.
virtual void generate (const int no_samples, const int upsampling_factor, cvec &output)
 Generate no_samples values from the fading process upsampled by upsampling_factor.
void set_norm_doppler (const double norm_doppler)
 Set normalized doppler rate.
void set_doppler_spectrum (const DOPPLER_SPECTRUM spectrum)
 Set doppler spectrum.
void set_LOS (const double relative_power, const double relative_doppler)
 Set LOS component. Used e.g. for Rice doppler spectrum. Rice factor and relative doppler (related to maximum doppler).
double get_norm_doppler ()
 Return normalized doppler rate.
DOPPLER_SPECTRUM get_doppler_spectrum ()
 Return doppler spectrum.
double get_LOS_power ()
 Get relative power of LOS component (Rice factor).
double get_LOS_doppler ()
 Get relative doppler (compared to maximum doppler) for the LOS component.
cvec generate (const int no_samples)
 Generate no_samples values from the fading process.
cvec generate (const int no_samples, const int upsampling_factor)
 Generate no_samples values from the fading process upsampled by upsampling_factor.
void shift_time_offset (const int no_samples)
 Shift generator time offset by a number of samples.

Protected Member Functions

void generate_Jakes (const int no_samples, cvec &output)
 Generator for Jakes spectrum.
void generate_zero_doppler (const int no_samples, cvec &output)
void generate_zero_doppler (const int no_samples, const int upsampling_factor, cvec &output)

Protected Attributes

DOPPLER_SPECTRUM dopp_spectrum
double n_dopp
double los_dopp
double los_power
bool init_flag
double time_offset

Detailed Description

IFFT type Fading generator class.

Author:
Tony Ottosson
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 and the doppler spectrum. Possible values of doppler spectra are: The method is block-based and consecutive blocks are independent fading. The method is very efficient for large blocks. The size of the FFT, $N_\mathrm{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:

[St"uber] Gordon L. St"uber, Principles of mobile communication, 2nd. ed., Kluwer, 2001.

[Rappaport] Theodore S. Rappaport, Wireless communications: principles and practise, Prentice Hall, 1996.

Definition at line 422 of file channel.h.


Member Function Documentation

void itpp::IFFT_Fading_Generator::init (  )  [virtual]

Initialize the generator (is not needed).

Implements itpp::Fading_Generator.

Definition at line 365 of file channel.cpp.

References itpp::Fading_Generator::init_flag.

Referenced by generate().

void itpp::IFFT_Fading_Generator::generate ( const int  no_samples,
cvec &  output 
) [virtual]

Generate no_samples values from the fading process.

Implements itpp::Fading_Generator.

Definition at line 371 of file channel.cpp.

References itpp::cos(), itpp::Fading_Generator::dopp_spectrum, generate_Jakes(), itpp::Fading_Generator::generate_zero_doppler(), init(), itpp::Fading_Generator::init_flag, it_error, itpp::Fading_Generator::los_dopp, itpp::Fading_Generator::los_power, itpp::Fading_Generator::n_dopp, itpp::pi, itpp::sin(), itpp::sqrt(), and itpp::Fading_Generator::time_offset.

Referenced by generate().

void itpp::IFFT_Fading_Generator::generate ( const int  no_samples,
const int  upsampling_factor,
cvec &  output 
) [virtual]

Generate no_samples values from the fading process upsampled by upsampling_factor.

Implements itpp::Fading_Generator.

Definition at line 400 of file channel.cpp.

References generate().

void itpp::IFFT_Fading_Generator::generate_Jakes ( const int  no_samples,
cvec &  output 
) [protected]

Generator for Jakes spectrum.

Definition at line 406 of file channel.cpp.

References itpp::abs(), itpp::ceil(), itpp::concat(), itpp::elem_mult(), itpp::ifft(), it_assert, itpp::levels2bits(), itpp::linspace(), itpp::Fading_Generator::n_dopp, itpp::norm(), itpp::pi, itpp::pow(), itpp::pow2i(), itpp::randn_c(), itpp::reverse(), itpp::sqrt(), itpp::to_cvec(), itpp::zeros(), and itpp::zeros_c().

Referenced by generate().

void itpp::Fading_Generator::set_norm_doppler ( const double  norm_doppler  )  [inherited]

Set normalized doppler rate.

Definition at line 72 of file channel.cpp.

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

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

void itpp::Fading_Generator::set_doppler_spectrum ( const DOPPLER_SPECTRUM  spectrum  )  [inherited]

Set doppler spectrum.

Definition at line 79 of file channel.cpp.

References itpp::Fading_Generator::dopp_spectrum, itpp::Fading_Generator::init_flag, itpp::Fading_Generator::los_dopp, and itpp::Fading_Generator::los_power.

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

void itpp::Fading_Generator::set_LOS ( const double  relative_power,
const double  relative_doppler 
) [inherited]

Set LOS component. Used e.g. for Rice doppler spectrum. Rice factor and relative doppler (related to maximum doppler).

Definition at line 89 of file channel.cpp.

References itpp::Fading_Generator::dopp_spectrum, itpp::Fading_Generator::init_flag, it_assert, itpp::Fading_Generator::los_dopp, and itpp::Fading_Generator::los_power.

double itpp::Fading_Generator::get_norm_doppler (  )  [inline, inherited]

Return normalized doppler rate.

Definition at line 234 of file channel.h.

References itpp::Fading_Generator::n_dopp.

DOPPLER_SPECTRUM itpp::Fading_Generator::get_doppler_spectrum (  )  [inline, inherited]

Return doppler spectrum.

Definition at line 236 of file channel.h.

References itpp::Fading_Generator::dopp_spectrum.

double itpp::Fading_Generator::get_LOS_power (  )  [inline, inherited]

Get relative power of LOS component (Rice factor).

Definition at line 238 of file channel.h.

References itpp::Fading_Generator::los_power.

double itpp::Fading_Generator::get_LOS_doppler (  )  [inline, inherited]

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

Definition at line 240 of file channel.h.

References itpp::Fading_Generator::los_dopp.

cvec itpp::Fading_Generator::generate ( const int  no_samples  )  [inherited]

Generate no_samples values from the fading process.

Definition at line 99 of file channel.cpp.

References itpp::Fading_Generator::generate().

cvec itpp::Fading_Generator::generate ( const int  no_samples,
const int  upsampling_factor 
) [inherited]

Generate no_samples values from the fading process upsampled by upsampling_factor.

Definition at line 106 of file channel.cpp.

References itpp::Fading_Generator::generate().

void itpp::Fading_Generator::shift_time_offset ( const int  no_samples  )  [inherited]

Shift generator time offset by a number of samples.

Definition at line 113 of file channel.cpp.

References itpp::Fading_Generator::time_offset.


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

Generated on Thu Apr 19 14:15:03 2007 for IT++ by Doxygen 1.5.1