** Date Started: June 2000
**
** This is part of the CTSim program
-** Copyright (C) 1983-2000 Kevin Rosenberg
+** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: filter.h,v 1.20 2000/08/19 22:59:06 kevin Exp $
+** $Id: filter.h,v 1.24 2001/01/28 19:10:18 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
#include <rfftw.h>
#endif
-#include <complex>
-
// CLASS IDENTIFICATION
// SignalFilter A filter used to process signals
{ return m_adFilter; }
bool fail(void) const {return m_fail;}
- const string& failMessage(void) const {return m_failMessage;}
+ const std::string& failMessage(void) const {return m_failMessage;}
- const string& nameFilter(void) const { return m_nameFilter;}
- const string& nameDomain(void) const { return m_nameDomain;}
+ const std::string& nameFilter(void) const { return m_nameFilter;}
+ const std::string& nameDomain(void) const { return m_nameDomain;}
const int idFilter(void) const { return m_idFilter;}
const int idDomain(void) const { return m_idDomain;}
static const char* convertDomainIDToName (const int idDomain);
static const char* convertDomainIDToTitle (const int idDomain);
+ static double sinc (double x)
+ { return (fabs(x) > F_EPSILON ? (sin (x) / x) : 1.0); }
+
+ static double sinc (double x, double mult)
+ { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); }
+
private:
int m_nFilterPoints;
double m_dBandwidth;
double m_dFilterMax;
double* m_adFilter;
- string m_nameFilter;
- string m_nameDomain;
+ std::string m_nameFilter;
+ std::string m_nameDomain;
int m_idFilter;
int m_idDomain;
bool m_fail;
- string m_failMessage;
+ std::string m_failMessage;
static const char* s_aszFilterName[];
static const char* s_aszFilterTitle[];
double spatialResponseAnalytic (double x) const;
double frequencyResponse (double u) const;
- static double sinc (double x, double mult)
- { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); }
static double integral_abscos (double u, double w)
{ return (fabs (u) > F_EPSILON ? (cos (u * w) - 1) / (u * u) + w / u * sin (u * w) : (w * w / 2)); }
};