Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class 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

static 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::FileWssusChannel.

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, mimo::WSSUSChannel, and mimo::WSSUSChannel2.

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, mimo::WSSUSChannel, and mimo::WSSUSChannel2.

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, mimo::AWGNMIMOChannel, mimo::WSSUSChannel, and mimo::WSSUSChannel2.

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

Reimplemented from simth::Device.

Reimplemented in mimo::WSSUSChannel, mimo::FileWssusChannel, and mimo::WSSUSChannel2.

static 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. 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.


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 Tue Aug 9 14:43:48 2005 for mimolib by  doxygen 1.4.1