I need to model a noise with a given PSD. To do this, I am starting from a white gaussian noise (WGN) and feed with the WGN a transfer function, which will act like a filter. In fact,it's easy to prove that if you choose a PSD of the white noise equal to $1 {\rm unit}^2/{\rm Hz}$,then the output is $ H(f) \times 1$. Thus $$ PSD =|H(f)|^2 $$

Gain in the transfer function acts properly, translating the PSD up or down. The problem is with the zeros and poles. No matter how I create the transfer function (1st, 2nd, or higher order), the PSD will be flat in the region of interest $f_{\rm range} = [10^{-6}, 10] {\rm Hz} $

The transfer function is $$ H = \frac{10^{-11}(s+2 \times 10^{-3})^2}{(s+10^{-9})^2}; $$

It is easy to build in Simulink band limited white noise with PSD = 1 (choosing sample and power).

enter image description here

Evaluate then the output of the TF in matlab with this

%% PSD estimation
for i =[1e-8 1e-7 1e-6 1e-5, 1e-4, 1e-3, 1e-2 1e-1 1]
    f_range = linspace(i,i*10,1000);

    [pxx_white] = pwelch(white,[],[],f_range);

    [pxx_color] = pwelch(color,[],[],f_range);

    hold on


xlabel('Frequency (Hz)')
ylabel('RPSD (unit/Hz^(1/2))')
grid on

Now my question is: Am I doing something theoretically wrong? Maybe I can't reach PSD in the low frequency region due to the simulation time? I simulate for 10000 s (1e-4 Hz).

In black: white noise PSD, in red: flat the colored noise PSD, the curve is the plot of the tf.

  • 1
    $\begingroup$ Continuous-time white noise (which will give rise to a PSD proportional to $|H(f)|^2$) is quite different from discrete-time white noise, one specific case of which is a sequence of $N(0,1)$ random variables. Read this answer and specifically the comments thereafter for some details. $\endgroup$ Oct 25, 2018 at 14:30
  • $\begingroup$ Thank you for the aswer. Sorry, I confused the notation. The model works with the Band-Limited White Noise suitable for continuos-system . However my problem is not whit the white noise but with the result. $\endgroup$
    – Ba5o
    Oct 25, 2018 at 14:55

1 Answer 1


Since you said you wanted the frequency range to be from 1 $\mu$Hz to 10 Hz, I ran my simulations with 20 Hz sampling frequency and did 100 32k FFT PSDs. My results looked like what you have. So I lowered the sampling frequency to 0.2 Hz. The sims started at 0 s, ended at 163835 s, with $\Delta$t = 5 s. The WGN was simply unit normal. My results are shown below:

Transfer function test

Hope this helps.


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.