AnsweredAssumed Answered

full band sweep with high resolution

Question asked by ehsansh on Dec 3, 2013
Latest reply on Feb 5, 2015 by ehsansh
Hi

I have a 8164B mainframe with a 81600B laser and 81635A powermeter.

I am using GPIB to connect to the device:
* Connected to: GPIB0::20::INSTR
-> *IDN?
<- Agilent Technologies,8164B,MY48203305,V5.25(72636)

8164A/B LMS Mainframe
8164B,MY48203305,V5.25(72636)
GPIB0::20::INSTR

81600B Tunable Laser Source
81600B,DE43501213,V4.11(54300)
SLOT00:GPIB0::20::INSTR

8163x Power Sensor
81635A,DE38606695,V4.06(71686)
SLOT01:GPIB0::20::INSTR

The problem is when sweeping full range (1455-1640) with IL client 1.4.1 the typical resolution limit is 10 pm.

I need to do a higher resolution scan. One solution would be deviding  the range into 10 sections and do 1pm scans.

I tried to write a matlab code but cannot see any result out of the laser.

Is there any way to use the IL client for a high resolution full band sweep or correct the matlab code below to read the binary block data correctly?

thanks





%%%%%%%%%%%%%%%%
clear all
fclose all
%fclose(ag_laser);


%ag_laser=visa('AGILENT', 'TCPIP0::18.62.17.81::inst0::INSTR');
ag_laser= instrfind('Type', 'gpib', 'BoardIndex', 0, 'PrimaryAddress', 20, 'Tag', '');
if isempty(ag_laser),    ag_laser= gpib('NI', 0, 20);else,    fclose(ag_laser);    ag_laser= ag_laser(1); end
ag_laser.InputBufferSize=30004
% Initial Setup
fopen(ag_laser);
fprintf(ag_laser,'*RST');
%pause (5)
fprintf(ag_laser,'SOURCE0:WAVELENGTH:CORRECTION:AUTOCALIB 0');
%query(ag_laser,'SOURCE0:WAVELENGTH:CORRECTION:AUTOCALIB?')

fprintf(ag_laser,'trig:conf LOOP')
%query(ag_laser,'trig:conf?')

fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:MODE CONTINUOUS')
%query(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:MODE?')


fprintf(ag_laser,'SOURCE0:AM:STATE OFF');query(ag_laser,'SOURCE0:AM:STATE?')
fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:CYCLES 1');query(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:CYCLES?')

% setup the software triggers for cont. mode
fprintf(ag_laser,'INITIATE1:CONTINUOUS 1');query(ag_laser,'INITIATE1:CONTINUOUS?')

fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:SPEED 4E-8')% // 40nm/s
fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:START 1.505E-06')% // start: 1505nm
fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:STOP 1.58E-06')% // end: 1580nm
fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:STEP 1E-11')% // step: 0.01nm
query(ag_laser,'SOURCE0:WAVELENGTH:SWEEP:EXP?') % // get nb expected triggers (-> 7501)
fprintf(ag_laser,'SOURCE0:POWER:STATE 1');

%Sent before every continuous sweep:
fprintf(ag_laser,'SENSE1:FUNCTION:PARAMETER:LOGGING 7501, 0.0002')
query(ag_laser,'SENSE1:FUNCTION:PARAMETER:LOGGING?')

fprintf(ag_laser,'TRIGGER1:OUTPUT DISABLED')
fprintf(ag_laser,'TRIGGER1:INPUT CMEASURE')
fprintf(ag_laser,'TRIGGER0:OUTPUT SWSTARTED')
fprintf(ag_laser,'TRIGGER0:INPUT IGNORE')


fprintf(ag_laser,'SENSE1:FUNCTION:STATE LOGGING,START')
fprintf(ag_laser,'SOURCE0:WAVELENGTH:SWEEP START')

fprintf(ag_laser,'SENSE1:CHANNEL1:FUNCTION:RESULT:BLOC? 0,7501')
[A,count]=fread(ag_laser,7501,'float')
plot(A)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  

Outcomes