NI PXI/PCI-5401/5411/5431 Frequency Resolution and Lookup Memory in Standard Function Mode

NI Signal Generator

NI PXI/PCI-5401/5411/5431
Frequency Resolution and Lookup Memory in Standard Function Mode


Direct digital synthesis-based waveform generation implements the Standard Function mode, which requires that you first load one cycle of the desired waveform into the lookup memory. The size of the direct digital synthesis lookup memory is 16,384 samples. Each sample is 16-bits wide.

Note One cycle of the waveform loaded into the memory should be exactly equal to the size of the direct digital synthesis lookup memory.

Fc = Sample clock for the accumulator

Set the NI 5401/5411/5431 at Fc = 40 MHz.

Fa = desired frequency of the output signal
N = accumulator size in bits

Set the NI 5401/5411/5431 at N = 32.

FCW = frequency control word to load into the accumulator to generate Fa

The frequency control word is calculated using the formula:

FCW = (2N × Fa) / Fc

The frequency resolution is given by:

frequency resolution = Fc / 2N = (40 × 106) / 232 = 9.31322 mHz

For example, if you need to generate a frequency of 10 MHz, then the FCW is (232 × 106)/(40×106), which equals 1,073,741,824. If you need to generate a frequency of 1 Hz, then the FCW is (232 × 1)/(40× 106), which equals 107.

Note  On the NI PXI/PCI-5401/5411, the maximum frequency of a sine wave you can generate reliably is limited to 16 MHz and, for the NI PXI/PCI-5431, it is limited to 8 MHz. Other waveforms, such as square or triangular waves and the user-defined waveform, are limited to 1 MHz.

You can also generate user defined periodic waveforms using Direct Digital Synthesis mode. Generating user defined waveforms this way is very limited; you are restricted to a single waveform, and this waveform should be exactly equal to the size of the lookup memory (16,384 samples). Periodic waveforms such as sine waves, triangular waveforms produce the best results due to the lack of short parts of the signal deviating drastically in amplitude from the waveform.

Non periodic waveforms such as pulse waveform that has only 100 of the total 16,384 samples at 1.0, and the remaining at 0.0 produce mixed results, because not every sample is generated during waveform generation. The higher the set function frequency, the fewer of the waveform samples that are generated. The full waveform of 16,384 samples is considered one cycle, and a setting of 1 MHz for the waveform will only use 40 samples from the waveform because the internal clock is always running at 40 MS/s. These 40 samples are equally spaced, an average of 409.6 samples apart. The pulse of 100 samples can and will be easily skipped during the waveform generation, only seeing 0 volts at the output for a time. Depending on the DDS clocking, one sample in the pulse is generated for a momentary pulse in the output.

To update every sample of an arbitrary waveform in lookup memory at the maximum clock rate of 40 MHz, the software writes an FCW value of 2(NL), where N is the size of the accumulator and L is the number of address bits of lookup memory (L = 14 bits). Thus, the FCW value for the NI 5411/5431 equals 262,144. Because FCW = (2N × Fa) / Fc, Fa = (2(NL) × Fc) / 2N, you write a frequency value of (2(32−14) × (40 × 106)) / 232, which equals 2.441 kHz.

If you want to update every sample in lookup memory at an integral subdivision, D, of the maximum clock rate, then you want an FCW value of 2(N−L−D+1). In other words, for an effective update rate of every sample at half the maximum clock rate, write a frequency value of (2(32−14−2+1) × (40 × 106)) / 232, which equals 1.221 kHz.