# Phase Modulation and Intermodulation Anomaly ? (Spectrum plots inside - **Updated**)

I have a MATLAB script for modelling a two tone signal (a sum of two sinusoids) going through a non linear transfer function (such as an amplifier). The amplitude of a signal is amplified non linearly, and also the phase is modified depending on the input power of the signal.

The two sinusoids used are at 20 Hz and 21 Hz.

With just amplitude modulation, the output spectrum looks as expected (first two plots) Its non linear so 3rd order and fifth order intermods can be seen around the frequency of the two sinusoids, aswell as harmonics. I know the amplitude modulation is correct because I obtain the correct third order intercept for the amplifier model. Upper graphs are in volts, lower graphs in dB Watts However, when phase is adjusted depending on the input signal power, the spectrum looks like this... and my fifth order intermods are lost (again upper graph in volts, lower graph in dBW) I have an idea but I am not confident with the explanation of this and was hoping someone with a trained eye can assist or offer advice

How its coded --> My script looks at each point on the input signal, reads its amplitude and adds a phase adjustment to it during reconstruction of the signal, as shown in the phase transfer plot below (which shows the effect the equipment will have on any signal going through it). So if the amplitude (input power) of the signal is -70 dBW then a phase of 0.01 radians is added to the reconstructed signal at that exact point... then it looks at the next sample point and adds a phase to that. So if the amplitude of the wave is at -70dBW then the reconstructed waveform is cos(2*pi*f + 0.01). Adding 0.01 in phase is an I and Q modulation when cos(2*pi*f + 0.01) is written with the trig identity to get the IQ form.

Confident I have not made any mistakes with unit conversion (again because third order intercept is correct). Look at the input signal, output signal and the phase deviation added to the signal in time domain... it looks good • FM tone modulation, along with aliasing, maybe? It depends on how you are adjusting the phase. – Andy Walls May 15 '18 at 0:54
• Check to be sure your implementation of the amplitude-dependent phase shift is using the correct units. For example, maybe the data is in degrees vs. dB, and you accidentally implemented it as radians vs. dB. Or post the code used to implement it. – Ill-Conditioned Matrix May 15 '18 at 1:17
• Updated first post I reconstruct the orignal signal with waveform(a) = cos(2*pi * 20 * n(a) + phase_tc_int(idx(a) ) + cos(2*pi * 21* n(a) + phase_tc_int(idx(a)) – njk7 May 15 '18 at 6:50
• It adds a phase adjustment depending on what the current input signal is and then reconstructs the signal with the phase adjustment. This is what what idx(a) array references . n(a) is the time vector. **Plot of the transfer function of input amplitude and what the phase will be changed to has been added to first post * – njk7 May 15 '18 at 8:28
• This sounds like AM-PM conversion? – Robert L. May 15 '18 at 11:29