我需要你的帮助。
我在主cpp中定义了数组和计划。 然后,我将数据放入数组中,并在子cpp中执行fftw执行。 sub cpp在循环的线程中。
我定义了足够的数组大小,因为数据数量是动态的。 但是fftw正在对整个数组的大小做fft,因此在我的情况下结果不正确。因为数据的数量总是小于数组的大小。
在sub cpp中定义数组是解决问题的简便方法,但是我不想在sub cpp中定义数组,因为sub cpp是循环的。
我只想定义一次数组,并更改独立于数组大小的fft窗口大小。
我该怎么办?
/////// in my main cpp //////
fft_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*nScanSize);
fft_out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*nScanSize);
p = fftw_plan_dft_1d(nScanSize, fft_in, fft_out, FFTW_FORWARD, FFTW_ESTIMATE);
/////////////////////////////
/////// in my sub cpp -> looped ///////
for (i = 0; i < nChannelCountAI; i++) {
for (j = nFirstIndex; j < nLastIndex; j++) {
fft_in[j - nFirstIndex][0] = RawData[i][j];
fft_in[j - nFirstIndex][1] = 0;
}
fftw_execute(p);
}
/////////////////////////////