【问题标题】:RMS amplitude of gaussian white noise高斯白噪声的 RMS 幅度
【发布时间】:2019-06-11 16:54:26
【问题描述】:

我想计算高斯白噪声信号的 RMS 幅度。

import matplotlib.pyplot as plt
import numpy as np

mean = 0
std = 1.0

t = 100

def zv(t):
    return np.random.normal(mean, std, size = t)

def rms(x):
    return np.sqrt(np.mean(zv(x)**2))

plt.plot(zv(t))

plt.plot(rms(t))

zv(t) 的情节有效 - 但我不知道为什么 rms(t) 的情节只是空的。

你有一些cmets吗?

最好的问候

【问题讨论】:

    标签: python numpy matplotlib probability-theory


    【解决方案1】:

    zv(t) 返回大小为t 的一维数组。结果,当你取平均值时,它是一个单一的值。您可以通过打印出rms(t) 的值来验证这一点。如果您想为rms 创建沿t 的图,则需要生成多个蒙特卡罗样本。例如,

    def zv(t):
        n = 1000
        return np.random.normal(mean, std, size = (n, t))
    
    def rms(x):
        return np.sqrt(np.mean(zv(x)**2, axis = 0))
    

    【讨论】:

    • 非常感谢 - 现在它可以工作了,但它看起来非常适合 zv 的情节......我想调查一下,如果 rms 幅度与 sqrt(t) 成正比增长 - 因为布朗运动的 rms 位移就是这样的
    • 也许通过总结随机变量并评估每一步的均方根幅度?
    • 基于生成随机数的方法,它们在每个时间步都是独立的,我不希望t 有任何变化。您可能需要提供不同的随机数生成,以更好地代表您的物理问题。
    • 但随机游走的均方根 diosplacement 与时间步长的平方根成正比?
    • 这是一个新的和不同的问题,超出了这个问题的范围。我只能根据你提供的代码示例告诉你它在 python 中是如何工作的。
    猜你喜欢
    • 2016-02-07
    • 2011-09-12
    • 2013-10-14
    • 2015-02-04
    • 1970-01-01
    • 2014-08-26
    • 2016-08-17
    • 1970-01-01
    • 2016-12-20
    相关资源
    最近更新 更多