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

simthlib::Demodulator Class Reference

Abstract base class of a Demodulator. More...

#include <demodulator.h>

Inheritance diagram for simthlib::Demodulator:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Demodulator (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, simth::SequenceType outType)
virtual void updateInputLengths ()
virtual void updateOutputLengths ()
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlrSeq *correspondingLlrValues, double noise=0, const simth::ModSeq *trans=NULL)=0
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlvSeq *correspondingLlvValues, double noise=0, const simth::ModSeq *trans=NULL)=0
virtual int getBitsPerSymbol () const =0
virtual int getNumStates () const =0
virtual void process ()
virtual void print (std::ostream &os) const
virtual void startOfSimulation ()

Static Public Member Functions

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

Protected Member Functions

simth::SequenceType outputType () const
virtual Complex getComplSymbol (int symbolIndex) const =0
virtual double SNR () const
virtual void setSNR (double newSNR)

Related Functions

(Note that these are not member functions.)

 propertylist_Demodulator (not_a_function)

Detailed Description

Abstract base class of a Demodulator.

Analogously to the modulator a Demodulator is an abstract base class wich provides an interface for a particular Demodulator (e.g. DPSK Demodulator). Therefore, only the differences between both are described here.

Note: These classes also have a zero-forcing equalization built-in. If you intend to perform the equalization otherwise, you *must* either leave the channel information interface unconnected, or you need to look into the "phase_only_equalization" property because that one will skip the equalization but still calculate the correct LLRs.


Constructor & Destructor Documentation

simthlib::Demodulator::Demodulator int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
simth::SequenceType  outType
 

Class constructor.


Member Function Documentation

virtual void simthlib::Demodulator::demodulate const simth::ModSeq receivedSym,
simth::LlvSeq correspondingLlvValues,
double  noise = 0,
const simth::ModSeq trans = NULL
[pure virtual]
 

Demodulates a sequence of received data words to a sequence of log-likelihood-values (llv).

Implemented in simthlib::AbsDemodulatorMetric, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DiffDemodulator, simthlib::DiffDemodulatorMetric, simthlib::DiffSubSeqDemodulatorMetric, and simthlib::Da_PskDemodulator.

virtual void simthlib::Demodulator::demodulate const simth::ModSeq receivedSym,
simth::LlrSeq correspondingLlrValues,
double  noise = 0,
const simth::ModSeq trans = NULL
[pure virtual]
 

Demodulates a sequence of received data words to a sequence of log-likelihood-ratio (llr) values; each simth::LLR_-value represents the hard decisions of one bit and the probability of this decision. The hard decision (the bit itselfs) is determined by the sign of the simth::LLR_-Value, whereas the probability is described by the absolute value of the log-likelihood ratio:

  • /f$llr = ln(p(1)/p(0))/f$

Implemented in simthlib::AbsDemodulatorMetric, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DiffDemodulator, simthlib::DiffDemodulatorMetric, simthlib::DiffSubSeqDemodulatorMetric, and simthlib::Da_PskDemodulator.

virtual int simthlib::Demodulator::getBitsPerSymbol  )  const [pure virtual]
 

Implemented in simthlib::QamDemodulator, simthlib::PskDemodulator, simthlib::ApskDemodulator, simthlib::DummyDemodulator, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DpskDemodulator, simthlib::DaskDemodulator, and simthlib::Da_PskDemodulator.

virtual Complex simthlib::Demodulator::getComplSymbol int  symbolIndex  )  const [protected, pure virtual]
 

Implemented in simthlib::QamDemodulator, simthlib::PskDemodulator, simthlib::ApskDemodulator, simthlib::DummyDemodulator, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DpskDemodulator, and simthlib::DaskDemodulator.

virtual int simthlib::Demodulator::getNumStates  )  const [pure virtual]
 

Implemented in simthlib::QamDemodulator, simthlib::PskDemodulator, simthlib::ApskDemodulator, simthlib::DummyDemodulator, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DpskDemodulator, simthlib::DaskDemodulator, and simthlib::Da_PskDemodulator.

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

DEPRECATED. Only for parameter files that don't use the factory functions already.

simth::SequenceType simthlib::Demodulator::outputType  )  const [inline, protected]
 

virtual void simthlib::Demodulator::print std::ostream &  os  )  const [virtual]
 

Reimplemented from simth::Device.

Reimplemented in simthlib::AbsDemodulatorMapping, simthlib::QamDemodulator, simthlib::PskDemodulator, simthlib::ApskDemodulator, simthlib::DummyDemodulator, simthlib::RotPskDemodulator, simthlib::PwRotPskDemodulator, simthlib::DiffDemodulatorMapping, simthlib::DiffSubSeqDemodulatorMetric, simthlib::DpskDemodulator, simthlib::DpskDemodulatorQC, simthlib::DpskDemodulatorDD, simthlib::DpskDemDD_STD, simthlib::DpskDemDD_AWGN, simthlib::DpskDemDD_MIN, simthlib::DpskDemDD_KARSTEN, simthlib::DaskDemodulator, simthlib::DaskDemodulatorQC, simthlib::DaskDemodulatorDD, simthlib::DaskDemDD_STD, and simthlib::Da_PskDemodulator.

virtual void simthlib::Demodulator::process  )  [virtual]
 

Implements simth::Device.

virtual void simthlib::Demodulator::setSNR double  newSNR  )  [inline, protected, virtual]
 

virtual double simthlib::Demodulator::SNR  )  const [inline, protected, virtual]
 

virtual void simthlib::Demodulator::startOfSimulation  )  [virtual]
 

Reimplemented from simth::Device.

virtual void simthlib::Demodulator::updateInputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::Da_PskDemodulator.

virtual void simthlib::Demodulator::updateOutputLengths  )  [virtual]
 

Implements simth::Device.


Friends And Related Function Documentation

propertylist_Demodulator not_a_function   )  [related]
 

These are the properties of class Demodulator . 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: Analogously to the modulator a Demodulator is an abstract base class wich provides an interface for a particular Demodulator (e.g. DPSK Demodulator). Therefore, only the differences between both are described here.

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.

bits_per_symbol
<unsigned>, default "" -- Number of bits per complex modulation symbol.

mapping
<enum>, default "gray" -- bit mapping scheme

modulation_type
<string>, default "none" -- DEPRECATED. For the non-factory-function classes this chooses the actual implementation class, but when you specify the full classname then this is no longer needed.

output_length
<sequencelength>, default "" -- Output length. If you set output_length_llr instead, then this setting will be ignored.

output_length_llr
<sequencelength>, default "0" -- Will only be used if you set it. Otherwise output_length is used.

output_type
<enum>, default "LLR" -- The type of the output interface

snr
<string>, default "" -- The name of the SNR loop variable

7 properties in this class.


Generated on Tue Aug 9 14:37:37 2005 for simtheticlib by  doxygen 1.4.1