** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: filter.h,v 1.17 2000/07/22 16:14:49 kevin Exp $
+** $Id: filter.h,v 1.19 2000/08/09 22:52:52 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
static const int DOMAIN_FREQUENCY;
static const int DOMAIN_SPATIAL;
+ static const int FREQUENCY_FILTER_INVALID;
+ static const int FREQUENCY_FILTER_DIRECT_FREQUENCY;
+ static const int FREQUENCY_FILTER_INVERSE_SPATIAL;
- SignalFilter (const char* filterName, const char* filterMethodName,double bw, double signalIncrement, int n, double param, const char* domainName, const int zeropad = 0, const int preinterpolationFactor = 1);
+ SignalFilter (const char* filterName, const char* filterMethodName,double bw, double signalIncrement, int n, double param, const char* domainName, const char* frequencyFilterName, const int zeropad = 0, const int preinterpolationFactor = 1);
- SignalFilter (const int filt_type, int filterMethodID, double bw, double signalIncrement, int n, double param, const int domain, const int zeropad = 0, const int preinterpolationFactor = 1);
+ SignalFilter (const int filt_type, int filterMethodID, double bw, double signalIncrement, int n, double param, const int domain, int filterFilterID, const int zeropad = 0, const int preinterpolationFactor = 1);
SignalFilter (const char* filterName, const char* domainName, double bw, double param);
const string& nameDomain(void) const { return m_nameDomain;}
const int idFilter(void) const { return m_idFilter;}
const int idDomain(void) const { return m_idDomain;}
+ const int idFrequencyFilter() const { return m_idFrequencyFilter;}
const double getFilterMin(void) const {return m_filterMin;}
const double getFilterMax(void) const {return m_filterMax;}
const double getFilterIncrement(void) const {return m_filterInc;}
static int convertDomainNameToID (const char* const domainName);
static const char* convertDomainIDToName (const int idDomain);
static const char* convertDomainIDToTitle (const int idDomain);
-
-
+
+ static const int getFrequencyFilterCount() {return s_iFrequencyFilterCount;}
+ static const char** getFrequencyFilterNameArray() {return s_aszFrequencyFilterName;}
+ static const char** getFrequencyFilterTitleArray() {return s_aszFrequencyFilterTitle;}
+ static int convertFrequencyFilterNameToID (const char* const ffName);
+ static const char* convertFrequencyFilterIDToName (const int idFF);
+ static const char* convertFrequencyFilterIDToTitle (const int idFF);
private:
double m_bw;
string m_nameFilter;
string m_nameFilterMethod;
string m_nameDomain;
+ string m_nameFrequencyFilter;
int m_idFilter;
int m_idFilterMethod;
+ int m_idFrequencyFilter;
int m_idDomain;
double m_filterParam;
int m_traceLevel;
static const char* s_aszDomainName[];
static const char* s_aszDomainTitle[];
static const int s_iDomainCount;
+ static const char* s_aszFrequencyFilterName[];
+ static const char* s_aszFrequencyFilterTitle[];
+ static const int s_iFrequencyFilterCount;
static int N_INTEGRAL;
static const bool haveAnalyticSpatial (const int filterID);
- void init (const int filt_type, const int filterMethod, double bw, double signalIncrement, int n, double param, const int domain, const int zeropad, const int preInterpScale);
+ void init (const int filt_type, const int filterMethod, double bw, double signalIncrement, int n, double param, const int domain, const int frequencyFilter, const int zeropad, const int preInterpScale);
double spatialResponseCalc (double x, double param) const;