如何从测量数据的 FFT 确定 SNR?

信息处理 fft 噪音 信号检测 信噪比
2022-02-01 16:44:45

我正在做阻抗测量,我对测试电流进行频率扫描,然后测量产生的电压。离线时,我计算电压和电流的 FFT,并且我想确保电压高于“本地”本底噪声。我不在乎测试频率的信号是否不是最大的,只要它高于“本地”本底噪声。

下面是一个可接受的信号示例。红点是感兴趣的频率。有些分量至少比感兴趣的频率大 20dB,但感兴趣的频率比“本地”本底噪声高约 20dB。

示例 1 - 可接受

示例 1

下面是我想提醒的第二个例子。它似乎比本底噪声高 10dB 左右,但放大后您可以看到另一个分量太近了。

示例 2 - 有问题

示例 2

示例 2(放大) - 有问题

示例 2(放大)

到目前为止,我的想法是在 FFT 上进行峰值检测(即每个波瓣的峰值处的一个点),然后再次对峰值进行峰值检测,并查看感兴趣的频率是否是局部峰值。如果是这样,我报告的“SNR”是感兴趣的分量(以 dB 为单位) - 最接近的峰峰值(以 dB 为单位)。

有人对计算“本地信噪比”的好方法有建议吗?

2个回答

感谢您的建议。我最终只挑选了附近最大的峰值,如果感兴趣的频率和最大峰值之间的差异小于 10dB,则保存一个图以供手动检查。我发现很难区分可能是“好”或“坏”数据的所有不同场景。

如果您知道信号形状,那么您通常可以通过维纳滤波器运行它。OTOH:您确实意识到,如果噪声是随机的并且信号是一致的,那么某种形式的平均会改善 SN?