📜  Python中的 Matplotlib.axes.Axes.phase_spectrum()(1)

📅  最后修改于: 2023-12-03 14:46:33.979000             🧑  作者: Mango

Python中的 Matplotlib.axes.Axes.phase_spectrum()

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()

输出结果:

phase_spectrum_example

在上图中,可以看出信号中不同频率分量的相位信息。在频率 30Hz 左右附近,可以观察到信号的相位突然反转,这是由于该频率分量的相位信息完全被反转,同时幅值保持不变。