# Why only odd harmonics after non-linear amplification?

Why do I get only odd harmonics appearing? This not only happens at saturation of the transfer curve, but also in the linear portion of the curve.

I make a input signal that has too high power that it will saturate the transfer curve. The transfer curve below is for Amplitude modulation, I also have a transfer curve of the output phase change for each input signal level.

This is basically how I do it

My input signal, x(t), is the sum of two sine waves


For each point on the transfer curve above I apply Amplitude and Phase modulation by using this array

modulating_phasor[] = (power_out / power_in) * exp(i*phase_deviation)


Then I look at my input signal and lookup where its value matches the input power of the transfer curve and use that location in the modulating_phasor array

output_signal[] = x[t] * modulating_phasor[location]


This makes the output signal complex array so I take the absolute value and for parts that should be negative, I multiply that location on by -1 by finding the correct location on input signal.

I cant upload my code... but you get the idea of what I am doing right?

Now this is my output and no matter what my input level on my signal is i.e. whether I am in the non-linear part or linear part, I always get odd harmonics. I've also tried a different transfer curve. Only get odd again.

• You say that "the input is the sum of two sine waves"; but the "time domain input signal" plot looks like AM, and the "time domain input signal spectrum" looks like a single sine wave. Can you clarify? – MBaz May 23 '19 at 14:59
• This code is this f = (200:1:201); for c=1:length(f) sinusoids(c,:) = cos(2*pi*f(c).*n) ; end signal=sum(sinusoids); – Natalie Johnson May 23 '19 at 15:10

An ideal amplifier would have a transfer characteristic of $$f(x)=Ax$$: the input signal comes out amplified and otherwise undistorted. A real amplifier will deviate from this and go into saturation. We could model it by a polynomial $$f(x) = \sum_{n} a_n x^n$$. Now, what we would still expect is that the amplifier treats positive and negative values the same way, i.e., it is symmetric in the sense that $$f(-x) = f(x)$$. This leads to the requirement $$a_n = 0$$ for all even $$n$$.

Now, one can show that raising a sinusoidal with frequency $$f_0$$ to the $$n$$-th power generates harmonics up to order $$n$$, however, preserving their oddity:

• $$n = 2$$ generates frequencies 0 and $$2f_0$$
• $$n = 3$$ generates frequencies $$f_0$$ and $$3f_0$$
• $$n = 4$$ generates frequencies 0, $$2f_0$$ and $$4f_0$$
• $$n = 5$$ generates frequencies $$f_0$$, $$3f_0$$ and $$5f_0$$

and so on. It's a consequence of the binomial theorem and quite easy to show (see, e.g., here).

In short: A transfer function that is odd symmetric will generate only odd harmonics. This is why you are seeing only those.

I don't completely understand what you're doing with the lookup part, but if you're multiplying this transfer function in the time domain, then I think it makes sense that you're adding harmonics. If you look at the frequency response of a triangular wave (https://en.wikipedia.org/wiki/Triangle_wave), it is made up of decaying odd harmonics, so even if x(t) were constant, I'd expect you'd still see the harmonics. If you set x(t) to a constant, you could see what the frequency response of the transfer function itself is. I believe applying a triangular window function (https://en.wikipedia.org/wiki/Window_function#Triangular_window) would have a similar effect.

Your question is a bit confusing (see my comment), but I'll mention here some general properties of non-linear systems that might be relevant.

The simplest way to characterize the response of a memoryless non-linear system is with a power series. If the input is $$x(t)$$, then the output is $$y(t) = a_0 + a_1 x(t) + a_2 x^2(t) + a_3 x^3(t) + \ldots$$ where the coefficients $$a_i$$ depend on each particular system.

Systems such as amplifiers that have a linear region around 0, but then saturate, typically have small or zero $$a_0, a_2, a_4,\ldots$$ and relatively large $$a_1, a_3, a_5,\ldots$$. Then, if the input is $$\cos(2\pi f_0 t)$$, the output has terms of frequency $$f_0$$, $$3f_0$$, $$5f_0$$, etc. This may explain what you are seeing.

If the input is the sum of two sinusoids of frequencies $$f_0$$ and $$f_1$$, then you'll see terms with the sum and difference of the frequency, some of first order: $$f_0+f_1$$, $$f_0-f_1$$, and some of third order: $$2f_0 \pm f_1$$, $$2f_1 \pm f_0$$, etc. These are called "intermodulation products".

If the input is an AM signal, then you get even more complicated interactions. However, you can derive them all from the power-series model above, with a bit of algebra and trigonometry.

• Using this method doesn't allow applying non linear phase modulation. Basically I needed to create a modulating AM and PM phasor that amplifies each point of the input signal. The phasor is built from the amplifier transfer curves. – Natalie Johnson May 23 '19 at 15:14
• What I see in your plots is an AM input and a clipped AM output. The power-series model explains why you see odd harmonics in that case. I don't understand the non-linear phase part of your question; I'd suggest writing the equations or inlining your code to make yourself clearer. – MBaz May 23 '19 at 15:29