Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

mimo::CmplFadingMIMOChannel Class Reference

MIMOChannel with complex i.i.d. Gaussian fading. More...

#include <fadingmimochannel.h>

Inheritance diagram for mimo::CmplFadingMIMOChannel:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 CmplFadingMIMOChannel (int deviceID, DeviceSystemIntf *system, const simth::PropertyList &pl)
 constructor
virtual ~CmplFadingMIMOChannel ()
 destructor
void refresh ()
 determines new random transfer factors
virtual void print (std::ostream &os) const

Related Functions

(Note that these are not member functions.)

 propertylist_CmplFadingMIMOChannel (not_a_function)

Detailed Description

MIMOChannel with complex i.i.d. Gaussian fading.

The entries of the channel matrix H are i.i.d. complex Gaussian random variables. In other words, the amplitude is Rayleigh distributed and the phase is uniformly distributed.

This channel and its derived classes can either be used as a flat-fading/narrowband channel, or as a broadband Rayleigh fading channel.

For a flat-fading/narrowband channel, at each refresh() one new transfer factor $H_0$ is diced. The channel transfer function then is constant over all frequency, $H(f)=H_0$, and the channel impulse response is simply a multiplication with this one transfer factor. This mode of operation is chosen by specifying the Property num_carrier to be one (default).

Alternatively, this channel and its derived classes can be used as a broadband Rayleigh fading channel, so that for a specific OFDM system each subcarrier will undergo an i.i.d. fading. However, this requires this block to know the parameters of the surrounding OFDM system exactly. Hence, the Properties num_carrier, oversampling, carrier_dist, and guard_time have to be specified identically to the OFDM transmitter/receiver blocks. In this mode of operation, at each refresh() a new channel transfer function is diced with $K$=num_carrier different i.i.d. random variables $H_k$ at each subcarrier k, resulting in $H(f_k)=H_k, k=0,\ldots,K-1$ where each $f_k$ is the frequency of subcarrier k.


Constructor & Destructor Documentation

mimo::CmplFadingMIMOChannel::CmplFadingMIMOChannel int  deviceID,
DeviceSystemIntf system,
const simth::PropertyList pl
 

constructor

virtual mimo::CmplFadingMIMOChannel::~CmplFadingMIMOChannel  )  [virtual]
 

destructor


Member Function Documentation

void mimo::CmplFadingMIMOChannel::refresh  )  [virtual]
 

determines new random transfer factors

Reimplemented from mimo::FadingMIMOChannel.

virtual void mimo::CmplFadingMIMOChannel::print std::ostream &  os  )  const [virtual]
 

Reimplemented from mimo::FadingMIMOChannel.


Friends And Related Function Documentation

propertylist_CmplFadingMIMOChannel not_a_function   )  [related]
 

These are the properties of class CmplFadingMIMOChannel . This list is auto-generated from the XML-Devicelist of this device by means of an XSLT transformation script.

Description of this device in the XML file: MIMO-Channel with complex i.i.d. Gaussian fading. The entries of the channel matrix H are i.i.d. complex Gaussian random variables. In other words, the amplitude is Rayleigh distributed and the phase is uniformly distributed. This device can be used either as a flat-fading/narrowband channel, or as a broadband Rayleigh fading channel.

Note that this class also has the Properties of its base classes. The direct base class is mimo::MIMOChannel ; direct link to its propertylist should be propertylist_MIMOChannel(). The list below usually includes the properties that have been inherited from the base classes; the properties which belong only to this class can be found at the end of this list.

snr
<string>, default "" -- The name of the snr loop variable in this simulation.

channel_refresh
<string>, default "" -- The name of the refresh loop variable in this simulation.

nr_tx
<unsigned>, default "" -- The number of transmit antennas

nr_rx
<unsigned>, default "" -- The number of receive antennas

diagonal
<bool>, default "false" -- If true, then this channel has a diagonal channel matrix i.e. it is not a MIMO channel. However, it is unclear whether the SNR is correct or whether the SNR might be offset by the matrix size. This property is probably only useful for initial testing of mimo algorithms.

5 properties in this class. The above properties have been inherited from the base class mimo::MIMOChannel .

num_carrier
<unsigned>, default "1" -- If this is one, then this is a flat-fading channel, where all OFDM subcarriers have the same transfer factor H_0. If this is greater than one, then this is a frequency-selective channel where each of the subcarriers has an i.i.d. Gaussian random variable as transfer factor.

carrier_dist
<double>, default "0.0" -- The subcarrier distance on which i.i.d. Gaussians are generated. Only necessary if num_carrier is greater than one.

guard_time
<double>, default "0.0" -- The time duration of your guard interval in seconds. Only necessary if num_carrier is greater than one.

oversampling
<unsigned>, default "1" -- The oversampling rate used by the IDFT (IFFT). Only necessary if num_carrier is greater than one.

sigma
<double>, default "1.0" -- The scaling factor for the variation of the Rayleigh distribution of the transfer factors. This corresponds to the standard deviation (square root of variance) of the real and of the imaginary part, respectively. However, usually only the noise power is varied instead of this scaling variable.

5 properties in this class.


Generated on Tue Aug 9 14:43:35 2005 for mimolib by  doxygen 1.4.1