Я хотел бы добавить шум к детерминированному входу.
например,
# Input stimulus
def stim(t):
if 0.0 < t < 1.0:
return 50.0
return 0.0
эта функция возвращает импульс в течение первой миллисекунды - но я бы хотел добавить случайный шумовой сигнал
, когда я делаю это таким образом
среднее = 0 стандарт = 1
# Input stimulus
def stim(t):
if 0.0 < t < 1.0:
return 50.0 + np.random.normal(mean,std)
return 0.0
тогда я действительно получаю процесс белого шума вдоль всей оси ??но я просто добавляю одно случайное число, а не процесс по всем т.
Цель состоит в том, чтобы оценить влияние входного белого шума на общее напряжение мембраны V (t), которое рассчитывается в системе ОДУ..
def compute_derivatives(y, t0):
dy = np.zeros((4,))
Vm = y[0]
n = y[1]
m = y[2]
h = y[3]
# dVm/dt
GK = (gK / Cm) * np.power(n, 4.0)
GNa = (gNa / Cm) * np.power(m, 3.0) * h
GL = gL / Cm
dy[0] = (stim(t0) / Cm) - (GK * (Vm - VK)) - (GNa * (Vm - VNa)) - (GL * (Vm - Vl))
# dn/dt
dy[1] = (alpha_n(Vm) * (1.0 - n)) - (beta_n(Vm) * n)
# dm/dt
y[2] = (alpha_m(Vm) * (1.0 - m)) - (beta_m(Vm) * m)
# dh/dt
dy[3] = (alpha_h(Vm) * (1.0 - h)) - (beta_h(Vm) * h)
return dy
# State (Vm, n, m, h)
Y = np.array([0.0, n_inf(), m_inf(), h_inf()])
# Solve ODE system
# Vy = (Vm[t0:tmax], n[t0:tmax], m[t0:tmax], h[t0:tmax])
Vy = odeint(compute_derivatives, Y, T)
Как добавить шумовой сигнал и как оценить влияние?может быть с RMS-амплитудой вдоль t?