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)[源代码][源代码]#

绘制交叉谱密度。

通过Welch的平均周期图法计算的交叉谱密度 \(P_{xy}\) 。向量 xy 被分成 NFFT 长度的段。每一段通过函数 detrend 去趋势,并通过函数 window 加窗。noverlap 给出了段之间的重叠长度。xy 的直接FFT的乘积在每一段上进行平均,以计算 \(P_{xy}\) ,并进行缩放以校正由于加窗导致的功率损失。

如果 len(x) < NFFT 或 len(y) < NFFT,它们将被零填充至 NFFT

参数:
x, y一维数组或序列

包含数据的数组或序列。

Fsfloat, 默认值: 2

采样频率(每时间单位的样本数)。它用于计算傅里叶频率,freqs,以每时间单位的周期数表示。

window : 可调用对象或数组, 默认: window_hanning可调用对象或ndarray,默认值:

一个函数或长度为 NFFT 的向量。要创建窗口向量,请参见 window_hanning, window_none, numpy.blackman, numpy.hamming, numpy.bartlett, scipy.signal, scipy.signal.get_window 等。如果将函数作为参数传递,它必须接受一个数据段作为参数,并返回该段的窗口化版本。

侧面{'default', 'onesided', 'twosided'}, 可选

要返回频谱的哪一侧。'default' 对于实数数据是单侧的,对于复数数据是双侧的。'onesided' 强制返回单侧频谱,而 'twosided' 强制返回双侧频谱。

pad_toint, 可选

执行FFT时数据段填充的点数。这可以与指定使用的数据点数的*NFFT*不同。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但这可以在图中提供更多点,从而允许更多细节。这对应于调用`~numpy.fft.fft`时的*n*参数。默认值为None,这将*pad_to*设置为等于*NFFT*。

NFFTint, 默认值: 256

用于每个块中FFT的数据点数量。最有效的是2的幂。这*不应该*用于获取零填充,否则结果的缩放将不正确;为此应使用*pad_to*。

去趋势{'none', 'mean', 'linear'} 或可调用对象,默认值:'none'

在fft之前应用于每个片段的函数,设计用于去除均值或线性趋势。与MATLAB中*detrend*参数是一个向量不同,在Matplotlib中它是一个函数。mlab`模块定义了.detrend_none`、detrend_mean`和.detrend_linear`,但你也可以使用自定义函数。你也可以使用字符串来选择其中一个函数:'none'调用`.detrend_none`。'mean'调用`.detrend_mean`。'linear'调用`.detrend_linear`。

scale_by_freqbool, 默认值: True

生成的密度值是否应按缩放频率进行缩放,以单位 1/Hz 表示密度。这允许对返回的频率值进行积分。默认值为 True,以保持与 MATLAB 的兼容性。

noverlapint, 默认值: 0 (无重叠)

线段之间重叠点的数量。

Fcint, 默认值: 0

x 的中心频率,它将图形的 x 轴范围偏移以反映信号采集后经过滤波和下采样到基带时使用的频率范围。

return_linebool, 默认值: False

是否在返回值中包含绘制的线对象。

返回:
Pxy一维数组

缩放前交叉谱 \(P_{xy}\) 的值(复数值)。

freqs一维数组

对应于 Pxy 中元素的频率。

lineLine2D

此函数创建的线条。仅当 return_line 为 True 时返回。

其他参数:
数据可索引对象,可选

如果给出,以下参数也接受一个字符串 s,如果 sdata 中的一个键,则解释为 data[s]

x, y

**kwargs

关键字参数控制 Line2D 属性:

属性

描述

agg_filter

一个过滤函数,它接收一个 (m, n, 3) 的浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量

alpha

标量或无

animated

布尔

抗锯齿 或 aa

布尔

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色 或 c

color

dash_capstyle

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

dash_joinstyle

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

虚线

浮点数序列(点数中的开/关墨水)或 (None, None)

数据

(2, N) 数组或两个一维数组

drawstyle 或 ds

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, 默认值: 'default'

figure

FigureSubFigure

fillstyle

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

gapcolor

color or None

gid

str

in_layout

布尔

标签

对象

linestyle 或 ls

{'-', '--', '-.', ':', '', (偏移, 开-关-序列), ...}

linewidth 或 lw

浮动

标记

标记样式字符串, PathMarkerStyle

markeredgecolor 或 mec

color

markeredgewidth 或 mew

浮动

markerfacecolor 或 mfc

color

markerfacecoloralt 或 mfcalt

color

markersize 或 ms

浮动

markevery

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

鼠标悬停

布尔

path_effects

AbstractPathEffect 列表

picker

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

pickradius

浮动

光栅化

布尔

sketch_params

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

snap

布尔值或无

solid_capstyle

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

solid_joinstyle

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

transform

未知

url

str

可见

布尔

xdata

一维数组

ydata

一维数组

zorder

浮动

参见

psd

等同于设置 y = x

注释

对于绘图,功率以分贝形式绘制为 \(10 \log_{10}(P_{xy})\),尽管返回的是 \(P_{xy}\) 本身。

参考文献

Bendat & Piersol -- 随机数据:分析与测量程序,John Wiley & Sons (1986)

使用 matplotlib.axes.Axes.csd 的示例#

交叉谱密度 (CSD)

Cross spectral density (CSD)