0
現在,我使用Box-Muller方法在python中生成10 24個高斯隨機數。我應該繪製功率譜,並看到高斯曲線。我的代碼如下:使用Box-Muller方法在Python中生成高斯隨機數
import numpy as np
import matplotlib.pyplot as plt
def fast_fourier_transform(y):
'''Return the fast Fourier transform of y.'''
Y = np.fft.fft(y)
f = np.fft.fftfreq(len(y),1.0/1024)
return f,Y
rlist=[]
for i in range((2**10)/2):
mu=0
sigma=1
u = np.random.random()
v = np.random.random()
z1 = np.sqrt(-2.0 * np.log(u)) * np.sin(2.0 * np.pi * v)
z2 = np.sqrt(-2.0 * np.log(u)) * np.cos(2.0 * np.pi * v)
x1 = mu + z1 * sigma
x2 = mu + z2 * sigma
rlist.append(x1)
rlist.append(x2)
print u, v, x1, x2
f,Y=fast_fourier_transform(rlist)
plt.plot(f,Y)
plt.show()
但是,當我繪製這個,我沒有得到高斯分佈。我的問題是:爲什麼我在高斯生成的白噪聲功率譜中沒有得到高斯分佈?我是否策劃錯了什麼?先謝謝你。