使用稀疏性(微球)进行色谱图基线估计和去噪(Matlab代码实现)

news2024/11/15 12:19:38

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

文献来源:

本文共同解决了色谱图基线校正和降噪问题。所提出的方法基于将一系列色谱峰建模为稀疏和稀疏衍生物,并将基线建模为低通信号。提出了一个凸优化问题,以封装这些非参数模型。为了说明色谱峰的阳性性,使用了不对称惩罚函数。开发了一种鲁棒的、计算高效的迭代算法,保证收敛到独特的最优解。该方法称为基线估计和稀疏性降噪(BEADS),使用模拟和真实色谱图数据对两种最先进的方法进行评估和比较。

不确定因素的几个来源会影响气相色谱和液相色谱分析的质量和性能[48],[1]。与许多其他分析化学方法(包括红外或拉曼光谱[6])一样,色谱图测量通常被认为是峰、背景和噪声的组合[35]。后两个术语有时合并为不同的面额:漂移噪声、基线漂移或频谱连续体。例如,在[5]中,基线漂移被表征为“彩色”噪声,在噪声功率谱中具有低频优势。在下文中,我们将术语“基线”限制为指趋势或偏差中最平滑的部分(当只有流动相从色谱柱中出现时记录检测器响应的色谱图部分,[34]),而我们称“噪声”为更随机的部分。峰线形状可能具有多种性质,从高斯模型到不对称经验模型[17,第97页]。同时,它们可以很容易地被描述为短宽度、陡峭的上下颠簸。因此,它们还具有相对宽的频谱,尽管是局部的,并且表现与漂移噪声干扰不同。撇开峰伪影(前部和尾部、共洗脱等)不谈,它们的定量分析(峰面积、宽度、高度定量)会受到准确消除平滑基线和随机噪声的可能性的阻碍[29]。事实上,这些问题通常通过两个不同的步骤独立解决(这反过来又可能“引入大量相关噪声”[5]):基线的一般低阶近似或平滑,以及去除背景的残余色谱图上的噪声过滤形式。

首先,虽然看似简单,但基线减法问题仍然是一个长期存在的问题,可以追溯到[58],[38]。最近的概述见[42],[20],[27]。光谱信息处理[46],[47],[57]一直是一个主要的行动过程。已经提出了基于线性和非线性[36],[26],[41]滤波或具有小波变换[9],[24],[7],[31]的 多尺度滤波形式的方法。峰谱、基线和噪声之间的相对重叠导致了基于各种约束的替代回归模型。基线的低通部分可以通过常规函数建模,例如低次多项式[33],[59]或(立方)样条模型[19],[23],[12],并结合手动识别,多项式拟合或迭代阈值方法[21]。已经设计了基于信号导数[5],[11]的相关算法。在许多方法中,建模和约束都基于基线本身的潜在特征:形状、平滑度和转换后的域属性。因此,研究广义惩罚[13],[3],[33],[59]似乎有益,对信号,背景或噪声的模型不那么严格。这就是本文的动机:联合估计这三种色谱成分,同时避免过于严格的参数模型。具体来说,在这项工作中,基线被建模为低通信号,而感兴趣的色谱峰被认为是稀疏的,直到二阶导数,留下随机噪声作为残差。

在过去的十年中,这种简约或稀疏的概念一直是信号处理和化学领域积极而富有成效的驱动力。它需要使用有限数量的非零参数或分量来描述感兴趣的信号。稀疏性在(描述的)准确性和(分解的)浓度之间进行权衡。已经开发了许多基于稀疏性的算法,用于重建、去噪、检测、反卷积。大多数稀疏建模技术源于“最小绝对收缩和选择运算符”(在套索绰号[50],[40]下更为人所知),基追寻方法[10],总变异[8]和复合正则化[2].虽然后者本质上促进了稀疏性,但不同的问题同时需要其他约束,如信号平滑度或残余随机性。

