INET Framework for OMNeT++/OMNEST
inet::physicallayer::ApskLayeredReceiver Class Reference

#include <ApskLayeredReceiver.h>

Inheritance diagram for inet::physicallayer::ApskLayeredReceiver:
inet::physicallayer::SnirReceiverBase inet::physicallayer::ReceiverBase inet::physicallayer::IReceiver inet::IPrintableObject

Public Types

enum  LevelOfDetail { PACKET_DOMAIN, BIT_DOMAIN, SYMBOL_DOMAIN, SAMPLE_DOMAIN }
 
- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Public Member Functions

 ApskLayeredReceiver ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const override
 Prints this object to the provided output stream. More...
 
virtual const IDecodergetDecoder () const
 
virtual const IDemodulatorgetModulator () const
 
virtual const IPulseFiltergetPulseFilter () const
 
virtual const IAnalogDigitalConvertergetAnalogDigitalConverter () const
 
virtual bool computeIsReceptionPossible (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part) const override
 Returns whether the reception of the provided part is possible or not. More...
 
virtual const IListeningcreateListening (const IRadio *radio, const simtime_t startTime, const simtime_t endTime, const Coord &startPosition, const Coord &endPosition) const override
 Returns a description of how the receiver is listening on the medium. More...
 
virtual const IListeningDecisioncomputeListeningDecision (const IListening *listening, const IInterference *interference) const override
 Returns the result of the listening process specifying the reception state of the receiver. More...
 
virtual const IReceptionResultcomputeReceptionResult (const IListening *listening, const IReception *reception, const IInterference *interference, const ISnir *snir, const std::vector< const IReceptionDecision * > *decisions) const override
 Returns the complete result of the reception process for the provided reception. More...
 
- Public Member Functions inherited from inet::physicallayer::SnirReceiverBase
virtual double getSNIRThreshold () const
 
virtual bool computeIsReceptionSuccessful (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISnir *snir) const override
 Returns whether the reception of the provided part is actually successful or failed by the receiver. More...
 
- Public Member Functions inherited from inet::physicallayer::ReceiverBase
 ReceiverBase ()
 
virtual W getMinInterferencePower () const override
 Returns the minimum interference power below which receptions are to be ignored while computing the interference. More...
 
virtual W getMinReceptionPower () const override
 Returns the minimum reception power below which successful reception is definitely not possible. More...
 
virtual bool computeIsReceptionPossible (const IListening *listening, const ITransmission *transmission) const override
 Returns whether the reception of the provided transmission is possible or not independently of the reception conditions. More...
 
virtual bool computeIsReceptionAttempted (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference) const override
 Returns whether the reception of the provided part is actually attempted or ignored by the receiver. More...
 
virtual const IReceptionDecisioncomputeReceptionDecision (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISnir *snir) const override
 Returns the reception decision for the transmission part that specifies whether the reception is possible, attempted, and successful. More...
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual const IReceptionAnalogModelcreateAnalogModel (const LayeredTransmission *transmission, const ISnir *snir) const
 
virtual const IReceptionSampleModelcreateSampleModel (const LayeredTransmission *transmission, const ISnir *snir, const IReceptionAnalogModel *analogModel) const
 
virtual const IReceptionSymbolModelcreateSymbolModel (const LayeredTransmission *transmission, const ISnir *snir, const IReceptionSampleModel *sampleModel) const
 
virtual const IReceptionBitModelcreateBitModel (const LayeredTransmission *transmission, const ISnir *snir, const IReceptionSymbolModel *symbolModel) const
 
virtual const IReceptionPacketModelcreatePacketModel (const LayeredTransmission *transmission, const ISnir *snir, const IReceptionBitModel *bitModel) const
 
- Protected Member Functions inherited from inet::physicallayer::ReceiverBase
virtual int numInitStages () const override
 
virtual W computeSignalPower (const IListening *listening, const ISnir *snir, const IInterference *interference) const
 
virtual PacketcomputeReceivedPacket (const ISnir *snir, bool isReceptionSuccessful) const
 

Protected Attributes

LevelOfDetail levelOfDetail
 
