diff --git a/Classes/00_signals/Signal.m b/Classes/00_signals/Signal.m index a21e71c..b8113c8 100644 --- a/Classes/00_signals/Signal.m +++ b/Classes/00_signals/Signal.m @@ -143,7 +143,7 @@ classdef Signal arguments obj options.fignum = randi(1000) - options.displayname = []; + options.displayname = ''; options.timeframe = 0; options.clear = 0; options.color = []; diff --git a/projects/WDM/WDM_auswertung.m b/projects/WDM/WDM_auswertung.m index d13c97f..508291d 100644 --- a/projects/WDM/WDM_auswertung.m +++ b/projects/WDM/WDM_auswertung.m @@ -54,9 +54,9 @@ for l = 1:N % plotBandMeanBL(rop, ffe_mat, cols(l,:), sprintf('FFE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '--s', showLegend); % scatter(Sffe,fec.*ones(size(Sffe)),20,'v','MarkerFaceColor','black'); - plotBandMeanBL(rop, vnle_mat, cols(l,:), sprintf('VNLE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '--x', showLegend); + % plotBandMeanBL(rop, vnle_mat, cols(l,:), sprintf('VNLE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '--x', showLegend); - % plotBandMeanBL(rop, mlse_mat, cols(l,:), sprintf('VNLE+PF+MLSE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '-o', showLegend); + plotBandMeanBL(rop, mlse_mat, cols(l,:), sprintf('VNLE+PF+MLSE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '-o', showLegend); % plotBandMeanBL(rop, dbt_mat, cols(l,:), sprintf('DBt.+MLSE @ %.1d nm',round(wavelengthplan(l))), qLow, qHigh, '--v', showLegend); @@ -73,6 +73,7 @@ ylim([1e-5 0.3]); grid on; legend show; +%% VIOLIN S_cell = Sdbt; S_cell =Smlse; @@ -106,7 +107,7 @@ for i = 1:length(S_cell) 'Bandwidth', 0.05); ylim([floor(min(S_mat,[],'all')), ceil(max(S_mat,[],'all'))]) - ylim([-8 0]); + % ylim([-8 0]); ylabel('ROP at FEC crossing'); title(sprintf('RROP to cross BER %.2e', fec)); grid on; box on; diff --git a/projects/WDM/WDM_model.m b/projects/WDM/WDM_model.m index 37c0990..75daba0 100644 --- a/projects/WDM/WDM_model.m +++ b/projects/WDM/WDM_model.m @@ -120,7 +120,7 @@ Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rc","pulselength",1 N = numel(s.wavelengthplan); f_plan = physconst('lightspeed')./(s.wavelengthplan.*1e-9); -margin = 25e12; % some THz left and right +margin = 5e12; % some THz left and right f_span = (max(f_plan)+margin)-(min(f_plan)-margin); f_nyq = f_span/2; kover = 4; @@ -142,6 +142,7 @@ output_vnle = cell(length(s.wavelengthplan),length(s.rop),s.num_realiz); output_mlse = cell(length(s.wavelengthplan),length(s.rop),s.num_realiz); output_dbt = cell(length(s.wavelengthplan),length(s.rop),s.num_realiz); +s.p_launch = 3; s.p = options.fwm_mitigation_technique; switch s.p case "co" @@ -180,7 +181,9 @@ for realiz = 1:s.num_realiz %%%%% Electrical Driver Amplifier %%%%%% El_sig = El_sig.normalize("mode","oneone"); - El_sig = El_sig .* u_pi .* 0.5; + scaling = 0.6*(u_pi/2-abs(vbias-u_pi/2)); % scale to 60% of available modulator curve + El_sig = El_sig .* scaling; + % El_sig = El_sig.setPower(1,"dBm"); % figure;histogram(El_sig.signal); @@ -193,7 +196,8 @@ for realiz = 1:s.num_realiz Opt_sig_wdm = Optical_Multiplex("fs_in",fdac*kover,"fs_out",upsample_pow*fdac*kover,... "lambda_center",1310,"random_key",0,"filtype",1,"B",120e9).process(signal_cell); - Opt_sig_wdm = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",3+10*log10(N)).process(Opt_sig_wdm); + + Opt_sig_wdm = Amplifier("amp_mode","ideal_no_noise","gain_mode","output_power","amplification_db",s.p_launch+10*log10(N)).process(Opt_sig_wdm); % Opt_sig_wdm.spectrum("fignum",101,"displayname",'bla','normalizeTo0dB',0,'lambda0_nm',1310,'useWavelengthAxis',0);