I am not sure if this question will be a little off-topic on this forum, that I will give it a try anyway, since it implies signal process arguments.

By using MATLAB, I'm on my way to generate a turbulent wind field. This wind field is generally a Gaussian process with all the time series having 0 mean value and unitary standard deviation. I will shortly introduce you to the problem:

1) Discretize the space in Y-Z plane in a certain number of points Ny, Nz;

2) Discretize the time scale (generally 600s) with a proper time sample, dt = 0.15;

3) Calculate distance among points;

4) Generate only positive frequency vector f = (0:length(t)/2-1)*df;

5) Generate power spectra

$$ S_{ii}(f)=\frac{4\sigma_{ii}^{2}\left(L_{ii}/U\right)}{\left(1+6f\left(L_{ii}/U\right)\right)^{5/3}} $$ where $$ ii = u,v,w\,\, (speed\,\,components\,in\,x\,y\,z\,direction)$$ $$ U = const $$ $$ L_{ii} = const $$

6) Generate coherence matix

$$ Coh_{u}=\exp\left(-12\sqrt{\left(\frac{f*dist}{U}\right)^{2}+\left(0.12\frac{dist}{U}\right)^{2}}\right) $$ $$ Coh_{v,w}= \exp\left(-12\, dist\,\frac{f}{U}\right) $$

7) Generate random numbers with 0 mean and 1 std

nn_u = complex(normrnd(0,1,size(H_u)),normrnd(0,1,size(H_u)));
nn_v = complex(normrnd(0,1,size(H_v)),normrnd(0,1,size(H_v)));
nn_w = complex(normrnd(0,1,size(H_w)),normrnd(0,1,size(H_w)));

8) Cholesky factorization of the Coherence matrix (retrieves lower triangular factor)

9) Generate time series

$$ U = [real(fft(Coh_{u}*nn_{u}))\,\,imag(fft(Coh_{u}*nn_{u}))] $$ $$ V = [real(fft(Coh_{v}*nn_{v}))\,\,imag(fft(Coh_{v}*nn_{v}))] $$ $$ W = [real(fft(Coh_{w}*nn_{w}))\,\,imag(fft(Coh_{w}*nn_{w}))] $$

Now, after this consistent theorethical introduction, I can move towards the real matter: when calculating the standard deviations for eac time series (u,v,w components), they don't match the expected values $$ \sigma_{u} = 1 $$ $$ \sigma_{v} = 0.8 $$ $$ \sigma_{w} = 0.5 $$ because of several reasons:

  • space discretization introducing smoothing effects
  • time sample period
  • power spectrum only within a short frequency range

Btw, I would like to, let's say, scale the time series in order they to be still Gaussian variables with zero mean and a standard deviation better approaching the expected values.

Do you have any hint?


Your Answer

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

Browse other questions tagged or ask your own question.