CLEANUP - changes to folder structure

This commit is contained in:
Silas Oettinghaus
2026-03-25 10:57:48 +01:00
parent 0c5ad28f0a
commit 0ae846d3c3
351 changed files with 405 additions and 1294 deletions

View File

@@ -0,0 +1,15 @@
if 0
AWG = AwgKeysight("model","M8196A","fdac",92e9,"scaletodac",[1,1,1,1],"skews",[0,0,0,0],"voltages",[0,0,0,0.6]);
tx_sig = Electricalsignal(clip_out,"fs",92e9);
tic
AWG.upload("signal4",clip_out);
toc
end
SCP = ScopeKeysight("model","DSAZ634A",'autoscale',1,"fadc",'GSa_160',"channel",[1],"recordLen",2000000);
signals = SCP.read();

Binary file not shown.

View File

@@ -0,0 +1,15 @@
%% Laser
start_wavelength = 1310;
laser = Exfo_laser("mainframe_channel",1,"safety_mode",0,"connection_id",'10','lab_interface','gpib');
laser.getLaserInfo();
laser.setWavelength(start_wavelength)
laser.setPower(0);
laser.enableLaser();
% for l = 1550:1560
% laser.setWavelength(l);
% end
laser.disableLaser();

View File

@@ -0,0 +1,74 @@
clear all
visastring = "GPIB0::22::INSTR";
v_pwrmtr = visadev(visastring);
writeline(v_pwrmtr, "*IDN?");
answ = readline(v_pwrmtr);
disp(['Yay! We can talk to Instrument: ',char(answ)]);
% laser = Exfo_laser("mainframe_channel",3,"safety_mode",0,"connection_id",'15','lab_interface','gpib');
% laser.getLaserInfo();
L = OptLaserN7714A("GPIB0::20::INSTR");
% visastring = 'GPIB0::10::INSTR';
% v_lsr = visadev(visastring);
% writeline(v_lsr, "*IDN?");
% answ = readline(v_lsr);
% disp(['Yay! We can talk to Instrument: ',char(answ)]);
steps = 100;
wavelength_sweep = linspace(1554,1556,steps);
start_wavelength = wavelength_sweep(1);
% laser.setWavelength(start_wavelength);
L.setWavelength(start_wavelength,0);
% laser.setPower(0);
% laser.enableLaser();
L.setPower(0, true,0);
pwr_save = NaN(size(wavelength_sweep));
for l = 1:numel(wavelength_sweep)
% 1)
% laser.setWavelength(wavelength_sweep(l));
L.setWavelength(wavelength_sweep(l),0);
%writeline(v_lsr, ['L=' num2str(wavelength_sweep(l))]);
% 2) Set Wavelength of Power Meter
t = string(['SENS2:POW:WAVE ',num2str(wavelength_sweep(l)),'NM']);
writeline(v_pwrmtr, t);
% writeline(v, "SENS:POW:WAVE?");
% wavel = readline(v);
% 3) Read Power of
writeline(v_pwrmtr, "READ2:POW?");
pwr = readline(v_pwrmtr);
pwr_save(l) = str2num(pwr);
figure(2025);clf
plot(wavelength_sweep,pwr_save,'Marker','*');
xlabel('Wavelength [nm]');
ylabel('Insertion Loss [dB]');
ylim([min(pwr_save)-1, min(pwr_save)+1]);
xlim([wavelength_sweep(1) wavelength_sweep(end)])
grid minor
end
% laser.disableLaser();
L.setPower(0, false,0);
L.delete();
%writeline(v_lsr, 'DISABLE');
path= "Z:\2025\NFT WDM DFG Olaf\lambda_vs_power";
dt = datetime('now','Format','yyyyMMdd_HHmmss');
filename = fullfile(path, "loop_5_7_"+num2str(wavelength_sweep(1)) +"nm_to_"+ num2str(wavelength_sweep(end))+ "nm_" + string(dt) + ".mat");
save(filename, "pwr_save","wavelength_sweep");
disp("Saved to: " + filename);

View File

