C++ fftw_plan_r2r_1d
时间: 2023-07-08 12:15:34 浏览: 168
C++中的`fftw_plan_r2r_1d`函数是FFTW库中的一个函数,用于创建一个实数到实数的一维傅里叶变换(FFT)计划。
函数原型如下:
```c++
fftw_plan fftw_plan_r2r_1d(int n, double *in, double *out, fftw_r2r_kind kind, unsigned flags);
```
参数说明:
- `n`:实数数组的长度。
- `in`:输入实数数组的指针。
- `out`:输出实数数组的指针。
- `kind`:傅里叶变换的类型,可选值包括:
- `FFTW_RODFT00`:离散正弦变换(DST-I)。
- `FFTW_RODFT01`:离散正弦变换(DST-II)。
- `FFTW_RODFT10`:离散正弦变换(DST-III)。
- `FFTW_RODFT11`:离散正弦变换(DST-IV)。
- `FFTW_REDFT00`:离散余弦变换(DCT-I)。
- `FFTW_REDFT01`:离散余弦变换(DCT-II)。
- `FFTW_REDFT10`:离散余弦变换(DCT-III)。
- `FFTW_REDFT11`:离散余弦变换(DCT-IV)。
- `FFTW_ROCKET`:Rocket FFT。
- `FFTW_HC2R`:半复杂到实数的傅里叶变换。
- `FFTW_HC2C`:半复杂到半复杂的傅里叶变换。
- `FFTW_HC2HC`:半复杂到半复杂的傅里叶变换。
- `FFTW_DHT`:离散哈达玛变换。
- `FFTW_REDFT00`:离散余弦变换(DCT-I)。
- `FFTW_REDFT10`:离散余弦变换(DCT-III)。
- `FFTW_REDFT01`:离散余弦变换(DCT-II)。
- `FFTW_REDFT11`:离散余弦变换(DCT-IV)。
- `flags`:计算选项,可选值包括:
- `FFTW_ESTIMATE`:由FFTW根据计算量自动选择最佳算法。
- `FFTW_MEASURE`:由FFTW对可选算法进行计时,选择最优算法。
- `FFTW_PATIENT`:由FFTW对可选算法进行计时,并使用更多的算法进行优化。
- `FFTW_EXHAUSTIVE`:由FFTW尝试所有可用的算法,并选择最佳算法。
函数返回值为创建的计划对象的指针,用于后续的傅里叶变换操作。计划对象可以在使用完毕后通过`fftw_destroy_plan`函数进行销毁以释放内存。
阅读全文