1 简介
This paper jointly addresses the problems of chromatogram baseline correction and noise reduction. The proposed approach is based on modeling the series of chromatogram peaks as sparse with sparse derivatives, and on modeling the baseline as a low-pass signal. A convex optimization problem is formulated so as to encapsulate these non-parametric models. To account for the positivity of chromatogram peaks, an asymmetric penalty function is utilized. A robust, computationally effificient, iterative algorithm is developed that is guaranteed to converge to the unique optimal solution. The approach, termed Baseline Estimation and Denoising With Sparsity (BEADS), is evaluated and compared with two state-of-the-art methods using both simulated and real chromatogram data.
2 部分代码
%% Example: Chromatograms BEADS (Baseline Estimation And Denoising with Sparsity)%% This example illustrates the use of BEADS to estimate and remove the% baseline of chromatogram series.%% Reference:% 'BEADS: Joint baseline estimation and denoising of chromatograms using% sparse derivatives'%% Xiaoran Ning, Ivan Selesnick,% Polytechnic School of Engineering, New York University, Brooklyn, NY, USA%% Laurent Duval,% IFP Energies nouvelles, Technology Division, Rueil-Malmaison, France,% Universite Paris-Est, LIGM, ESIEE Paris, France%% 2014%% Startclear alladdpath dataload data/noise.mat;load data/chromatograms.mat;whos%% Load data% Load data and add noise.y = X(:, 3) + noise * 0.5;N = length(y);%% Run the BEADS algorithm% Filter parametersfc = 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 parametersamp = 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 BEADSylim1 = [-50 200];xlim1 = [0 3800];figure(1)clfsubplot(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 boxofftitle(['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 tallprint -dpdf example%% Display cost function historyfigure(2)clfplot(cost)xlabel('iteration number')ylabel('Cost function value')title('Cost function history')
3 仿真结果
4 参考文献
[1] A X N , A I W S , C L D B . Chromatogram baseline estimation and denoising using sparsity (BEADS)[J]. Chemometrics and Intelligent Laboratory Systems, 2014, 139(139):156-167.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。