Distorted cosine wave with noise

The Bullard Harmonic Solution

Published on October 7, 2019

Copyright © Dan P. Bullard

As I have pointed out again and again and again, the Harmonic Signature of a distorted wave is determined by the angle at which the wave impacts the distortion. This is Law #2 in the Bullard Laws of Harmonics:

The Harmonic Signature is the result of the angle where the sinusoid impacts the distortion as predicted by the Bullard Harmonic Solution.

In my book Distortion in chapter 3, I let you follow along as I deduce the Bullard Harmonic Solution. In chapter 4, which deals with zero crossing distortion, I validate it again, but we learn something interesting: The Bullard Harmonic Solution cannot predict the harmonic signature based on the shape of the distortion, because it only works with a single angle. I wish I could have devised a formula that covers it all and I make some suggestions in the book how it might be done but sadly, I doubt that it can ever happen because while the Bullard Harmonic Solution can predict the amplitudes of the harmonic signature, the one thing that it cannot tell you are the phases of the individual harmonics. Right away that means that the Bullard Harmonic Solution cannot tell you about the harmonic signature of symmetrical distortion, because in symmetrical distortion, the Even harmonics cancel each other out because they are in opposite phases. So while I do give you a method for adding two angles into a Bullard Harmonic Solution formula, it really doesn't do you much good because the phases of two distortions are unknown, they may add, they may subtract, it's impossible to tell because other than doing an FFT, I have not yet figured out a way to extract the phases of a complex wave, and I doubt it will ever happen.

In a similar way, I have trouble with any distortion that is over a few samples wide. The Bullard Harmonic Solution only deals with one angle, which implies that we are simulating a glitch in the transfer function of the "device" that we are simulating. For example, here is a Bullard plot of 4% asymmetrical zero crossing distortion just like the one I start chapter 4 with in Distortion (and Harmonics).

You can see in the center of the wave, right near the zero crossing is a nasty distortion, and you can also see how the harmonics conspire to cause that distortion to happen where it does. On the far left you see, in my normal color code, the phases of the harmonics. This is a fun pattern with the fundamental at 0 degrees (always) then 0, 0, 180, 180, 0, 0, 180, 180, 0, 0, 180, 180, 0, 0, 180, 180, 0, 0, 180, 180, 0, 0, 180, 180, 0, 0, 180, 180, 180, (that was the 30th harmonic in case you lost count), 0, 0, 180, 180, 0, 0. Notice that they follow Daver's Law, that all the harmonic phases of a distorted cosine wave are either 0 or 180 degrees. This was derived from Law #5 of Bullard Laws of Harmonics, but since that specifies that there are four possible phases of a sine wave, it's actually easier to deal with cosine waves, as you now have only two values to worry about instead of four.

Now, in chapter 4 I try to prove that the Bullard Harmonic Solution applies to zero crossing distortion as well as it applies to peak clipping distortion (which is pretty much a perfect match), but it doesn't go as cleanly, as you can see below.

Here I simulate what the Bullard Harmonic Solution would be showing us by generating a short lived glitch at 4.6 degrees, the same angle as the sharp edge in the above zero crossing distortion. The problem is that neither the harmonic signature nor the phases line up all that well. For example, in the zero crossing example above, the first real null (zero amplitude) happens at the 28th harmonic, but in the glitch example immediately above, the first null happens at 18th harmonic. In fact, in this one, the 28th harmonic has a lot of amplitude left in it. Plus the phases don't match very well. While the pattern seems to hold through the first few harmonics, it all goes awry at the 20th harmonic where the first example goes to 180 degrees, but in the second example, the 20th harmonic stays at 0 degrees with the 18th and 19th harmonics. The triplet of 180s that happens in the first plot at harmonics 28, 29 and 30, goes 0, 180 and 180 in the second example. But you can clearly see how the harmonics are lining up to aid in the creation of the glitches in the second example. In the first example it's a bit of a compromise because of the flatness of the distortion. Glitches are easy to make, wide, flat distortions are quite a bit harder.

So, does this invalidate the Bullard Harmonic Solution? Hell no! If instead of just assuming that the distortion is defined by the sharp edge at 4.6 degrees, I try finding the middle of the distortion, say 3.7 degrees I get this:

It might be hard to see that this is a better match, but look for the first null in the harmonics. Here it happens at the 24th harmonic, where it was at the 28th in the zero crossing distortion and the 18th harmonic in the 4.6 degree simulation. So the first null in my harmonic signature is only 4 harmonics away from where it's supposed to be, not 10 harmonics (28-18). Not just that but notice that the triplet of 180 degree phases happens like it did before, just 4 harmonics earlier, instead of being changed to a triplet of 0s.

So if you look at these plots you can tell why using the average phase is a better bet when using the Bullard Harmonic Solution. Now, while it works darn well with peak clipping distortion it doesn't work as well when you get away from the peaks. And of course it doesn't work at all for Even harmonics in symmetrical distortion because, while the FFT can extract the phases of the distorted wave, the Bullard Harmonic Solution just takes a single angle and tries to show the amplitudes only of the spectrum for a single distortion, not a wide distortion. As I point out in the books, I'm happy to let someone else come up with a better solution, but I suspect that the FFT is the best solution. In fact really, the whole point of the Bullard Harmonic Solution was a way to show that the angle is what defines the harmonics signature. It really doesn't have any other function. It's easier to do an FFT than to use the Bullard Harmonic Solution, and more accurate too. So, while a brilliant insight, it's only an estimation to make a point, something that nobody has ever deduced before. And once again, you are welcome.