Формирование случайных процессов
Сформировать случайный процесс с заданной корреляционной функцией можно, если:
- сначала сформировать случайный процесс, являющийся нормально распределенным белым шумом,
- а затем “пропустить его через некоторое динамическое звено (формирующий фильтр)”.
На выходе такого звена получается нормально распределенный случайный процесс с корреляционной функцией, вид которой определяется типом формирующего фильтра.
Белый гауссовый шум в MatLab образуется при помощи процедуры randn.
Для этого достаточно задать дискрет времени Ts,образовать с этим шагом массив (вектор) tмоментов времени в нужном диапазоне, а затем сформировать по указанной процедуре вектор-столбец длиной, равной длине вектора t.
Например
>> Ts=0.01;
>> t=0:Ts:20;
>> x1=randn(1,length(t));
>> plot(t,x1),grid;
>> title('Gaus(T=0.01c)');
>> xlabel('t, c');
>> ylabel('X1(t)')
Соответствующий процесс имеет вид:
Для другого дискрета Ts=0.001с имеем
>> Ts=0.001;
>> t=0:Ts:20;
>> x2=randn(1,length(t));
>> plot(t,x2),grid;
>> title('Gaus Ts=0.001 c');
>> xlabel('t, c');
>> ylabel('X2(t)')
Создадим дискретный формирующий фильтр второго порядка с частотой собственных колебаний ω0 = 2π рад\с =1 Гц и относительным коэффициентом колебаний затухания ξ=0.05 по выражениям (2) коэффициентов:
>> om0=2*pi;dz=0.05;A=1;oms=om0*Ts;
>> a(1)=1+2*dz*oms+oms^2;
>> a(2)=-2*(1+dz*oms;
>> a(3)=1;
>> b(1)=A*2*dz*oms^2;
Пропустим образованный процесс x1 через созданный формирующий фильтр:
>> y1=filter(b,a,x1);
Построим соответствующий график:
Аналогичные операции произведем с процессом x2(t)
>> x2=randn(1,length(t));
>> Ts=0.001;
>> om0=2*pi;dz=0.05;A=1;oms=om0*Ts;
>> a(1)=1+2*dz*oms+oms^2;
>> a(2)=-2*(1+dz*oms);
>> a(3)=1;
>> b(1)=A*2*dz*oms^2;
>> y2=filter(b,a,x2);t=0:Ts:20;
>> plot(t,y2),grid;
>> title('procedure (T0=1;dz=0.05;Ts=0.001)');
>> xlabel('t, c');
>> ylabel('Y1(t)')
Как видим, на выходе формирующего фильтра действительно образуется случайный колебательный процесс с преобладающей частотой 1 Гц.
Спектральный и статистический анализ
Основные понятия
Основная задача спектрального анализа сигналов – выявление гармонического спектра этих сигналов, т.е. определение частот гармонических составляющих сигнала (выявление частотного спектра), амплитуд этих гармонических составляющих (амплитудного спектра) и их начальных фаз (фазового спектра).
В основе спектрального анализа лежит теория Фурье о возможности разложения любого периодического процесса на счетную сумму отдельных гармонических составляющих.
Процедуры fft иifftосуществляют преобразования заданного вектора, соответствующие дискретномупрямому (fft – Fast Fourier Transformation)и обратному (ifft – Invers Fast Fourier Transformation)преобразованиям Фурье.
Обращение к этим функциям
y=fft(x,n); x=ifft(y,n)
приводит к формированию вектора yв первом случае, и вектора x - во втором, по формулам:
(4)
где n – число элементов заданного вектора x; j –мнимая единица.