自动坡度变化识别

2024-10-02 02:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在“z”形信号中自动识别两个坡度变化点。该信号,例如电阻与时间的关系,由三个具有不同持续时间的几乎线性趋势组成;它是通过实验获得的,因此点是分散的。 我发了一篇类似的帖子“使用numpy/scipy识别数字信号中的斜率变化”,但提出的解决方案并不能解决我的问题。我使用的测试代码如下所述,但简单地说,想法是使用一阶导数和二阶导数来确定点,并使用Savitzky-Golay滤波器来改善信号质量。无论如何,我得到的结果不允许确定两点(通常最终信号“yy”甚至不包含斜率变化的任何信息) 我想知道是否有人有不同的方法或改进建议。 先谢谢你

import numpy as np
import scipy.signal
plt.figure(1)
y = scipy.signal.savgol_filter(R, 5, 2)
plt.plot(time,y)

plt.figure(2)
asc=np.gradient(time)
sig=np.gradient(y)
y1= scipy.signal.savgol_filter(sig/asc, 5, 2)
asc2=np.gradient(asc)
sig2=np.gradient(sig)
yy = scipy.signal.savgol_filter(sig2/asc2, 5, 2)
plt.plot(time,sig2/asc2)

Tags: numpysignaltime信号nppltscipyfilter

热门问题