|
WSF
|
#include <WsfEM_Rcvr.hpp>


Definitions to support the component list on the receiver. | |
| enum | RcvrFunction { cRF_UNDEFINED , cRF_COMM , cRF_SENSOR , cRF_PASSIVE_SENSOR , cRF_INTERFERER } |
| RcvrFunction defines the intended purpose of the receiver. More... | |
| using | Component = WsfEM_RcvrComponent |
| Even though this isn't a component, it must have a role in order to use component factories. | |
| using | ComponentList = WsfComponentListT<WsfEM_RcvrComponent> |
| WsfEM_Rcvr (RcvrFunction aFunction, WsfEM_Antenna *aAntennaPtr=nullptr) | |
| WsfEM_Rcvr (const WsfEM_Rcvr &aSrc, WsfEM_Antenna *aAntennaPtr=nullptr) | |
| ~WsfEM_Rcvr () override | |
| std::string | GetName () const |
| Required to display error messages in WsfComponentFactoryList. | |
Internal utility functions. | |
| using | InteractorList = std::vector<WsfEM_Xmtr*> |
| void | UpdateNoisePower (double aPulseWidth=0.0) |
| bool | CheckXmtrMasking () |
| static double | ComputeSystemNoiseTemperature (double aElevation, double aAntennaOhmicLoss, double aReceiveLineLoss, double aNoiseFigure, double aFrequency) |
| void | UpdateIndices () |
Lists of transmitters that can potentially interact with this receiver. | |
This is used by interferers and passive sensors to speed up processing. | |
| InteractorList | mCommInteractors |
| InteractorList | mSensorInteractors |
| InteractorList | mInterferenceInteractors |
Component list methods. | |
| ComponentList & | GetComponents () |
| const ComponentList & | GetComponents () const |
| const char * | GetScriptClassName () const override |
| void | Activate () |
| virtual void | Deactivate () |
| virtual double | ComputeReceivedPower (double aSourceAz, double aSourceEl, double aEBS_Az, double aEBS_El, double aReceivedPowerDensity, WsfEM_Types::Polarization aPolarization, double aFrequency, double &aAntennaGain) |
| virtual double | ComputeSignalToNoise (double aReceivedSignalPower, double aClutterPower, double aReceivedInterferencePower) |
| bool | Initialize (WsfSimulation &aSimulation) override |
| bool | ProcessInput (UtInput &aInput) override |
| virtual bool | ProcessInputBlock (UtInput &aInput) |
| A convenience method to check for and process a 'receiver/end_receiver' block. | |
| double | GetBandwidthEffect (double aSignalFreq, double aSignalBW) const |
| double | GetDetectionThreshold () const |
| RcvrFunction | GetFunction () const |
| double | GetInstantaneousBandwidth () const |
| double | GetNoisePower () const |
| bool | IsNoisePowerExplicit () const |
| double | GetNoiseFigure () const |
| double | GetNoiseMultiplier () const |
| void | SetNoiseMultiplier (double aNoiseMultiplier) |
| double | GetPolarizationEffect (WsfEM_Types::Polarization aPolarization) const |
| void | SetAntennaOhmicLoss (double aAntennaOhmicLoss) |
| double | GetAntennaOhmicLoss () |
| void | SetDetectionThreshold (double aDetectionThreshold) |
| void | SetBandwidth (double aBandwidth) override |
| void | SetFrequency (double aFrequency) override |
| void | SetInstantaneousBandwidth (double aInstantaneousBandwidth) |
| void | SetNoiseFigure (double aNoiseFigure) |
| void | SetNoisePower (double aNoisePower) |
| void | SetPolarization (WsfEM_Types::Polarization aPolarization) override |
| void | SetPolarizationEffect (WsfEM_Types::Polarization aPolarization, double aFraction) |
| void | SetReceiveLineLoss (double aReceiveLineLoss) |
| double | GetReceiveLineLoss () const |
Interaction methods. | |
| virtual bool | CanInteractWith (WsfEM_Xmtr *aXmtrPtr) |
| virtual void | UpdateInteractions (WsfEM_Xmtr *aXmtrPtr) |
| virtual bool | AddInteractor (WsfEM_Xmtr *aXmtrPtr) |
| virtual bool | RemoveInteractor (WsfEM_Xmtr *aXmtrPtr) |
| size_t | GetCommInteractorCount () const |
| Get the number of potentially interacting communications transmitters. | |
| WsfEM_Xmtr * | GetCommInteractorEntry (unsigned int aIndex) const |
| size_t | GetInterferenceInteractorCount () const |
| Get the number of potentially interacting interference transmitters. | |
| WsfEM_Xmtr * | GetInterferenceInteractorEntry (size_t aIndex) const |
| size_t | GetSensorInteractorCount () const |
| Get the number of potentially interacting sensor transmitters. | |
| WsfEM_Xmtr * | GetSensorInteractorEntry (size_t aIndex) const |
| unsigned int | GetInteractorCount () const |
| WsfEM_Xmtr * | GetInteractorEntry (unsigned int aIndex) const |
| virtual void | EmitterActiveCallback (double aSimTime, WsfEM_Interaction &aResult) |
| virtual void | SignalChangeCallback (double aSimTime, size_t aTargetIndex) |
Additional Inherited Members | |
| Public Types inherited from WsfEM_XmtrRcvr | |
| using | AntennaPatternList = std::vector<std::pair<WsfAntennaPattern*, double>> |
| Vector of pairs of antenna pattern pointer and associated lower frequency bounds. | |
| Public Member Functions inherited from WsfEM_XmtrRcvr | |
| WsfEM_XmtrRcvr (WsfEM_Antenna *aAntennaPtr=nullptr) | |
| WsfEM_XmtrRcvr (const WsfEM_XmtrRcvr &aSrc, WsfEM_Antenna *aAntennaPtr) | |
| virtual | ~WsfEM_XmtrRcvr () |
| WsfPlatform * | GetPlatform () const |
| WsfArticulatedPart * | GetArticulatedPart () const |
| virtual void | UpdatePosition (double aSimTime) |
| const char * | GetScriptClassName () const override |
| WsfEM_Attenuation * | GetAttenuationModel () const |
| void | SetAttenuationModel (WsfEM_Attenuation *aAttenuationPtr) |
| WsfStringId | GetAttenuationModelType () const |
| Return the type of the attenuation model (if one is defined). | |
| void | SetAttenuationModelType (WsfStringId aAttenuationType) |
| WsfEM_Propagation * | GetPropagationModel () const |
| void | SetPropagationModel (WsfEM_Propagation *aPropagationPtr) |
| WsfStringId | GetPropagationModelType () const |
| Return the type of the propagation model (if one is defined). | |
| void | SetPropagationModelType (WsfStringId aPropagationType) |
| void | SetAttenuationInputEnabled (bool aEnabled) |
| Enable or disable 'attenuation_model' input. | |
| void | SetPropagationInputEnabled (bool aEnabled) |
| Enable or disable 'propagation_model' input. | |
| WsfEM_Antenna * | GetAntenna () const |
| Get the pointer associated geometry object. | |
| void | SetAntenna (WsfEM_Antenna *aAntennaPtr) |
| WsfAntennaPattern * | GetAntennaPattern (WsfEM_Types::Polarization aPolarization, double aFrequency) const |
| bool | SetAntennaPattern (WsfAntennaPattern *aAntennaPatternPtr, WsfEM_Types::Polarization aPolarization, double aFrequency) |
| bool | AddAntennaPattern (WsfAntennaPattern *aAntennaPatternPtr, WsfEM_Types::Polarization aPolarization, double aFrequency) |
| const AntennaPatternList * | GetAntennaPatternList (WsfEM_Types::Polarization aPolarization) const |
| double | GetBeamTilt () const |
| void | SetBeamTilt (double aBeamTilt) |
| Set the angle of the boresight of the antenna gain pattern above/below (+/-) the antenna boresight. | |
| virtual double | GetAntennaGain (WsfEM_Types::Polarization aPolarization, double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El) |
| virtual WSF_DEPRECATED double | GetAzimuthBeamwidth () const final |
| virtual double | GetAzimuthBeamwidth (double aEBS_Azimuth, double aEBS_Elevation) const |
| virtual WSF_DEPRECATED double | GetElevationBeamwidth () const final |
| virtual double | GetElevationBeamwidth (double aEBS_Azimuth, double aEBS_Elevation) const |
| virtual double | GetPeakAntennaGain () const |
| virtual double | GetMinimumAntennaGain () const |
| virtual void | SetAntennaBeamCount (unsigned int aBeamCount) |
| bool | DebugEnabled () const |
| Determine if debugging is enabled. | |
| void | SetDebugEnabled (bool aDebugEnabled) |
| bool | IsHorizonMaskingEnabled () const |
| determine if horizon masking is to be checked | |
| bool | IsTerrainMaskingEnabled () const |
| determine if terrain masking is to be checked | |
| std::string | MaskingMode () const |
| Gets the masking mode. | |
| void | SetMaskingMode (const std::string &aTerrainMaskingMode) |
| Set the type of masking to perform. | |
| bool | CheckMasking () const |
| determine if horizon and terrain masking is to be checked | |
| void | SetCheckMasking (bool aCheckMasking) |
| enable/disable checking of horizon and terrain masking | |
| void | DisableMaskingCheck () |
| disables the checking of horizon and terrain masking (retained for compatibility) | |
| WsfMode * | GetMode () const |
| void | SetMode (WsfMode *aModePtr) |
| size_t | GetIndex () const |
| Get the index of the xmtr/rcvr in the complex assembly. | |
| void | SetIndex (size_t aIndex) |
| Set the index of the xmtr/rcvr in the complex assembly. | |
| WsfSimulation * | GetSimulation () const |
| WsfEM_Manager * | GetEM_Manager () const |
| double | GetEarthRadiusMultiplier () const |
| double | GetFrequency () const |
| double | GetWavelength () const |
| double | GetBandwidth () const |
| bool | IsBandwidthExplicit () const |
| double | GetInternalLoss () const |
| WsfEM_Types::Polarization | GetPolarization () const |
| Get the polarization of the EM system. | |
| void | SetEarthRadiusMultiplier (double aMultiplier) |
| void | SetInternalLoss (double aInternalLoss) |
| Public Member Functions inherited from WsfUniqueId | |
| WsfUniqueId () | |
| Construtor initializes the unique identifier to 0. | |
| WsfUniqueId (const WsfUniqueId &) | |
| Copy constructor initializes the unique identifier to 0. | |
| WsfUniqueId & | operator= (const WsfUniqueId &) |
| unsigned int | GetUniqueId () const |
| Get the unique identifier assigned to this object. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| Public Member Functions inherited from WsfAuxDataEnabled | |
| WsfAuxDataEnabled ()=default | |
| WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (WsfAuxDataEnabled &&)=default |
| virtual | ~WsfAuxDataEnabled () noexcept |
| void | SetAuxData (const WsfAttributeContainer &aAuxData) |
| void | DeleteAuxData () |
| Delete the aux data container from the object. | |
| void | MergeAuxData (const WsfAuxDataEnabled &aSrc) |
| Merge the object's aux data with aux data from an existing object. | |
| void | UpdateAuxData (const WsfAuxDataEnabled &aSrc) |
| Update the object's aux data with aux data from an existing object. | |
| bool | HasAuxData () const |
| Returns true if this object has aux data. | |
| bool | ProcessInput (UtInput &aInput) |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| (De)serialization for XIO | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
| static void | AssociateSystems (WsfEM_XmtrRcvr *aSystem1Ptr, WsfEM_XmtrRcvr *aSystem2Ptr) |
| Static Public Attributes inherited from WsfAuxDataEnabled | |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataAccessed |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataDestroyed |
| Protected Member Functions inherited from WsfUniqueId | |
| void | AssignUniqueId (WsfSimulation *aSimulationPtr) |
| WsfStringId | mAttenuationType |
| The type of the atmospheric attenuation model to be used. | |
| WsfStringId | mPropagationType |
| The type of the propagation model to be used. | |
| WsfEM_Attenuation * | mAttenuationPtr |
| Pointer to the atmospheric attenuation model. | |
| WsfEM_Propagation * | mPropagationPtr |
| Pointer to the propagation object. | |
| WsfMode * | mModePtr |
| WsfEM_Antenna * | mAntennaPtr |
| Pointer to the 'geometry' object for this transmitter/receiver. | |
| std::array< AntennaPatternList, WsfEM_Types::cPOL_COUNT > | mPatternTables {} |
| WsfEM_XmtrRcvr * | mAssociatePtr |
| double | mBeamTilt |
| double | mEarthRadiusMultiplier |
| double | mFrequency |
| double | mBandwidth |
| double | mInternalLoss |
| WsfEM_Types::Polarization | mPolarization |
| size_t | mIndex |
| std::array< bool, WsfEM_Types::cPOL_COUNT > | mUsedExplicitPolarization {{false}} |
| bool | mDebugEnabled |
| unsigned int | mTerrainMaskingMode |
| Settings used for masking checks. | |
| bool | mCheckMasking |
| true if horizon and terrain masking enabled. | |
| bool | mExplicitBandwidth |
| true if explicit 'bandwidth' specified | |
A receiver of electromagnetic radiation.
This can be used to implement the receiver radar receivers, passive sensors or RF communications receivers.
To use one of these within a system, the following protocol must be observed
Even though this isn't a component, it must have a role in order to use component factories.
|
protected |
RcvrFunction defines the intended purpose of the receiver.
| WsfEM_Rcvr::WsfEM_Rcvr | ( | RcvrFunction | aFunction, |
| WsfEM_Antenna * | aAntennaPtr = nullptr ) |
Construct a receiver.
| aFunction | The primary function of the transmitter. |
| aAntennaPtr | Pointer to the antenna associated with the receiver. If one isn't provided or if it is zero then call must be made to SetAntenna() prior to calling Initialize(). |
References WsfEM_Types::cPOL_COUNT, mCommInteractors, mInterferenceInteractors, mSensorInteractors, WsfEM_XmtrRcvr::SetAttenuationInputEnabled(), WsfEM_XmtrRcvr::SetPropagationInputEnabled(), and WsfEM_XmtrRcvr::WsfEM_XmtrRcvr().
Referenced by WsfPassiveSensor::PassiveRcvr::PassiveRcvr(), WsfPassiveSensor::PassiveRcvr::PassiveRcvr(), and WsfEM_Rcvr().
| WsfEM_Rcvr::WsfEM_Rcvr | ( | const WsfEM_Rcvr & | aSrc, |
| WsfEM_Antenna * | aAntennaPtr = nullptr ) |
Copy construct a receiver.
| aSrc | The receiver from which to copy. |
| aAntennaPtr | Pointer to the antenna associated with the receiver. If one isn't provided or if it is zero then call must be made to SetAntenna() prior to calling Initialize(). |
References WsfEM_Types::cPOL_COUNT, mCommInteractors, mInterferenceInteractors, mSensorInteractors, WsfEM_Rcvr(), and WsfEM_XmtrRcvr::WsfEM_XmtrRcvr().
|
override |
| void WsfEM_Rcvr::Activate | ( | ) |
Indicate the receiver is 'turned-on'.
This method adds the receiver from the list of active receivers within the simulation.
References WsfEM_XmtrRcvr::GetEM_Manager().
|
virtual |
Add the specified transmitter to the list of potential interactors.
| aXmtrPtr | The transmitter to be added. |
Reimplemented in WsfPassiveSensor::PassiveRcvr.
References WsfEM_Xmtr::cXF_COMM, WsfEM_Xmtr::cXF_INTERFERER, WsfEM_Xmtr::cXF_SENSOR, WsfEM_Xmtr::GetFunction(), mCommInteractors, mInterferenceInteractors, mSensorInteractors, and UpdateIndices().
Referenced by UpdateInteractions().
|
virtual |
Can this receiver potentially interact with (receive radiation from) the specified transmitter.
This method should answer the question, 'given the current frequency and bandwidth, could this receiver process information from the specified transmitter'. This method must NOT consider geometry.
Reimplemented in WsfPassiveSensor::PassiveRcvr.
References WsfEM_XmtrRcvr::GetBandwidth(), and WsfEM_XmtrRcvr::GetFrequency().
Referenced by UpdateInteractions().
|
inline |
Check for transmitter masking, includes terrain check flag also Transmitter flag utilized primarily for bistatic interactions.
References WsfEM_XmtrRcvr::CheckMasking().
|
virtual |
Compute the received power from an emission direction, taking into account the polarization of of the incoming signal for antenna gain. Does NOT take into account bandwidth mismatch between the receiver and signal.
| aSourceAz | [input] Source azimuth with respect to the beam (radians) |
| aSourceEl | [input] Source elevation with respect to the beam (radians) |
| aEBS_Az | [input] Beam azimuth with respect to the antenna (radians) |
| aEBS_El | [input] Beam elevation with respect to the antenna (radians) |
| aPolarization | [input] Polarization of the signal being received. |
| aReceivedPowerDensity | [input] Power density of the signal at the face of the antenna (w/m^2). |
| aFrequency | [input] Frequency of the signal being received (Hertz). |
| aAntennaGain | [output] Computed antenna gain (absolute - not dB). |
Reimplemented in WsfPassiveSensor::PassiveRcvr.
References WsfEM_XmtrRcvr::GetAntennaGain(), WsfEM_XmtrRcvr::mFrequency, and WsfEM_XmtrRcvr::mInternalLoss.
|
virtual |
Compute the signal-to-noise ratio.
| aReceivedSignalPower | [input] The power of the signal to be detected. |
| aClutterPower | [input] The received clutter power. |
| aReceivedInterferencePower | [input] The power of the signal that is attempting to interfere with the detection. |
Referenced by wsf::comm::ComponentHW::CanSendTo(), wsf::comm::ComponentHW_Subsurface::CanSendTo(), WsfFalseTargetBlip::ComputeEquivalentRCS(), WsfFalseTargetBlip::ComputeSNR(), WsfEW_SensorComponent::EW_Beam::DetectJamStrobes(), WsfRadarMTD_SignalProcessor::Execute(), WsfFalseTarget::PowerSufficiencyCheck(), WsfEW_RPJ_Effect::UpdateEffects(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_SLB_Effect::UpdateEffects(), WsfEW_SLC_Effect::UpdateEffects(), and WsfEW_TrackEffect::UpdateEffects().
|
static |
Compute the system noise temperature in a receiver.
This method computes the system noise temperature as defined by:
Ref 1: "Radar Range Performance", Lamont V. Blake, 1986, Artech House, Inc., Chapter 4.
| aElevation | Elevation angle above the horizontal (radians). |
| aAntennaOhmicLossFactor | The antenna ohmic loss factor (>= 1.0). (See the note below concerning loss factors). |
| aReceiveLineLossFactor | The line loss factor between the antenna and the receiver (>= 1.0). (See the note below concerning loss factors). |
| aNoiseFigure | The receiver noise figure. This should be greater than 1. |
| aFrequency | The operating frequency (Hertz) |
Referenced by UpdateNoisePower().
|
virtual |
Indicate that the receiver is 'turned-off'. This method removes the receiver from the list of active receivers within the simulation and clears the interactor list.
References mCommInteractors, mInterferenceInteractors, mSensorInteractors, and UpdateIndices().
|
virtual |
A transmitter to which this receiver is listening is emitting.
| aSimTime | The current simulation time. |
| aResult | The interaction object representing the transmission. aResult.GetTransmitter() returns the emitting transmitter. |
Reimplemented in WsfPassiveSensor::PassiveRcvr.
|
inline |
| double WsfEM_Rcvr::GetBandwidthEffect | ( | double | aSignalFreq, |
| double | aSignalBW ) const |
Get the effect of mis-matched frequency bandwidths between the receiver and supplied signal. The caller should use this to effectively reduce the transmitter power by the ratio of the amount of transmitter bandwidth that is within the receiver bandwidth and the total transmitter bandwidth.
| aSignalFreq | The frequency of the signal being received. |
| aSignalBW | The bandwidth of the signal being received. |
References WsfEM_XmtrRcvr::mBandwidth, and WsfEM_XmtrRcvr::mFrequency.
|
inline |
Get the number of potentially interacting communications transmitters.
References mCommInteractors.
|
inline |
Get the i'th potentially interacting communications transmitter.
| aIndex | The index of the desired entry in the rage [0 .. GetCommInteractorCount() - 1]. |
References mCommInteractors.
|
inline |
Referenced by WsfEW_RcvrComponent::Find(), and WsfEW_RcvrComponent::FindOrCreate().
|
inline |
|
inline |
Get the minimum detectable signal-to-noise ratio
Referenced by WsfEM_Interaction::BeginOneWayInteraction(), WsfEM_Interaction::BeginOneWayInteraction(), WsfEM_Interaction::BeginTwoWayInteraction(), WsfEM_Interaction::BeginTwoWayOTH_Interaction(), WsfSAR_Sensor::SAR_Mode::Calibrate(), WsfSurfaceWaveRadarSensor::RadarMode::Calibrate(), wsf::comm::ComponentHW::CanSendTo(), wsf::comm::ComponentHW_Subsurface::CanSendTo(), WsfXIO_ObjectInfoLoad::Load_EM_Rcvr(), WsfFalseTarget::PowerSufficiencyCheck(), WsfEW_SimpleFT_Effect::UpdateEffects(), WsfEW_SLB_Effect::UpdateEffects(), and WsfEW_TrackEffect::UpdateEffects().
|
inline |
Get the intended function of the receiver.
Referenced by WsfEM_Attenuation::ComputeAttenuationFactor(), WsfEM_ALARM_Propagation::ComputePropagationFactor(), WsfEM_FastMultipath::ComputePropagationFactor(), WsfEM_GroundWavePropagation::ComputePropagationFactor(), WsfEW_Effects::Process(), WsfEW_AgilityEffect::UpdateEffects(), and WsfEW_SimpleFT_Effect::UpdateEffects().
|
inline |
Get the receiver bandwidth.
|
inline |
Get the number of potentially interacting transmitters of any class.
| WsfEM_Xmtr * WsfEM_Rcvr::GetInteractorEntry | ( | unsigned int | aIndex | ) | const |
Get the i'th potentially interacting transmitter of any class.
| aIndex | The index of the desired entry in the rage [0 .. GetInteractorCount() - 1]. |
References mCommInteractors, mInterferenceInteractors, and mSensorInteractors.
|
inline |
Get the number of potentially interacting interference transmitters.
References mInterferenceInteractors.
Referenced by WsfRF_Jammer::ComputeTotalJammerEffects(), WsfEW_SensorComponent::EW_Beam::DetectJamStrobes(), and WsfEW_SensorComponent::EW_Mode::UpdateFalseTargetInteractors().
|
inline |
Get the i'th potentially interacting interference transmitter.
| aIndex | The index of the desired entry in the rage [0 .. GetInterferenceInteractorCount() - 1]. |
References mInterferenceInteractors.
Referenced by WsfRF_Jammer::ComputeTotalJammerEffects(), WsfEW_SensorComponent::EW_Beam::DetectJamStrobes(), and WsfEW_SensorComponent::EW_Mode::UpdateFalseTargetInteractors().
|
inline |
Required to display error messages in WsfComponentFactoryList.
Referenced by WsfPassiveSensor::PassiveMode::AddInteractor(), and WsfPassiveSensor::PassiveMode::RemoveInteractor().
|
inline |
Get the noise figure
Referenced by WsfXIO_ObjectInfoLoad::Load_EM_Rcvr().
|
inline |
Get the noise power level
Referenced by WsfEW_RepeaterEffect::UpdateGainFactors().
|
inline |
Get the noise power level
Referenced by WsfEM_Interaction::BeginOneWayInteraction(), WsfEM_Interaction::BeginOneWayInteraction(), WsfEM_Interaction::BeginTwoWayInteraction(), WsfEM_Interaction::BeginTwoWayOTH_Interaction(), WsfSAR_Sensor::SAR_Mode::Calibrate(), WsfSurfaceWaveRadarSensor::RadarMode::Calibrate(), WsfPassiveDetector::ComputeDetectability(), WsfXIO_ObjectInfoLoad::Load_EM_Rcvr(), WsfEOIR_Sensor::Update(), and WsfEW_RepeaterEffect::UpdateGainFactors().
| double WsfEM_Rcvr::GetPolarizationEffect | ( | WsfEM_Types::Polarization | aPolarization | ) | const |
Get effect of receiving a signal of a specified polarization. This method returns the fraction of the incoming signal that can be received as a function of its polarization. For example, if the receiver is defined to process horizontally polarized signals and it receives a horizontally polarized signal then the fraction will be 1.0. However if it receives a vertically polarized signal then the fraction will be 0.0;
| aPolarization | The polarization of the signal being received. |
References WsfEM_Types::cPOL_COUNT, WsfEM_Types::cPOL_DEFAULT, and WsfEM_XmtrRcvr::mPolarization.
|
inline |
|
inlineoverride |
|
inline |
Get the number of potentially interacting sensor transmitters.
References mSensorInteractors.
|
inline |
Get the i'th potentially interacting sensor transmitter.
| aIndex | The index of the desired entry in the rage [0 .. GetSensorInteractorCount() - 1]. |
References mSensorInteractors.
|
overridevirtual |
Initialize the receiver.
Reimplemented from WsfEM_XmtrRcvr.
References WsfSimulation::GetScenario(), WsfSimulation::GetSimTime(), WsfEM_XmtrRcvr::Initialize(), WsfEM_XmtrRcvr::mFrequency, ok, WsfComponentFactoryList< PARENT_TYPE >::PreInitialize(), simTime, and UpdateNoisePower().
Referenced by WsfPassiveSensor::PassiveRcvr::Initialize().
|
inline |
Return the source of the noise power
|
overridevirtual |
Process input from a generic source.
Reimplemented from WsfEM_XmtrRcvr.
References WsfScenario::FromInput(), WsfComponentFactoryList< PARENT_TYPE >::ProcessInput(), WsfEM_XmtrRcvr::ProcessInput(), SetAntennaOhmicLoss(), SetDetectionThreshold(), SetInstantaneousBandwidth(), SetNoiseFigure(), SetNoisePower(), SetPolarizationEffect(), SetReceiveLineLoss(), and WsfEM_Util::StringToEnum().
Referenced by WsfPassiveSensor::PassiveRcvr::ProcessInput(), and ProcessInputBlock().
|
virtual |
A convenience method to check for and process a 'receiver/end_receiver' block.
References ProcessInput().
Referenced by WsfEW_SLB_Effect::ProcessInput(), and WsfEW_SLC_Effect::ProcessInput().
|
virtual |
Remove the specified transmitter from the list of potential interactors. This method is typically called by WsfEM_Manager whenever a transmitter is deactivated.
| aXmtrPtr | The transmitter to be removed. |
Reimplemented in WsfPassiveSensor::PassiveRcvr.
References WsfEM_Xmtr::cXF_COMM, WsfEM_Xmtr::cXF_INTERFERER, WsfEM_Xmtr::cXF_SENSOR, WsfEM_Xmtr::GetFunction(), mCommInteractors, mInterferenceInteractors, mSensorInteractors, and UpdateIndices().
Referenced by UpdateInteractions().
| void WsfEM_Rcvr::SetAntennaOhmicLoss | ( | double | aAntennaOhmicLoss | ) |
Set the antenna ohmic loss. This is used to determine the system noise temperature and the receiver noise.
| aAntennaOhmicLoss | The antenna ohmic loss factor [1..). |
References UpdateNoisePower().
Referenced by ProcessInput().
|
overridevirtual |
Set the receiver operating bandwidth.
| aBandwidth | The receiver operating bandwidth (Hz). |
Reimplemented from WsfEM_XmtrRcvr.
References WsfEM_XmtrRcvr::mBandwidth, WsfEM_XmtrRcvr::mExplicitBandwidth, and UpdateNoisePower().
Referenced by WsfLASER_RcvrComponent::Initialize(), WsfPassiveSensor::PassiveRcvr::Initialize(), and WsfPassiveSensor::PassiveRcvr::TuneFrequencyBand().
|
inline |
Set the threshold required for detection.
| aDetectionThreshold | The minimum detectable signal-to-noise (absolute ratio, NOT dB) |
Referenced by ProcessInput().
|
overridevirtual |
Set the operating frequency.
| aFrequency | The operating frequency (Hz) |
Reimplemented from WsfEM_XmtrRcvr.
References WsfEM_XmtrRcvr::mFrequency.
Referenced by WsfPassiveSensor::PassiveRcvr::Initialize(), and WsfPassiveSensor::PassiveRcvr::TuneFrequencyBand().
| void WsfEM_Rcvr::SetInstantaneousBandwidth | ( | double | aInstantaneousBandwidth | ) |
Set the receiver instantaneous bandwidth.
| aInstantaneousBandwidth | The receiver instantaneous bandwidth (Hz). |
References WsfEM_XmtrRcvr::mBandwidth, WsfEM_XmtrRcvr::mExplicitBandwidth, and UpdateNoisePower().
Referenced by ProcessInput().
| void WsfEM_Rcvr::SetNoiseFigure | ( | double | aNoiseFigure | ) |
Set the receiver noise figure. This is used to determine the system noise temperature and the receiver noise.
| aNoiseFigure | The receiver noise figure (absolute, not dB). |
References UpdateNoisePower().
Referenced by ProcessInput().
|
inline |
Set the noise multiplier
| aNoiseMultiplier | The noise multiplier (absolute ratio, NOT dB) |
Referenced by WsfRF_Jammer::ComputeSingleJammerEffect(), and WsfRF_Jammer::ComputeTotalJammerEffects().
| void WsfEM_Rcvr::SetNoisePower | ( | double | aNoisePower | ) |
Set the noise power level
| aNoisePower | Noise power level (Watts) |
References UpdateNoisePower().
Referenced by WsfSAR_Sensor::SAR_Mode::Calibrate(), and ProcessInput().
|
overridevirtual |
Set the polarization of the receive antenna.
| aPolarization | The polarization. |
Reimplemented from WsfEM_XmtrRcvr.
References WsfEM_Types::cPOL_COUNT, WsfEM_Types::cPOL_DEFAULT, and WsfEM_XmtrRcvr::mPolarization.
| void WsfEM_Rcvr::SetPolarizationEffect | ( | WsfEM_Types::Polarization | aPolarization, |
| double | aFraction ) |
Set the polarization effect for a specified polarization.
| aPolarization | The polarization for which the factor applies. |
| aFraction | The effect for the specified polarization in the range [0..1] |
References WsfEM_Types::cPOL_COUNT, and WsfEM_Types::cPOL_DEFAULT.
Referenced by ProcessInput().
| void WsfEM_Rcvr::SetReceiveLineLoss | ( | double | aReceiveLineLoss | ) |
Set the receive line loss. This is used to determine the system noise temperature and the receiver noise.
| aReceiveLineLoss | The line loss factor [1..). |
References UpdateNoisePower().
Referenced by ProcessInput().
|
virtual |
A targets transmitter to which this receiver is listening has changed requiring a target update.
| aSimTime | The current simulation time. |
| aTargetIndex | The target representing the transmission change. |
Reimplemented in WsfPassiveSensor::PassiveRcvr.
|
protected |
Update indices used by GetInteractorCount() and GetInteractorEntry(). This method must be called whenever the interactor lists are modified.
References mCommInteractors, mInterferenceInteractors, and mSensorInteractors.
Referenced by AddInteractor(), Deactivate(), and RemoveInteractor().
|
virtual |
Update the potential interaction list for the associated transmitter.
This method is typically called by WsfEM_Manager to maintain the list of transmitters that can potentially interact with this receiver. This uses the CanInteractWith() method to determine if the receiver can interact with the transmitter.
| aXmtrPtr | The transmitter to be evaluated. |
References AddInteractor(), WsfEM_Xmtr::AllowInteractionWith(), CanInteractWith(), and RemoveInteractor().
Referenced by WsfEM_Manager::UpdateRcvr().
| void WsfEM_Rcvr::UpdateNoisePower | ( | double | aPulseWidth = 0.0 | ) |
Update the noise power from other values if one hasn't been explicitly provided.
If a noise power has not been explicitly provided by SetNoisePower() then this routine will calculate the noise power based on:
noise_power = k * Ts * B
| aPulseWidth | If the noise power must be calculated and if the instantaneous bandwidth or bandwidth hasn't been defined AND these values are less than zero, then the instantaneous bandwidth and bandwidth will be assumed to be (1 / this value). |
References ComputeSystemNoiseTemperature(), WsfEM_Antenna::cSCAN_EL, WsfArticulatedPart::cSLEW_EL, WsfEM_XmtrRcvr::GetBeamTilt(), WsfArticulatedPart::GetMaxElSlew(), WsfArticulatedPart::GetMinElSlew(), WsfArticulatedPart::GetPitch(), WsfArticulatedPart::GetSlewMode(), WsfArticulatedPart::GetTilt(), WsfEM_XmtrRcvr::mAntennaPtr, WsfEM_XmtrRcvr::mBandwidth, WsfEM_XmtrRcvr::mExplicitBandwidth, and WsfEM_XmtrRcvr::mFrequency.
Referenced by Initialize(), SetAntennaOhmicLoss(), SetBandwidth(), SetInstantaneousBandwidth(), SetNoiseFigure(), SetNoisePower(), and SetReceiveLineLoss().
|
protected |
|
protected |
|
protected |