HP ESA-E Series Programmer's Manual page 149

Esa spectrum analyzers
Table of Contents

Advertisement

/*Perform a peak search and wait for completion */
viPrintf(viESA,"CALC:MARK:MAX;*OPC?\n");
viScanf(viESA,"%d",&lOpc);
/*Activate signal track */
viPrintf(viESA,"CALC:MARK:TRCK:STAT ON \n");
/*Zoom down to a 100 kHz span */
viPrintf(viESA,"SENS:FREQ:SPAN 10e4; \n");
/*Take a sweep and wait for the sweep completion*/
TakeSweep();
/* Signal track off */
viPrintf(viESA,"CALC:MARK:TRCK:STAT OFF ;\n");
/*Perform a peak search and wait for completion*/
viPrintf(viESA,"CALC:MARK:MAX \n");
/*Set marker amplitude in volts*/
viPrintf(viESA,"UNIT:POW V; \n");
/*Take a sweep and wait for the sweep completion*/
TakeSweep();
/*Query and read the marker amplitude in volts*/
/*Store the result in the fHarmV array.*/
viQueryf(viESA,"CALC:MARK:Y?\n","%1f",
&fHarmV[lNum]);
/*Change the amplitude units to dBm */
viPrintf(viESA,"UNIT:POW DBM; \n");
/*Take a sweep and wait for the sweep completion*/
TakeSweep();
/* Read the marker amplitude */
viQueryf(viESA,"CALC:MARK:Y?\n","%1f",
&fHarmDbm[lNum]);
}
/*Sum the square of each element in the fHarmV array and
calculate the relative amplitude of each harmonic relative to
the fundamental*/
for (lNum=2;lNum<=lMaxHarmonic;lNum++)
{
dSumSquare= dSumSquare + (pow (double(fHarmV[lNum])
,2.0));
/* Relative Amplitude
fRelAmptd[lNum] = fHarmDbm[lNum] - fFundaAmptdDbm ;
}
Chapter 3
Programming Examples
Measuring Harmonic Distortion (RS-232)
*/
3-85

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents