小编Dyl*_*lan的帖子

如何在转置的数据数组上使用fftw_plan_many_dft?

我有一个以列主要(Fortran风格)格式存储的2D数据库,我想对每一进行FFT .我想避免转置数组(它不是正方形).例如,我的数组

fftw_complex* data = new fftw_complex[21*256];
Run Code Online (Sandbox Code Playgroud)

包含条目[r0_val0, r1_val0,..., r20_val0, r0_val1,...,r20_val255].

我可以用它fftw_plan_many_dft来制定一个计划来解决data数组中的21个FFT中的每个FFT,如果它是行 -主要的,例如[r0_val0, r0_val1,..., r0_val255, r1_val0,...,r20_val255]:

int main() {
  int N = 256;
  int howmany = 21;
  fftw_complex* data = new fftw_complex[N*howmany];
  fftw_plan p;

  // this plan is OK
  p = fftw_plan_many_dft(1,&N,howmany,data,NULL,1,N,data,NULL,1,N,FFTW_FORWARD,FFTW_MEASURE);
  // do stuff...

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

根据文档(FFTW手册第4.4.1节),该功能的签名是

fftw_plan fftw_plan_many_dft(int rank, const int *n, int howmany,
                              fftw_complex *in, const int *inembed,
                              int istride, int idist, …
Run Code Online (Sandbox Code Playgroud)

c fftw

10
推荐指数
1
解决办法
4725
查看次数

标签 统计

c ×1

fftw ×1