import numpy as np
import matplotlib.pyplot as plt
fig,(ax1,ax2) = plt.subplots(2,1)
#调整边距和子图的间距
fig.subplots_adjust(hspace=0.5)
dt = 0.01
t = np.arange(0,30,dt)
np.random.seed(19680801)
#创建两个白噪声
nse1 = np.random.randn(len(t))
nse2 = np.random.randn(len(t))
r = np.exp(-t/0.05)
#convolve是numpy函数中的卷积函数库
cnse1 = np.convolve(nse1,r,mode='same')*dt
cnse2 = np.convolve(nse2,r,mode='same')*dt
s1 = 0.01*np.sin(2*np.pi*10*t)+cnse1
s2 = 0.01*np.sin(2*np.pi*10*t)+cnse2
ax1.plot(t,s1,t,s2)
ax1.set_xlim(0,5)
ax1.set_xlabel('time')
ax1.set_ylabel('s1 and s2')
ax1.grid(True)
cxy,f = ax2.csd(s1,s2,256,1./dt)
ax2.set_ylabel('CSD(db)')
plt.show()
matplotlib学习——案例五:计算两个信号的互谱密度(Compute the cross spectral density of two signals)
最新推荐文章于 2023-09-04 20:32:41 发布