simualtion pam 6
This commit is contained in:
@@ -4,7 +4,7 @@ clear
|
|||||||
filename = '112G_2';
|
filename = '112G_2';
|
||||||
load_sequence = 0;
|
load_sequence = 0;
|
||||||
|
|
||||||
M = 8;
|
M = 6;
|
||||||
datarate = 448e9;
|
datarate = 448e9;
|
||||||
|
|
||||||
kover = 4;
|
kover = 4;
|
||||||
@@ -19,8 +19,8 @@ phd_bw = lowpass_cutoff;
|
|||||||
scp_bw = lowpass_cutoff;
|
scp_bw = lowpass_cutoff;
|
||||||
|
|
||||||
LP_awg = Filter('filtdegree',4,"f_cutoff",90e9,"fs",fdac*kover,"filterType",filtertypes.butterworth);
|
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_modulator= Filter('filtdegree',2,"f_cutoff",70e9,"fs",fdac*kover,"filterType",filtertypes.butterworth);
|
||||||
LP_opt = Filter('filtdegree',4,"f_cutoff",fsym/log2(M).*1.5,"fs",fdac*kover,"filterType",filtertypes.gaussian);
|
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_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);
|
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);
|
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
|
% 6) Lowpass behavior before laser
|
||||||
X = LP_laser.process(X);
|
X = LP_modulator.process(X);
|
||||||
|
|
||||||
% 7) Normalize signal
|
% 7) Normalize signal
|
||||||
X = X.normalize("mode","oneone");
|
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
|
sir = [20:2:36]; %decibel = attenuation of interference path
|
||||||
laser_linewidth = [1e5 1e6 10e6];
|
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];
|
vp = [0.25,0.5,0.75,1];
|
||||||
vb = [1:0.1:1.8];
|
vb = [1:0.1:1.8];
|
||||||
|
|
||||||
rop = [-5:0];
|
rop = -5:0;
|
||||||
% sir = 25;
|
% sir = 35;
|
||||||
% laser_linewidth = 1e6;
|
% laser_linewidth = 1e6;
|
||||||
% pn_key = 9;
|
% pn_key = 9;
|
||||||
% vp = 0.5;
|
% vp = 0.5;
|
||||||
@@ -81,9 +88,9 @@ for s = 1:length(sir)
|
|||||||
for l = 1:length(laser_linewidth)
|
for l = 1:length(laser_linewidth)
|
||||||
for pnk = 1:length(pn_key)
|
for pnk = 1:length(pn_key)
|
||||||
for n = 1:length(vp)
|
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
|
% 1) Laser; Modulation -> OPTICAL DOMAIN
|
||||||
u_pi = 2;
|
u_pi = 2;
|
||||||
@@ -91,8 +98,6 @@ for s = 1:length(sir)
|
|||||||
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));
|
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 = X.*vp(n);
|
||||||
|
|
||||||
% E.signal = min(max(E.signal,-0.2),0.2);
|
|
||||||
|
|
||||||
[Opt,extmodlaser] = extmodlaser.process(E);
|
[Opt,extmodlaser] = extmodlaser.process(E);
|
||||||
|
|
||||||
% figure(m)
|
% figure(m)
|
||||||
@@ -199,7 +204,7 @@ for s = 1:length(sir)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
save('pam_level_comp');
|
save('pam6_level_comp');
|
||||||
disp('saved_run2');
|
disp('saved_run2');
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user