使用BaselineRemoval校正CA通量信号后y轴数值变化原因咨询
BaselineRemoval库基线校正后y轴数值变化原因说明
基线校正后y轴数值发生变化是该类算法的正常处理结果,并非运行错误,核心原因如下:
- 你使用的ModPoly、IModPoly、ZhangFit三类基线校正算法,核心逻辑都是先拟合出贴合信号漂移趋势的动态基线曲线,再将原始信号每个点的数值减去对应位置的基线拟合值,得到校正后输出,因此校正后数值必然与原始值存在差异
- 你提供的CA通量信号存在周期性先下降后抬升的特征,拟合得到的基线是随序列索引变化的平滑曲线,每个信号点减去的基线值均不相同,最终校正结果的数值范围、整体量级都会和原始数据有明显区别
- 注意你代码中赋值
input_array = x_org,但贴出的测试数组变量名为a_org,需要确认变量名匹配,避免因变量赋值错误引入额外的数值误差
如果需要验证数值变化逻辑,可自行计算对应算法的拟合基线值,示例代码如下:
from BaselineRemoval import BaselineRemoval import numpy as np polynomial_degree=2 # 替换为你的实际输入数组 input_array = a_org baseObj=BaselineRemoval(input_array) Zhangfit_output=baseObj.ZhangFit() # 计算ZhangFit算法拟合的基线 zhang_baseline = input_array - Zhangfit_output # 验证等式成立:原始值 = 校正后值 + 基线值 print(np.allclose(input_array, Zhangfit_output + zhang_baseline))
如果你的使用场景需要校正后信号保留原始数值的基础量级,可在基线校正完成后根据需求做后处理偏移,比如将校正后结果加上原始信号的最小值即可。
内容的提问来源于stack exchange,提问作者user1631306
相关产品推荐
相关产品推荐

