产生一组(0,1)均匀分布的白噪声序列,画出其自相关函数和功率谱密度。
时间: 2024-03-18 22:40:55 浏览: 100
好的,下面是产生一组(0,1)均匀分布的白噪声序列的Python代码:
```python
import numpy as np
n = 1000 # 生成1000个采样点
noise = np.random.uniform(0, 1, n)
```
接下来,我们可以使用numpy库中的`correlate`函数来计算白噪声序列的自相关函数,并使用matplotlib库来绘制自相关函数图像:
```python
import matplotlib.pyplot as plt
acf = np.correlate(noise, noise, mode='full')
acf = acf[n-1:] # 取右半部分
acf /= np.max(acf)
plt.plot(acf)
plt.title('Autocorrelation Function')
plt.xlabel('Lag')
plt.ylabel('Correlation')
plt.show()
```
最后,我们可以使用scipy库中的`periodogram`函数来计算白噪声序列的功率谱密度,并使用matplotlib库来绘制功率谱密度图像:
```python
from scipy.signal import periodogram
f, psd = periodogram(noise)
psd /= np.max(psd)
plt.plot(f, psd)
plt.title('Power Spectral Density')
plt.xlabel('Frequency')
plt.ylabel('PSD')
plt.show()
```
完整代码如下:
阅读全文