我问这个问题是因为通常,输入数据(例如音频信号)是连续的数组块,在将它们输入 fft 例程之前,必须使用循环将数据结构从数组转换为 Complex(re, im) 数组
当输入数据没有虚部时,我们可以直接赋值或者使用memcpy,这样会节省很多时间。
\n\n为什么大多数 fft 库使用 Complex 结构而不是两个数组来表示虚部和实部
\n
通常提供采用某种复数类型数组而不是实数数组和虚数数组的 FFT 例程是为了方便编写使用复数类型的程序。采用实数数组和虚数数组的 FFT 例程在为高性能编写的例程中更为常见(因为减少了 SIMD 指令和高性能 FFT 实现的其他方面所需的操作)。
\n\n\n当输入数据没有虚部时,\xe2\x80\xa6
\n
要处理纯实数输入数据(没有虚数分量的数据),您应该寻找实数到复数的 FFT 例程,因为这通常比使用具有虚数分量的复数到复数的 FFT 例程提供更好的性能设置为零。
\n