matplotlib.mlab
#
为与具有相同名称的 MATLAB 命令兼容而编写的数值 Python 函数。大多数数值 Python 函数都可以在NumPy和SciPy库中找到。这里剩下的是用于执行谱计算和核密度估计的代码。
光谱函数#
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) 相同
- 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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认值为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 ) [来源] #
x和y之间的一致性。相干性是归一化的交叉谱密度:
\[C_{xy} = \frac{|P_{xy}|^2}{P_{xx}P_{yy}}\]- 参数:
- x, y
包含数据的数组或序列
- Fs浮点数,默认:2
采样频率(每个时间单位的样本数)。它用于计算傅立叶频率freqs,以每时间单位的周期为单位。
- 窗口可调用或 ndarray,默认值:
window_hanning
长度为NFFT的函数或向量。要创建窗口向量,请参见
window_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认为 None,将pad_to设置为NFFT- NFFT int,默认值:256
FFT 的每个块中使用的数据点数。幂 2 是最有效的。这不应该用于获得零填充,否则结果的缩放将不正确;使用pad_to代替。
- detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'
在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该
mlab
模块定义detrend_none
、detrend_mean
和detrend_linear
,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' callsdetrend_none
。“卑鄙”的电话detrend_mean
。'线性'调用detrend_linear
。- scale_by_freq布尔值,默认值:True
生成的密度值是否应按缩放频率缩放,以 1/Hz 为单位给出密度。这允许对返回的频率值进行积分。对于 MATLAB 兼容性,默认值为 True。
- noverlap int,默认值:0(无重叠)
段之间的重叠点数。
- 返回:
- Cxy一维数组
相干向量。
- 频率一维数组
Cxy中元素的频率。
- 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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认值为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 的平均周期图法。向量x和y被分成 NFFT长度段。每个段由函数 detrend 去趋势并由函数window加窗。noverlap给出段之间重叠的长度。x和y的直接 FFT 的乘积在每个段上平均计算\(P_{xy}\),通过缩放来校正由于开窗引起的功率损耗。
如果 len( x ) < NFFT或 len( y ) < NFFT,它们将被零填充到NFFT。
- 参数:
- x, y一维数组或序列
包含数据的数组或序列
- Fs浮点数,默认:2
采样频率(每个时间单位的样本数)。它用于计算傅立叶频率freqs,以每时间单位的周期为单位。
- 窗口可调用或 ndarray,默认值:
window_hanning
长度为NFFT的函数或向量。要创建窗口向量,请参见
window_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认为 None,将pad_to设置为NFFT- NFFT int,默认值:256
FFT 的每个块中使用的数据点数。幂 2 是最有效的。这不应该用于获得零填充,否则结果的缩放将不正确;使用pad_to代替。
- detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'
在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该
mlab
模块定义detrend_none
、detrend_mean
和detrend_linear
,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' callsdetrend_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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认值为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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认值为None,它将pad_to设置为 等于输入信号的长度(即无填充)。
- 返回:
- 光谱一维阵列
频谱的相位(展开的相位频谱)。
- 频率一维数组
对应于频谱中元素的频率。
也可以看看
psd
返回功率谱密度。
complex_spectrum
返回复值频谱。
magnitude_spectrum
返回 的绝对值
complex_spectrum
。angle_spectrum
返回 的角度
complex_spectrum
。phase_spectrum
返回 的相位(展开角)
complex_spectrum
。specgram
可以返回信号中段的复杂频谱。
- matplotlib.mlab。psd(x, 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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认为 None,将pad_to设置为NFFT- NFFT int,默认值:256
FFT 的每个块中使用的数据点数。幂 2 是最有效的。这不应该用于获得零填充,否则结果的缩放将不正确;使用pad_to代替。
- detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'
在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该
mlab
模块定义detrend_none
、detrend_mean
和detrend_linear
,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' callsdetrend_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_hanning
、window_none
、numpy.blackman
、numpy.hamming
、numpy.bartlett
、scipy.signal
、scipy.signal.get_window
等。如果将函数作为参数传递,它必须将数据段作为参数并返回该段的窗口版本。- 边{'默认','单面','双面'},可选
返回频谱的哪一边。'default' 对于真实数据是单面的,对于复杂数据是双面的。'oneside' 迫使单方面的频谱回归,而 'twolateral' 则迫使双方回归。
- pad_to int,可选
执行 FFT 时数据段填充到的点数。这可能与NFFT不同,后者指定使用的数据点数。虽然不会增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中提供更多点,从而获得更多细节。这对应于调用中的n
fft
参数。默认为 None,将pad_to设置为NFFT- NFFT int,默认值:256
FFT 的每个块中使用的数据点数。幂 2 是最有效的。这不应该用于获得零填充,否则结果的缩放将不正确;使用pad_to代替。
- detrend {'none', 'mean', 'linear'} 或可调用的,默认值:'none'
在 fft-ing 之前应用于每个段的函数,旨在消除均值或线性趋势。与 MATLAB 中的detrend参数是一个向量不同,在 Matplotlib 中它是一个函数。该
mlab
模块定义detrend_none
、detrend_mean
和detrend_linear
,但您也可以使用自定义函数。您还可以使用字符串来选择功能之一: 'none' callsdetrend_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
当模式为“相位”时,类似于单段。
笔记
detrend和scale_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
另一种窗口算法。