带有FFTW的fftwf_plan_dft_1d(...)无法执行

时间:2019-07-03 06:07:02

标签: multithreading fft fftw dft rtl-sdr

The fftwf_plan_dft_1d(...) line of the following function在Ubuntu中失败。它用于对长度约为4096个数字的复数向量进行FFT。

请帮助。 TIA

这是在Ubuntu 18.04中编译并运行的C代码。没有编译问题。

extern void cpxfft(fftwf_plan plan, cpx_t *cpx, int n)
{
#ifdef FFTMTX
        mlock(hfftmtx);
#endif
    if (plan==NULL) {
        fftwf_plan_with_nthreads(NFFTTHREAD); /* fft execute in multi threads */
        plan=fftwf_plan_dft_1d(n,cpx,cpx,FFTW_FORWARD,FFTW_ESTIMATE);
        fftwf_execute_dft(plan,cpx,cpx); /* fft */
        fftwf_destroy_plan(plan);
    } else {
        fftwf_execute_dft(plan,cpx,cpx); /* fft */
    }
#ifdef FFTMTX
        unmlock(hfftmtx);
#endif
}

控制台显示以下错误消息:

free(): invalid next size (fast)
Aborted (core dumped)

0 个答案:

没有答案