Ahoj, snažím se napsat Matlabovskou funkci hilbert ()v C++ a narazil jsem na problém při použití fft (používám fftw3). Je to psáno i v dokumentaci, ale po vytvoření plánu a spuštění mi to vrací místo n prvků jen n/2+1, což já potřebuji n - tak jak to vrací matlabovská fce fft(). Je u knihovny FFTW3 nějaká možnost jak toho docílit?
Vstup je jedno-dimenzionální pole realných dat.
Jak to používám:
vector<double> * d = new vector<double>(data, data+size);
const int dsize = d->size();
fftw_plan p;
fftw_complex *out;
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * d->size());
p = fftw_plan_dft_r2c_1d(2*(dsize/2+1), &(*d)[0], out, FFTW_ESTIMATE);
fftw_execute(p);