迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的 Matplotlib.pyplot.specgram()来绘制频谱图

作者:迹忆客 最近更新:2024/02/01 浏览次数:

本教程介绍了我们如何使用 matplotlib.pyplot.specgram()scipy.signal.spectrogram() 方法在 Python 中绘制频谱图。

我们可以通过频谱图得到信号强度的详细信息。频谱图中某一点的颜色越深,说明该点的信号越强。


使用 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)

示例: 使用 matplotlib.pyplot.specgram() 方法绘制频谱图

import math
import numpy as np
import matplotlib.pyplot as plt

dt = 0.0001
w = 2
t = np.linspace(0, 5, math.ceil(5 / dt))
A = 20 * (np.sin(3 * np.pi * t))

plt.specgram(A, Fs=1)
plt.title("Spectrogram Using matplotlib.pyplot.specgram() method")
plt.show()

 

它使用 matplotlib.pyplot.specgram() 方法为函数 A=20sin(3*np.pi*t) 创建一个频谱图。该方法中的参数 fs 代表采样频率。


使用 scipy.signal.spectrogram() 方法绘制频谱图

import math
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

dt = 0.0001
w = 2
t = np.linspace(0, 5, math.ceil(5 / dt))
A = 2 * (np.sin(1 * np.pi * 300 * t))

f, t, Sxx = signal.spectrogram(A, fs=1, nfft=514)
plt.pcolormesh(t, f, Sxx)
plt.ylabel("Frequency")
plt.xlabel("Time")
plt.title("Spectrogram Using scipy.signal.spectrogram() method")
plt.show()

它使用 scipy.signal.spectrogram() 方法为函数 A=2sin(300*np.pi*t) 创建一个频谱图。该方法中的参数 fs 代表采样频率,ntft 代表所用 FFT 的长度。

该方法返回三个值 ftSxxf 代表采样频率数组,t 代表采样时间数组,Sxx 代表 A 的频谱图。

这种方法并不能生成输入信号的频谱图。我们可以使用 matplotlib.pyplot.colormesh() 来生成图形。

上一篇:在 Python 中将 NumPy 数组转换为列表

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中将 NumPy 数组转换为列表

发布时间:2023/12/24 浏览次数:108 分类:Python

本教程演示了如何将 numpy 数组转换为 Python 中的列表。列表和数组是 Python 中两个最基本且最常用的集合对象。

Python 中追加二维数组

发布时间:2023/12/24 浏览次数:172 分类:Python

本教程讨论如何在 Python 中将值附加到二维数组。在 Python 中,我们可以有 ND 数组。我们可以使用 NumPy 模块在 Python 中处理数组。

在 Python 中将数组写入文本文件

发布时间:2023/12/24 浏览次数:70 分类:Python

本教程演示如何在 python 中将数组保存到文本文件中。读取和写入文件是构建许多用户使用的程序的一个重要方面。Python 提供了一系列可用于资源处理的方法。

Python 导出到 Excel

发布时间:2023/12/24 浏览次数:132 分类:Python

有四种主要方法可用于在 Python 中将数据写入 Excel 文件,DataFrame.to_excel() 方法、xlwt 库、openpyxl 库和 XlsWriter 库。

使用 Selenium Python 在浏览器中打开和关闭标签页

发布时间:2023/12/24 浏览次数:109 分类:Python

本教程演示了如何在 Python 中使用 Selenium 在浏览器中自动打开一个新标签页。Selenium 是强大的 Web 自动化和测试工具。我们使用 Selenium 编写脚本,它可以控制 Web 浏览器并执行特定操作。

Conda 安装 Cv2

发布时间:2023/12/24 浏览次数:180 分类:Python

本教程演示了如何在 Python 中为 anaconda 用户安装 cv2 模块。互联网上有许多可用的 Python IDE。一种这样的 Python IDE 是 Anaconda,这是一种开源软件

Python 中 NumPy 数组的滑动平均值

发布时间:2023/12/24 浏览次数:170 分类:Python

本教程演示了如何在 python 中计算 numpy 数组的滑动平均值。滑动平均值通常用于通过计算特定时间间隔的数据平均值来研究时间序列数据。

在 Python 中计算马氏距离

发布时间:2023/12/24 浏览次数:128 分类:Python

有两个主要方法可用于在 Python 中查找两个 NumPy 数组之间的马氏距离,scipy 库中的 cdist() 函数和 numpy 包中的 numpy.einsum() 函数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便