55 lines
1.2 KiB
Matlab
55 lines
1.2 KiB
Matlab
|
|
% 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
|
|
|
|
|
|
|
|
|