OSDN Git Service

test
[psychlops/cpp.git] / win32gl / test / fftfirm.cpp
index 4c03f04..943b951 100644 (file)
@@ -1,6 +1,45 @@
  #include <psychlops.h>\r
  using namespace Psychlops;\r
 \r
+\r
+void psychlops_main() {\r
+       Canvas cnvs(1024, 768, Canvas::window);\r
+\r
+       FFT1 fftworkspace;\r
+       Matrix source_mat, filtered_mat, mat;\r
+       source_mat.load("voltage_spec_vaio_ie.csv");\r
+       source_mat.transpose();\r
+\r
+       //fftworkspace.set(64,64);\r
+       //fftworkspace.makeNoise();\r
+       fftworkspace.set(source_mat);\r
+       fftworkspace.fft();\r
+       fftworkspace.getSpectrum(filtered_mat, 1.0);\r
+\r
+       int q = filtered_mat.getCols() / 4;\r
+       Interval col;\r
+       mat = filtered_mat(1, q*2+3<=col<=q*3);\r
+       mat.transpose();\r
+       mat.save("voltage_spec.csv");\r
+\r
+       double mean = 0.0;\r
+       for(int i=0; i<source_mat.getCols(); i++) {\r
+               mean += source_mat(1, i+1);\r
+       }\r
+       mean /= source_mat.getCols();\r
+       int counter = 0;\r
+       for(int i=1; i<source_mat.getCols()-3; i++) {\r
+               if(    source_mat(1, i+1)<mean\r
+                       && source_mat(1, i+2)<mean\r
+                       && source_mat(1, i+3)>mean\r
+                       && source_mat(1, i+4)>mean\r
+               ) { counter++; }\r
+       }\r
+       std::cout << counter << std::endl;\r
+}\r
+\r
+\r
+/*\r
 const int S = 128;\r
 \r
  void psychlops_main() {\r
@@ -42,3 +81,4 @@ const int S = 128;
 \r
  }\r
 
+*/\r