6

我一直在尝试找到一个能够对 Android 中的某些 EEG 信号执行 FFT(快速傅立叶变换)的库。

在 Geobits 的帮助下,我终于找到了可以帮助我对 EEG 信号进行 FFT的代码。但是我很难弄清楚代码实际上是如何工作的。我想知道浮点数组 x 和 y 的用途,也许还有一个可以帮助我更多的例子。

4

1 回答 1

3

一个 fft 应该为特定的频率范围返回一系列复数(可以是直角坐标,也可以是极坐标:相位和幅度)......

我仍在研究表达式,但我会向甜甜圈打赌,x 和 y 数组是作为转换结果的复数的实数 (x) 和虚数 (y) 分量。

这两个分量的平方和的绝对值应该是每个频率的谐波分量的幅度(转换为极性)。

如果相位对您的应用很重要,请记住 FFT(与任何相量一样)可以是正弦参考或余弦参考。但是,我相信正弦是标准。

看:

http://www.mathworks.com/help/matlab/ref/fft.html

http://mathworld.wolfram.com/FastFourierTransform.html

由于 FFT 对由周期性波形的谐波分解创建的无限级数提供了截断的近似值,因此任何周期性波形都可用于测试代码的功能。

例如,方波应该易于复制,并且具有众所周知的谐波系数。数据集的分辨率将决定您可以计算的谐波数量(大多数 fft 算法最适合长度等于 2 的幂的数据集,并且是您可以计算的最长频率的整数波长数想用)。

方波系数应该是基频的奇数倍,并且幅度与谐波的阶数成反比。

http://en.wikipedia.org/wiki/Square_wave

于 2012-11-01T16:05:25.417 回答