Мне нужна ваша помощь.
Я определил массив и план в моем основном cpp.
Затем я помещаю данные в массив и выполняю fftw в моем подпрограмме cpp.
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);
}
/////////////////////////////