为 FFT 准备音频数据

信息处理 声音的
2022-02-21 16:45:03

我想尝试来自麦克风的一些输入,并实时接收 2 通道、512 个样本缓冲区

我知道信号可以通过低通滤波器,然后在 FFT 之前加窗。

采样率为44100.00,需要什么低通滤波器,模数转换是否在转换之前不通过低通滤波器?

一个窗口究竟如何应用于 512 个样本的实时样本输入?窗口与过滤器不一样吗?

我还读到信号可以通过 FFT 运行两次,为什么要这样做?对于这些数据是否有必要?

我想慢慢建立它来进行频谱分析等。这是直接在 FFT bin 数据上完成的吗?

2个回答

我知道信号可以通过低通滤波器,然后在 FFT 之前加窗。

是的,可能是这样,通常建议使用窗户,但这些不仅仅是因为你听说过而盲目做的事情。低传递数据会以您可能不希望的方式改变它。它可能有用,也可能没有——取决于您的应用程序。它将减少 FFT 结果中表示的高频量。那是你要的吗?也许,也许不是。窗口化很有用,因为它可以减少(但不能消除)将数据分成块而导致的频域失真。通常你想要这样,但有取舍(我的解释过于简单化了)。

采样率为44100.00,需要什么低通滤波器,模数转换是否在转换之前不通过低通滤波器?

输入必须在数字转换之前进行过滤(通常这是为您完成的)。没有办法过滤后达到同样的效果,所以即使没有为你处理好,你也可以忘记它。不过,您的 DA 转换器可能在这方面做得不错。

一个窗口究竟如何应用于 512 个样本的实时样本输入?窗口与过滤器不一样吗?

如上所述,窗口和过滤器是不同的。

我还读到信号可以通过 FFT 运行两次,为什么要这样做?对于这些数据是否有必要?

你还没有真正告诉我们你想用这些数据做什么,但是不,做两次 FFT 是非常不寻常的。

我想慢慢建立它来进行频谱分析等。这是直接在 FFT bin 数据上完成的吗?

或多或少。我建议您阅读 Wikipedia 上的过滤、窗口化、傅立叶分析。这篇博文也可能有所帮助。

如果在您使用的 ADC 之前还没有 22 kHz(或更低)的低通滤波器(或在采样率的一半或以上不响应的麦克风或声源),那么您的数据可能已经包含混叠噪声.

该窗口不适用于您的实时样本输入缓冲区,但适用于 FFT 的输入,它可以具有不同的长度(例如,使用来自多个输入缓冲区的数据)。

如果 FFT 窗口重叠 50%,那么这可能是您阅读的内容说数据被处理两次的原因之一。