fftw与c中的complex.h的接口
|
我正在使用此代码创建具有复杂数据类型的2D数组(来自c中的complex.h)。然后我想找到该数组的fft'inplace \'。但是,这会产生分段错误,我担心这是由于指针的不正确投射造成的。我们如何对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。
谢谢。
没有找到相关结果
已邀请:
2 个回复
讹巳漓把备
等同于
,您正在使用using3ѭ。那可能是段错误的根源。 尝试在
之前包含
,这样就不需要进行任何强制转换。 http://www.fftw.org/fftw3_doc/Complex-numbers.html
联海
的所有实例更改为
。但是,如果出于内存原因或其他原因想要继续使用
,则应使用此处概述的单精度fftw。您应该在所有fftw函数中将小写字母ѭ9更改为
。例如,
变为
。在编译时,应链接到
而不是
。