在低频但高分辨率下执行 FFT?

电器工程 信号处理 数学 fft 数字滤波器
2022-01-10 20:40:46

为了说明这一点,我希望通过 FFT 实现高速和高精度测量生物信号。我将描述一个简单的例子,看看我是否正确理解这一点并说明我的问题。因此,如果我正确地做到了这一点,如果我想采用低频 FFT,例如频率 0-64 Hz,为了满足 Nyquist 标准,我的采样频率必须至少是其两倍,即 128 Hz。然后,如果我想要 1 Hz 的频率分辨率到一个 bin,我需要 64 个 bin,这将使我有 128 个样本,因为既有实部又有虚部。因此,为了达到 1 Hz 的分辨率,我会看到只有 128 Hz 的采样率,同时需要采集 128 个样本,

最终,这引出了我真正的问题:在低频下,是否有可能在保持一定速度的同时进行高分辨率 FFT(比如每个 bin 1 或 2 Hz)?还是由于转换的限制,这根本不可能?如果是这样,在分辨率和速度之间是否有一些替代方法或某种妥协?顺便说一句,我不久前读了一篇关于过采样和丢弃某个点(或类似的东西,抱歉是不久前)的样本以加快采样过程的文章。也许有人知道那是什么(或者我现在只是在漫无边际)。无论哪种方式,感谢您提前提供的任何帮助。

4个回答

我假设“高速”是指从数据收集到产生的 FFT 的一小段延迟。在低采样率的情况下,考虑到现代计算机,您的计算能力并不是限制因素。延迟问题在于有足够的数据进行分析。如果您希望您的 1Hz bin 与 DC/0Hz 不同,您必须积累足够的信号数据来捕获该信号的完整周期。这就是为什么对于固定的采样率,较长的 FFT 可以为您提供更高的频率分辨率。

因此,对于非常低的频率,您的低采样率 (128Hz) 意味着只需几个样本即可区分这些频率:128 点 FFT 将具有 1Hz 分辨率,而 256 点 FFT 将具有 0.5Hz 分辨率。问题在于获取这些数据。以 128Hz 的采样率累积 256 个点需要整整 2 秒。为了更快的 FFT 更新率,您可以重复使用样本:将 32 个样本作为数据块,然后使用最近的 8 个块计算 256 点 FFT。然后,当您有 32 个新样本时,您可以丢弃最旧的样本并每秒更新 FFT 4 次。

本质上,您已经遇到了创建频谱图所需的权衡:您必须在频率分辨率和时间局部性之间进行选择。(此处的MATLAB 活动和示例)更高的频率分辨率需要更多的样本,从而使您的 FFT 代表很长的时间跨度。使用较短的时间意味着使用较少的样本,从而降低 FFT 频率分辨率。您必须选择在您的应用程序中哪个更重要。

通常需要在每个波形周期采集多个样本才能从 FFT 中获得良好的结果。每个周期 2 个样本的奈奎斯特限制是一个下限,但通常每个周期 10 个或更多样本是实际使用的。因此,要分析 64Hz 信号,您可能需要以 640Hz 或更高的速率采集样本。

此外(在某种程度上),如果您获取多个波形周期的样本,您将在测量实际周期信号时获得更好的结果。您需要确定对您的应用程序最有意义的窗口大小,但要捕获 1Hz 信号,我建议捕获大约 10 秒的数据。

所以基本上你需要以相对于你的最高频率的高速率和相对于你的最低频率的很长时间来获取样本,以获得良好的结果。这要求将存在某种处理延迟,该延迟将是您的最低频率周期的倍数。但是,这并不妨碍您在每个采样时间执行一次该处理。

因此,如果您想分析信号随时间变化的频率分量,并且您想查看高速 FFT 的样子,那么您可以获取所需的任意数量的样本。运行 FFT。将所有样本移动 1 个位置,然后在下一个采样时间再次进行 FFT。

示例:
1) 以每秒 819.2 个样本进行采样,时间窗口为 10 秒。
2) 让样本累积 10 秒(总共 8192 个样本)
3) 对 8192 个样本运行 FFT。
4) 丢弃缓冲区中的第一个样本,并保留其他 8191 个样本将它们移动超过 1 个位置。
5) 1/819.2 秒后将下一个样本添加到缓冲区末尾并重新运行 FFT。
6) 重复步骤 4-6,直到完成分析。

这将为您提供每秒 819.2 次分析数据滑动窗口的 F​​FT

该示例所需的处理能力约为每秒 13*8192*819.2 次乘法累加操作(8700 万个 MAC/秒)。一台普通的 PC 可以轻松处理这个问题。您当然可以通过只运行 N 个样本的 FFT 将处理能力降低 N 倍(例如,每 8 个样本运行一次只需要每秒 11M 个 MAC)。

现代 DSP 船可以轻松处理您描述的功能;如果您每秒仅采样 128 次,您可以轻松地对每个样本进行 FFT,并在每个 FFT 移动一个样本。

如果您唯一的工具是锤子,那么每个问题看起来都像钉子。我认为您不了解 FFT 实际上是什么。它是 DFT(离散傅里叶变换)的快速实现。DFT 是一种用于分析具有周期性分析间隔的离散信号的分析工具。

对于真实世界的信号(除了分析电机信号或其他旋转机器),您的测量间隔实际上不会对应于信号的周期性。

结果,“频率箱”变得毫无意义,仅对应于通过窗口伪影和扩频镜头的信号的实际特征。

虽然 FFT 的效率及其基函数与线性移位不变系统的特征函数的关系使得许多基于频率的工具的工作很可能最终成为 FFT,用术语解释原始结果几乎可以肯定,“频率箱”最多只能与现实松散相关。

如果它是您尝试跟踪/表征的单个信号,那么基于 LPC 系数的东西可能会更好。