我有实验数据,包含一个具有二次和三次谐波的正弦波(具有偏移)的一个周期的1253个点,并且我试图应用Excel的FFT特征。因为FFT需要2 ^ n个数据点,我必须通过首先删除每第6行然后删除每52行留下1023个点来截断初始数据集,所以我只是将最后一行加倍以获得所需的1024个数据点。因此,我丢失了229分,不知道还能做什么(用零填充看起来似乎不合理,因为它增加了一个阶梯函数,这对于原始数据集的修改来说更不可取)。现在,当我对这样截断的数据集进行FFT时,我看到0Hz处的峰值,这是由于偏移和基频处的峰值。如何获得二次和三次谐波的峰值,并且有没有办法,例如通过使用宏,在所有实验获得的1253点上进行傅里叶变换,而不是FFT?感谢。
答案 0 :(得分:0)
如果您要删除任何数据点,那么它们应该位于数据的开头和/或结尾(即不要尝试手动抽取数据 - 只需截断它)。可能更好的方法是用额外的零填充数据到下一个2(2048)的幂。
接下来,您需要应用window function,例如汉恩,以尽量减少spectral leakage。这将减少数据开始/结束时任何不连续性的影响。 (注意,对于零填充数据,窗口函数在填充之前应用。)
在FFT之后,您需要计算前N / 2个复数输出区间的大小(sqrt(real*real+imag*imag
))。
如果基本峰值位于bin N
,那么二次和三次谐波将位于二进制位2*N
和3*N
。