M = wh.parameter.M.values(1); datarate = wh.parameter.datarate.values(1); sirs = wh.parameter.sir.values; laser_linewidths = wh.parameter.laser_linewidth.values; pnoi = wh.parameter.pn_key.values; rop = wh.parameter.rop.values; winlengths = wh.parameter.winlength.values(1); cols = linspecer(numel(winlengths)); figure(44); hold on cntlw = 0; for laser_linewidth = laser_linewidths cntlw = cntlw+1; cntsir = 0; for sir = sirs cntsir = cntsir+1; for pnk = pnoi %cnt = cnt+1; ber_ffe = wh.getStoValue('ber_ffe',M,datarate,sir,laser_linewidth,pnk,rop,winlengths); rrop_ffe(cntsir) = getIntersection(ber_ffe,rop); end end plot(sirs,rrop_ffe,'DisplayName',['Linewidth: ',num2str(laser_linewidth.*1e-6),' MHz'],"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10) xlabel('Signal to Interference Ratio (dB)'); ylabel('Sensitivity in dBm'); title('Receiver Sensitivity vs. SIR'); set(gca,'Box','on'); grid on; grid minor legend end function i = getIntersection(ber,rop) %get intersection between rop curve and hd-fec limit hdfec = 3.8e-3 .* ones(size(ber)); i = InterX([rop;hdfec'],[rop;ber']); if isempty(i) i = NaN; else i = i(1); end end