### Measure LI Curve and calculate threshhold current li_sweepName="liSweep"; # sweep name ## Getting L-I curve results li_myr=getsweepresult(li_sweepName,"laser power"); li_power=li_myr.getattribute(li_myr.getattribute); li_current = li_myr.getparameter(li_myr.getparameter); plot(li_current,li_power,"Current [A]","Optical Power [W]", "L-I Curve"); legend("LI Curve"); li_numpts = length(li_current); ## Calculating slope of the L-I curve li_slope = matrix(li_numpts,1); li_slope(1) = ( li_power(2) - li_power(1) )/(li_current(2) - li_current(1)) ; for (li_i=2:li_numpts-1) { li_slope(li_i) = ( li_power(li_i+1) - li_power(li_i-1) )/ (li_current(li_i+1) -li_current(li_i-1)); } li_slope(li_numpts) = (li_power(li_numpts) - li_power(li_numpts-1) )/(li_current(li_numpts) - li_current(li_numpts-1)); ## Calculating second derivative of the L-I curve li_dslope = matrix(li_numpts,1); li_dslope(1) = ( li_slope(2) - li_slope(1) )/(li_current(2) - li_current(1)); for (li_i=2:li_numpts-1) { li_dslope(li_i) = ( li_slope(li_i+1) - li_slope(li_i-1) )/ (li_current(li_i+1) -li_current(li_i-1)); } li_dslope(li_numpts) = ( li_slope(li_numpts) - li_slope(li_numpts-1) )/(li_current(li_numpts) - li_current(li_numpts-1)); ## CalculatingtThreshold current li_kth = find(li_dslope,max(li_dslope)); li_thresholdcurrent = li_current(li_kth); ?"threshold current = " + num2str(li_thresholdcurrent); ##Save data li_out=struct; li_out.name = currentscriptname; li_out.thresholdcurrent = li_thresholdcurrent; li_out.thresholdcurrentindex = li_kth; li_out.current=li_current;