stuff from star
This commit is contained in:
@@ -4,9 +4,9 @@ params = struct;
|
||||
|
||||
params.M = [4];
|
||||
params.datarate = [184];
|
||||
params.rop = [-12:-5];
|
||||
params.rop = [-5];
|
||||
|
||||
precomp_mode = 0; %0=do nothing ; 1= measure; 2=precomp active
|
||||
precomp_mode = 1; %0=do nothing ; 1= measure; 2=precomp active
|
||||
postfilter = 0; % noise whiten. approach -> Postfilter + MLSE
|
||||
|
||||
db_precode = 0;
|
||||
@@ -124,7 +124,7 @@ for M = wh.parameter.M.values
|
||||
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_
|
||||
for i = 1:i_
|
||||
|
||||
rop=wh.parameter.rop.values(i);
|
||||
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
% db = DBHandler("pathToDB",[basePath,'silas_labor.db']);
|
||||
if 1
|
||||
uloops = struct;
|
||||
uloops.precomp = [0,1];
|
||||
uloops.db_precode = [0,1];
|
||||
uloops.precomp = [1];
|
||||
uloops.db_precode = [0];
|
||||
uloops.bitrate = [300,330,360,390,420,450,480].*1e9; %[300,330,360,390,420,450,480]
|
||||
% uloops.bitrate = 390e9;
|
||||
% uloops.laser_wavelength = [1293,1297.5,1302,1306.5,1310,1313.4,1318,1322.7,1327.4];
|
||||
uloops.laser_wavelength = [1293];
|
||||
uloops.M = [4,6,8];
|
||||
uloops.laser_wavelength = [1310];
|
||||
uloops.M = [6];
|
||||
uloops.link_length = [2]; % 1,2,3,5,6,8,10
|
||||
wh = DataStorage(uloops);
|
||||
wh.addStorage("ber");
|
||||
|
||||
wh = submit_simulations(wh,"parallel",0,"simulation_mode",1);
|
||||
wh = submit_simulations(wh,"parallel",0,"simulation_mode",0);
|
||||
end
|
||||
|
||||
wh_ana = wh;
|
||||
@@ -30,7 +30,7 @@ alpha = {};
|
||||
ber_dfe = {};
|
||||
ngmi = [];
|
||||
|
||||
wavelength=1293;
|
||||
wavelength=uloops.laser_wavelength;
|
||||
for m = [4,6,8]
|
||||
%1302
|
||||
%VNLE
|
||||
@@ -40,14 +40,14 @@ for m = [4,6,8]
|
||||
ber_vnle = cellfun(@(x) x.vnle_pf_package{1,1}.ber_vnle, a);
|
||||
|
||||
%MLSE
|
||||
precomp = 0;
|
||||
precode = 1;
|
||||
% precomp = 0;
|
||||
% precode = 1;
|
||||
a = wh_ana.getStoValue('ber',precomp, precode, uloops.bitrate , wavelength, m, uloops.link_length);
|
||||
ber_mlse = cellfun(@(x) x.vnle_pf_package{1,1}.ber_mlse, a);
|
||||
|
||||
%DB
|
||||
precomp = 0;
|
||||
precode = 1;
|
||||
% precomp = 0;
|
||||
% precode = 1;
|
||||
a = wh_ana.getStoValue('ber',precomp, precode, uloops.bitrate , wavelength, m, uloops.link_length);
|
||||
ber_dbtgt = cellfun(@(x) x.dbtgt_package{1,1}.ber, a);
|
||||
|
||||
|
||||
@@ -240,10 +240,11 @@ else
|
||||
%
|
||||
% Raw_signal = Filter('filtdegree',4,"f_cutoff",Symbols.fs.*0.55,"fs",Raw_signal.fs,"filterType",filtertypes.gaussian,"active",true).process(Raw_signal);
|
||||
%
|
||||
% Scpe_cell{1}.eye(fsym,M,"displayname",'eye','fignum',227);
|
||||
Scpe_cell{1}.eye(fsym,M,"displayname",'eye','fignum',227);
|
||||
%
|
||||
% Raw_signal.spectrum("normalizeTo0dB",0,"fignum",336,"fft_length",2^12);
|
||||
% Raw_signal.move_it_spectrum("fignum",334);
|
||||
% Raw_signal.move_it_spectrum("fignum",334);
|
||||
|
||||
fsym = Symbols.fs;
|
||||
|
||||
@@ -259,7 +260,7 @@ vnle_dfe_package = {};
|
||||
dbtgt_package = {};
|
||||
|
||||
|
||||
proc_occ = min(8,length(Scpe_cell));
|
||||
proc_occ = min(1,length(Scpe_cell));
|
||||
for occ = 1:proc_occ
|
||||
|
||||
Scpe_sig = Scpe_cell{occ};
|
||||
@@ -284,12 +285,12 @@ for occ = 1:proc_occ
|
||||
mu_ffe = [mu_ffe1 mu_ffe2 mu_ffe3];
|
||||
|
||||
% %%%%% VNLE + DFE %%%%
|
||||
if 0
|
||||
if 1
|
||||
eq_vnle_dfe = EQ("Ne",vnle_order,"Nb",[0,0,0],"training_length",len_tr,"training_loops",5,"dd_loops",5,"K",2,"DCmu",mu_dc,"DDmu",[mu_ffe mu_dfe],"DFEmu",0.005,"FFEmu",0,"plotfinal",1,"ideal_dfe",0);
|
||||
|
||||
[result] = vnle(eq_vnle_dfe,M,Scpe_sig,Symbols,Tx_bits,"precode_mode",doub_mode,"showAnalysis",0);
|
||||
[result] = vnle(eq_vnle_dfe,M,Scpe_sig,Symbols,Tx_bits,"precode_mode",doub_mode,"showAnalysis",1);
|
||||
vnle_dfe_package{occ} = result;
|
||||
|
||||
|
||||
|
||||
end
|
||||
%%%%% VNLE + PF + MLSE %%%%
|
||||
|
||||
Reference in New Issue
Block a user