r382: no message
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 12 Jan 2001 14:14:58 +0000 (14:14 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 12 Jan 2001 14:14:58 +0000 (14:14 +0000)
libctsim/procsignal.cpp
msvc/ctsim/ctsim.plg

index 86501abc043b5571d8f87b81afd8aeb52aa7bd59..4fdefe6679e9fd16346259c8566ce8ebea0f510d 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: procsignal.cpp,v 1.16 2001/01/12 04:28:37 kevin Exp $
+**  $Id: procsignal.cpp,v 1.17 2001/01/12 14:14:58 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
@@ -364,6 +364,8 @@ ProcessSignal::init (const int idFilter, const int idFilterMethod, double dBandw
       }
 #endif
 
+// #define PRE_JAN_2001 1
+#ifdef PRE_JAN_2001
       if (m_idGeometry == Scanner::GEOMETRY_EQUILINEAR) {
         for (i = 0; i < m_nFilterPoints; i++)
           adSpatialFilter[i] *= 0.5;
@@ -384,19 +386,38 @@ ProcessSignal::init (const int idFilter, const int idFilterMethod, double dBandw
       
       m_adFilter = new double [m_nFilterPoints];
       std::complex<double>* acInverseFilter = new std::complex<double> [m_nFilterPoints];
-#define PRE_JAN_2001 1
-#ifdef PRE_JAN_2001
       finiteFourierTransform (adSpatialFilter, acInverseFilter, m_nFilterPoints, BACKWARD);
       delete adSpatialFilter;
       for (i = 0; i < m_nFilterPoints; i++)
         m_adFilter[i] = std::abs (acInverseFilter[i]) * m_dSignalInc;
       delete acInverseFilter;
 #else
+      for (i = nSpatialPoints; i < m_nFilterPoints; i++)
+        adSpatialFilter[i] = 0;
+      
+      std::complex<double>* acInverseFilter = new std::complex<double> [m_nFilterPoints];
       finiteFourierTransform (adSpatialFilter, acInverseFilter, m_nFilterPoints, FORWARD);
       delete adSpatialFilter;
+      m_adFilter = new double [m_nFilterPoints];
       for (i = 0; i < m_nFilterPoints; i++)
                  m_adFilter[i] = std::abs(acInverseFilter[i]);
       delete acInverseFilter;
+
+      if (m_idGeometry == Scanner::GEOMETRY_EQUILINEAR) {
+        for (i = 0; i < m_nFilterPoints; i++)
+          m_adFilter[i] *= 0.5;
+      } else if (m_idGeometry == Scanner::GEOMETRY_EQUIANGULAR) {
+        for (i = 0; i < m_nFilterPoints; i++) {
+          int iDetFromZero = i - ((m_nFilterPoints - 1) / 2);
+          double sinScale = sin (iDetFromZero * m_dSignalInc);
+          if (fabs(sinScale) < 1E-7)
+            sinScale = 1;
+          else
+            sinScale = (iDetFromZero * m_dSignalInc) / sinScale;
+          double dScale = 0.5 * sinScale * sinScale;
+          m_adFilter[i] *= dScale;
+        }
+      }
 #endif
 
 #ifdef HAVE_SGP
index b6005f10bcca5f0bb8fe98dbf3ead26fe4815dad..fc702144d78868d527cc7cd552f05c7b09b08813 100644 (file)
@@ -6,13 +6,13 @@
 --------------------Configuration: libctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP6F.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP88.tmp" with contents
 [
 /nologo /G6 /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "_DEBUG" /D "HAVE_WXWIN" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
 "D:\ctsim\libctsim\procsignal.cpp"
 ]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP6F.tmp" 
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP70.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP88.tmp" 
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP89.tmp" with contents
 [
 /nologo /out:"Debug\libctsim.lib" 
 .\Debug\array2dfile.obj
@@ -44,7 +44,7 @@ Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP70.tmp" with content
 .\Debug\transformmatrix.obj
 .\Debug\xform.obj
 ]
-Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP70.tmp"
+Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP89.tmp"
 <h3>Output Window</h3>
 Compiling...
 procsignal.cpp
@@ -53,7 +53,7 @@ Creating library...
 --------------------Configuration: ctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP71.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8A.tmp" with contents
 [
 comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" 
 .\Debug\ctsim.obj
@@ -68,7 +68,7 @@ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib w
 "\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"
 \wx2\lib\wxd.lib
 ]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP71.tmp"
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8A.tmp"
 <h3>Output Window</h3>
 Linking...