【问题标题】:How can I count the rising edge of a square signals using python?如何使用 python 计算方波信号的上升沿?
【发布时间】:2021-09-06 09:38:00
【问题描述】:

我有一个使用以下代码的方信号。如何使用 python 计算上升沿?

from scipy import signal
import numpy as np
import matplotlib.pyplot as plot

t = np.linspace(0, 1, 1000, endpoint=True)
plt.plot(t, signal.square(2 * np.pi * 5 * t))

下图代表我的输出:

【问题讨论】:

    标签: python signal-processing


    【解决方案1】:

    如果你的数据超级干净(就像提供的信号一样),那么只要找到值大于上一个时的出现次数即可:

    np.sum(np.diff(s) > 0) # 5
    

    【讨论】:

    • 我猜np.count_nonzero() 可以代替np.sum(),而且更明显? :)
    • 好吧,给定的解决方案给出了上升沿的数量。这就是解决方案。这也适用于真实数据
    • 注意,这不适用于嘈杂的数据。更稳健的解决方案将取决于噪声的性质
    • @iamwhoiam:出于好奇,您是如何获得如此干净的信号以使其有效的?
    • @YvesDaoust 我不能这么说,向我们的开发人员发送干净数据的道具;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2020-11-20
    • 2020-08-02
    • 1970-01-01
    相关资源
    最近更新 更多