函数用法:

scipy.signal.find_peaks(x, height=None, threshold=None, distance=None, prominence=None, width=None, wlen=None, rel_height=0.5, plateau_size=None)

解释:输入

x: 带有峰值的信号序列

height: 低于指定height的信号都不考虑

threshold: 其与相邻样本的垂直距离

distance: 相邻峰之间的最小水平距离, 先移除较小的峰,直到所有剩余峰的条件都满足为止。

prominence: 个人理解是突起程度,详见peak_prominences

width: 波峰的宽度,详见peak_widths

plateau_size: 保证峰对应的平顶数目大于给定值

返回值:

peaks: x对应的峰值的索引

properties:

height--> ‘peak_heights’

threshold-->‘left_thresholds’, ‘right_thresholds’

prominence-->‘prominences’, ‘right_bases’, ‘left_bases’

width-->‘width_heights’, ‘left_ips’, ‘right_ips’

plateau_size-->‘plateau_sizes’, left_edges’, ‘right_edges’

小列子01:

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np
x = electrocardiogram()[2000:4000]
peaks, _ = find_peaks(x, height=0)
plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.plot(np.zeros_like(x), "--", color="gray")
plt.show()

小列子02:

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np
#选择大于0的
# x = electrocardiogram()[2000:4000]
# peaks, _ = find_peaks(x, height=0)
# plt.plot(x)
# plt.plot(peaks, x[peaks], "x")
# plt.plot(np.zeros_like(x), "--", color="gray")
# plt.show()#小于0一下的
x = electrocardiogram()[2000:4000]
border = np.sin(np.linspace(0, 3 * np.pi, x.size))
peaks, _ = find_peaks(x, height=(-border, border))
plt.plot(x)
plt.plot(-border, "--", color="gray")
plt.plot(border, ":", color="gray")
plt.plot(peaks, x[peaks], "x")
plt.show()

小列子03:

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np#我们可以通过要求至少150个样本的距离来轻松选择心电图(ECG)中QRS络合物的位置
x = electrocardiogram()[2000:4000]
peaks, _ = find_peaks(x, distance=150)
plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.show()

小列子04:

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np#通过将允许的突出限制为0.6
x = electrocardiogram()[2000:4000]
peaks, properties = find_peaks(x, prominence=(None, 0.6))
plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.show()

小列子05:

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np#要仅选择非典型心跳,我们将两个条件结合起来:最小突出1和至少20个样本的宽度。
x = electrocardiogram()[17000:18000]
peaks, properties = find_peaks(x, prominence=1, width=20)plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.vlines(x=peaks, ymin=x[peaks] - properties["prominences"],ymax = x[peaks], color = "C1")
plt.hlines(y=properties["width_heights"], xmin=properties["left_ips"],xmax=properties["right_ips"], color = "C1")
plt.show()

scipy.signal.find_peaks(峰值检测)相关推荐

  1. scipy.signal信号处理的库(笔记06)

    信号处理(scipy.signal) 网址:https://docs.scipy.org/doc/scipy/reference/signal.html#scipy.signal 卷积 convolv ...

  2. 利用 scipy.signal中的spectrogram分析信号的时频联合分布

    简 介: 通过时频分布可以分析出时变信号的内部频谱结构的变化.但对于普通的窄带信号,求取的频谱中具有比较高的峰值,在使用普通的热力图显示的时候,过高的峰值数据会将峰值比较小的频谱进行压制.对结果中的过 ...

  3. 中值滤波scipy.signal.medfilt()方法

    中值滤波将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的中位数代替 .与邻域平均法类似,但计算的是中值. 用scipy.signal.medfilt()实现中值滤波 函数原型: scip ...

  4. Python知识: scipy signal.chirp用法例

    一.说明 scipy signal.chirp是产生波形的函数,可以虚拟出声音波形.与Wave配合可以实现虚拟音响. 二.函数用法 scipy.signal.chirp(t, f0, t1, f1, ...

  5. python 希尔伯特变换_python scipy signal.hilbert用法及代码示例

    使用希尔伯特变换来计算分析信号. 默认情况下,转换是沿着最后一个轴完成的. 参数: x:array_like信号数据.必须是真实的. N:int, 可选参数傅立叶分量的数量.默认:x.shape[ax ...

  6. 巴特沃斯滤波器python_如何用Scipy.signal.bu实现带通巴特沃斯滤波器

    您可以跳过button的使用,而只需为过滤器选择一个顺序,看看它是否符合您的过滤条件.要生成带通滤波器的滤波器系数,请将滤波器阶数.截止频率Wn=[low, high](表示为奈奎斯特频率的分数,即采 ...

  7. AttributeError: module ‘scipy.signal‘ has no attribute ‘correlation_lags‘

    一般这种问题,都是版本号不匹配的问题,通过 pip 更新安装包即可 我原来scipy的版本号是 1.5.2,执行代码 lags = signal.correlation_lags(len(u), le ...

  8. scipy库 signal 导入_Python scipy.signal方法代码示例

    本文整理汇总了Python中scipy.signal方法的典型用法代码示例.如果您正苦于以下问题:Python scipy.signal方法的具体用法?Python scipy.signal怎么用?P ...

  9. scipy.signal.peak_prominences解析

    函数格式: scipy.signal.peak_prominences(x, peaks, wlen=None)[source] 一个波峰的prominences指的是: The prominence ...

最新文章

  1. 【错误记录】Android Studio 编译报错 ( Invalid main APK outputs : EarlySyncBuildOutput )
  2. 《王者荣耀》技术总监复盘回炉历程:没跨过这三座大山,就是另一款MOBA霸占市场了...
  3. 【转】Plotting texts as graphs with R and igraph
  4. Win10/Win7小技巧:教你如何彻底关闭系统进程
  5. 蓝桥杯 基础练习 数的读法
  6. 终极之战:Linux Windows
  7. 计算机网络第三版周舸答案,计算机网络技术基础第3版周舸第一章节计算机网络基础知识课件教学.ppt...
  8. h5前端开发,96道前端面试题
  9. TwinCAT 3 轴程序
  10. 拼多多进军社区团购 店宝宝:巨头竞争加剧
  11. 多边形Polygon
  12. 当Apple TV+的生态化反梦,撞上一个“日渐昂贵”的流媒体市场
  13. 服务器winsxs文件夹怎么清理工具,winsxs,详细教您winsxs文件夹清理方法
  14. Java SpringMVC毕业项目实战-学生信息管理系统
  15. TESTTESTTESTTESTTESTTEST
  16. IOS 移动端视频播放不全屏
  17. 语义分析的一些方法(三)
  18. 黄金发展期已远,蜻蜓、荔枝、喜马拉雅们下一个增长点何在?
  19. 正弦波和方波发生器的设计
  20. 【CATIA的Mac地址错误】

热门文章

  1. 前端实习日记——高新兴科技集团
  2. Python深度剖析贪吃蛇游戏的设计与实现
  3. POJ2823 Sliding Window 单调队列
  4. Spring-Security (学习记录二)--修改为自己的登录页面
  5. 图片类关于实现图片剪切功能的相关类的学习心得
  6. eclipse查看android源码包(eclipse导入android源码包)
  7. 【深入】java 单例模式
  8. SQLite使用报告
  9. 生成下面的模块时,启用了优化或没有调试信息
  10. 实现删除商品信息功能