new chirped modulator with alpha setting

dp_sync is softened
This commit is contained in:
silas (home)
2026-01-05 14:54:05 +01:00
parent 2354d7ac44
commit 0186eccced
9 changed files with 719 additions and 392 deletions

View File

@@ -67,8 +67,8 @@ fname = sprintf('WDM_%s_%s_%s_%dkm_%dch_%dghz_%s.mat', char(t), host, jobid, opt
s.num_realiz = options.num_realiz;
s.wavelengthplan = calcWavelengthPlan(options.num_channels, options.channel_spacing, 1310);
link_length = options.fiber_length_km;
s.pmd = 0.1;
s.gamma = 0.0023;
s.pmd = 0;%0.1;
s.gamma = 0;%0.0023;
s.M = 4;
fsym = 112e9;
@@ -108,7 +108,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 = 20e12; % some THz left and right
margin = 2e12; % some THz left and right
f_span = (max(f_plan)+margin)-(min(f_plan)-margin);
f_nyq = f_span/2;
@@ -124,13 +124,13 @@ signal_cell = {};
Symbols = {};
Tx_bits = {};
s.rop = -12:0.75:-0.75;
s.rop = -12;%:0.75:-0;
%% ---------- Intermediate evaluation points (distance dimension) ----------
% Evaluate BER at these intermediate distances (km), plus always include the final link_length if > 0.
segment_length = 1; % km (must match fiber loop below)
eval_dist_km = [2 10];
eval_dist_km = [10];
eval_dist_km = eval_dist_km(eval_dist_km <= link_length);
% Always include final distance (if > 0) and avoid duplicates
@@ -209,7 +209,7 @@ for realiz = 1:s.num_realiz
% E/O Conversion
Eml_out = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",El_sig.fs, ...
"lambda",s.wavelengthplan(l),"bias",vbias,"u_pi",u_pi, ...
"linewidth",laser_linewidth,"randomkey",s.random_key+l+realiz).process(El_sig);
"linewidth",laser_linewidth,"randomkey",s.random_key+l+realiz,"alpha",0.8).process(El_sig);
signal_cell{l} = Polarization_Controller("mode","rot_power","desired_power",pol_rot(l)).process(Eml_out);
end