bart_pdgm.cpp
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = bart_pdgm.cpp
  3. //
  4. #include <iostream> 
  5. #include <fstream>
  6. #include <complex>
  7. #include "fft_T.h"
  8. #include "bart_pdgm_util.h"
  9. using std::complex;
  10. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
  11. template <class T>
  12. BartlettPeriodogram<T>::BartlettPeriodogram(  int num_samps,
  13.                                     int fft_len,
  14.                                     double samp_intvl )
  15.                   :SpectrumEstimator<T>(  num_samps,
  16.                                        fft_len,
  17.                                        samp_intvl)
  18. {
  19.    Freq_Signal = new complex<double>[Fft_Len];
  20. };
  21. //=================================================================
  22. template <class T>
  23. void BartlettPeriodogram<T>::Calculate(  T* time_signal )
  24. {
  25.    int i;
  26.    FFT<double>( time_signal,
  27.                  Freq_Signal,
  28.                  Num_Samps,
  29.                  Fft_Len );
  30.    for(i=0; i<Num_Samps; i++)
  31.    {
  32.       Psd_Estimate[i] += Samp_Intvl * std::norm(Freq_Signal[i])/Num_Samps;
  33.       //Psd_Estimate[i] += Samp_Intvl * std::norm(freq_signal[i])/(Num_Samps*Num_Samps);
  34.    }
  35.    return;
  36. }
  37. template BartlettPeriodogram< std::complex<float> >;
  38. template BartlettPeriodogram<float>;