在不降低 FFT 大小的情况下提高 FFT 时间分辨率的方法

信息处理 fft 信号分析 信号检测 时频 解析度
2022-02-18 07:35:31

众所周知,在 FFT 中,时间分辨率和频率分辨率成反比,如果 FFT 分辨率提高,时间分辨率就会降低。但是,是否有可能通过重叠 FFT 等方法来克服时间分辨率问题,并且在所有其他参数(如采样频率)固定的情况下,理论上可能有多少?

编辑:问题的可视化如下所示:

在此处输入图像描述

将执行上述信号的 STFT,并以尽可能高的精度估计脉冲的开始。此外,当在上面的信号中添加显着噪声时,时域中的结果信号如下所示:

在此处输入图像描述

现在可以通过在重叠窗口开始向左滑动超过第 200 个样本时进行 FFT 来确定信号的存在,但是即使信号被掩埋在噪声中,仍然可以确定信号的确切开始位置吗?

4个回答

是的。加窗会降低频率分辨率,因此会增加时间分辨率。作为时间分辨率的倒数的分辨率带宽在 fred harris 的经典论文“On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform”中得到了很好的列表。此外,您可以使用以下公式直接计算任何窗口的分辨率带宽:

B=N(w[n]2)(w[n])2

在哪里B是 bin 中的等效噪声带宽,并且w[n]是窗口值,长度等于 FFT。

OP 已澄清目标是及时确定脉冲的起始沿。我假设在其他频率存在其他显着噪声或干扰的情况下,脉冲的带宽受到限制,因此使用 FFT 作为对感兴趣信号进行频带滤波的方法的动机。为了确定时域特征,我建议使用时域技术而不是频域技术。具体考虑使用时域带通滤波器来选择感兴趣的频率范围,然后从时域中的滤波结果中,可以通过对脉冲幅度的阈值检测轻松确定脉冲开始的时间位置。

该方法的进一步细节、考虑和建议如下:

使用线性相位滤波器,以便可以轻松去除/补偿滤波器引入的延迟,并且不会导致任何信号失真(对于线性相位滤波器,延迟只是系数数量的一半)。

滤波器的带宽会影响最终脉冲的上升时间,因此需要权衡时间精度和噪声。例如,如果脉冲本身是矩形的,这将需要无限带宽,这也会将最大量的噪声引入到我们可能无法检测到噪声中的任何信号的地步。当我们减小带宽时,上升时间会增加,噪声会降低,但较慢的上升时间会给我们在存在噪声时我们称为“脉冲开始”的实际时间事件带来更多不确定性。作为指导,10% 到 90% 的上升和下降时间与带宽之间的关系是:

tr=0.35BW

在哪里tr是以秒为单位的 10% 到 90% 上升时间(或 90% 到 10% 下降时间),并且BR是以赫兹为单位的带宽。这专门针对一阶系统,但对于高阶系统也大致适用。

是否可以通过重叠 FFT 等方法来克服时间分辨率的问题

是和不是。您当然可以通过更多重叠来提高时间分辨率,但这只会导致插值而不是附加信息

答案取决于您对信号的假设和事实,以及您在使用“分辨率”一词时的真正要求。如果信号是静止的,具有被显着降低的本底噪声包围的孤立谱峰,则如果满足这些假设,则可以提高谱峰估计分辨率。但是,如果不满足这些要求,您将得到虚假的结果(例如,如果您试图解析紧密间隔的光谱峰、高度变化的时间光谱或隐藏在噪声中的感兴趣的光谱,则将无法工作)。

如果信号满足上述要求,则您可以使用 Sinc(或窗口变换)插值在单个 FFT 的 FFT 结果箱之间插值频谱峰值。或者,您可以使用具有重叠 FFT 结果集的相位声码器分析或频谱重新分配算法来提高频谱峰值估计精度(例如更高分辨率的频谱图)。重叠 FFT 帧之间的幅度和相位差提供了信息增益(假设跨这些重叠的频谱平稳)。

对于给定 FFT 长度的更多时间分辨率,您始终可以使用更窄的窗口,或者是具有更窄主瓣的相同长度的窗口,或者是在一个或两个尺寸上具有零填充的更短窗口。但是对于较窄的窗口,如果您不想丢失信息或错过 FFT 帧之间的事件,则可能需要更多的帧重叠。

如果您无法在原始捕获中更多地重叠帧,但仍需要更多时间分辨率,则始终可以对每个帧进行 IFFT,制作副本,然后使用较窄窗口的不同子偏移量对每个副本进行 FFT。

至于理论上可能有多少,对于零噪声的单个纯正弦曲线,您可以仅使用 3 或 4 个非混叠样本来估计其所有参数,分辨率误差受算术和采样量化的限制。

检测带有加性噪声的恒定频率正弦波的开始可能可以通过使用最长可能长度(可接受的延迟或最小预期音调持续时间)的匹配滤波器(使用正弦作为相关器模板)来完成,然后是一些摆弄以避免由于正弦周期而在+T,+2T等处重复注册。

我看不出你怎么能做得比这更好。