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