Remote Control Commands
R&S
®
SMBV100A
454Operating Manual 1407.6062.32 ─ 08
rad = grad * (pi / 180.0);
fprintf(fp, "%f %f\n", sin(rad), cos(rad));
}
fclose(fp);
}
Extract from a C-program generating a binary data set from the I/Q pairs in the file
SICO.TXT and storing the result to file SICO.WV:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
void main(void)
{
const unsigned int samples = 20; // Number of samples to convert
FILE *fp_sour, *fp_dest;
float i_float, q_float;
unsigned short i_usint, q_usint;
int i;
fp_sour = fopen("SICO.TXT", "rt");
if (fp_sour == 0)
return;
fp_dest = fopen("SICO.WV", "wb");
if (fp_dest == 0)
{
fclose(fp_sour);
return;
}
// Write required tags to waveform file
fprintf(fp_dest, "{TYPE: SMU-WV,0}");
fprintf(fp_dest, "{CLOCK: 10e6}");
fprintf(fp_dest, "{SAMPLES: %d}", samples);
fprintf(fp_dest, "{WAVEFORM-%d:#", (samples * 4) + 1);
for (i=0; i<samples; i++)
{
// Read I/Q pair from ASCII file
if (fscanf(fp_sour, "%f %f", &i_float, &q_float) == EOF)
break;
// Convert I/Q pair to unsigned short
i_usint = (unsigned short)floor((i_float * 32767.0) + 0.5);
q_usint = (unsigned short)floor((q_float * 32767.0) + 0.5);
// Write converted I/Q pair to waveform file
fwrite(&i_usint, 2, 1, fp_dest);
fwrite(&q_usint, 2, 1, fp_dest);
}
fprintf(fp_dest, "}");
fclose(fp_dest);
fclose(fp_sour);
}
R&S Signal Generator Waveform and List Format