WSF
WsfMTI_Filter.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
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 WSFMTI_FILTER_HPP
13#define WSFMTI_FILTER_HPP
14
15#include <vector>
16
17class UtInput;
18
19class WsfSensor;
20class WsfSensorMode;
21
23{
24public:
26 {
27 cST_TARGET = 1, // sig_target
28 cST_BLADE = 2, // sig_blade
29 cST_CLUTTER = 3, // sig_clutter
30 cST_NOISE_JAM = 4, // sig_noise_jam
31 cST_DECEPT_JAM = 5, // sig_decept_jam
32 cST_NOISE = 6, // sig_noise
33 cST_INTERFERENCE = 7, // SIG_INTERFERENCE
34 cST_RWR_SIGNAL = 8, // sig_rwr_signal
35 cST_RWR_SENS = 9, // sig_rwr_sens
36 cST_PROCESSED_TARGET = 10, // sig_processed_target
37 };
38
39 using DbleVec = std::vector<double>;
40 using DbleDbleVec = std::vector<DbleVec>;
41
43 // WsfMTI_Filter(const WsfMTI_Filter& aSrc);
44 virtual ~WsfMTI_Filter() = default;
45
46 // static WsfMTI_Filter* ObjectFactory(const std::string& aTypeName);
47
48 virtual WsfMTI_Filter* Clone() const;
49 virtual bool
50 Initialize(double aConicalScanRate, double aDecayConst, double aIF_Bandwidth, int aN_PRFs, DbleVec aPRFs, double aSigmaC);
51 virtual bool ProcessInput(UtInput& aInput);
52
53 double mti_response(double aAzAngle, double aDopplerFrequency, int aFlag, double aSlantRange);
54 void set_mti_data(int aN_Delay,
55 int aN_Gate,
56 DbleVec aMinAngle,
57 DbleVec aMaxAngle,
58 DbleVec aMinRange,
59 DbleVec aMaxRange,
60 double aMinResp_dB,
61 bool aEffects);
62
63 double get_min_response() { return min_resp_abs; }
64
65private:
66 bool init_mti(double aConicalScanRate, double aDecayConst, double aIF_Bandwidth, int aN_PRFs, DbleVec aPRFs, double aSigmaC);
67
68 double resmti(double aFrequency);
69
70 bool is_gated(double aAlphaT, double aRangeT);
71
72 double rommti(double a, double b, double eps);
73
74 double cltmti(double aFrequency);
75
76 void get_clutter_psd_mti(int aN_Prfs, DbleVec& aFrequencies, DbleDbleVec& aPSD, int& aCount);
77
78 void spectral_response_mti(int aPRF_Index,
79 int aCount,
80 DbleVec aFrequencies,
81 DbleVec aPSD,
82 double& aResponse,
83 double& aClutterResponse,
84 DbleVec* aPSDout);
85
86 void set_mti_consts(double aSigmaC, double aDecayConst, double aConicalScanRate);
87
88 bool effects; // mti on / off
89
90 int ndelay; // number mti delays
91 int nprfs; // number of prfs
92 int ngate; // number mti gates
93
94 double average_resp; // mti average resp
95 double clutter_resp; // clutter response
96
97 DbleVec max_angle; // degrees
98 DbleVec max_range; // km
99 DbleVec min_angle; // degrees
100 DbleVec min_range; // km
101
102 double min_resp_abs; // absolute
103 double min_resp_db; // dB
104
105 // constants used to compute MTI response
106 double const1;
107 double const2;
108 double conical_scan_rate;
109 double decay_const; // clutter quadratic decay constant
110 double sigma3; // 3 times rms clutter freq spread
111 double unambig_range; // m
112
113 // declare a dynamically allocated array
114 DbleVec pioprf; // pi over prf
115};
116
117#endif
virtual bool Initialize(double aConicalScanRate, double aDecayConst, double aIF_Bandwidth, int aN_PRFs, DbleVec aPRFs, double aSigmaC)
Definition WsfMTI_Filter.cpp:60
virtual WsfMTI_Filter * Clone() const
Definition WsfMTI_Filter.cpp:54
WsfMTI_Filter()
Definition WsfMTI_Filter.cpp:29
std::vector< DbleVec > DbleDbleVec
Definition WsfMTI_Filter.hpp:40
double mti_response(double aAzAngle, double aDopplerFrequency, int aFlag, double aSlantRange)
Definition WsfMTI_Filter.cpp:371
double get_min_response()
Definition WsfMTI_Filter.hpp:63
void set_mti_data(int aN_Delay, int aN_Gate, DbleVec aMinAngle, DbleVec aMaxAngle, DbleVec aMinRange, DbleVec aMaxRange, double aMinResp_dB, bool aEffects)
Definition WsfMTI_Filter.cpp:842
std::vector< double > DbleVec
Definition WsfMTI_Filter.hpp:39
virtual bool ProcessInput(UtInput &aInput)
Definition WsfMTI_Filter.cpp:161
SignalType
Definition WsfMTI_Filter.hpp:26
@ cST_PROCESSED_TARGET
Definition WsfMTI_Filter.hpp:36
@ cST_BLADE
Definition WsfMTI_Filter.hpp:28
@ cST_TARGET
Definition WsfMTI_Filter.hpp:27
@ cST_RWR_SIGNAL
Definition WsfMTI_Filter.hpp:34
@ cST_INTERFERENCE
Definition WsfMTI_Filter.hpp:33
@ cST_RWR_SENS
Definition WsfMTI_Filter.hpp:35
@ cST_NOISE_JAM
Definition WsfMTI_Filter.hpp:30
@ cST_DECEPT_JAM
Definition WsfMTI_Filter.hpp:31
@ cST_NOISE
Definition WsfMTI_Filter.hpp:32
@ cST_CLUTTER
Definition WsfMTI_Filter.hpp:29
virtual ~WsfMTI_Filter()=default
Definition WsfSensorMode.hpp:36
Definition WsfSensor.hpp:92
Copyrights Multiple, All Rights Reserved