#pragma rtGlobals=1 // Use modern global access method. #include #include Menu "Steady State" Submenu "Analyse spectres Abs" "Correction spectre abs 0 gde lambda",traitt_1spabsC0GdeLambda() "Correction spectre abs ligne de base",traitt_1spabsCBaseline() end Submenu "Analyse spectres Abs cinétique" "Correction baseline linéaire",traittspabsCbaselineLinear() "Correction baseline lognorm",traittspabsCbaselineLogNorm() "Correction baseline Poly3_LB non linéaire",traittspabsCbaselinePoly3() "Correction baseline Power_LB non linéaire",traittspabsCbaselinePower() "Correction baseline 0 à grde lambda",traittspabsC0GdLambda() "StoppedFlow Cor baseline 0 à grde lambda",traittspabsC0GdLambdaStoppedF() "Correction ligne de base", traittspabsCBaseline0() "StoppedFlow Cor ligne de base", traittspabsCBaseline0StoppedF() "Génération cinétiques",Cinetique() End End macro traittspabsCbaselinePower(namebase,namemask,numdep,numfin) string namebase,namemask variable numdep,numfin Prompt namebase,"Nom de base du spectre à analyser. Ex Abs_Cer_T" Prompt namemask,"Nom de la wave mask" Prompt numdep,"n° wave depart" Prompt numfin,"n° wave fin" silent 1 variable curA,curB variable i=numdep string namespectre,nomgraph string namespectrecor,nameBLref nomgraph=namebase+"_BLpow" Const="contraintes" Make/O/T/N=4 Const Make/O/D/N=3 W_coef W_coef={0,2e-5,11} Const= {"K0 > -2e-3","K0 < 2e-3","K1 > 0","K2 > 0"} // on va prendre le spectre 1 comme réferérence et définir la ligne de base de ref avec. i=1 namespectre=namebase+num2str(i) namespectrecor=namespectre+"_corBLpow" nameBLref="BLref" duplicate/o $namespectre $namespectrecor,$nameBLref FuncFit/NTHR=0/TBOX=0 FctPower, W_coef , $namespectre /M=$namemask /D /C=Const //CurveFit/NTHR=0/TBOX=0 poly 4, $namespectre /M=$namemask $nameBLref=(W_coef[0]+W_coef[1]*x^W_coef[2]) WaveStats/Q/R=(xcsr(A),xcsr(B)) $namespectrecor $namespectrecor-=V_avg // Correction de la ligne de base des autres spectres if (numdep ==1) i+=1 else i=numdep endif do namespectre=namebase+num2str(i) namespectrecor=namespectre+"_corBLpow" duplicate/o $namespectre $namespectrecor FuncFit/NTHR=0/TBOX=0 FctPower, W_coef , $namespectre /M=$namemask /D /C=Const $namespectrecor=$namespectre-(W_coef[0]+W_coef[1]*x^W_coef[2])+$nameBLref WaveStats/Q/R=(xcsr(A),xcsr(B)) $namespectrecor $namespectrecor-=V_avg print V_avg i+=1 while (i