python scipy.signal 包络_python-如何获得信号的高低包络?

本文介绍如何在Python中使用scipy.signal包来获取信号的高低包络。通过寻找峰值和槽位,使用插值模型进行拟合,并展示了一个示例脚本,该脚本包括对数据的预处理和移动平均滤波器的应用。
摘要由CSDN通过智能技术生成

Is there a similar function in Python that can do that?

据我所知,在Numpy/Scipy/Python中没有这样的函数。然而,创建一个并不难。总体思路如下:

给定值向量:找出(s)峰的位置。我们叫他们(u)

找到s的槽的位置,我们称之为l。

将模型拟合到(u)值对。我们称之为

将模型拟合到(l)值对。我们称之为(løp)

在(s)的域上求值(u_p),以获得上包络的插值。(我们叫他们(q_))

在(s)域上求值(l_p),以获得下包络的插值。(我们叫他们(qu l))。

如您所见,它是三个步骤(查找位置、拟合模型、评估模型)的序列,但应用了两次,一次用于信封的上部,一次用于信封的下部。

要收集(s)的“峰值”,您需要找到(s)的斜率从正变为负的点;要收集(s)的“槽”,您需要找到(s)的斜率从负变为正的点。

峰值示例:s=[4,5,4]5-4为正4-5为负

槽示例:s=[5,4,5]4-5为负5-4为正

下面是一个示例脚本,让您从大量内联注释开始:from numpy import array, sign, zeros

from scipy.interpolate import interp1d

from matplotlib.pyplot import plot,show,hold,grid

s = array([1,4,3,5,3,2,4,3,4,5,4,3,2,5,6,7,8,7,8]) #This is your noisy vector of values.

q_u =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值