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

使用numpy/scipy.trapz积分非基线起始信号峰及可视化需求

信号峰积分:可视化未校正区域与基线校正方法

我正尝试用numpy.trapz或scipy.trapz对信号峰手动选择起止范围进行积分,但这些函数默认会计算到基线(y=0)的AUC,而我的信号有时起止点高于基线。我可接受基线校正方法,但需先可视化未校正的积分区域以验证范围准确性。

积分区域参考示意图

示例数据生成

import numpy
import peakutils
from matplotlib import pyplot

centers = (30.5, 72.3)
x = numpy.linspace(0, 120, 121)
y = (peakutils.gaussian(x, 5, centers[0], 3) +
    peakutils.gaussian(x, 7, centers[1], 10) +
    numpy.random.rand(x.size))
pyplot.figure(figsize=(10,6))
pyplot.plot(x, y)
pyplot.title("含噪声的信号数据")
pyplot.show()

含噪声的信号数据


一、可视化未校正的积分区域

手动选定峰的起止索引后,通过填充色直观展示积分范围,验证选择是否准确:

# 手动指定峰的起止x值(示例为第一个峰:x=20到x=40)
start_idx = numpy.where(x == 20)[0][0]
end_idx = numpy.where(x == 40)[0][0]
x_peak = x[start_idx:end_idx+1]
y_peak = y[start_idx:end_idx+1]

# 绘制可视化图
pyplot.figure(figsize=(10,6))
pyplot.plot(x, y, label='原始信号')
# 填充从基线(y=0)到信号曲线的积分区域
pyplot.fill_between(x_peak, 0, y_peak, color='orange', alpha=0.3, label='未校正积分区域')
# 标记起止点
pyplot.scatter([x[start_idx], x[end_idx]], [y[start_idx], y[end_idx]], color='red', s=50, label='起止点')
pyplot.legend()
pyplot.title("未校正的积分区域可视化")
pyplot.show()

# 计算未校正的AUC值
auc_uncorrected = numpy.trapz(y_peak, x_peak)
print(f"未校正的AUC值:{auc_uncorrected:.2f}")

二、基线校正后的积分

若起止点高于基线,取起止点y值的平均值作为校正基线,计算峰相对该基线的AUC:

# 计算校正基线(起止点y值的平均值)
baseline = (y[start_idx] + y[end_idx]) / 2
# 生成校正后的信号值
y_corrected = y_peak - baseline

# 绘制校正后的可视化图
pyplot.figure(figsize=(10,6))
pyplot.plot(x, y, label='原始信号')
pyplot.hlines(baseline, x[start_idx], x[end_idx], color='green', linestyle='--', label='校正基线')
# 填充从校正基线到信号曲线的积分区域
pyplot.fill_between(x_peak, baseline, y_peak, color='blue', alpha=0.3, label='校正后积分区域')
pyplot.scatter([x[start_idx], x[end_idx]], [y[start_idx], y[end_idx]], color='red', s=50, label='起止点')
pyplot.legend()
pyplot.title("基线校正后的积分区域可视化")
pyplot.show()

# 计算校正后的AUC值
auc_corrected = numpy.trapz(y_corrected, x_peak)
print(f"基线校正后的AUC值:{auc_corrected:.2f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:10:34