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}\)。向量 *x* 和 *y* 被分成 *NFFT* 长度的段。每段数据都通过函数 *detrend* 进行去趋势处理,并通过函数 *window* 应用窗函数。*noverlap* 表示段之间的重叠长度。*x* 和 *y* 的直接FFT乘积在每段上进行平均,以计算 \(P_{xy}\),并进行缩放以校正因窗函数引起的功率损失。
如果 len(*x*) < *NFFT* 或 len(*y*) < *NFFT*,它们将被零填充到 *NFFT*。
- 参数:
- x, y一维数组或序列
包含数据的数组或序列。
- Fs浮点数,默认值:2
采样频率(每时间单位的采样点数)。用于计算傅里叶频率 *freqs*,单位为每时间单位的周期数。
- window可调用对象或ndarray,默认值:
window_hanning
一个函数或长度为 *NFFT* 的向量。要创建窗函数向量,请参阅
window_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果传递一个函数作为参数,它必须接受一个数据段作为参数并返回该段的加窗版本。- sides{'default', 'onesided', 'twosided'},可选
返回频谱的哪一侧。'default' 对实数数据是单侧的,对复数数据是双侧的。'onesided' 强制返回单侧频谱,而 'twosided' 强制返回双侧频谱。
- pad_to整数,可选
执行FFT时,数据段要填充到的点数。这可以与指定所用数据点数的 *NFFT* 不同。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但可以在图中提供更多点,从而允许显示更多细节。这对应于对
fft
的调用中的 *n* 参数。默认值为 None,这意味着将 *pad_to* 设置为等于 *NFFT*。- NFFT整数,默认值:256
FFT 中每个块中使用的数据点数。2 的幂次方效率最高。这**不**应用于零填充,否则结果的缩放将不正确;请改用 *pad_to*。
- detrend{'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_freq布尔值,默认值:True
结果密度值是否应按缩放频率进行缩放,这将以 1/Hz 为单位给出密度。这允许对返回的频率值进行积分。为了与 MATLAB 兼容,默认值为 True。
- noverlap整数,默认值:0(无重叠)
段之间的重叠点数。
- Fc整数,默认值:0
*x* 的中心频率,它会偏移绘图的 x 范围,以反映信号采集、滤波和下采样到基带时使用的频率范围。
- return_line布尔值,默认值:False
是否在返回值中包含绘制的线条对象。
- 返回:
- Pxy一维数组
缩放前交叉谱 \(P_{xy}\) 的值(复数值)。
- freqs一维数组
对应于 *Pxy* 中元素的频率。
- line
Line2D
此函数创建的线条。仅当 *return_line* 为 True 时返回。
- 其他参数:
- data可索引对象,可选
如果给定,以下参数也接受字符串
,如果是 `data` 中的键,则解释为 `data[s]`。x, y
- **kwargs
关键字参数控制
Line2D
属性属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
布尔值
布尔值
BboxBase
或 None布尔值
Patch 或 (Path, Transform) 或 None
CapStyle
或 {'butt', 'projecting', 'round'}JoinStyle
或 {'miter', 'round', 'bevel'}浮点数序列(点中的开/关墨迹)或 (None, None)
(2, N) 数组或两个一维数组
{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'},默认值: 'default'
{'full', 'left', 'right', 'bottom', 'top', 'none'}
颜色 或 None
字符串
布尔值
对象
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
浮点数
标记样式字符串,
Path
或MarkerStyle
浮点数
浮点数
None 或 int 或 (int, int) 或 slice 或 list[int] 或 float 或 (float, float) 或 list[bool]
布尔值
AbstractPathEffect 列表
浮点数或 callable[[Artist, Event], tuple[bool, dict]]
浮点数
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
CapStyle
或 {'butt', 'projecting', 'round'}JoinStyle
或 {'miter', 'round', 'bevel'}未知
字符串
布尔值
一维数组
一维数组
浮点数
另请参阅
psd
等同于设置 `y = x`。
备注
对于绘图,功率以 \(10 \log_{10}(P_{xy})\) 的形式绘制,表示分贝,尽管返回的是 \(P_{xy}\) 本身。
参考
Bendat & Piersol -- Random Data: Analysis and Measurement Procedures, John Wiley & Sons (1986)