2

已经完成 fft(如果您有兴趣,请参阅之前的帖子!)并得到了结果,这对我有帮助。想分析一个数组的噪音/尖刺(实际上是一个 vb.nre 的集合)。嗯,怎么解释...

当信号良好时,fft 功率结果是 512 个数据点(频率桶),所有数据点(频率桶)的值都很低,但可能有 2 或 3 个数组条目,并且范围不错(即峰值很高,相对于几乎空桶中的噪声值) . 因此,当绘制图表时,我们在这几个桶中的值中有一个很好的大峰值。

当信号很差/嘈杂时,数据值的分布(最大值到最小值)很低,并且在更多的桶中存在成比例的更高噪声。

分析这个数据集的噪声有什么好处,计算量不大?某种统计方法、标准偏差或其他方法会有所帮助吗?

4

4 回答 4

1

关键是定义什么是噪声和什么是信号,必须对其进行建模假设。通常假设是由白噪声(每个频带的恒定功率)或某些其他功率谱的噪声做出的,并且该模型适合数据。然后可以使用信噪比来测量噪声量。

拟合噪声模型取决于数据的性质:如果您知道真实信号在高频分量中没有功率,您可以在那里寻找噪声水平的指示,并使用模型来预测噪声将处于同时存在信号和噪声的较低频率分量。或者,如果您的信号在时间上是恒定的,则在不同时间点进行多个 FFT 并比较它们以获得每个频带的标准偏差可以给出存在的噪声水平。

我希望我不会光顾您在执行 FFT 时提及窗口函数固有的问题:这些问题可能会在频谱中引入虚假“噪声”,这实际上是 FFT 周期性特性的产物。在获得尖峰和“边带”噪声之间需要权衡取舍——更多信息请参见 www.ee.iitm.ac.in/~nitin/_media/ee462/fftwindows.pdf

于 2008-09-30T12:45:04.850 回答
1

计算标准偏差,然后确定指示噪声的阈值。在实践中,这通常很容易,并且允许您根据需要轻松调整“噪声级别”。

Knuth 中有一个很好的单通道 stddev 算法。这是描述实现的链接。

标准差

于 2008-09-30T13:25:55.640 回答
0

计算信噪比 http://en.wikipedia.org/wiki/Signal-to-noise_ratio

您还可以检查每个点的标准差,如果它低于您选择的某个级别,那么信号是好的,否则不是。

于 2008-09-30T12:37:56.270 回答
0

尖峰不会被视为 SNR 中的噪声故障,是要丢弃的异常值吗?

如果从时域数据中可以清楚地看出存在这样的尖峰,那么它们肯定会在频谱中产生大量噪声。选择忽略它们是个好主意,但不幸的是,FFT 不能接受其中尖峰已被移除的带有“洞”的数据。有两种技术可以解决这个问题。“肮脏的技巧”方法是将异常样本设置为任一站点上两个样本的平均值,并使用完整的数据集计算 FFT。

更难但更正确的方法是使用 Lomb 归一化周期图(参见 WHPress 等人的“数字食谱”一书),它与 FFT 的工作类似,但可以正确处理丢失的数据。

于 2008-09-30T13:54:17.693 回答