【指数衰减+非对称加权】基于自适应惩罚最小二乘的光谱基线校正算法(MATLAB)
提出算法是一种改进的自适应非对称最小二乘基线估计方法,在传统非对称最小二乘框架基础上,引入指数衰减因子来动态调整正残差区域的权重,从而避免强峰对基线拟合的过度牵引。通过迭代求解加权惩罚最小二乘问题,算法能够自适应地分离光谱中的基线漂移和信号峰,尤其适用于具有尖锐或高强度峰的分析仪器数据。
流程步骤
一、解析并接收输入参数,包括原始光谱矩阵、平滑参数、差分阶数、非对称参数、指数衰减系数以及最大迭代次数。
二、根据指定的差分阶数构建有限差分矩阵,并计算平滑惩罚矩阵,即平滑参数乘以差分矩阵的转置与其自身的乘积。
三、针对原始光谱矩阵中的每一个样本行向量,初始化权重向量为全一向量,并初始化残差符号标记。
四、进入迭代循环,执行以下子步骤:
(一)利用当前权重向量构建稀疏对角权重矩阵。
(二)求解加权惩罚最小二乘线性方程组,通过乔莱斯基分解获得当前基线估计向量。
(三)计算残差向量,即原始信号减去基线估计。
(四)根据残差的正负更新权重:对于残差为正的位置,新权重等于非对称参数乘以以负残差除以衰减系数为指数的指数函数值;对于残差为负的位置,新权重等于一减去非对称参数。
五、判断收敛条件:若当前残差的正负模式与上一轮迭代完全相同,则判定算法收敛,终止内层迭代;否则继续迭代直至达到最大迭代次数。
六、将最终得到的基线估计存储于输出基线矩阵的对应行中。
七、遍历完所有样本后,计算校正光谱矩阵,即原始光谱矩阵减去基线矩阵,并输出校正结果与基线估计。