项目作者: wsjcpp

项目描述 :
c++ fast-fourier-transform (package for wsjcpp)
高级语言: C++
项目地址: git://github.com/wsjcpp/fast-fourier-transform.git
创建时间: 2020-04-08T09:05:49Z
项目社区:https://github.com/wsjcpp/fast-fourier-transform

开源协议:MIT License

下载


fast-fourier-transform

Build Status Github Stars Github Stars Github Forks Total alerts Language grade: C/C++

C++ fast-fourier-transform (package for wsjcpp)

Integrate to your project

via wsjcpp:

  1. $ wsjcpp install https://github.com/wsjcpp/fast-fourier-transform:master

or include this files:

  • src.wsjcpp/wsjcpp_core.h
  • src.wsjcpp/wsjcpp_core.cpp
  • src/fast_fourier_transform_wiki.h
  • src/fast_fourier_transform_wiki.cpp

How to use

  1. int nCount = 64;
  2. double *pSignal = new double[nCount];
  3. double *pFFT = new double[nCount];
  4. // Fill here pSignal and reset values
  5. for (int i = 0; i < nCount; i++) {
  6. pFFT[i] = 0;
  7. }
  8. FastFourierTransformWiki fft;
  9. long t0 = WsjcppCore::getCurrentTimeInMilliseconds();
  10. fft.analitics(pSignal, pFFT, nCount, nCount);
  11. long t1 = WsjcppCore::getCurrentTimeInMilliseconds();
  12. WsjcppLog::info(TAG, "Calculation time: " + std::to_string(t1-t0) + " ms");
  13. // Now values of fft will be in array: pFFT
  14. // for example get 2 diff arrays
  15. std::vector<float> vOffsetSin; // first attr of harmonic
  16. std::vector<float> vAmplitudeSin; // second attr of harmonic
  17. for (int i = 0; i < nCount/2; i++) {
  18. vOffsetSin.push_back(pFFT[i*2]);
  19. vAmplitudeSin.push_back(pFFT[i*2 + 1]);
  20. }