IQ Modulation Programming Examples

RF Signal Generation

Chris Armstrong

Last Update il y a un an

With the need for dynamic signal generation, interference, and complex RF environment tests, the ability to automate and process a variety of signals quickly is an important capability. Like all Siglent instruments, these RF signal sources utilize a SCPI text based API over USB or ethernet. Each series includes a programming manual that outlines how to communicate using these SCPI commands with the VISA protocol.


One critical aspect of automation for a signal generator like this is to dynamically load custom IQ files that may be saved internally or transferred from the SigIQPro software beforehand. 

Let’s look at a couple of basic signal configurations for these generators and the commands we use to set them up:


First, let’s look at how to load and activate a QAM16 signal remotely to the instrument. Here is a view of the LabVIEW code. The highlighted area controls the generator:

In this vi, these 6 commands are sent in 2 batches:


:FREQ 4000000000 sets the center frequency to 4 GHz

:FUNC:DM:STAT ON activates the IQ modulation system

:RADio:CUSTom:MOD QAM16 sets the custom modulation to QAM16

:RAD:CUST:STAT ON activates the custom modulation system

:POW:POW -20 sets the power level to -20 dBm

:OUTP ON turns on the generator main output

The code in that vi above the generator code sets up a SSA5000A spectrum analyzer to view the demodulated signal. This is achieved simply by loading the mode (MA for Modulation Analyzer) in this case and then loading a saved setup with all of the matching settings. The output of this code appears on the analyzer as:

Obviously, subtle changes to that code can adjust the modulation or turn off the IQ modulation operation.


Let’s look more closely at a complex configuration for a Bluetooth signal:

This code shows the 8 commands necessary to load and execute a Bluetooth signal. Most important is the command to locate and load one of the preexisting Bluetooth arb files:


RADio:ARB:WAVeform “WFM:Bluetooth BR_DM1 Bursting packet”

Depending on the model, the command for loading the waveforms from the file system differ slightly.

Then to set the arb symbol clock rate: :RADio:ARB:SCLock:RATE 30 MHz

And finally, to activate the ARB radio system: :RAD:ARB:STAT ON

Consult the programming manual for the model generator you are using for complete programmatic control.

Was this article helpful?

1 out of 1 liked this article

Still need help? Message Us