matplotlib.mlab#

为与具有相同名称的 MATLAB 命令兼容而编写的数值 Python 函数。大多数数值 Python 函数都可以在NumPySciPy库中找到。这里剩下的是用于执行谱计算和核密度估计的代码。

光谱函数#

cohere

相干性(归一化交叉谱密度)

csd

使用韦尔奇平均周期图的交叉谱密度

detrend

从数组中删除平均线或最佳拟合线

psd

使用韦尔奇平均周期图的功率谱密度

specgram

频谱图(时间段的频谱)

complex_spectrum

返回信号的复值频谱

magnitude_spectrum

返回信号频谱的幅度

angle_spectrum

返回信号频谱的角度(环绕相位)

phase_spectrum

返回信号频谱的相位(展开角)

detrend_mean

从一条线上删除平均值。

detrend_linear

从一条线中删除最佳拟合线。

detrend_none

返回原始行。

stride_windows

以节省内存的方式获取数组中的所有窗口

matplotlib.mlab。GaussianKDE ( dataset , bw_method = None ) [source] #

基地:object

使用高斯核表示核密度估计。

参数
数据集数组

要估计的数据点。在单变量数据的情况下,这是一个一维数组,否则是一个具有形状(# of dims,# of data)的二维数组。

bw_method str,标量或可调用,可选

用于计算估计器带宽的方法。这可以是“scott”、“silverman”、标量常量或可调用对象。如果是标量,这将直接用作kde.factor. 如果是可调用的,它应该将一个GaussianKDE实例作为唯一参数并返回一个标量。如果无(默认),则使用“斯科特”。

属性
数据集ndarray

传递给构造函数的数据集。

昏暗的诠释

维数。

num_dp整数

数据点的数量。

因子浮动

从 获得的带宽因子,kde.covariance_factor与协方差矩阵相乘。

协方差数组

dataset的协方差矩阵,按计算的带宽 ( kde.factor) 缩放。

inv_cov ndarray

协方差的倒数。

方法

kde.evaluate(点)

(ndarray) 在一组提供的点上评估估计的 pdf。

kde(点)

(ndarray) 与 kde.evaluate(points) 相同

covariance_factor ( ) [来源] #
评估[来源] #

在一组点上评估估计的 pdf。

参数
(维度#,点数)-数组

或者,可以传入 (# of dimensions,) 向量并将其视为单个点。

返回
(点数,)-数组

每个点的值。

提高
ValueError如果输入点的维度不同

比 KDE 的维度。

scotts_factor ( ) [来源] #
silverman_factor ( ) [来源] #
matplotlib.mlab。angle_spectrum ( x , Fs = None , window = None , pad_to = None , side = None ) #

计算x的频谱(环绕相位谱)的角度。将数据填充到pad_to的长度,并将窗口函数窗口应用于信号。

参数
x一维数组或序列

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认值为None,它将pad_to设置为 等于输入信号的长度(即无填充)。

返回
光谱一维阵列

频谱的角度(缠绕相位谱)。

频率一维数组

对应于频谱中元素的频率。

也可以看看

psd

返回功率谱密度。

complex_spectrum

返回复值频谱。

magnitude_spectrum

返回 的绝对值complex_spectrum

angle_spectrum

返回 的角度complex_spectrum

phase_spectrum

返回 的相位(展开角)complex_spectrum

specgram

可以返回信号中段的复杂频谱。

matplotlib.mlab。cohere ( x , y , NFFT=256 , Fs=2 , detrend=<function detrend_none> , window=<function window_hanning> , noverlap=0 , pad_to=None , side ='default' , scale_by_freq=None ) [来源] #

xy之间的一致性。相干性是归一化的交叉谱密度:

\[C_{xy} = \frac{|P_{xy}|^2}{P_{xx}P_{yy}}\]
参数
x, y

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认为 None,将pad_to设置为NFFT

NFFT int,默认值:256

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

detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'

在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该mlab 模块定义detrend_nonedetrend_meandetrend_linear,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' calls detrend_none。“卑鄙”的电话 detrend_mean。'线性'调用detrend_linear

scale_by_freq布尔值,默认值:True

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

noverlap int,默认值:0(无重叠)

段之间的重叠点数。

返回
Cxy一维数组

相干向量。

频率一维数组

Cxy中元素的频率。

也可以看看

psd(),csd()

有关用于计算的方法的信息\(P_{xy}\),\(P_{xx}\)\(P_{yy}\).

matplotlib.mlab。complex_spectrum ( x , Fs = None , window = None , pad_to = None , side = None ) #

计算x的复值频谱。将数据填充到pad_to的长度,并将窗口函数窗口应用于信号。

参数
x一维数组或序列

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认值为None,它将pad_to设置为 等于输入信号的长度(即无填充)。

返回
光谱一维阵列

复值频谱。

频率一维数组

对应于频谱中元素的频率。

也可以看看

psd

返回功率谱密度。

complex_spectrum

返回复值频谱。

magnitude_spectrum

返回 的绝对值complex_spectrum

angle_spectrum

返回 的角度complex_spectrum

phase_spectrum

返回 的相位(展开角)complex_spectrum

specgram

可以返回信号中段的复杂频谱。

matplotlib.mlab。csd ( x , y , NFFT = None , Fs = None , detrend = None , window = None , noverlap = None , pad_to = None , side = None , scale_by_freq = None ) [来源] #

计算交叉谱密度。

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

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

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

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认为 None,将pad_to设置为NFFT

NFFT int,默认值:256

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

detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'

在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该mlab 模块定义detrend_nonedetrend_meandetrend_linear,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' calls detrend_none。“卑鄙”的电话 detrend_mean。'线性'调用detrend_linear

scale_by_freq布尔值,默认值:True

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

noverlap int,默认值:0(无重叠)

段之间的重叠点数。

返回
Pxy一维数组

交叉谱的值\(P_{xy}\)缩放前(实际值)

频率一维数组

Pxy中元素对应的频率

也可以看看

psd

相当于设置。y = x

参考

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

matplotlib.mlab。detrend ( x , key = None , axis = None ) [来源] #

返回x并移除其趋势。

参数
x数组或序列

包含数据的数组或序列。

{'default'、'constant'、'mean'、'linear'、'none'} 或函数

要使用的去趋势算法。'default'、'mean' 和 'constant' 与detrend_mean. “线性”与 相同detrend_linear。'无' 与 相同detrend_none。默认值为“平均”。有关算法的更多详细信息,请参阅相应的函数。也可以是执行去趋势操作的函数。

整数

进行去趋势化的轴。

也可以看看

detrend_mean

“平均”算法的实现。

detrend_linear

“线性”算法的实现。

detrend_none

“无”算法的实现。

matplotlib.mlab。detrend_linear ( y ) [来源] #

返回x减去最佳拟合线;“线性”去趋势。

参数
y 0-D 或 1-D 数组或序列

包含数据的数组或序列

也可以看看

detrend_mean

另一种去趋势算法。

detrend_none

另一种去趋势算法。

detrend

所有去趋势算法的包装。

matplotlib.mlab。detrend_mean ( x , axis = None ) [来源] #

返回x减去均值 ( x )。

参数
x数组或序列

包含数据的数组或序列 可以有任何维度

整数

取平均值的轴。有关numpy.mean此论点的说明,请参阅 。

也可以看看

detrend_linear

另一种去趋势算法。

detrend_none

另一种去趋势算法。

detrend

所有去趋势算法的包装。

matplotlib.mlab。detrend_none ( x , axis = None ) [来源] #

返回x:没有去趋势。

参数
x任何物体

包含数据的对象

整数

该参数被忽略。包含它是为了与 detrend_mean 兼容

也可以看看

detrend_mean

另一种去趋势算法。

detrend_linear

另一种去趋势算法。

detrend

所有去趋势算法的包装。

matplotlib.mlab。幅度谱(x Fs =窗口= pad_to ==#

计算x的频谱的幅度(绝对值)。将数据填充到pad_to的长度,并将窗口函数窗口应用于信号。

参数
x一维数组或序列

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认值为None,它将pad_to设置为 等于输入信号的长度(即无填充)。

返回
光谱一维阵列

频谱的幅度(绝对值)。

频率一维数组

对应于频谱中元素的频率。

也可以看看

psd

返回功率谱密度。

complex_spectrum

返回复值频谱。

magnitude_spectrum

返回 的绝对值complex_spectrum

angle_spectrum

返回 的角度complex_spectrum

phase_spectrum

返回 的相位(展开角)complex_spectrum

specgram

可以返回信号中段的复杂频谱。

matplotlib.mlab。phase_spectrum ( x , Fs = None , window = None , pad_to = None , side = None ) #

计算x的频谱(展开的相位谱)的相位。将数据填充到pad_to的长度,并将窗口函数窗口应用于信号。

参数
x一维数组或序列

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认值为None,它将pad_to设置为 等于输入信号的长度(即无填充)。

返回
光谱一维阵列

频谱的相位(展开的相位频谱)。

频率一维数组

对应于频谱中元素的频率。

也可以看看

psd

返回功率谱密度。

complex_spectrum

返回复值频谱。

magnitude_spectrum

返回 的绝对值complex_spectrum

angle_spectrum

返回 的角度complex_spectrum

phase_spectrum

返回 的相位(展开角)complex_spectrum

specgram

可以返回信号中段的复杂频谱。

matplotlib.mlab。psdx NFFT = None Fs = None detrend = None window = None noverlap = None pad_to = None sides = None scale_by_freq = None[来源] #

计算功率谱密度。

功率谱密度\(P_{xx}\)Welch 的平均周期图法。向量x被分成NFFT长度段。每个段由函数detrend 去趋势并由函数window加窗。noverlap给出段之间重叠的长度。这\(|\mathrm{fft}(i)|^2\) 每个段的\(i\)平均计算\(P_{xx}\).

如果 len( x ) < NFFT,它将被零填充到NFFT

参数
x一维数组或序列

包含数据的数组或序列

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认为 None,将pad_to设置为NFFT

NFFT int,默认值:256

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

detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'

在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该mlab 模块定义detrend_nonedetrend_meandetrend_linear,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' calls detrend_none。“卑鄙”的电话 detrend_mean。'线性'调用detrend_linear

scale_by_freq布尔值,默认值:True

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

noverlap int,默认值:0(无重叠)

段之间的重叠点数。

返回
Pxx一维阵列

功率谱的值\(P_{xx}\)(实际价值)

频率一维数组

Pxx中元素对应的频率

也可以看看

specgram

specgram默认重叠不同;不返回分段周期图的平均值;并返回片段的时间。

magnitude_spectrum

返回幅度谱。

csd

返回两个信号之间的频谱密度。

参考

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

matplotlib.mlab。specgram ( x , NFFT = None , Fs = None , detrend = None , window = None , noverlap = None , pad_to = None , side = None , scale_by_freq = None , mode = None ) [来源] #

计算频谱图。

计算并绘制x中数据的频谱图。数据被分成 NFFT长度段,并计算每个段的频谱。对每个段应用开窗函数window,每个段的重叠量用noverlap指定。

参数
x类数组

一维数组或序列。

Fs浮点数,默认:2

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

窗口可调用或 ndarray,默认值:window_hanning

长度为NFFT的函数或向量。要创建窗口向量,请参见 window_hanningwindow_nonenumpy.blackmannumpy.hammingnumpy.bartlettscipy.signalscipy.signal.get_window等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。

{'默认','单面','双面'},可选

返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。

pad_to int,可选

执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的nfft参数。默认为 None,将pad_to设置为NFFT

NFFT int,默认值:256

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

detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'

在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该mlab 模块定义detrend_nonedetrend_meandetrend_linear,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' calls detrend_none。“卑鄙”的电话 detrend_mean。'线性'调用detrend_linear

scale_by_freq布尔值,默认值:True

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

noverlap int,默认值:128

块之间的重叠点数。

模式str,默认值:'psd'
使用什么样的频谱:
'psd'

返回功率谱密度。

'复杂的'

返回复值频谱。

'震级'

返回幅度谱。

'角度'

返回相位谱而不展开。

'阶段'

返回展开的相位谱。

返回
阵列状

二维数组,列是连续段的周期图。

类似数组的频率

一维数组,频率对应于频谱中的行。

t类数组

一维数组,对应于片段中点的时间(即频谱中的列)。

也可以看看

psd

重叠和返回值不同。

complex_spectrum

类似,但具有复值频率。

magnitude_spectrum

当模式为“幅度”时,类似的单段。

angle_spectrum

当模式为“角度”时,类似于单段。

phase_spectrum

当模式为“相位”时,类似于单段。

笔记

detrendscale_by_freq仅在模式设置为“psd”时适用。

matplotlib.mlab。stride_windows ( x , n , noverlap = None , axis = 0 ) [source] #

[已弃用]将长度为n的x的所有窗口作为单个数组获取,使用 strides 以避免数据重复。

警告

写入输出数组是不安全的。多个元素可能指向同一块内存,因此修改一个值可能会改变其他值。

参数
x一维数组或序列

包含数据的数组或序列。

整数_

每个窗口中的数据点数。

noverlap int,默认值:0(无重叠)

相邻窗口之间的重叠。

整数

窗口将沿其运行的轴。

笔记

自 3.6 版起已弃用。

参考

stackoverflow:Numpy 中一维数组的滚动窗口? stackoverflow:使用 strides 进行有效的移动平均过滤器

matplotlib.mlab。window_hanning ( x ) [来源] #

返回x乘以 len( x ) 的 Hanning(或 Hann)窗口。

也可以看看

window_none

另一种窗口算法。

matplotlib.mlab。window_none ( x ) [来源] #

无窗口功能;只需返回x

也可以看看

window_hanning

另一种窗口算法。