beautypg.com

Agilent Technologies N5183A MXG User Manual

Page 267

background image

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);

This manual is related to the following products: