В GNU Octave (аналог Matlab) я генерировал приближение к частотно-ограниченному белому шуму, как сумму синусов со случайными фазами.
Вот код:
Код:
   ## -*- texinfo -*-
   ## @deftypefn {Function File} {@var{out}=} noise (@var{t}, @var{phi})
   ## 
   ## Generates the periodical noise signal as sum of sine waves with equal
   ## amplitudes, but random phases. Number of waves are calculated from
   ## length of @var{phi} vector. Noise period are equal to 2*pi.
   ##  
   ## @end deftypefn
   
   function OUT = noise (t, phi)
     temp = 1/2;
     N = length (phi);
     for i = 1:N
       temp = temp .+ 1.*sin(i.*t .+ phi(i));
     endfor
     OUT = temp;
   endfunction
Второй аргумент у функции noise это вектор случайных чисел, равномерно распределённых от нуля до двух пи радиан. В самом начале вашей программы нужно создать вектор случайных фаз, а потом вызывать с ним noise вот так:
Код:
@(t) noise (t, phi);
fplot (@(t) noise (t, phi), [0 2*pi]);
Ширина спектра задаётся с помощью размера вектора случайных фаз, сколько в нём членов, столько и гармоник.