Aliasing and Super-Nyquist Theorem

I probably understand aliasing better than any person alive. When I was at Credence I developed a formula to calculate where in a spectrum aliases would appear. While at Nextest I invented a technique for finding the true frequency of any aliasing waveform which allowed me to use a 33MHz mini-tester to measure frequencies into the hundreds of Megahertz. In fact there is no limit to the applicability of this technique, only the tester comparator bandwidth was the limiting factor.

Aliasing occurs when frequency components of a sound go higher than HALF THE SAMPLING RATE, also known as the Nyquist Limit.

Super-Nyquist theorem is a term I coined to denote use of frequencies above the Nyquist limit. Many people believe that any tones above the Nyquist Limit are lost forever or hopelessly irreconcilable with DSP theory, but Super-Nyquist Theorem says no. The limit is not Fs/2, or even half the bandwidth of Fs. Nope, the limit defined as The Bullard Limit is (N/2)^sample_sets, which is not the same as Fs/2. If you sample once then your Bullard Limit, the number of frequencies you can see is N/2, whatever frequencies they actually are is not connected to Fs. If you sample twice at two orthogonal frequencies you have a Bullard Limit of (N/2)^2. If you sample with three orthogonal frequencies your Bullard Limit is (N/2)^3. If you sample with four orthogonal frequencies your Bullard Limit is (N/2)^4. You simply have to be able to understand how Super-Nyquist Theorem works. Stick around and learn and you will be among the few who understand it.

In this experiment I recorded the top 6 keys of April's piano at an 11KHz sampling rate.

Hit the play button on the controller to hear it.

6 notes sampled at 11KHz

Next I downsampled the sound to a 5KHz rate. That means that any sound over 2.5KHz will alias, making a lower sound. You won't believe your ears!

6 notes re-sampled at 5KHz

Remember, this is the same sound as the first one, just resampled.

Another example

In this experiment I recorded a whistle rising in pitch with a sample rate of 11KHz. All of the components of the sound are lower than half of the sample rate (5.5KHz).

Hit the play button on the controller to hear it.

Whistle sampled at 11KHz

The next sound is the same whistle as above but resampled at 7KHz. This means that the Nyquist frequency is around 3.5KHz, any frequencies higher than that will alias down as lower tones. In this sound you will hear not only the whistle rising in pitch, but you will also hear another component decrease in pitch. That component was in the original whistle, but is now aliasing, so as the whistle rises, the pitch of this component falls.

Hit the play button to hear it.

Whistle resampled at 7KHz

Here is another animated GIF that shows how aliasing works. In this animation N (the number of samples) is 16, and M (the number of cycles) increases from 1 through 64. With an N of 16 you really can't see any amplitudes in the spectrum higher than bin 8. However, the amplitude DOES continue on up above bin 8 (shown here as Fs/2) which causes an amplitude of exactly the same value (AKA an alias, shown here as a dashed arrow) to appear in one of the bins in the Nyquist Band (bins 0 through 8) according to Dan's Rules. By the way, aliasing doesn't stop once the signal goes above 4Fs as I show here, it goes on forever, however I really didn't have enough patience to make this animation go on forever!

And here is another animated GIF that shows how aliasing works with a Multi-tone. In this animation N (the number of samples) is 32, and M (the number of cycles) increases from 1 through 32. But now there is another tone, the third harmonic (M*3) which tends to square up the waveform. Remember that a squarewave is simply a sinewave with odd harmonics added in at the ratio of 1/harmonic_number. In this case I only add the third harmonic, which I set to one third the amplitude of the original wave. Now when the main signal moves one bin up, the third harmonic moves three bins up! That means it will alias long before the main wave. Eventually the third harmonic zooms right off my chart, but I keep track of the alias as it bounces around in the Nyquist Band between DC and Fs/2 (or N/2 if you prefer). Notice what happens when M=8, 16, 24 or 32, the amplitudes go nuts because the alias of the third harmonic falls right on top of the amplitude of the main wave. This causes faulty amplitude readings (watch the waveform graph at these values), this is the real reason you want to avoid using an M that has common factors with N.

Here I added sound to that animation. I set Ft to 440 Hertz (at M=1) which makes the third harmonic 1320 Hertz. The sampling frequency (Fs) is set to 14.08KHz. Watch and listen as the tones alias back and forth in the Nyquist Band.

Click the Play button to see and hear it.

Movies can alias too, the most obvious example is on the old western movies when the wagon wheels appear to be going backwards. The wheels are turning faster than half the shutter speed of the movie camera, so the wheels appear to go backwards. The wheels will go forward again if they speed up to above the shutter speed.

Here is a nice apps note that I wrote for Nextest fully explaining aliasing.