DST 使用 FFT 例程

计算科学 fftw
2021-12-01 03:54:36

请问你能帮我解决我的问题吗?在维基百科上,在离散正弦变换文章中,这是这样写的(计算章节):

虽然这些公式的直接应用需要 O(N2) 操作,但可以仅用 O(N log N) 复杂度计算相同的东西通过对类似于快速傅立叶变换 (FFT) 的计算进行因式分解。(也可以通过 FFT 结合 O(N) 预处理和后处理步骤来计算 DST。

我想计算正弦离散傅立叶变换,并且想要为此使用 FFT 算法。我与输入序列有什么关系,以便通过离散正弦傅立叶变换转换数据?添加零,我想?

2个回答

FFTW 可以使用某些选项来做到这一点RODFT00:等。除非您有非常特殊的需要,否则调用 FFTW 之类的库可能比自己编写代码更好。

FFTW 的替代方案可能是使用英特尔 MKL(mkl_trig_transforms.h特别是 )。在那里实现了各种三角变换,此外,还可以使用 FFTW3 的包装器接口。

我也会加入 Bill Barth 的观点,即调用高性能优化库比自己编写代码要好得多。除非您特别有兴趣了解某个转换是如何完成的。