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

simthlib::AbsDemodulatorMetric Class Reference

#include <absdemodulator.h>

Inheritance diagram for simthlib::AbsDemodulatorMetric:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 AbsDemodulatorMetric (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, std::auto_ptr< MappingScheme > mapp, simth::SequenceType outTyp)
virtual ~AbsDemodulatorMetric ()=0
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlrSeq *correspondingLlrValues, double noise=0, const simth::ModSeq *trans=NULL)
virtual void demodulate (const simth::ModSeq &receivedSym, simth::LlvSeq *correspondingLlvValues, double noise=0, const simth::ModSeq *trans=NULL)
bool onlyPhaseEqualisation () const
void setOnlyPhaseEqualisationOn ()

Protected Member Functions

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

Protected Attributes

bool csi_only_for_reliabilities
bool onlyPhaseEqualisation_

Related Functions

(Note that these are not member functions.)

 propertylist_AbsDemodulatorMetric (not_a_function)

Detailed Description

The derived class AbsDemodulatorMetric is still an abstract class. The class provides a standard implementation of absolute decoding but still doesn't provide any kind of modulation (constellation diagramm) nor of mapping. A derived class which shall provide a certain modulation (including mapping) has just to assign the pointer usedConstellationDiagram to an appropriate ConstellationDiagram.

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::AbsDemodulatorMetric::AbsDemodulatorMetric int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
std::auto_ptr< MappingScheme mapp,
simth::SequenceType  outTyp
 

Class constructor.

virtual simthlib::AbsDemodulatorMetric::~AbsDemodulatorMetric  )  [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::AbsDemodulatorMetric::demodulate const simth::ModSeq receivedSym,
simth::LlvSeq correspondingLlvValues,
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::Demodulator.

Reimplemented in simthlib::RotPskDemodulator, and simthlib::PwRotPskDemodulator.

virtual void simthlib::AbsDemodulatorMetric::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::Demodulator.

Reimplemented in simthlib::RotPskDemodulator, and simthlib::PwRotPskDemodulator.

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

Returns the metric for the given symbol sym by the symbol itself and without any channel information h.

Normally this would cause an error, because the channel information is needed for the equalization before absolute demodulation. However, this function will silently assume that the equalization has been done beforehand. Or probably its possible to implement a derived class which is able to demodulate without channel information.

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

virtual void simthlib::AbsDemodulatorMetric::MakeMetric Complex  sym,
simth::Llv *const   llv,
Complex  h,
double  noise
const [protected, pure virtual]
 

Returns the metric for the given symbol by the symbol itself, and the channel information h. This function also performs ZF equalization by dividing the received symbol through the channel information h.

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

bool simthlib::AbsDemodulatorMetric::onlyPhaseEqualisation  )  const [inline]
 

If true, the metric considers only the phase and not the amplitude of the received complex value. In other words, each received value is assumed to have the same amplitude as the points in the constellation diagram have.

void simthlib::AbsDemodulatorMetric::setOnlyPhaseEqualisationOn  )  [inline]
 

If set to true, the metric considers only the phase and not the amplitude of the received complex value. In other words, each received value is assumed to have the same amplitude as the points in the constellation diagram have.


Friends And Related Function Documentation

propertylist_AbsDemodulatorMetric not_a_function   )  [related]
 

These are the properties of class AbsDemodulatorMetric . 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: This class is still an abstract class. The class provides a standard implementation of absolute decoding but still doesn't provide any kind of modulation (constellation diagramm) nor of mapping. A derived class which shall provide a certain modulation (including mapping) has just to assign the pointer usedConstellationDiagram to an appropriate ConstellationDiagram.

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

The above properties have been inherited from the base class simthlib::AbsDemodulatorMapping .

only_phase_equalisation
<bool>, default "false" -- If true, then the demodulation only performs a phase equalization. If false, then the demodulation performs a full ZF equalization. On the other hand, if the second input interface is unconnected, then the demodulation does not perform any equalization at all.

1 properties in this class.


Member Data Documentation

bool simthlib::AbsDemodulatorMetric::csi_only_for_reliabilities [protected]
 

True, if the channel state information (csi) is used only for calculating the LLR/reliability of the demodulated bits.

bool simthlib::AbsDemodulatorMetric::onlyPhaseEqualisation_ [protected]
 

True, if the equalization should be done only in the phase component. Note: Nevertheless the amplitude of the channel estimation will be used to calculate the LLR/reliability of the demodulated bits.


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