Skip to content
Snippets Groups Projects
Select Git revision
  • c92f1d6669506b0cc3bbfe56b30f1c43b5c6a563
  • master default protected
  • enh/surfprc
  • ukbiobankv1.5
  • newnew
  • cvsHEAD protected
  • fsl-5_branch
  • osx-109-branch
  • oldOptionsFilm
  • originalSurfaceFilm
  • universal_branch
  • fsl-3_3-branch
  • fsl-3_2
  • release-branch
  • 2111.1
  • 2111.0
  • 2007.0
  • 2004.0
  • cvsFINAL protected
  • FSL6-0-0
  • newStable
  • FinalFive
  • fsl-5_0_11
  • stable
  • fsl-5_0_10
  • fsl-5_0_9
  • fsl-5_0_8
  • fsl-5_0_7
  • fsl-5_0_5
  • fsl-5_0_6
  • root-osx-109-branch
  • newnew_branchpoint
  • fsl-5_0_0
  • fsl-5_0_1
34 results

ttologp.cc

Blame
  • AutoCorrEstimator.h 2.45 KiB
    /*  AutoCorrEstimator.h
    
        Mark Woolrich, FMRIB Image Analysis Group
    
        Copyright (C) 1999-2000 University of Oxford  */
    
    /*  CCOPYRIGHT  */
    
    #include <iostream>
    #include <fstream>
    #define WANT_STREAM
    #define WANT_MATH
    
    #include "VolumeSeries.h"
    #include "Volume.h"
    #include "newmatap.h"
    #include "newmatio.h"
    #include "sigproc.h"
    
    using namespace NEWMAT;
    using namespace SIGPROC;
    using namespace TACO;
    namespace TACO {
      
    #if !defined(__AutoCorrEstimator_h)
    #define __AutoCorrEstimator_h
       
      class AutoCorrEstimator
        {
        public:
          AutoCorrEstimator(const VolumeSeries& pxdata) : 
    	xdata(pxdata),
    	vrow(),
    	xrow(),
    	dummy(),
    	realifft(), 
    	mn(pxdata.getNumSeries()),
    	zeropad(0)
    	{ 
    	  zeropad = SIGPROC::EstablishZeroPadding(pxdata.getNumVolumes());
    	  vrow.ReSize(zeropad);
    	  xrow.ReSize(zeropad);
    	  dummy.ReSize(zeropad);
    	  realifft.ReSize(zeropad);
    	  countLargeE.ReSize(zeropad);
    	  countLargeE = 0;
    	}
    
          void calcRaw();
          void spatiallySmooth(const string& usanfname, const Volume& epivol, int masksize, const string& epifname, const string& susanpath, int usanthresh);
          void applyConstraints();
          void filter(const ColumnVector& filterFFT);
          void fitAutoRegressiveModel();
          void pava();
          void preWhiten(VolumeSeries& in, VolumeSeries& ret);
          void preWhiten(ColumnVector& in, ColumnVector& ret, int i, Matrix& dmret, bool highfreqremovalonly=false);
          void setDesignMatrix(const Matrix& dm);
          int establishUsanThresh(const Volume& epivol);
    
          void getMeanEstimate(ColumnVector& ret);
    
          VolumeSeries& getEstimates() { return acEst; }
          VolumeSeries& getE() { return E; }
          ColumnVector& getCountLargeE(){ return countLargeE; }
    
          int getZeroPad() { return zeropad; }
          void tukey(int M);
          void multitaper(int M);
    
        private:
          AutoCorrEstimator();
          const AutoCorrEstimator& operator=(AutoCorrEstimator&);
          AutoCorrEstimator(AutoCorrEstimator&);
          void getSlepians(int M, int sizeTS, Matrix& slepians);
    
          const VolumeSeries& xdata;
          VolumeSeries acEst;
          VolumeSeries E;
          ColumnVector countLargeE;
    
          VolumeSeries dminFFTReal;
          VolumeSeries dminFFTImag;
    
          ColumnVector vrow;
          ColumnVector xrow;     
    
          ColumnVector dm_fft_real, dm_fft_imag;
          ColumnVector x_fft_real, ac_fft_real;
          ColumnVector x_fft_im, ac_fft_im;
         
          ColumnVector dummy;
          ColumnVector realifft;
          ColumnVector mn;
    
          int zeropad;
        };
    
    #endif
     
    }