savePath = 'Z:\2025\ECOC Silas\ecoc_2025\'; databasePath = 'C:\Users\Silas\Documents\MATLAB\imdd_simulation\projects\ECOC_2025\'; database_name = 'ecoc2025_loops.db'; db = DBHandler("type","mysql"); % db = DBHandler("pathToDB", [databasePath, database_name],"type","sqlite"); filterParams = db.tables; % filterParams.Configurations = struct('run_id', run_id); filterParams.Configurations = struct( ... 'symbolrate', 112e9, ... %[224,336,360,390,420,448] 'fiber_length', 0, ... 'db_mode', '"no_db"', ... 'interference_attenuation', [], ... 'interference_path_length', 0, ... 'is_mpi', 1, ... 'pam_level', 4, ... 'wavelength', 1310, ... 'precomp_amp', [], ... 'signal_attenuation', [], ... 'v_awg', [], ... 'v_bias', 2.65 ... ); selectedFields = {'Runs.run_id','Runs.loop_id','Runs.tx_bits_path','Runs.tx_signal_path','Runs.tx_symbols_path','Runs.rx_sync_path','Runs.rx_raw_path',... 'Configurations.db_mode','Configurations.pam_level','Configurations.bitrate','Configurations.symbolrate','Configurations.fiber_length','Configurations.wavelength','Configurations.precomp_amp','Measurements.power_rop','Configurations.v_bias',... 'Configurations.interference_attenuation', 'Configurations.interference_path_length'}; [dataTable,sql_query] = db.queryDB(filterParams, selectedFields); dataTable(dataTable.loop_id~=217,:) = []; num_occ = 10; run_par = true; run_id = dataTable.run_id; params.dc_buffer_len = 224; params.ffe_buffer_len = 1; params.smoothing_buffer_length = 0; params.smoothing_buffer_update = 0; params.mu_dc = 0.005; futures_list = parallel.FevalFuture.empty(); for id = 1:length(dataTable.run_id) run_id = dataTable.run_id(id); [out, futures_list(id)] = submit_dsp(run_id, databasePath, database_name, savePath,"parallel",run_par,'max_occurences',num_occ,'paramstruct',params); end % Extract all ber_mlse values from the vnle_pf_package using cellfun ber_mlse = cellfun(@(pkg) pkg.ber_mlse, future.OutputArguments{1,1}.vnle_pf_package); ber_vnle = cellfun(@(pkg) pkg.ber_vnle, future.OutputArguments{1,1}.vnle_pf_package); figure(101) hold on; scatter(1:num_occ,ber_mlse,15,'Marker','*'); scatter(1:num_occ,ber_vnle,15,'Marker','*'); legend('Interpreter', 'latex'); xlabel('Occurences'); ylabel('BER'); grid on; beautifyBERplot;