I was thinking about our problem with understanding software preferences at the Karaoke event… true, if we’d had enough time to test the patches and the analog sound environment ahead of time, we may have figured it out. In the end we realized it was a matter of max/msp/jitter software preferences with input devices, or something to that nature.
But the problem got me thinking about the nature of digital and analog signals, and how, when we start to use microcontrollers in the next few weeks and for our final projects/performances, we’ll have to understand what ADC’s do and how they work. I find the math fascinating.
When an analog signal gets converted to digital (so that we can route the digital signal to our max patches and then perhaps back out again to another analog source, in which case we’d need DAC or digital to analog converter), then there are certain equations involved in translating to binary code.
Here’s a lengthy excerpt I took from Wikipedia on ADC’s and the potential errors that can arise… quantization errors are interesting and even more relative to our potential projects ahead, are the sections on sampling rate, dither and aliasing. All these processes appear to be designed to help us attain corrections in the analog to digital conversions… and could the analog to digital conversions that our max patches were trying to sort out have had anything to do with our issues in manipulating video? I began to wonder as I read through this stuff on how ADC’s work.
Our laptop software has to have built in converters… it’s how we can record an analog signal and then playback right from our computer speakers as an analog output, right? The storage is digital, as there is no tape. So maybe in the future we can look at the brand or type of ADCs and DACs that are built into our macs and try to see if our patches are working in tandum with them?
Am I totally off track here?
Here’s the excerpt, taken from “Analog-to-digital converters” entry…
+++++++++++++++++++
Linear ADCs
Most ADCs are of a type known as linear[1] The term linear as used here means that the range of the input values that map to each output value has a linear relationship with the output value, i.e., that the output value k is used for the range of input values from
- m(k + b)
to
- m(k + 1 + b),
where m and b are constants. Here b is typically 0 or −0.5. When b = 0, the ADC is referred to as mid-rise, and when b = −0.5 it is referred to as mid-tread.
[edit] Non-linear ADCs
If the probability density function of a signal being digitized is uniform, then the signal-to-noise ratio relative to the quantization noise is the best possible. Because this is often not the case, it is usual to pass the signal through its cumulative distribution function (CDF) before the quantization. This is good because the regions that are more important get quantized with a better resolution. In the dequantization process, the inverse CDF is needed.
This is the same principle behind the companders used in some tape-recorders and other communication systems, and is related to entropy maximization.
For example, a voice signal has a Laplacian distribution. This means that the region around the lowest levels, near 0, carries more information than the regions with higher amplitudes. Because of this, logarithmic ADCs are very common in voice communication systems to increase the dynamic range of the representable values while retaining fine-granular fidelity in the low-amplitude region.
An eight-bit A-law or the μ-law logarithmic ADC covers the wide dynamic range and has a high resolution in the critical low-amplitude region, that would otherwise require a 12-bit linear ADC.
[edit] Accuracy
An ADC has several sources of errors. Quantization error and (assuming the ADC is intended to be linear) non-linearity is intrinsic to any analog-to-digital conversion. There is also a so-called aperture error which is due to a clock jitter and is revealed when digitizing a time-variant signal (not a constant value).
These errors are measured in a unit called the LSB, which is an abbreviation for least significant bit. In the above example of an eight-bit ADC, an error of one LSB is 1/256 of the full signal range, or about 0.4%.
[edit] Quantization error
Main article: Quantization noise
Quantization error is due to the finite resolution of the ADC, and is an unavoidable imperfection in all types of ADC. The magnitude of the quantization error at the sampling instant is between zero and half of one LSB.
In the general case, the original signal is much larger than one LSB. When this happens, the quantization error is not correlated with the signal, and has a uniform distribution. Its RMS value is the standard deviation of this distribution, given by
. In the eight-bit ADC example, this represents 0.113% of the full signal range.
At lower levels the quantizing error becomes dependent of the input signal, resulting in distortion. This distortion is created after the anti-aliasing filter, and if these distortions are above 1/2 the sample rate they will alias back into the audio band. In order to make the quantizing error independent of the input signal, noise with an amplitude of 1 quantization step is added to the signal. This slightly reduces signal to noise ratio, but completely eliminates the distortion. It is known as dither.
[edit] Non-linearity
All ADCs suffer from non-linearity errors caused by their physical imperfections, resulting in their output to deviate from a linear function (or some other function, in the case of a deliberately non-linear ADC) of their input. These errors can sometimes be mitigated by calibration, or prevented by testing.
Important parameters for linearity are integral non-linearity (INL) and differential non-linearity (DNL). These non-linearities reduce the dynamic range of the signals that can be digitized by the ADC, also reducing the effective resolution of the ADC.
[edit] Aperture error
Imagine that we are digitizing a sine wave x(t) = Asin(2πf0t). Provided that the actual sampling time uncertainty due to the clock jitter is Δt, the error caused by this phenomenon can be estimated as
.
The error is zero for DC, small at low frequencies, but significant when high frequencies have high amplitudes. This effect can be ignored if it is drowned out by the quantizing error. Jitter requirements can be calculated using the following formula:
, where q is a number of ADC bits.
ADC
resolution
in bit |
input frequency |
| 1 Hz |
44.1 kHz |
192 kHz |
1 MHz |
10 MHz |
100 MHz |
1 GHz |
| 8 |
1243 µs |
28.2 ns |
6.48 ns |
1.24 ns |
124 ps |
12.4 ps |
1.24 ps |
| 10 |
311 µs |
7.05 ns |
1.62 ns |
311 ps |
31.1 ps |
3.11 ps |
0.31 ps |
| 12 |
77.7 µs |
1.76 ns |
405 ps |
77.7 ps |
7.77 ps |
0.78 ps |
0.08 ps |
| 14 |
19.4 µs |
441 ps |
101 ps |
19.4 ps |
1.94 ps |
0.19 ps |
0.02 ps |
| 16 |
4.86 µs |
110 ps |
25.3 ps |
4.86 ps |
0.49 ps |
0.05 ps |
– |
| 18 |
1.21 µs |
27.5 ps |
6.32 ps |
1.21 ps |
0.12 ps |
– |
– |
| 20 |
304 ns |
6.88 ps |
1.58 ps |
0.16 ps |
– |
– |
– |
| 24 |
19.0 ns |
0.43 ps |
0.10 ps |
– |
– |
– |
– |
| 32 |
74.1 ps |
– |
– |
– |
– |
– |
– |
This table shows, for example, that it is not worth using a precise 24-bit ADC for sound recording if there is not an ultra low jitter clock. One should consider taking this phenomenon into account before choosing an ADC.
Clock jitter is caused by phase noise.[2][3] The resolution of ADCs with a digitization bandwidth between 1 MHz and 1 GHz is limited by jitter.[4]
When sampling audio signals at 44.1 kHz, the anti-aliasing filter should have eliminated all frequencies above 22 kHz. The input frequency (in this case, 22 kHz), not the ADC clock frequency, is the determining factor with respect to jitter performance.[5]
[edit] Sampling rate
The analog signal is continuous in time and it is necessary to convert this to a flow of digital values. It is therefore required to define the rate at which new digital values are sampled from the analog signal. The rate of new values is called the sampling rate or sampling frequency of the converter.
A continuously varying bandlimited signal can be sampled (that is, the signal values at intervals of time T, the sampling time, are measured and stored) and then the original signal can be exactly reproduced from the discrete-time values by an interpolation formula. The accuracy is limited by quantization error. However, this faithful reproduction is only possible if the sampling rate is higher than twice the highest frequency of the signal. This is essentially what is embodied in the Shannon-Nyquist sampling theorem.
Since a practical ADC cannot make an instantaneous conversion, the input value must necessarily be held constant during the time that the converter performs a conversion (called the conversion time). An input circuit called a sample and hold performs this task—in most cases by using a capacitor to store the analog voltage at the input, and using an electronic switch or gate to disconnect the capacitor from the input. Many ADC integrated circuits include the sample and hold subsystem internally.
[edit] Aliasing
All ADCs work by sampling their input at discrete intervals of time. Their output is therefore an incomplete picture of the behaviour of the input. There is no way of knowing, by looking at the output, what the input was doing between one sampling instant and the next. If the input is known to be changing slowly compared to the sampling rate, then it can be assumed that the value of the signal between two sample instants was somewhere between the two sampled values. If, however, the input signal is changing rapidly compared to the sample rate, then this assumption is not valid.
If the digital values produced by the ADC are, at some later stage in the system, converted back to analog values by a digital to analog converter or DAC, it is desirable that the output of the DAC be a faithful representation of the original signal. If the input signal is changing much faster than the sample rate, then this will not be the case, and spurious signals called aliases will be produced at the output of the DAC. The frequency of the aliased signal is the difference between the signal frequency and the sampling rate. For example, a 2 kHz sine wave being sampled at 1.5 kHz would be reconstructed as a 500 Hz sine wave. This problem is called aliasing.
To avoid aliasing, the input to an ADC must be low-pass filtered to remove frequencies above half the sampling rate. This filter is called an anti-aliasing filter, and is essential for a practical ADC system that is applied to analog signals with higher frequency content.
Although aliasing in most systems is unwanted, it should also be noted that it can be exploited to provide simultaneous down-mixing of a band-limited high frequency signal (see undersampling and frequency mixer).
[edit] Dither
In A to D converters, performance can usually be improved using dither. This is a very small amount of random noise (white noise) which is added to the input before conversion. Its amplitude is set to be about half of the least significant bit. Its effect is to cause the state of the LSB to randomly oscillate between 0 and 1 in the presence of very low levels of input, rather than sticking at a fixed value. Rather than the signal simply getting cut off altogether at this low level (which is only being quantized to a resolution of 1 bit), it extends the effective range of signals that the A to D converter can convert, at the expense of a slight increase in noise – effectively the quantization error is diffused across a series of noise values which is far less objectionable than a hard cutoff. The result is an accurate representation of the signal over time. A suitable filter at the output of the system can thus recover this small signal variation.
An audio signal of very low level (with respect to the bit depth of the ADC) sampled without dither sounds extremely distorted and unpleasant. Without dither the low level always yields a ’1′ from the A to D. With dithering, the true level of the audio is still recorded as a series of values over time, rather than a series of separate bits at one instant in time.
A virtually identical process, also called dither or dithering, is often used when quantizing photographic images to a fewer number of bits per pixel—the image becomes noisier but to the eye looks far more realistic than the quantized image, which otherwise becomes banded. This analogous process may help to visualize the effect of dither on an analogue audio signal that is converted to digital.
Dithering is also used in integrating systems such as electricity meters. Since the values are added together, the dithering produces results that are more exact than the LSB of the analog-to-digital converter.
Note that dither can only increase the resolution of a sampler, it cannot improve the linearity, and thus accuracy does not necessarily improve.
[edit] Oversampling
Usually, signals are sampled at the minimum rate required, for economy, with the result that the quantization noise introduced is white noise spread over the whole pass band of the converter. If a signal is sampled at a rate much higher than the Nyquist frequency and then digitally filtered to limit it to the signal bandwidth then there are 3 main advantages:
- digital filters can have better properties (sharper rolloff, phase) than analogue filters, so a sharper anti-aliasing filter can be realised and then the signal can be downsampled giving a better result
- a 20 bit ADC can be made to act as a 24 bit ADC with 256× oversampling
- the signal-to-noise ratio due to quantization noise will be higher than if the whole available band had been used. With this technique, it is possible to obtain an effective resolution larger than that provided by the converter alone