2 changed files with 56 additions and 16 deletions
@ -1,13 +1,50 @@ |
|||
#include <math.hpp> |
|||
#include <cmath> |
|||
#include <fstream> |
|||
#include <ctime> |
|||
|
|||
void create_plot_file(std::string filename, const math::csignal& tfd) { |
|||
std::ofstream data_file(filename + ".data"); |
|||
for (int i=0; i<tfd.size(); ++i) { |
|||
data_file << tfd[i].real() |
|||
<< " " |
|||
<< tfd[i].imag() |
|||
<< std::endl; |
|||
} |
|||
data_file.close(); |
|||
} |
|||
|
|||
int main(int argc, char** argv) { |
|||
math::csignal s; |
|||
double fe = 6000; |
|||
double f0 = 400; |
|||
int n = 30; |
|||
if (argc > 1) { |
|||
n = atoi(argv[1]); |
|||
} |
|||
|
|||
for (int i=0; i<100; ++i) { |
|||
s.push_back(std::sin(2*math::pi()*50*i/100)); |
|||
s.push_back(math::complex(std::sin(2*math::pi()*f0*float(i)/fe), 0)); |
|||
} |
|||
math::csignal tfd = math::fft(s); |
|||
|
|||
math::csignal tfd; |
|||
clock_t begin = std::clock(); |
|||
|
|||
for (int i=0; i<n; ++i) { |
|||
tfd = math::fft(s, 2000); |
|||
} |
|||
|
|||
clock_t end = clock(); |
|||
std::cout << "Time to compute " << n << " fft: "<< double(end-begin) / CLOCKS_PER_SEC << std::endl; |
|||
std::cout << "Average time: " << double(end-begin) / CLOCKS_PER_SEC / n << std::endl; |
|||
|
|||
math::csignal mod; |
|||
for (int i=0; i<tfd.size(); ++i) { |
|||
double R = tfd[i].real(); |
|||
double I = tfd[i].imag(); |
|||
double a = std::sqrt(R*R + I*I); |
|||
mod.push_back(math::complex(float(i)/tfd.size()*fe, a)); |
|||
} |
|||
create_plot_file("graph", mod); |
|||
return 0; |
|||
} |
|||
|
|||
Loading…
Reference in new issue