const ILayeredErrorModelerrorModel
 
const IDecoderdecoder
 
const IDemodulatordemodulator
 
const IPulseFilterpulseFilter
 
const IAnalogDigitalConverteranalogDigitalConverter
 
W energyDetection
 
W sensitivity
 
Hz centerFrequency
 
Hz bandwidth
 
double snirThreshold
 
- Protected Attributes inherited from inet::physicallayer::SnirReceiverBase
double snirThreshold = NaN
 
SnirThresholdMode snirThresholdMode = SnirThresholdMode::STM_UNDEFINED
 

Additional Inherited Members

- Protected Types inherited from inet::physicallayer::SnirReceiverBase
enum  SnirThresholdMode { SnirThresholdMode::STM_UNDEFINED = -1, SnirThresholdMode::STM_MIN, SnirThresholdMode::STM_MEAN }
 

Member Enumeration Documentation

◆ LevelOfDetail

Enumerator
PACKET_DOMAIN 
BIT_DOMAIN 
SYMBOL_DOMAIN 
SAMPLE_DOMAIN 
31  {
33  BIT_DOMAIN,
36  };

Constructor & Destructor Documentation

◆ ApskLayeredReceiver()

inet::physicallayer::ApskLayeredReceiver::ApskLayeredReceiver ( )
31  :
32  levelOfDetail(static_cast<LevelOfDetail>(-1)),
33  errorModel(nullptr),
34  decoder(nullptr),
35  demodulator(nullptr),
36  pulseFilter(nullptr),
37  analogDigitalConverter(nullptr),
39  sensitivity(W(NaN)),
41  bandwidth(Hz(NaN)),
43 {
44 }

Member Function Documentation

◆ computeIsReceptionPossible()

bool inet::physicallayer::ApskLayeredReceiver::computeIsReceptionPossible ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part 
) const
overridevirtual

Returns whether the reception of the provided part is possible or not.

For example, it might check if the reception power is above sensitivity.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Reimplemented from inet::physicallayer::ReceiverBase.

191 {
192  const BandListening *bandListening = check_and_cast<const BandListening *>(listening);
193  const LayeredReception *scalarReception = check_and_cast<const LayeredReception *>(reception);
194  // TODO scalar
195  const ScalarReceptionSignalAnalogModel *analogModel = check_and_cast<const ScalarReceptionSignalAnalogModel *>(scalarReception->getAnalogModel());
196  if (bandListening->getCenterFrequency() != analogModel->getCenterFrequency() || bandListening->getBandwidth() != analogModel->getBandwidth()) {
197  EV_DEBUG << "Computing reception possible: listening and reception bands are different -> reception is impossible" << endl;
198  return false;
199  }
200  else {
201  const INarrowbandSignal *narrowbandSignalAnalogModel = check_and_cast<const INarrowbandSignal *>(scalarReception->getAnalogModel());
202  W minReceptionPower = narrowbandSignalAnalogModel->computeMinPower(reception->getStartTime(), reception->getEndTime());
203  bool isReceptionPossible = minReceptionPower >= sensitivity;
204  EV_DEBUG << "Computing reception possible" << EV_FIELD(minReceptionPower) << EV_FIELD(sensitivity) << " -> reception is " << (isReceptionPossible ? "possible" : "impossible") << endl;
205  return isReceptionPossible;
206  }
207 }

◆ computeListeningDecision()

const IListeningDecision * inet::physicallayer::ApskLayeredReceiver::computeListeningDecision ( const IListening listening,
const IInterference interference 
) const
overridevirtual

Returns the result of the listening process specifying the reception state of the receiver.

This function must be purely functional and support optimistic parallel computation.

Implements inet::physicallayer::IReceiver.

175 {
176  const IRadio *receiver = listening->getReceiver();
177  const IRadioMedium *radioMedium = receiver->getMedium();
178  const IAnalogModel *analogModel = radioMedium->getAnalogModel();
179  const INoise *noise = analogModel->computeNoise(listening, interference);
180  const NarrowbandNoiseBase *flatNoise = check_and_cast<const NarrowbandNoiseBase *>(noise);
181  W maxPower = flatNoise->computeMaxPower(listening->getStartTime(), listening->getEndTime());
182  bool isListeningPossible = maxPower >= energyDetection;
183  delete noise;
184  EV_DEBUG << "Computing listening possible: maximum power = " << maxPower << ", energy detection = " << energyDetection << " -> listening is " << (isListeningPossible ? "possible" : "impossible") << endl;
185  return new ListeningDecision(listening, isListeningPossible);
186 }