更具体地说,信号[33],[43],[44],[37]和图像处理[22],[15],[16],[49],[4]的最新工作促进了将潜在复杂测量分解为“足够”不同组件的框架。 这种非线性分解被称为“形态成分分析”、“几何分离”或“聚类稀疏性”[28]。这种方法适用于分析化学问题,依赖于基线和色谱峰的形态特性。图1(a)显示了从二维气相色谱法获得的色谱图x[52]。它由突然的峰值组成,返回到相对平坦的基线,因此表现出一种稀疏性。此外,如图1(b)和(c)所示,x的二阶和三阶导数也是稀疏的;通常比 X 本身更稀疏。因此,我们将色谱图的峰建模为稀疏信号,其前几个导数也是稀疏的。此外,基线有时由多项式或样条近似[32],[33],[59]。然而,在实践中,大多数基线信号并没有在长范围内忠实地遵循多项式定律。因此,我们将缓慢变化的基线漂移建模为低通信号。与多项式或样条近似相比,基线的更通用的低通模型提供了一种方便灵活的方法来指定平滑运算符的行为。

📚2 运行结果

 

部分代码:

%% Run the BEADS algorithm

% Filter parameters
fc = 0.006;     % fc : cut-off frequency (cycles/sample)
d = 1;          % d : filter order parameter (d = 1 or 2)

% Positivity bias (peaks are positive)
r = 6;          % r : asymmetry parameter

% Regularization parameters
amp = 0.8;      
lam0 = 0.5*amp;
lam1 = 5*amp;
lam2 = 4*amp;

tic
[x1, f1, cost] = beads(y, d, fc, r, lam0, lam1, lam2);
toc

%% Display the output of BEADS

ylim1 = [-50 200];
xlim1 = [0 3800];

figure(1)
clf

subplot(4, 1, 1)
plot(y)
title('Data')
xlim(xlim1)
ylim(ylim1)
set(gca,'ytick', ylim1)

subplot(4, 1, 2)
plot(y,'color', [1 1 1]*0.7)
line(1:N, f1, 'LineWidth', 1)
legend('Data', 'Baseline')
legend boxoff
title(['Baseline, as estimated by BEADS', ' (r = ', num2str(r), ', fc = ', num2str(fc), ', d = ', num2str(d),')'])
xlim(xlim1)
ylim(ylim1)
set(gca,'ytick', ylim1)

subplot(4, 1, 3)
plot(x1)
title('Baseline-corrected data')
xlim(xlim1)
ylim(ylim1)
set(gca,'ytick', ylim1)


subplot(4, 1, 4)
plot(y - x1 - f1)
title('Residual')
xlim(xlim1)
ylim(ylim1)
set(gca,'ytick', ylim1)

orient tall
print -dpdf example

%% Display cost function history

figure(2)
clf
plot(cost)
xlabel('iteration number')
ylabel('Cost function value')
title('Cost function history')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

Xiaoran Ning, Ivan W. Selesnick, Laurent Duval, in Chemometrics and Intelligent Laboratory Systems, December 2014,

🌈4 Matlab代码、数据、文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

okvis

论文 Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization 摘要 由于两种感知模式的互补性,视觉和惯性线索的融合在机器人中变得很流行。虽然迄今为止大多数融合策略都依赖于过滤方案,但视觉机器人界最近转向了非线性优化方法&#x…

Kafka的零拷贝

传统的IO模型 如果要把磁盘中的某个文件发送到远程服务器需要经历以下几个步骤 (1) 从磁盘中读取文件的内容,然后拷贝到内核缓冲区 (2) CPU把内核缓冲区的数据赋值到用户空间的缓冲区 (3) 在用户程序中调用write方法,把用户缓冲区的数据拷贝到内核下面…

树莓派上安装cmake

前言 记录一下在树莓派上安装cmake,因为之间安装出了点问题,但是后面解决了,于是记录一下。 直接安装报大红,看的我心里一颤 废话不多说,接下来上操作步骤 网上有的教程让wget下载压缩包,但是咱们就是不知道为啥我这样操作就是也报错,但是我感觉原理上是🆗的,并且…

Qt状态栏

QStatusBar QStatusBar* stBar statusBar();QLabel* lb1 new QLabel("标签1"); //lb1->setAlignment(Qt::AlignLeft); //左对齐QLabel* lb2 new QLabel("标签2");QLineEdit* edit new QLineEdit("edit");QPushButton* btnOpe…

Java程序逻辑控制(三种基本结构(顺序、分支、循环)、输入输出、循环输入)

