如何找出时间序列中启动新波形的最小有效电压差(>2V)?
解决方案:提取大于2V的电压差分最小值
直接按以下步骤处理数据,就能得到你要的结果:
1. 读取并预处理数据
注意你提供的示例数据文件名是3_8_2_3_8_2-351.csv,要和代码里的文件名对应上:
import pandas as pd import matplotlib.pyplot as plt # 读取数据,替换成你的实际文件路径 df = pd.read_csv('3_8_2_3_8_2-351.csv') df.columns = ['time', 'voltage']
2. 计算差分并筛选有效数据
计算电压的一阶差分,筛选出差分值大于2V的部分(排除噪声),再取最小值:
# 计算电压差分 diff_1 = df['voltage'].diff() # 筛选大于2V的差分 valid_diffs = diff_1[diff_1 > 2] # 获取最小值 min_valid_diff = valid_diffs.min() print(f"大于2V的电压差分最小值:{min_valid_diff:.4f} V")
3. 定位最小值对应的时间点(可选)
如果需要知道这个最小值对应的时间戳,加上这段代码:
# 找到最小值对应的行 min_diff_row = df[diff_1 == min_valid_diff] print(f"最小值对应的时间:{min_diff_row['time'].values[0]} μs")
验证结果(可选)
可以把筛选后的差分数据可视化,确认结果和图中红色标记的线段对应:
plt.figure(figsize=(10,4)) plt.plot(df['time'], diff_1, label='所有差分') plt.scatter(min_diff_row['time'], min_valid_diff, color='red', s=50, label='目标最小值') plt.xlabel('Time in μs') plt.ylabel('Voltage in V') plt.legend() plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者Nazmul1001
相关产品推荐
相关产品推荐