◆ computeReceptionResult()

const IReceptionResult * inet::physicallayer::ApskLayeredReceiver::computeReceptionResult ( const IListening listening,
const IReception reception,
const IInterference interference,
const ISnir snir,
const std::vector< const IReceptionDecision * > *  decisions 
) const
overridevirtual

Returns the complete result of the reception process for the provided reception.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Reimplemented from inet::physicallayer::ReceiverBase.

146 {
147  const LayeredTransmission *transmission = dynamic_cast<const LayeredTransmission *>(reception->getTransmission());
148  const IReceptionAnalogModel *analogModel = createAnalogModel(transmission, snir);
149  const IReceptionSampleModel *sampleModel = createSampleModel(transmission, snir, analogModel);
150  const IReceptionSymbolModel *symbolModel = createSymbolModel(transmission, snir, sampleModel);
151  const IReceptionBitModel *bitModel = createBitModel(transmission, snir, symbolModel);
152  const IReceptionPacketModel *packetModel = createPacketModel(transmission, snir, bitModel);
153  auto packet = const_cast<Packet *>(packetModel->getPacket());
154  auto errorRateInd = packet->addTagIfAbsent<ErrorRateInd>();
155  if (symbolModel != nullptr)
156  errorRateInd->setSymbolErrorRate(symbolModel->getSymbolErrorRate());
157  if (bitModel != nullptr)
158  errorRateInd->setBitErrorRate(bitModel->getBitErrorRate());
159  if (packetModel != nullptr)
160  errorRateInd->setPacketErrorRate(packetModel->getPacketErrorRate());
161  auto snirInd = packet->addTagIfAbsent<SnirInd>();
162  snirInd->setMinimumSnir(snir->getMin());
163  snirInd->setMaximumSnir(snir->getMax());
164  snirInd->setAverageSnir(snir->getMean());
165  return new LayeredReceptionResult(reception, decisions, packetModel, bitModel, symbolModel, sampleModel, analogModel);
166 }

◆ createAnalogModel()

const IReceptionAnalogModel * inet::physicallayer::ApskLayeredReceiver::createAnalogModel ( const LayeredTransmission transmission,
const ISnir snir 
) const
protectedvirtual
81 {
82  // TODO interference + receptionAnalogModel;
83  return nullptr;
84 }

Referenced by computeReceptionResult().

◆ createBitModel()

const IReceptionBitModel * inet::physicallayer::ApskLayeredReceiver::createBitModel ( const LayeredTransmission transmission,
const ISnir snir,
const IReceptionSymbolModel symbolModel 
) const
protectedvirtual
126 {
127  if (levelOfDetail == BIT_DOMAIN)
128  return errorModel->computeBitModel(transmission, snir);
129  else if (levelOfDetail >= SYMBOL_DOMAIN)
130  return demodulator->demodulate(symbolModel);
131  else
132  return nullptr;
133 }

Referenced by computeReceptionResult().

◆ createListening()

const IListening * inet::physicallayer::ApskLayeredReceiver::createListening ( const IRadio radio,
const simtime_t  startTime,
const simtime_t  endTime,
const Coord startPosition,
const Coord endPosition 
) const
overridevirtual

Returns a description of how the receiver is listening on the medium.

Implements inet::physicallayer::IReceiver.

169 {
170  return new BandListening(radio, startTime, endTime, startPosition, endPosition, centerFrequency, bandwidth);
171 }

◆ createPacketModel()

const IReceptionPacketModel * inet::physicallayer::ApskLayeredReceiver::createPacketModel ( const LayeredTransmission transmission,
const ISnir snir,
const IReceptionBitModel bitModel 
) const
protectedvirtual
136 {
138  return errorModel->computePacketModel(transmission, snir);
139  else if (levelOfDetail >= BIT_DOMAIN)
140  return decoder->decode(bitModel);
141  else
142  return nullptr;
143 }

