1
$\begingroup$

I am attempting to add phase noise to a modulated signal.

  • I am doing this by taking a phase noise mask (single sided 0 Hz to 1 MHz), which shows dBc values away from central value or reference value. Phase noise is decreasing as we move in frequency away from the reference point which is 0 Hz. [Top left image in the 4-plot image below]
  • I then make this double sided.
  • I convolve this phase noise plot with a spectrum of a clean complex exponential at 1 MHz, this is my oscillator for converting frequency. I think this has imparted the phase noise onto the complex exponential. [Top right image in the 4-plot image below]
    The spectrums are convolved to make a oscillator with phase noise: $\mathcal{F}(e^{j \omega t}) * \mathcal{F}( e^{j \phi(t) }) = \mathcal{F}(e^{j \omega t})* \mathcal{F}(e^{j B}) = \mathcal{F}(e^{j( \omega t + \phi(t))}) $

    where $\mathcal{F}$ is fourier transform, $ \omega$ = 1 MHz, $\mathcal{F}( e^{j \phi(t) }) $ is the double sided phase noise mask on 0 Hz, then also this can be interpreted as a bandwidth $B$ of the upper and lower sidebands of the phase noise centered on 0 Hz (the double sided spectrum in the top left plot below when not in logarithmic x-axis scale). The convolution result is the top right image, symmetric phase noise translated from 0 Hz onto my a oscillator or CW or sine wave at 1 MHz.
  • I take the Inverse Fourier Transform of this convolution to produce an oscillator in the time domain, my thought is that the phase noise is on it.
  • I then multiply my complex modulated signal (16-APSK) by this oscillator (complex exponential with phase noise) to produce an up conversion and then downconvert with a clean complex exponential with no phase noise. This should leave the phase noise on the modulated signal.
    The math now being done in time domain:

    Up-conversion using the inverse transform of the result above

    $A(m) e^{ j( \phi (m))} e^{j( \omega t + \phi(t))} $

    Down-conversion of the upconversion

    $ A(m) e^{ j( \phi (m))} e^{j( \omega t + \phi(t))} e^{-i \omega t} $

    where $A(m) e^{ j \phi (m)} $is a modulated signal

  • However I am showing results that are not like classical phase noise, which would be rotation acrcs around constellation points but it appears as an amplitude modulation? [Final constellation image]

enter image description here

  • I know this is wrong, but I stuck why. If I subtract in the time domain the clean sinusoid without phase noise and the oscillator with phase noise, I get this variation across the full time domain simulation. [Central images are the real and imag values of the oscillators in time and the bottom images are the difference]

Why is this producing amplitude variation and not phase variation? Is there another way to do this?

enter image description here

--Edit Updated constellation based on replies below--

enter image description here

$\endgroup$
1
  • 2
    $\begingroup$ I think the way I would go about generating the noisy oscillator would be to generate Gaussian noise, filter it so that it has the same spectral shape as your phase noise mask, and then add that to the phase of your oscillator, which in the absence of phase noise would be a linear ramp that wraps into the range $[0, 2\pi)$. That should give you an accurate representation of what an oscillator with phase noise behaves like. $\endgroup$
    – Jason R
    May 11, 2021 at 19:39

1 Answer 1

0
$\begingroup$

As the OP has described, the noise as shown is AM noise only as the constellation points are not changing in phase at all. A double sided spectrum with symmetric sidebands in phase with the carrier is amplitude noise:

Consider a reference carrier as 1 at angle 0 degrees for which we do the following to create sinusoidal sideband noise by adding to it a small sinuoid with with $\alpha$:

$$c_{n(am)} = 1 + \alpha cos(\omega_nt)$$

This is a real waveform which only changes in amplitude and all samples will be of zero phase (AM noise only). We can gain further insight by decomposing the cosine using Euler's Formula (of which the magnitude and starting phase of each are the two sidebands in the Fourier spectrum):

$$c_{n(am)} = 1 + \alpha/2 (e^{j\omega_nt} +e^{-j\omega_nt}) $$

However if the two sidebands were in quadrature relationship to the carrier, then for small $\alpha$ where the small angle approximation holds, the noise will be dominantly phase noise:

$$c_{n(pm)} = 1 + j\alpha cos(\omega_nt)$$

$$= 1 + j\alpha/2 (e^{j\omega_nt} +e^{-j\omega_nt})$$

For the case of noise density where the noise is relatively small so that the small angle approximation holds, the OP can simply multiply the sidebands representing the noise pattern by $j$, mapping the result to be PM instead of AM. Note from the graphics below that negating half the spectrum (for example multiplying all components in the negative half spectrum by $e^{j\pi}$ or 180°) will also accomplish converting AM to PM (to do this with an FFT use an odd number of bins, multiply all the $(N-1)/2$ upper bins by $-1$ and multiply the DC bin by j to have this come out perfectly):

AM and PM

For adding phase noise from a power spectral density in MATLAB or Octave, please see this great function with all that worked out from Alex Bur-Guy:

https://www.mathworks.com/matlabcentral/fileexchange/8844-phase-noise

$\endgroup$
9
  • $\begingroup$ Hi, I edited my plots because it was omitting that I am using complex exponentials as the oscillators, one is a clean sinusoid and one is a sinusoid with the phase noise on it. I now show my real and imag values for the clean oscillator and the oscillator which has the phase noise on it. Why I upconvert with the oscillator with phase noise and then downconver with the oscillator without phase noise I get amplitude modulation. But I tried multiplying my oscillator with phase noise by j in the time domain and also in the frequency domain but I am not getting the result as expected $\endgroup$ May 12, 2021 at 16:16
  • $\begingroup$ @Villere_DSP If you are saying that the oscillator with phase noise indeed has phase noise which is then converted to AM in the downconversion process - please update your question to show the math of your upconversion and downconversion process, and show how you confirmed the oscillator with phase noise is indeed phase noise and not AM at that point. $\endgroup$ May 12, 2021 at 17:09
  • $\begingroup$ I think based on your description that the two sidebands that you convolve in frequency are still symmetric and in phase meaning they are AM sidebands consistent with my description. If you multiply your oscillator with phase noise by j, then you are just rotating everything, the point is to multiply the phase by j (or the oscillator by j) before you add the noise. You want the noise components to be in quadrature with your signal. $\endgroup$ May 12, 2021 at 17:12
  • $\begingroup$ Yes, I see what your saying. My phase noise plot that I start with thats doubled sided on 0Hz is basically AM, this double sided spectrum is translated from 0 Hz onto my clean 1 MHz oscillator or complex exponential so in my mind the phase noise mask is on it but these are amplitude modulation sidebands and need to be applied as a phase modulation. I added the equations showing what I am doing, clearly its wrong but I dont see where I can implement a change because all my code is using complex modulated signals and complex exponential as the oscillators. $\endgroup$ May 12, 2021 at 18:38
  • $\begingroup$ @Villere_DSP Before you convolve, make the noise spectrum to be in quadrature with your signal by multiplying that signal in the time domain by j if you have the time domain signal and then convolve it in frequency as you have done. You can also negate the negative half of your spectrum if you want to do it all in the frequency domain as I described. The math I wanted to see is how you created your waveform that has the phase noise on it. You need to fix that first. $\endgroup$ May 12, 2021 at 22:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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