Python-绘制曲线的包络线

之前分享过matlab如何绘制包络线(传送门:Matlab绘制信号包络线),今天分享一下python如何实现

包络线基于scipy库,利用scipy.signal.hilbert

用法

scipy.signal.hilbert(x,N=None,axis=-1)

使用希尔伯特变换计算分析信号。

默认情况下,沿最后一个轴进行变换。

入参

x--信号数据

N--傅里叶分量的数目。默认值:x.shape[轴]

Axism--int,沿其执行变换的轴。默认值:-1。

出参

xa--解析信号,沿轴的每个一维阵列

信号x(t)的分析信号x_a(t)为:

其中F是傅里叶变换,U是单位阶跃函数,y是x的希尔伯特变换。

换言之,频谱的负半部分被调零,从而将实值信号变为复信号。Hilbert变换信号可以从np.imag(Hilbert(x))得到,原始信号可以从np.real(Hilbert(x))得到。

样例使用希尔伯特变换来确定调幅信号的振幅包络和瞬时频率。

import numpy as npimport matplotlib.pyplot as pltfrom scipy.signal import hilbert, chirp
duration = 1.0fs = 400.0samples = int(fs*duration)t = np.arange(samples) / fs

创建一个频率从20 Hz增加到100 Hz的信号,并应用振幅调制。

signal = chirp(t, 20.0, t[-1], 100.0)signal *= (1.0 + 0.5 * np.sin(2.0*np.pi*3.0*t) )

振幅包络由解析信号的幅值给出。瞬时频率可以通过区分瞬时相位与时间的关系来获得。瞬时相位对应于分析信号的相位角。

analytic_signal = hilbert(signal)amplitude_envelope = np.abs(analytic_signal)instantaneous_phase = np.unwrap(np.angle(analytic_signal))instantaneous_frequency = (np.diff(instantaneous_phase) /                           (2.0*np.pi) * fs)
fig, (ax0, ax1) = plt.subplots(nrows=2)ax0.plot(t, signal, label='signal')ax0.plot(t, amplitude_envelope, label='envelope')ax0.set_xlabel("time in seconds")ax0.legend()ax1.plot(t[1:], instantaneous_frequency)ax1.set_xlabel("time in seconds")ax1.set_ylim(0.0, 120.0)fig.tight_layout()

Python-绘制曲线的包络线相关推荐

  1. 如何用Python绘制曲线——turtle画小鱼化石的实践篇

    turtle绘制曲线的方法很多,除了大家常用的"一步一拐法",用抛物线公式来绘制曲线也十分方便.(对"一步一拐法"感兴趣的童鞋可参考博文 <如何用Pyth ...

  2. python绘制曲线y=2x+5_Python绘制简易的二维图像

    大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...

  3. python绘制曲线y=2x+5_Python Matplotlib 简易教程

    原标题:Python Matplotlib 简易教程 简单演示 import matplotlib.pyplot as plt import numpy as np # 从[-1,1]中等距去50个数 ...

  4. python绘制曲线y=2x+5_Python数据可视化:Matplotlib绘图详解(二)

    上一章节我们学习了matplotlib的基本用法和坐标轴设置方面的一些内容,这节课,我们要学习在图中添加图例与标注. 基本用法 本章知识点归纳如下: 1.添加图例:plt.legend() 2.画点: ...

  5. python绘制曲线y=2x+5_使用python动态生成波形曲线的实现

    效果是这个样子的: 用到的模块: * matplotlib.pyplot * matplotlib.animation.FuncAnimation * numpy 三个圆的半径分别为:5, 2, 1. ...

  6. python绘制曲线、散点图

    数据可视化matplotlib 1.折线图. 某商品进价49元,售价75元,现在商场新品上架搞促销活动,顾客每多买一件就给优惠1%,但是每人最多可以购买30件.对于商场而言,活动越火爆商品单价越低,但 ...

  7. python绘制曲线视频_使用Python绘制各种优美简单曲线

    matplotlib是著名的Python绘图库,它提供了一整套绘图API,十分适合交互式绘图.,解决数据分析和可视化问题,其实也是Python的拿手好戏.另外,在数据处理过程中会用到numpy. 例如 ...

  8. python绘制曲线y=2x+5_python绘制GPM CSH潜热垂直剖面

    import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import h5py # 读取经纬度和潜热. ...

  9. caffe版本frcnn的 ROC,AUC,PR,AP介绍及python绘制

    这里介绍一下如题所述的四个概念以及相应的使用python绘制曲线: 参考博客:使用Python画ROC曲线以及AUC值 一般我们在评判一个分类模型的好坏时,一般使用MAP值来衡量,MAP越接近1,模型 ...

  10. python绘制影像组学训练集、测试集对应的ROC曲线以及瀑布图(rad-score 瀑布图)

    python绘制影像组学训练集.测试集对应的ROC曲线以及瀑布图(rad-score 瀑布图) # 所有数据的瀑布图 tagets_all = df['label'] tagets_all = df. ...

最新文章

  1. 面试高频!JVM必备教程~
  2. 解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法
  3. c语言卡尔曼函数库,kalman之c语言实现
  4. com.xxl.rpc.util.XxlRpcException: java.lang.IllegalStateException: failed to create a child event lo
  5. TIP 2018论文概述:基于深度学习的HEVC复杂度优化
  6. 自定义控件SettingItemView
  7. FPGA入门基础介绍
  8. js中数组filter过滤奇偶数_JS filter()方法:根据指定条件过滤数组元素
  9. 如何区分国内上网环境中不同的人为网络故障
  10. Oracle Instant Client安装与配置
  11. 如何为您的应用选择合适的微控制器?
  12. 掌上湘雅服务器无响应是什么情况,掌上湘雅APP查询体检报告
  13. springboot+mybatis打包时,单元测试类报错
  14. CSS面试须知--盒子模型、浮动及定位
  15. 总结:Grafana
  16. 2022基金从业考试如何备考
  17. 小米9卡刷Android 11开发版并安装系统证书抓包
  18. 预测、迭代与优化:用AI探寻组合优化问题最优解
  19. 编译R3LIVE报错: fatal error: livox_ros_driver/CustomMsg.h: 没有那个文件或目录 4 | #include <livox_ros_driver/
  20. 2022第三届全国大学生网络安全精英赛练习题(9)

热门文章

  1. controll层跳转页面_Spring mvc框架 controller间跳转 ,重定向 ,传参
  2. python读取超大csv文件_python – 读取一个巨大的.csv文件
  3. Docker服务的重启服务命令(systemctl restart docker)
  4. 工控服务器什么作用,服务器与工控机的用处和区别在哪?
  5. 蓝桥杯基础练习所有VIP习题解析代码
  6. 认识LTE(六): LTE中的信道特征以及信道估计技术
  7. 知乎问答推广怎么做,知乎问答营销技巧
  8. 2021年不可错过的40篇AI论文,你都读过吗?
  9. java获取上传视频的时长
  10. 《Android开发常用素材网站》