Dies und Das (MPI revisit)

This commit is contained in:
Silas Oettinghaus
2026-06-21 23:11:13 +02:00
parent 5c2e27687d
commit 3603fd7853
18 changed files with 656 additions and 209 deletions

View File

@@ -1,8 +1,10 @@
basePath = 'C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\ECOC_2025\';
database_name = 'ecoc2025.db';
database = DBHandler("pathToDB", [basePath, database_name],"type",'mysql');
% basePath = 'C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\ECOC_2025\';
% database_name = 'ecoc2025.db';
% database = DBHandler("pathToDB", [basePath, database_name],"type",'mysql');
database = DBHandler("dataBase",'labor',"type","mysql","user","silas","password","silas","server","192.168.178.192");
filterParams = database.tables;
filterParams.Configurations = struct( ...

View File

@@ -1,34 +1,48 @@
basePath = 'C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\ECOC_2025\';
database_name = 'ecoc2025.db';
database = DBHandler("pathToDB", [basePath, database_name]);
% basePath = 'C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\ECOC_2025\';
% database_name = 'ecoc2025.db';
% database = DBHandler("pathToDB", [basePath, database_name]);
%
% filterParams = database.tables;
% filterParams.Configurations = struct( ...
% 'symbolrate', 112e9, ... %[224,336,360,390,420,448]
% 'fiber_length', 0, ...
% 'db_mode', '"no_db"', ...
% 'interference_attenuation', [], ...
% 'interference_path_length', [], ...
% 'is_mpi', 0, ...
% 'pam_level', 4, ...
% 'wavelength', 1310, ...
% 'precomp_amp', [], ...
% 'signal_attenuation', [], ...
% 'v_awg', 0.8, ...
% 'v_bias', 2.8 ...
% );
%
% % filterParams.EqualizerParameters.diff_precode = int32(db_mode.db_encoded);
% % filterParams.EqualizerParameters.equalizer_structure = int32(equalizer_structure.vnle);
%
% selectedFields = {'Configurations.run_id' 'Runs.date_of_run' 'Runs.rx_raw_path' 'Configurations.bitrate' 'Configurations.v_bias' 'Configurations.v_awg' 'Configurations.precomp_amp' 'Configurations.symbolrate' 'Configurations.pam_level'...
% 'Configurations.db_mode' 'Configurations.rop_attenuation' 'Configurations.is_mpi' 'Configurations.interference_attenuation' 'Configurations.signal_attenuation' ...
% 'EqualizerParameters.equalizer_structure' 'EqualizerParameters.diff_precode' 'EqualizerParameters.eq_id' 'Measurements.power_pd_in' ...
% 'Measurements.power_mpi_interference' 'Measurements.power_mpi_signal' 'Results.BER' 'Results.BER_precoded' 'Results.SNR' 'Results.GMI' 'Results.Alpha' 'Results.date_of_processing'};
%
% [dataTable,sql_query] = database.queryDB(filterParams, selectedFields);
filterParams = database.tables;
filterParams.Configurations = struct( ...
'symbolrate', 112e9, ... %[224,336,360,390,420,448]
'fiber_length', 0, ...
'db_mode', '"no_db"', ...
'interference_attenuation', [], ...
'interference_path_length', [], ...
'is_mpi', 0, ...
'pam_level', 4, ...
'wavelength', 1310, ...
'precomp_amp', [], ...
'signal_attenuation', [], ...
'v_awg', 0.8, ...
'v_bias', 2.8 ...
);
%%
% filterParams.EqualizerParameters.diff_precode = int32(db_mode.db_encoded);
% filterParams.EqualizerParameters.equalizer_structure = int32(equalizer_structure.vnle);
db = DBHandler("type","mysql","dataBase",'labor');
db = DBHandler("type","mysql","dataBase",'labor');
fp = QueryFilter();
% 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); %dauert lange! 46k einträge
selectedFields = {'Configurations.run_id' 'Runs.date_of_run' 'Runs.rx_raw_path' 'Configurations.bitrate' 'Configurations.v_bias' 'Configurations.v_awg' 'Configurations.precomp_amp' 'Configurations.symbolrate' 'Configurations.pam_level'...
'Configurations.db_mode' 'Configurations.rop_attenuation' 'Configurations.is_mpi' 'Configurations.interference_attenuation' 'Configurations.signal_attenuation' ...
'EqualizerParameters.equalizer_structure' 'EqualizerParameters.diff_precode' 'EqualizerParameters.eq_id' 'Measurements.power_pd_in' ...
'Measurements.power_mpi_interference' 'Measurements.power_mpi_signal' 'Results.BER' 'Results.BER_precoded' 'Results.SNR' 'Results.GMI' 'Results.Alpha' 'Results.date_of_processing'};
[dataTable,sql_query] = database.queryDB(filterParams, selectedFields);
dataTable = cleanUpTable(dataTable);

View File

@@ -47,7 +47,7 @@ fp = QueryFilter();
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,sql_query] = db.queryDB(fp,fn); %dauert lange! 46k einträge
%%
@@ -64,10 +64,10 @@ dataTable_clean(dataTable_clean.BER>0.2,:) = [];
cols = linspecer(8); % Ensure color count matches
figure()
tiledlayout(1, 4, 'TileSpacing', 'compact', 'Padding', 'compact');
tiledlayout(1, 1, 'TileSpacing', 'compact', 'Padding', 'compact');
y_here = 0;
figcnt = 0;
for int_len = [0,50,300,1000]
for int_len = 1000%[0,50,300,1000]
figcnt = figcnt+1;
% figure(int_len+1);
nexttile;
@@ -75,7 +75,7 @@ for int_len = [0,50,300,1000]
mode = 4;
for mode = [1,2]
for mode = [1,2,3,4]
hold on;
dataTable = dataTable_clean;
@@ -333,9 +333,11 @@ for int_len = [0,50,300,1000]
ylim([9e-5 0.1 ]);
xticks([13:2:35]);
set(gca,'YScale','log')
% Enable grid and beautify
grid on;
beautifyBERplot;
% beautifyBERplot("logscale",true,"setcolors",false,"setmarkers",false);
end
end