对脑电信号进行FFT的Android理解代码

对脑电信号进行FFT的Android理解代码,android,fft,Android,Fft,我一直在试图找到一个库,可以在Android中对一些EEG信号执行FFT(快速傅立叶变换) 在Geobits的帮助下,我终于找到了可以帮助我对EEG信号进行FFT的方法。但是我很难弄清楚代码到底是如何工作的。我想知道浮点数组x和y的用途,也许还有一个例子可以帮我一点忙。fft应该返回一系列复数(可以是直角坐标,也可以是极坐标:相位和幅值),用于特定的频率范围 我还在研究表达式,但我敢打赌x和y数组是复数的实(x)和虚(y)分量,它们是转换的结果 这两个分量的平方和的绝对值应为每个频率下谐波分量的

我一直在试图找到一个库,可以在Android中对一些EEG信号执行FFT(快速傅立叶变换)


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

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

我还在研究表达式,但我敢打赌x和y数组是复数的实(x)和虚(y)分量,它们是转换的结果

这两个分量的平方和的绝对值应为每个频率下谐波分量的幅值(转换为极坐标)

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

见:

由于FFT对周期波形的谐波分解产生的无限级数进行了截断近似,因此可以使用任何周期波形来测试代码的功能

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

方波系数应为基频的奇数倍,其大小与谐波的阶数成反比


谢谢@Geobits我现在就看一下。但我是一名计算机系学生,不熟悉FFT,所以很难把算法弄清楚,如果你只想执行FFT,你不需要真正理解它。如果你想真正理解它,试试看。我只是对公共类FFT和公共无效FFT(double[]x,double[]y)的作用感到困惑?那么n,m,x和y的值代表什么呢?啊,你可能想读一读。构造函数中的
int n
应该是您想要的窗口大小(基本上是样本数、控制精度等)。x/y看起来像是对应于实部/虚部。