📅  最后修改于: 2023-12-03 14:46:33.979000             🧑  作者: Mango
phase_spectrum()
是 Matplotlib 中 Axes
类的一个方法,用于绘制信号的相位谱图。
phase_spectrum()
方法的语法如下:
phase_spectrum(x, Fs=None, Fc=None, window=None,
pad_to=None, sides=None, scale=None, mode=None, **kwargs)
参数说明:
x
: 输入信号数组。Fs
: 采样率,默认为 None
,表示采用单位采样率。Fc
: 信号的截止频率,即滤波器的截止频率,仅在输入数据为实数时起作用,默认为 None
,表示不做滤波处理。window
: 滑动窗口函数,可选参数有 'boxcar','hamming','hann','blackman','bartlett'。pad_to
: 对信号进行零填充,pad_to 取新的长度,默认为 None,表示不填充零。sides
: ‘default’, ‘onesided’, ‘twosided’。控制相位谱的显示方式。默认为 'default'。scale
: 可以设置自动缩放。默认为 'linear'。mode
: 控制处理多通道信号的方式。默认为 None。返回值:返回一个包含相位谱(phase_spectrum
)、频率 (freqs
) 和 dBFS (db
) 的元组。
import numpy as np
import matplotlib.pyplot as plt
# 构造信号
Fs = 150.0
T = 1 / Fs
L = 1024
t = np.arange(L) * T
s1 = 0.7 * np.sin(2 * np.pi * 15 * t)
s2 = np.sin(2 * np.pi * 40 * t)
# 叠加多个信号
s = s1 + s2
# 绘制相位谱
fig, ax = plt.subplots()
ax.phase_spectrum(s, Fs=Fs, mode='complex')
plt.show()
输出结果:
在上图中,可以看出信号中不同频率分量的相位信息。在频率 30Hz 左右附近,可以观察到信号的相位突然反转,这是由于该频率分量的相位信息完全被反转,同时幅值保持不变。