WSF
WsfRadarMTI_AdjSignalProcessor.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFRADARMTI_ADJSIGNALPROCESSOR
13#define WSFRADARMTI_ADJSIGNALPROCESSOR
14
15#include "wsf_export.h"
16
17#include "UtTable.hpp"
19#include "WsfSensor.hpp"
21
22class RadarMode;
23class Result;
24
27
29{
30public:
38
39 WsfRadarMTI_AdjSignalProcessor(MTI_Type aMTI_Type);
42 ~WsfRadarMTI_AdjSignalProcessor() override = default;
43
44 static WsfSensorSignalProcessor* ObjectFactory(const std::string& aTypeName);
45
46 WsfSensorSignalProcessor* Clone() const override;
47
48 bool Initialize(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr, size_t aBeamIndex = 0) override;
49
50 bool ProcessInput(UtInput& aInput) override;
51
52 void Execute(double aSimTime, WsfSensorResult& aResult) override;
53
54private:
56
57 bool ProcessDataTableInput(UtInput& aInput);
58 bool ProcessAdjustmentTableInput(UtInput& aInput);
59 bool ProcessMTI_ProcessorInput(UtInput& aInput);
60
62 double ComputeMTI_Response(WsfSensorResult& aResult, const int aTypeFlag);
63
65 double GetTableResponse(const double aSlantRange);
66
68 WsfMTI_TableManager::MTI_AdjustmentTable* GetMTI_AdjustmentTable() { return mMTI_AdjustmentTablePtr.get(); }
69
70 void ReadTable(UtInput& aInput, WsfMTI_TableManager::MTI_AdjustmentTable& aMTI_AdjustmentTable);
71
72 double ComputeMTI_Effects(WsfSensorResult& aResult, const int aTypeFlag);
73
74 // bool InitializeMTI(WsfSensorMode& aMode);
75
76 // void ComputeClutterAttenuationFactor(WsfSensorMode& aMode);
77
79 bool mFilterOwnshipFromDoppler;
80
82 MTI_Type mMTI_Type;
83
86 double mMTI_MinResponse; // dB
87
89 // std::vector<double> mMTI_MinRanges; // meters
90
92 // std::vector<double> mMTI_MaxRanges; // meters
93
95 // std::vector<double> mMTI_MinAngles; // radians
96
98 // std::vector<double> mMTI_MaxAngles; // radians
99
101 UtTable::Curve mResponseTable; // future implementation
102
104
105
107 std::shared_ptr<WsfMTI_TableManager::MTI_AdjustmentTable> mMTI_AdjustmentTablePtr;
108
110 // ! Not to be confused with the MTI processing specific variable
111 double mMTI_TableMaxRange;
113
115
116 double mMTI_MaxRange;
117 double mMTI_InterpulsePeriod_1;
118 double mMTI_InterpulsePeriod_2;
119 double mMTI_StabilityConstant;
120 double mMTI_Weights[3];
121 int mMTI_NumberOfStages;
122 bool mMTI_ClutterLock;
123 bool mMTI_UpWind;
124 double mClutterAttenuationFactor;
125 double mInputClutterAttenuationFactor;
127};
128
129#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
A nested class for the MTI adjustment table. This was extracted from WsfRadarSensor.
Definition WsfMTI_TableManager.hpp:44
Definition WsfRadarMTI_AdjSignalProcessor.hpp:29
MTI_Type
Allowed MTI types.
Definition WsfRadarMTI_AdjSignalProcessor.hpp:33
@ cMTIT_PROCESSOR
Target adjustment Data table driven implementation.
Definition WsfRadarMTI_AdjSignalProcessor.hpp:36
@ cMTIT_DATA_TABLE
Definition WsfRadarMTI_AdjSignalProcessor.hpp:34
@ cMTIT_ADJUSTMENT_TABLE
Data table driven implementation.
Definition WsfRadarMTI_AdjSignalProcessor.hpp:35
WsfRadarMTI_AdjSignalProcessor(const WsfRadarMTI_AdjSignalProcessor &)=default
WsfRadarMTI_AdjSignalProcessor & operator=(const WsfRadarMTI_AdjSignalProcessor &)=default
~WsfRadarMTI_AdjSignalProcessor() override=default
static WsfSensorSignalProcessor * ObjectFactory(const std::string &aTypeName)
The object factory for the MTI signal processor type.
Definition WsfRadarMTI_AdjSignalProcessor.cpp:60
WsfRadarMTI_AdjSignalProcessor(MTI_Type aMTI_Type)
Constructor.
Definition WsfRadarMTI_AdjSignalProcessor.cpp:36
Definition WsfSensorMode.hpp:36
Definition WsfSensorResult.hpp:27
Definition WsfSensorSignalProcessor.hpp:35
WsfSensorSignalProcessor * Clone() const override=0
bool ProcessInput(UtInput &aInput) override
Definition WsfSensorSignalProcessor.cpp:36
virtual void Execute(double aSimTime, WsfSensorResult &aResult)=0
virtual bool Initialize(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr, size_t aBeamIndex=0)
Definition WsfSensorSignalProcessor.cpp:25
Definition WsfSensor.hpp:92
Copyrights Multiple, All Rights Reserved