Referenced by computeReceptionResult().

◆ createSampleModel()

const IReceptionSampleModel * inet::physicallayer::ApskLayeredReceiver::createSampleModel ( const LayeredTransmission transmission,
const ISnir snir,
const IReceptionAnalogModel analogModel 
) const
protectedvirtual
106 {
108  return errorModel->computeSampleModel(transmission, snir);
109  else if (analogDigitalConverter)
110  return analogDigitalConverter->convertAnalogToDigital(analogModel);
111  else
112  return nullptr;
113 }

Referenced by computeReceptionResult().

◆ createSymbolModel()

const IReceptionSymbolModel * inet::physicallayer::ApskLayeredReceiver::createSymbolModel ( const LayeredTransmission transmission,
const ISnir snir,
const IReceptionSampleModel sampleModel 
) const
protectedvirtual
116 {
118  return errorModel->computeSymbolModel(transmission, snir);
119  else if (levelOfDetail >= SAMPLE_DOMAIN)
120  return pulseFilter->filter(sampleModel);
121  else
122  return nullptr;
123 }

Referenced by computeReceptionResult().

◆ getAnalogDigitalConverter()

virtual const IAnalogDigitalConverter* inet::physicallayer::ApskLayeredReceiver::getAnalogDigitalConverter ( ) const
inlinevirtual
67 { return analogDigitalConverter; }

◆ getDecoder()

virtual const IDecoder* inet::physicallayer::ApskLayeredReceiver::getDecoder ( ) const
inlinevirtual
64 { return decoder; }

◆ getModulator()

virtual const IDemodulator* inet::physicallayer::ApskLayeredReceiver::getModulator ( ) const
inlinevirtual
65 { return demodulator; }

◆ getPulseFilter()

virtual const IPulseFilter* inet::physicallayer::ApskLayeredReceiver::getPulseFilter ( ) const
inlinevirtual
66 { return pulseFilter; }

◆ initialize()

void inet::physicallayer::ApskLayeredReceiver::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::physicallayer::SnirReceiverBase.

47 {
49  if (stage == INITSTAGE_LOCAL) {
50  errorModel = dynamic_cast<ILayeredErrorModel *>(getSubmodule("errorModel"));
51  decoder = dynamic_cast<IDecoder *>(getSubmodule("decoder"));
52  demodulator = dynamic_cast<IDemodulator *>(getSubmodule("demodulator"));
53  pulseFilter = dynamic_cast<IPulseFilter *>(getSubmodule("pulseFilter"));
54  analogDigitalConverter = dynamic_cast<IAnalogDigitalConverter *>(getSubmodule("analogDigitalConverter"));
55  energyDetection = mW(math::dBmW2mW(par("energyDetection")));
56  // TODO temporary parameters
57  sensitivity = mW(math::dBmW2mW(par("sensitivity")));
58  centerFrequency = Hz(par("centerFrequency"));
59  bandwidth = Hz(par("bandwidth"));
60  const char *levelOfDetailStr = par("levelOfDetail");
61  if (strcmp("packet", levelOfDetailStr) == 0)
63  else if (strcmp("bit", levelOfDetailStr) == 0)
65  else if (strcmp("symbol", levelOfDetailStr) == 0)
67  else if (strcmp("sample", levelOfDetailStr) == 0)
69  else
70  throw cRuntimeError("Unknown level of detail='%s'", levelOfDetailStr);
71  if (levelOfDetail >= BIT_DOMAIN && !decoder)
72  throw cRuntimeError("Decoder not configured");
74  throw cRuntimeError("Demodulator not configured");
76  throw cRuntimeError("Pulse filter not configured");
77  }
78 }

◆ printToStream()

std::ostream & inet::physicallayer::ApskLayeredReceiver::printToStream ( std::ostream &  stream,
int  level,
int  evFlags = 0 
) const
overridevirtual

Prints this object to the provided output stream.

Reimplemented from inet::physicallayer::SnirReceiverBase.

