Files
imdd_silas/projects/MPI/MPI_August/auswertung/hpf_curve.m
2026-03-25 10:57:48 +01:00

76 lines
2.1 KiB
Matlab

M = wh.parameter.M.values(1);
datarate = wh.parameter.datarate.values(1);
sirs = wh.parameter.sir.values;
laser_linewidth = wh.parameter.laser_linewidth.values(1);
pnoi = wh.parameter.pn_key.values;
rop = wh.parameter.rop.values;
hpf = wh.parameter.hpf.values(2);
cols = linspecer(16);
for lw = laser_linewidth
cnt = 0;
for sir = sirs
cnt = cnt+1;
for pnk = pnoi
%cnt = cnt+1;
ber_ffe = wh.getStoValue('ber_ffe',M,datarate,sir,lw,pnk,rop,fc);
rrop_ffe(cnt,pnk) = getIntersection(ber_ffe,rop);
% if 0
% % 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
% end
if sum(ber_ffe)
figure(44);
plot(rop,ber_ffe',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE only",'Color',cols(cnt,:));
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
end
end
end
figure(123)
hold on
plot(sirs,mean(rrop_ffe,2),'DisplayName',['lw: ',num2str(lw), ' MHz'],"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10)
xlabel('Signal to Interference (dBm)');
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