- * filter_generate Generate a filter
- *
- * SYNOPSIS
- * f = filter_generate (filt_type, bw, xmin, xmax, n, param, domain, analytic)
- * double f Generated filter vector
- * int filt_type Type of filter wanted
- * double bw Bandwidth of filter
- * double xmin, xmax Filter limits
- * int n Number of points in filter
- * double param General input parameter to filters
- * int domain FREQ or SPATIAL domain wanted
- * int numint Number if intervals for calculating
- * discrete inverse fourier xform
- * for spatial domain filters. For
- * ANALYTIC solutions, use numint = 0
- */
-
-SignalFilter::SignalFilter (const FilterType filt_type, double bw, double xmin, double xmax, int n, double param, const DomainType domain, int numint)
+* SignalFilter::SignalFilter Construct a signal
+*
+* SYNOPSIS
+* f = SignalFilter (filt_type, bw, filterMin, filterMax, n, param, domain, analytic)
+* double f Generated filter vector
+* int filt_type Type of filter wanted
+* double bw Bandwidth of filter
+* double filterMin, filterMax Filter limits
+* int nFilterPoints Number of points in signal
+* double param General input parameter to filters
+* int domain FREQUENCY or SPATIAL domain wanted
+*/
+
+SignalFilter::SignalFilter (const char* szFilterName, double dFilterMinimum, double dFilterMaximum, int nFilterPoints, double dBandwidth, double dFilterParam, const char* szDomainName)
+: m_adFilter(NULL), m_fail(false)
+{
+ m_idFilter = convertFilterNameToID (szFilterName);
+ if (m_idFilter == FILTER_INVALID) {
+ m_fail = true;
+ m_failMessage = "Invalid Filter name ";
+ m_failMessage += szFilterName;
+ return;
+ }
+ m_idDomain = convertDomainNameToID (szDomainName);
+ if (m_idDomain == DOMAIN_INVALID) {
+ m_fail = true;
+ m_failMessage = "Invalid domain name ";
+ m_failMessage += szDomainName;
+ return;
+ }
+ init (m_idFilter, dFilterMinimum, dFilterMaximum, nFilterPoints, dBandwidth, dFilterParam, m_idDomain);
+}
+
+SignalFilter::SignalFilter (const int idFilter, double dFilterMinimum, double dFilterMaximum, int nFilterPoints, double dBandwidth, double dFilterParam, const int idDomain)
+: m_adFilter(NULL), m_fail(false)
+{
+ init (idFilter, dFilterMinimum, dFilterMaximum, nFilterPoints, dBandwidth, dFilterParam, idDomain);
+}
+
+SignalFilter::SignalFilter (const char* szFilterName, const char* szDomainName, double dBandwidth, double dFilterParam)
+: m_adFilter(NULL), m_fail(false)
+{
+ m_nFilterPoints = 0;
+ m_dBandwidth = dBandwidth;
+ m_dFilterParam = dFilterParam;
+ m_idFilter = convertFilterNameToID (szFilterName);
+ if (m_idFilter == FILTER_INVALID) {
+ m_fail = true;
+ m_failMessage = "Invalid Filter name ";
+ m_failMessage += szFilterName;
+ return;
+ }
+ m_idDomain = convertDomainNameToID (szDomainName);
+ if (m_idDomain == DOMAIN_INVALID) {
+ m_fail = true;
+ m_failMessage = "Invalid domain name ";
+ m_failMessage += szDomainName;
+ return;
+ }
+}
+
+void
+SignalFilter::init (const int idFilter, double dFilterMinimum, double dFilterMaximum, int nFilterPoints, double dBandwidth, double dFilterParam, const int idDomain)