matplotlib.axes.Axes.csd#

Axes.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)[source]#

Plot the cross-spectral density.

The cross spectral density\(P_{xy}\) by Welch's averageperiodogram method. The vectorsx andy are divided intoNFFT length segments. Each segment is detrended by functiondetrend and windowed by functionwindow.noverlap givesthe length of the overlap between segments. The product ofthe direct FFTs ofx andy are averaged over each segmentto compute\(P_{xy}\), with a scaling to correct for powerloss due to windowing.

If len(x) <NFFT or len(y) <NFFT, they will be zeropadded toNFFT.

Parameters:
x, y1-D arrays or sequences

Arrays or sequences containing the data.

Fsfloat, default: 2

The sampling frequency (samples per time unit). It is used to calculatethe Fourier frequencies,freqs, in cycles per time unit.

windowcallable or ndarray, default:window_hanning

A function or a vector of lengthNFFT. To create window vectors seewindow_hanning,window_none,numpy.blackman,numpy.hamming,numpy.bartlett,scipy.signal,scipy.signal.get_window, etc. If afunction is passed as the argument, it must take a data segment as anargument and return the windowed version of the segment.

sides{'default', 'onesided', 'twosided'}, optional

Which sides of the spectrum to return. 'default' is one-sided for realdata and two-sided for complex data. 'onesided' forces the return of aone-sided spectrum, while 'twosided' forces two-sided.

pad_toint, optional

The number of points to which the data segment is padded when performingthe FFT. This can be different fromNFFT, which specifies the numberof data points used. While not increasing the actual resolution of thespectrum (the minimum distance between resolvable peaks), this can givemore points in the plot, allowing for more detail. This corresponds tothen parameter in the call tofft. The default is None,which setspad_to equal toNFFT

NFFTint, default: 256

The number of data points used in each block for the FFT. A power 2 ismost efficient. This shouldNOT be used to get zero padding, or thescaling of the result will be incorrect; usepad_to for this instead.

detrend{'none', 'mean', 'linear'} or callable, default: 'none'

The function applied to each segment before fft-ing, designed to removethe mean or linear trend. Unlike in MATLAB, where thedetrend parameteris a vector, in Matplotlib it is a function. Themlabmodule definesdetrend_none,detrend_mean, anddetrend_linear,but you can use a custom function as well. You can also use a string tochoose one of the functions: 'none' callsdetrend_none. 'mean' callsdetrend_mean. 'linear' callsdetrend_linear.

scale_by_freqbool, default: True

Whether the resulting density values should be scaled by the scalingfrequency, which gives density in units of 1/Hz. This allows forintegration over the returned frequency values. The default is True forMATLAB compatibility.

noverlapint, default: 0 (no overlap)

The number of points of overlap between segments.

Fcint, default: 0

The center frequency ofx, which offsets the x extents of theplot to reflect the frequency range used when a signal is acquiredand then filtered and downsampled to baseband.

return_linebool, default: False

Whether to include the line object plotted in the returned values.

Returns:
Pxy1-D array

The values for the cross spectrum\(P_{xy}\) before scaling(complex valued).

freqs1-D array

The frequencies corresponding to the elements inPxy.

lineLine2D

The line created by this function.Only returned ifreturn_line is True.

Other Parameters:
dataindexable object, optional

If given, the following parameters also accept a strings, which isinterpreted asdata[s] ifs is a key indata:

x,y

**kwargs

Keyword arguments control theLine2D properties:

Property

Description

agg_filter

a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image

alpha

float or None

animated

bool

antialiased oraa

bool

clip_box

BboxBase or None

clip_on

bool

clip_path

Patch or (Path, Transform) or None

color orc

color

dash_capstyle

CapStyle or {'butt', 'projecting', 'round'}

dash_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

dashes

sequence of floats (on/off ink in points) or (None, None)

data

(2, N) array or two 1D arrays

drawstyle ords

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, default: 'default'

figure

Figure orSubFigure

fillstyle

{'full', 'left', 'right', 'bottom', 'top', 'none'}

gapcolor

color or None

gid

str

in_layout

bool

label

object

linestyle orls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth orlw

float

marker

marker style string,Path orMarkerStyle

markeredgecolor ormec

color

markeredgewidth ormew

float

markerfacecolor ormfc

color

markerfacecoloralt ormfcalt

color

markersize orms

float

markevery

None or int or (int, int) or slice or list[int] or float or (float, float) or list[bool]

mouseover

bool

path_effects

list ofAbstractPathEffect

picker

float or callable[[Artist, Event], tuple[bool, dict]]

pickradius

float

rasterized

bool

sketch_params

(scale: float, length: float, randomness: float)

snap

bool or None

solid_capstyle

CapStyle or {'butt', 'projecting', 'round'}

solid_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

transform

unknown

url

str

visible

bool

xdata

1D array

ydata

1D array

zorder

float

See also

psd

is equivalent to settingy=x.

Notes

For plotting, the power is plotted as\(10 \log_{10}(P_{xy})\) for decibels, though\(P_{xy}\) itselfis returned.

References

Bendat & Piersol -- Random Data: Analysis and Measurement Procedures,John Wiley & Sons (1986)

Examples usingmatplotlib.axes.Axes.csd#

Cross spectral density (CSD)

Cross spectral density (CSD)