- bring FWM plots back to life!

- some dispersion plots with the great help of chatGPT :-D
This commit is contained in:
Silas Oettinghaus
2025-10-17 11:50:27 +02:00
parent 99898da519
commit 3ea6439947
13 changed files with 720 additions and 62 deletions

View File

@@ -43,12 +43,13 @@
db = DBHandler("type","mysql","dataBase",'labor');
fp = QueryFilter();
% fp.where('Runs', 'loop_id','EQUALS', 209);
% fp.where('Runs', 'sir','EQUALS', 21);
fp.where('Runs', 'pam_level','EQUALS', 4);
fn = [db.getTableFieldNames('Runs');db.getTableFieldNames('Results')];
% fp.where('mpi_superview', 'loop_id','EQUALS', 209);
fp.where('mpi_superview', 'symbolrate','EQUALS', 112e9);
fp.where('mpi_superview', 'pam_level','EQUALS', 4);
fn = [db.getTableFieldNames('mpi_superview')];
[dataTable,sql_query] = db.queryDB(fp,fn);
%%
dataTable_clean = dataTable;
@@ -74,7 +75,7 @@ for int_len = [0,50,300,1000]
mode = 4;
for mode = [1,4]
for mode = [1,2]
hold on;
dataTable = dataTable_clean;
@@ -132,7 +133,7 @@ for int_len = [0,50,300,1000]
method = 'ideal dc tracking';
end
dataTable(dataTable.eq_id==0,:) = [];
% dataTable(dataTable.eq_id==0,:) = [];
dataTable(dataTable.equalizer_structure~=1,:) = [];
% Modify values in 'interference_path_length' where the condition is met
@@ -190,6 +191,10 @@ for int_len = [0,50,300,1000]
dataTableGrpd_min = groupIt(fixedVars, dataTable, @min);
dataTableGrpd_max = groupIt(fixedVars, dataTable, @max);
% dataTableGrpd_mean(dataTableGrpd_mean.nRows<50,:) = [];
% dataTableGrpd_min(dataTableGrpd_min.nRows<50,:) = [];
% dataTableGrpd_max(dataTableGrpd_max.nRows<50,:) = [];
% Create a new figure
hold on
@@ -244,6 +249,8 @@ for int_len = [0,50,300,1000]
% Hide patch (shaded area) from legend
set(hp, 'HandleVisibility', 'off','LineStyle',':','LineWidth',0.5,'Marker','none');
% Fit a 4th-order polynomial to log10(BER)
p = polyfit(x_values, log10(y_mean), 3); % 4 is fitting order, adjust as needed
@@ -294,9 +301,10 @@ for int_len = [0,50,300,1000]
'LineWidth', 0.5, 'HandleVisibility', 'off', 'DisplayName', string(dispname));
pair_one = {'Run ID', dataTable.run_id(loopFiltSingle, :)};
pair_two = {'Rate', dataTable.bitrate(loopFiltSingle, :) * 1e-9};
pair_two = {'Baud', dataTable.symbolrate(loopFiltSingle, :) * 1e-9};
pair_three = {'PD in', round(dataTable.power_pd_in(loopFiltSingle, :), 2)};
addDatatips(sc, pair_one, pair_two, pair_three);
pair_four = {'#bits', round(dataTable.numBits(loopFiltSingle, :), 2)};
addDatatips(sc, pair_one, pair_two, pair_three,pair_four);
end
end