快速傅里叶变换中数据区间的影响

时间:2017-08-08 05:34:00

标签: algorithm math fft

我用5kHz采样对传感器数据进行了1分钟的采样。 因此,一个采样数据文件包括5,000 x 60 = 300,000个数据点。 请注意,传感器测量周期性数据,例如60Hz AC电流。

现在,我想将FFT(使用python numpy.rfft函数)应用于一个数据文件。 据我所知,FFT结果的数量是输入数据数量的一半,即在300,000个数据点的情况下产生150,000个FFT。 但是,FFT结果的数量太大而无法分析它们。

所以,我想减少FFT结果的数量。 关于这一点,我的问题是,给定一个采样数据文件,以下方法是否有效?

  1. 将一个采样数据文件分段为M段
  2. 对每个段应用FFT
  3. 平均M FFT结果以获得一个平均FFT结果
  4. 使用平均FFT结果作为给定一个采样数据文件的FFT结果
  5. 提前谢谢。

1 个答案:

答案 0 :(得分:4)

这取决于你的目的。

如果以5 kHz采样源信号,则最大输出元件的频率将对应于2.5 kHz。因此,对于150K输出长度,频率分辨率将约为0.017 Hz。如果将变换应用于3000个数据点,则会得到频率为1.7 Hz的freq.resolution。

这对你很重要吗?您是否需要注册交流电的所有可能频率成分?

AC质量(幅度,频率,噪声)可能在一分钟的间隔内发生变化。你需要注册这种不稳定吗?

也许,高频率。 AC控制不需要分辨率和短程时间稳定性,在这种情况下,您的方法非常好。

编辑:更长的间隔也会减少有限持续时间的信号窗口效应,从而产生错误的峰值

P.S。请注意,快速傅立叶变换通常(并非总是如此,我在rfft描述中看不到这样的方向)与interval length = 2^N一起使用,因此此处输出可能包含256K