下午好。
如果我在这个主题中游泳,我提前道歉 - 他们没有在大学教授傅里叶变换。
一般来说,我正在尝试用verilog编写一个吉他调音器。有一个音频编解码器可以以 8-96kHz 的采样率将声音数字化。有一个 FFT 块,您可以在其中配置它将需要多少点。我需要在 60-700Hz 的频率范围内获得 1Hz 的精度(或更好)。在这种情况下,希望具有最小延迟。据我了解,精度取决于采样率和 FFT 中的点数:error = fs/num_points。事实证明,为了使误差 <= 1 Hz,需要比采样频率多取点,即 从一秒钟开始仅用于采样。
这个过程可以加快吗?是的,我知道不确定性原理。
在使用 matlab 进行实验的过程中,我得出的结论是,可以从音频流中获取较少数量的点,然后用零填充其余的点——而不是准确度,频谱中的幅度会因此受到影响。在任何情况下,在一个音符及其泛音占主导地位的音频中都可以观察到这一结果。