Agilent Technologies E8663B Portable Generator User Manual


 
Agilent N518xA, E8663B, E44x8C, and E82x7D Signal Generators Programming Guide 257
Creating and Downloading Waveform Files
Programming Examples
end
% Save the data to a file
% Note: The waveform is saved as unsigned short integers. However,
% the acual bit pattern is that of signed short integers and
% that is how the Agilent MXG/ESG/PSG interprets them.
filename = ‘C:\Temp\PSGTestFile’;
[FID, message] = fopen(filename,’w’);% Open a file to write data
if FID == -1 error(‘Cannot Open File’); end
fwrite(FID,waveform,’unsigned short’);% write to the file
fclose(FID); % close the file
% 3.) Load the internal Arb format file *********************************
% This process is just the reverse of saving the waveform
% Read in waveform as unsigned short integers.
% Swap the bytes as necessary
% Convert to signed integers then normalize between +-1
% De-interleave the I/Q Data
% Open the file and load the internal format data
[FID, message] = fopen(filename,’r’);% Open file to read data
if FID == -1 error(‘Cannot Open File’); end
[internalWave,n] = fread(FID, ‘uint16’);% read the IQ file
fclose(FID);% close the file
internalWave = internalWave’; % Conver from column array to row array
% If on a PC swap the bytes back to Little Endian
if strcmp( computer, ‘PCWIN’ ) % Put the bytes into the correct order
internalWave= bitor(bitshift(internalWave,-8),bitshift(bitand(internalWave,255),8));
end
% convert unsigned to signed representation
internalWave = double(internalWave);
tmp = (internalWave > 32767.0) * 65536;
iqWave = (internalWave - tmp) ./ 32767; % and normalize the data
% De-Interleave the IQ data
IwaveIn = iqWave(1:2:n);
QwaveIn = iqWave(2:2:n);