Code for Deliverable 05
This commit is contained in:
65
projects/MPI_August/auswertung/clipfactor_curve.m
Normal file
65
projects/MPI_August/auswertung/clipfactor_curve.m
Normal file
@@ -0,0 +1,65 @@
|
||||
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(1);
|
||||
rop = wh.parameter.rop.values;
|
||||
cfs = wh.parameter.vbias_rel.values;
|
||||
|
||||
cols = linspecer(6);
|
||||
c_cnt = 0;
|
||||
for c = cfs
|
||||
c_cnt = c_cnt+1;
|
||||
for pnk = pn_key
|
||||
|
||||
%get ROP curve data for cur. sir and realization
|
||||
|
||||
ber_ffe = wh.getStoValue('ber_ffe',M,datarate,sir,laser_linewidth,pnk,rop,c);
|
||||
|
||||
try
|
||||
rrop_ffe(c_cnt,1) = getIntersection(ber_ffe,rop);
|
||||
end
|
||||
|
||||
if 1
|
||||
% Create rop plot
|
||||
figure(43);
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
plot(rop,ber_ffe',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber ffe",'Color',cols(5,:));
|
||||
yline(3.8e-3,'DisplayName','HD-FEC');
|
||||
xlabel('Signal to Interference Ratio (dB)');
|
||||
ylabel('Bit Error Rate (BER)');
|
||||
|
||||
set(gca,'yscale','log');
|
||||
grid on;
|
||||
legend
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
figure(2243);
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
plot(cfs,mean(rrop_ffe,2,"omitnan")',"LineWidth",1,"LineStyle","--","Marker",".","MarkerSize",10,"DisplayName","FFE",'Color',cols(5,:));
|
||||
|
||||
xlabel('Clipfactor');
|
||||
ylabel('Receiver Sensitivity');
|
||||
%title(['Bit Error Rate vs. SIR; SIR: ',num2str(s),' dB']);
|
||||
grid on;
|
||||
legend
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
59
projects/MPI_August/auswertung/dc_removal_sir_curve.m
Normal file
59
projects/MPI_August/auswertung/dc_removal_sir_curve.m
Normal file
@@ -0,0 +1,59 @@
|
||||
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,winlength);
|
||||
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
|
||||
71
projects/MPI_August/auswertung/dc_removal_window_length.m
Normal file
71
projects/MPI_August/auswertung/dc_removal_window_length.m
Normal file
@@ -0,0 +1,71 @@
|
||||
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;
|
||||
winlengths = wh.parameter.winlength.values;
|
||||
|
||||
cols = linspecer(numel(winlengths));
|
||||
figure(44);
|
||||
hold on
|
||||
|
||||
cnt = 0;
|
||||
for winlength = winlengths
|
||||
cnt = cnt+1;
|
||||
for sir = sirs
|
||||
|
||||
for pnk = pnoi
|
||||
|
||||
|
||||
|
||||
%cnt = cnt+1;
|
||||
ber_ffe = wh.getStoValue('ber_ffe',M,datarate,sir,laser_linewidth,pnk,rop,winlength);
|
||||
rrop_ffe(cnt,pnk) = getIntersection(ber_ffe,rop);
|
||||
|
||||
|
||||
if sum(ber_ffe)
|
||||
|
||||
plot(rop,ber_ffe',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName",['win len: ',num2str(winlength), ' '],"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
|
||||
|
||||
end
|
||||
|
||||
figure(123)
|
||||
hold on
|
||||
plot(winlengths,mean(rrop_ffe,2),'DisplayName',['Linewidth: 10 MHz'],"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10)
|
||||
xlabel('Window Length');
|
||||
ylabel('Sensitivity in dBm');
|
||||
title('Receiver Sensitivity vs. Window Length');
|
||||
set(gca,'Box','on');
|
||||
grid on;
|
||||
grid minor
|
||||
legend
|
||||
|
||||
|
||||
|
||||
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
|
||||
76
projects/MPI_August/auswertung/hpf_curve.m
Normal file
76
projects/MPI_August/auswertung/hpf_curve.m
Normal file
@@ -0,0 +1,76 @@
|
||||
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
|
||||
@@ -0,0 +1,59 @@
|
||||
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;
|
||||
hpfs = wh.parameter.hpf.values;
|
||||
|
||||
cols = linspecer(16);
|
||||
figure(44);
|
||||
hold on
|
||||
for hpf = hpfs
|
||||
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,hpf);
|
||||
% rrop_ffe(cnt,pnk) = getIntersection(ber_ffe,rop);
|
||||
|
||||
|
||||
if sum(ber_ffe)
|
||||
|
||||
plot(rop,ber_ffe',"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName",['fc: ',num2str(hpf.*1e-6), ' MHz']);
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
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
|
||||
59
projects/MPI_August/auswertung/mrds_sir_curve.m
Normal file
59
projects/MPI_August/auswertung/mrds_sir_curve.m
Normal file
@@ -0,0 +1,59 @@
|
||||
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
|
||||
@@ -5,31 +5,48 @@ laser_linewidth = wh.parameter.laser_linewidth.values(1);
|
||||
pn_key = wh.parameter.pn_key.values;
|
||||
rop = wh.parameter.rop.values;
|
||||
|
||||
cols = linspecer(4);
|
||||
cols = linspecer(8);
|
||||
|
||||
cnt = 0;
|
||||
for pnk = pn_key
|
||||
|
||||
cnt = cnt+1;
|
||||
%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(43);
|
||||
figure(44);
|
||||
a = gca;
|
||||
cnt = numel(a.Children)+1;
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
plot(rop,ber_ffe',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber ffe",'Color',cols(1,:));
|
||||
plot(rop,ber_dcavg',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber dcavg",'Color',cols(2,:));
|
||||
plot(rop,ber_adapt',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber adapt",'Color',cols(3,:));
|
||||
plot(rop,ber_derem',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber derem",'Color',cols(4,:));
|
||||
|
||||
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');
|
||||
xlabel('Signal to Interference Ratio (dB)');
|
||||
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
|
||||
|
||||
|
||||
81
projects/MPI_August/auswertung/sensitivity_curve.m
Normal file
81
projects/MPI_August/auswertung/sensitivity_curve.m
Normal file
@@ -0,0 +1,81 @@
|
||||
M = wh.parameter.M.values(1);
|
||||
datarate = wh.parameter.datarate.values(1);
|
||||
sir = wh.parameter.sir.values(4);
|
||||
laser_linewidths = wh.parameter.laser_linewidth.values;
|
||||
pn_key = wh.parameter.pn_key.values;
|
||||
rop = wh.parameter.rop.values;
|
||||
|
||||
cols = linspecer(4);
|
||||
|
||||
for laser_linewidth = laser_linewidths
|
||||
s_cnt = 0;
|
||||
|
||||
for s = sir
|
||||
s_cnt = s_cnt+1;
|
||||
for pnk = pn_key
|
||||
|
||||
%get ROP curve data for cur. sir and realization
|
||||
|
||||
ber_ffe = wh.getStoValue('ber_ffe',M,datarate,s,laser_linewidth,pnk,rop);
|
||||
ber_dcavg = wh.getStoValue('ber_dcavg',M,datarate,s,laser_linewidth,pnk,rop);
|
||||
ber_adapt = wh.getStoValue('ber_adapt',M,datarate,s,laser_linewidth,pnk,rop);
|
||||
ber_derem = wh.getStoValue('ber_dcrem',M,datarate,s,laser_linewidth,pnk,rop);
|
||||
|
||||
rrop_ffe(s_cnt,pnk) = getIntersection(ber_ffe,rop);
|
||||
rrop_dcavg(s_cnt,pnk) = getIntersection(ber_dcavg,rop);
|
||||
rrop_adapt(s_cnt,pnk) = getIntersection(ber_adapt,rop);
|
||||
rrop_derem(s_cnt,pnk) = getIntersection(ber_derem,rop);
|
||||
|
||||
if 1
|
||||
% Create rop plot
|
||||
figure(43);
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
plot(rop,ber_ffe',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber ffe",'Color',cols(1,:));
|
||||
% scatter(rrop_ffe(s_cnt,pnk),3.8e-3,'LineWidth',2);
|
||||
plot(rop,ber_dcavg',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber dcavg",'Color',cols(2,:));
|
||||
plot(rop,ber_adapt',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber adapt",'Color',cols(3,:));
|
||||
plot(rop,ber_derem',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber dcrem",'Color',cols(4,:));
|
||||
yline(3.8e-3,'DisplayName','HD-FEC');
|
||||
xlabel('Signal to Interference Ratio (dB)');
|
||||
ylabel('Bit Error Rate (BER)');
|
||||
title(['Bit Error Rate vs. SIR; SIR: ',num2str(s),' dB']);
|
||||
set(gca,'yscale','log');
|
||||
grid on;
|
||||
legend
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
figure(223);
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
% plot(sir,mean(rrop_ffe,2,"omitnan")',"LineWidth",1,"LineStyle",":","Marker",".","MarkerSize",10,"DisplayName","FFE",'Color',cols(1,:));
|
||||
% plot(sir,mean(rrop_dcavg,2,"omitnan")',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName",['Linewidth: ',num2str(laser_linewidth.*1e-6),' MHz'],'Color',cols(2,:));
|
||||
% plot(sir,mean(rrop_adapt,2,"omitnan")',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName",['Linewidth: ',num2str(laser_linewidth.*1e-6),' MHz']);
|
||||
plot(sir,mean(rrop_derem,2,"omitnan")',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName",['Linewidth: ',num2str(laser_linewidth.*1e-6),' MHz']);
|
||||
xlabel('Signal to Interference Ratio (dB)');
|
||||
ylabel('Receiver Sensitivity');
|
||||
title(['Bit Error Rate vs. SIR']);
|
||||
grid on;
|
||||
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
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ for pnk = pn_key
|
||||
ber_derem = wh.getStoValue('ber_dcrem',M,datarate,sir,laser_linewidth,pnk,rop);
|
||||
|
||||
% Create the initial plot
|
||||
figure(43);
|
||||
figure(44);
|
||||
hold on; % Retain the plot so new points can be added without complete redraw
|
||||
plot(sir,ber_ffe',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber ffe",'Color',cols(1,:));
|
||||
plot(sir,ber_dcavg',"LineWidth",1,"LineStyle","-","Marker",".","MarkerSize",10,"DisplayName","ber dcavg",'Color',cols(2,:));
|
||||
|
||||
Reference in New Issue
Block a user