r160: *** empty log message ***
[ctsim.git] / libctsim / filter.cpp
index 1eda2366ef5da6f70616562edb32a15a2df0c1f6..544afecbb8074ec5de18466d2490b99d5219d167 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: filter.cpp,v 1.20 2000/07/22 15:45:33 kevin Exp $
+**  $Id: filter.cpp,v 1.22 2000/07/23 01:49:03 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
 int SignalFilter::N_INTEGRAL=500;  //static member
 
 const int SignalFilter::FILTER_INVALID = -1 ;
-const int SignalFilter::FILTER_BANDLIMIT = 0;
-const int SignalFilter::FILTER_SINC = 1;
-const int SignalFilter::FILTER_G_HAMMING = 2;
-const int SignalFilter::FILTER_COSINE = 3;
-const int SignalFilter::FILTER_TRIANGLE = 4;
-const int SignalFilter::FILTER_ABS_BANDLIMIT = 5;      // filter times |x = |
-const int SignalFilter::FILTER_ABS_SINC = 6;
-const int SignalFilter::FILTER_ABS_G_HAMMING = 7;
-const int SignalFilter::FILTER_ABS_COSINE = 8;
-const int SignalFilter::FILTER_SHEPP = 9;
+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[] = {
-  {"bandlimit"},
-  {"sinc"},
-  {"hamming"},
-  {"cosine"},
-  {"triangle"},
   {"abs_bandlimit"},
   {"abs_sinc"},
   {"abs_hamming"},
   {"abs_cosine"},
   {"shepp"},
+  {"bandlimit"},
+  {"sinc"},
+  {"hamming"},
+  {"cosine"},
+  {"triangle"},
 };
 
 const char* SignalFilter::s_aszFilterTitle[] = {
-  {"Bandlimit"},
-  {"Sinc"},
-  {"Hamming"},
-  {"Cosine"},
-  {"Triangle"},
   {"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*);
@@ -136,10 +136,8 @@ const int SignalFilter::s_iDomainCount = sizeof(s_aszDomainName) / sizeof(const
  */
 
 SignalFilter::SignalFilter (const char* filterName, const char* filterMethodName, double bw, double signalIncrement, int nSignalPoints, double param, const char* domainName, int zeropad = 0, int preinterpolationFactor = 1)
+  : m_vecFilter(NULL), m_vecFourierCosTable(NULL), m_vecFourierSinTable(NULL), m_fail(false)
 {
-  m_vecFilter = NULL;
-  m_vecFourierCosTable = NULL;
-  m_vecFourierSinTable = NULL;
   m_idFilter = convertFilterNameToID (filterName);
   if (m_idFilter == FILTER_INVALID) {
     m_fail = true;
@@ -165,18 +163,17 @@ SignalFilter::SignalFilter (const char* filterName, const char* filterMethodName
 }
 
 SignalFilter::SignalFilter (const int filterID, const int filterMethodID, double bw, double signalIncrement, int nSignalPoints, double param, const int domainID, int zeropad = 0, int preinterpolationFactor = 1)
+  : m_vecFilter(NULL), m_vecFourierCosTable(NULL), m_vecFourierSinTable(NULL), m_fail(false)
 {
   init (filterID, filterMethodID, bw, signalIncrement, nSignalPoints, param, domainID, zeropad, preinterpolationFactor);
 }
 
 SignalFilter::SignalFilter (const char* filterName, const char* domainName, double bw, double param)
+  : m_vecFilter(NULL), m_vecFourierCosTable(NULL), m_vecFourierSinTable(NULL), m_fail(false)
 {
   m_bw = bw;
   m_nSignalPoints = 0;
   m_nFilterPoints = 0;
-  m_vecFilter = NULL;
-  m_vecFourierCosTable = NULL;
-  m_vecFourierSinTable = NULL;
   m_filterParam = param;  
   m_idFilter = convertFilterNameToID (filterName);
   if (m_idFilter == FILTER_INVALID) {
@@ -209,7 +206,6 @@ SignalFilter::init (const int filterID, const int filterMethodID, double bw, dou
   m_nameFilter = convertFilterIDToName (m_idFilter);
   m_nameDomain = convertDomainIDToName (m_idDomain);
   m_nameFilterMethod = convertFilterMethodIDToName (m_idFilterMethod);
-  m_fail = false;
   m_nSignalPoints = nSignalPoints;
   m_signalInc = signalIncrement;
   m_filterParam = filterParam;  
@@ -363,10 +359,10 @@ SignalFilter::convertFilterNameToID (const char *filterName)
   int filterID = FILTER_INVALID;
 
   for (int i = 0; i < s_iFilterCount; i++)
-      if (strcasecmp (filterName, s_aszFilterName[i]) == 0) {
-       filterID = i;
-       break;
-      }
+    if (strcasecmp (filterName, s_aszFilterName[i]) == 0) {
+      filterID = i;
+      break;
+    }
 
   return (filterID);
 }
@@ -413,7 +409,7 @@ SignalFilter::convertFilterMethodIDToName (const int fmID)
   static const char *name = "";
 
   if (fmID >= 0 && fmID < s_iFilterMethodCount)
-      return (s_aszFilterName [fmID]);
+      return (s_aszFilterMethodName [fmID]);
 
   return (name);
 }