Figure 1

Figure 1 16 superimposed sine waves and the FFT.

Spectrum Instrumentation released a new direct digital synthesis (DDS) firmware option for the company’s range of versatile 16-bit arbitrary waveform generators (AWGs). The AWGs offer output rates of up to 1.25 GSPS and bandwidths of up to 400 MHz. The option allows users to define 23 DDS cores per AWG that can be routed to the hardware output channels. Each DDS core can be programmed for frequency, amplitude, phase, frequency slope and amplitude slope. This enables control of lasers through acousto-optic deflectors and acousto-optic modulators, as is often used in quantum experiments, with just a few simple commands. Using the abstraction layer of the new Python package makes programming the AWG hardware and the DDS mode extremely easy. A DDS example with 16 superimposed sine waves on one channel and the FFT is shown in Figure 1.

DIRECT DIGITAL SYNTHESIS

DDS is a method for generating arbitrary periodic waves from a single, fixed-frequency reference clock. It is a technique widely used in a variety of signal-generation applications. The DDS functionality implemented on Spectrum’s AWGs is based on the principle of adding multiple DDS cores to generate a multi-carrier (multi-tone) signal, with each carrier having a well-defined frequency, amplitude and phase.

DDS Mode Application Examples

For years, Spectrum AWGs have been successfully used worldwide in pioneering quantum research experiments. The flexibility and fast streaming mode of the AWGs enables data to be streamed straight from a GPU and allows the control of qubits directly from a PC. While using an AWG in this way offers full control of the generated waveforms, large amounts of data need to be calculated. This slows the critical decision-making loop. In contrast, using the versatile multi-tone DDS functionality greatly reduces the amount of data that must be transferred, while still maintaining full control. All the key functionality required for quantum research is built in. With just a single command, users can apply intrinsic dynamic linear slope functions to produce extremely smooth changes to frequency and amplitude. Only a few Python commands are necessary to generate a sine wave, shown in the top block on the left of Figure 2, ramp up the frequency, shown in the middle block, and reduce the amplitude, shown in the bottom block.

Figure 2

Figure 2 DDS command block and response.

The DDS option provides an easy and programmable way for users to produce trains of waveforms, frequency sweeps or finely-tunable references of various frequencies and profiles. Applications that require the fast frequency switching and fine frequency tuning that DDS offers are widespread. They can be found in industrial, medical and imaging systems, network analysis or even communication technology, where data is encoded using phase and frequency modulation on a carrier.

PYTHON PACKAGE FOR EASY CONTROL OF DDS

The Python package is available through GitHub with a single pip command. It allows full control of all current Spectrum hardware, including digitizers, AWGs, digital I/O cards and options, including the DDS option. Generating a single 100 MHz sine wave requires five DDS-specific single-line commands as follows:

dds.reset()

dds[0].amp(0.5) # 50% output amplitude

dds[0].freq(100e6) # 100 MHz signal frequency

dds.exec_at_trg()

dds.write_to_card()

In total, there are more than 10 different core-related functions, as well as more than 30 general functions, realized inside the Python DDS class. This allows users to read all the internal parameters and read back all the possible DDS settings.

10 Million DDS Commands Per Second

The DDS commands can be sent using an extremely fast DMA mode into the 4 GB sample memory of the AWG. This fast transfer mode allows more advanced DDS functions that are not implemented in firmware as intrinsic functions to be performed. These include:

  • S-shaped frequency/amplitude slopes consisting of multiple linear slope commands.
  • Custom frequency/amplitude slopes consisting of multiple linear slope commands
  • AM modulation consisting of multiple amplitude change commands
  • FM modulation consisting of multiple frequency change commands
  • FSK modulation consisting of multiple frequency change commands.

A simple s-shaped frequency slope can be achieved by using multiple intrinsic linear frequency slope functions. The example in Figure 3 defines a command timer of 100 ms to generate an s-form slope in seven steps where each step is 100 ms. The slope goes from 100 to 122 MHz.

Figure 3

Figure 3 DDS command script.

Availability and Software Integration

Figure 4

Figure 4 Examples of the 66xx AWG series.

The DDS option is available for the full range of M4i.66xx PCIe cards, M4x.66xx PXIe modules, portable LXI/Ethernet DN2.66x units and multi-channel desktop LXI/Ethernet DN6.66xx products. All previously purchased 66xx-series products can be equipped with the new firmware option by simply performing a firmware update. Besides the high-level Python package, programming can be done using the existing driver SDKs that are included in the delivery. Examples are available for C, C++, JAVA, C#, MATLAB, LabVIEW and many more.

One Python Package for All Spectrum Products

The high-level, object-oriented Python package not only supports the DDS mode, but it also supports all current Spectrum products and nearly all product features and operating modes. This includes digitizer, AWG, synchronization, single-shot mode, continuous FIFO acquisition, averaging modes, pulse generator and DDS options, along with many more. More than 30 examples and detailed documentation are available on how to use the package. Spectrum is constantly improving Python support and continues to add new examples and new features. All 23 of the 66xx AWG series, some of which are shown in Figure 4, can be used with the DDS option.

Spectrum Instrumentation
Grosshansdorf, Germany
www.spectrum-instrumentation.com