87 {
88  stream << "ApskLayeredReceiver";
89  if (level <= PRINT_LEVEL_DETAIL)
90  stream << EV_FIELD(levelOfDetail)
92  if (level <= PRINT_LEVEL_TRACE)
100  << EV_FIELD(bandwidth)
102  return stream;
103 }

Member Data Documentation

◆ analogDigitalConverter

const IAnalogDigitalConverter* inet::physicallayer::ApskLayeredReceiver::analogDigitalConverter
protected

◆ bandwidth

Hz inet::physicallayer::ApskLayeredReceiver::bandwidth
protected

◆ centerFrequency

Hz inet::physicallayer::ApskLayeredReceiver::centerFrequency
protected

◆ decoder

const IDecoder* inet::physicallayer::ApskLayeredReceiver::decoder
protected

◆ demodulator

const IDemodulator* inet::physicallayer::ApskLayeredReceiver::demodulator
protected

◆ energyDetection

W inet::physicallayer::ApskLayeredReceiver::energyDetection
protected

◆ errorModel

const ILayeredErrorModel* inet::physicallayer::ApskLayeredReceiver::errorModel
protected

◆ levelOfDetail

LevelOfDetail inet::physicallayer::ApskLayeredReceiver::levelOfDetail
protected

◆ pulseFilter

const IPulseFilter* inet::physicallayer::ApskLayeredReceiver::pulseFilter
protected

◆ sensitivity

W inet::physicallayer::ApskLayeredReceiver::sensitivity
protected

◆ snirThreshold

double inet::physicallayer::ApskLayeredReceiver::snirThreshold
protected

Referenced by printToStream().


