% === 400G DSP settings === dsp_options = struct(); dsp_options.mode = "run_id"; dsp_options.recipe = @dsp_400g_recipe; dsp_options.append_to_db = false; % dsp_options.append_mpi_reduction_db = false; dsp_options.start_occurence = 1; dsp_options.max_occurences = 3; dsp_options.debug_plots = false; dsp_options.database_type = "mysql"; dsp_options.dataBase = "labor_highspeed"; if ismac dsp_options.storage_path = "/Volumes/media/labdata/sioe_labor"; else dsp_options.storage_path = "W:\labdata\sioe_labor"; end dsp_options.server = "192.168.178.192"; dsp_options.port = 3306; dsp_options.user = "silas"; dsp_options.password = "silas"; db = DBHandler("dataBase", [dsp_options.dataBase], ... "type", dsp_options.database_type, ... "server", dsp_options.server, ... "user", dsp_options.user, ... "password", dsp_options.password); %% Load normal Signal w/o preemphasis fp = QueryFilter(); fp.where('Runs','fiber_length','EQUALS', 10); fp.where('Runs','wavelength','EQUALS', 1310); fp.where('Runs','bitrate','EQUALS', 420e9); fp.where('Runs','pam_level','EQUALS', 4); fp.where('Runs','rop_attenuation','EQUALS', 0); fp.where('Runs','is_mpi','EQUALS', 0); fp.where('Runs', 'db_mode','EQUALS', 0); fields = db.getTableFieldNames('Runs'); [dataTable, query] = db.queryDB(fp, fields); [~, Symbols_preemph, Scpe_cell_preemph, ~] = loadAndSyncRunSignals(dataTable(1,:), dsp_options); ScopeSignal = Scpe_cell_preemph{1}; ScopeSignal_preemph = preprocessSignal(ScopeSignal, Symbols_preemph, Symbols_preemph.fs); %% Load normal Signal w/o preemphasis fp = QueryFilter(); fp.where('Runs','fiber_length','EQUALS', 10); fp.where('Runs','wavelength','EQUALS', 1310); fp.where('Runs','bitrate','EQUALS', 420e9); fp.where('Runs','pam_level','EQUALS', 4); fp.where('Runs','rop_attenuation','EQUALS', 0); fp.where('Runs','is_mpi','EQUALS', 0); fp.where('Runs', 'db_mode','EQUALS', 1); fields = db.getTableFieldNames('Runs'); [dataTable, query] = db.queryDB(fp, fields); [~, Symbols, Scpe_cell, ~] = loadAndSyncRunSignals(dataTable(1,:), dsp_options); ScopeSignal = Scpe_cell{1}; ScopeSignal_no_preemph = preprocessSignal(ScopeSignal, Symbols, Symbols.fs); %% Duobinary fp = QueryFilter(); fp.where('Runs','fiber_length','EQUALS', 10); fp.where('Runs','wavelength','EQUALS', 1310); fp.where('Runs','bitrate','EQUALS', 420e9); fp.where('Runs','pam_level','EQUALS', 4); fp.where('Runs','rop_attenuation','EQUALS', 0); fp.where('Runs','is_mpi','EQUALS', 0); fp.where('Runs', 'db_mode','EQUALS', 2); fields = db.getTableFieldNames('Runs'); [dataTable, query] = db.queryDB(fp, fields); [~, Symbols_db, Scpe_cell_db, found_sync] = loadAndSyncRunSignals(dataTable(1,:), dsp_options); ScopeSignal = Scpe_cell_db{1}; ScopeSignal_DB = preprocessSignal(ScopeSignal, Symbols_db, Symbols_db.fs); %% ScopeSignal_no_preemph.spectrum("displayname",'Full Response w/o preemphasis','fignum',2,'normalizeTo0dB',0,'color',clr.Paired.dblue); ScopeSignal_preemph.spectrum("displayname",'Full Response w/ preemphasis','fignum',2,'normalizeTo0dB',0,'color',clr.Paired.dgreen); ScopeSignal_DB.spectrum("displayname",'DB Response w/ preemphasis','fignum',2,'normalizeTo0dB',0,'color',clr.Paired.dorange);