📅  最后修改于: 2023-12-03 14:46:35.643000             🧑  作者: Mango
matplotlib.pyplot.specgram()
是用于绘制信号的频谱图的函数。它基于快速傅里叶变换(FFT)算法,可以将信号在时间上进行分割,并在每个时间段上计算频谱。
首先,需要导入 matplotlib.pyplot 模块:
import matplotlib.pyplot as plt
然后,使用 specgram()
函数绘制频谱图:
plt.specgram(x, NFFT=256, Fs=2, noverlap=128, cmap=None)
其中,参数 x
是输入信号序列。其他参数包括:
NFFT
:FFT 窗口的长度,通常为2的幂次方,默认为256。Fs
:采样率,默认为2。noverlap
:连续窗口之间的重叠样本数,默认为128。cmap
:频谱图的颜色映射,默认为 None。specgram()
函数会返回一个 2D 数组,表示信号的频谱图。
以下是一个绘制频谱图的示例:
import numpy as np
import matplotlib.pyplot as plt
# 生成示例信号
dt = 0.0005
t = np.arange(0, 20, dt)
x = np.sin(2*np.pi*100*t) + np.sin(2*np.pi*200*t) + np.random.randn(len(t))
# 绘制频谱图
plt.specgram(x, NFFT=256, Fs=1/dt, noverlap=128, cmap='inferno')
# 添加标签和标题
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.title('Spectrogram of Signal')
# 显示图形
plt.show()
该示例生成一个包含两个频率成分和噪声的信号,并使用 specgram()
函数绘制其频谱图。最后,添加标签和标题,并显示图形。
matplotlib.pyplot.specgram()
是一个方便的函数,可以用于绘制信号的频谱图。它在数据分析、信号处理等领域有着广泛的应用。频谱图可以展示信号在不同频率上的能量分布,帮助我们理解信号的特征和结构。通过调整参数,可以对频谱图进行定制化的绘制。