nonlinear MLSE investigation trying hard to implment ML-based pre Equalization to find the branch metrics
48 lines
2.1 KiB
Matlab
48 lines
2.1 KiB
Matlab
database_type = 'mysql';
|
|
dataBase = 'labor_highspeed';%'C:\Users\Silas\Documents\MATLAB\Datensätze\sioe_labor\silas_labor_newdsp_newstructure.db';
|
|
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', 'symbolrate','EQUALS', 150e9);
|
|
% fp.where('Runs', 'fiber_length','EQUALS', 10);
|
|
fp.where('Runs', 'is_mpi','EQUALS', 0);
|
|
% 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', 1); % 0 == high preemphasis // 1 == low preemphasis
|
|
fp.where('Runs', 'rop_attenuation','EQUALS', 0);
|
|
|
|
fields = db.getTableFieldNames('power_state_info');
|
|
fields = [fields; db.getTableFieldNames('dashboard_ungrouped_new')];
|
|
[dataTable,~] = db.queryDB(fp, fields);
|
|
|
|
cfg = struct;
|
|
cfg.x_axis = 'accumulated_dispersion'; % 'symbolrate' | 'baudrate' | 'bitrate' | 'wavelength'
|
|
cfg.y_axis = 'BER'; % 'BER' | 'GMI' | 'AIR' | ...
|
|
cfg.group_by = {'equalizer_structure','pre_emph'};
|
|
cfg.filters = struct('is_mpi',0,'pam_level',M,'equalizer_structure',[equalizer_structure.vnle,equalizer_structure.ffe,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 = 'none'; % 'none' or 'iqr'
|
|
cfg.agg = 'mean'; % or 'median'
|
|
cfg.show_precoded = 0;
|
|
cfg.fec_lines = [2.2e-4 4.85e-3 2e-2]; % optional
|
|
|
|
% New styling knobs
|
|
cfg.plot.use_cbrewer2 = true;
|
|
cfg.plot.colormap = 'Paired';
|
|
cfg.plot.paired_dark_first = false; % dark for lines, light for scatter
|
|
cfg.plot.lineWidth = 2.0;
|
|
cfg.plot.errWidth = 1.2;
|
|
cfg.plot.scatterAlpha = 0.35;
|
|
cfg.plot.legendLocation = 'best';
|
|
cfg.plot.fecLineWidth = 2.4; % thicker FEC limits
|
|
|
|
|
|
plot_measurements_gpt(dataTable, cfg); |