How Can I Maximize the Resolution of My Analog Output Signal?

Updated Nov 29, 2022

Issue Details

How can I maximize the resolution of my analog output signal?


Analog Input and Output:

For analog input, one important consideration is how well the signal fits into the full range of the Analog to Digital Converter (ADC). Similarly, it is important to consider how well your signal fits into the full range of the Digital to Analog Converter (DAC) during analog output. When doing analog input, fitting your signal into your range is done by utilizing the onboard amplifier to amplify the signal into the full range of the ADC. Once the signal is digitized, it is then scaled back to its original range by the NI-DAQ driver. While the concepts are the same in analog output, it is done differently. Going in reverse, you might expect that you would first scale the desired output signal into the full range of the DAC, convert it to analog, and then use analog circuitry to attenuate the signal back to its original scale. However, NI DAQ boards do not have the required attenuation circuitry available, so this would need to be done externally.

One simple way to improve the resolution of your analog output signal is to increase your code width. There are 2^number of bits of resolution steps over the entire range of a DAQ board. For a 12 bit DAQ board with a range of -10 to 10 volts, the minimum step size or code width is 20 volts / 4096 steps = 0.00488281 V. Using this equation, it is clear that cutting your range in half (0 to 10 volts) will improve your resolution by a factor of 2.

How National Instruments M-Series DAQ Devices Improve Analog Output Resolution

E-Series devices offer two analog output ranges- bipolar (+/- 10 V) and unipolar (0 to 10 V). Some M-Series DAQ devices, on the other hand, feature programmable output ranges that distribute the bits of resolution over a smaller voltage range, therefore resulting in better output resolution. The M-Series boards also feature programmable DC offsets. For example, if you wanted to use all of your bits to output a signal that varied between 0 and 2 V, it would be possible to set a voltage range of -1 to 1 V with a +1V DC offset. 

Using an External Voltage Reference:

The best way to maximize the resolution of an analog output signal without using external circuitry is to apply an external reference to your DAC. The board normally uses an internal 10 volt reference for both bipolar mode (-10 to 10 volts) and unipolar mode (0 to 10 volts). If your signal fits well within the selected range, then the internal reference is preferred. However, if your signal range is much smaller than the normal range of the board, then you are not fully taking advantage of the resolution of your board. You can use the board's EXTREF pin to connect your own voltage reference (check the manual to see if your board has an EXTREF pin). The DAC will use the voltage reference you provide to convert your signal from digital to analog. You are effectively changing the range of your DAC to fit the range of your signal.

It should be noted that if you have an offset in your external reference, it will affect the accuracy of your digital to analog conversion. For example, if your voltage reference has an offset of +/- 1%, then your signal reading will also be off by +/- 1%. If a 5 volt reference is actually 5.05 volts, then a desired 1 Volt signal will actually be 1.01 volts and a desired 2 volt signal will be 2.02 volts. Obviously this defeats the purpose of decreasing the range of your DAC, so you must use as precise an external reference as possible. 

Additional Information

Since most E-Series boards have two analog outputs, you can actually wire the output of one output channel to the EXTREF. The first channel would use the internal reference to create and the second channel would use the external reference provided by the first channel. For more information, see the LabVIEW example program linked below.

If you want a range from -10 to 0 volts, you can connect a -10 volt signal to the EXTREF pin and configure the board for a 0 to 10 volt range. When you attempt to output a positive voltage between 0 and 10 volts, your board will actually output a negative voltage between -10 to 0 volts.