+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_SINC = 1;
+const int SignalFilter::FILTER_ABS_G_HAMMING = 2;
+const int SignalFilter::FILTER_ABS_COSINE = 3;
+const int SignalFilter::FILTER_SHEPP = 4;
+const int SignalFilter::FILTER_BANDLIMIT = 5;
+const int SignalFilter::FILTER_SINC = 6;
+const int SignalFilter::FILTER_G_HAMMING = 7;
+const int SignalFilter::FILTER_COSINE = 8;
+const int SignalFilter::FILTER_TRIANGLE = 9;
+
+const char* SignalFilter::s_aszFilterName[] = {
+ {"abs_bandlimit"},
+ {"abs_sinc"},
+ {"abs_hamming"},
+ {"abs_cosine"},
+ {"shepp"},
+ {"bandlimit"},
+ {"sinc"},
+ {"hamming"},
+ {"cosine"},
+ {"triangle"},
+};
+
+const char* SignalFilter::s_aszFilterTitle[] = {
+ {"Abs(w) * Bandlimit"},
+ {"Abs(w) * Sinc"},
+ {"Abs(w) * Hamming"},
+ {"Abs(w) * Cosine"},
+ {"Shepp"},
+ {"Bandlimit"},
+ {"Sinc"},
+ {"Hamming"},
+ {"Cosine"},
+ {"Triangle"},
+};
+
+const int SignalFilter::s_iFilterCount = sizeof(s_aszFilterName) / sizeof(const char*);
+
+const int SignalFilter::FILTER_METHOD_INVALID = -1;
+const int SignalFilter::FILTER_METHOD_CONVOLUTION = 0;
+const int SignalFilter::FILTER_METHOD_FOURIER = 1;
+const int SignalFilter::FILTER_METHOD_FOURIER_TABLE = 2;
+const int SignalFilter::FILTER_METHOD_FFT = 3;
+#if HAVE_FFTW
+const int SignalFilter::FILTER_METHOD_FFTW = 4;
+const int SignalFilter::FILTER_METHOD_RFFTW =5 ;
+#endif
+
+const char* SignalFilter::s_aszFilterMethodName[] = {
+ {"convolution"},
+ {"fourier"},
+ {"fouier_table"},
+ {"fft"},
+#if HAVE_FFTW
+ {"fftw"},
+ {"rfftw"},
+#endif
+};
+
+const char* SignalFilter::s_aszFilterMethodTitle[] = {
+ {"Convolution"},
+ {"Direct Fourier"},
+ {"Fouier Trigometric Table Lookout"},
+ {"FFT"},
+#if HAVE_FFTW
+ {"FFTW"},
+ {"Real/Half-Complex FFTW"},
+#endif
+};
+
+const int SignalFilter::s_iFilterMethodCount = sizeof(s_aszFilterMethodName) / sizeof(const char*);
+
+
+const int SignalFilter::DOMAIN_INVALID = -1;
+const int SignalFilter::DOMAIN_FREQUENCY = 0;
+const int SignalFilter::DOMAIN_SPATIAL = 1;
+
+const char* SignalFilter::s_aszDomainName[] = {
+ {"frequency"},
+ {"spatial"},
+};
+
+const char* SignalFilter::s_aszDomainTitle[] = {
+ {"Frequency"},
+ {"Spatial"},
+};
+
+const int SignalFilter::s_iDomainCount = sizeof(s_aszDomainName) / sizeof(const char*);
+