查找频谱中的 RMS 噪声

Finding RMS noise in a spectra

我有一个强度 v/s 速度谱,我的目标是在不包括存在峰值的通道的频谱中找到 RMS 噪声。

所以,经过一些研究,我知道RMS噪声与频谱的标准差相同,信号的信噪比是信号的平均值除以相同的标准偏差。如果我在这里错了,有人可以告诉我吗?

这就是我在 python

中的编码方式
def Average(data):
    return sum(data) / len(data)
average = Average(data)
print("Average of the list =", average)
standardDev = data.std()
print('The standard deviation is',standardDev)
SNR = average/standardDev
print('SNR = ',SNR)

我的原始数据点是:

x-axis(velocity) :

 [-5.99999993e+04 -4.99999993e+04 -3.99999993e+04 -2.99999993e+04
 -1.99999993e+04 -9.99999934e+03  6.65010004e-04  1.00000007e+04
  2.00000007e+04  3.00000007e+04  4.00000007e+04  5.00000007e+04
  6.00000007e+04  7.00000007e+04  8.00000007e+04  9.00000007e+04
  1.00000001e+05  1.10000001e+05  1.20000001e+05  1.30000001e+05
  1.40000001e+05]

y-axis (data):

 [ 0.00056511 -0.00098584 -0.00325616 -0.00101042  0.00168894 -0.00097406
 -0.00134408  0.00128847 -0.00111633 -0.00151621  0.00299326  0.00916455
  0.00960554  0.00317363  0.00311124 -0.00080881  0.00215932  0.00596419
 -0.00192256 -0.00190138 -0.00013216]

如果我想测量不包括存在线条的通道的标准偏差,我是否应该排除从 y[10] y[14] 的值,然后计算标准偏差?

  1. 是的,既然要确定噪声的一些属性,就应该排除不构成噪声的点。如果这些是第 10 到 14 点 - 排除它们。
  2. 然后计算剩余 y 值(强度)的平均值。但是,根据您的数据和拟合函数 a * exp(-(x-c)**2 / w),可以推断出该平均值的理论值仅为零。如果是这样,平均值只是验证您的实验/理论的一种方法(“我们已经获得几乎为零,正如预期的那样)并使用 0 作为真正的平均值。然后,噪声水平将达到第二个的平方根矩,E(Y^2).
  3. 您应该将代码中的 stddev 与二阶矩的平方根进行比较,它们应该彼此相似,非常相似,以至于您选择其中的哪一个作为噪声值都无关紧要。
  4. SNR,信噪比部分,你的推导是错误的。信号就是信号,即-它是从拟合中得到的高斯振幅。您将它除以噪声水平(二阶矩的平方根,或 stddev)。在我看来,您应该获得一个介于 2 和大约 10 之间的值。
  5. 最后,请记住这是一个 public 论坛,有些人阅读它可能会对问题和答案感到困惑:两者都是基于之前的问题 应该在问题本身中被提及。
  6. 如果这是一项大学作业,并且您处理的是真实的实验数据,请记住目的。想象自己是一名科学家,要说服其他人这是一个真实的信号,比如来自外星人的信号,而不仅仅是大自然母亲随机掷骰子的不稳定结果。这是信噪比的主要目的。