4 #include "FFT/FFTReal.h"
22 bool begin(
int len)
override {
25 if (p_x==
nullptr) p_x =
new float[len];
26 if (p_f==
nullptr) p_f =
new float[len];
27 assert(p_fft_object!=
nullptr);
30 return p_fft_object!=
nullptr && p_x!=
nullptr && p_f!=
nullptr;
33 if (p_fft_object!=
nullptr)
delete p_fft_object;
34 if (p_x!=
nullptr)
delete[] p_x;
35 if (p_f!=
nullptr)
delete[] p_f;
36 p_fft_object =
nullptr;
40 void setValue(
int idx,
int value)
override{
45 memset(p_f,0,len*
sizeof(
float));
46 p_fft_object->do_fft(p_f, p_x);
49 float magnitude(
int idx)
override {
50 return sqrt(p_x[idx] * p_x[idx] + p_f[idx] * p_f[idx]);
55 return (p_x[idx] * p_x[idx] + p_f[idx] * p_f[idx]);
58 virtual bool isValid()
override{
return p_fft_object!=
nullptr; }
79 return driverEx()->p_x;
84 return driverEx()->p_f;
88 float*
ifft(
float *real,
float* complex){