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

enter image description here

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)

enter image description here

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). enter image description here

Look at the input signal, output signal and the phase deviation added to the signal in time domain... it looks good

enter image description here

  • $\begingroup$ FM tone modulation, along with aliasing, maybe? It depends on how you are adjusting the phase. $\endgroup$ – Andy Walls May 15 '18 at 0:54
  • $\begingroup$ 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. $\endgroup$ – Ill-Conditioned Matrix May 15 '18 at 1:17
  • $\begingroup$ 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)) $\endgroup$ – njk7 May 15 '18 at 6:50
  • $\begingroup$ 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 * $\endgroup$ – njk7 May 15 '18 at 8:28
  • $\begingroup$ This sounds like AM-PM conversion? $\endgroup$ – Robert L. May 15 '18 at 11:29

A couple of points to think about:

1) Looking at the scales of your FFT plots, it appears that the fundamental is around -25 dBW, whereas the 5th harmonic is around -125 dBW. This is a very large difference, implying the system is only weakly nonlinear. In practice you'd have problems detecting the 5th harmonic even without the phase modification just due to thermal noise. If you change your scales to have a dynamic range of say 100 dB, you would see the two plots look nearly identical.

2) The phenomenon you are modelling looks to be AM-PM conversion. Under this interpretation, it can be thought of as "adding" some phase noise to the output signal. (The tails of the phase noise spectrum would droop down and mask weaker signals.) This could be an explanation for why the result looks like a noise floor.

3) A sanity check could be-- what does the spectrum look like when the peak phase shift is halved? Or cut to 1/4th, etc? Does the noise floor drop by some commensurate amount?

  • $\begingroup$ 1) Yes, but this is purely theoretical at the moment and I intend to add noise effects such as thermal so I have a representative noise floor. 2) Okay I will look into this, thanks. 3) I divided the phase deviation array by 10, 100 and then 1000 and the noise floor dropped accordingly. $\endgroup$ – njk7 May 15 '18 at 13:02
  • $\begingroup$ I was thinking that since I am adding phase at individual sample points to the sinusoids, they are no longer purely sinusoidal, so during fft decomposition the signal must be composed of extra sinusoids (other than the 2 fundamentals), this is what leads to extra frequencies appearing in the spectrum and looking like a noise floor? $\endgroup$ – njk7 May 15 '18 at 13:02
  • $\begingroup$ @njk7 That is correct. This is the point I was trying to make about phase noise-- you take a pure sine wave and it is an impulse in the frequency domain. You add some phase modulation to the sinusoid, and it is no longer an impulse. Combine this effect with the intermodulation, and you get spectral content at basically all frequencies now. $\endgroup$ – Robert L. May 15 '18 at 13:43
  • $\begingroup$ In addition, look at the AM-PM conversion reference that @Carlos Danger provided (if you have access). The envelope is typically used to determine the amount of AM-PM, not the instantaneous amplitude. $\endgroup$ – Ill-Conditioned Matrix May 15 '18 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.