59 lines
1.3 KiB
Matlab
59 lines
1.3 KiB
Matlab
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 |