I have downloaded a ton of supposedly working matlab code to load the ESG series dual arbitrary wave form generator I have a e4433b. not of the stuff actually works all of it used commands that are not even in the e4433b programing manual
in particular I cannot figure out how to load the actual data values (8 bit bytes) the instruction is
:MMEM:DATA "ARBI:<waveform name>", <I waveformdata>
:MMEM:DATA "ARBI:<waveform name>", #ABC
"<waveform name>" the name of the waveform file within the signal generator.
A the number of decimal digits to follow in B.
B a decimal number specifying the number of data bytes in C.
C the binary waveform data in 2-byte integers.
Example 1
:MMEM:DATA "ARBI:WAVEFORM1", #232<32 bytes of data>
WAVEFORM1 the waveform name
2 defines the number of decimal digits to follow in B. This variable is
represented by A in the sample command line.
32 denotes how many bytes of data are to follow. This variable is represented
by B in the sample command line.
<32 bytes
of data> the binary waveform data in 2-byte integers. Data order is defined as Most
Significant Byte (first) and Least Significant Byte (last). This variable is
represented by C in the sample command line.
I cannot get the format of the #ABC part to work
Hi,
The E4438B ESG-B has a different file format from the E4438C ESG-C. The C can play B waveforms but not the other way around. The ESG-B uses separate I and Q waveforms. The ESG-C using a single waveform that contains both I and Q.
I found a E4438B programing manual online here.
http://www.doe.carleton.ca/~nagui/labequip/synth/manuals/e4400324.pdf
I haven't found a functional download utility for the ESG-B, but here is a MatLAB script to create the AB header stuff.
function wfmCmd = CreateWaveformCommand(IorQ, file_name, points )
% :MMEM:DATA "ARBI:<file_name>",#ABC
% "<file_name>" the I/Q file name and file path within the signal generator
% # indicates the start of the data block
% A the number of decimal digits present in B
% B a decimal number specifying the number of data bytes to follow in C
B = num2str(2*points); % Bytes in waveform
A = num2str(length(B));
wfmCmd = [':MEM:DATA "ARB' IorQ ':' upper(file_name) '",#' A B ];
end
IorQ = 'I'; % Could be 'Q'.
waveName = 'TestWave';
points = length(iqWaveform);
wfmCmd = CreateWaveformCommand( IorQ, waveName, points);
disp(wfmCmd);
Hope this helps.
Pete