【发布时间】:2018-07-05 13:25:47
【问题描述】:
我有一些存储为D[x][y][z][t] 的数据,我想使用fftw 库执行fft,但仅在t 维度上,这意味着我想获得该矩阵的频率响应。当然D[x][y][z][t] 只是一个向量化数组的包装器(因为这种数组可以用作fftw 中的参数)。在 MATLAB 中可以直接计算它,但在 c 中我根本找不到任何类型的参考,即使在 fftw 参考中也是如此。有什么想法吗?
数组存储为D[l + k*Nt + j*Nt*Nz + i*Nt*Nz*Ny],其中i,j,k,l 是x,y,z,t 的索引,对应的数组大小为Nx, Ny, Nz, Nt。因此,我想要的是在 t 维度上计算 FFT,并带有 Nt 点。
相应的计划应该类似于myplan = fftw_plan_dft_r2c_1d(Nt, &D[0], &out_array, FFTW_ESTIMATE);,但我不确定这是否可行。我希望输出数组是一个类似大小的数组,包含 FFT 转换 x,y,z,其方式与原始 D 数组相同。请注意,output_array 是一个复杂数组,其分配方式与双精度数组 D 相同。
【问题讨论】:
-
请发帖Minimal, Complete, and Verifiable example,这样人们至少可以看到你在这方面的尝试
-
我已经发布了我想做的事情。在这一点上一个例子是不可行的,因为我不知道从哪里开始。我熟悉一维傅里叶变换,但我想知道如何仅在特定维度上执行一维