作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Chris Lomont 非常友好地为我们提供了使用 C# 的简洁 FFT 实现。出处可见here . RealFFT(double[] data, bool forward)
函数执行了一半,请阅读函数摘要(很短:))。
我正在使用 RealFFT
函数,如前所述(函数摘要),它接受一个样本数组,所有样本都是实值(没有虚部)。但是,它还指出,前两个条目之后的输出是复数值,交替存储在实部和虚部中。
我似乎无法弄清楚这一点。进行 FFT 后,您总是会得到实部和虚部。那么如何将它们打包到作为参数函数的数组中(这是一半大小,因为只有实数)?
最佳答案
来自 Wikipedia :
对于纯实数输入,X(k) = X(N-k)*;因此你只需要给出一半的组件(另一半基本相同,但它们是复共轭)。
所以不计算和存储它们是有效的;如果你真的需要这些值,你可以使用上面的公式来计算它们。
声明(在您上面链接的代码的注释中)暗示了这一点:
// The first two returned entries are the real
// parts of the first and last value from the conjugate symmetric
// output, which are necessarily real. The length must be a power
// of 2.
关于c# - Chris Lomont 的 C# FFT - 它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867584/
Chris Lomont 非常友好地为我们提供了使用 C# 的简洁 FFT 实现。出处可见here . RealFFT(double[] data, bool forward) 函数执行了一半,请阅读
我是一名优秀的程序员,十分优秀!