目录 一、顺序结构 二、分支结构 1、 if 语句 2、switch 语句 与C语言不同,不能作为switch参数的类型:float double long boolean 三、循环结构 1.while循环 2.for循环 四、输入输出 1.输出 - 将结果显示打印到屏幕上 2.输入 3.输入输出综合…

用友畅捷通T+服务器数据库中了locked勒索病毒怎么办,如何处理解决

计算机技术的发展,也为网络安全埋下隐患,其中勒索病毒攻击已经成为企业和组织面临的严重威胁之一。作为一款被广泛使用的企业资源管理软件,用友畅捷通T系统也成为黑客攻击的目标之一。近期,我们收到很多企业的求助,公司…

Shell脚本实现分库分表操作

目录 一,分库备份 二,分库操作 三,分库分表备份 四,备份还原 一,分库备份 #!/bin/bash mysql_cmd-uroot -pzly666666 bak_path/backup/db [ -d ${bak_path} ] || mkdir -p ${bak_path}mysql ${mysql_cmd} -e show…

【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Pythonmatlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

FFmpeg 音视频开发工具

目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 官网:http…

Informer 论文学习笔记

论文:《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》 代码:https://github.com/zhouhaoyi/Informer2020 地址:https://arxiv.org/abs/2012.07436v3 特点: 实现时间与空间复杂度为 O ( …

LaTex4【下载模板、引入文献】

下载latex模板:(模板官网一般都有,去找) 我这随便找了一个: 下载得到一个压缩包,然后用overleaf打开👇: (然后改里面的内容就好啦) 另外,有很多在线的数学公式编辑器&am…

1 Python的前世今生

为什么要学Python 这个问题,仁者见仁,智者见智。编程界有一句名言:“人生苦短,我用Python”,这句话似乎道出了一些原因。Python是一门简单直观的语言,更是一门注重可读性和效率的语言。解决同一个问题&…

数据结构空间复杂度

数据结构空间复杂度 空间复杂度常见的复杂度对比 空间复杂度 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时额外占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的…

jmeter常用的性能测试监听器

jmeter中提供了很多性能数据的监听器,我们通过监听器可以来分析性能瓶颈 本文以500线程的阶梯加压测试结果来描述图表。 常用监听器 1:Transactions per Second 监听动态TPS,用来分析吞吐量。其中横坐标是运行时间,纵坐标是TPS…

【后端面经】微服务构架 (1-6) | 隔离:如何确保心悦会员体验无忧?唱响隔离的鸣奏曲!

文章目录 一、前置知识1、什么是隔离?2、为什么要隔离?3、怎么进行隔离?A) 机房隔离B) 实例隔离C) 分组隔离D) 连接池隔离 与 线程池隔离E) 信号量隔离F) 第三方依赖隔离二、面试环节1、面试准备2、基本思路3、亮点方案A) 慢任务隔离B) 制作库与线上库分离三、章节总结 …

【Linux】TCP协议

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录 👉TCP协议&…

java设计模式-建造者(Builder)设计模式

介绍 Java的建造者(Builder)设计模式可以将产品的内部表现和产品的构建过程分离开来,这样使用同一个构建过程来构建不同内部表现的产品。 建造者设计模式涉及如下角色: 产品(Product)角色:被…

通过clone的方式,下载huggingface中的大模型(git lfs install)

1、如图:可以手动一个个文件下载,但是那样太慢了,此时,可以点击下图圈起来的地方。 2、点击【Clone repository】,在命令行中,输入【git lfs install】(安装了这个,才会下载大文件&a…

【Git】git企业开发命令整理,以及注意点

1.git企业开发过程 业务的分支大概有以下几个: master:代码随时可能上线 develop:代码最新 feature/xxx:实际业务开发分支 release/xxx:预发布分支 fix:修复bug分支 过程大概是这样的: 首…

机器学习知识经验分享之六:决策树

python语言用于深度学习较为广泛,R语言用于机器学习领域中的数据预测和数据处理算法较多,后续将更多分享机器学习数据预测相关知识的分享,有需要的朋友可持续关注,有疑问可以关注后私信留言。 目录 一、R语言介绍 二、R语言安装…