Среднеквадратичная амплитуда гауссовского белого шума - PullRequest
0 голосов
/ 11 июня 2019

Я хотел бы вычислить среднеквадратичную амплитуду сигнала гауссовского белого шума.

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) просто пуст.

У вас есть комментарии?

С наилучшими пожеланиями

1 Ответ

1 голос
/ 11 июня 2019

zv(t) возвращает одномерный массив размером t. В результате, когда вы берете среднее значение, это одно значение. Вы можете убедиться в этом, распечатав значение rms(t). Если вы хотите создать график вдоль t для rms, вам необходимо сгенерировать несколько образцов Монте-Карло. Например,

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))
...