diff --git a/projects/MPI_April/mpi_simulation_cspr.m b/projects/MPI_April/mpi_simulation_cspr.m index c93efad..e83439f 100644 --- a/projects/MPI_April/mpi_simulation_cspr.m +++ b/projects/MPI_April/mpi_simulation_cspr.m @@ -4,7 +4,7 @@ clear filename = '112G_2'; load_sequence = 0; -M = 8; +M = 6; datarate = 448e9; kover = 4; @@ -19,8 +19,8 @@ phd_bw = lowpass_cutoff; scp_bw = lowpass_cutoff; LP_awg = Filter('filtdegree',4,"f_cutoff",90e9,"fs",fdac*kover,"filterType",filtertypes.butterworth); -LP_laser = Filter('filtdegree',2,"f_cutoff",100e9,"fs",fdac*kover,"filterType",filtertypes.gaussian); -LP_opt = Filter('filtdegree',4,"f_cutoff",fsym/log2(M).*1.5,"fs",fdac*kover,"filterType",filtertypes.gaussian); +LP_modulator= Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.butterworth); +LP_opt = Filter('filtdegree',3,"f_cutoff",fsym/log2(M).*1.5,"fs",fdac*kover,"filterType",filtertypes.gaussian); LP_phd = Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.butterworth); LP_scpe = Filter('filtdegree',4,"f_cutoff",110e9,"fs",fadc,"filterType",filtertypes.butterworth); @@ -57,10 +57,17 @@ X = Pulseformer("fsym",fsym,"fdac",fdac,"pulse","rrc","pulselength",16,"rrcalpha X = AWG("fdac",fdac,"dac_min",-1,"dac_max",1,"H_lpf",LP_awg,"kover",kover,"bit_resolution",5,"lpf_active",1).process(X); % 6) Lowpass behavior before laser -X = LP_laser.process(X); +X = LP_modulator.process(X); % 7) Normalize signal X = X.normalize("mode","oneone"); +% linearGain = 1; +% limit = 1; +% SaturatingAmplifier = serdes.SaturatingAmplifier('Mode',1,... +% 'Limit',limit,'LinearGain',linearGain); +% X.signal = SaturatingAmplifier(X.signal); +% X.signal = min(max(X.signal,-0.8),0.8); +% X = X.normalize("mode","oneone"); sir = [20:2:36]; %decibel = attenuation of interference path laser_linewidth = [1e5 1e6 10e6]; @@ -68,8 +75,8 @@ sir = [20:2:36]; %decibel = attenuation of interference path vp = [0.25,0.5,0.75,1]; vb = [1:0.1:1.8]; - rop = [-5:0]; -% sir = 25; + rop = -5:0; +% sir = 35; % laser_linewidth = 1e6; % pn_key = 9; % vp = 0.5; @@ -81,18 +88,16 @@ for s = 1:length(sir) for l = 1:length(laser_linewidth) for pnk = 1:length(pn_key) for n = 1:length(vp) - for m = 1:length(vb) + parfor m = 1:length(vb) - cnt = cnt+1; + % cnt = cnt+1; % 1) Laser; Modulation -> OPTICAL DOMAIN u_pi = 2; vbias = -vb(m); extmodlaser = EML("mode",eml_mode.im_cosinus,"power",3,"fsimu",X.fs,"lambda",1290,"bias",vbias,"u_pi",u_pi,"linewidth",laser_linewidth(l),"randomkey",pn_key(pnk)); E = X.*vp(n); - - % E.signal = min(max(E.signal,-0.2),0.2); - + [Opt,extmodlaser] = extmodlaser.process(E); % figure(m) @@ -199,7 +204,7 @@ for s = 1:length(sir) end end end - save('pam_level_comp'); + save('pam6_level_comp'); disp('saved_run2'); end end