53 lines
1.8 KiB
Matlab
53 lines
1.8 KiB
Matlab
M = wh.parameter.M.values(1);
|
|
datarate = wh.parameter.datarate.values(1);
|
|
sir = wh.parameter.sir.values(1);
|
|
laser_linewidth = wh.parameter.laser_linewidth.values(1);
|
|
pn_key = wh.parameter.pn_key.values;
|
|
rop = wh.parameter.rop.values;
|
|
|
|
cols = linspecer(8);
|
|
|
|
cnt = 0;
|
|
for pnk = pn_key
|
|
|
|
%cnt = cnt+1;
|
|
ber_ffe = wh.getStoValue('ber_ffe',M,datarate,sir,laser_linewidth,pnk,rop);
|
|
ber_dcavg = wh.getStoValue('ber_dcavg',M,datarate,sir,laser_linewidth,pnk,rop);
|
|
ber_adapt = wh.getStoValue('ber_adapt',M,datarate,sir,laser_linewidth,pnk,rop);
|
|
ber_derem = wh.getStoValue('ber_dcrem',M,datarate,sir,laser_linewidth,pnk,rop);
|
|
|
|
% Create the initial plot
|
|
figure(44);
|
|
a = gca;
|
|
cnt = numel(a.Children)+1;
|
|
hold on; % Retain the plot so new points can be added without complete redraw
|
|
|
|
if sum(ber_ffe)
|
|
plot(rop,ber_ffe',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE only",'Color',cols(cnt,:));
|
|
end
|
|
|
|
if sum(ber_dcavg)
|
|
plot(rop,ber_dcavg',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE + FF DC Avg.",'Color',cols(cnt+1,:));
|
|
end
|
|
|
|
if sum(ber_adapt)
|
|
plot(rop,ber_adapt',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE + Adaptive Levels",'Color',cols(cnt+2,:));
|
|
end
|
|
|
|
if sum(ber_derem)
|
|
plot(rop,ber_derem',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE + Adaptive DC-Subtraction",'Color',cols(cnt+3,:));
|
|
end
|
|
|
|
end
|
|
|
|
yline(3.8e-3,'DisplayName','HD-FEC','LineStyle','--','HandleVisibility','off');
|
|
xlabel('Received Optical Power (dBm)');
|
|
ylabel('Bit Error Rate (BER)');
|
|
title('Bit Error Rate vs. ROP');
|
|
set(gca,'yscale','log');
|
|
set(gca,'Box','on');
|
|
grid on;
|
|
grid minor
|
|
legend
|
|
|