Implements the ApskErrorModel model, see the NED file for details.
More...
#include <ApskErrorModel.h>
|
| virtual std::ostream & | printToStream (std::ostream &stream, int level, int evFlags=0) const override |
| | Prints this object to the provided output stream. More...
|
| |
| virtual double | computePacketErrorRate (const ISnir *snir, IRadioSignal::SignalPart part) const override |
| | Returns the packet error rate based on SNIR, modulation, FEC encoding and any other physical layer characteristics. More...
|
| |
| virtual double | computeBitErrorRate (const ISnir *snir, IRadioSignal::SignalPart part) const override |
| | Returns the bit error rate based on SNIR, modulation, FEC encoding and any other physical layer characteristics. More...
|
| |
| virtual double | computeSymbolErrorRate (const ISnir *snir, IRadioSignal::SignalPart part) const override |
| | Returns the symbol error rate based on SNIR, modulation, and any other physical layer characteristics. More...
|
| |
| 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 |
| |
|
| enum | CorruptionMode {
CorruptionMode::CM_UNDEFINED = -1,
CorruptionMode::CM_PACKET,
CorruptionMode::CM_CHUNK,
CorruptionMode::CM_BYTE,
CorruptionMode::CM_BIT
} |
| |
| enum | SnirMode { SnirMode::SM_UNDEFINED = -1,
SnirMode::SM_MIN,
SnirMode::SM_MEAN
} |
| |
| 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)
} |
| |
| virtual void | initialize (int stage) override |
| |
| virtual double | getScalarSnir (const ISnir *snir) const |
| |
| virtual bool | hasProbabilisticError (b length, double ber) const |
| |
| virtual Packet * | corruptBits (const Packet *packet, double ber, bool &isCorrupted) const |
| |
| virtual Packet * | corruptBytes (const Packet *packet, double ber, bool &isCorrupted) const |
| |
| virtual Packet * | corruptChunks (const Packet *packet, double ber, bool &isCorrupted) const |
| |
| virtual Packet * | corruptPacket (const Packet *packet, bool &isCorrupted) const |
| |
| virtual Packet * | computeCorruptedPacket (const Packet *packet, double ber) const |
| |
| virtual Packet * | computeCorruptedPacket (const ISnir *snir) const override |
| |
| CorruptionMode | corruptionMode = CorruptionMode::CM_UNDEFINED |
| |
| SnirMode | snirMode = SnirMode::SM_UNDEFINED |
| |
| double | snirOffset = NaN |
| |
Implements the ApskErrorModel model, see the NED file for details.
◆ computeBitErrorRate()
Returns the bit error rate based on SNIR, modulation, FEC encoding and any other physical layer characteristics.
Implements inet::physicallayer::IErrorModel.
54 const FlatTransmissionBase *flatTransmission = check_and_cast<const FlatTransmissionBase *>(snir->getReception()->getTransmission());
55 const ApskModulationBase *modulation = check_and_cast<const ApskModulationBase *>(flatTransmission->getModulation());
56 return modulation->calculateBER(
getScalarSnir(snir), flatTransmission->getBandwidth(), flatTransmission->getBitrate());
Referenced by computePacketErrorRate().
◆ computePacketErrorRate()
Returns the packet error rate based on SNIR, modulation, FEC encoding and any other physical layer characteristics.
Implements inet::physicallayer::IErrorModel.
28 if (bitErrorRate == 0.0)
30 else if (bitErrorRate == 1.0)
33 const FlatTransmissionBase *flatTransmission = check_and_cast<const FlatTransmissionBase *>(snir->getReception()->getTransmission());
34 double headerSuccessRate = pow(1.0 - bitErrorRate,
b(flatTransmission->getHeaderLength()).get());
35 double dataSuccessRate = pow(1.0 - bitErrorRate,
b(flatTransmission->getDataLength()).get());
38 return 1.0 - headerSuccessRate * dataSuccessRate;
42 return 1.0 - headerSuccessRate;
44 return 1.0 - dataSuccessRate;
◆ computeSymbolErrorRate()
Returns the symbol error rate based on SNIR, modulation, and any other physical layer characteristics.
Implements inet::physicallayer::IErrorModel.
62 const FlatTransmissionBase *flatTransmission = check_and_cast<const FlatTransmissionBase *>(snir->getReception()->getTransmission());
63 const ApskModulationBase *modulation = check_and_cast<const ApskModulationBase *>(flatTransmission->getModulation());
64 return modulation->calculateSER(
getScalarSnir(snir), flatTransmission->getBandwidth(), flatTransmission->getBitrate());
◆ printToStream()
| std::ostream & inet::physicallayer::ApskErrorModel::printToStream |
( |
std::ostream & |
stream, |
|
|
int |
level, |
|
|
int |
evFlags = 0 |
|
) |
| const |
|
overridevirtual |
Prints this object to the provided output stream.
Reimplemented from inet::IPrintableObject.
21 return stream <<
"ApskErrorModel";
The documentation for this class was generated from the following files: