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, sides=None, scale_by_freq=None, mode=None, scale=None, vmin=None, vmax=None, *, data=None, **kwargs)[源代码]

绘制光谱图。

计算并绘制数据的光谱图 x . 数据分为 NFFT 计算了各截面的长度段和频谱。窗口功能 窗口 应用于每个段,并用指定每个段的重叠量 诺弗莱普 . 光谱图以彩色地图的形式绘制(使用imshow)。

参数:
x一维数组或序列

包含数据的数组或序列。

Fs浮动,默认值:2

采样频率(每个时间单位的采样数)。用于计算傅里叶频率, 弗雷克斯 ,以每时间单位的周期为单位。

窗口 :callable或ndarray,默认值: window_hanningcallable或ndarray,默认值:

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

sides{'default','onesided','twosided'},可选

哪些方面应该回归默认情况下,对于实际数据为单面,对于复杂数据为双面“单侧”强制返回单侧频谱,而“双侧”强制返回双侧频谱。

pad_to可选的

执行FFT时填充数据段的点数。这可能不同于 NFFT ,指定使用的数据点的数量。虽然不能增加光谱的实际分辨率(可分辨峰之间的最小距离),但这可以在图中给出更多的点,从而提供更多的细节。这对应于 n 对fft()的调用中的参数。默认值为“无”,设置 pad_to 等于 NFFT

NFFTint,默认值:256

用于FFT的每个块中使用的数据点的数目。功率2是最有效的。这应该 NOT 用于获取零填充,否则结果的缩放将不正确;使用 pad_to 为了这个。

detrend{'none'、'mean'、'linear'}或可调用,默认为'none'

在快速傅立叶变换前应用于每一段的函数,用来消除平均或线性趋势。与matlab不同,其中 颓势 参数是向量,在Matplotlib中是函数。这个 mlab 模块定义 detrend_nonedetrend_meandetrend_linear ,但也可以使用自定义函数。也可以使用字符串选择函数之一:“none”调用 detrend_none . '卑鄙的电话 detrend_mean . '线性呼叫 detrend_linear .

scale_by_freqbool,默认值:True

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

mode“默认”、“PSD”、“幅度”、“角度”、“相位”

使用什么样的频谱。默认值是“psd”,它取功率谱密度“返回幅值谱。”angle'返回不展开的相位谱“相位”返回带展开的相位谱。

noverlap利息

块之间重叠点的数目。默认值为128。

scale“默认”、“线性”、“db”

中的值的缩放 spec . '“线性”表示无缩放。db'返回以db为单位的值。什么时候? mode 是“PSD”,这是DB电源(10 登录10)。否则,这是dB振幅(20 Log10)如果 mode 是“psd”或“量级”和“线性”否则。如果 mode 是“角度”或“相位”。

Fcint,默认值:0

中心频率 x ,它偏移绘图的x范围,以反映采集信号时使用的频率范围,然后对信号进行滤波和下采样到基带。

cmap : Colormap, default: rcParams["image.cmap"] (default: 'viridis')颜色映射,默认值:rcParams ["image.cmap"] (默认值:“viridis”)
X度None 或(Xmin,XMAX)无或(xmin,xmax)

沿X轴的图像范围。默认设置 xmin 到第一个垃圾桶的左边框( 光谱 列) xmax 到最后一个垃圾箱的右边界。请注意 noverlap>0 料仓的宽度小于分段的宽度。

**kwargs

其他关键字参数传递给 imshow 这就形成了光谱图像。

返回:
spectrum二维数组

列是连续段的周期图。

freqs一维阵列

与中的行对应的频率 光谱 .

t一维阵列

段中点对应的时间(即 光谱

imAxesImageAxesImage

由imshow创建的包含光谱图的图像。

参见

psd
不同之处在于:默认重叠;返回段周期图的平均值;不返回时间;以及生成线形图而不是彩色图。
magnitude_spectrum
单个光谱,类似于在 mode 是“量级”。绘制线条而不是颜色图。
angle_spectrum
单个光谱,类似于在 mode 是“角度”。绘制线条而不是颜色图。
phase_spectrum
单个光谱,类似于在 mode 是“阶段”。绘制线条而不是颜色图。

笔记

参数 颓势scale_by_freq 仅适用于以下情况 mode 设置为“PSD”。

注解

除了上述参数外,此函数还可以 data 关键字参数。如果这样的话 data 参数,下列参数也可以是字符串 s ,解释为 data[s] (除非引起例外): x .

作为传递的对象 data 必须支持项目访问 (data[s] )和会员资格测试 (s in data

使用实例 matplotlib.pyplot.specgram