.. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_lines_bars_and_markers_csd_demo.py: ======== CSD Demo ======== Compute the cross spectral density of two signals .. image:: /gallery/lines_bars_and_markers/images/sphx_glr_csd_demo_001.png :class: sphx-glr-single-img .. code-block:: python import numpy as np import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots(2, 1) # make a little extra space between the subplots fig.subplots_adjust(hspace=0.5) dt = 0.01 t = np.arange(0, 30, dt) # Fixing random state for reproducibility np.random.seed(19680801) nse1 = np.random.randn(len(t)) # white noise 1 nse2 = np.random.randn(len(t)) # white noise 2 r = np.exp(-t / 0.05) cnse1 = np.convolve(nse1, r, mode='same') * dt # colored noise 1 cnse2 = np.convolve(nse2, r, mode='same') * dt # colored noise 2 # two signals with a coherent part and a random part 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() .. _sphx_glr_download_gallery_lines_bars_and_markers_csd_demo.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download :download:`Download Python source code: csd_demo.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: csd_demo.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_