15 FILTER_ABS_BANDLIMIT, // filter times |x|
29 SignalFilter (const char* filterName, double bw, double xmin, double xmax, int n, double param, const char* domainName, const int numInt);
31 SignalFilter (const FilterID filt_type, double bw, double xmin, double xmax, int n, double param, const DomainID domain, const int numInt);
35 double* getFilter (void) const
36 { return m_vecFilter; }
38 double convolve (const double f[], const double dx, const int n, const int np) const;
40 double convolve (const float f[], const double dx, const int n, const int np) const;
42 bool fail(void) const {return m_fail;}
43 const string& nameFilter(void) const { return m_nameFilter;}
44 const string& nameDomain(void) const { return m_nameDomain;}
45 const FilterID idFilter(void) const { return m_idFilter;}
46 const DomainID idDomain(void) const { return m_idDomain;}
48 static double response (const char* const FilterName, const char* const DomainName, double bw, double x, double param);
50 static double spatialResponseCalc (FilterID fType, double bw, double x, double param, int n);
52 static double spatialResponseAnalytic (FilterID fType, double bw, double x, double param);
54 static double frequencyResponse (FilterID fType, double bw, double u, double param);
68 static const char FILTER_ABS_BANDLIMIT_STR[]= "abs_bandlimit";
69 static const char FILTER_ABS_SINC_STR[]= "abs_sinc";
70 static const char FILTER_ABS_COS_STR[]= "abs_cos";
71 static const char FILTER_ABS_HAMMING_STR[]= "abs_hamming";
72 static const char FILTER_SHEPP_STR[]= "shepp";
73 static const char FILTER_BANDLIMIT_STR[]= "bandlimit";
74 static const char FILTER_SINC_STR[]= "sinc";
75 static const char FILTER_COS_STR[]= "cos";
76 static const char FILTER_HAMMING_STR[]= "hamming";
77 static const char FILTER_TRIANGLE_STR[]= "triangle";
79 static const char DOMAIN_FREQ_STR[]= "freq";
80 static const char DOMAIN_SPATIAL_STR[]= "spatial";
82 static FilterID convertFilterNameToID (const char* filterName);
83 static const char* convertFilterIDToName (const FilterID filterID);
84 static const DomainID convertDomainNameToID (const char* domainName);
85 static const char* convertDomainIDToName (const DomainID domainID);
87 void init (const FilterID filt_type, double bw, double xmin, double xmax, int n, double param, const DomainID domain, const int numInt);
89 double spatialResponseCalc (double x, double param, int n) const;
91 double spatialResponseAnalytic (double x, double param) const;
93 double frequencyResponse (double u, double param) const;
95 static double sinc (double x, double mult)
96 { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); }
98 static double integral_abscos (double u, double w);