From 0ae846d3c3620c1f88119ec2b84e98899de8f8fe Mon Sep 17 00:00:00 2001 From: Silas Oettinghaus Date: Wed, 25 Mar 2026 10:57:48 +0100 Subject: [PATCH] CLEANUP - changes to folder structure --- .gitignore | 10 +- .../DataBaseHandler/sql_query_collection.txt | 400 ++++++++++++++++++ .../Minimal_examples/TestRand_examplecode.m | 54 --- .../Minimal_examples/database_mysql_test.m | 17 - Functions/Minimal_examples/exampleFunction.m | 32 -- Functions/Minimal_examples/m2tikz_examples.m | 47 -- Functions/Minimal_examples/run_examplefcn.m | 100 ----- Functions/Minimal_examples/test_modulation.m | 74 ---- .../Theory/modifiedGodardTimingRecovery.m | 62 --- Functions/{Theory => }/propagation_time.m | 0 .../Theory => Theory}/CCDM/ccdm_gpt_example.m | 0 .../Devices}/modulator_test.m | 0 .../Dissertation/PD/100ghz_pd.json | 0 .../Dissertation/PD/100ghz_pd_bandwidth.csv | 0 .../PD/100ghz_pd_responsivity.csv | 0 .../Dissertation/PD/70ghz_pd.json | 0 .../Dissertation/PD/70ghz_pd_bandwidth.csv | 0 .../Dissertation/PD/70ghz_pd_responsivity.csv | 0 .../Dissertation/PD/plot_pd_specs.m | 0 .../Dissertation/dispersion_around_zdw.m | 0 .../dispersion_contour_bandwidth_lambda.m | 0 .../dispersion_contour_bivariate.m | 0 .../Dissertation/mach_zehnder_modulator.m | 0 .../mach_zehnder_nonlinearities.m | 0 .../mach_zehnder_nonlinearities_taylor.m | 0 .../Dissertation/pmd_vs_length.m | 0 .../Dissertation/power_fading.m | 0 .../GPU}/gpu_cpu_comparison.m | 0 .../GPU}/gpu_processing_dpfiber.m | 0 .../GPU}/gpu_processing_test.m | 0 .../Mapping_Coding}/bitwise_demapping_pam6.m | 0 .../duobinary_emulation_minimal_example.m | 0 .../duobinary_minimal_example.m | 0 .../Mapping_Coding}/mapping_minimal_example.m | 0 .../pam_6_differential_code_understand.m | 0 .../Mapping_Coding}/pam_6_states_analysis.m | 0 .../Mapping_Coding}/test_db_minimal_example.m | 0 .../Mapping_Coding}/test_mapping_eth.m | 0 .../NGMI/calculate_gmi_example.m | 0 .../mutual_infomation_undertsanding_gpt.m | 0 .../Optical}/Dispersion/dispersion_10km.m | 0 .../Optical}/Dispersion/dispersion_contour.m | 0 .../Dispersion/dispersion_first_notch_10km.m | 0 .../Dispersion/dispersion_power_fading.m | 0 .../Dispersion/dispersion_wavelength_notch.m | 0 .../Optical}/Dispersion/dispersion_wdm.m | 0 .../Optical}/Dispersion/power_fading_gif.m | 0 .../power_fading_gif_lambda_variation.m | 0 .../PMD_maxwellshape/dgd_considerations.m | 0 .../Optical}/PMD_maxwellshape/pmd_maxwell.m | 0 .../Optical}/calcFWM/FWM_products.m | 0 .../calcFWM/JLT_statistics_laser_and_zdw.m | 0 .../calcFWM/analytical_calculation_paper.m | 0 .../Optical}/calcFWM/calcFwmEfficiency.m | 0 .../Optical}/calcFWM/calcFwmPower.m | 0 .../Optical}/calcFWM/calcPhaseMatching.m | 0 .../Optical}/calcFWM/scriptFWM.m | 0 .../Optical}/calcFWM/validate_fwm.m | 0 .../Optical}/calcFWM/wavelength2frequency.m | 0 .../analyze_moving_average_filter.m | 0 .../Signal_Processing}/bayesopt_ffe_tuning.m | 0 .../Signal_Processing}/bcjr_pam.m | 0 .../matched_filter_minimal.m | 0 .../Signal_Processing}/matched_filter_rrc.m | 0 .../Signal_Processing}/minimal_example_bcjr.m | 0 .../Signal_Processing}/mlse_minimal_example.m | 0 .../mutual information rate TUM/LICENSE.txt | 0 .../mutual information rate TUM/README.md | 0 .../mutual information rate TUM/air.m | 0 .../example_mi_cg_complex_16qam.m | 0 ...example_mi_cg_real_2D_awgn_vs_phasenoise.m | 0 .../example_silas.m | 0 .../mutual information rate TUM/mi_cg.m | 0 .../silas_example_mi_cg_pam.m | 0 projects/.DS_Store | Bin 10244 -> 0 bytes .../400G_FTN_setups/imdd_dsp_approaches.m | 250 ----------- .../400G_FTN_setups/imdd_dsp_lab_copy_200G.m | 247 ----------- projects/400G_FTN_setups/imdd_mpi_dsp.m | 383 ----------------- .../output_power.m | 0 .../Auswertung_JLT/ber_vs_dispersion.m | 0 .../Auswertung_JLT/ber_vs_rate.m | 0 .../ber_vs_rate_only_best_configs.m | 0 .../Auswertung_JLT/final/Copy_of_FIGURE_ROP.m | 0 .../final/Copy_of_FIGURE_WAVELENGTH.m | 0 .../Auswertung_JLT/final/FIGURE_BER_3x4.m | 0 .../Auswertung_JLT/final/FIGURE_EYES.m | 0 .../Auswertung_JLT/final/FIGURE_NGMI.m | 0 .../Auswertung_JLT/final/FIGURE_NGMI_v2.m | 0 .../Auswertung_JLT/final/FIGURE_ROP.m | 0 .../Auswertung_JLT/final/FIGURE_Spectra.m | 0 .../Auswertung_JLT/final/FIGURE_WAVELENGTH.m | 0 .../final/FIGURE_WAVELENGTH_VS_BAUDRATE.m | 0 .../final/FIGURE_introduction.m | 0 .../final/HighSpeedExperiments.xlsx | Bin .../final/analyze_measurements_gpt.m | 0 .../final/bibtex_analyzer_ieee.m | 0 .../final/compare_ber_best_results.m | 0 .../final/compare_pre_emphasis.m | 0 .../Auswertung_JLT/final/example_usage.m | 0 .../final/generate_spectrum_plots.m | 0 .../final/plot_measurements_gpt.m | 0 .../final/plot_measurements_gpt_old.m | 0 .../Auswertung_JLT/final/rates.csv | 0 .../final/run_plot_measurements.m | 0 .../Auswertung_JLT/gmi_vs_rate.m | 0 .../Auswertung_JLT/power_vs_wavelength.m | 0 .../Auswertung_JLT/run_dsp_from_db.m | 0 .../Auswertung_JLT/simulate_and_dsp.m | 0 .../a_minimal_example.m | 0 .../analysis_script.m | 0 .../auswertung MPI/analyze_mpi.m | 0 .../auswertung MPI/dsp_mpi.m | 0 .../auswertung MPI/dsp_mpi_database.m | 0 .../auswertung MPI/dsp_run_id.m | 0 .../auswertung MPI/plot_from_database.m | 0 .../analyze_burg.m | 0 .../analyze_equalizer_taps.m | 0 .../analyze_lambda.m | 0 .../analyze_postfilter_taps.m | 0 .../auswertung/App/Block_Diagram.svg | 0 .../auswertung/App/auswertungs_app.mlapp | Bin ...24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg | 0 ...24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg | 0 ...24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg | 0 .../auswertung/analyzeDB_shortened.m | 0 .../auswertung/analyze_mu_dc.m | 0 .../auswertung/ber_vs_bitrate.m | 0 .../auswertung/ber_vs_length.m | 0 .../auswertung/buildDBfromMeasurements.m | 0 .../auswertung/checkDB.m | 0 .../auswertung/checkDBpaths.m | 0 .../auswertung/createConfigMenu.m | 0 .../auswertung/getBerForRunId.m | 0 .../auswertung/only_show_precomp.m | 0 .../auswertung/runDSP.m | 0 .../baudrate_evaluation.m | 0 .../baudrate_sweep.m | 0 .../bias_evaluation.m | 0 .../bias_optimization.m | 0 .../db_auswertung/rate_vs_ber.m | 0 .../db_auswertung/realization_vs_ber.m | 0 .../master_auswertung_10km.m | 0 .../master_evaluation.m | 0 .../mpi_measurement.m | 0 .../offline_dsp/mpi_dsp.m | 0 .../single_auswertung_10km.m | 0 projects/Dissertation/minimal_example.m | 23 - .../auswertung_algorithms/mpi_dsp_debug.m | 0 .../auswertung_algorithms/run_offline_dsp.m | 0 .../dsp_filtered_db.m | 0 .../{ECOC_2025 => ECOC_2025_MPI}/dsp_run_id.m | 0 .../dsp_standalone.m | 0 .../dsp_standalone_2.m | 0 .../dsp_test/hyperparam_tuning.m | 0 .../{ECOC_2025 => ECOC_2025_MPI}/ecoc2025.db | Bin .../ecoc2025.sqbpro | 0 .../ecoc2025_einmessung.db | Bin .../ecoc2025_fail.db | Bin .../ecoc2025_loops - Kopie.db | Bin .../ecoc2025_loops.db | Bin .../estimate_linewidth.m | 0 .../load_signal_standalone.m | 0 .../measure_run.m | 0 .../measure_run_script.m | 0 .../plots_from_database/bias_vs_ber.m | 0 .../plot_bias_awg_vs_ber.m | 0 .../plots_from_database/plot_mpi_trial.m | 0 .../precomp_1km.mat | Bin .../precomp_1km_1mm_cable.mat | Bin .../precomp_1km_1mm_cable_100ghz_pd.mat | Bin .../precomp_1km_1mm_cable_70ghz_pd.mat | Bin ...m_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat | Bin ...cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat | Bin .../precomp_1km_1mm_cable_70ghz_pd_shot2.mat | Bin .../sqlite_sequence.sql | 0 .../{ECOC_2025 => ECOC_2025_MPI}/submit_dsp.m | 0 .../theory/analytic_mpi_evaluation.m | 0 .../theory/coherence_length_plot.m | 0 .../Optimize_WDFE_Parameters.m | 0 .../db_test_i_dont_get_it.m | 0 .../Evaluation Scripts/evalscript_FFE_DFE.m | 0 .../Evaluation Scripts/evalscript_cell.m | 0 .../Evaluation Scripts/evalscript_ffe.m | 0 ...valscript_ffe_with_and_without_db_target.m | 0 ...th_and_without_db_target_baud_rate_sweep.m | 0 ...ript_optimize_timing_recovery_parameters.m | 0 .../Evaluation Scripts/evalscript_pam_2.m | 0 .../Evaluation Scripts/evalscript_pam_2_20G.m | 0 .../Evaluation Scripts/evalscript_pam_2_opt.m | 0 .../Evaluation Scripts/evalscript_pam_4.m | 0 .../evalscript_pam_4_baud_rate_sweep.m | 0 .../evalscript_pam_4_baud_rate_sweep_opt.m | 0 .../Evaluation Scripts/evalscript_pam_4_opt.m | 0 .../Evaluation Scripts/evalscript_pam_4_saa.m | 0 .../Evaluation Scripts/evalscript_tests.m | 0 .../evalscript_timing_shift.m | 0 ...ipt_optimal_signal_trace_selection_sweep.m | 0 .../Evaluation Scripts/first_analysis_2.m | 0 .../Evaluation Scripts/first_analysis_20G.m | 0 .../first_analysis_baud_rate_sweep.m | 0 .../Evaluation Scripts/first_analysis_ber.m | 0 .../Evaluation Scripts/first_analysis_fso.m | 0 .../Evaluation Scripts/first_analysis_mf.m | 0 .../first_analysis_optimize.m | 0 .../first_analysis_time_rec.m | 0 .../first_analysis_time_rec_pam2.m | 0 .../first_analysis_time_rec_pam4.m | 0 .../first_analysis_time_shift.m | 0 .../Evaluation Scripts/first_analysis_tr_mf.m | 0 .../first_analysis_tr_mf_pam2.m | 0 .../first_analysis_tr_mf_pam_2.m | 0 .../ml_mlse_complexity_plot.m | 0 .../plotscript_baud_rate_sweep_method.m | 0 .../plotscript_pam_2_conf.m | 0 .../plotscript_pam_2_optimal.m | 0 .../plotscript_pam_4_baud_rate_sweep_conf.m | 0 .../plotscript_pam_4_conf.m | 0 .../plotscript_pam_4_optimal.m | 0 ...otscript_pam_4_symbol_rate_sweep_optimal.m | 0 .../FSO_timing_recovery_minimal_example.m | 0 .../first_analysis.m | 0 .../Lab_basic_control}/awg_test.m | 0 .../exfo_control_app.mlapp | Bin .../exfo_laser_example.m | 0 .../olaf_control.m | 0 .../olaf_laser_att_control_lambda_sweep.m | 0 .../olaf_laser_control.m | 0 .../olaf_laser_control_minimal.m | 0 ...olaf_laser_control_single_wavelength_OFF.m | 0 .../olaf_laser_control_single_wavelength_ON.m | 0 .../test_device_control.m | 0 .../ExampleDirectoryApp.mlapp | Bin .../HF Kabel/kabel-09z07001.s2p | 0 .../HF Kabel/kabel-09z07002.s2p | 0 .../HF Kabel/kabel-miniband-1.s2p | 0 .../HF Kabel/kabel-miniband-2.s2p | 0 .../HF Kabel/kabel-miniband-3.s2p | 0 .../HF Kabel/kabel-miniband-4.s2p | 0 .../HF Kabel/kabel-miniband-5defekt.s2p | 0 .../HF Kabel/kabel-miniband-6.s2p | 0 .../HF Kabel/kabel-miniband-7.s2p | 0 .../HF Kabel/kabel-sn2830-2ea.s2p | 0 .../HF Kabel/kabel-sn2831-2ea.s2p | 0 .../HF Kabel/plot_cable.m | 0 .../M8199B_ch1_inverted_Scope_Ch4.s2p | 0 .../M8199B_Spara/everything_from_iqtools.s4p | 0 .../M8199B_Spara/iqtools_m8199b_1.s2p | 0 .../M8199B_Spara/iqtools_m8199b_2.s2p | 0 .../dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat | Bin ...l_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat | Bin .../est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat | Bin .../load_and_show_freqresp.m | 0 projects/{S21 => Lab_cables_S21}/opt_b2b.mat | Bin .../precomp_el_b2b_uxr1102A_loop1_1.mat | Bin .../precomp_golden.mat | Bin .../precomp_opt_b2b_uxr1102A_loop1_1.mat | Bin .../precomp_opt_b2b_uxr1102A_loop1_1_gut.mat | Bin .../precomp_opt_b2b_uxr1102A_loop3_1.mat | Bin .../precomp_opt_b2b_uxr1102A_loop5_1.mat | Bin ...recomp_optical_120GAWG_256GScope_b2b_1.mat | Bin .../precomp_optical_92G.mat | Bin ...eon_soa_measurement_lambda_plaser_pump.mat | Bin .../aeon_soa_measurement_pump_level_sweep.mat | Bin .../amplifier_input_output_curve.m | 0 ...available_output_power_exfo_t100_oband.fig | Bin ...tput_power_exfo_t100_oband_20_averages.fig | Bin .../lambda_vs_spectrum.m | 0 .../eq_lab.m | 0 .../laser_outputpower_sweep_1.mat | Bin ...aser_outputpower_sweep_2_many_averages.mat | Bin .../pdfa_thorlabs_pin_vs_pout.fig | Bin .../pdfa_thorlabs_pout.fig | Bin .../thorlabs_pdfa_100prozent_sweep.mat | Bin ...bs_pdfa_measurement_lambda_plaser_pump.mat | Bin ...labs_pdfa_measurement_pump_level_sweep.mat | Bin .../analyze_filter_length.m | 0 .../analyze_mu.m | 0 .../experimental_data.m | 0 .../interp_fec_cross.m | 0 .../minimal_example_huawei.zip | Bin .../minimal_example_huawei/bcjr_pam.m | 0 .../minimal_example_huawei/minimal_example.m | 0 .../minimal_example_huawei/ml_mlse_pam.m | 0 .../{ML_based_MLSE => MLSE_ML_based}/model.m | 0 .../rate_evaluation.m | 0 .../read_csv.m | 0 .../rop_evaluation.m | 0 .../rrop_vs_length_evaluation.m | 0 .../standard_link_model.m | 0 .../theoretic_channel_evaluation.m | 0 .../wpd_datasets.csv | 0 .../simulation_nonlin_dsp.m | 0 projects/{ => MPI}/MPI_April/auswertung_1.m | 0 projects/{ => MPI}/MPI_April/auswertung_2.m | 0 projects/{ => MPI}/MPI_April/auswertung_3.m | 0 projects/{ => MPI}/MPI_April/auswertung_4.m | 0 projects/{ => MPI}/MPI_April/auswertung_5.m | 0 .../{ => MPI}/MPI_April/mpi_simulation_cspr.m | 0 projects/{ => MPI}/MPI_April/mzm_er.m | 0 .../MPI_April/plot_analysis_window.m | 0 projects/{ => MPI}/MPI_April/results_ber.png | Bin .../{ => MPI}/MPI_April/save_to_warehouse.m | 0 .../{ => MPI}/MPI_April/simulate_tx_sig.m | 0 .../{ => MPI}/MPI_August/EQ_development.m | 0 .../EQ_development_ffe_adap_decision.m | 0 .../MPI_August/EQ_development_ffe_dc_avg.m | 0 ...laser_linewidth_1000000_pn_key_1_rop_0.mat | Bin .../MPI_August/auswertung/clipfactor_curve.m | 0 .../auswertung/dc_removal_sir_curve.m | 0 .../auswertung/dc_removal_window_length.m | 0 .../MPI_August/auswertung/hpf_curve.m | 0 .../hpf_curve_different_filter_bw.m | 0 .../MPI_August/auswertung/mrds_sir_curve.m | 0 .../MPI_August/auswertung/rop_curve.m | 0 .../MPI_August/auswertung/sensitivity_curve.m | 0 .../MPI_August/auswertung/sir_curve.m | 0 projects/{ => MPI}/MPI_August/bits.mat | Bin .../{ => MPI}/MPI_August/channel_model_mpi.m | 0 .../{ => MPI}/MPI_August/mpi_uncorrelated.m | 0 projects/{ => MPI}/MPI_August/rx_model.m | 0 projects/{ => MPI}/MPI_August/scpe_sig.mat | Bin .../{ => MPI}/MPI_August/simualte_MPI_data.m | 0 projects/{ => MPI}/MPI_August/symbols.mat | Bin projects/{ => MPI}/MPI_August/tx_model.m | 0 .../EQ_optimization/eq_optimization.m | 0 .../EQ_optimization/ref_bits_prms.mat | Bin .../EQ_optimization/ref_sig_with_mpi.mat | Bin .../EQ_optimization/rx_sig_with_mpi.mat | Bin projects/{ => MPI}/MPI_Juni/ber_curve.m | 0 .../ber_vs_er_pam4_clipping_bias_with_MPI.mat | Bin ...r_pam4_clipping_bias_with_MPI_linearEQ.mat | Bin .../ber_vs_er_pam4_clipping_bias_wo_MPI.mat | Bin ..._er_pam4_clipping_bias_wo_MPI_linearEQ.mat | Bin .../ber_vs_er/ber_vs_er_pam4_withMPI.mat | Bin .../MPI_Juni/ber_vs_er/tx_signal_curve.m | 0 .../clip_optimization/pam4_clipping.fig | Bin .../clip_optimization/pam6_clipping.fig | Bin .../clip_optimization/pam8_clipping.fig | Bin .../MPI_Juni/clip_optimization/pam_4_6_8.fig | Bin projects/{ => MPI}/MPI_Juni/dataset_2506.mat | Bin projects/{ => MPI}/MPI_Juni/extrcurve.m | 0 projects/{ => MPI}/MPI_Juni/linewidth_curve.m | 0 projects/{ => MPI}/MPI_Juni/main_simulation.m | 0 projects/{ => MPI}/MPI_Juni/mpilength_curve.m | 0 projects/{ => MPI}/MPI_Juni/sir_curve.m | 0 projects/{ => MPI}/MPI_Juni/tx_signal_curve.m | 0 projects/{ => MPI}/MPI_Juni/wh_first_run.mat | Bin .../MPI_analysis_Mai24/base_simulation.m | 0 .../{ => MPI}/MPI_analysis_Mai24/eq_compare.m | 0 .../{ => MPI}/MPI_analysis_Mai24/ofc_sim.m | 0 .../MPI_analysis_Mai24/simulation_entry.m | 0 351 files changed, 405 insertions(+), 1294 deletions(-) create mode 100644 Classes/DataBaseHandler/sql_query_collection.txt delete mode 100644 Functions/Minimal_examples/TestRand_examplecode.m delete mode 100644 Functions/Minimal_examples/database_mysql_test.m delete mode 100644 Functions/Minimal_examples/exampleFunction.m delete mode 100644 Functions/Minimal_examples/m2tikz_examples.m delete mode 100644 Functions/Minimal_examples/run_examplefcn.m delete mode 100644 Functions/Minimal_examples/test_modulation.m delete mode 100644 Functions/Theory/modifiedGodardTimingRecovery.m rename Functions/{Theory => }/propagation_time.m (100%) rename {Functions/Theory => Theory}/CCDM/ccdm_gpt_example.m (100%) rename {Functions/Minimal_examples => Theory/Devices}/modulator_test.m (100%) rename {Functions/Theory => Theory}/Dissertation/PD/100ghz_pd.json (100%) rename {Functions/Theory => Theory}/Dissertation/PD/100ghz_pd_bandwidth.csv (100%) rename {Functions/Theory => Theory}/Dissertation/PD/100ghz_pd_responsivity.csv (100%) rename {Functions/Theory => Theory}/Dissertation/PD/70ghz_pd.json (100%) rename {Functions/Theory => Theory}/Dissertation/PD/70ghz_pd_bandwidth.csv (100%) rename {Functions/Theory => Theory}/Dissertation/PD/70ghz_pd_responsivity.csv (100%) rename {Functions/Theory => Theory}/Dissertation/PD/plot_pd_specs.m (100%) rename {Functions/Theory => Theory}/Dissertation/dispersion_around_zdw.m (100%) rename {Functions/Theory => Theory}/Dissertation/dispersion_contour_bandwidth_lambda.m (100%) rename {Functions/Theory => Theory}/Dissertation/dispersion_contour_bivariate.m (100%) rename {Functions/Theory => Theory}/Dissertation/mach_zehnder_modulator.m (100%) rename {Functions/Theory => Theory}/Dissertation/mach_zehnder_nonlinearities.m (100%) rename {Functions/Theory => Theory}/Dissertation/mach_zehnder_nonlinearities_taylor.m (100%) rename {Functions/Theory => Theory}/Dissertation/pmd_vs_length.m (100%) rename {Functions/Theory => Theory}/Dissertation/power_fading.m (100%) rename {Functions/Minimal_examples => Theory/GPU}/gpu_cpu_comparison.m (100%) rename {Functions/Minimal_examples => Theory/GPU}/gpu_processing_dpfiber.m (100%) rename {Functions/Minimal_examples => Theory/GPU}/gpu_processing_test.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/bitwise_demapping_pam6.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/duobinary_emulation_minimal_example.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/duobinary_minimal_example.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/mapping_minimal_example.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/pam_6_differential_code_understand.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/pam_6_states_analysis.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/test_db_minimal_example.m (100%) rename {Functions/Minimal_examples => Theory/Mapping_Coding}/test_mapping_eth.m (100%) rename {Functions/Theory => Theory}/NGMI/calculate_gmi_example.m (100%) rename {Functions/Theory => Theory}/NGMI/mutual_infomation_undertsanding_gpt.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_10km.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_contour.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_first_notch_10km.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_power_fading.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_wavelength_notch.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/dispersion_wdm.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/power_fading_gif.m (100%) rename {Functions/Theory => Theory/Optical}/Dispersion/power_fading_gif_lambda_variation.m (100%) rename {Functions/Theory => Theory/Optical}/PMD_maxwellshape/dgd_considerations.m (100%) rename {Functions/Theory => Theory/Optical}/PMD_maxwellshape/pmd_maxwell.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/FWM_products.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/JLT_statistics_laser_and_zdw.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/analytical_calculation_paper.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/calcFwmEfficiency.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/calcFwmPower.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/calcPhaseMatching.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/scriptFWM.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/validate_fwm.m (100%) rename {Functions/Theory => Theory/Optical}/calcFWM/wavelength2frequency.m (100%) rename {Functions/Theory => Theory/Signal_Processing}/analyze_moving_average_filter.m (100%) rename {Functions/Minimal_examples => Theory/Signal_Processing}/bayesopt_ffe_tuning.m (100%) rename {Functions/Minimal_examples => Theory/Signal_Processing}/bcjr_pam.m (100%) rename {Functions/Minimal_examples => Theory/Signal_Processing}/matched_filter_minimal.m (100%) rename {Functions/Theory => Theory/Signal_Processing}/matched_filter_rrc.m (100%) rename {Functions/Minimal_examples => Theory/Signal_Processing}/minimal_example_bcjr.m (100%) rename {Functions/Minimal_examples => Theory/Signal_Processing}/mlse_minimal_example.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/LICENSE.txt (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/README.md (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/air.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/example_mi_cg_complex_16qam.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/example_mi_cg_real_2D_awgn_vs_phasenoise.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/example_silas.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/mi_cg.m (100%) rename {Functions/Theory => Theory}/mutual information rate TUM/silas_example_mi_cg_pam.m (100%) delete mode 100644 projects/.DS_Store delete mode 100644 projects/400G_FTN_setups/imdd_dsp_approaches.m delete mode 100644 projects/400G_FTN_setups/imdd_dsp_lab_copy_200G.m delete mode 100644 projects/400G_FTN_setups/imdd_mpi_dsp.m rename projects/{AWG_characterization => AWG_output_power_simulation}/output_power.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/ber_vs_dispersion.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/ber_vs_rate.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/ber_vs_rate_only_best_configs.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/Copy_of_FIGURE_ROP.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/Copy_of_FIGURE_WAVELENGTH.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_BER_3x4.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_EYES.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_NGMI.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_NGMI_v2.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_ROP.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_Spectra.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_WAVELENGTH.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_WAVELENGTH_VS_BAUDRATE.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/FIGURE_introduction.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/HighSpeedExperiments.xlsx (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/analyze_measurements_gpt.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/bibtex_analyzer_ieee.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/compare_ber_best_results.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/compare_pre_emphasis.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/example_usage.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/generate_spectrum_plots.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/plot_measurements_gpt.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/plot_measurements_gpt_old.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/rates.csv (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/final/run_plot_measurements.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/gmi_vs_rate.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/power_vs_wavelength.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/run_dsp_from_db.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/Auswertung_JLT/simulate_and_dsp.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/a_minimal_example.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/analysis_script.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung MPI/analyze_mpi.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung MPI/dsp_mpi.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung MPI/dsp_mpi_database.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung MPI/dsp_run_id.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung MPI/plot_from_database.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung deliv 06 feb 2025/analyze_burg.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung deliv 06 feb 2025/analyze_equalizer_taps.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung deliv 06 feb 2025/analyze_lambda.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung deliv 06 feb 2025/analyze_postfilter_taps.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/App/Block_Diagram.svg (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/App/auswertungs_app.mlapp (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/App/database_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/App/query_stats_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/App/table_convert_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/analyzeDB_shortened.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/analyze_mu_dc.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/ber_vs_bitrate.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/ber_vs_length.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/buildDBfromMeasurements.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/checkDB.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/checkDBpaths.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/createConfigMenu.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/getBerForRunId.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/only_show_precomp.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/auswertung/runDSP.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/baudrate_evaluation.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/baudrate_sweep.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/bias_evaluation.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/bias_optimization.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/db_auswertung/rate_vs_ber.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/db_auswertung/realization_vs_ber.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/master_auswertung_10km.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/master_evaluation.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/mpi_measurement.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/offline_dsp/mpi_dsp.m (100%) rename projects/{HighSpeedExperiment_2024 => Advanced_DSP_for_400G_IMDD_experiments}/single_auswertung_10km.m (100%) delete mode 100644 projects/Dissertation/minimal_example.m rename projects/{ECOC_2025 => ECOC_2025_MPI}/auswertung_algorithms/mpi_dsp_debug.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/auswertung_algorithms/run_offline_dsp.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/dsp_filtered_db.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/dsp_run_id.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/dsp_standalone.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/dsp_standalone_2.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/dsp_test/hyperparam_tuning.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025.db (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025.sqbpro (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025_einmessung.db (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025_fail.db (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025_loops - Kopie.db (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/ecoc2025_loops.db (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/estimate_linewidth.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/load_signal_standalone.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/measure_run.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/measure_run_script.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/plots_from_database/bias_vs_ber.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/plots_from_database/plot_bias_awg_vs_ber.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/plots_from_database/plot_mpi_trial.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable_100ghz_pd.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable_70ghz_pd.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/precomp_1km_1mm_cable_70ghz_pd_shot2.mat (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/sqlite_sequence.sql (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/submit_dsp.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/theory/analytic_mpi_evaluation.m (100%) rename projects/{ECOC_2025 => ECOC_2025_MPI}/theory/coherence_length_plot.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/Optimize_WDFE_Parameters.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/db_test_i_dont_get_it.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_FFE_DFE.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_cell.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_ffe.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_ffe_with_and_without_db_target.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_ffe_with_and_without_db_target_baud_rate_sweep.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_optimize_timing_recovery_parameters.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_2.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_2_20G.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_2_opt.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_4.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep_opt.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_4_opt.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_pam_4_saa.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_tests.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/evalscript_timing_shift.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/execution_script_optimal_signal_trace_selection_sweep.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_2.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_20G.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_baud_rate_sweep.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_ber.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_fso.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_mf.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_optimize.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_time_rec.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_time_rec_pam2.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_time_rec_pam4.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_time_shift.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_tr_mf.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_tr_mf_pam2.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/first_analysis_tr_mf_pam_2.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/ml_mlse_complexity_plot.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_baud_rate_sweep_method.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_2_conf.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_2_optimal.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_4_baud_rate_sweep_conf.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_4_conf.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_4_optimal.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/Evaluation Scripts/plotscript_pam_4_symbol_rate_sweep_optimal.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/FSO_timing_recovery_minimal_example.m (100%) rename projects/{FSO_transmission => FSO_transmission_ZJU_collaboration}/first_analysis.m (100%) rename {Functions/Minimal_examples => projects/Lab_basic_control}/awg_test.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/exfo_control_app.mlapp (100%) rename projects/{Lab_base_system => Lab_basic_control}/exfo_laser_example.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_control.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_laser_att_control_lambda_sweep.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_laser_control.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_laser_control_minimal.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_laser_control_single_wavelength_OFF.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/olaf_laser_control_single_wavelength_ON.m (100%) rename projects/{Lab_base_system => Lab_basic_control}/test_device_control.m (100%) rename projects/{S21 => Lab_cables_S21}/ExampleDirectoryApp.mlapp (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-09z07001.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-09z07002.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-1.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-2.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-3.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-4.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-5defekt.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-6.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-miniband-7.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-sn2830-2ea.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/kabel-sn2831-2ea.s2p (100%) rename projects/{S21 => Lab_cables_S21}/HF Kabel/plot_cable.m (100%) rename projects/{S21 => Lab_cables_S21}/M8199B_Spara/M8199B_ch1_inverted_Scope_Ch4.s2p (100%) rename projects/{S21 => Lab_cables_S21}/M8199B_Spara/everything_from_iqtools.s4p (100%) rename projects/{S21 => Lab_cables_S21}/M8199B_Spara/iqtools_m8199b_1.s2p (100%) rename projects/{S21 => Lab_cables_S21}/M8199B_Spara/iqtools_m8199b_2.s2p (100%) rename projects/{S21 => Lab_cables_S21}/dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/dpe_el_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat (100%) rename projects/{S21 => Lab_cables_S21}/est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat (100%) rename projects/{S21 => Lab_cables_S21}/load_and_show_freqresp.m (100%) rename projects/{S21 => Lab_cables_S21}/opt_b2b.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_el_b2b_uxr1102A_loop1_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_golden.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_opt_b2b_uxr1102A_loop1_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_opt_b2b_uxr1102A_loop1_1_gut.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_opt_b2b_uxr1102A_loop3_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_opt_b2b_uxr1102A_loop5_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_optical_120GAWG_256GScope_b2b_1.mat (100%) rename projects/{S21 => Lab_cables_S21}/precomp_optical_92G.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/aeon_soa_measurement_lambda_plaser_pump.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/aeon_soa_measurement_pump_level_sweep.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/amplifier_input_output_curve.m (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/available_output_power_exfo_t100_oband.fig (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/available_output_power_exfo_t100_oband_20_averages.fig (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/data_analysis_and_plot_scripts/lambda_vs_spectrum.m (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/eq_lab.m (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/laser_outputpower_sweep_1.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/laser_outputpower_sweep_2_many_averages.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/pdfa_thorlabs_pin_vs_pout.fig (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/pdfa_thorlabs_pout.fig (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/thorlabs_pdfa_100prozent_sweep.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/thorlabs_pdfa_measurement_lambda_plaser_pump.mat (100%) rename projects/{Lab_analysis => Lab_oband_laser_and_amp_analysis}/thorlabs_pdfa_measurement_pump_level_sweep.mat (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/analyze_filter_length.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/analyze_mu.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/experimental_data.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/interp_fec_cross.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/minimal_example_huawei.zip (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/minimal_example_huawei/bcjr_pam.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/minimal_example_huawei/minimal_example.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/minimal_example_huawei/ml_mlse_pam.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/model.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/rate_evaluation.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/read_csv.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/rop_evaluation.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/rrop_vs_length_evaluation.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/standard_link_model.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/theoretic_channel_evaluation.m (100%) rename projects/{ML_based_MLSE => MLSE_ML_based}/wpd_datasets.csv (100%) rename projects/{Nonlinear_MLSE => MLSE_nonuniform_states}/simulation_nonlin_dsp.m (100%) rename projects/{ => MPI}/MPI_April/auswertung_1.m (100%) rename projects/{ => MPI}/MPI_April/auswertung_2.m (100%) rename projects/{ => MPI}/MPI_April/auswertung_3.m (100%) rename projects/{ => MPI}/MPI_April/auswertung_4.m (100%) rename projects/{ => MPI}/MPI_April/auswertung_5.m (100%) rename projects/{ => MPI}/MPI_April/mpi_simulation_cspr.m (100%) rename projects/{ => MPI}/MPI_April/mzm_er.m (100%) rename projects/{ => MPI}/MPI_April/plot_analysis_window.m (100%) rename projects/{ => MPI}/MPI_April/results_ber.png (100%) rename projects/{ => MPI}/MPI_April/save_to_warehouse.m (100%) rename projects/{ => MPI}/MPI_April/simulate_tx_sig.m (100%) rename projects/{ => MPI}/MPI_August/EQ_development.m (100%) rename projects/{ => MPI}/MPI_August/EQ_development_ffe_adap_decision.m (100%) rename projects/{ => MPI}/MPI_August/EQ_development_ffe_dc_avg.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/M_4_datarate_224_sir_35_laser_linewidth_1000000_pn_key_1_rop_0.mat (100%) rename projects/{ => MPI}/MPI_August/auswertung/clipfactor_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/dc_removal_sir_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/dc_removal_window_length.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/hpf_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/hpf_curve_different_filter_bw.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/mrds_sir_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/rop_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/sensitivity_curve.m (100%) rename projects/{ => MPI}/MPI_August/auswertung/sir_curve.m (100%) rename projects/{ => MPI}/MPI_August/bits.mat (100%) rename projects/{ => MPI}/MPI_August/channel_model_mpi.m (100%) rename projects/{ => MPI}/MPI_August/mpi_uncorrelated.m (100%) rename projects/{ => MPI}/MPI_August/rx_model.m (100%) rename projects/{ => MPI}/MPI_August/scpe_sig.mat (100%) rename projects/{ => MPI}/MPI_August/simualte_MPI_data.m (100%) rename projects/{ => MPI}/MPI_August/symbols.mat (100%) rename projects/{ => MPI}/MPI_August/tx_model.m (100%) rename projects/{ => MPI}/MPI_Juni/EQ_optimization/eq_optimization.m (100%) rename projects/{ => MPI}/MPI_Juni/EQ_optimization/ref_bits_prms.mat (100%) rename projects/{ => MPI}/MPI_Juni/EQ_optimization/ref_sig_with_mpi.mat (100%) rename projects/{ => MPI}/MPI_Juni/EQ_optimization/rx_sig_with_mpi.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI_linearEQ.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI_linearEQ.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/ber_vs_er_pam4_withMPI.mat (100%) rename projects/{ => MPI}/MPI_Juni/ber_vs_er/tx_signal_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/clip_optimization/pam4_clipping.fig (100%) rename projects/{ => MPI}/MPI_Juni/clip_optimization/pam6_clipping.fig (100%) rename projects/{ => MPI}/MPI_Juni/clip_optimization/pam8_clipping.fig (100%) rename projects/{ => MPI}/MPI_Juni/clip_optimization/pam_4_6_8.fig (100%) rename projects/{ => MPI}/MPI_Juni/dataset_2506.mat (100%) rename projects/{ => MPI}/MPI_Juni/extrcurve.m (100%) rename projects/{ => MPI}/MPI_Juni/linewidth_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/main_simulation.m (100%) rename projects/{ => MPI}/MPI_Juni/mpilength_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/sir_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/tx_signal_curve.m (100%) rename projects/{ => MPI}/MPI_Juni/wh_first_run.mat (100%) rename projects/{ => MPI}/MPI_analysis_Mai24/base_simulation.m (100%) rename projects/{ => MPI}/MPI_analysis_Mai24/eq_compare.m (100%) rename projects/{ => MPI}/MPI_analysis_Mai24/ofc_sim.m (100%) rename projects/{ => MPI}/MPI_analysis_Mai24/simulation_entry.m (100%) diff --git a/.gitignore b/.gitignore index 6142cc1..d33bcf7 100644 --- a/.gitignore +++ b/.gitignore @@ -22,8 +22,8 @@ sccprj/ codegen/ -.mat - -# Local test dashboard status tracking -Tests/.last_test_run.json -Tests/reports/ +.mat + +# Local test dashboard status tracking +Tests/.last_test_run.json +Tests/reports/ diff --git a/Classes/DataBaseHandler/sql_query_collection.txt b/Classes/DataBaseHandler/sql_query_collection.txt new file mode 100644 index 0000000..f0cac57 --- /dev/null +++ b/Classes/DataBaseHandler/sql_query_collection.txt @@ -0,0 +1,400 @@ + +SELECT COUNT(*) +FROM `Results` + +SELECT COUNT(DISTINCT run_id) AS unique_run_count +FROM `Results`; + +SELECT COUNT(*) AS entries_for_run +FROM `Results` +WHERE run_id = -- your desired run_id here + 2937; + + +ALTER TABLE `Runs` +ADD COLUMN grossrate DOUBLE GENERATED ALWAYS AS ( + ( + CASE + WHEN pam_level = 4 THEN 2.0 + WHEN pam_level = 6 THEN 2.5 + WHEN pam_level = 8 THEN 3.0 + ELSE FLOOR(LOG2(pam_level) * 10) / 10 + END + ) * symbolrate +) STORED; + + + + + +SELECT + JSON_EXTRACT(voa_class, '$.atten_state[1]') AS atten_state_second +FROM Runs +WHERE run_id = 1000; + +SELECT DISTINCT + run_id +FROM Results r +WHERE date_of_processing > '2025-11-14 12:00:00'; + +SELECT DISTINCT + symbolrate +FROM Runs +WHERE pam_level = 4 + AND symbolrate IS NOT NULL +ORDER BY symbolrate; + + +SELECT DISTINCT + wavelength +FROM Runs + +SELECT + run_id, + COUNT(DISTINCT eq_id) AS unique_eq_count, + COUNT(*) AS entries_for_run +FROM `Results` +WHERE run_id IS NOT NULL +GROUP BY run_id +ORDER BY run_id; + + +SELECT +COUNT(DISTINCT eq_id) AS unique_eq_count, +COUNT(*) AS entries_for_run +FROM `Results` +WHERE run_id = -- your run_id here + 2936; + +SELECT + run_id, + COUNT(DISTINCT eq_id) AS unique_eq_count +FROM `Results` +WHERE run_id IS NOT NULL +GROUP BY run_id +ORDER BY run_id; + + +SELECT DISTINCT + r.run_id, + r.eq_id, + e.equalizer_structure, + e.eq, + e.mlse +FROM Results AS r +JOIN Equalizer AS e USING (eq_id) +WHERE r.run_id = -- your run_id here + 2731 +ORDER BY r.run_id, r.eq_id + + + + +SELECT DISTINCT + r.run_id +FROM Results AS r +JOIN Runs AS u + ON r.run_id = u.run_id +WHERE u.pam_level = 6 +ORDER BY r.run_id; + + -- older than aug 2025 +CREATE OR REPLACE VIEW dashboard_old AS +SELECT + r.run_id, + r.eq_id, + e.equalizer_structure, + + -- extract the DIR field from the JSON in e.MLSE + MAX(JSON_UNQUOTE(JSON_EXTRACT(e.MLSE, '$.DIR'))) AS DIR, + + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + + -- accumulated dispersion in ps + 0.09 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + + -- BER & new averages + AVG(r.BER) AS avg_BER, + MAX(r.SNR) AS max_SNR, + MAX(r.GMI) AS max_GMI, + AVG(r.Alpha) AS avg_Alpha, + + MIN(r.BER) AS min_BER, + AVG(r.BER_precoded) AS avg_BER_precoded, + MIN(r.BER_precoded) AS min_BER_precoded, + COUNT(*) AS num_occurrences +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL + AND r.date_of_processing < '2025-08-01 00:00:00' +GROUP BY + r.run_id, + r.eq_id, + e.equalizer_structure, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode +ORDER BY + r.run_id, + r.eq_id; + + + +CREATE OR REPLACE VIEW dashboard_new AS +SELECT + r.run_id, + r.eq_id, + e.equalizer_structure, + + -- extract the DIR field from the JSON in e.MLSE + MAX(JSON_UNQUOTE(JSON_EXTRACT(e.MLSE, '$.DIR'))) AS DIR, + + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + + -- accumulated dispersion in ps + 0.09 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + + -- BER & new averages + AVG(r.BER) AS avg_BER, + MAX(r.SNR) AS max_SNR, + MAX(r.GMI) AS max_GMI, + AVG(r.Alpha) AS avg_Alpha, + + MIN(r.BER) AS min_BER, + AVG(r.BER_precoded) AS avg_BER_precoded, + MIN(r.BER_precoded) AS min_BER_precoded, + COUNT(*) AS num_occurrences +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL + AND r.date_of_processing >= '2025-08-01 00:00:00' +GROUP BY + r.run_id, + r.eq_id, + e.equalizer_structure, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode +ORDER BY + r.run_id, + r.eq_id; + + + + CREATE OR REPLACE VIEW dashboard_ungrouped_alltime AS +SELECT + r.result_id, + r.run_id, + r.eq_id, + e.equalizer_structure, + u.bitrate, + u.grossrate, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + u.rop_attenuation, + -- accumulated dispersion in ps + 0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + r.date_of_processing, + r.numBits, + r.numBitErr, + r.BER, + r.numBitErr_precoded, + r.BER_precoded, + r.STD, + r.STDrx, + r.GMI, + r.AIR, + r.EVM, + r.Alpha +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL; + + +CREATE OR REPLACE VIEW dashboard_ungrouped_aug_nov_2025 AS +SELECT + r.result_id, + r.run_id, + r.eq_id, + e.equalizer_structure, + u.bitrate, + u.grossrate, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + u.rop_attenuation, + -- accumulated dispersion in ps + 0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + r.date_of_processing, + r.numBits, + r.numBitErr, + r.BER, + r.numBitErr_precoded, + r.BER_precoded, + r.STD, + r.STDrx, + r.GMI, + r.AIR, + r.EVM, + r.Alpha +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL +AND r.date_of_processing >= '2025-08-01 00:00:00' +AND r.date_of_processing < '2025-11-14 00:00:00'; + + +-- Das waren meine ehemals besten BERs, im Nov habe ich ML-based hinzugefügt und +-- das Rx Filter nochmal sehr eng gestellt, das war inbesondere bei geringeren Raten sehr hilfreich um +-- out.of-band noise zu filtern -> BER ging ja teilweise runter und wieder hoch... +CREATE OR REPLACE VIEW dashboard_ungrouped_aug_nov_2025 AS +SELECT + r.result_id, + r.run_id, + r.eq_id, + e.equalizer_structure, + u.bitrate, + u.grossrate, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + u.rop_attenuation, + -- accumulated dispersion in ps + 0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + r.date_of_processing, + r.numBits, + r.numBitErr, + r.BER, + r.numBitErr_precoded, + r.BER_precoded, + r.STD, + r.STDrx, + r.GMI, + r.AIR, + r.EVM +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL +AND r.date_of_processing >= '2025-08-01 00:00:00' +AND r.date_of_processing < '2025-11-14 00:00:00'; + + + + +CREATE OR REPLACE VIEW dashboard_ungrouped_old AS +SELECT + r.result_id, + r.run_id, + r.eq_id, + e.equalizer_structure, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + -- accumulated dispersion in ps + 0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + r.date_of_processing, + r.numBits, + r.numBitErr, + r.BER, + r.numBitErr_precoded, + r.BER_precoded, + r.STD, + r.STDrx, + r.GMI, + r.AIR, + r.EVM +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL +AND r.date_of_processing < '2025-08-01 00:00:00'; + +CREATE OR REPLACE VIEW dashboard_ungrouped_during_ecoc AS +SELECT + r.result_id, + r.run_id, + r.eq_id, + e.equalizer_structure, + u.symbolrate, + u.pam_level, + u.wavelength, + u.fiber_length, + u.db_mode, + -- accumulated dispersion in ps + 0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion, + r.date_of_processing, + r.numBits, + r.numBitErr, + r.BER, + r.numBitErr_precoded, + r.BER_precoded, + r.STD, + r.STDrx, + r.GMI, + r.AIR, + r.EVM +FROM Results AS r +JOIN Runs AS u ON r.run_id = u.run_id +JOIN Equalizer AS e ON r.eq_id = e.eq_id +WHERE r.eq_id IS NOT NULL +AND r.date_of_processing > '2025-09-20 00:00:00'; + + +SELECT COUNT(*) +FROM `dashboard_ungrouped` + + +CREATE OR REPLACE VIEW power_state_info AS +SELECT + run_id, + + power_laser AS power_laser, + + power_rop AS power_mzm, + + -- new power_rop first + power_pd_in + + CAST(voa_class->>'$.atten_state[1]' AS DECIMAL(12,6)) + AS power_rop, + + -- then voa_atten + CAST(voa_class->>'$.atten_state[1]' AS DECIMAL(12,6)) + AS voa_atten, + + -- then the photodiode input power + power_pd_in AS power_pd_in, + + -- appended columns + wavelength, + pam_level, + db_mode, + is_mpi, + fiber_length + +FROM Runs; diff --git a/Functions/Minimal_examples/TestRand_examplecode.m b/Functions/Minimal_examples/TestRand_examplecode.m deleted file mode 100644 index 51ecb07..0000000 --- a/Functions/Minimal_examples/TestRand_examplecode.m +++ /dev/null @@ -1,54 +0,0 @@ -classdef TestRand_examplecode < matlab.unittest.TestCase - properties (ClassSetupParameter) - generator = {'twister','combRecursive','multFibonacci'}; - end - - properties (MethodSetupParameter) - seed = {0,123,4294967295}; - end - - properties (TestParameter) - dim1 = struct('small',1,'medium',2,'large',3); - dim2 = struct('small',2,'medium',3,'large',4); - dim3 = struct('small',3,'medium',4,'large',5); - type = {'single','double'}; - end - - methods (TestClassSetup) - function classSetup(testCase,generator) - orig = rng; - testCase.addTeardown(@rng,orig) - rng(0,generator) - end - end - - methods (TestMethodSetup) - function methodSetup(testCase,seed) - orig = rng; - testCase.addTeardown(@rng,orig) - rng(seed) - end - end - - methods (Test, ParameterCombination = 'sequential') - function testSize(testCase,dim1,dim2,dim3) - testCase.verifySize(rand(dim1,dim2,dim3),[dim1 dim2 dim3]) - end - end - - methods (Test, ParameterCombination = 'pairwise') - function testRepeatable(testCase,dim1,dim2,dim3) - state = rng; - firstRun = rand(dim1,dim2,dim3); - rng(state) - secondRun = rand(dim1,dim2,dim3); - testCase.verifyEqual(firstRun,secondRun) - end - end - - methods (Test) - function testClass(testCase,dim1,dim2,type) - testCase.verifyClass(rand(dim1,dim2,type),type) - end - end -end \ No newline at end of file diff --git a/Functions/Minimal_examples/database_mysql_test.m b/Functions/Minimal_examples/database_mysql_test.m deleted file mode 100644 index a33e57c..0000000 --- a/Functions/Minimal_examples/database_mysql_test.m +++ /dev/null @@ -1,17 +0,0 @@ - -db = DBHandler("type","mysql"); - -db.tableNames -currentTime = datetime('now', 'Format', 'yyyyMMdd_HHmmss'); -newRun = db.tables.Runs; -newRun.run_id = NaN; -newRun.loop_id = 82; -newRun.date_of_run = datetime(currentTime, 'InputFormat', 'yyyyMMdd_HHmmss'); -newRun.tx_bits_path = 'pathtohell'; -newRun.tx_symbols_path = 'pathtohell2'; -newRun.rx_sync_path = ""; % Leave empty for now -newRun.rx_raw_path = 'pathtohell4'; -newRun.filename = 'filenametohell'; -newRun.tx_signal_path = 'pathtohell'; - -run_id = db.appendToTable('Runs', newRun); \ No newline at end of file diff --git a/Functions/Minimal_examples/exampleFunction.m b/Functions/Minimal_examples/exampleFunction.m deleted file mode 100644 index 4830167..0000000 --- a/Functions/Minimal_examples/exampleFunction.m +++ /dev/null @@ -1,32 +0,0 @@ -function output = exampleFunction(varargin) - - % Default values for optional variables - var_1 = 1; - var_2 = 2; - var_4 = 10; % Default value for var4 - var_5 = 20; % Default value for var5 - var_6 = 30; % Default value for var6 - var_7 = 40; % Default value for var7 - var_8 = 50; % Default value for var8 - var_9 = 60; % Default value for var9 - var_10 = 70; % Default value for var10 - - % Parse optional input arguments - if ~isempty(varargin) - var_s = varargin{1}; - if isstruct(var_s) - fields = fieldnames(var_s); - for i = 1:numel(fields) - eval([fields{i}, ' = ', num2str( var_s.(fields{i}) ), ';']); - fprintf("%s <-- %.2f \n",fields{i},var_s.(fields{i})) - end - else - error('Optional variables should be passed as a struct.'); - end - end - - output = var_4+var_10+var_9+var_8+var_1+var_2; - - -end - diff --git a/Functions/Minimal_examples/m2tikz_examples.m b/Functions/Minimal_examples/m2tikz_examples.m deleted file mode 100644 index 00ca91b..0000000 --- a/Functions/Minimal_examples/m2tikz_examples.m +++ /dev/null @@ -1,47 +0,0 @@ -x = -10:2:25; % Input power [dBm] - -y1 = 1e-5 * 10.^(0.12*x); % Dispersion-only -y2 = 1e0 ./ (1 + exp(-0.4*(x-12))); % NLPN -y3 = 1e-6 * 10.^(0.45*x); % RP on gamma -y4 = 1e-2 * 10.^(0.18*(x-8)); % RP on beta2 - -cmap = WesPalette.AsteroidCity1.rgb(4); -cmap = linspecer(4); -figure1=figure(202998);clf;hold on -lw = 0.8; ms = 3; -plot(x,y1,'LineWidth',lw,'Color',cmap(1,:),'Marker','o','MarkerEdgeColor',cmap(1,:),'MarkerFaceColor',[1,1,1],'MarkerSize',ms); -plot(x,y2,'LineWidth',lw,'Color',cmap(2,:),'Marker','square','MarkerEdgeColor',cmap(2,:),'MarkerFaceColor',[1,1,1],'MarkerSize',ms); -plot(x,y3,'LineWidth',lw,'Color',cmap(3,:),'Marker','o','MarkerEdgeColor',cmap(3,:),'MarkerFaceColor',[1,1,1],'MarkerSize',ms); -plot(x,y4,'LineWidth',lw,'Color',cmap(4,:),'Marker','o','MarkerEdgeColor',cmap(4,:),'MarkerFaceColor',[1,1,1],'MarkerSize',ms); -yline(3.8e-3,'HandleVisibility','off') - -grid on -xlabel('Input power [dBm]') -ylabel('NSD ($\%$)') -legend({'Dispersion','NLPN','RP','RP on $\beta_2$'}, ... - 'Location','best') - -grid off -set(gca,'MinorGridLineWidth',0.5); -set(gca,'GridLineWidth',0.5,'GridLineStyle','--','GridColor',[0.9,0.9,0.9]); - -set(gca,'FontSize',12,'YScale','log'); -ylim([1e-6 1e3]) -xlim([-10 23]) - - - -fig_path = 'C:\Users\Silas\Documents\Dissertation\00_Examples\tikz\textfig.tikz'; -matlab2tikz(fig_path, ... - 'width','\fwidth', ... - 'height','\fheight', ... - 'showInfo',false, ... - 'extraAxisOptions',{ ... - 'legend style={font=\footnotesize}', ... - 'xlabel style={font=\color{white!15!black},font=\small},',... - 'ylabel style={font=\color{white!15!black},font=\small},',... - 'legend columns=1', ... - 'every axis/.append style={font=\scriptsize}',... - 'legend columns=2',... - 'legend style={at={(0.02,0.98)},font=\footnotesize,draw=black!60,rounded corners=2pt,inner sep=1pt,fill=white,column sep=6pt,anchor= north west}',... - }); \ No newline at end of file diff --git a/Functions/Minimal_examples/run_examplefcn.m b/Functions/Minimal_examples/run_examplefcn.m deleted file mode 100644 index f00cbcd..0000000 --- a/Functions/Minimal_examples/run_examplefcn.m +++ /dev/null @@ -1,100 +0,0 @@ -% Define ranges for variables to iterate over -var1_range = [1, 2, 3, 4, 6]; -var2_range = [10, 20]; -var3_range = [100, 200]; - -% Prepare the parallel pool -if isempty(gcp('nocreate')) - parpool; % Start a parallel pool if not already running -end - -% Array to hold measurement futures -measurements = parallel.FevalFuture.empty(); - -% Array to hold DSP results -dsp_results = parallel.Future.empty(); - -% Nested for loops for all parameter combinations -lin_idx = 1; -for v1 = var1_range - for v2 = var2_range - for v3 = var3_range - % Construct the struct of optional variables for this iteration - optionalVars = struct('var_4', v1, 'var_5', v2, 'var_6', v3); - - % Submit the measurement function to the parallel pool - measurements(lin_idx) = parfeval(@measurement, 1, optionalVars); - - % Link DSP function to run after measurement completes - dsp_results(lin_idx) = afterEach(measurements(lin_idx), @(output) rundsp(output, optionalVars), 1); - - lin_idx = lin_idx + 1; % Increment linear index - end - end -end - -% Fetch and display DSP results -final_results = cell(numel(dsp_results), 1); -for i = 1:numel(dsp_results) - fprintf('Fetching DSP result for job %d...\n', i); - final_results{i} = fetchOutputs(dsp_results(i)); % Fetch each DSP result individually -end - -fprintf('All DSP evaluations completed.\n'); -disp('Final Results:'); -disp(final_results); - -% --- Measurement Function --- -function output = measurement(varargin) - - % Default values for optional variables - var_1 = 1; - var_2 = 2; - var_4 = 10; % Default value for var4 - var_5 = 20; % Default value for var5 - var_6 = 30; % Default value for var6 - var_7 = 40; % Default value for var7 - var_8 = 50; % Default value for var8 - var_9 = 60; % Default value for var9 - var_10 = 70; % Default value for var10 - - % Parse optional input arguments - if ~isempty(varargin) - var_s = varargin{1}; - if isstruct(var_s) - fields = fieldnames(var_s); - for i = 1:numel(fields) - eval([fields{i}, ' = ', num2str( var_s.(fields{i}) ), ';']); - fprintf("%s <-- %.2f \n", fields{i}, var_s.(fields{i})); - end - else - error('Optional variables should be passed as a struct.'); - end - end - - % Simulate output with a random delay - output = randi(5); % Random result - pause(output); % Simulate processing time -end - -% --- DSP Function --- -function output = rundsp(measurement_output, varargin) - - % Parse optional input arguments - if ~isempty(varargin) - var_s = varargin{1}; - if isstruct(var_s) - fields = fieldnames(var_s); - for i = 1:numel(fields) - eval([fields{i}, ' = ', num2str( var_s.(fields{i}) ), ';']); - fprintf("%s <-- %.2f \n", fields{i}, var_s.(fields{i})); - end - else - error('Optional variables should be passed as a struct.'); - end - end - - % Simulate DSP processing based on measurement output - output = measurement_output + 10; % Add 10 to measurement output - pause(measurement_output); % Simulate DSP processing time -end diff --git a/Functions/Minimal_examples/test_modulation.m b/Functions/Minimal_examples/test_modulation.m deleted file mode 100644 index 3c39bba..0000000 --- a/Functions/Minimal_examples/test_modulation.m +++ /dev/null @@ -1,74 +0,0 @@ -classdef test_modulation < matlab.unittest.TestCase - - properties - Tx_bits - Digi_Mod - end - - properties (MethodSetupParameter) - % Define method-level parameters for PRBS and bit pattern - useprbs = struct('false', 0, 'true', 1); % variations: {0, 1} - M = struct('M2', 2, 'M4', 4, 'M6', 6, 'M8', 8); % variations: {2, 4, 6, 8} - O = struct('O10', 10, 'O15', 15, 'O17', 17); % variations: {10, 15, 17} - end - - properties (TestParameter) - % Define test-level parameters for M and O - - end - - methods (TestMethodSetup) - - function setupModulation(testCase, useprbs, M, O) - % Setup PRBS and bit pattern for the test case using parameters - - % Setup PRBS parameters - N = 2^(O-1); % Length of PRBS - randkey = 1; % Random key for random stream - - [~, seed] = prbs(O, 1); % Initialize first seed of PRBS - bitpattern = []; - if useprbs - for i = 1:log2(M) - [bitpattern(:, i), seed] = prbs(O, N, seed); - end - else - s = RandStream('twister', 'Seed', randkey); - for i = 1:log2(M) - bitpattern(:, i) = randi(s, [0 1], N, 1); - end - end - - if M == 6 - bitpattern = reshape(bitpattern, [], 1); - bitpattern = bitpattern(1:end-mod(length(bitpattern), 5)); - end - - testCase.Tx_bits = Informationsignal(bitpattern); - testCase.Digi_Mod = PAMmapper(M, 0); - end - - end - - methods (Test, ParameterCombination = 'sequential') - % Test with sequential combination of parameters - function testBackToBackMapping(testCase, M, useprbs, O) - % Test Bits -> Symbols -> Bits (Back-to-Back Mapping) - - % Map bits to symbols - Symbols = testCase.Digi_Mod.map(testCase.Tx_bits); - - % Demap symbols back to bits - Rx_bits = testCase.Digi_Mod.demap(Symbols); - - % Validate BER is zero - [~, error_num, ber, ~] = calc_ber(testCase.Tx_bits.signal, Rx_bits.signal, ... - "skip_front", 0, "skip_end", 0, "returnErrorLocation", 1); - - % Assert that BER is zero - testCase.verifyEqual(ber, 0, 'BER should be zero'); - testCase.verifyEqual(error_num, 0, 'No errors should occur in the mapping process'); - end - end - -end diff --git a/Functions/Theory/modifiedGodardTimingRecovery.m b/Functions/Theory/modifiedGodardTimingRecovery.m deleted file mode 100644 index d8a5214..0000000 --- a/Functions/Theory/modifiedGodardTimingRecovery.m +++ /dev/null @@ -1,62 +0,0 @@ -function tau_error = modifiedGodardTimingRecovery(rx, N, eta, beta) -% modifiedGodardTimingRecovery -% -% This function estimates the symbol timing error using the modified Godard -% approach in the frequency domain as described in: -% -% "Modified Godard Timing Recovery for Non-Integer Oversampling Receivers" -% Appl. Sci. 2017, 7, 655. :contentReference[oaicite:0]{index=0}​:contentReference[oaicite:1]{index=1} -% -% Inputs: -% rx - Received time-domain signal (vector) -% N - FFT size (should be an even integer) -% eta - Effective oversampling factor used for timing recovery (eta > 1) -% beta - Roll-off related parameter (0 < beta <= 1) -% -% Output: -% tau_error - Estimated timing error (in sample units) -% -% Implementation Notes: -% 1. The function computes an N-point FFT of the first N samples of rx. -% 2. It then determines an offset (Delta) defined as: -% offset = round((1 - 1/eta) * N) -% 3. To avoid index overflow, the summation is taken over indices k from 1 to -% floor(N/2) - offset. -% 4. The timing error is estimated as: -% tau_error = ( (1+beta)/(2*eta*N - 1) * sum(phase difference) ) / (2*pi) -% where the phase difference is (angle(R(k)) - angle(R(k+offset))) -% -% Make sure that the input signal rx contains at least N samples. - -% Check input length -if length(rx) < N - error('Input signal length must be at least N.'); -end - -% Compute the N-point FFT of the first N samples of rx -R = fft(rx(1:N), N); - -% Determine the offset based on the oversampling factor (eta) -offset = round((1 - 1/eta) * N); - -% Define the summation range to avoid index overflow -k_min = 1; -k_max = floor(N/2) - offset; -if k_max < k_min - error('Chosen parameters result in an empty summation range. Adjust N, eta, or beta.'); -end - -% Compute the sum of phase differences over the selected frequency bins -phase_diff_sum = 0; -for k = k_min:k_max - phase_k = angle(R(k)); - phase_k_offset = angle(R(k + offset)); - phase_diff_sum = phase_diff_sum + (phase_k - phase_k_offset); -end - -% Normalization factor as per the modified Godard algorithm -norm_factor = (1 + beta) / (2 * eta * N - 1); - -% Estimate the timing error in sample units -tau_error = (norm_factor * phase_diff_sum) / (2 * pi); -end diff --git a/Functions/Theory/propagation_time.m b/Functions/propagation_time.m similarity index 100% rename from Functions/Theory/propagation_time.m rename to Functions/propagation_time.m diff --git a/Functions/Theory/CCDM/ccdm_gpt_example.m b/Theory/CCDM/ccdm_gpt_example.m similarity index 100% rename from Functions/Theory/CCDM/ccdm_gpt_example.m rename to Theory/CCDM/ccdm_gpt_example.m diff --git a/Functions/Minimal_examples/modulator_test.m b/Theory/Devices/modulator_test.m similarity index 100% rename from Functions/Minimal_examples/modulator_test.m rename to Theory/Devices/modulator_test.m diff --git a/Functions/Theory/Dissertation/PD/100ghz_pd.json b/Theory/Dissertation/PD/100ghz_pd.json similarity index 100% rename from Functions/Theory/Dissertation/PD/100ghz_pd.json rename to Theory/Dissertation/PD/100ghz_pd.json diff --git a/Functions/Theory/Dissertation/PD/100ghz_pd_bandwidth.csv b/Theory/Dissertation/PD/100ghz_pd_bandwidth.csv similarity index 100% rename from Functions/Theory/Dissertation/PD/100ghz_pd_bandwidth.csv rename to Theory/Dissertation/PD/100ghz_pd_bandwidth.csv diff --git a/Functions/Theory/Dissertation/PD/100ghz_pd_responsivity.csv b/Theory/Dissertation/PD/100ghz_pd_responsivity.csv similarity index 100% rename from Functions/Theory/Dissertation/PD/100ghz_pd_responsivity.csv rename to Theory/Dissertation/PD/100ghz_pd_responsivity.csv diff --git a/Functions/Theory/Dissertation/PD/70ghz_pd.json b/Theory/Dissertation/PD/70ghz_pd.json similarity index 100% rename from Functions/Theory/Dissertation/PD/70ghz_pd.json rename to Theory/Dissertation/PD/70ghz_pd.json diff --git a/Functions/Theory/Dissertation/PD/70ghz_pd_bandwidth.csv b/Theory/Dissertation/PD/70ghz_pd_bandwidth.csv similarity index 100% rename from Functions/Theory/Dissertation/PD/70ghz_pd_bandwidth.csv rename to Theory/Dissertation/PD/70ghz_pd_bandwidth.csv diff --git a/Functions/Theory/Dissertation/PD/70ghz_pd_responsivity.csv b/Theory/Dissertation/PD/70ghz_pd_responsivity.csv similarity index 100% rename from Functions/Theory/Dissertation/PD/70ghz_pd_responsivity.csv rename to Theory/Dissertation/PD/70ghz_pd_responsivity.csv diff --git a/Functions/Theory/Dissertation/PD/plot_pd_specs.m b/Theory/Dissertation/PD/plot_pd_specs.m similarity index 100% rename from Functions/Theory/Dissertation/PD/plot_pd_specs.m rename to Theory/Dissertation/PD/plot_pd_specs.m diff --git a/Functions/Theory/Dissertation/dispersion_around_zdw.m b/Theory/Dissertation/dispersion_around_zdw.m similarity index 100% rename from Functions/Theory/Dissertation/dispersion_around_zdw.m rename to Theory/Dissertation/dispersion_around_zdw.m diff --git a/Functions/Theory/Dissertation/dispersion_contour_bandwidth_lambda.m b/Theory/Dissertation/dispersion_contour_bandwidth_lambda.m similarity index 100% rename from Functions/Theory/Dissertation/dispersion_contour_bandwidth_lambda.m rename to Theory/Dissertation/dispersion_contour_bandwidth_lambda.m diff --git a/Functions/Theory/Dissertation/dispersion_contour_bivariate.m b/Theory/Dissertation/dispersion_contour_bivariate.m similarity index 100% rename from Functions/Theory/Dissertation/dispersion_contour_bivariate.m rename to Theory/Dissertation/dispersion_contour_bivariate.m diff --git a/Functions/Theory/Dissertation/mach_zehnder_modulator.m b/Theory/Dissertation/mach_zehnder_modulator.m similarity index 100% rename from Functions/Theory/Dissertation/mach_zehnder_modulator.m rename to Theory/Dissertation/mach_zehnder_modulator.m diff --git a/Functions/Theory/Dissertation/mach_zehnder_nonlinearities.m b/Theory/Dissertation/mach_zehnder_nonlinearities.m similarity index 100% rename from Functions/Theory/Dissertation/mach_zehnder_nonlinearities.m rename to Theory/Dissertation/mach_zehnder_nonlinearities.m diff --git a/Functions/Theory/Dissertation/mach_zehnder_nonlinearities_taylor.m b/Theory/Dissertation/mach_zehnder_nonlinearities_taylor.m similarity index 100% rename from Functions/Theory/Dissertation/mach_zehnder_nonlinearities_taylor.m rename to Theory/Dissertation/mach_zehnder_nonlinearities_taylor.m diff --git a/Functions/Theory/Dissertation/pmd_vs_length.m b/Theory/Dissertation/pmd_vs_length.m similarity index 100% rename from Functions/Theory/Dissertation/pmd_vs_length.m rename to Theory/Dissertation/pmd_vs_length.m diff --git a/Functions/Theory/Dissertation/power_fading.m b/Theory/Dissertation/power_fading.m similarity index 100% rename from Functions/Theory/Dissertation/power_fading.m rename to Theory/Dissertation/power_fading.m diff --git a/Functions/Minimal_examples/gpu_cpu_comparison.m b/Theory/GPU/gpu_cpu_comparison.m similarity index 100% rename from Functions/Minimal_examples/gpu_cpu_comparison.m rename to Theory/GPU/gpu_cpu_comparison.m diff --git a/Functions/Minimal_examples/gpu_processing_dpfiber.m b/Theory/GPU/gpu_processing_dpfiber.m similarity index 100% rename from Functions/Minimal_examples/gpu_processing_dpfiber.m rename to Theory/GPU/gpu_processing_dpfiber.m diff --git a/Functions/Minimal_examples/gpu_processing_test.m b/Theory/GPU/gpu_processing_test.m similarity index 100% rename from Functions/Minimal_examples/gpu_processing_test.m rename to Theory/GPU/gpu_processing_test.m diff --git a/Functions/Minimal_examples/bitwise_demapping_pam6.m b/Theory/Mapping_Coding/bitwise_demapping_pam6.m similarity index 100% rename from Functions/Minimal_examples/bitwise_demapping_pam6.m rename to Theory/Mapping_Coding/bitwise_demapping_pam6.m diff --git a/Functions/Minimal_examples/duobinary_emulation_minimal_example.m b/Theory/Mapping_Coding/duobinary_emulation_minimal_example.m similarity index 100% rename from Functions/Minimal_examples/duobinary_emulation_minimal_example.m rename to Theory/Mapping_Coding/duobinary_emulation_minimal_example.m diff --git a/Functions/Minimal_examples/duobinary_minimal_example.m b/Theory/Mapping_Coding/duobinary_minimal_example.m similarity index 100% rename from Functions/Minimal_examples/duobinary_minimal_example.m rename to Theory/Mapping_Coding/duobinary_minimal_example.m diff --git a/Functions/Minimal_examples/mapping_minimal_example.m b/Theory/Mapping_Coding/mapping_minimal_example.m similarity index 100% rename from Functions/Minimal_examples/mapping_minimal_example.m rename to Theory/Mapping_Coding/mapping_minimal_example.m diff --git a/Functions/Minimal_examples/pam_6_differential_code_understand.m b/Theory/Mapping_Coding/pam_6_differential_code_understand.m similarity index 100% rename from Functions/Minimal_examples/pam_6_differential_code_understand.m rename to Theory/Mapping_Coding/pam_6_differential_code_understand.m diff --git a/Functions/Minimal_examples/pam_6_states_analysis.m b/Theory/Mapping_Coding/pam_6_states_analysis.m similarity index 100% rename from Functions/Minimal_examples/pam_6_states_analysis.m rename to Theory/Mapping_Coding/pam_6_states_analysis.m diff --git a/Functions/Minimal_examples/test_db_minimal_example.m b/Theory/Mapping_Coding/test_db_minimal_example.m similarity index 100% rename from Functions/Minimal_examples/test_db_minimal_example.m rename to Theory/Mapping_Coding/test_db_minimal_example.m diff --git a/Functions/Minimal_examples/test_mapping_eth.m b/Theory/Mapping_Coding/test_mapping_eth.m similarity index 100% rename from Functions/Minimal_examples/test_mapping_eth.m rename to Theory/Mapping_Coding/test_mapping_eth.m diff --git a/Functions/Theory/NGMI/calculate_gmi_example.m b/Theory/NGMI/calculate_gmi_example.m similarity index 100% rename from Functions/Theory/NGMI/calculate_gmi_example.m rename to Theory/NGMI/calculate_gmi_example.m diff --git a/Functions/Theory/NGMI/mutual_infomation_undertsanding_gpt.m b/Theory/NGMI/mutual_infomation_undertsanding_gpt.m similarity index 100% rename from Functions/Theory/NGMI/mutual_infomation_undertsanding_gpt.m rename to Theory/NGMI/mutual_infomation_undertsanding_gpt.m diff --git a/Functions/Theory/Dispersion/dispersion_10km.m b/Theory/Optical/Dispersion/dispersion_10km.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_10km.m rename to Theory/Optical/Dispersion/dispersion_10km.m diff --git a/Functions/Theory/Dispersion/dispersion_contour.m b/Theory/Optical/Dispersion/dispersion_contour.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_contour.m rename to Theory/Optical/Dispersion/dispersion_contour.m diff --git a/Functions/Theory/Dispersion/dispersion_first_notch_10km.m b/Theory/Optical/Dispersion/dispersion_first_notch_10km.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_first_notch_10km.m rename to Theory/Optical/Dispersion/dispersion_first_notch_10km.m diff --git a/Functions/Theory/Dispersion/dispersion_power_fading.m b/Theory/Optical/Dispersion/dispersion_power_fading.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_power_fading.m rename to Theory/Optical/Dispersion/dispersion_power_fading.m diff --git a/Functions/Theory/Dispersion/dispersion_wavelength_notch.m b/Theory/Optical/Dispersion/dispersion_wavelength_notch.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_wavelength_notch.m rename to Theory/Optical/Dispersion/dispersion_wavelength_notch.m diff --git a/Functions/Theory/Dispersion/dispersion_wdm.m b/Theory/Optical/Dispersion/dispersion_wdm.m similarity index 100% rename from Functions/Theory/Dispersion/dispersion_wdm.m rename to Theory/Optical/Dispersion/dispersion_wdm.m diff --git a/Functions/Theory/Dispersion/power_fading_gif.m b/Theory/Optical/Dispersion/power_fading_gif.m similarity index 100% rename from Functions/Theory/Dispersion/power_fading_gif.m rename to Theory/Optical/Dispersion/power_fading_gif.m diff --git a/Functions/Theory/Dispersion/power_fading_gif_lambda_variation.m b/Theory/Optical/Dispersion/power_fading_gif_lambda_variation.m similarity index 100% rename from Functions/Theory/Dispersion/power_fading_gif_lambda_variation.m rename to Theory/Optical/Dispersion/power_fading_gif_lambda_variation.m diff --git a/Functions/Theory/PMD_maxwellshape/dgd_considerations.m b/Theory/Optical/PMD_maxwellshape/dgd_considerations.m similarity index 100% rename from Functions/Theory/PMD_maxwellshape/dgd_considerations.m rename to Theory/Optical/PMD_maxwellshape/dgd_considerations.m diff --git a/Functions/Theory/PMD_maxwellshape/pmd_maxwell.m b/Theory/Optical/PMD_maxwellshape/pmd_maxwell.m similarity index 100% rename from Functions/Theory/PMD_maxwellshape/pmd_maxwell.m rename to Theory/Optical/PMD_maxwellshape/pmd_maxwell.m diff --git a/Functions/Theory/calcFWM/FWM_products.m b/Theory/Optical/calcFWM/FWM_products.m similarity index 100% rename from Functions/Theory/calcFWM/FWM_products.m rename to Theory/Optical/calcFWM/FWM_products.m diff --git a/Functions/Theory/calcFWM/JLT_statistics_laser_and_zdw.m b/Theory/Optical/calcFWM/JLT_statistics_laser_and_zdw.m similarity index 100% rename from Functions/Theory/calcFWM/JLT_statistics_laser_and_zdw.m rename to Theory/Optical/calcFWM/JLT_statistics_laser_and_zdw.m diff --git a/Functions/Theory/calcFWM/analytical_calculation_paper.m b/Theory/Optical/calcFWM/analytical_calculation_paper.m similarity index 100% rename from Functions/Theory/calcFWM/analytical_calculation_paper.m rename to Theory/Optical/calcFWM/analytical_calculation_paper.m diff --git a/Functions/Theory/calcFWM/calcFwmEfficiency.m b/Theory/Optical/calcFWM/calcFwmEfficiency.m similarity index 100% rename from Functions/Theory/calcFWM/calcFwmEfficiency.m rename to Theory/Optical/calcFWM/calcFwmEfficiency.m diff --git a/Functions/Theory/calcFWM/calcFwmPower.m b/Theory/Optical/calcFWM/calcFwmPower.m similarity index 100% rename from Functions/Theory/calcFWM/calcFwmPower.m rename to Theory/Optical/calcFWM/calcFwmPower.m diff --git a/Functions/Theory/calcFWM/calcPhaseMatching.m b/Theory/Optical/calcFWM/calcPhaseMatching.m similarity index 100% rename from Functions/Theory/calcFWM/calcPhaseMatching.m rename to Theory/Optical/calcFWM/calcPhaseMatching.m diff --git a/Functions/Theory/calcFWM/scriptFWM.m b/Theory/Optical/calcFWM/scriptFWM.m similarity index 100% rename from Functions/Theory/calcFWM/scriptFWM.m rename to Theory/Optical/calcFWM/scriptFWM.m diff --git a/Functions/Theory/calcFWM/validate_fwm.m b/Theory/Optical/calcFWM/validate_fwm.m similarity index 100% rename from Functions/Theory/calcFWM/validate_fwm.m rename to Theory/Optical/calcFWM/validate_fwm.m diff --git a/Functions/Theory/calcFWM/wavelength2frequency.m b/Theory/Optical/calcFWM/wavelength2frequency.m similarity index 100% rename from Functions/Theory/calcFWM/wavelength2frequency.m rename to Theory/Optical/calcFWM/wavelength2frequency.m diff --git a/Functions/Theory/analyze_moving_average_filter.m b/Theory/Signal_Processing/analyze_moving_average_filter.m similarity index 100% rename from Functions/Theory/analyze_moving_average_filter.m rename to Theory/Signal_Processing/analyze_moving_average_filter.m diff --git a/Functions/Minimal_examples/bayesopt_ffe_tuning.m b/Theory/Signal_Processing/bayesopt_ffe_tuning.m similarity index 100% rename from Functions/Minimal_examples/bayesopt_ffe_tuning.m rename to Theory/Signal_Processing/bayesopt_ffe_tuning.m diff --git a/Functions/Minimal_examples/bcjr_pam.m b/Theory/Signal_Processing/bcjr_pam.m similarity index 100% rename from Functions/Minimal_examples/bcjr_pam.m rename to Theory/Signal_Processing/bcjr_pam.m diff --git a/Functions/Minimal_examples/matched_filter_minimal.m b/Theory/Signal_Processing/matched_filter_minimal.m similarity index 100% rename from Functions/Minimal_examples/matched_filter_minimal.m rename to Theory/Signal_Processing/matched_filter_minimal.m diff --git a/Functions/Theory/matched_filter_rrc.m b/Theory/Signal_Processing/matched_filter_rrc.m similarity index 100% rename from Functions/Theory/matched_filter_rrc.m rename to Theory/Signal_Processing/matched_filter_rrc.m diff --git a/Functions/Minimal_examples/minimal_example_bcjr.m b/Theory/Signal_Processing/minimal_example_bcjr.m similarity index 100% rename from Functions/Minimal_examples/minimal_example_bcjr.m rename to Theory/Signal_Processing/minimal_example_bcjr.m diff --git a/Functions/Minimal_examples/mlse_minimal_example.m b/Theory/Signal_Processing/mlse_minimal_example.m similarity index 100% rename from Functions/Minimal_examples/mlse_minimal_example.m rename to Theory/Signal_Processing/mlse_minimal_example.m diff --git a/Functions/Theory/mutual information rate TUM/LICENSE.txt b/Theory/mutual information rate TUM/LICENSE.txt similarity index 100% rename from Functions/Theory/mutual information rate TUM/LICENSE.txt rename to Theory/mutual information rate TUM/LICENSE.txt diff --git a/Functions/Theory/mutual information rate TUM/README.md b/Theory/mutual information rate TUM/README.md similarity index 100% rename from Functions/Theory/mutual information rate TUM/README.md rename to Theory/mutual information rate TUM/README.md diff --git a/Functions/Theory/mutual information rate TUM/air.m b/Theory/mutual information rate TUM/air.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/air.m rename to Theory/mutual information rate TUM/air.m diff --git a/Functions/Theory/mutual information rate TUM/example_mi_cg_complex_16qam.m b/Theory/mutual information rate TUM/example_mi_cg_complex_16qam.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/example_mi_cg_complex_16qam.m rename to Theory/mutual information rate TUM/example_mi_cg_complex_16qam.m diff --git a/Functions/Theory/mutual information rate TUM/example_mi_cg_real_2D_awgn_vs_phasenoise.m b/Theory/mutual information rate TUM/example_mi_cg_real_2D_awgn_vs_phasenoise.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/example_mi_cg_real_2D_awgn_vs_phasenoise.m rename to Theory/mutual information rate TUM/example_mi_cg_real_2D_awgn_vs_phasenoise.m diff --git a/Functions/Theory/mutual information rate TUM/example_silas.m b/Theory/mutual information rate TUM/example_silas.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/example_silas.m rename to Theory/mutual information rate TUM/example_silas.m diff --git a/Functions/Theory/mutual information rate TUM/mi_cg.m b/Theory/mutual information rate TUM/mi_cg.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/mi_cg.m rename to Theory/mutual information rate TUM/mi_cg.m diff --git a/Functions/Theory/mutual information rate TUM/silas_example_mi_cg_pam.m b/Theory/mutual information rate TUM/silas_example_mi_cg_pam.m similarity index 100% rename from Functions/Theory/mutual information rate TUM/silas_example_mi_cg_pam.m rename to Theory/mutual information rate TUM/silas_example_mi_cg_pam.m diff --git a/projects/.DS_Store b/projects/.DS_Store deleted file mode 100644 index b0fb4b30d87c013ed5581fefb464928cd2c39fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMU2GLa6h3ELV28GJ%TH;!T)kKzg%-Fi&{7b%{ee=T6zP9KFMIDU?S}1cxx4ok zY|tjgs1b-pee^%^!5AYCCMx=1VuHT-gALK>gE2m8d@&Ip{5dnTw?KjPK?O~Anwhh6 z=A4~7-+pJOXBGgkC2Q0H!~j60%B5CJ%}oj)=k1VRL+5#aBK7*#G4ft-|5ygH~6DFDerQj0>@ zlm`f(SRfODoRm_y(miGNfPpIpDF#Y+8jo>vl8Hc0N-5m|r8{6SGX@z7irL98Cd>g7 zQig4aK#0JN2=Ls!6gEMe{@Sn0-%ao#3uE9JUfNE%uFWH_6gt7A?%)E2k8j;~venGp__VUo#_e#GBU3pEEX8!oH_1w@>0_rWI0{v8l?X z73GZW*vWX%Yanc!qpeYm2aWpo>H9Lg4sXFb@Db7XGJFHy!Ow67{y>%JT8VpP8^qRF-w>y*v2o_scs5vcK2~RLjpuH)ycrOb@+E^# z?aU4$_ejHyN=z`M>F`fu? klTr$I@)PbP Postfilter + MLSE - -db_precode = 1; -db_encode = 0; -db_channelapproach = 1; - - -if ismac - precomp_path = "/Users/silasoettinghaus/Documents/MATLAB/imdd_simulation/projects/standard_system"; -else - precomp_path = "C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\standard_system\"; -end - -precomp_fn = "400G_simulative_setup"; -usemrds = 0; - -name = ['wh_',strrep(num2str(now),'.','')]; - -wh = DataStorage(params); - -wh.addStorage("Rx_Bits"); -wh.addStorage("ber_ffe"); - -%% Init Params -link_length = 1000; %meter -pn_key = 2; -laser_linewidth = 0; - -endcnt = prod(wh.dim); -cnt=0; - -disp(['Start Simulation of ',num2str(endcnt),' loops...']) -tic - -for M = wh.parameter.M.values - for datarate = wh.parameter.datarate.values - - % SETUP HERE: %% - kover = 16; - M8199 = M8199B("kover",kover); - fdac = M8199.fdac; - fsym = round(datarate / log2(M)) * 1e9; - rrcalpha = 0.05; - Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rrcalpha); - - % MAIN SIGNAL - - %%%%% Symbol Generation %%%%%% - [Digi_sig,Symbols,Bits] = PAMsource("fsym",fsym,"M",M,"order",18,"useprbs",0,... - "fs_out",M8199.fdac,"applyclipping",1,"clipfactor",1.5,... - "applypulseform",0,"pulseformer",Pform,"randkey",pn_key,... - "db_precode",db_precode,"db_encode",db_encode,... - "mrds_code",usemrds,"mrds_blocklength",512).process(); - - % Digi_sig.eye(fsym,M); - Digi_sig.spectrum("fignum",123434,"displayname",'Digital Tx Signal'); - - if precomp_mode == 1 - freqresp = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs); - Digi_sig = freqresp.buildOFDM(); - elseif precomp_mode == 2 - Digi_sig = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs).precomp(Digi_sig,'maxampdb',1,'loadPath',precomp_path,'fileName',precomp_fn); - Digi_sig.spectrum("fignum",11,"displayname",'after precomp'); - end - - %%%%% AWG %%%%%% - El_sig = M8199.process(Digi_sig); - - % El_sig.spectrum("displayname",'el','fignum',123434); - - % El_sig.signal = awgn(El_sig.signal,-3,'measured',pn_key); - - %%%%% Lowpass el. components %%%%%% - El_sig = Filter('filtdegree',2,"f_cutoff",60e9,"fs",fdac*kover,"filterType",filtertypes.butterworth,"active",true).process(El_sig); - - %%%%% Electrical Driver Amplifier %%%%%% - El_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","gain","amplification_db",3).process(El_sig); - % El_sig = El_sig.setPower(6,"dBm"); - - fprintf('Driver output power: %s dBm\n', num2str(El_sig.power)); - fprintf('Driver output peak voltage: %s Vpp \n', num2str(max(El_sig.signal)-min(El_sig.signal))); - - - % MAIN SIGNAL - %%%%% MODULATE E/O CONVERSION %%%%%% - vbias_rel = 0.5; - u_pi = 2.9; - vbias = -vbias_rel*u_pi; - - [Opt_sig] = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",El_sig.fs,"lambda",1290,"bias",vbias,"u_pi",u_pi,"linewidth",laser_linewidth,"randomkey",pn_key).process(El_sig); - - % Opt_sig.eye(fsym,7); - % - % figure(10) - % hold on - % scatter(El_sig.signal(1:100000)+vbias,(abs(Opt_sig.signal(1:100000)).^2)*1e3,0.1,'.','DisplayName','Modulator TF') - % ylim([0 4]); - % xlim([-u_pi/2, u_pi/2]+vbias); - % xlabel('Input in V') - % ylabel('abs(Output) in mW') - - Optfilter = Filter('filtdegree',6,"f_cutoff",fsym.*0.7,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true); - Opt_sig = Optfilter.process(Opt_sig); - - % Opt_sig.spectrum("fignum",122,"displayname",['Tx SPectrum; PAM ',num2str(M)]); - - Opt_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",0).process(Opt_sig); - - i_ = wh.parameter.rop.length; - - ber_ffe=zeros(i_); - - patten=zeros(i_); - - %%%%% Interference Signal Fiber Prop %%%%%% - - Opt_sig = Fiber("fsimu",Opt_sig.fs,"fiber_length",link_length/1000,"alpha",0.3,"D",0,"lambda0",1310,"gamma",0,"Dslope",0.07).process(Opt_sig); - - % Receiver ROP curve - parfor i = 1:i_ - rop=wh.parameter.rop.values(i); - - % Set ROP - Rx_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",rop).process(Opt_sig); - patten(i) = Rx_sig.power; - - %%%%%% Square Law %%%%%% - Rx_sig = Photodiode("fsimu",fdac*kover,"dark_current",2e-08,"responsivity",1,"temperature",20,"nep",1.8e-11).process(Rx_sig); - - %%%%%% Lowpass PhDiode %%%%%% - Rx_sig = Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true).process(Rx_sig); - - %%%%%% Scope %%%%%% - fadc = 256e9; - Lp_scpe = Filter('filtdegree',4,"f_cutoff",100e9,"fs",fadc,"filterType",filtertypes.butterworth,"active",true); - Scpe_sig = Scope("fsimu",fdac*kover,"fadc",fadc,... - "delay",0,"fixed_delay",0,"filtertype",filtertypes.butterworth,... - "samplingdelay",0,"rand_samplingdelay",0,"freq_offset",0,"samp_jitter",0,... - "adcresolution",10,"quantbuffer",0.1,'block_dc',1,'lpf_active',1,'H_lpf',Lp_scpe).process(Rx_sig); - - if precomp_mode == 1 - freqresp.estimate(Scpe_sig,"save",true,"savePath",precomp_path,"fileName",precomp_fn); - freqresp.plot(); - end - - Scpe_sig.spectrum("displayname",'After Scope','fignum',123434); - - %%%%%% Sample to 2x fsym %%%%%% - Scpe_sig = Scpe_sig.resample("fs_in",fadc,"fs_out",2*fsym); - - %%%%%% Sync Rx signal with reference %%%%%% - [Scpe_sig,S] = Scpe_sig.tsynch("reference",Symbols,"fs_ref",fsym); - - %%%%% EQUALIZE %%%%%% - Eq = FFE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0); - %Eq = VNLE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",[0.0004 0.0005 0.0006],"mu_tr",0,"order",[50,7,7],"sps",2,"decide",1); - - if db_channelapproach - % ref symbols and transm. sequence are precoded - [EQ_sig, Noi] = Eq.process(Scpe_sig,Duobinary().encode(Symbols)); - else - [EQ_sig, Noi] = Eq.process(Scpe_sig,Symbols); - end - - if db_encode || db_channelapproach - EQ_sig = MLSE("DIR",[1,1],"duobinary_output",1,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - EQ_sig = Duobinary().decode(EQ_sig); - end - - if postfilter - % Noi.spectrum("displayname",'Noise Spectrum','fignum',1234); - % EQ_sig.spectrum("displayname","Signal Spectrum","fignum",1234); - - nc = 2; - burg_coeff = arburg(Noi.signal,nc); - - EQ_sig = EQ_sig.filter(burg_coeff,1); - - % EQ_sig.spectrum("displayname","Signal Spectrum after Postfilter","fignum",1234); - tic - EQ_sig = MLSE("DIR",burg_coeff,"duobinary_output",0,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - toc - % EQ_sig.spectrum("displayname","Signal Spectrum after MLSE","fignum",1234); - - if 1 - Noi.spectrum('displayname','Noise PSD','fignum',123) - [h,w] = freqz(1,burg_coeff,length(Noi),"whole",Noi.fs); - h = h/max(abs(h)); - hold on - w_ = (w - Noi.fs/2); - plot(w_.*1e-9,20*log10(fftshift(h)),'DisplayName',['', num2str(nc), ' coefficients for burg alg.']); - end - end - - Rx_bits(i) = PAMmapper(M,0).demap(EQ_sig); - [~,errors_bm,ber_ffe(i),errors] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - disp(['BER: ',sprintf('%.1E',ber_ffe(i)),' - - ROP: ',num2str(patten(i)),'dBm - - PAM-',num2str(M),' - - ',num2str(fsym*1e-9),' GBd']); - - end - - for i = 1:i_ - rop=wh.parameter.rop.values(i); - - wh.addValueToStorage(ber_ffe(i),'ber_ffe',M,datarate,rop); - wh.addValueToStorage(Rx_bits(i),'Rx_Bits',M,datarate,rop); - - end - - toc - - filename = 'bla3'; - wh.save(['C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\MPI_August\auswertung\',filename]); - - end -end - - -disp('Simulation Done!') - - -cols = linspecer(8); - -%cnt = cnt+1; -ber_ffe = wh.getStoValue('ber_ffe',M,datarate,wh.parameter.rop.values); - -% Create the initial plot - -figure(44); -a = gca; -hold on; % Retain the plot so new points can be added without complete redraw - -plot(wh.parameter.rop.values,ber_ffe,"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE only"); -yline(3.8e-3,'DisplayName','HD-FEC','LineStyle','--','HandleVisibility','off'); -xlabel('Received Optical Power (dBm)'); -ylabel('Bit Error Rate (BER)'); -title('Bit Error Rate vs. ROP'); -set(gca,'yscale','log'); -set(gca,'Box','on'); -grid on; -grid minor -legend diff --git a/projects/400G_FTN_setups/imdd_dsp_lab_copy_200G.m b/projects/400G_FTN_setups/imdd_dsp_lab_copy_200G.m deleted file mode 100644 index 15d77ac..0000000 --- a/projects/400G_FTN_setups/imdd_dsp_lab_copy_200G.m +++ /dev/null @@ -1,247 +0,0 @@ - -%% Parameter to simulate and save -params = struct; - -params.M = [4]; -params.datarate = [184]; -params.rop = [-5]; - -precomp_mode = 1; %0=do nothing ; 1= measure; 2=precomp active -postfilter = 0; % noise whiten. approach -> Postfilter + MLSE - -db_precode = 0; -db_encode = 0; -db_channelapproach = 0; - -if ismac - precomp_path = "/Users/silasoettinghaus/Documents/MATLAB/imdd_simulation/projects/standard_system"; -else - precomp_path = "C:\Users\sioe\Documents\MATLAB\imdd_simulation\projects\standard_system\"; -end - -precomp_fn = "400G_simulative_setup"; -usemrds = 0; - -name = ['wh_',strrep(num2str(now),'.','')]; - -wh = DataStorage(params); - -wh.addStorage("ber_ffe"); - -%% Init Params -link_length = 10000; %meter -pn_key = 2; -laser_linewidth = 0; - -endcnt = prod(wh.dim); -cnt=0; - -disp(['Start Simulation of ',num2str(endcnt),' loops...']) -tic - -for M = wh.parameter.M.values - for datarate = wh.parameter.datarate.values - - % SETUP HERE: %% - kover = 16; - Awg = M8196A("kover",kover); - fdac = Awg.fdac; - fsym = round(datarate / log2(M)) * 1e9; - rrcalpha = 0.05; - Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rrcalpha); - - % MAIN SIGNAL - - %%%%% Symbol Generation %%%%%% - [Digi_sig,Symbols,Bits] = PAMsource("fsym",fsym,"M",M,"order",18,"useprbs",0,... - "fs_out",Awg.fdac,"applyclipping",1,"clipfactor",1.5,... - "applypulseform",0,"pulseformer",Pform,"randkey",pn_key,... - "db_precode",db_precode,"db_encode",db_encode,... - "mrds_code",usemrds,"mrds_blocklength",512).process(); - - % Digi_sig.eye(fsym,M); - Digi_sig.spectrum("fignum",123434,"displayname",'Digital Tx Signal'); - - if precomp_mode == 1 - freqresp = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs); - Digi_sig = freqresp.buildOFDM(); - elseif precomp_mode == 2 - Digi_sig = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs).precomp(Digi_sig,'maxampdb',1,'loadPath',precomp_path,'fileName',precomp_fn); - Digi_sig.spectrum("fignum",11,"displayname",'after precomp'); - end - - %%%%% AWG %%%%%% - El_sig = Awg.process(Digi_sig); - - % El_sig.spectrum("displayname",'el','fignum',123434); - - % El_sig.signal = awgn(El_sig.signal,-3,'measured',pn_key); - - %%%%% Lowpass el. components %%%%%% - El_sig = Filter('filtdegree',2,"f_cutoff",60e9,"fs",fdac*kover,"filterType",filtertypes.butterworth,"active",true).process(El_sig); - - %%%%% Electrical Driver Amplifier %%%%%% - El_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","gain","amplification_db",3).process(El_sig); - % El_sig = El_sig.setPower(6,"dBm"); - - fprintf('Driver output power: %s dBm\n', num2str(El_sig.power)); - fprintf('Driver output peak voltage: %s Vpp \n', num2str(max(El_sig.signal)-min(El_sig.signal))); - - - % MAIN SIGNAL - %%%%% MODULATE E/O CONVERSION %%%%%% - vbias_rel = 0.5; - u_pi = 2.9; - vbias = -vbias_rel*u_pi; - - [Opt_sig] = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",El_sig.fs,"lambda",1290,"bias",vbias,"u_pi",u_pi,"linewidth",laser_linewidth,"randomkey",pn_key).process(El_sig); - - % Opt_sig.eye(fsym,7); - % - % figure(10) - % hold on - % scatter(El_sig.signal(1:100000)+vbias,(abs(Opt_sig.signal(1:100000)).^2)*1e3,0.1,'.','DisplayName','Modulator TF') - % ylim([0 4]); - % xlim([-u_pi/2, u_pi/2]+vbias); - % xlabel('Input in V') - % ylabel('abs(Output) in mW') - - Optfilter = Filter('filtdegree',6,"f_cutoff",fsym.*0.7,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true); - Opt_sig = Optfilter.process(Opt_sig); - - % Opt_sig.spectrum("fignum",122,"displayname",['Tx SPectrum; PAM ',num2str(M)]); - - Opt_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",0).process(Opt_sig); - - i_ = wh.parameter.rop.length; - - ber_ffe=zeros(i_); - - patten=zeros(i_); - - %%%%% Interference Signal Fiber Prop %%%%%% - - Opt_sig = Fiber("fsimu",Opt_sig.fs,"fiber_length",link_length/1000,"alpha",0.3,"D",0,"lambda0",1310,"gamma",0,"Dslope",0.07).process(Opt_sig); - - % Receiver ROP curve - for i = 1:i_ - - rop=wh.parameter.rop.values(i); - - % Set ROP - Rx_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",rop).process(Opt_sig); - patten(i) = Rx_sig.power; - - %%%%%% Square Law %%%%%% - Rx_sig = Photodiode("fsimu",fdac*kover,"dark_current",2e-08,"responsivity",1,"temperature",20,"nep",1.8e-11).process(Rx_sig); - - %%%%%% Lowpass PhDiode %%%%%% - Rx_sig = Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true).process(Rx_sig); - - %%%%%% Scope %%%%%% - fadc = 160e9; - Lp_scpe = Filter('filtdegree',4,"f_cutoff",63e9,"fs",fadc,"filterType",filtertypes.butterworth,"active",true); - Scpe_sig = Scope("fsimu",fdac*kover,"fadc",fadc,... - "delay",0,"fixed_delay",0,"filtertype",filtertypes.butterworth,... - "samplingdelay",0,"rand_samplingdelay",0,"freq_offset",0,"samp_jitter",0,... - "adcresolution",5.5,"quantbuffer",0.1,'block_dc',1,'lpf_active',1,'H_lpf',Lp_scpe).process(Rx_sig); - - if precomp_mode == 1 - freqresp.estimate(Scpe_sig,"save",true,"savePath",precomp_path,"fileName",precomp_fn); - freqresp.plot(); - end - - Scpe_sig.spectrum("displayname",'After Scope','fignum',123434); - - %%%%%% Sample to 2x fsym %%%%%% - Scpe_sig = Scpe_sig.resample("fs_in",fadc,"fs_out",2*fsym); - - %%%%%% Sync Rx signal with reference %%%%%% - [Scpe_sig,S] = Scpe_sig.tsynch("reference",Symbols,"fs_ref",fsym); - - %%%%% EQUALIZE %%%%%% - Eq = FFE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0); - %Eq = VNLE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",[0.0004 0.0005 0.0006],"mu_tr",0,"order",[50,7,7],"sps",2,"decide",1); - - if db_channelapproach - % ref symbols and transm. sequence are precoded - [EQ_sig, Noi] = Eq.process(Scpe_sig,Duobinary().encode(Symbols)); - else - [EQ_sig, Noi] = Eq.process(Scpe_sig,Symbols); - end - - if db_encode || db_channelapproach - EQ_sig = MLSE("DIR",[1,1],"duobinary_output",1,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - EQ_sig = Duobinary().decode(EQ_sig); - end - - if postfilter - % Noi.spectrum("displayname",'Noise Spectrum','fignum',1234); - % EQ_sig.spectrum("displayname","Signal Spectrum","fignum",1234); - - nc = 2; - burg_coeff = arburg(Noi.signal,nc); - - EQ_sig = EQ_sig.filter(burg_coeff,1); - - % EQ_sig.spectrum("displayname","Signal Spectrum after Postfilter","fignum",1234); - tic - EQ_sig = MLSE("DIR",burg_coeff,"duobinary_output",0,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - toc - % EQ_sig.spectrum("displayname","Signal Spectrum after MLSE","fignum",1234); - - if 1 - Noi.spectrum('displayname','Noise PSD','fignum',123) - [h,w] = freqz(1,burg_coeff,length(Noi),"whole",Noi.fs); - h = h/max(abs(h)); - hold on - w_ = (w - Noi.fs/2); - plot(w_.*1e-9,20*log10(fftshift(h)),'DisplayName',['', num2str(nc), ' coefficients for burg alg.']); - end - end - - Rx_bits = PAMmapper(M,0).demap(EQ_sig); - [~,errors_bm,ber_ffe(i),errors] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - disp(['BER: ',sprintf('%.1E',ber_ffe(i)),' - - ROP: ',num2str(patten(i)),'dBm - - PAM-',num2str(M),' - - ',num2str(fsym*1e-9),' GBd']); - - end - - for i = 1:i_ - rop=wh.parameter.rop.values(i); - - wh.addValueToStorage(ber_ffe(i),'ber_ffe',M,datarate,rop); - - end - - toc - - % wh.save('C:\Users\Silas\Documents\MATLAB\imdd_simulation\projects\MPI_August\auswertung\') - - end -end - - -disp('Simulation Done!') - - -cols = linspecer(8); - -%cnt = cnt+1; -ber_ffe = wh.getStoValue('ber_ffe',M,datarate,wh.parameter.rop.values); - -% Create the initial plot - -figure(44); -a = gca; -hold on; % Retain the plot so new points can be added without complete redraw - -plot(wh.parameter.rop.values,ber_ffe,"LineWidth",0.5,"LineStyle","-","Marker",".","MarkerSize",15,"DisplayName","FFE only"); -yline(3.8e-3,'DisplayName','HD-FEC','LineStyle','--','HandleVisibility','off'); -xlabel('Received Optical Power (dBm)'); -ylabel('Bit Error Rate (BER)'); -title('Bit Error Rate vs. ROP'); -set(gca,'yscale','log'); -set(gca,'Box','on'); -grid on; -grid minor -legend diff --git a/projects/400G_FTN_setups/imdd_mpi_dsp.m b/projects/400G_FTN_setups/imdd_mpi_dsp.m deleted file mode 100644 index 2016158..0000000 --- a/projects/400G_FTN_setups/imdd_mpi_dsp.m +++ /dev/null @@ -1,383 +0,0 @@ - -%% Parameter to simulate and save -params = struct; - -params.M = [4]; -params.datarate = [448]; -params.rop = [0]; -params.sir = 45; -params.random_key_laser_phase = 10:20; - -precomp_mode = 0; %0=do nothing ; 1= measure; 2=precomp active -postfilter = 1; % noise whiten. approach -> Postfilter + MLSE - -db_precode = 0; -db_encode = 0; -db_channelapproach = 0; - -laser_linewidth = 5e5; -random_key_sequence = 15; -random_key_laser_phase = 66; -sir = 20; - -if ismac - precomp_path = "/Users/silasoettinghaus/Documents/MATLAB/imdd_simulation/projects/standard_system"; -else - precomp_path = "C:\Users\Silas\Documents\MATLAB\imdd_simulation\projects\standard_system\"; -end - -precomp_fn = "400G_simulative_setup"; - -usemrds = 0; - -name = ['wh_',strrep(num2str(now),'.','')]; - -wh = DataStorage(params); - -wh.addStorage("ber_vnle"); -wh.addStorage("ber_mlse"); - -%% Init Params -link_length = 1000; %meter - -endcnt = prod(wh.dim); -cnt=0; - -disp(['Start Simulation of ',num2str(endcnt),' loops...']) -tic - -for random_key_laser_phase = wh.parameter.random_key_laser_phase.values -for M = wh.parameter.M.values - for datarate = wh.parameter.datarate.values - - % SETUP HERE: %% - kover = 16; - M8199 = M8199B("kover",kover); - fdac = M8199.fdac; - fsym = round(datarate / log2(M)) * 1e9; - rrcalpha = 0.05; - Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rrcalpha); - - % MAIN SIGNAL - - %%%%% Symbol Generation MAIN %%%%%% - [Digi_sig,Symbols,Bits] = PAMsource("fsym",fsym,"M",M,"order",19,"useprbs",1,... - "fs_out",M8199.fdac,"applyclipping",0,"clipfactor",1.5,... - "applypulseform",0,"pulseformer",Pform,"randkey",random_key_sequence,... - "db_precode",db_precode,"db_encode",db_encode,... - "mrds_code",usemrds,"mrds_blocklength",512).process(); - - %%%%% Symbol Generation INTERFERENCE %%%%%% - [Digi_sig_I,Symbols_I,Bits_I] = PAMsource("fsym",fsym,"M",M,"order",19,"useprbs",0,... - "fs_out",M8199.fdac,"applyclipping",0,"clipfactor",1.5,... - "applypulseform",0,"pulseformer",Pform,"randkey",random_key_sequence+1,... - "db_precode",db_precode,"db_encode",db_encode,... - "mrds_code",usemrds,"mrds_blocklength",512).process(); - - % Digi_sig.eye(fsym,M); - % Digi_sig.normalize("mode","rms").spectrum("displayname",'Tx Signal','fignum',10); - - if precomp_mode == 1 %measure - freqresp = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs); - Digi_sig = freqresp.buildOFDM(); - Digi_sig_I = freqresp.buildOFDM(); - elseif precomp_mode == 2 %apply - Digi_sig = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig.fs).precomp(Digi_sig,'maxampdb',3,'loadPath',precomp_path,'fileName',precomp_fn); - Digi_sig_I = ChannelFreqResp("Nacq",1024,"Navg",64,"Ncp",63,'f_ref',Digi_sig_I.fs).precomp(Digi_sig_I,'maxampdb',3,'loadPath',precomp_path,'fileName',precomp_fn); - Digi_sig.spectrum("fignum",11,"displayname",'after precomp'); - end - - - - %%%%% AWG MAIN %%%%%% - El_sig = M8199.process(Digi_sig); - - %%%%% Lowpass el. components %%%%%% - El_sig = Filter('filtdegree',2,"f_cutoff",100e9,"fs",fdac*kover,"filterType",filtertypes.butterworth,"active",true).process(El_sig); - - %%%%% Electrical Driver Amplifier %%%%%% - El_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","gain","amplification_db",3).process(El_sig); - - fprintf('Driver output power: %s dBm\n', num2str(El_sig.power)); - fprintf('Driver output peak voltage: %s Vpp \n', num2str(max(El_sig.signal)-min(El_sig.signal))); - - % El_sig.spectrum("displayname",'Transmit PDS','fignum',10); - - %%%%% AWG INTERFERENCE %%%%%% - El_sig_I = M8199.process(Digi_sig_I); - - %%%%% Lowpass el. components %%%%%% - El_sig_I = Filter('filtdegree',3,"f_cutoff",100e9,"fs",fdac*kover,"filterType",filtertypes.butterworth,"active",true).process(El_sig_I); - - %%%%% Electrical Driver Amplifier %%%%%% - El_sig_I = Amplifier("amp_mode","ideal_no_noise","gain_mode","gain","amplification_db",3).process(El_sig_I); - - - - - % MAIN SIGNAL - %%%%% MODULATE E/O CONVERSION %%%%%% - vbias_rel = 0.5; - u_pi = 2.9; - vbias = -vbias_rel*u_pi; - - [Opt_sig] = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",El_sig.fs,"lambda",1290,"bias",vbias,"u_pi",u_pi,"linewidth",laser_linewidth,"randomkey",random_key_laser_phase).process(El_sig); - Optfilter = Filter('filtdegree',3,"f_cutoff",110e9,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true); - Opt_sig = Optfilter.process(Opt_sig); - Opt_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",0).process(Opt_sig); - - [Opt_sig_I] = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",El_sig_I.fs,"lambda",1290,"bias",vbias,"u_pi",u_pi,"linewidth",laser_linewidth,"randomkey",random_key_laser_phase+1).process(El_sig_I); - Optfilter = Filter('filtdegree',3,"f_cutoff",110e9,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true); - Opt_sig_I = Optfilter.process(Opt_sig_I); - Opt_sig_I = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",0).process(Opt_sig_I); - - - %%%%% Interference Signal Fiber Prop 2x fiber length %%%%%% - Opt_sig_I = Fiber("fsimu",Opt_sig_I.fs,"fiber_length",2*link_length/1000,"alpha",0.3,"D",0,"lambda0",1310,"gamma",0,"Dslope",0.07).process(Opt_sig_I); - - % ber=zeros(i_); - % patten=zeros(i_); - i_ = wh.parameter.rop.length; - j_ = wh.parameter.sir.length; - - ber_vnle=zeros(i_,j_); - ber_mlse=zeros(i_,j_,3); - - for j = 1:j_ - - sir = wh.parameter.sir.values(j); - - %%%%% Set SIR %%%%%% - Opt_sig_I_atten = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",Opt_sig.power-sir).process(Opt_sig_I); - - %%%%% ADD Interference and Main Signal %%%%%% - Opt_sig_MPI = Opt_sig_I_atten + Opt_sig; - - %%%%% Interference Signal Fiber Prop %%%%%% - Opt_sig_MPI = Fiber("fsimu",Opt_sig.fs,"fiber_length",link_length/1000,"alpha",0.3,"D",0,"lambda0",1310,"gamma",0,"Dslope",0.07).process(Opt_sig_MPI); - - - % Receiver ROP curve - for i = 1:i_ - rop=wh.parameter.rop.values(i); - - % Set ROP - Rx_sig = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",rop).process(Opt_sig_MPI); - % patten(i) = Rx_sig.power; - - %%%%%% Square Law %%%%%% - Rx_sig = Photodiode("fsimu",fdac*kover,"dark_current",2e-08,"responsivity",1,"temperature",20,"nep",1.8e-11).process(Rx_sig); - - %%%%%% Lowpass PhDiode %%%%%% - Rx_sig = Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.gaussian,"active",true).process(Rx_sig); - - %%%%%% Scope %%%%%% - fadc = 256e9; - Lp_scpe = Filter('filtdegree',4,"f_cutoff",100e9,"fs",fadc,"filterType",filtertypes.butterworth,"active",true); - Scpe_sig = Scope("fsimu",fdac*kover,"fadc",fadc,... - "delay",0,"fixed_delay",0,"filtertype",filtertypes.butterworth,... - "samplingdelay",0,"rand_samplingdelay",0,"freq_offset",0,"samp_jitter",0,... - "adcresolution",10,"quantbuffer",0.1,'block_dc',1,'lpf_active',1,'H_lpf',Lp_scpe).process(Rx_sig); - - if precomp_mode == 1 - freqresp.estimate(Scpe_sig,"save",true,"savePath",precomp_path,"fileName",precomp_fn); - freqresp.plot(); - end - - % Scpe_sig_normalized = Scpe_sig.normalize("mode","rms"); - % - % Scpe_sig_normalized.normalize("mode","rms").spectrum("displayname",'After Scope','fignum',23); - - %%%%%% Sample to 2x fsym %%%%%% - Scpe_sig = Scpe_sig.resample("fs_in",fadc,"fs_out",2*fsym); - - %%%%%% Sync Rx signal with reference %%%%%% - [Scpe_sig,S] = Scpe_sig.tsynch("reference",Symbols,"fs_ref",fsym); - - %%%%% EQUALIZE %%%%%% - Eq = FFE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0); - % Eq = VNLE("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",[0.0004 0.0005 0.0006],"mu_tr",0,"order",[50,7,7],"sps",2,"decide",1); - - % Eq = EQ("Ne",[50,7,7],"Nb",[0,0,0],"training_length",4096*2,"training_loops",5,"dd_loops",5,"K",2,"DCmu",0.0,"DDmu",[0.0004 0.0004 0.0004 0.0004 ],"DFEmu",0.005,"FFEmu",0,"plotfinal",0,"ideal_dfe",1); - - % Eq = FFE_Kalman("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0); - - % Eq = FFE_Kalman_Feedback("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0); - - % Eq = FFE_adaptive_decision("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",1,"buffer_length",80); - - % Eq = FFE_DCremoval("epochs_tr",5,"epochs_dd",5,"len_tr",4096*2,"mu_dd",1e-4,"mu_tr",0,"order",25,"sps",2,"decide",0,"mu_dc",0.05,"dc_buffer_len",100); - % - % Eq = EQ("Ne",[50,7,7],"Nb",[0,0,0],"training_length",4096*2,"training_loops",5,"dd_loops",5,"K",2,"DCmu",0.0,"DDmu",[0.0004 0.0004 0.0004 0.0004 ],"DFEmu",0.005,"FFEmu",0,"plotfinal",0,"ideal_dfe",1); - - if db_channelapproach - % ref symbols and transm. sequence are precoded - [EQ_sig, Noi] = Eq.process(Scpe_sig,Duobinary().encode(Symbols)); - - EQ_sig = MLSE("DIR",[1,1],"duobinary_output",1,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - EQ_sig = Duobinary().decode(EQ_sig); - Rx_bits = PAMmapper(M,0).demap(EQ_sig); - [~,~,ber_vnle(i,j),~] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - - - EQ_sig.spectrum('displayname','EQ DB Out','fignum',12345,'normalizeTo0dB',0,'normalizeToNyquist',0,'color',cols(3,:)); - Noi.spectrum('displayname','Noise PSD optimal','fignum',1234,'normalizeTo0dB',0,'normalizeToNyquist',0,'color',cols(4,:)); - - - elseif db_encode - - [EQ_sig, Noi] = Eq.process(Scpe_sig,Symbols); - EQ_sig = MLSE("DIR",[1,1],"duobinary_output",1,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig); - EQ_sig = Duobinary().decode(EQ_sig); - - elseif postfilter - - [EQ_sig, Noi] = Eq.process(Scpe_sig,Symbols); - - %%% REMOVE DC peak from Noi PSD - S = Noi.signal; - N1 = 1001; - - % recursion - % Initialize the moving sum for the first window - half_window = (N1 - 1) / 2; - moving_sum = sum(S(1:N1)); - - % Calculate the first element of R1 - S_(1:half_window+1) = S(1:half_window+1) - (moving_sum / N1); - - % Loop over the signal and apply the recursive moving average subtraction - for n = (half_window+2):(length(S)-half_window) - % Update the moving sum by subtracting the oldest value and adding the new one - moving_sum = moving_sum - S(n-half_window-1) + S(n+half_window); - - % Calculate the new value of R1 - S_(n) = S(n) - (moving_sum / N1); - end - - S_(n+1:length(S)) = S(n+1:end) - (moving_sum / N1); - Noi.signal = S_; - %%% END REMOVE DC PEAK %%% - - Rx_bits = PAMmapper(M,0).demap(EQ_sig); - [~,~,ber_vnle(i,j),~] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - - EQ_sig.spectrum('displayname','EQ Out','fignum',12345,'normalizeTo0dB',0,'normalizeToNyquist',0,'color',cols(1,:)); - - - Noi.spectrum('displayname','Noise PSD optimal','fignum',22,'normalizeTo0dB',1,'normalizeToNyquist',0,'color',cols(2,:)); - - for nc = 1:3 - - burg_coeff = arburg(Noi.signal,nc); - - EQ_sig_filt = EQ_sig.filter(burg_coeff,1); - - % EQ_sig.spectrum("displayname","Signal Spectrum after Postfilter","fignum",1234); - - EQ_sig_mlse = MLSE("DIR",burg_coeff,"duobinary_output",0,"M",M,"trellis_states",PAMmapper(M,0).levels).process(EQ_sig_filt); - - % EQ_sig.spectrum("displayname","Signal Spectrum after MLSE","fignum",1234); - - if 1 - cols = linspecer(12); - - % EQ_sig_filt.normalize('mode','rms').spectrum('displayname','Noise PSD','fignum',1234,'normalizeTo0dB',1,'normalizeToNyquist',0,'color',cols(nc+2,:)); - - [h,w] = freqz(1,burg_coeff,length(Noi),"whole",Noi.fs); - % h = 1./h; - h = h/max(abs(h)); - hold on - w_ = (w - Noi.fs/2); - figure(22) - plot(w_.*1e-9,20*log10(fftshift(h)),'DisplayName',['', num2str(nc), ' coefficients for burg alg.']); - - end - - Rx_bits = PAMmapper(M,0).demap(EQ_sig_mlse); - [~,errors_bm,ber_mlse(i,j,nc),errors] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - % disp(['BER: ',sprintf('%.1E',ber_mlse(i,j)),' - - ROP: ',num2str(patten(i)),'dBm - - PAM-',num2str(M),' - - ',num2str(fsym*1e-9),' GBd']); - - end - - else - - - - - [EQ_sig, Noi] = Eq.process(Scpe_sig,Symbols); - - if 0 - Noi.spectrum('displayname','Noise PSD','fignum',123,'normalizeTo0dB',1,'normalizeToNyquist',1); - EQ_sig.plot("displayname",'After EQ','fignum',1113); - end - % - Rx_bits = PAMmapper(M,0).demap(EQ_sig); - [~,errors_bm,ber_vnle(i,j),errors] = calc_ber(Rx_bits.signal,Bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1); - - end - - - - - - end - - end - - for j = 1:j_ - sir = wh.parameter.sir.values(j); - for i = 1:i_ - rop=wh.parameter.rop.values(i); - - wh.addValueToStorage(ber_vnle(i,j),'ber_vnle',M,datarate,rop,sir,random_key_laser_phase); - wh.addValueToStorage(ber_mlse(i,j,:),'ber_mlse',M,datarate,rop,sir,random_key_laser_phase); - - end - end - - toc - - % wh.save('C:\Users\Silas\Documents\MATLAB\imdd_simulation\projects\MPI_August\auswertung\') - - end -end -end - -disp('Simulation Done!') - -ber_mlse=[]; -ber_vnle=[]; -cols = linspecer(8); -random_key_laser_phase_ = wh.parameter.random_key_laser_phase.values; -cnt = 0; -for r = random_key_laser_phase_ - cnt = cnt+1; - ber_mlse(cnt,:,1:3) = wh.getStoValue('ber_mlse',M,datarate,wh.parameter.rop.values(1),wh.parameter.sir.values,r); - ber_vnle(cnt,:,1) = wh.getStoValue('ber_vnle',M,datarate,wh.parameter.rop.values(1),wh.parameter.sir.values,r); -end - -ber_mlse=squeeze(mean(ber_mlse,1)); -ber_vnle = mean(ber_vnle,1); -% Create the initial plot - -figure(466); -a = gca; -hold on; % Retain the plot so new points can be added without complete redraw - -dispname = ['Lw: ',num2str(laser_linewidth.*1e-6),' MHz']; -cols = linspecer(6); -plot(wh.parameter.sir.values,ber_vnle,"LineWidth",0.5,"LineStyle","--","Marker",".","MarkerSize",15,"DisplayName",['PAM',num2str(M),' VNLE ',dispname],'Color',cols(1,:)); -plot(wh.parameter.sir.values,ber_mlse(:,1),"LineWidth",0.5,"LineStyle","--","Marker",".","MarkerSize",15,"DisplayName",['PAM',num2str(M),'MLSE 1 ',dispname],'Color',cols(2,:)); -plot(wh.parameter.sir.values,ber_mlse(:,2),"LineWidth",0.5,"LineStyle","--","Marker",".","MarkerSize",15,"DisplayName",['PAM',num2str(M),'MLSE 2',dispname],'Color',cols(3,:)); -plot(wh.parameter.sir.values,ber_mlse(:,3),"LineWidth",0.5,"LineStyle","--","Marker",".","MarkerSize",15,"DisplayName",['PAM',num2str(M),'MLSE 3',dispname],'Color',cols(4,:)); - -yline(3.8e-3,'DisplayName','HD-FEC','LineStyle','--','HandleVisibility','off'); -xlabel('Received Optical Power (dBm)'); -ylabel('Bit Error Rate (BER)'); -title('Bit Error Rate vs. ROP'); -set(gca,'yscale','log'); -set(gca,'Box','on'); -grid on; -grid minor -legend diff --git a/projects/AWG_characterization/output_power.m b/projects/AWG_output_power_simulation/output_power.m similarity index 100% rename from projects/AWG_characterization/output_power.m rename to projects/AWG_output_power_simulation/output_power.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_dispersion.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_dispersion.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_dispersion.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_dispersion.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_rate.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_rate.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_rate.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_rate.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_rate_only_best_configs.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_rate_only_best_configs.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/ber_vs_rate_only_best_configs.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/ber_vs_rate_only_best_configs.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/Copy_of_FIGURE_ROP.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/Copy_of_FIGURE_ROP.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/Copy_of_FIGURE_ROP.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/Copy_of_FIGURE_ROP.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/Copy_of_FIGURE_WAVELENGTH.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/Copy_of_FIGURE_WAVELENGTH.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/Copy_of_FIGURE_WAVELENGTH.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/Copy_of_FIGURE_WAVELENGTH.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_BER_3x4.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_BER_3x4.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_BER_3x4.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_BER_3x4.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_EYES.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_EYES.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_EYES.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_EYES.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_NGMI.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_NGMI.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_NGMI.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_NGMI.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_NGMI_v2.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_NGMI_v2.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_NGMI_v2.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_NGMI_v2.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_ROP.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_ROP.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_ROP.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_ROP.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_Spectra.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_Spectra.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_Spectra.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_Spectra.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_WAVELENGTH.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_WAVELENGTH.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_WAVELENGTH.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_WAVELENGTH.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_WAVELENGTH_VS_BAUDRATE.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_WAVELENGTH_VS_BAUDRATE.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_WAVELENGTH_VS_BAUDRATE.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_WAVELENGTH_VS_BAUDRATE.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_introduction.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_introduction.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/FIGURE_introduction.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/FIGURE_introduction.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/HighSpeedExperiments.xlsx b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/HighSpeedExperiments.xlsx similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/HighSpeedExperiments.xlsx rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/HighSpeedExperiments.xlsx diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/analyze_measurements_gpt.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/analyze_measurements_gpt.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/analyze_measurements_gpt.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/analyze_measurements_gpt.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/bibtex_analyzer_ieee.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/bibtex_analyzer_ieee.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/bibtex_analyzer_ieee.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/bibtex_analyzer_ieee.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/compare_ber_best_results.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/compare_ber_best_results.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/compare_ber_best_results.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/compare_ber_best_results.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/compare_pre_emphasis.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/compare_pre_emphasis.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/compare_pre_emphasis.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/compare_pre_emphasis.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/example_usage.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/example_usage.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/example_usage.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/example_usage.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/generate_spectrum_plots.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/generate_spectrum_plots.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/generate_spectrum_plots.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/generate_spectrum_plots.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/plot_measurements_gpt.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/plot_measurements_gpt.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/plot_measurements_gpt.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/plot_measurements_gpt.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/plot_measurements_gpt_old.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/plot_measurements_gpt_old.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/plot_measurements_gpt_old.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/plot_measurements_gpt_old.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/rates.csv b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/rates.csv similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/rates.csv rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/rates.csv diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/final/run_plot_measurements.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/run_plot_measurements.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/final/run_plot_measurements.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/final/run_plot_measurements.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/gmi_vs_rate.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/gmi_vs_rate.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/gmi_vs_rate.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/gmi_vs_rate.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/power_vs_wavelength.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/power_vs_wavelength.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/power_vs_wavelength.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/power_vs_wavelength.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/run_dsp_from_db.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/run_dsp_from_db.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/run_dsp_from_db.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/run_dsp_from_db.m diff --git a/projects/HighSpeedExperiment_2024/Auswertung_JLT/simulate_and_dsp.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/simulate_and_dsp.m similarity index 100% rename from projects/HighSpeedExperiment_2024/Auswertung_JLT/simulate_and_dsp.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/Auswertung_JLT/simulate_and_dsp.m diff --git a/projects/HighSpeedExperiment_2024/a_minimal_example.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/a_minimal_example.m similarity index 100% rename from projects/HighSpeedExperiment_2024/a_minimal_example.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/a_minimal_example.m diff --git a/projects/HighSpeedExperiment_2024/analysis_script.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/analysis_script.m similarity index 100% rename from projects/HighSpeedExperiment_2024/analysis_script.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/analysis_script.m diff --git a/projects/HighSpeedExperiment_2024/auswertung MPI/analyze_mpi.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/analyze_mpi.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung MPI/analyze_mpi.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/analyze_mpi.m diff --git a/projects/HighSpeedExperiment_2024/auswertung MPI/dsp_mpi.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_mpi.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung MPI/dsp_mpi.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_mpi.m diff --git a/projects/HighSpeedExperiment_2024/auswertung MPI/dsp_mpi_database.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_mpi_database.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung MPI/dsp_mpi_database.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_mpi_database.m diff --git a/projects/HighSpeedExperiment_2024/auswertung MPI/dsp_run_id.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_run_id.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung MPI/dsp_run_id.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/dsp_run_id.m diff --git a/projects/HighSpeedExperiment_2024/auswertung MPI/plot_from_database.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/plot_from_database.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung MPI/plot_from_database.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung MPI/plot_from_database.m diff --git a/projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_burg.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_burg.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_burg.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_burg.m diff --git a/projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_equalizer_taps.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_equalizer_taps.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_equalizer_taps.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_equalizer_taps.m diff --git a/projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_lambda.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_lambda.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_lambda.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_lambda.m diff --git a/projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_postfilter_taps.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_postfilter_taps.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung deliv 06 feb 2025/analyze_postfilter_taps.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung deliv 06 feb 2025/analyze_postfilter_taps.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/App/Block_Diagram.svg b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/Block_Diagram.svg similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/App/Block_Diagram.svg rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/Block_Diagram.svg diff --git a/projects/HighSpeedExperiment_2024/auswertung/App/auswertungs_app.mlapp b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/auswertungs_app.mlapp similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/App/auswertungs_app.mlapp rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/auswertungs_app.mlapp diff --git a/projects/HighSpeedExperiment_2024/auswertung/App/database_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/database_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/App/database_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/database_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg diff --git a/projects/HighSpeedExperiment_2024/auswertung/App/query_stats_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/query_stats_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/App/query_stats_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/query_stats_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg diff --git a/projects/HighSpeedExperiment_2024/auswertung/App/table_convert_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/table_convert_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/App/table_convert_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/App/table_convert_24dp_E8EAED_FILL0_wght400_GRAD0_opsz24.svg diff --git a/projects/HighSpeedExperiment_2024/auswertung/analyzeDB_shortened.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/analyzeDB_shortened.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/analyzeDB_shortened.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/analyzeDB_shortened.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/analyze_mu_dc.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/analyze_mu_dc.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/analyze_mu_dc.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/analyze_mu_dc.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/ber_vs_bitrate.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/ber_vs_bitrate.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/ber_vs_bitrate.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/ber_vs_bitrate.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/ber_vs_length.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/ber_vs_length.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/ber_vs_length.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/ber_vs_length.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/buildDBfromMeasurements.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/buildDBfromMeasurements.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/buildDBfromMeasurements.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/buildDBfromMeasurements.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/checkDB.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/checkDB.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/checkDB.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/checkDB.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/checkDBpaths.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/checkDBpaths.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/checkDBpaths.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/checkDBpaths.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/createConfigMenu.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/createConfigMenu.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/createConfigMenu.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/createConfigMenu.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/getBerForRunId.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/getBerForRunId.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/getBerForRunId.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/getBerForRunId.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/only_show_precomp.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/only_show_precomp.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/only_show_precomp.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/only_show_precomp.m diff --git a/projects/HighSpeedExperiment_2024/auswertung/runDSP.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/runDSP.m similarity index 100% rename from projects/HighSpeedExperiment_2024/auswertung/runDSP.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/auswertung/runDSP.m diff --git a/projects/HighSpeedExperiment_2024/baudrate_evaluation.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/baudrate_evaluation.m similarity index 100% rename from projects/HighSpeedExperiment_2024/baudrate_evaluation.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/baudrate_evaluation.m diff --git a/projects/HighSpeedExperiment_2024/baudrate_sweep.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/baudrate_sweep.m similarity index 100% rename from projects/HighSpeedExperiment_2024/baudrate_sweep.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/baudrate_sweep.m diff --git a/projects/HighSpeedExperiment_2024/bias_evaluation.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/bias_evaluation.m similarity index 100% rename from projects/HighSpeedExperiment_2024/bias_evaluation.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/bias_evaluation.m diff --git a/projects/HighSpeedExperiment_2024/bias_optimization.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/bias_optimization.m similarity index 100% rename from projects/HighSpeedExperiment_2024/bias_optimization.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/bias_optimization.m diff --git a/projects/HighSpeedExperiment_2024/db_auswertung/rate_vs_ber.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/db_auswertung/rate_vs_ber.m similarity index 100% rename from projects/HighSpeedExperiment_2024/db_auswertung/rate_vs_ber.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/db_auswertung/rate_vs_ber.m diff --git a/projects/HighSpeedExperiment_2024/db_auswertung/realization_vs_ber.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/db_auswertung/realization_vs_ber.m similarity index 100% rename from projects/HighSpeedExperiment_2024/db_auswertung/realization_vs_ber.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/db_auswertung/realization_vs_ber.m diff --git a/projects/HighSpeedExperiment_2024/master_auswertung_10km.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/master_auswertung_10km.m similarity index 100% rename from projects/HighSpeedExperiment_2024/master_auswertung_10km.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/master_auswertung_10km.m diff --git a/projects/HighSpeedExperiment_2024/master_evaluation.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/master_evaluation.m similarity index 100% rename from projects/HighSpeedExperiment_2024/master_evaluation.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/master_evaluation.m diff --git a/projects/HighSpeedExperiment_2024/mpi_measurement.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/mpi_measurement.m similarity index 100% rename from projects/HighSpeedExperiment_2024/mpi_measurement.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/mpi_measurement.m diff --git a/projects/HighSpeedExperiment_2024/offline_dsp/mpi_dsp.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/offline_dsp/mpi_dsp.m similarity index 100% rename from projects/HighSpeedExperiment_2024/offline_dsp/mpi_dsp.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/offline_dsp/mpi_dsp.m diff --git a/projects/HighSpeedExperiment_2024/single_auswertung_10km.m b/projects/Advanced_DSP_for_400G_IMDD_experiments/single_auswertung_10km.m similarity index 100% rename from projects/HighSpeedExperiment_2024/single_auswertung_10km.m rename to projects/Advanced_DSP_for_400G_IMDD_experiments/single_auswertung_10km.m diff --git a/projects/Dissertation/minimal_example.m b/projects/Dissertation/minimal_example.m deleted file mode 100644 index 4ff6e2b..0000000 --- a/projects/Dissertation/minimal_example.m +++ /dev/null @@ -1,23 +0,0 @@ - -M = 4; -randkey = 1; -order = 17; - -N = 2^(order-1); %length of prbs -bitpattern = zeros(N,log2(M)); -s = RandStream('twister','Seed',randkey); -for i = 1:log2(M) - bitpattern(:,i) = randi(s,[0 1], N, 1); -end - -if M == 6 - bitpattern = reshape(bitpattern',[],1); - bitpattern = bitpattern(1:end-mod(length(bitpattern),5)); -end - -bits = Informationsignal(bitpattern); -% bits = bits.logbookentry(['Generate bit stream with size: ', num2str(size(bitpattern))]); - -symbols = PAMmapper(M,0).map(bits); - -PAMmapper(M,0).showBitMapping diff --git a/projects/ECOC_2025/auswertung_algorithms/mpi_dsp_debug.m b/projects/ECOC_2025_MPI/auswertung_algorithms/mpi_dsp_debug.m similarity index 100% rename from projects/ECOC_2025/auswertung_algorithms/mpi_dsp_debug.m rename to projects/ECOC_2025_MPI/auswertung_algorithms/mpi_dsp_debug.m diff --git a/projects/ECOC_2025/auswertung_algorithms/run_offline_dsp.m b/projects/ECOC_2025_MPI/auswertung_algorithms/run_offline_dsp.m similarity index 100% rename from projects/ECOC_2025/auswertung_algorithms/run_offline_dsp.m rename to projects/ECOC_2025_MPI/auswertung_algorithms/run_offline_dsp.m diff --git a/projects/ECOC_2025/dsp_filtered_db.m b/projects/ECOC_2025_MPI/dsp_filtered_db.m similarity index 100% rename from projects/ECOC_2025/dsp_filtered_db.m rename to projects/ECOC_2025_MPI/dsp_filtered_db.m diff --git a/projects/ECOC_2025/dsp_run_id.m b/projects/ECOC_2025_MPI/dsp_run_id.m similarity index 100% rename from projects/ECOC_2025/dsp_run_id.m rename to projects/ECOC_2025_MPI/dsp_run_id.m diff --git a/projects/ECOC_2025/dsp_standalone.m b/projects/ECOC_2025_MPI/dsp_standalone.m similarity index 100% rename from projects/ECOC_2025/dsp_standalone.m rename to projects/ECOC_2025_MPI/dsp_standalone.m diff --git a/projects/ECOC_2025/dsp_standalone_2.m b/projects/ECOC_2025_MPI/dsp_standalone_2.m similarity index 100% rename from projects/ECOC_2025/dsp_standalone_2.m rename to projects/ECOC_2025_MPI/dsp_standalone_2.m diff --git a/projects/ECOC_2025/dsp_test/hyperparam_tuning.m b/projects/ECOC_2025_MPI/dsp_test/hyperparam_tuning.m similarity index 100% rename from projects/ECOC_2025/dsp_test/hyperparam_tuning.m rename to projects/ECOC_2025_MPI/dsp_test/hyperparam_tuning.m diff --git a/projects/ECOC_2025/ecoc2025.db b/projects/ECOC_2025_MPI/ecoc2025.db similarity index 100% rename from projects/ECOC_2025/ecoc2025.db rename to projects/ECOC_2025_MPI/ecoc2025.db diff --git a/projects/ECOC_2025/ecoc2025.sqbpro b/projects/ECOC_2025_MPI/ecoc2025.sqbpro similarity index 100% rename from projects/ECOC_2025/ecoc2025.sqbpro rename to projects/ECOC_2025_MPI/ecoc2025.sqbpro diff --git a/projects/ECOC_2025/ecoc2025_einmessung.db b/projects/ECOC_2025_MPI/ecoc2025_einmessung.db similarity index 100% rename from projects/ECOC_2025/ecoc2025_einmessung.db rename to projects/ECOC_2025_MPI/ecoc2025_einmessung.db diff --git a/projects/ECOC_2025/ecoc2025_fail.db b/projects/ECOC_2025_MPI/ecoc2025_fail.db similarity index 100% rename from projects/ECOC_2025/ecoc2025_fail.db rename to projects/ECOC_2025_MPI/ecoc2025_fail.db diff --git a/projects/ECOC_2025/ecoc2025_loops - Kopie.db b/projects/ECOC_2025_MPI/ecoc2025_loops - Kopie.db similarity index 100% rename from projects/ECOC_2025/ecoc2025_loops - Kopie.db rename to projects/ECOC_2025_MPI/ecoc2025_loops - Kopie.db diff --git a/projects/ECOC_2025/ecoc2025_loops.db b/projects/ECOC_2025_MPI/ecoc2025_loops.db similarity index 100% rename from projects/ECOC_2025/ecoc2025_loops.db rename to projects/ECOC_2025_MPI/ecoc2025_loops.db diff --git a/projects/ECOC_2025/estimate_linewidth.m b/projects/ECOC_2025_MPI/estimate_linewidth.m similarity index 100% rename from projects/ECOC_2025/estimate_linewidth.m rename to projects/ECOC_2025_MPI/estimate_linewidth.m diff --git a/projects/ECOC_2025/load_signal_standalone.m b/projects/ECOC_2025_MPI/load_signal_standalone.m similarity index 100% rename from projects/ECOC_2025/load_signal_standalone.m rename to projects/ECOC_2025_MPI/load_signal_standalone.m diff --git a/projects/ECOC_2025/measure_run.m b/projects/ECOC_2025_MPI/measure_run.m similarity index 100% rename from projects/ECOC_2025/measure_run.m rename to projects/ECOC_2025_MPI/measure_run.m diff --git a/projects/ECOC_2025/measure_run_script.m b/projects/ECOC_2025_MPI/measure_run_script.m similarity index 100% rename from projects/ECOC_2025/measure_run_script.m rename to projects/ECOC_2025_MPI/measure_run_script.m diff --git a/projects/ECOC_2025/plots_from_database/bias_vs_ber.m b/projects/ECOC_2025_MPI/plots_from_database/bias_vs_ber.m similarity index 100% rename from projects/ECOC_2025/plots_from_database/bias_vs_ber.m rename to projects/ECOC_2025_MPI/plots_from_database/bias_vs_ber.m diff --git a/projects/ECOC_2025/plots_from_database/plot_bias_awg_vs_ber.m b/projects/ECOC_2025_MPI/plots_from_database/plot_bias_awg_vs_ber.m similarity index 100% rename from projects/ECOC_2025/plots_from_database/plot_bias_awg_vs_ber.m rename to projects/ECOC_2025_MPI/plots_from_database/plot_bias_awg_vs_ber.m diff --git a/projects/ECOC_2025/plots_from_database/plot_mpi_trial.m b/projects/ECOC_2025_MPI/plots_from_database/plot_mpi_trial.m similarity index 100% rename from projects/ECOC_2025/plots_from_database/plot_mpi_trial.m rename to projects/ECOC_2025_MPI/plots_from_database/plot_mpi_trial.m diff --git a/projects/ECOC_2025/precomp_1km.mat b/projects/ECOC_2025_MPI/precomp_1km.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km.mat rename to projects/ECOC_2025_MPI/precomp_1km.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable_100ghz_pd.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable_100ghz_pd.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable_100ghz_pd.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable_100ghz_pd.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shf_t850_2p8_bias_shot2.mat diff --git a/projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shot2.mat b/projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shot2.mat similarity index 100% rename from projects/ECOC_2025/precomp_1km_1mm_cable_70ghz_pd_shot2.mat rename to projects/ECOC_2025_MPI/precomp_1km_1mm_cable_70ghz_pd_shot2.mat diff --git a/projects/ECOC_2025/sqlite_sequence.sql b/projects/ECOC_2025_MPI/sqlite_sequence.sql similarity index 100% rename from projects/ECOC_2025/sqlite_sequence.sql rename to projects/ECOC_2025_MPI/sqlite_sequence.sql diff --git a/projects/ECOC_2025/submit_dsp.m b/projects/ECOC_2025_MPI/submit_dsp.m similarity index 100% rename from projects/ECOC_2025/submit_dsp.m rename to projects/ECOC_2025_MPI/submit_dsp.m diff --git a/projects/ECOC_2025/theory/analytic_mpi_evaluation.m b/projects/ECOC_2025_MPI/theory/analytic_mpi_evaluation.m similarity index 100% rename from projects/ECOC_2025/theory/analytic_mpi_evaluation.m rename to projects/ECOC_2025_MPI/theory/analytic_mpi_evaluation.m diff --git a/projects/ECOC_2025/theory/coherence_length_plot.m b/projects/ECOC_2025_MPI/theory/coherence_length_plot.m similarity index 100% rename from projects/ECOC_2025/theory/coherence_length_plot.m rename to projects/ECOC_2025_MPI/theory/coherence_length_plot.m diff --git a/projects/FSO_transmission/Evaluation Scripts/Optimize_WDFE_Parameters.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/Optimize_WDFE_Parameters.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/Optimize_WDFE_Parameters.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/Optimize_WDFE_Parameters.m diff --git a/projects/FSO_transmission/Evaluation Scripts/db_test_i_dont_get_it.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/db_test_i_dont_get_it.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/db_test_i_dont_get_it.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/db_test_i_dont_get_it.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_FFE_DFE.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_FFE_DFE.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_FFE_DFE.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_FFE_DFE.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_cell.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_cell.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_cell.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_cell.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_ffe.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_ffe.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_ffe_with_and_without_db_target.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe_with_and_without_db_target.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_ffe_with_and_without_db_target.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe_with_and_without_db_target.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_ffe_with_and_without_db_target_baud_rate_sweep.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe_with_and_without_db_target_baud_rate_sweep.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_ffe_with_and_without_db_target_baud_rate_sweep.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_ffe_with_and_without_db_target_baud_rate_sweep.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_optimize_timing_recovery_parameters.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_optimize_timing_recovery_parameters.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_optimize_timing_recovery_parameters.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_optimize_timing_recovery_parameters.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2_20G.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2_20G.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2_20G.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2_20G.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2_opt.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2_opt.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_2_opt.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_2_opt.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep_opt.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep_opt.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep_opt.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_baud_rate_sweep_opt.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_opt.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_opt.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_opt.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_opt.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_saa.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_saa.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_pam_4_saa.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_pam_4_saa.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_tests.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_tests.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_tests.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_tests.m diff --git a/projects/FSO_transmission/Evaluation Scripts/evalscript_timing_shift.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_timing_shift.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/evalscript_timing_shift.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/evalscript_timing_shift.m diff --git a/projects/FSO_transmission/Evaluation Scripts/execution_script_optimal_signal_trace_selection_sweep.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/execution_script_optimal_signal_trace_selection_sweep.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/execution_script_optimal_signal_trace_selection_sweep.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/execution_script_optimal_signal_trace_selection_sweep.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_2.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_2.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_2.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_2.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_20G.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_20G.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_20G.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_20G.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_baud_rate_sweep.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_baud_rate_sweep.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_baud_rate_sweep.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_baud_rate_sweep.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_ber.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_ber.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_ber.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_ber.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_fso.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_fso.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_fso.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_fso.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_mf.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_mf.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_mf.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_mf.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_optimize.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_optimize.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_optimize.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_optimize.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec_pam2.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec_pam2.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec_pam2.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec_pam2.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec_pam4.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec_pam4.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_time_rec_pam4.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_rec_pam4.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_time_shift.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_shift.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_time_shift.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_time_shift.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf_pam2.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf_pam2.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf_pam2.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf_pam2.m diff --git a/projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf_pam_2.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf_pam_2.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/first_analysis_tr_mf_pam_2.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/first_analysis_tr_mf_pam_2.m diff --git a/projects/FSO_transmission/Evaluation Scripts/ml_mlse_complexity_plot.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/ml_mlse_complexity_plot.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/ml_mlse_complexity_plot.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/ml_mlse_complexity_plot.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_baud_rate_sweep_method.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_baud_rate_sweep_method.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_baud_rate_sweep_method.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_baud_rate_sweep_method.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_2_conf.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_2_conf.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_2_conf.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_2_conf.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_2_optimal.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_2_optimal.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_2_optimal.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_2_optimal.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_baud_rate_sweep_conf.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_baud_rate_sweep_conf.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_baud_rate_sweep_conf.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_baud_rate_sweep_conf.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_conf.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_conf.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_conf.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_conf.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_optimal.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_optimal.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_optimal.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_optimal.m diff --git a/projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_symbol_rate_sweep_optimal.m b/projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_symbol_rate_sweep_optimal.m similarity index 100% rename from projects/FSO_transmission/Evaluation Scripts/plotscript_pam_4_symbol_rate_sweep_optimal.m rename to projects/FSO_transmission_ZJU_collaboration/Evaluation Scripts/plotscript_pam_4_symbol_rate_sweep_optimal.m diff --git a/projects/FSO_transmission/FSO_timing_recovery_minimal_example.m b/projects/FSO_transmission_ZJU_collaboration/FSO_timing_recovery_minimal_example.m similarity index 100% rename from projects/FSO_transmission/FSO_timing_recovery_minimal_example.m rename to projects/FSO_transmission_ZJU_collaboration/FSO_timing_recovery_minimal_example.m diff --git a/projects/FSO_transmission/first_analysis.m b/projects/FSO_transmission_ZJU_collaboration/first_analysis.m similarity index 100% rename from projects/FSO_transmission/first_analysis.m rename to projects/FSO_transmission_ZJU_collaboration/first_analysis.m diff --git a/Functions/Minimal_examples/awg_test.m b/projects/Lab_basic_control/awg_test.m similarity index 100% rename from Functions/Minimal_examples/awg_test.m rename to projects/Lab_basic_control/awg_test.m diff --git a/projects/Lab_base_system/exfo_control_app.mlapp b/projects/Lab_basic_control/exfo_control_app.mlapp similarity index 100% rename from projects/Lab_base_system/exfo_control_app.mlapp rename to projects/Lab_basic_control/exfo_control_app.mlapp diff --git a/projects/Lab_base_system/exfo_laser_example.m b/projects/Lab_basic_control/exfo_laser_example.m similarity index 100% rename from projects/Lab_base_system/exfo_laser_example.m rename to projects/Lab_basic_control/exfo_laser_example.m diff --git a/projects/Lab_base_system/olaf_control.m b/projects/Lab_basic_control/olaf_control.m similarity index 100% rename from projects/Lab_base_system/olaf_control.m rename to projects/Lab_basic_control/olaf_control.m diff --git a/projects/Lab_base_system/olaf_laser_att_control_lambda_sweep.m b/projects/Lab_basic_control/olaf_laser_att_control_lambda_sweep.m similarity index 100% rename from projects/Lab_base_system/olaf_laser_att_control_lambda_sweep.m rename to projects/Lab_basic_control/olaf_laser_att_control_lambda_sweep.m diff --git a/projects/Lab_base_system/olaf_laser_control.m b/projects/Lab_basic_control/olaf_laser_control.m similarity index 100% rename from projects/Lab_base_system/olaf_laser_control.m rename to projects/Lab_basic_control/olaf_laser_control.m diff --git a/projects/Lab_base_system/olaf_laser_control_minimal.m b/projects/Lab_basic_control/olaf_laser_control_minimal.m similarity index 100% rename from projects/Lab_base_system/olaf_laser_control_minimal.m rename to projects/Lab_basic_control/olaf_laser_control_minimal.m diff --git a/projects/Lab_base_system/olaf_laser_control_single_wavelength_OFF.m b/projects/Lab_basic_control/olaf_laser_control_single_wavelength_OFF.m similarity index 100% rename from projects/Lab_base_system/olaf_laser_control_single_wavelength_OFF.m rename to projects/Lab_basic_control/olaf_laser_control_single_wavelength_OFF.m diff --git a/projects/Lab_base_system/olaf_laser_control_single_wavelength_ON.m b/projects/Lab_basic_control/olaf_laser_control_single_wavelength_ON.m similarity index 100% rename from projects/Lab_base_system/olaf_laser_control_single_wavelength_ON.m rename to projects/Lab_basic_control/olaf_laser_control_single_wavelength_ON.m diff --git a/projects/Lab_base_system/test_device_control.m b/projects/Lab_basic_control/test_device_control.m similarity index 100% rename from projects/Lab_base_system/test_device_control.m rename to projects/Lab_basic_control/test_device_control.m diff --git a/projects/S21/ExampleDirectoryApp.mlapp b/projects/Lab_cables_S21/ExampleDirectoryApp.mlapp similarity index 100% rename from projects/S21/ExampleDirectoryApp.mlapp rename to projects/Lab_cables_S21/ExampleDirectoryApp.mlapp diff --git a/projects/S21/HF Kabel/kabel-09z07001.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-09z07001.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-09z07001.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-09z07001.s2p diff --git a/projects/S21/HF Kabel/kabel-09z07002.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-09z07002.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-09z07002.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-09z07002.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-1.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-1.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-1.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-1.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-2.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-2.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-2.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-2.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-3.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-3.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-3.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-3.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-4.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-4.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-4.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-4.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-5defekt.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-5defekt.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-5defekt.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-5defekt.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-6.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-6.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-6.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-6.s2p diff --git a/projects/S21/HF Kabel/kabel-miniband-7.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-miniband-7.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-miniband-7.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-miniband-7.s2p diff --git a/projects/S21/HF Kabel/kabel-sn2830-2ea.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-sn2830-2ea.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-sn2830-2ea.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-sn2830-2ea.s2p diff --git a/projects/S21/HF Kabel/kabel-sn2831-2ea.s2p b/projects/Lab_cables_S21/HF Kabel/kabel-sn2831-2ea.s2p similarity index 100% rename from projects/S21/HF Kabel/kabel-sn2831-2ea.s2p rename to projects/Lab_cables_S21/HF Kabel/kabel-sn2831-2ea.s2p diff --git a/projects/S21/HF Kabel/plot_cable.m b/projects/Lab_cables_S21/HF Kabel/plot_cable.m similarity index 100% rename from projects/S21/HF Kabel/plot_cable.m rename to projects/Lab_cables_S21/HF Kabel/plot_cable.m diff --git a/projects/S21/M8199B_Spara/M8199B_ch1_inverted_Scope_Ch4.s2p b/projects/Lab_cables_S21/M8199B_Spara/M8199B_ch1_inverted_Scope_Ch4.s2p similarity index 100% rename from projects/S21/M8199B_Spara/M8199B_ch1_inverted_Scope_Ch4.s2p rename to projects/Lab_cables_S21/M8199B_Spara/M8199B_ch1_inverted_Scope_Ch4.s2p diff --git a/projects/S21/M8199B_Spara/everything_from_iqtools.s4p b/projects/Lab_cables_S21/M8199B_Spara/everything_from_iqtools.s4p similarity index 100% rename from projects/S21/M8199B_Spara/everything_from_iqtools.s4p rename to projects/Lab_cables_S21/M8199B_Spara/everything_from_iqtools.s4p diff --git a/projects/S21/M8199B_Spara/iqtools_m8199b_1.s2p b/projects/Lab_cables_S21/M8199B_Spara/iqtools_m8199b_1.s2p similarity index 100% rename from projects/S21/M8199B_Spara/iqtools_m8199b_1.s2p rename to projects/Lab_cables_S21/M8199B_Spara/iqtools_m8199b_1.s2p diff --git a/projects/S21/M8199B_Spara/iqtools_m8199b_2.s2p b/projects/Lab_cables_S21/M8199B_Spara/iqtools_m8199b_2.s2p similarity index 100% rename from projects/S21/M8199B_Spara/iqtools_m8199b_2.s2p rename to projects/Lab_cables_S21/M8199B_Spara/iqtools_m8199b_2.s2p diff --git a/projects/S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat b/projects/Lab_cables_S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat similarity index 100% rename from projects/S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat rename to projects/Lab_cables_S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1.mat diff --git a/projects/S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat b/projects/Lab_cables_S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat similarity index 100% rename from projects/S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat rename to projects/Lab_cables_S21/dpe_el_b2b_m8199b_uxr1102A_loop1_1_1mmKabel.mat diff --git a/projects/S21/est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat b/projects/Lab_cables_S21/est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat similarity index 100% rename from projects/S21/est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat rename to projects/Lab_cables_S21/est_el_b2b_9186A_ch_1_DSOZ634A_ch11.mat diff --git a/projects/S21/load_and_show_freqresp.m b/projects/Lab_cables_S21/load_and_show_freqresp.m similarity index 100% rename from projects/S21/load_and_show_freqresp.m rename to projects/Lab_cables_S21/load_and_show_freqresp.m diff --git a/projects/S21/opt_b2b.mat b/projects/Lab_cables_S21/opt_b2b.mat similarity index 100% rename from projects/S21/opt_b2b.mat rename to projects/Lab_cables_S21/opt_b2b.mat diff --git a/projects/S21/precomp_el_b2b_uxr1102A_loop1_1.mat b/projects/Lab_cables_S21/precomp_el_b2b_uxr1102A_loop1_1.mat similarity index 100% rename from projects/S21/precomp_el_b2b_uxr1102A_loop1_1.mat rename to projects/Lab_cables_S21/precomp_el_b2b_uxr1102A_loop1_1.mat diff --git a/projects/S21/precomp_golden.mat b/projects/Lab_cables_S21/precomp_golden.mat similarity index 100% rename from projects/S21/precomp_golden.mat rename to projects/Lab_cables_S21/precomp_golden.mat diff --git a/projects/S21/precomp_opt_b2b_uxr1102A_loop1_1.mat b/projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop1_1.mat similarity index 100% rename from projects/S21/precomp_opt_b2b_uxr1102A_loop1_1.mat rename to projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop1_1.mat diff --git a/projects/S21/precomp_opt_b2b_uxr1102A_loop1_1_gut.mat b/projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop1_1_gut.mat similarity index 100% rename from projects/S21/precomp_opt_b2b_uxr1102A_loop1_1_gut.mat rename to projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop1_1_gut.mat diff --git a/projects/S21/precomp_opt_b2b_uxr1102A_loop3_1.mat b/projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop3_1.mat similarity index 100% rename from projects/S21/precomp_opt_b2b_uxr1102A_loop3_1.mat rename to projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop3_1.mat diff --git a/projects/S21/precomp_opt_b2b_uxr1102A_loop5_1.mat b/projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop5_1.mat similarity index 100% rename from projects/S21/precomp_opt_b2b_uxr1102A_loop5_1.mat rename to projects/Lab_cables_S21/precomp_opt_b2b_uxr1102A_loop5_1.mat diff --git a/projects/S21/precomp_optical_120GAWG_256GScope_b2b_1.mat b/projects/Lab_cables_S21/precomp_optical_120GAWG_256GScope_b2b_1.mat similarity index 100% rename from projects/S21/precomp_optical_120GAWG_256GScope_b2b_1.mat rename to projects/Lab_cables_S21/precomp_optical_120GAWG_256GScope_b2b_1.mat diff --git a/projects/S21/precomp_optical_92G.mat b/projects/Lab_cables_S21/precomp_optical_92G.mat similarity index 100% rename from projects/S21/precomp_optical_92G.mat rename to projects/Lab_cables_S21/precomp_optical_92G.mat diff --git a/projects/Lab_analysis/aeon_soa_measurement_lambda_plaser_pump.mat b/projects/Lab_oband_laser_and_amp_analysis/aeon_soa_measurement_lambda_plaser_pump.mat similarity index 100% rename from projects/Lab_analysis/aeon_soa_measurement_lambda_plaser_pump.mat rename to projects/Lab_oband_laser_and_amp_analysis/aeon_soa_measurement_lambda_plaser_pump.mat diff --git a/projects/Lab_analysis/aeon_soa_measurement_pump_level_sweep.mat b/projects/Lab_oband_laser_and_amp_analysis/aeon_soa_measurement_pump_level_sweep.mat similarity index 100% rename from projects/Lab_analysis/aeon_soa_measurement_pump_level_sweep.mat rename to projects/Lab_oband_laser_and_amp_analysis/aeon_soa_measurement_pump_level_sweep.mat diff --git a/projects/Lab_analysis/amplifier_input_output_curve.m b/projects/Lab_oband_laser_and_amp_analysis/amplifier_input_output_curve.m similarity index 100% rename from projects/Lab_analysis/amplifier_input_output_curve.m rename to projects/Lab_oband_laser_and_amp_analysis/amplifier_input_output_curve.m diff --git a/projects/Lab_analysis/available_output_power_exfo_t100_oband.fig b/projects/Lab_oband_laser_and_amp_analysis/available_output_power_exfo_t100_oband.fig similarity index 100% rename from projects/Lab_analysis/available_output_power_exfo_t100_oband.fig rename to projects/Lab_oband_laser_and_amp_analysis/available_output_power_exfo_t100_oband.fig diff --git a/projects/Lab_analysis/available_output_power_exfo_t100_oband_20_averages.fig b/projects/Lab_oband_laser_and_amp_analysis/available_output_power_exfo_t100_oband_20_averages.fig similarity index 100% rename from projects/Lab_analysis/available_output_power_exfo_t100_oband_20_averages.fig rename to projects/Lab_oband_laser_and_amp_analysis/available_output_power_exfo_t100_oband_20_averages.fig diff --git a/projects/Lab_analysis/data_analysis_and_plot_scripts/lambda_vs_spectrum.m b/projects/Lab_oband_laser_and_amp_analysis/data_analysis_and_plot_scripts/lambda_vs_spectrum.m similarity index 100% rename from projects/Lab_analysis/data_analysis_and_plot_scripts/lambda_vs_spectrum.m rename to projects/Lab_oband_laser_and_amp_analysis/data_analysis_and_plot_scripts/lambda_vs_spectrum.m diff --git a/projects/Lab_analysis/eq_lab.m b/projects/Lab_oband_laser_and_amp_analysis/eq_lab.m similarity index 100% rename from projects/Lab_analysis/eq_lab.m rename to projects/Lab_oband_laser_and_amp_analysis/eq_lab.m diff --git a/projects/Lab_analysis/laser_outputpower_sweep_1.mat b/projects/Lab_oband_laser_and_amp_analysis/laser_outputpower_sweep_1.mat similarity index 100% rename from projects/Lab_analysis/laser_outputpower_sweep_1.mat rename to projects/Lab_oband_laser_and_amp_analysis/laser_outputpower_sweep_1.mat diff --git a/projects/Lab_analysis/laser_outputpower_sweep_2_many_averages.mat b/projects/Lab_oband_laser_and_amp_analysis/laser_outputpower_sweep_2_many_averages.mat similarity index 100% rename from projects/Lab_analysis/laser_outputpower_sweep_2_many_averages.mat rename to projects/Lab_oband_laser_and_amp_analysis/laser_outputpower_sweep_2_many_averages.mat diff --git a/projects/Lab_analysis/pdfa_thorlabs_pin_vs_pout.fig b/projects/Lab_oband_laser_and_amp_analysis/pdfa_thorlabs_pin_vs_pout.fig similarity index 100% rename from projects/Lab_analysis/pdfa_thorlabs_pin_vs_pout.fig rename to projects/Lab_oband_laser_and_amp_analysis/pdfa_thorlabs_pin_vs_pout.fig diff --git a/projects/Lab_analysis/pdfa_thorlabs_pout.fig b/projects/Lab_oband_laser_and_amp_analysis/pdfa_thorlabs_pout.fig similarity index 100% rename from projects/Lab_analysis/pdfa_thorlabs_pout.fig rename to projects/Lab_oband_laser_and_amp_analysis/pdfa_thorlabs_pout.fig diff --git a/projects/Lab_analysis/thorlabs_pdfa_100prozent_sweep.mat b/projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_100prozent_sweep.mat similarity index 100% rename from projects/Lab_analysis/thorlabs_pdfa_100prozent_sweep.mat rename to projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_100prozent_sweep.mat diff --git a/projects/Lab_analysis/thorlabs_pdfa_measurement_lambda_plaser_pump.mat b/projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_measurement_lambda_plaser_pump.mat similarity index 100% rename from projects/Lab_analysis/thorlabs_pdfa_measurement_lambda_plaser_pump.mat rename to projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_measurement_lambda_plaser_pump.mat diff --git a/projects/Lab_analysis/thorlabs_pdfa_measurement_pump_level_sweep.mat b/projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_measurement_pump_level_sweep.mat similarity index 100% rename from projects/Lab_analysis/thorlabs_pdfa_measurement_pump_level_sweep.mat rename to projects/Lab_oband_laser_and_amp_analysis/thorlabs_pdfa_measurement_pump_level_sweep.mat diff --git a/projects/ML_based_MLSE/analyze_filter_length.m b/projects/MLSE_ML_based/analyze_filter_length.m similarity index 100% rename from projects/ML_based_MLSE/analyze_filter_length.m rename to projects/MLSE_ML_based/analyze_filter_length.m diff --git a/projects/ML_based_MLSE/analyze_mu.m b/projects/MLSE_ML_based/analyze_mu.m similarity index 100% rename from projects/ML_based_MLSE/analyze_mu.m rename to projects/MLSE_ML_based/analyze_mu.m diff --git a/projects/ML_based_MLSE/experimental_data.m b/projects/MLSE_ML_based/experimental_data.m similarity index 100% rename from projects/ML_based_MLSE/experimental_data.m rename to projects/MLSE_ML_based/experimental_data.m diff --git a/projects/ML_based_MLSE/interp_fec_cross.m b/projects/MLSE_ML_based/interp_fec_cross.m similarity index 100% rename from projects/ML_based_MLSE/interp_fec_cross.m rename to projects/MLSE_ML_based/interp_fec_cross.m diff --git a/projects/ML_based_MLSE/minimal_example_huawei.zip b/projects/MLSE_ML_based/minimal_example_huawei.zip similarity index 100% rename from projects/ML_based_MLSE/minimal_example_huawei.zip rename to projects/MLSE_ML_based/minimal_example_huawei.zip diff --git a/projects/ML_based_MLSE/minimal_example_huawei/bcjr_pam.m b/projects/MLSE_ML_based/minimal_example_huawei/bcjr_pam.m similarity index 100% rename from projects/ML_based_MLSE/minimal_example_huawei/bcjr_pam.m rename to projects/MLSE_ML_based/minimal_example_huawei/bcjr_pam.m diff --git a/projects/ML_based_MLSE/minimal_example_huawei/minimal_example.m b/projects/MLSE_ML_based/minimal_example_huawei/minimal_example.m similarity index 100% rename from projects/ML_based_MLSE/minimal_example_huawei/minimal_example.m rename to projects/MLSE_ML_based/minimal_example_huawei/minimal_example.m diff --git a/projects/ML_based_MLSE/minimal_example_huawei/ml_mlse_pam.m b/projects/MLSE_ML_based/minimal_example_huawei/ml_mlse_pam.m similarity index 100% rename from projects/ML_based_MLSE/minimal_example_huawei/ml_mlse_pam.m rename to projects/MLSE_ML_based/minimal_example_huawei/ml_mlse_pam.m diff --git a/projects/ML_based_MLSE/model.m b/projects/MLSE_ML_based/model.m similarity index 100% rename from projects/ML_based_MLSE/model.m rename to projects/MLSE_ML_based/model.m diff --git a/projects/ML_based_MLSE/rate_evaluation.m b/projects/MLSE_ML_based/rate_evaluation.m similarity index 100% rename from projects/ML_based_MLSE/rate_evaluation.m rename to projects/MLSE_ML_based/rate_evaluation.m diff --git a/projects/ML_based_MLSE/read_csv.m b/projects/MLSE_ML_based/read_csv.m similarity index 100% rename from projects/ML_based_MLSE/read_csv.m rename to projects/MLSE_ML_based/read_csv.m diff --git a/projects/ML_based_MLSE/rop_evaluation.m b/projects/MLSE_ML_based/rop_evaluation.m similarity index 100% rename from projects/ML_based_MLSE/rop_evaluation.m rename to projects/MLSE_ML_based/rop_evaluation.m diff --git a/projects/ML_based_MLSE/rrop_vs_length_evaluation.m b/projects/MLSE_ML_based/rrop_vs_length_evaluation.m similarity index 100% rename from projects/ML_based_MLSE/rrop_vs_length_evaluation.m rename to projects/MLSE_ML_based/rrop_vs_length_evaluation.m diff --git a/projects/ML_based_MLSE/standard_link_model.m b/projects/MLSE_ML_based/standard_link_model.m similarity index 100% rename from projects/ML_based_MLSE/standard_link_model.m rename to projects/MLSE_ML_based/standard_link_model.m diff --git a/projects/ML_based_MLSE/theoretic_channel_evaluation.m b/projects/MLSE_ML_based/theoretic_channel_evaluation.m similarity index 100% rename from projects/ML_based_MLSE/theoretic_channel_evaluation.m rename to projects/MLSE_ML_based/theoretic_channel_evaluation.m diff --git a/projects/ML_based_MLSE/wpd_datasets.csv b/projects/MLSE_ML_based/wpd_datasets.csv similarity index 100% rename from projects/ML_based_MLSE/wpd_datasets.csv rename to projects/MLSE_ML_based/wpd_datasets.csv diff --git a/projects/Nonlinear_MLSE/simulation_nonlin_dsp.m b/projects/MLSE_nonuniform_states/simulation_nonlin_dsp.m similarity index 100% rename from projects/Nonlinear_MLSE/simulation_nonlin_dsp.m rename to projects/MLSE_nonuniform_states/simulation_nonlin_dsp.m diff --git a/projects/MPI_April/auswertung_1.m b/projects/MPI/MPI_April/auswertung_1.m similarity index 100% rename from projects/MPI_April/auswertung_1.m rename to projects/MPI/MPI_April/auswertung_1.m diff --git a/projects/MPI_April/auswertung_2.m b/projects/MPI/MPI_April/auswertung_2.m similarity index 100% rename from projects/MPI_April/auswertung_2.m rename to projects/MPI/MPI_April/auswertung_2.m diff --git a/projects/MPI_April/auswertung_3.m b/projects/MPI/MPI_April/auswertung_3.m similarity index 100% rename from projects/MPI_April/auswertung_3.m rename to projects/MPI/MPI_April/auswertung_3.m diff --git a/projects/MPI_April/auswertung_4.m b/projects/MPI/MPI_April/auswertung_4.m similarity index 100% rename from projects/MPI_April/auswertung_4.m rename to projects/MPI/MPI_April/auswertung_4.m diff --git a/projects/MPI_April/auswertung_5.m b/projects/MPI/MPI_April/auswertung_5.m similarity index 100% rename from projects/MPI_April/auswertung_5.m rename to projects/MPI/MPI_April/auswertung_5.m diff --git a/projects/MPI_April/mpi_simulation_cspr.m b/projects/MPI/MPI_April/mpi_simulation_cspr.m similarity index 100% rename from projects/MPI_April/mpi_simulation_cspr.m rename to projects/MPI/MPI_April/mpi_simulation_cspr.m diff --git a/projects/MPI_April/mzm_er.m b/projects/MPI/MPI_April/mzm_er.m similarity index 100% rename from projects/MPI_April/mzm_er.m rename to projects/MPI/MPI_April/mzm_er.m diff --git a/projects/MPI_April/plot_analysis_window.m b/projects/MPI/MPI_April/plot_analysis_window.m similarity index 100% rename from projects/MPI_April/plot_analysis_window.m rename to projects/MPI/MPI_April/plot_analysis_window.m diff --git a/projects/MPI_April/results_ber.png b/projects/MPI/MPI_April/results_ber.png similarity index 100% rename from projects/MPI_April/results_ber.png rename to projects/MPI/MPI_April/results_ber.png diff --git a/projects/MPI_April/save_to_warehouse.m b/projects/MPI/MPI_April/save_to_warehouse.m similarity index 100% rename from projects/MPI_April/save_to_warehouse.m rename to projects/MPI/MPI_April/save_to_warehouse.m diff --git a/projects/MPI_April/simulate_tx_sig.m b/projects/MPI/MPI_April/simulate_tx_sig.m similarity index 100% rename from projects/MPI_April/simulate_tx_sig.m rename to projects/MPI/MPI_April/simulate_tx_sig.m diff --git a/projects/MPI_August/EQ_development.m b/projects/MPI/MPI_August/EQ_development.m similarity index 100% rename from projects/MPI_August/EQ_development.m rename to projects/MPI/MPI_August/EQ_development.m diff --git a/projects/MPI_August/EQ_development_ffe_adap_decision.m b/projects/MPI/MPI_August/EQ_development_ffe_adap_decision.m similarity index 100% rename from projects/MPI_August/EQ_development_ffe_adap_decision.m rename to projects/MPI/MPI_August/EQ_development_ffe_adap_decision.m diff --git a/projects/MPI_August/EQ_development_ffe_dc_avg.m b/projects/MPI/MPI_August/EQ_development_ffe_dc_avg.m similarity index 100% rename from projects/MPI_August/EQ_development_ffe_dc_avg.m rename to projects/MPI/MPI_August/EQ_development_ffe_dc_avg.m diff --git a/projects/MPI_August/auswertung/M_4_datarate_224_sir_35_laser_linewidth_1000000_pn_key_1_rop_0.mat b/projects/MPI/MPI_August/auswertung/M_4_datarate_224_sir_35_laser_linewidth_1000000_pn_key_1_rop_0.mat similarity index 100% rename from projects/MPI_August/auswertung/M_4_datarate_224_sir_35_laser_linewidth_1000000_pn_key_1_rop_0.mat rename to projects/MPI/MPI_August/auswertung/M_4_datarate_224_sir_35_laser_linewidth_1000000_pn_key_1_rop_0.mat diff --git a/projects/MPI_August/auswertung/clipfactor_curve.m b/projects/MPI/MPI_August/auswertung/clipfactor_curve.m similarity index 100% rename from projects/MPI_August/auswertung/clipfactor_curve.m rename to projects/MPI/MPI_August/auswertung/clipfactor_curve.m diff --git a/projects/MPI_August/auswertung/dc_removal_sir_curve.m b/projects/MPI/MPI_August/auswertung/dc_removal_sir_curve.m similarity index 100% rename from projects/MPI_August/auswertung/dc_removal_sir_curve.m rename to projects/MPI/MPI_August/auswertung/dc_removal_sir_curve.m diff --git a/projects/MPI_August/auswertung/dc_removal_window_length.m b/projects/MPI/MPI_August/auswertung/dc_removal_window_length.m similarity index 100% rename from projects/MPI_August/auswertung/dc_removal_window_length.m rename to projects/MPI/MPI_August/auswertung/dc_removal_window_length.m diff --git a/projects/MPI_August/auswertung/hpf_curve.m b/projects/MPI/MPI_August/auswertung/hpf_curve.m similarity index 100% rename from projects/MPI_August/auswertung/hpf_curve.m rename to projects/MPI/MPI_August/auswertung/hpf_curve.m diff --git a/projects/MPI_August/auswertung/hpf_curve_different_filter_bw.m b/projects/MPI/MPI_August/auswertung/hpf_curve_different_filter_bw.m similarity index 100% rename from projects/MPI_August/auswertung/hpf_curve_different_filter_bw.m rename to projects/MPI/MPI_August/auswertung/hpf_curve_different_filter_bw.m diff --git a/projects/MPI_August/auswertung/mrds_sir_curve.m b/projects/MPI/MPI_August/auswertung/mrds_sir_curve.m similarity index 100% rename from projects/MPI_August/auswertung/mrds_sir_curve.m rename to projects/MPI/MPI_August/auswertung/mrds_sir_curve.m diff --git a/projects/MPI_August/auswertung/rop_curve.m b/projects/MPI/MPI_August/auswertung/rop_curve.m similarity index 100% rename from projects/MPI_August/auswertung/rop_curve.m rename to projects/MPI/MPI_August/auswertung/rop_curve.m diff --git a/projects/MPI_August/auswertung/sensitivity_curve.m b/projects/MPI/MPI_August/auswertung/sensitivity_curve.m similarity index 100% rename from projects/MPI_August/auswertung/sensitivity_curve.m rename to projects/MPI/MPI_August/auswertung/sensitivity_curve.m diff --git a/projects/MPI_August/auswertung/sir_curve.m b/projects/MPI/MPI_August/auswertung/sir_curve.m similarity index 100% rename from projects/MPI_August/auswertung/sir_curve.m rename to projects/MPI/MPI_August/auswertung/sir_curve.m diff --git a/projects/MPI_August/bits.mat b/projects/MPI/MPI_August/bits.mat similarity index 100% rename from projects/MPI_August/bits.mat rename to projects/MPI/MPI_August/bits.mat diff --git a/projects/MPI_August/channel_model_mpi.m b/projects/MPI/MPI_August/channel_model_mpi.m similarity index 100% rename from projects/MPI_August/channel_model_mpi.m rename to projects/MPI/MPI_August/channel_model_mpi.m diff --git a/projects/MPI_August/mpi_uncorrelated.m b/projects/MPI/MPI_August/mpi_uncorrelated.m similarity index 100% rename from projects/MPI_August/mpi_uncorrelated.m rename to projects/MPI/MPI_August/mpi_uncorrelated.m diff --git a/projects/MPI_August/rx_model.m b/projects/MPI/MPI_August/rx_model.m similarity index 100% rename from projects/MPI_August/rx_model.m rename to projects/MPI/MPI_August/rx_model.m diff --git a/projects/MPI_August/scpe_sig.mat b/projects/MPI/MPI_August/scpe_sig.mat similarity index 100% rename from projects/MPI_August/scpe_sig.mat rename to projects/MPI/MPI_August/scpe_sig.mat diff --git a/projects/MPI_August/simualte_MPI_data.m b/projects/MPI/MPI_August/simualte_MPI_data.m similarity index 100% rename from projects/MPI_August/simualte_MPI_data.m rename to projects/MPI/MPI_August/simualte_MPI_data.m diff --git a/projects/MPI_August/symbols.mat b/projects/MPI/MPI_August/symbols.mat similarity index 100% rename from projects/MPI_August/symbols.mat rename to projects/MPI/MPI_August/symbols.mat diff --git a/projects/MPI_August/tx_model.m b/projects/MPI/MPI_August/tx_model.m similarity index 100% rename from projects/MPI_August/tx_model.m rename to projects/MPI/MPI_August/tx_model.m diff --git a/projects/MPI_Juni/EQ_optimization/eq_optimization.m b/projects/MPI/MPI_Juni/EQ_optimization/eq_optimization.m similarity index 100% rename from projects/MPI_Juni/EQ_optimization/eq_optimization.m rename to projects/MPI/MPI_Juni/EQ_optimization/eq_optimization.m diff --git a/projects/MPI_Juni/EQ_optimization/ref_bits_prms.mat b/projects/MPI/MPI_Juni/EQ_optimization/ref_bits_prms.mat similarity index 100% rename from projects/MPI_Juni/EQ_optimization/ref_bits_prms.mat rename to projects/MPI/MPI_Juni/EQ_optimization/ref_bits_prms.mat diff --git a/projects/MPI_Juni/EQ_optimization/ref_sig_with_mpi.mat b/projects/MPI/MPI_Juni/EQ_optimization/ref_sig_with_mpi.mat similarity index 100% rename from projects/MPI_Juni/EQ_optimization/ref_sig_with_mpi.mat rename to projects/MPI/MPI_Juni/EQ_optimization/ref_sig_with_mpi.mat diff --git a/projects/MPI_Juni/EQ_optimization/rx_sig_with_mpi.mat b/projects/MPI/MPI_Juni/EQ_optimization/rx_sig_with_mpi.mat similarity index 100% rename from projects/MPI_Juni/EQ_optimization/rx_sig_with_mpi.mat rename to projects/MPI/MPI_Juni/EQ_optimization/rx_sig_with_mpi.mat diff --git a/projects/MPI_Juni/ber_curve.m b/projects/MPI/MPI_Juni/ber_curve.m similarity index 100% rename from projects/MPI_Juni/ber_curve.m rename to projects/MPI/MPI_Juni/ber_curve.m diff --git a/projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI.mat b/projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI.mat similarity index 100% rename from projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI.mat rename to projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI.mat diff --git a/projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI_linearEQ.mat b/projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI_linearEQ.mat similarity index 100% rename from projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI_linearEQ.mat rename to projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_with_MPI_linearEQ.mat diff --git a/projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI.mat b/projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI.mat similarity index 100% rename from projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI.mat rename to projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI.mat diff --git a/projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI_linearEQ.mat b/projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI_linearEQ.mat similarity index 100% rename from projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI_linearEQ.mat rename to projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_clipping_bias_wo_MPI_linearEQ.mat diff --git a/projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_withMPI.mat b/projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_withMPI.mat similarity index 100% rename from projects/MPI_Juni/ber_vs_er/ber_vs_er_pam4_withMPI.mat rename to projects/MPI/MPI_Juni/ber_vs_er/ber_vs_er_pam4_withMPI.mat diff --git a/projects/MPI_Juni/ber_vs_er/tx_signal_curve.m b/projects/MPI/MPI_Juni/ber_vs_er/tx_signal_curve.m similarity index 100% rename from projects/MPI_Juni/ber_vs_er/tx_signal_curve.m rename to projects/MPI/MPI_Juni/ber_vs_er/tx_signal_curve.m diff --git a/projects/MPI_Juni/clip_optimization/pam4_clipping.fig b/projects/MPI/MPI_Juni/clip_optimization/pam4_clipping.fig similarity index 100% rename from projects/MPI_Juni/clip_optimization/pam4_clipping.fig rename to projects/MPI/MPI_Juni/clip_optimization/pam4_clipping.fig diff --git a/projects/MPI_Juni/clip_optimization/pam6_clipping.fig b/projects/MPI/MPI_Juni/clip_optimization/pam6_clipping.fig similarity index 100% rename from projects/MPI_Juni/clip_optimization/pam6_clipping.fig rename to projects/MPI/MPI_Juni/clip_optimization/pam6_clipping.fig diff --git a/projects/MPI_Juni/clip_optimization/pam8_clipping.fig b/projects/MPI/MPI_Juni/clip_optimization/pam8_clipping.fig similarity index 100% rename from projects/MPI_Juni/clip_optimization/pam8_clipping.fig rename to projects/MPI/MPI_Juni/clip_optimization/pam8_clipping.fig diff --git a/projects/MPI_Juni/clip_optimization/pam_4_6_8.fig b/projects/MPI/MPI_Juni/clip_optimization/pam_4_6_8.fig similarity index 100% rename from projects/MPI_Juni/clip_optimization/pam_4_6_8.fig rename to projects/MPI/MPI_Juni/clip_optimization/pam_4_6_8.fig diff --git a/projects/MPI_Juni/dataset_2506.mat b/projects/MPI/MPI_Juni/dataset_2506.mat similarity index 100% rename from projects/MPI_Juni/dataset_2506.mat rename to projects/MPI/MPI_Juni/dataset_2506.mat diff --git a/projects/MPI_Juni/extrcurve.m b/projects/MPI/MPI_Juni/extrcurve.m similarity index 100% rename from projects/MPI_Juni/extrcurve.m rename to projects/MPI/MPI_Juni/extrcurve.m diff --git a/projects/MPI_Juni/linewidth_curve.m b/projects/MPI/MPI_Juni/linewidth_curve.m similarity index 100% rename from projects/MPI_Juni/linewidth_curve.m rename to projects/MPI/MPI_Juni/linewidth_curve.m diff --git a/projects/MPI_Juni/main_simulation.m b/projects/MPI/MPI_Juni/main_simulation.m similarity index 100% rename from projects/MPI_Juni/main_simulation.m rename to projects/MPI/MPI_Juni/main_simulation.m diff --git a/projects/MPI_Juni/mpilength_curve.m b/projects/MPI/MPI_Juni/mpilength_curve.m similarity index 100% rename from projects/MPI_Juni/mpilength_curve.m rename to projects/MPI/MPI_Juni/mpilength_curve.m diff --git a/projects/MPI_Juni/sir_curve.m b/projects/MPI/MPI_Juni/sir_curve.m similarity index 100% rename from projects/MPI_Juni/sir_curve.m rename to projects/MPI/MPI_Juni/sir_curve.m diff --git a/projects/MPI_Juni/tx_signal_curve.m b/projects/MPI/MPI_Juni/tx_signal_curve.m similarity index 100% rename from projects/MPI_Juni/tx_signal_curve.m rename to projects/MPI/MPI_Juni/tx_signal_curve.m diff --git a/projects/MPI_Juni/wh_first_run.mat b/projects/MPI/MPI_Juni/wh_first_run.mat similarity index 100% rename from projects/MPI_Juni/wh_first_run.mat rename to projects/MPI/MPI_Juni/wh_first_run.mat diff --git a/projects/MPI_analysis_Mai24/base_simulation.m b/projects/MPI/MPI_analysis_Mai24/base_simulation.m similarity index 100% rename from projects/MPI_analysis_Mai24/base_simulation.m rename to projects/MPI/MPI_analysis_Mai24/base_simulation.m diff --git a/projects/MPI_analysis_Mai24/eq_compare.m b/projects/MPI/MPI_analysis_Mai24/eq_compare.m similarity index 100% rename from projects/MPI_analysis_Mai24/eq_compare.m rename to projects/MPI/MPI_analysis_Mai24/eq_compare.m diff --git a/projects/MPI_analysis_Mai24/ofc_sim.m b/projects/MPI/MPI_analysis_Mai24/ofc_sim.m similarity index 100% rename from projects/MPI_analysis_Mai24/ofc_sim.m rename to projects/MPI/MPI_analysis_Mai24/ofc_sim.m diff --git a/projects/MPI_analysis_Mai24/simulation_entry.m b/projects/MPI/MPI_analysis_Mai24/simulation_entry.m similarity index 100% rename from projects/MPI_analysis_Mai24/simulation_entry.m rename to projects/MPI/MPI_analysis_Mai24/simulation_entry.m