You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python统计方波信号的上升沿数量

Python统计方波信号上升沿数量的实现方法

你生成的是5Hz理想方波,1秒时长内理论上有5个上升沿,可通过以下方法实现统计:

注:你的代码存在小笔误,导入matplotlib时命名和后续使用不一致,将import matplotlib.pyplot as plot改为import matplotlib.pyplot as plt即可正常运行。


方法1:直接差分法(最适合理想方波)

原理:上升沿的本质是信号从低电平跳变到高电平,相邻采样点的差值会出现明显正值,统计这类正值的数量即可得到上升沿总数。

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

t = np.linspace(0, 1, 1000, endpoint=True)
# 生成方波信号
sq_signal = signal.square(2 * np.pi * 5 * t)

# 统计上升沿
diff_signal = np.diff(sq_signal)
# 理想方波跳变差值为2,设置阈值>1可过滤微小噪声干扰
rise_count = np.sum(diff_signal > 1)

print(f"上升沿数量:{rise_count}")

# 绘图
plt.plot(t, sq_signal)
plt.show()

运行后输出结果为上升沿数量:5,和5Hz方波的理论上升沿数量一致。


方法2:过零检测法(兼容带偏置的方波)

如果你的方波不是±1输出(比如是0到1的方波),可以用正方向过阈值的逻辑统计,阈值设置为方波高低电平的中间值即可:

# ±1方波的高低电平中间值为0
cross_pos = np.where((sq_signal[:-1] < 0) & (sq_signal[1:] >= 0))[0]
rise_count = len(cross_pos)

你生成的方波波形如下:
方波输出波形

内容的提问来源于stack exchange,提问作者AnonymousScientificUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:39:00