matplotlib.pyplot.specgram #
- matplotlib.pyplot。specgram ( x , NFFT = None , Fs = None , Fc = None , detrend = None , window = None , noverlap = None , cmap = None , xextent = None , pad_to = None , side = None , scale_by_freq = None , mode =没有任何, scale = None , vmin = None , vmax = None , * , data = None , ** kwargs ) [source] #
绘制频谱图。
计算并绘制x中数据的频谱图。数据被分成 NFFT长度段,并计算每个段的频谱。对每个段应用开窗函数window,每个段的重叠量用noverlap指定。频谱图被绘制为颜色图(使用 imshow)。
- 参数:
- 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。
- 模式{'默认','psd','幅度','角度','相位'}
使用什么样的频谱。默认为“psd”,它采用功率谱密度。“幅度”返回幅度谱。“角度”返回相位谱而不展开。'phase' 返回展开后的相位谱。
- noverlap int,默认值:128
块之间的重叠点数。
- 比例{'默认','线性','dB'}
规范中值的缩放。'linear' 没有缩放。'dB' 返回以 dB 为单位的值。当模式为“psd”时,这是 dB 功率 (10 * log10)。否则,这是 dB 幅度 (20 * log10)。如果模式为“psd”或“幅度”,则“默认”为“分贝”,否则为“线性”。如果模式是“角度”或“相位”,这必须是“线性”。
- Fc整数,默认值:0
x的中心频率,它偏移绘图的 x 范围,以反映在采集信号、然后过滤和下采样到基带时使用的频率范围。
- cmap
Colormap
,默认值:(rcParams["image.cmap"]
默认值'viridis'
:) - xextent无或 (xmin, xmax)
沿 x 轴的图像范围。默认将xmin设置为第一个 bin(频谱列)的左边界,将xmax设置为最后一个 bin 的右边界。请注意,对于noverlap>0,bin 的宽度小于段的宽度。
- 数据可索引对象,可选
如果给定,以下参数也接受一个字符串
s
,它被解释为data[s]
(除非这引发异常):X
- **kwargs
附加的关键字参数被传递给
imshow
它来制作specgram图像。不支持 origin 关键字参数。
- 返回:
- 光谱二维阵列
列是连续段的周期图。
- 频率一维数组
与频谱中的行相对应的频率。
- t一维数组
对应于段中点的时间(即,频谱中的列)。
- 我是
AxesImage
由 imshow 创建的包含频谱图的图像。
也可以看看
psd
默认重叠不同;返回分段周期图的平均值;在不返回时间;并生成线图而不是颜色图。
magnitude_spectrum
单个频谱,类似于当模式为“幅度”时具有单个段。绘制一条线而不是颜色图。
angle_spectrum
单个光谱,类似于当模式为“角度”时具有单个段。绘制一条线而不是颜色图。
phase_spectrum
单个频谱,类似于模式为“相位”时具有单个段。绘制一条线而不是颜色图。
笔记
参数detrend和scale_by_freq仅在模式 设置为“psd”时适用。