64 lines
2.3 KiB
Matlab
64 lines
2.3 KiB
Matlab
|
|
|
|
|
|
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;
|