МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПРОЦЕССОВ
Методические указания к лабораторной работе №2 по дисциплине
"Моделирование информационных процессов и систем"

[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]


3. ОЦЕНКА КОРРЕЛЯЦИОННОЙ ФУНКЦИИ ПО РЕАЛИЗАЦИИ СЛУЧАЙНОГО ПРОЦЕССА.

В результате моделирования (по любому алгоритму) мы получили реализацию из N отчетов. Для того, чтобы убедиться в правильности использованного алгоритма воспользуемся оценкой корреляционной функции по следующей формуле (в которой учитывается нулевое математическое ожидание):

, при (4)

Для отрицательных m можно воспользоваться симметричностью корреляционной функции.

На следующем фрагменте приведена программа моделирования реализации дискретного гауссовского шума с функцией корреляции вида . В программе, используя соотношение (4), по получившейся реализации производится оценка корреляционной функции.

Программа 2 ( исходный файл lect2_2.cpp , выполняемый файл lect2_2.exe )

#define N 3000
#include "model.h"
#include <math.h>
float D = 1, a = 0.1;
float x[N],e[N];
float r[500]; 	        // массив для оценки корреляционной функции
int N_realiz ;		// длительность реализации стационарного 
              		// фрагмента получившегося случайного процесса
main()
{
  float   c[500], aa;
     int   n, P, m, k;
	      for(n = 0; n < N; n++)
	      e[n] = gauss(0, 1);
	      P =  2. / a ;
	      for( k=0; k<= P ; k++)
	       { if (k!= 0)
		          c[k]= sqrt(D)/sqrt(PI*a) *sin (a*k )/k ;
		           else c[k] = sqrt( D )/sqrt(PI*a )* a;	       
}

	     for (n = 0; n < N; n++)
	     {  x[n] = 0.0;
		  for(k= -P; k <= P; k++)
		     {
			if(k < 0) aa = c[-k];
			else aa = c[k];

		       if(((n-k)>= 0) && ((n - k) < N ))
			       x[n] = aa * e[n-k] + x[n];
		     }
	      }
	     for(n=0; n < ( N - 2*P); n++)
	       x[n] = x[n + P];
	       N_realiz = N - 2*P;
                for(m=0; m<500; m++)
	{   r[m] = 0.0;
	     for (n = 0; n <(N_realiz -m-1); n++)
	     r[m]=r[m]+1./(N_realiz-m)*x[n] *x[n+m]; 
                      
 }
      Init_graph();
      graf_1("realizasia random process ",x, 0, 499);
      graf_1("function  korration  sin x / x ", r, 0, 499);
      Close_graph(); 
}

[Титульная страница | Оглавление | Предыдущая страница | Следующая страница ]