我正在使用此代码创建一个具有复杂数据类型的二维数组(来自 c 中的 complex.h)。然后我想“就地”找到那个数组的 fft。但是它给出了分段错误,我担心这是由于指针的不正确转换造成的。我们如何为 fftw 使用复杂数据类型?
//a is a 2d array of size blockSize*NO_INPUTS
complex float* a=(complex float*)malloc(sizeof(complex float)*NO_INPUTS*blockSize);
//****** Put data in a*******//
//blah//
//blah//
//a has data now//
fftw_plan p;
p=fftw_plan_dft_2d(blockSize,NO_INPUTS,(fftw_complex*)a,(fftw_complex*)a,FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);
请注意,我不想使用 fftw_complex 或 fftw_malloc。谢谢你。