matplotlib.mlab
#
为与MATLAB同名命令兼容而编写的数值Python函数。大多数数值Python函数可以在NumPy和SciPy库中找到。此处保留的代码用于执行频谱计算和核密度估计。
频谱函数#
cohere
相干性(归一化互谱密度)
csd
使用Welch平均周期图的互谱密度
detrend
从数组中移除均值或最佳拟合线
psd
使用Welch平均周期图的功率谱密度
specgram
频谱图(时间段上的频谱)
complex_spectrum
返回信号的复值频谱
magnitude_spectrum
返回信号频谱的幅值
angle_spectrum
返回信号频谱的角度(缠绕相位)
phase_spectrum
返回信号频谱的相位(解缠绕角度)
detrend_mean
从线中移除均值。
detrend_linear
从线中移除最佳拟合线。
detrend_none
返回原始线。
- class matplotlib.mlab.GaussianKDE(dataset, bw_method=None)[来源]#
基类:
object
使用高斯核的核密度估计的表示。
- 参数:
- dataset类数组
用于估计的数据点。对于单变量数据,这是一个1-D数组;否则,它是一个形状为(维度数,数据点数)的2D数组。
- bw_method{'scott', 'silverman'} 或 浮点数 或 可调用对象,可选
用于计算估计器带宽的方法。如果是浮点数,将直接用作
kde.factor
。如果是可调用对象,它应将GaussianKDE
实例作为唯一参数并返回一个浮点数。如果为 None(默认值),则使用 'scott'。
- 属性:
- datasetndarray
传递给构造函数的数据集。
- dim整型
维度数量。
- num_dp整型
数据点数量。
- factor浮点数
带宽因子,从
kde.covariance_factor
获取,协方差矩阵将乘以该因子。- covariancendarray
dataset 的协方差矩阵,按计算出的带宽(
kde.factor
)进行缩放。- inv_covndarray
covariance 的逆。
方法
kde.evaluate(points)
(ndarray) 在提供的一组点上评估估计的pdf。
kde(points)
(ndarray) 与 kde.evaluate(points) 相同
- matplotlib.mlab.angle_spectrum(x, Fs=None, window=None, pad_to=None, sides=None)#
计算 x 的频谱角度(缠绕相位谱)。数据被填充到 pad_to 的长度,并对信号应用加窗函数 window。
- 参数:
- x一维数组或序列
包含数据的数组或序列
- 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时,数据段将被填充到的点数。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但它可以为绘图提供更多点,从而显示更多细节。这对应于对
fft
的调用中的 n 参数。默认值为 None,这意味着将 pad_to 设置为输入信号的长度(即不进行填充)。
- 返回:
- spectrum1-D 数组
频谱的角度(缠绕相位谱)。
- freqs一维数组
与 *spectrum* 中元素对应的频率。
另请参阅
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, sides='default', scale_by_freq=None)[来源]#
x 和 y 之间的相干性。相干性是归一化互谱密度
\[C_{xy} = \frac{|P_{xy}|^2}{P_{xx}P_{yy}}\]- 参数:
- 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 不同,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(无重叠)
段之间的重叠点数。
- 返回:
- Cxy一维数组
相干性向量。
- freqs一维数组
*Cxy* 中元素的频率。
- matplotlib.mlab.complex_spectrum(x, Fs=None, window=None, pad_to=None, sides=None)#
计算 x 的复值频谱。数据被填充到 pad_to 的长度,并对信号应用加窗函数 window。
- 参数:
- x一维数组或序列
包含数据的数组或序列
- 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时,数据段将被填充到的点数。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但它可以为绘图提供更多点,从而显示更多细节。这对应于对
fft
的调用中的 n 参数。默认值为 None,这意味着将 pad_to 设置为输入信号的长度(即不进行填充)。
- 返回:
- spectrum1-D 数组
复值频谱。
- freqs一维数组
与 *spectrum* 中元素对应的频率。
另请参阅
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, sides=None, scale_by_freq=None)[来源]#
计算互谱密度。
通过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 不同,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(无重叠)
段之间的重叠点数。
- 返回:
- Pxy一维数组
缩放前互谱 \(P_{xy}\) 的值(实数值)
- freqs一维数组
与 Pxy 中的元素对应的频率
另请参阅
psd
相当于设置
y = x
。
参考
Bendat & Piersol -- 随机数据:分析与测量程序,John Wiley & Sons (1986)
- matplotlib.mlab.detrend(x, key=None, axis=None)[来源]#
返回已去除趋势的 x。
- 参数:
- x数组或序列
包含数据的数组或序列。
- key{'default', 'constant', 'mean', 'linear', 'none'} 或 函数
要使用的去趋势算法。'default'、'mean' 和 'constant' 与
detrend_mean
相同。'linear' 与detrend_linear
相同。'none' 与detrend_none
相同。默认值为 'mean'。有关算法的更多详细信息,请参阅相应的函数。也可以是一个执行去趋势操作的函数。- axis整型
执行去趋势操作的轴。
另请参阅
detrend_mean
'mean' 算法的实现。
detrend_linear
'linear' 算法的实现。
detrend_none
'none' 算法的实现。
- matplotlib.mlab.detrend_linear(y)[来源]#
返回 x 减去最佳拟合线;'线性'去趋势。
- 参数:
- y0维或1维数组或序列
包含数据的数组或序列
另请参阅
detrend_mean
另一种去趋势算法。
detrend_none
另一种去趋势算法。
detrend
所有去趋势算法的封装器。
- matplotlib.mlab.detrend_mean(x, axis=None)[来源]#
返回 x 减去 x 的均值。
- 参数:
- x数组或序列
包含数据的数组或序列 可以是任意维度
- axis整型
计算均值的轴。有关此参数的说明,请参阅
numpy.mean
。
另请参阅
detrend_linear
另一种去趋势算法。
detrend_none
另一种去趋势算法。
detrend
所有去趋势算法的封装器。
- matplotlib.mlab.detrend_none(x, axis=None)[来源]#
返回 x:不进行去趋势操作。
- 参数:
- x任意对象
包含数据的对象
- axis整型
此参数被忽略。包含此参数是为了与 detrend_mean 兼容
另请参阅
detrend_mean
另一种去趋势算法。
detrend_linear
另一种去趋势算法。
detrend
所有去趋势算法的封装器。
- matplotlib.mlab.magnitude_spectrum(x, Fs=None, window=None, pad_to=None, sides=None)#
计算 x 频谱的幅值(绝对值)。数据被填充到 pad_to 的长度,并对信号应用加窗函数 window。
- 参数:
- x一维数组或序列
包含数据的数组或序列
- 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时,数据段将被填充到的点数。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但它可以为绘图提供更多点,从而显示更多细节。这对应于对
fft
的调用中的 n 参数。默认值为 None,这意味着将 pad_to 设置为输入信号的长度(即不进行填充)。
- 返回:
- spectrum1-D 数组
频谱的幅值(绝对值)。
- freqs一维数组
与 *spectrum* 中元素对应的频率。
另请参阅
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, sides=None)#
计算 x 频谱的相位(解缠绕相位谱)。数据被填充到 pad_to 的长度,并对信号应用加窗函数 window。
- 参数:
- x一维数组或序列
包含数据的数组或序列
- 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时,数据段将被填充到的点数。虽然这不会增加频谱的实际分辨率(可分辨峰值之间的最小距离),但它可以为绘图提供更多点,从而显示更多细节。这对应于对
fft
的调用中的 n 参数。默认值为 None,这意味着将 pad_to 设置为输入信号的长度(即不进行填充)。
- 返回:
- spectrum1-D 数组
频谱的相位(解缠绕相位谱)。
- freqs一维数组
与 *spectrum* 中元素对应的频率。
另请参阅
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)[来源]#
计算功率谱密度。
通过Welch平均周期图法计算功率谱密度 \(P_{xx}\)。向量 x 被分成 NFFT 长度的段。每个段都通过函数 detrend 去趋势,并通过函数 window 加窗。noverlap 表示段之间的重叠长度。每个段 \(i\) 的 \(|\mathrm{fft}(i)|^2\) 被平均以计算 \(P_{xx}\)。
如果 len(x) < NFFT,它将被零填充到 NFFT。
- 参数:
- x一维数组或序列
包含数据的数组或序列
- 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 不同,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(无重叠)
段之间的重叠点数。
- 返回:
- Pxx一维数组
功率谱 \(P_{xx}\) 的值(实数值)
- freqs一维数组
与 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, sides=None, scale_by_freq=None, mode=None)[来源]#
计算频谱图。
计算并绘制 x 中数据的频谱图。数据被分成 NFFT 长度的段,并计算每个段的频谱。对每个段应用加窗函数 window,并用 noverlap 指定每个段的重叠量。
- 参数:
- x类数组
1维数组或序列。
- 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 不同,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整型,默认值: 128
块之间的重叠点数。
- mode字符串,默认值:'psd'
- 要使用的频谱类型
- 'psd'
返回功率谱密度。
- 'complex'
返回复值频谱。
- 'magnitude'
返回幅值谱。
- 'angle'
返回未解缠的相位谱。
- 'phase'
返回已解缠的相位谱。
- 返回:
- spectrum类数组
2D数组,列是连续段的周期图。
- freqs类数组
1D数组,与 spectrum 中的行对应的频率。
- t类数组
1D数组,与段中点对应的时间(即 spectrum 中的列)。
另请参阅
psd
在重叠和返回值方面有所不同。
complex_spectrum
类似,但具有复值频率。
magnitude_spectrum
当 mode 为 'magnitude' 时,与单个段类似。
angle_spectrum
当 mode 为 'angle' 时,与单个段类似。
phase_spectrum
当 mode 为 'phase' 时,与单个段类似。
备注
detrend 和 scale_by_freq 仅在 mode 设置为 'psd' 时适用。
- matplotlib.mlab.window_hanning(x)[source]#
返回 x 乘以长度为 len(x) 的 Hanning (或 Hann) 窗口。
另请参阅
window_none
另一种窗口算法。
- matplotlib.mlab.window_none(x)[source]#
无窗口函数;只返回 x。
另请参阅
window_hanning
另一种窗口算法。