Technical data

Agilent Signal Generators Programming Guide 255
Creating and Downloading Waveform Files
Programming Examples
C++ Programming Examples
This section contains the following programming examples:
“Creating and Storing Offset I/Q Data—Big and Little Endian Order” on page 255
“Creating and Storing I/Q Data—Little Endian Order” on page 259
“Creating and Downloading I/Q Data—Big and Little Endian Order” on page 260
“Importing and Downloading I/Q Data—Big Endian Order” on page 264
“Importing and Downloading Using VISA—Big Endian Order” on page 266
“Importing, Byte Swapping, Interleaving, and Downloading I and Q Data—Big and Little Endian
Order” on page 270
“Calculating the RMS Voltage for a Waveform Programming Using C++” on page 276
Creating and Storing Offset I/Q Data—Big and Little Endian Order
On the documentation CD, this programming example’s name is “offset_iq_c++.txt.”
This C++ programming example (compiled using Microsoft Visual C++ 6.0) follows the same coding
algorithm as the MATLAB programming example “Creating and Storing I/Q Data” on page 277 and
performs the following functions:
error checking
data creation
data normalization
data scaling
I/Q signal offset from the carrier (single sideband suppressed carrier signal)
byte swapping and interleaving for little endian order data
I and Q interleaving for big endian order data
binary data file storing to a PC or workstation
reversal of the data formatting process (byte swapping, interleaving, and normalizing the data)
After creating the binary file, you can use FTP, one of the download utilities, or one of the C++
download programming examples to download the file to the signal generator.
// This C++ example shows how to
// 1.) Create a simple IQ waveform
// 2.) Save the waveform into the ESG/PSG Internal Arb format
// This format is for the E4438C, E8267C, E8267D
// This format will not work with the ESG E443xB or the Agilent MXG N518xA
// 3.) Load the internal Arb format file into an array
#include <stdio.h>
#include <string.h>
#include <math.h>
const int POINTS = 1000; // Size of waveform
const char *computer = “PCWIN”;
int main(int argc, char* argv[])