22 bool begin(
int len)
override {
25 if (p_fft_object==
nullptr) p_fft_object = cpp_kiss_fft_alloc(len,
false,
nullptr,
nullptr);
26 assert(p_fft_object!=
nullptr);
27 return p_fft_object!=
nullptr;
31 if (p_fft_object!=
nullptr) kiss_fft_free(p_fft_object);
32 if (p_fft_object_inv!=
nullptr) kiss_fft_free(p_fft_object_inv);
34 p_fft_object =
nullptr;
38 k_data[idx].r = value;
42 cpp_kiss_fft (p_fft_object, k_data.data(), k_data.data());
46 if(p_fft_object_inv==
nullptr) {
47 p_fft_object_inv = cpp_kiss_fft_alloc(len,
true,
nullptr,
nullptr);
49 cpp_kiss_fft (p_fft_object_inv, k_data.data(), k_data.data());
58 return (k_data[idx].r * k_data[idx].r + k_data[idx].i * k_data[idx].i);
61 bool isValid()
override{
return p_fft_object!=
nullptr; }
65 float getValue(
int idx)
override {
return k_data[idx].r; }
69 bool setBin(
int pos,
float real,
float img)
override {
70 if (pos>=len)
return false;
69 bool setBin(
int pos,
float real,
float img)
override {
…}
76 if (pos>=len)
return false;
77 bin.real = k_data[pos].r;
78 bin.img = k_data[pos].i;
82 kiss_fft_cfg p_fft_object=
nullptr;
83 kiss_fft_cfg p_fft_object_inv=
nullptr;
100 return driverEx()->k_data.data();