Simulation preps for high speed.

This commit is contained in:
Silas Oettinghaus
2025-11-14 11:45:13 +01:00
parent 0080cb2264
commit 888cbbd23e
9 changed files with 384 additions and 535 deletions

View File

@@ -5,16 +5,16 @@ db = DBHandler("dataBase", [dataBase], "type", database_type);
M = 4;
fp = QueryFilter();
% fp.where('Runs', 'run_id','EQUALS', 987);
% fp.where('Runs', 'pam_level','EQUALS', M);
fp.where('Runs', 'pam_level','EQUALS', M);
% fp.where('Runs', 'symbolrate','EQUALS', 165e9); %150, 165, 180, 195, 210, 225, 240
% fp.where('Runs', 'fiber_length','EQUALS', 10);
fp.where('Runs', 'fiber_length','EQUALS', 10);
% fp.where('Runs', 'is_mpi','EQUALS', 0);
% fp.where('Runs', 'power_pd_in','GREATER_THAN', 7);
% fp.where('Runs', 'interference_path_length','EQUALS', 1000);
% fp.where('Runs', 'loop_id','GREATER_THAN', 11);
% fp.where('Runs', 'sir','EQUALS',18);
% fp.where('Runs', 'wavelength','EQUALS', 1310);
fp.where('Runs', 'db_mode','EQUALS', 2); % 0 == high preemphasis // 1 == low preemphasis
fp.where('Runs', 'wavelength','EQUALS', 1310);
fp.where('Runs', 'db_mode','EQUALS', 1); % 0 == high preemphasis // 1 == low preemphasis
% fp.where('Runs', 'rop_attenuation','EQUALS', 0);
fields = db.getTableFieldNames('power_state_info');
@@ -25,15 +25,15 @@ fields = [fields; db.getTableFieldNames('dashboard_ungrouped_new')];
cfg = struct;
cfg.x_axis = 'symbolrate'; % 'symbolrate' | 'bitrate' | 'wavelength'
cfg.y_axis = 'BER'; % 'BER' | 'GMI' | 'AIR' | ...
cfg.group_by = {'wavelength'};
cfg.filters = struct('is_mpi',0,'pam_level',M,'equalizer_structure',[equalizer_structure.vnle_db_mlse]);%,equalizer_structure.ffe,equalizer_structure.vnle_pf_mlse,equalizer_structure.vnle_db_mlse,equalizer_structure.dfe]);
cfg.group_by = {'wavelength','equalizer_structure','pre_emph'};
cfg.filters = struct('is_mpi',0,'pam_level',M,'equalizer_structure',[equalizer_structure.ml_mlse,equalizer_structure.vnle,equalizer_structure.vnle_pf_mlse,equalizer_structure.vnle_db_mlse,equalizer_structure.dfe]);
cfg.y_scale = 'auto'; % auto -> log for BER*, linear otherwise
cfg.outlier = 'mad'; % simple, robust; 'none' or 'pctl' also available
cfg.show_raw = true;
cfg.show_spread = 'iqr'; % 'none' or 'iqr'
cfg.show_spread = 'none'; % 'none' or 'iqr'
cfg.agg = 'mean'; % or 'median'
cfg.show_precoded = 0;
cfg.show_precoded = 1;
cfg.fec_lines = [2.2e-4 4.85e-3 2e-2]; % optional
% New styling knobs
@@ -46,4 +46,6 @@ cfg.plot.scatterAlpha = 0.35;
cfg.plot.legendLocation = 'best';
cfg.plot.fecLineWidth = 2.4; % thicker FEC limits
plot_measurements_gpt(dataTable, cfg);
plot_measurements_gpt(dataTable, cfg);
% beautifyBERplot()