Note
Go to the endto download the full example code.
Cross spectral density (CSD)#
Plot the cross spectral density (CSD) of two signals usingcsd.
importmatplotlib.pyplotaspltimportnumpyasnpfig,(ax1,ax2)=plt.subplots(2,1,layout='constrained')dt=0.01t=np.arange(0,30,dt)# Fixing random state for reproducibilitynp.random.seed(19680801)nse1=np.random.randn(len(t))# white noise 1nse2=np.random.randn(len(t))# white noise 2r=np.exp(-t/0.05)cnse1=np.convolve(nse1,r,mode='same')*dt# colored noise 1cnse2=np.convolve(nse2,r,mode='same')*dt# colored noise 2# two signals with a coherent part and a random parts1=0.01*np.sin(2*np.pi*10*t)+cnse1s2=0.01*np.sin(2*np.pi*10*t)+cnse2ax1.plot(t,s1,t,s2)ax1.set_xlim(0,5)ax1.set_xlabel('Time (s)')ax1.set_ylabel('s1 and s2')ax1.grid(True)cxy,f=ax2.csd(s1,s2,NFFT=256,Fs=1./dt)ax2.set_ylabel('CSD (dB)')plt.show()

Tags:domain: signal-processingplot-type: linelevel: beginner