IRootLab
An Open-Source MATLAB toolbox for vibrational biospectroscopy
interactive_bc_poly.m
Go to the documentation of this file.
1 %>@brief Plots polynomial baselines, Helps find order for polynomial-fit baseline correction
2 %>@ingroup interactive demo
3 %>@file
4 %> @sa pre_bc_poly
5 disp('*** Helps find polynomial order for polynomial-fit baseline correction ***');
6 varname = input('Enter dataset variable name [Demo Raman dataset]: ', 's');
7 
8 if isempty(varname)
9  dataset = load_data_raman_sample();
10 else
11  dataset = eval([varname ';']);
12 end;
13 no = size(dataset.X, 1);
14 
15 
16 idx = input(sprintf('Enter index of spectrum to use (between 1 and %d) [1]: ', no));
17 if isempty(idx) || idx <= 0
18  idx = 1;
19 end;
20 
21 dataset = dataset.map_rows(idx);
22 
23 
24 order = 5;
25 epsilon = 0;
26 
27 k = 1;
28 while 1
29  order_ = input(sprintf('Enter polynomial order [%d]: ', order));
30  if ~isempty(order_)
31  order = order_;
32  end;
33 
34 % epsilon_ = input(sprintf('Enter epsilon [%g]: ', epsilon));
35 % if ~isempty(epsilon_)
36 % epsilon = epsilon_;
37 % end;
38  pr = pre_bc_poly();
39  pr.order = order;
40  pr.epsilon = epsilon;
41 
42  dataset2 = pr.use(dataset);
43 
44  figure;
45  k = k+1;
46  hold off;
47  plot(dataset.fea_x, dataset.X, 'r', 'LineWidth', 2);
48  hold on;
49  plot(dataset.fea_x, dataset2.X, 'b', 'LineWidth', 2);
50  plot(dataset.fea_x, dataset.X-dataset2.X, 'k', 'LineWidth', 2);
51  legend({'Before', 'After', 'Baseline'});
52  format_xaxis(dataset);
53  format_frank();
54  title(sprintf('Order = %d', order));
55 
56 % s_happy = input(sprintf('Are you happy with order = %d and epsilon = %g [y/N]? ', order, epsilon), 's');
57  s_happy = input(sprintf('Are you happy with order = %d [y/N]? ', order), 's');
58  if ~isempty(intersect({s_happy}, {'y', 'Y'}))
59  break;
60  end;
61 end;
62 
63 
Polynomial Baseline Correction.
Definition: pre_bc_poly.m:6
function format_frank(in F, in scale, in handles)
function format_xaxis(in par)
function load_data_raman_sample()