【发布时间】:2020-05-30 01:08:02
【问题描述】:
我正在使用 fft-js 对由两个简单正弦波组成的波执行 fft。样本数为 512,运行时间为 16 秒。所以采样频率为 32Hz。当查看结果频率时,它会上升到 15.9375,而不是采样频率除以二(16 Hz)。为什么会这样?有没有办法将采样频率除以二?
【问题讨论】:
-
fs / 2 处的信息通常没有用,因为它是奈奎斯特频率,并且您的抗混叠滤波器会显着降低幅度。
-
您的问题提出得当且合法。 FFT 会给你一个你期望的结果,但这可能取决于实现(总是先尝试更高级别的环境来检查数学,比如 Mathematica、matlab、numpy)。检查您是否有 -16 Hz 的频率仓。由于 FFT 回绕,这是要使用的值。
-
次要问题。从技术上讲,
sampling rate是 32 Sa/sec。最好不要使用术语sampling frequency,因为我们采样的最高频率是 16 Hz。 -
16-15.9375 = 0.0625。 1/0.0625= 16。所以你怀疑是对的,程序只给了你第 (n-1) 个频率。
-
我们只能采样低于一半采样频率的频率。恰好处于采样频率一半的信号出现混叠。
标签: javascript fft frequency