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

mimo::MIMOChannel Class Reference

#include <mimo-channel.h>

Inheritance diagram for mimo::MIMOChannel:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 MIMOChannel (int id, DeviceSystemIntf *s, const simth::PropertyList &pl)
virtual ~MIMOChannel ()
void setNoisePower (double n)
void setSNR (double snr)
double getNoisePower () const
virtual void getTransfer (int relative_time, MatrixFreqSignal &trans) const=0
virtual void transmit (const VectorTimeSignal &sym, VectorTimeSignal &outsym)=0
virtual void updateInputLengths ()
virtual void updateOutputLengths ()
virtual void process ()
virtual void print (std::ostream &os) const
virtual void startOfSimulation ()

Static Public Member Functions

void init (const std::string &fileName, Device **dev, DeviceSystemIntf *sysPtr, int ID, const std::string &regionQualifier="")

Protected Member Functions

double getGauss () const
 returns a Gaussian distributed variable

void addNoise (VectorTimeSignal::reference v) const
void assert_vector_lengths (const VectorTimeSignal &in, const VectorTimeSignal &out) const
void assert_transfer_lengths (const MatrixFreqSignal::storage_type &our, const MatrixFreqSignal &next) const
void assert_transfer_dim (const MatrixFreqSignal::storage_type &our, const MatrixFreqSignal &next) const

Protected Attributes

size_t nr_tx
size_t nr_rx
MatrixFreqSignal::storage_type transfer
 transfer function

const bool diagonal

Related Functions

(Note that these are not member functions.)

 propertylist_MIMOChannel (not_a_function)

Detailed Description

Base class for channel that are at least corrupted by additive white Gaussian noise (AWGN).

This could be, for example a 'pure' AWGN channel, which is only corrupted by noise, or an WSSUS channel, which is corrupted both by noise and by multipath fading.


Constructor & Destructor Documentation

mimo::MIMOChannel::MIMOChannel int  id,
DeviceSystemIntf *  s,
const simth::PropertyList pl
 

Constructor.

Parameters:
id The Device ID
s The pointer to the simulation system
pl The list of properties this device has. It needs to have the properties "nr_tx", "nr_rx" set.

virtual mimo::MIMOChannel::~MIMOChannel  )  [inline, virtual]
 

Destructor.


Member Function Documentation

double mimo::MIMOChannel::getGauss  )  const [inline, protected]
 

returns a Gaussian distributed variable

void mimo::MIMOChannel::addNoise VectorTimeSignal::reference  v  )  const [protected]
 

Add Gaussian noise (from getGauss() ) on all elements of the given vector v.

void mimo::MIMOChannel::assert_vector_lengths const VectorTimeSignal in,
const VectorTimeSignal out
const [protected]
 

void mimo::MIMOChannel::assert_transfer_lengths const MatrixFreqSignal::storage_type &  our,
const MatrixFreqSignal next
const [protected]
 

void mimo::MIMOChannel::assert_transfer_dim const MatrixFreqSignal::storage_type &  our,
const MatrixFreqSignal next
const [protected]
 

void mimo::MIMOChannel::setNoisePower double  n  ) 
 

Sets the noise power to 'noise'.

void mimo::MIMOChannel::setSNR double  snr  ) 
 

Sets the signal-to-noise ratio to 'snr', while the signal power is kept constant.

Reimplemented in mimo::FileMimoChannel.

double mimo::MIMOChannel::getNoisePower  )  const [inline]
 

Returns the noise power.

virtual void mimo::MIMOChannel::getTransfer int  relative_time,
MatrixFreqSignal trans
const [pure virtual]
 

Determines channel transfer factors. An ideal estimation of the channel transfer function is performed. This means, the exact values $H(f_i,t_0)$ are determined, where $t_0$ is ${\tt time} * {\tt delta\_t}$ and $f_i = n\cdot \mbox{\tt delta\_f}, n=0, \dots, \mbox{\tt num\_f}-1$. (time = 0 indicates the transmission time of the sample transmitted at last over the channel; time = -numSamples indicates the transmission time of the first sample of the last transmitted sequence.

Implemented in mimo::FadingMIMOChannel, mimo::MaxEntropyChannel, mimo::PerfectMIMOChannel, mimo::AWGNMIMOChannel, and mimo::WSSUSChannel.

virtual void mimo::MIMOChannel::transmit const VectorTimeSignal sym,
VectorTimeSignal outsym
[pure virtual]
 

Transmits a symbol sequence over the channel.

Implemented in mimo::FadingMIMOChannel, mimo::MaxEntropyChannel, mimo::PerfectMIMOChannel, mimo::AWGNMIMOChannel, and mimo::WSSUSChannel.

virtual void mimo::MIMOChannel::updateInputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in mimo::MaxEntropyChannel.

virtual void mimo::MIMOChannel::updateOutputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in mimo::MaxEntropyChannel.

virtual void mimo::MIMOChannel::process  )  [virtual]
 

Implements simth::Device.

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

Reimplemented from simth::Device.

Reimplemented in mimo::FadingMIMOChannel, mimo::CmplFadingMIMOChannel, mimo::MaxEntropyChannel, mimo::PerfectMIMOChannel, and mimo::AWGNMIMOChannel.

virtual void mimo::MIMOChannel::startOfSimulation  )  [virtual]
 

Reimplemented from simth::Device.

Reimplemented in mimo::FileMimoChannel.

void mimo::MIMOChannel::init const std::string &  fileName,
Device **  dev,
DeviceSystemIntf *  sysPtr,
int  ID,
const std::string &  regionQualifier = ""
[static]
 


Friends And Related Function Documentation

propertylist_MIMOChannel not_a_function   )  [related]
 

These are the properties of class MIMOChannel . 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:

Note that this class also has the Properties of its base classes. The direct base class is simth::Device ; direct link to its propertylist should be propertylist_Device(). 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.

5 properties in this class.


Member Data Documentation

size_t mimo::MIMOChannel::nr_tx [protected]
 

size_t mimo::MIMOChannel::nr_rx [protected]
 

MatrixFreqSignal::storage_type mimo::MIMOChannel::transfer [protected]
 

transfer function

const bool mimo::MIMOChannel::diagonal [protected]
 


Generated on Fri Jul 23 16:27:53 2004 for mimolib by doxygen 1.3.2