simualtion pam 6
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user