2013-11-02 1 views
0

Это может открыть банку червей или будет очень легко ответить: Я строю модель системы в Python: как я могу количественно добавить шум? До сих пор у меня это (ниже кода) -Python - шум моделирования в электрических системах

i. Могу ли я сделать это путем трансляции, даже для уникального шума, добавляемого к каждому образцу?

и

ii. Должен ли шум быть гауссовым или унифицированным для моделирования электрических сигналов? (Gaussian я думаю, хотя я не уверен)

import random 
import numpy as np 
import matplotlib.pyplot as plt 

f = 1e6 
T = 1/f 
pi = np.pi 
t = np.arange(0,20e-6,10e-9) 
# create signal and normalise 
y = np.sin(2*pi*f*t) 
y /= max(y) 

# add noise 
for i in range(0, len(y)): 
    noise = random.uniform(-1, 1)/10 **#10% noise added** 
    y[i] += noise 

plt.figure(1) 
plt.plot(t*1e6,y,'r-') 
plt.grid() 
plt.show() 

enter image description here

+0

В то время как я не знаком с электрическим шумом, шум обычно имеет тенденцию быть гауссовым, распределенным от среднего или ожидаемого значения. – Vulcan

+1

Тип шума зависит от того, какая система вызывает шум. Посмотрите здесь: http://en.wikipedia.org/wiki/Noise_(electronics) – hamon

+0

В чем проблема с вашим кодом? –

ответ

1

Судя по сигналу вы генерируемой это выглядит как ваш идти на вольт в зависимости от времени. В этом случае вы хотите добавить гауссовский шум.

Вы можете генерировать гауссовский шум, используя теорему о центральных границах. Просто создайте кучу случайных чисел (распределение не имеет значения), добавьте их вместе, сохраните результат. Повторите, что len (y) раз, а список результатов будет случайным, но гауссовским. Затем просто добавьте этот список в свой y-сигнал. Но, вероятно, есть предопределенная рутина, которая даст вам гауссовский шум.

Что касается выполнения этого более питонического метода, я ожидаю, что numpy будет иметь функцию добавления вектора.

 Смежные вопросы

  • Нет связанных вопросов^_^