I have a question regarding generating a time-domain noise from the power spectral density (PSD), this was addressed in this question (How to generate time-series from a given one-sided PSD?) but I have an additional inquiry.

I am reading from the book RF Analog Impairments Modeling for Communication Systems Simulation: Application to OFDM-based Transceivers, which basically addresses generating a time-domain noise for modeling purposes, which states that

$$n(t)=\Re\left[\operatorname*{IFT}\left\{\sqrt{\frac{\operatorname*{PSD}(F)}{2}}e^{j\phi(t)}\right\}\right],$$ where IFT is inverse Fourier transform. This equation is consistent with the previous answer to the question above.

How do we do that generation?
Though it is mentioned in many textbooks that PSD alone is not enough to characterize noise and the probability density function (PDF) is a must to complement the information of the PSD, n other words, same PSD can represent many distributions like Gaussian or Poisson.

In my application for example I'd like to generate white shot noise which is Poisson distribution, where is the PDF information in the process of generating the noise in the time-domain.

  • $\begingroup$ "Poission Distributed" and "Where is the PDF?": doesn't "Poisson" answer exactly that? $\endgroup$ Commented Oct 11, 2023 at 13:00
  • $\begingroup$ I am sorry I don't get your comment, my question is, at which step the PDF information was used to generate the time-domain noise from this given procedure. $\endgroup$ Commented Oct 11, 2023 at 22:29

1 Answer 1


This is a difficult problem.

Creating noise with a specific PSD (Power Spectral Density) is straight forward enough (as you already described): create a magnitude spectrum that's the root of the PSD and add a random phase that's uniformly distributed on $[0,2\pi]$.

However, by virtue of the Central Limit Theorem, you will almost always end up with a Gaussian distribution (PDF) in the time domain.

Controlling both: PDF and PSD is difficult and not always possible. For example a Poisson distributed variable is always positive, so you are going to have large amount of DC.

In order to change the PDF for a given PSD you need to optimize the phase spectrum but the relationship between PDF and phase spectrum is rather complicated. The methods that I have seen are typically iterative:

  1. Create a start point in time
  2. Do an FFT and apply the magnitude target to the current phase, i.e. $X_{m+1}[k] = \sqrt{\text{PSD}[k]}\frac{X_m[k]}{|X_m[k]|}$
  3. Go back to the time domain and evaluate and correct the PDF, i.e. $x_{m+1}[n] = \text{adjust_pdf}(x_m[n])$
  4. Go back to step 2 and repeat until you have hit a target or it stops getting better

Target can be expressed in maximum error in the magnitude spectrum or the PDF or both. This is based on the hope that the phase spectrum will somehow converge to produce the PDF that we want.

The tricky part here is obviously $\text{adjust_pdf}()$ which very much depends on the target distribution. For example, if you want to create a very low crest factor signal, you simply clip the time domain signal.

Doing this for a Poisson distribution is more difficult particularly since it's a discrete distribution and all time values are positive integers. You have to round after the inverse FFT which may already destroy your magnitude and phase spectra completely (especially for low $\lambda$).

There may be ways to deal with that, but this will require some serious research and experimentation.

  • $\begingroup$ Thanks, Do you mean the PDF I will get is Gaussian because I am adding many independent sinusoids with random phase which is a typical Central limit? I will try to search more indeed. $\endgroup$ Commented Oct 11, 2023 at 22:38
  • 1
    $\begingroup$ Yes, that's actually a very good explanation of what's happening. ! $\endgroup$
    – Hilmar
    Commented Oct 15, 2023 at 12:11

Your Answer

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

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