12#ifndef WSFPD_FILTER_HPP
13#define WSFPD_FILTER_HPP
42 WsfPD_Filter(
bool aZVF_Flag =
false,
int aMax_PRFs = 16);
49 virtual bool Initialize(
double aConicalScanRate,
58 double pd_response(
double aF_Dop,
int aFlag,
int aPRF_Index);
65 double& aClutterResponse);
67 void set_pd_data(
int aN_Filters,
int aN_Poles,
int aN_PRFs,
double aSLR_dB,
DbleVec& aFilterBW);
89 double romchf(
double a,
double b,
double eps,
double center_freq,
double stop_freq, FilterFunc aFilterFunc);
91 bool init_pd(
double aConicalScanRate,
100 bool init_zvf_pd(PdBank aPdBank,
101 double aConicalScanRate,
102 double aDecayConstant,
103 double aIF_Bandwidth,
110 double filt_func(
double aFrequency,
double aCenterFrequency,
double aStopFrequency, FilterFunc aFilterFunc);
111 double cltfpd(
double aFrequency,
double aCenterFrequency,
double aStopFrequency);
112 double clut_custom(
double aFrequency,
double aCenterFrequency,
double aStopFrequency);
113 double chfilt(
double aDopplerFrequency,
double aCenterFrequency,
double aStopFrequency);
115 double chebcf(
double aX,
double aN_Poles);
117 void set_pd_consts(
double aSigmaC,
double aDecayConst,
double aConicalScanRate);
119 void set_clutter_psd_pd(
DbleVec& aFrequencies,
DbleDbleVec& aPSD,
int aCount,
int aN_PRFs);
121 void compute_filter_parms_pd(
double aDopplerFrequency,
123 double& aFrequencyAlias,
124 double& aCenterFrequency,
125 double& aStopFrequency,
128 int position(
int aCount,
DbleVec& aArray,
double aValue);
130 void alloc_data(
bool aDoDealloc =
true);
132 bool even_filter_cnt;
151 double conical_scan_rate;
virtual WsfPD_Filter * Clone() const
Definition WsfPD_Filter.cpp:63
virtual bool ProcessInput(UtInput &aInput)
Definition WsfPD_Filter.cpp:138
void spectral_response_pd(int aPRF_Index, int aCount, DbleVec aFrequencies, DbleVec aPSD, int aMaxPSD_Index, double &aResponse, double &aClutterResponse)
Definition WsfPD_Filter.cpp:1080
void set_pd_data(int aN_Filters, int aN_Poles, int aN_PRFs, double aSLR_dB, DbleVec &aFilterBW)
Definition WsfPD_Filter.cpp:957
std::vector< double > DbleVec
Definition WsfPD_Filter.hpp:39
double filter_bandwidth_pd(int aPRF_Index)
Definition WsfPD_Filter.cpp:986
virtual ~WsfPD_Filter()=default
double pd_response(double aF_Dop, int aFlag, int aPRF_Index)
Definition WsfPD_Filter.cpp:455
double get_stop_freq(int aPRF_Index)
Definition WsfPD_Filter.cpp:972
double noise_bandwidth_pd(int aPRF_Index)
Definition WsfPD_Filter.cpp:979
SignalType
Definition WsfPD_Filter.hpp:26
@ cST_RWR_SENS
Definition WsfPD_Filter.hpp:35
@ cST_RWR_SIGNAL
Definition WsfPD_Filter.hpp:34
@ cST_BLADE
Definition WsfPD_Filter.hpp:28
@ cST_PROCESSED_TARGET
Definition WsfPD_Filter.hpp:36
@ cST_INTERFERENCE
Definition WsfPD_Filter.hpp:33
@ cST_NOISE
Definition WsfPD_Filter.hpp:32
@ cST_CLUTTER
Definition WsfPD_Filter.hpp:29
@ cST_TARGET
Definition WsfPD_Filter.hpp:27
@ cST_DECEPT_JAM
Definition WsfPD_Filter.hpp:31
@ cST_NOISE_JAM
Definition WsfPD_Filter.hpp:30
WsfPD_Filter(bool aZVF_Flag=false, int aMax_PRFs=16)
Definition WsfPD_Filter.cpp:27
std::vector< DbleVec > DbleDbleVec
Definition WsfPD_Filter.hpp:40
virtual bool Initialize(double aConicalScanRate, double aDecayConst, double aIF_Bandwidth, int aN_PRFs, DbleVec aPRF, double aPW, double aSigmaC)
Definition WsfPD_Filter.cpp:69
Definition WsfSensorMode.hpp:36
Definition WsfSensor.hpp:92