2015-01-31 5 views
2

파이썬이나 C에서 복잡한 표준 가우스 노이즈를 구현하고 싶습니다.이 그림은 구현하고자하는 것을 보여줍니다.2 변수 일반 가우스 노이즈는 어떻게 구현할 수 있습니까?

enter image description here

그리고 첫 번째 I는 다음과 같이, 파이썬에서 그것을 구현합니다.

import numpy as np 
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
import pylab as pl 

size = 100000 
BIN = 70 

x = np.random.normal(0.0,1.0,size) 
y = np.random.normal(0.0,1.0,size) 

xhist = pl.hist(x,bins = BIN,range=(-3.5,3.5),normed = True) 
yhist = pl.hist(y,bins = BIN,range=(-3.5,3.5),normed = True) 
xmesh = np.arange(-3.5,3.5,0.1) 
ymesh = np.arange(-3.5,3.5,0.1) 
Z = np.zeros((BIN,BIN)) 
    for i in range(BIN): 
    for j in range(BIN): 
     Z[i][j] = xhist[0][i] + yhist[0][j] 
X,Y = np.meshgrid(xmesh,ymesh) 
fig = plt.figure() 
ax = Axes3D(fig) 
ax.plot_wireframe(X,Y,Z) 
plt.show() 

그러나 표준 복합 가우스 노이즈는 아닙니다.

출력 그림이 될 :

enter image description here

그러나 나는, 왜 그렇게 다른되고, 가우스 소음 첨가제 생각?

은 이미 그러나, 결과는 동일

r = np.random.normal(0.0,1.0,size) 
theta = np.random.uniform(0.0,2*np.pi,size) 
x = r * np.cos(theta) 
y = r * np.sin(theta) 

에 코드

x = np.random.normal(0.0,1.0,size) 
y = np.random.normal(0.0,1.0,size) 

의 부분을 변경했습니다.

2 변형 표준 가우스 노이즈의 올바른 구현 또는 방정식을 알려주십시오.

답변

0

죄송합니다. 제 실수입니다.

합계 확률은 합계가 아닌 제품에 의해 정의됩니다. 나는 완벽한 바보 야!

그래서

Z[i][j] = xhist[0][i] + yhist[0][j] 

용어는

Z[i][j] = xhist[0][i] * yhist[0][j] 

가되어야합니다 그리고 1.0가 될 것

for i in range(BIN): 
    for j in range(BIN): 
     integral = integral + Z[i][j] * 0.01 

를 확인했습니다.

따라서 복잡한 표준 가우스 노이즈가 필요한 경우 실제 표준 가우스 노이즈를 실수 부분과 허수 부분에 추가해야합니다.

다음은 비교를위한 그래프입니다.

enter image description here

enter image description here