+int SignalFilter::N_INTEGRAL=500; //static member
+
+const int SignalFilter::FILTER_INVALID = -1 ;
+const int SignalFilter::FILTER_ABS_BANDLIMIT = 0; // filter times |x|
+const int SignalFilter::FILTER_ABS_G_HAMMING = 1;
+const int SignalFilter::FILTER_ABS_HANNING = 2;
+const int SignalFilter::FILTER_ABS_COSINE = 3;
+const int SignalFilter::FILTER_ABS_SINC = 4;
+const int SignalFilter::FILTER_SHEPP = 5;
+const int SignalFilter::FILTER_BANDLIMIT = 6;
+const int SignalFilter::FILTER_SINC = 7;
+const int SignalFilter::FILTER_G_HAMMING = 8;
+const int SignalFilter::FILTER_HANNING = 9;
+const int SignalFilter::FILTER_COSINE = 10;
+const int SignalFilter::FILTER_TRIANGLE = 11;
+
+const int SignalFilter::s_iReconstructFilterCount = 4;
+
+const char* const SignalFilter::s_aszFilterName[] = {
+ {"abs_bandlimit"},
+ {"abs_hamming"},
+ {"abs_hanning"},
+ {"abs_cosine"},
+ {"shepp"},
+ {"abs_sinc"},
+ {"bandlimit"},
+ {"sinc"},
+ {"hamming"},
+ {"hanning"},
+ {"cosine"},
+ {"triangle"},
+};
+
+const char* const SignalFilter::s_aszFilterTitle[] = {
+ {"Abs(w) * Bandlimit"},
+ {"Abs(w) * Hamming"},
+ {"Abs(w) * Hanning"},
+ {"Abs(w) * Cosine"},
+ {"Shepp"},
+ {"Abs(w) * Sinc"},
+ {"Bandlimit"},
+ {"Sinc"},
+ {"Hamming"},
+ {"Hanning"},
+ {"Cosine"},
+ {"Triangle"},
+};
+
+const int SignalFilter::s_iFilterCount = sizeof(s_aszFilterName) / sizeof(const char*);
+
+
+const int SignalFilter::DOMAIN_INVALID = -1;
+const int SignalFilter::DOMAIN_FREQUENCY = 0;
+const int SignalFilter::DOMAIN_SPATIAL = 1;
+
+const char* const SignalFilter::s_aszDomainName[] = {
+ {"frequency"},
+ {"spatial"},
+};
+
+const char* const SignalFilter::s_aszDomainTitle[] = {
+ {"Frequency"},
+ {"Spatial"},
+};
+
+const int SignalFilter::s_iDomainCount = sizeof(s_aszDomainName) / sizeof(const char*);
+