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

simthlib::DiffDemodulatorMetric Class Reference

#include <diffdemodulator.h>

Inheritance diagram for simthlib::DiffDemodulatorMetric:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 DiffDemodulatorMetric (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, std::auto_ptr< MappingScheme > mapp, simth::SequenceType outType)
virtual ~DiffDemodulatorMetric ()=0
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlvSeq *correspondingLlrValues, double noise=0, const simth::ModSeq *trans=NULL)
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlrSeq *correspondingLlrValues, double noise=0, const simth::ModSeq *trans=NULL)
virtual void adachiDemodulate (const simth::ModSeq &receivedSym, simth::LlvSeq *correspondingLlvValues1, simth::LlvSeq *correspondingLlvValues2, double noise=0, const simth::ModSeq *trans=NULL)

Protected Member Functions

virtual void MakeMetric (Complex sym, Complex prev_sym, simth::Llv *llv, Complex h2, Complex h1, double noise) const =0
virtual void MakeMetric (Complex sym, Complex prev_sym, simth::Llv *llv) const =0

Friends

class AdachiDemodulator

Related Functions

(Note that these are not member functions.)

 propertylist_DiffDemodulatorMetric (not_a_function)

Detailed Description

The derived class DiffDemodulatorMetric is still an abstract class. The demodulation process is based on the pure virtual functions MakeMetric(..) that have to defined in a derived class. The demodulation process defined in this class demodulate(..) can be overridden by a particular derived differential Demodulator, e.g. by an OFDM differential modulation with differential encoding in frequency direction.


Constructor & Destructor Documentation

simthlib::DiffDemodulatorMetric::DiffDemodulatorMetric int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
std::auto_ptr< MappingScheme mapp,
simth::SequenceType  outType
 

simthlib::DiffDemodulatorMetric::~DiffDemodulatorMetric  )  [inline, pure virtual]
 

This pure virtual constructor assures that it is not possible to create an instance of this class


Member Function Documentation

virtual void simthlib::DiffDemodulatorMetric::adachiDemodulate const simth::ModSeq receivedSym,
simth::LlvSeq correspondingLlvValues1,
simth::LlvSeq correspondingLlvValues2,
double  noise = 0,
const simth::ModSeq trans = NULL
[virtual]
 

See "Viterbi-Decoding Differential Detection of DPSK", Adachi, Electronic Letters 1992, Vol. 28 No. 23

Implements simthlib::DiffDemodulator.

Reimplemented in simthlib::DiffSubSeqDemodulatorMetric.

virtual void simthlib::DiffDemodulatorMetric::demodulate const simth::ModSeq receivedSym,
simth::LlrSeq correspondingLlrValues,
double  noise = 0,
const simth::ModSeq trans = NULL
[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$

Implements simthlib::DiffDemodulator.

Reimplemented in simthlib::DiffSubSeqDemodulatorMetric.

virtual void simthlib::DiffDemodulatorMetric::demodulate const simth::ModSeq receivedSym,
simth::LlvSeq correspondingLlrValues,
double  noise = 0,
const simth::ModSeq trans = NULL
[virtual]
 

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

Implements simthlib::DiffDemodulator.

Reimplemented in simthlib::DiffSubSeqDemodulatorMetric.

virtual void simthlib::DiffDemodulatorMetric::MakeMetric Complex  sym,
Complex  prev_sym,
simth::Llv llv
const [protected, pure virtual]
 

Returns the metric for the given symbol sym by the symbol itself and the reference symbol prev_sym. If a derived class needs channel information to calculate the metric, the function of the derived class should throw an error.

Implemented in simthlib::DpskDemodulatorDD, simthlib::DaskDemodulatorQC, and simthlib::DaskDemodulatorDD.

virtual void simthlib::DiffDemodulatorMetric::MakeMetric Complex  sym,
Complex  prev_sym,
simth::Llv llv,
Complex  h2,
Complex  h1,
double  noise
const [protected, pure virtual]
 

Returns the metric for the given symbol sym by the symbol itself, the reference symbol prev_sym and the channel information h2, h1, noise. However, a derived class does not need to use the channel information (e.g. standard incoherent differential demodulation).

Implemented in simthlib::DpskDemodulatorDD, simthlib::DaskDemodulatorQC, and simthlib::DaskDemodulatorDD.


Friends And Related Function Documentation

friend class AdachiDemodulator [friend]
 

Reimplemented from simthlib::DiffDemodulator.

propertylist_DiffDemodulatorMetric not_a_function   )  [related]
 

These are the properties of class DiffDemodulatorMetric . 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: The derived class DiffDemodulatorMetric is still an abstract class. The demodulation process is based on the pure virtual functions MakeMetric(..) that have to defined in a derived class. The demodulation process defined in this class demodulate(..) can be overridden by a particular derived differential Demodulator, e.g. by an OFDM differential modulation with differential encoding in frequency direction.

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


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