@@ -0,0 +1,61 @@
clear all
%%%%%%%%%%%%%%%%%%%%%
start_wavelength = 1554.2; %nm
stop_wavelength = 1555.7; %nm
steps = 100;
power = 0; %dBm
name = "south_board_total_loss_ports_21_20";
%%%%%%%%%%%%%%%%%%%%%
wavelength_sweep = linspace(start_wavelength,stop_wavelength,steps);
wavelength_1 = wavelength_sweep(1);
visastring = "GPIB0::22::INSTR";
v_pwrmtr = visadev(visastring);
%writeline(v_pwrmtr, "*IDN?");
%answ = readline(v_pwrmtr);
%disp(['Yay! We can talk to Instrument: ',char(answ)]);
L = OptLaserN7714A("GPIB0::20::INSTR");
L.setWavelength(wavelength_1,0);
L.setPower(power, true,0);
pwr_save = NaN(size(wavelength_sweep));
for l = 1:numel(wavelength_sweep)
% 1)
L.setWavelength(wavelength_sweep(l),0);
% 2) Set Wavelength of Power Meter
t = string(['SENS1:POW:WAVE ',num2str(wavelength_sweep(l)),'NM']);
writeline(v_pwrmtr, t);
% 3) Read Power of
writeline(v_pwrmtr, "READ1:POW?");
pwr = readline(v_pwrmtr);
pwr_save(l) = str2num(pwr);
figure(2026);clf
plot(wavelength_sweep,pwr_save,'Marker','*');
xlabel('Wavelength [nm]');
ylabel('Insertion Loss [dB]');
ylim([min(pwr_save)-1, max(pwr_save)+1]);
xlim([wavelength_sweep(1) wavelength_sweep(eind)])
grid minor
end
L.setPower(0, false,0);
L.delete();
path= "Z:\2025\NFT WDM DFG Olaf\lambda_vs_power";
dt = datetime('now','Format','yyyyMMdd_HHmmss');
filename = fullfile(path, name+"_"+replace(num2str(wavelength_sweep(1)),".","_") +"nm_to_"+ replace(num2str(wavelength_sweep(end)),".","_")+ "nm_" + string(dt) + ".mat");
save(filename, "pwr_save","wavelength_sweep");
disp("Saved to: " + filename);

View File

@@ -0,0 +1,21 @@
clear all
% L = OptLaserN7714A("TCPIP0::134.245.243.209::inst0::INSTR");
% L.setWavelength(1551,1); % nm
% L.setPower(5.8, true,1); % dBm, also turns output ON
% L.setDither(0,1);
% % L.setPower(5.9, false,1);
% info = L.getLaserInfo();
%
% L.delete();
clear all
L = OptLaserN7714A("GPIB0::20::INSTR");
L.setWavelength(1550,0); % nm
L.setPower(0, true,0); % dBm, also turns output ON
L.setPower(0, false,0);
info = L.getLaserInfo();
L.delete();

View File

@@ -0,0 +1,29 @@
% --- Minimal N7714A example (MATLAB) ---
visa_addr = "TCPIP0::134.245.243.209::inst0::INSTR"; % <-- change to your laser's IP
port = 1; % 1..4 selects the N7714A output port
% v = visadev(visa_addr);
% Identify instrument
writeline(v,'*IDN?'); disp(strtrim(readline(v)));
% Make sure wavelength is settable (Auto mode)
writeline(v, sprintf('SOUR%d:WAV:AUTO 1', port)); % Auto Mode ON (wavelength set allowed).
% Set wavelength and power (units explicit)
writeline(v, sprintf('SOUR%d:WAV 1560NM', port)); % set 1550 nm. :contentReference[oaicite:3]{index=3}
writeline(v, sprintf('SOUR%d:POW:UNIT DBM', port)); % power unit = dBm. :contentReference[oaicite:4]{index=4}
writeline(v, sprintf('SOUR%d:POW:LEV:IMM:AMPL 6 DBM', port)); % set -3 dBm. :contentReference[oaicite:5]{index=5}
% Enable output (either OUTP or SOUR:POW:STAT works)
writeline(v, sprintf('OUTP%d:STAT ON', port)); % laser ON. :contentReference[oaicite:6]{index=6}
writeline(v, 'OUTP1 ON');
% ---- Read back to verify ----
writeline(v, sprintf('SOUR%d:WAV?', port)); wav_m = str2double(readline(v));
writeline(v, sprintf('SOUR%d:POW:LEV:IMM:AMPL?', port)); pow = str2double(readline(v));
writeline(v, sprintf('OUTP%d:ON?', port)); onoff = str2double(readline(v));
fprintf('Port %d -> %.2f nm, %.2f dBm, Output=%d\n', port, 1e9*wav_m, pow, onoff);
delete(v);

View File

@@ -0,0 +1,2 @@
L.setPower(power, false,0);
L.delete();

View File

@@ -0,0 +1,19 @@
clear all
% 1554.7097
% 1554.9032
% 1555.0968
% 1555.2904
%%%%%%%%%%%%%%%%%%%%%
wavelength = 1555.0968; %nm
power = 6; %dBm
%%%%%%%%%%%%%%%%%%%%%
L = OptLaserN7714A("GPIB0::20::INSTR");
L.setWavelength(wavelength,0);
L.setPower(power, true,0);

View File

@@ -0,0 +1,45 @@
%% DC Source
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(desired_wavelength);
laser.setPower(10);
laser.enableLaser();
%% Optical Attenuator
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",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.2;
Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rcalpha);
Pamsource = PAMsource(...
"fsym",fsym,"M",M,"order",17,"useprbs",1,...
"fs_out",fdac,...
"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);
[S1,S2,S3,S4] = A2S.process("signal2",tx_signal);
S3.spectrum("displayname",'Rx Spectrum','fignum',10,'normalizeTo0dB',0);