Generating a correlated Rayleigh fading process

In this example we will generate a correlated Rayleigh fading process with a normaized Doppler frequency equal to 0.1. The normalized Doppler is defined as the multiplication of the maximum Doppler frequency by the sampling time (i.e. ).

#include <itpp/itcomm.h>
using namespace itpp;
int main()
{
// Declare my_channel variable as an instance of the Rayleigh_Channel
// class
TDL_Channel my_channel;
// The normalized Doppler frequency is set to 0.1
double norm_dopp = 0.1;
my_channel.set_norm_doppler(norm_dopp);
// Generate nrof_samples of the fading process and store them in ch_coeffs
// matrix
int nrof_samples = 10000;
cmat ch_coeffs;
my_channel.generate(nrof_samples, ch_coeffs);
// Open an output file "rayleigh_test.it"
it_file ff("rayleigh_test.it");
// Save channel coefficients to the output file
ff << Name("ch_coeffs") << ch_coeffs;
// Close the output file
ff.close();
// Exit program
return 0;
}

You can use Matlab or Octave to examine the channel fading process that is stored int the output file `rayleigh_test.it`. Try the followigh code to view a part of the fading process:

itload("rayleigh_test.it")
figure(1); clf;
semilogy(abs(ch_coeffs(1:200)))

Note: Make sure that the folder `$PREFIX/share/itpp` is included your Matlab/Octave path variable (`$PREFIX` is the IT++ installation prefix: `/usr/local` by default).

Generated on Thu Mar 20 2014 12:26:44 for IT++ by Doxygen 1.8.6