This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FFTLIB库函数使用问题:FFTmemBuffer_t结构体中的base是什么意思??

Other Parts Discussed in Thread: FFTLIB

我参考使用FFTLIB 库, D:\ti\fftlib_k2hx_2_0_0_2\packages\ti\fftlib\src\fft_sp_1d_r2c\fft_sp_1d_r2c_d.c文件中的fft_sp_plan_1d_r2c进行修改做4096点1D FFT变换(因据说这个fft会比较快 ),我看了不少了该函数的手册,但是还是没有搞懂fft_memory_request 的传入参数FFTmemBuffer_t结构体中的base是什么意思,看头文件中解释说是应用缓存的头指针位置,但是为什么会出现10个缓存??

1.ptr_x_i

2.ptr_y_i

3.ptr_w_i

 

4.ptr_x_i_work

5.ptr_y_i_work

6.ptr_w_i_work

7.ptr_y_i_temp

8.ptr_Bn_i

9.ptr_Bn_i_work

10.ptr_work

问题:

ptr_x_i,ptr_y_i,ptr_w_i 我的理解是输入,输出,和旋转因子,那么后面的带有_work的内存段是什么意思呢??

 


void fft_memory_request (int nbufs, FFTmemBuffer_t *bufs)
{
int i;

printf ("FFT memory buffers:\n");
printf (" Buffer Size(bytes) Alignment\n");
for (i = 0; i < nbufs; i++) {
printf (" %3d %7d %4d \n", i, (int)bufs[i].size, (int)bufs[i].log2align);
}
bufs[0].base = ptr_x_i;
bufs[1].base = ptr_y_i;
bufs[2].base = ptr_w_i;

bufs[4].base = ptr_x_i_work;
bufs[5].base = ptr_y_i_work;
bufs[6].base = ptr_w_i_work;
bufs[9].base = ptr_y_i_temp;

if (bufs[3].size != 0)
{
bufs[3].base = ptr_Bn_i;
bufs[7].base = ptr_Bn_i_work;
}
else
{
bufs[3].base = NULL;
bufs[7].base = NULL;
}

if (bufs[8].size != 0)
bufs[8].base = ptr_work;
else
bufs[8].base = NULL;

} /* fft_memory_request */