Open In App

Matplotlib.axes.Axes.csd() in Python

Last Updated : 13 Apr, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Matplotlib is a library in Python and it is numerical – mathematical extension for NumPy library. The Axes Class contains most of the figure elements: Axis, Tick, Line2D, Text, Polygon, etc., and sets the coordinate system. And the instances of Axes supports callbacks through a callbacks attribute.

matplotlib.axes.Axes.csd() Function

The Axes.csd() function in axes module of matplotlib library is used to plot the cross-spectral density.

Syntax: Axes.csd(self, x, y, NFFT=None, Fs=None, Fc=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None, return_line=None, *, data=None, **kwargs)

Parameters: This method accept the following parameters that are described below:

  • x, y: These parameter are the sequence of data.
  • Fs : This parameter is a scalar. Its default value is 2.
  • window: This parameter take a data segment as an argument and return the windowed version of the segment. Its default value is window_hanning()
  • sides: This parameter specifies which sides of the spectrum to return. This can have following values : ‘default’, ‘onesided’ and ‘twosided’.
  • pad_to : This parameter contains the integer value to which the data segment is padded.
  • NFFT : This parameter contains the number of data points used in each block for the FFT.
  • detrend : This parameter contains the function applied to each segment before fft-ing, designed to remove the mean or linear trend {‘none’, ‘mean’, ‘linear’}.
  • scale_by_freq : This parameter is allows for integration over the returned frequency values.
  • noverlap : This parameter is the number of points of overlap between blocks.
  • Fc : This parameter is the center frequency of x.
  • return_line : This parameter include the line object plotted in the returned values.

Returns: This returns the following:

  • Pxy:This returns the values for the cross spectrum P_{xy} before scaling.
  • freqs :This returns the frequencies for the elements in Pxy.
  • line :This returns the line created by this function.

The resultant is (Pxy, freqs, line)

Below examples illustrate the matplotlib.axes.Axes.csd() function in matplotlib.axes:

Example-1:




# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
  
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t))
nse2 = np.random.randn(len(t))
  
s1 = 1.5 * np.sin(2 * np.pi * 10 * t) + nse1
s2 = np.cos(np.pi * t) + nse2
  
fig, ax1 = plt.subplots()
ax1.csd(s1, s2**2, 128, 1./dt)
ax1.set_xlabel('Frequency')
ax1.set_ylabel('CSD(db)')
  
ax1.set_title('matplotlib.axes.Axes.csd() Example')
plt.show()


Output:

Example-2:




# Implementation of matplotlib function
import numpy as np
import matplotlib.pyplot as plt
   
dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t))
nse2 = np.random.randn(len(t))
r = np.exp(-t / 0.05)
   
cnse1 = np.convolve(nse1, r, mode ='same')*dt
cnse2 = np.convolve(nse2, r, mode ='same')*dt
   
s1 = 1.5 * np.sin(2 * np.pi * 10 * t) + cnse1
s2 = np.cos(np.pi * t) + cnse2 + np.sin(2 * np.pi * 10 * t)
   
fig, [ax1, ax2] = plt.subplots(2, 1)
ax1.plot(t, s1, t, s2)
ax1.set_xlim(0, 5)
ax1.set_ylabel('s1 and s2')
ax1.grid(True)
   
ax2.csd(s1, s2, 256, 1./dt)
ax2.set_ylabel('CSD(db)')
ax2.set_xlabel('Frequency')
   
ax1.set_title('matplotlib.axes.Axes.csd() Example')
plt.show()


Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads