2

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);


    loglog(f_range,sqrt(pxx_white./(2*pi)),'k')
    hold on
    loglog(f_range,sqrt(pxx_color./(2*pi)),'r')

end

xlabel('Frequency (Hz)')
ylabel('RPSD (unit/Hz^(1/2))')
legend('white','color')
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.

Peter K.
  • 25,714
  • 9
  • 46
  • 91
Ba5o
  • 61
  • 3
  • 1
    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. – Dilip Sarwate Oct 25 '18 at 14:30
  • 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. – Ba5o Oct 25 '18 at 14:55

1 Answers1

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.

Ed V
  • 785
  • 1
  • 5
  • 9