The documentation for this class was generated from the following files:
inet::physicallayer::ApskLayeredReceiver::SYMBOL_DOMAIN
@ SYMBOL_DOMAIN
Definition: ApskLayeredReceiver.h:34
inet::physicallayer::ApskLayeredReceiver::SAMPLE_DOMAIN
@ SAMPLE_DOMAIN
Definition: ApskLayeredReceiver.h:35
inet::physicallayer::ApskLayeredReceiver::snirThreshold
double snirThreshold
Definition: ApskLayeredReceiver.h:49
inet::physicallayer::ILayeredErrorModel::computeSymbolModel
virtual const IReceptionSymbolModel * computeSymbolModel(const LayeredTransmission *transmission, const ISnir *snir) const =0
Computes the symbol domain representation at the receiver using a simplified model for the underlying...
inet::units::units::Hz
pow< s, -1 > Hz
Definition: Units.h:935
inet::IPrintableObject::PRINT_LEVEL_DETAIL
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
inet::physicallayer::ApskLayeredReceiver::demodulator
const IDemodulator * demodulator
Definition: ApskLayeredReceiver.h:42
inet::physicallayer::ApskLayeredReceiver::errorModel
const ILayeredErrorModel * errorModel
Definition: ApskLayeredReceiver.h:40
inet::physicallayer::ApskLayeredReceiver::LevelOfDetail
LevelOfDetail
Definition: ApskLayeredReceiver.h:31
inet::physicallayer::ApskLayeredReceiver::decoder
const IDecoder * decoder
Definition: ApskLayeredReceiver.h:41
inet::math::dBmW2mW
double dBmW2mW(double dBm)
Converts a dBmW value to mW.
Definition: INETMath.h:163
inet::physicallayer::ApskLayeredReceiver::BIT_DOMAIN
@ BIT_DOMAIN
Definition: ApskLayeredReceiver.h:33
inet::units::units::W
compose< J, pow< s, -1 > > W
Definition: Units.h:939
inet::physicallayer::IPulseFilter::filter
virtual const IReceptionSymbolModel * filter(const IReceptionSampleModel *sampleModel) const =0
inet::physicallayer::ApskLayeredReceiver::createPacketModel
virtual const IReceptionPacketModel * createPacketModel(const LayeredTransmission *transmission, const ISnir *snir, const IReceptionBitModel *bitModel) const
Definition: ApskLayeredReceiver.cc:135
inet::physicallayer::ApskLayeredReceiver::energyDetection
W energyDetection
Definition: ApskLayeredReceiver.h:45
inet::units::units::mW
milli< W >::type mW
Definition: Units.h:1080
inet::physicallayer::ApskLayeredReceiver::PACKET_DOMAIN
@ PACKET_DOMAIN
Definition: ApskLayeredReceiver.h:32
inet::physicallayer::ApskLayeredReceiver::levelOfDetail
LevelOfDetail levelOfDetail
Definition: ApskLayeredReceiver.h:39
inet::printFieldToString
std::string printFieldToString(const IPrintableObject *object, int level, int evFlags=0)
Definition: IPrintableObject.h:98
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::IDecoder::decode
virtual const IReceptionPacketModel * decode(const IReceptionBitModel *bitModel) const =0
inet::physicallayer::SnirReceiverBase::initialize
virtual void initialize(int stage) override
Definition: SnirReceiverBase.cc:17
inet::physicallayer::ILayeredErrorModel::computeSampleModel
virtual const IReceptionSampleModel * computeSampleModel(const LayeredTransmission *transmission, const ISnir *snir) const =0
Computes the sample domain representation at the receiver using a simplified model for the underlying...
inet::physicallayer::ApskLayeredReceiver::sensitivity
W sensitivity
Definition: ApskLayeredReceiver.h:46
inet::physicallayer::ApskLayeredReceiver::centerFrequency
Hz centerFrequency
Definition: ApskLayeredReceiver.h:47
NaN
#define NaN
Definition: INETMath.h:91
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::physicallayer::IAnalogDigitalConverter::convertAnalogToDigital
virtual const IReceptionSampleModel * convertAnalogToDigital(const IReceptionAnalogModel *analogModel) const =0
inet::physicallayer::ILayeredErrorModel::computePacketModel
virtual const IReceptionPacketModel * computePacketModel(const LayeredTransmission *transmission, const ISnir *snir) const =0
Computes the packet domain representation at the receiver using a simplified model for the underlying...
inet::physicallayer::ApskLayeredReceiver::pulseFilter
const IPulseFilter * pulseFilter
Definition: ApskLayeredReceiver.h:43
inet::IPrintableObject::PRINT_LEVEL_TRACE
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
inet::physicallayer::ILayeredErrorModel::computeBitModel
virtual const IReceptionBitModel * computeBitModel(const LayeredTransmission *transmission, const ISnir *snir) const =0
Computes the bit domain representation at the receiver using a simplified model for the underlying do...
inet::evFlags
int evFlags
Definition: INETDefs.cc:12
inet::physicallayer::ApskLayeredReceiver::bandwidth
Hz bandwidth
Definition: ApskLayeredReceiver.h:48
inet::physicallayer::ApskLayeredReceiver::createBitModel
virtual const IReceptionBitModel * createBitModel(const LayeredTransmission *transmission, const ISnir *snir, const IReceptionSymbolModel *symbolModel) const
Definition: ApskLayeredReceiver.cc:125
inet::physicallayer::ApskLayeredReceiver::createSampleModel
virtual const IReceptionSampleModel * createSampleModel(const LayeredTransmission *transmission, const ISnir *snir, const IReceptionAnalogModel *analogModel) const
Definition: ApskLayeredReceiver.cc:105
inet::physicallayer::ApskLayeredReceiver::createAnalogModel
virtual const IReceptionAnalogModel * createAnalogModel(const LayeredTransmission *transmission, const ISnir *snir) const
Definition: ApskLayeredReceiver.cc:80
inet::physicallayer::IDemodulator::demodulate
virtual const IReceptionBitModel * demodulate(const IReceptionSymbolModel *symbolModel) const =0
inet::physicallayer::ApskLayeredReceiver::createSymbolModel
virtual const IReceptionSymbolModel * createSymbolModel(const LayeredTransmission *transmission, const ISnir *snir, const IReceptionSampleModel *sampleModel) const
Definition: ApskLayeredReceiver.cc:115
inet::physicallayer::ApskLayeredReceiver::analogDigitalConverter
const IAnalogDigitalConverter * analogDigitalConverter
Definition: ApskLayeredReceiver.h:44