00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <fstream>
00019 #include <iomanip>
00020
00021 #include <mffm/realFFT.H>
00022
00023 #define INPUTFILE "sine.1000Hz.dat"
00024 #define OUTPUTFILE "powerSpectrum.txt"
00025 #define OUTPUTFILE1 "in.txt"
00026 #define OUTPUTFILE2 "out.txt"
00027
00028 int main (void){
00029 ifstream input(INPUTFILE);
00030 ofstream output(OUTPUTFILE);
00031 ofstream output1(OUTPUTFILE1);
00032 ofstream output2(OUTPUTFILE2);
00033 int count=0;
00034 double var;
00035
00036 if (!input){
00037 cout <<"input not opened !"<<endl;
00038 exit(-1);
00039 }
00040 while (input >> var)
00041 count++;
00042
00043
00044 cout<<count<<" variables in file "<<INPUTFILE<<endl;
00045
00046
00047 input.clear();
00048 input.seekg(0);
00049
00050 realFFTData fftData(count);
00051 realFFT rfft(&fftData);
00052
00053
00054 for (int i=0; i<count; i++)
00055 input >> fftData.in[i];
00056 input.close();
00057
00058
00059 rfft.fwdTransform();
00060
00061
00062 fftData.compPowerSpec();
00063
00064
00065
00066
00067
00068 for (int i=0; i<(count+1)/2; i++){
00069 output << fftData.power_spectrum[i]<<'\n';
00070 }
00071
00072 output.close();
00073
00074 for (int i=0; i<count; i++){
00075 output1 << fftData.in[i]<<'\n';
00076 output2 << fftData.out[i]<<'\n';
00077 }
00078 output1.close();
00079 output2.close();
00080 return 0;
00081 }