IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 不愧是摸鱼高手Python matplotlib 绘制频谱图都会,能怪老板不管 -> 正文阅读

[人工智能]不愧是摸鱼高手Python matplotlib 绘制频谱图都会,能怪老板不管

复习回顾

matplotlib 是Python专门用来绘制渲染的模块,其底层主要分为脚本层、美工层和后端。脚本层为我们提供常见图形绘制如折线、柱状、直方、饼图。以往文章

这么详细的Python matplotlib 绘制图形 还不赶紧收藏_

Python matplotlib 绘制等高线图_

Python matplotlib 绘制散点图 还不收藏起来

python入门到进阶,爬虫数据分析全套资料分享讲解 CHINA

1. 频谱图概述

  • 什么是频谱图?

    • 频谱图表示的信号频率与能量的关系
    • 频谱图以x,y轴的波纹方式记录并画出信号在各种频率的图像
    • 频谱图可以分为三种:线性振幅谱、对数振幅谱、自功率谱
  • 频谱图应用场景

    • 频谱图常用在机械故障诊断系统中用于检测故障的部位、类型和程度等问题
    • 频谱图专门分析振动参数的主要工具
    • 频谱图对于要分在特定时段频率振幅变化情况如音频、视频等质量检测
  • 获取使用频谱图

    import matplotlib.pyplot as plt 
    plt.specgram(x)
    复制代码
  • pyplot.specgram(x) 方法

    • specgram 计算并绘制x中数据的频谱图
    • 数据被分成NFFT长度段,并计算每个部分的频谱
    • 加窗函数window应用用于每个段,每个段的重叠量由noverlap指定
    • 频谱图使用imshow()绘制颜色图

2. 频谱图属性

  • 设置频谱图模式

    • 关键字:mode
    • 可选值为:{'default', 'psd', 'magnitude', 'angle', 'phase'}
    • 默认为功率频谱图,magnitude为振幅频谱,angle为非展开相位频谱图,phase为展开相位频谱图
  • 设置频谱图颜色系

    • 关键字:cmap
    • 形式如:"颜色表_r"
    • 常用的有:'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens'
  • 设置频谱图窗口

    • 关键字:window
    • 默认值为:window_hanning
    • 创建窗口的向量为:window_hanning、window_none、numpy.blackman、numpy.hamming
  • 设置频谱图侧边

    • 关键字:side
    • 可选值:onside|twosided
    • oneside为默认值,一侧用于真实数据,返回单边频谱
    • twoside两侧用于复杂数据,强制返回双面
  • 设置频谱图NFFT

    • 关键字:NFFT
    • 默认值为:256
    • 设置每块用于FFT的数据点数,不能应用于获取零填充

3. 绘制频谱图步骤

  • 导入matplotlib.pyplot类
import matplotlib.pyplot as plt
复制代码
  • 使用numpy库里的arange()、sin()、cos()等方法准备x数据
t = np.arange(0.0,20.0,dt)

s1 = np.cos(2*np.pi*100*t)

s2 = 2*np.cos(2*np.pi*400*t)

s2[t<=5]=s2[12<t]=0

nse = 0.01 * np.random.random(size=len(t))

x = s1+s2+nse
复制代码
  • 调用pyplot.specgram()方法绘制频谱图
plt.specgram(x,NFFT=256,Fs=1,noverlap=128)
复制代码
  • 调用pyplot.show()显示频谱图
plt.show()
复制代码


  • 更改频谱图颜色为灰色系的,NFFT设置为1024
plt.specgram(x,NFFT=1024,Fs=1,noverlap=900,cmap="gray")

?

4. 小试牛刀

我们学习了关于绘制频谱图相关属性,在实际运用中通常会结合折线图一起来看,我们来实操一下吧

  • 通过pyplot.subplots()创建Axes对象
  • Axes1对象调用plot()绘制折线图
  • Axes2对象调用specgram()方法绘制频谱图
fig,(ax1,ax2) = plt.subplots(nrows=2)

dt= 0.0005
t = np.arange(0.0,20.0,dt)

s1 = np.cos(2*np.pi*100*t)

s2 = 2*np.cos(2*np.pi*400*t)

s2[t<=5]=s2[12<t]=0

nse = 0.01 * np.random.random(size=len(t))

x = s1+s2+nse

ax1.plot(t,x,"pink")

ax2.specgram(x,NFFT=1024,Fs=1,noverlap=900,cmap="gray")

plt.show()
复制代码

总结

本期,我们对matplotlib.pyplot.specgram()方法相关属性进行学习,通常在检查音视频等频率振幅数据时使用比较多。

以上是本期内容,欢迎大佬们点赞评论,下期见~

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:45:14  更:2021-12-02 16:45:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:42:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码