bAN*_*bAN 5 python signal-processing
我有以下信号数据:
信号为红色,滚动平均值为灰色.
我想找到一种方法来识别指数,其中在一个thresold值内的均值周围有连续的正负峰值.
例如,对于0,08的thresold,它将检测到22,35,36,第二个标记......
我不知道如何检测这些峰值.有人已经有这个用例吗?
小智 0
假设您有两个值列表,x和y。您还有滚动平均值的值列表,但这也许不是必需的。如果要识别峰值,可以减去该y系列的前一个值以获得相邻值之间差异的大小:
spikes = [0.0] + [abs(y[i]-y[i-1]) for i in range(1, len(y))]
Run Code Online (Sandbox Code Playgroud)
那么您感兴趣的峰值的值大于 0.16(高于平均值 0.08,低于平均值 0.08)。你可以这样找到这些:
threshold = 0.08
spike_locations = [x[i] for i in range(len(spikes)) if spikes[i] > 2 * threshold]
[22.0, 35.0, 36.0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |