Minor changes from lab pc
This commit is contained in:
@@ -220,10 +220,10 @@ classdef AwgKeysight
|
||||
v = visadev('TCPIP0::zizou.tf.uni-kiel.de::hislip0::INSTR');
|
||||
case awg_model.M8199B
|
||||
v = visadev('TCPIP0::localhost::hislip0::INSTR');
|
||||
case awg_model.M8199A
|
||||
v = visadev('TCPIP0::Zizou::hislip2::INSTR');
|
||||
case awg_model.M8199A_ILV
|
||||
v = visadev('TCPIP0::Zizou::hislip0::INSTR');
|
||||
case awg_model.M8199A_ILV
|
||||
v = visadev('TCPIP0::Zizou::hislip0::INSTR');
|
||||
v = visadev('TCPIP0::Zizou::hislip2::INSTR');
|
||||
end
|
||||
|
||||
debug = 0;
|
||||
@@ -327,13 +327,13 @@ classdef AwgKeysight
|
||||
|
||||
elseif obj.model == awg_model.M8199B || obj.model == awg_model.M8199A || obj.model == awg_model.M8199A_ILV
|
||||
|
||||
% SET Ref clock out (which is conn. to scope) to 10 MHz
|
||||
obj.writeNcheck(v, ':OUTPut:FREQuency ''M1.RefClkOut'',10000000');
|
||||
% SET Ref clock out (which is conn. to scope) to 100 MHz
|
||||
obj.writeNcheck(v, ':OUTPut:FREQuency ''M1.RefClkOut'',100000000');
|
||||
|
||||
% :OUTP:GLOB 'M1.System', OFF
|
||||
obj.writeNcheck(v, ':OUTP:GLOB ''M1.System'', ON');
|
||||
obj.writeNcheck(v, ':OUTP:GLOB ''M2.System'', ON');
|
||||
%obj.writeNcheck(v,':INIT:IMMediate ''M2''');
|
||||
obj.writeNcheck(v,':INIT:IMMediate ''M2''');
|
||||
end
|
||||
|
||||
% operation ceomplete (opc)
|
||||
|
||||
@@ -276,7 +276,7 @@ classdef OptAtten < handle
|
||||
cnt = cnt+1;
|
||||
end
|
||||
|
||||
fprintf("\n SET: CH1 %.2f dB | CH2: %.2f dB | CH3: %.2f dB | CH4: %.2f dB\n",obj.value_state(1), obj.value_state(2), obj.value_state(3), obj.value_state(4));
|
||||
fprintf("\n Pset: CH1 %.2f dB | CH2: %.2f dB | CH3: %.2f dB | CH4: %.2f dB\n",obj.value_state(1), obj.value_state(2), obj.value_state(3), obj.value_state(4));
|
||||
fprintf(" ATT: CH1 %.2f dB | CH2: %.2f dB | CH3: %.2f dB | CH4: %.2f dB\n",obj.atten_state(1), obj.atten_state(2), obj.atten_state(3), obj.atten_state(4));
|
||||
fprintf(" POW: CH1 %.2f dBm | CH2: %.2f dBm | CH3: %.2f dBm | CH4: %.2f dBm \n \n",obj.power_state(1), obj.power_state(2), obj.power_state(3), obj.power_state(4));
|
||||
|
||||
|
||||
54
Functions/Lab_helper/measureMZMtransferfunction.m
Normal file
54
Functions/Lab_helper/measureMZMtransferfunction.m
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
% Measure Bias Curve of Modulator
|
||||
% 1) Loop over bias volate
|
||||
% 2) measure voltgae, current and input laser power and output laser power
|
||||
|
||||
|
||||
v_bias_range = [0:0.25:8];
|
||||
v_bias_meas = NaN(size(v_range));
|
||||
i_bias_meas = NaN(size(v_range));
|
||||
p_out_meas = NaN(size(v_range));
|
||||
|
||||
%% DC Source
|
||||
dcs = DC_supply("active",[1,0],"voltage",[0, 6]);
|
||||
|
||||
|
||||
%% Optical Attenuator
|
||||
voa = OptAtten("active",[0,0,2,0],"value",[0,0,0,0],"wavelength",[1550,1550,1550,1550]);
|
||||
voa.set('value',[0,0,2,0]);
|
||||
voa.readvals();
|
||||
|
||||
for i = 1:numel(v_bias_range)
|
||||
|
||||
dcs.set('voltage',[v_bias_range(i),6]);
|
||||
% pause(1);
|
||||
|
||||
[p1,p2,p_out_meas(i),p4]= voa.readPower;
|
||||
[v_meas,i_meas] = dcs.readVals;
|
||||
v_bias_meas(i)=v_meas(1);
|
||||
i_bias_meas(i)= i_meas(1);
|
||||
|
||||
figure(1)
|
||||
clf
|
||||
subplot(2,1,1)
|
||||
hold on
|
||||
plot(v_bias_meas,p_out_meas,'DisplayName','MZM TF in dB');
|
||||
xlabel('V_{bias} in V');
|
||||
ylabel('P_{out} in dBm');
|
||||
grid on
|
||||
xlim([min(v_bias_range), max(v_bias_range)])
|
||||
|
||||
|
||||
subplot(2,1,2)
|
||||
hold on
|
||||
plot(v_bias_meas,db2pow(p_out_meas),'DisplayName','MZM TF in mW');
|
||||
xlabel('V_{bias} in V');
|
||||
ylabel('P_{out} in mW');
|
||||
grid on
|
||||
xlim([min(v_bias_range), max(v_bias_range)])
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
0
projects/ECOC_2025/b2b_measurement.m
Normal file
0
projects/ECOC_2025/b2b_measurement.m
Normal file
@@ -1,44 +1,45 @@
|
||||
|
||||
%% DC Source
|
||||
desired_voltage = 2.1;
|
||||
desired_voltage = 2.8;
|
||||
dcs = DC_supply("active",[1,0],"voltage",[desired_voltage, 0]);
|
||||
dcs.set("voltage",[desired_voltage, 0]);
|
||||
[v,i]=dcs.readVals();
|
||||
|
||||
%% Laser
|
||||
desired_wavelength = 1310;
|
||||
laser = Exfo_laser("mainframe_channel",1,"safety_mode",0,"connection_id",'10','lab_interface','gpib');
|
||||
laser.setWavelength(1311);
|
||||
laser.setPower(0);
|
||||
laser.setWavelength(desired_wavelength);
|
||||
laser.setPower(10);
|
||||
laser.enableLaser();
|
||||
|
||||
%% Optical Attenuator
|
||||
voa = OptAtten("active",[2,0,0,0],"value",[-5,0,0,0],"wavelength",[1310,1310,1310,1310]);
|
||||
voa.set('value',[-5,0,0,0]);
|
||||
voa.readvals();
|
||||
voa = OptAtten("active",[0,0,2,0],"value",[0,0,-5,0],"wavelength",[desired_wavelength,desired_wavelength,desired_wavelength,desired_wavelength]);
|
||||
voa.set('value',[0,0,3,0]);
|
||||
|
||||
%% Construct AWG and Scope Modules %%%%%%
|
||||
fdac = 256e9;
|
||||
fadc = 160e9;
|
||||
Scp = ScopeKeysight("model","DSAZ634A",'autoscale',1,"fadc","GSa_160","channel",[0,0,1,0],"recordLen",4000000,"removeDC",1,"extRef",0);
|
||||
Awg = AwgKeysight("model","M8199A_ILV","fdac",fdac,"scaletodac",[1,1],"skews",[0,0],"voltages",[0,0.1]);
|
||||
A2S = Awg2Scope(Awg,Scp,[0,3,0,0],"waitUntilClick",0); %
|
||||
Scp = ScopeKeysight("model","DSAZ634A",'autoscale',1,"fadc","GSa_160","channel",[0,0,1,0],"recordLen",4000000,"removeDC",1,"extRef",1);
|
||||
Awg = AwgKeysight("model","M8199A_ILV","fdac",fdac,"scaletodac",[1,1],"skews",[0,0],"voltages",[0,0.8]);
|
||||
A2S = Awg2Scope(Awg,Scp,[0,0,3,0],"waitUntilClick",0); %
|
||||
|
||||
%%%%% Symbol Generation %%%%%%
|
||||
fsym = 56e9;
|
||||
M = 4;
|
||||
rcalpha = 0.05;
|
||||
rcalpha = 0.2;
|
||||
Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rcalpha);
|
||||
|
||||
Pamsource = PAMsource(...
|
||||
"fsym",fsym,"M",M,"order",17,"useprbs",0,...
|
||||
"fsym",fsym,"M",M,"order",17,"useprbs",1,...
|
||||
"fs_out",fdac,...
|
||||
"applyclipping",0,"clipfactor",1.5,...
|
||||
"applypulseform",0,"pulseformer",Pform,...
|
||||
"applyclipping",0,"clipfactor",4,...
|
||||
"applypulseform",1,"pulseformer",Pform,...
|
||||
"randkey",1,...
|
||||
"db_precode",0,"db_encode",0,...
|
||||
"mrds_code",0,"mrds_blocklength",512);
|
||||
|
||||
tx_signal = Pamsource.process();
|
||||
tx_signal.spectrum("displayname",'Tx Spectrum','fignum',10,'normalizeTo0dB',0);
|
||||
|
||||
A2S.process("signal2",tx_signal);
|
||||
|
||||
[S1,S2,S3,S4] = A2S.process("signal2",tx_signal);
|
||||
S3.spectrum("displayname",'Rx Spectrum','fignum',10,'normalizeTo0dB',0);
|
||||
|
||||
Reference in New Issue
Block a user