Matplotlib.pyplot.csd() in Python (original) (raw)
Last Updated : 21 Apr, 2020
Matplotlib is a library in Python and it is numerical – mathematical extension for NumPy library. Pyplot is a state-based interface to a Matplotlib module which provides a MATLAB-like interface.
matplotlib.pyplot.csd() Function
The csd() function in pyplot module of matplotlib library is used to plot the cross-spectral density.
Syntax: matplotlib.pyplot.csd(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.pyplot.csd() function in matplotlib.pyplot:
Example #1:
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
plt.csd(s1, s2
*
*
2
,
128
,
1.
/
dt)
plt.xlabel(
'Frequency'
)
plt.ylabel(
'CSD(db)'
)
plt.title(
'matplotlib.pyplot.csd() function Example'
,
`` fontweight
=
"bold"
)
plt.show()
Output:
Example #2:
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)
plt.plot(t, s1, t, s2)
plt.xlim(
0
,
5
)
plt.ylabel(
's1 and s2'
)
plt.grid(
True
)
plt.show()
plt.csd(s1, s2,
256
,
1.
/
dt)
plt.ylabel(
'CSD(db)'
)
plt.xlabel(
'Frequency'
)
plt.title(
'matplotlib.pyplot.csd() function Example'
`` ,fontweight
=
"bold"
)
plt.show()
Output: