Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Модулі статистичної обробки аналізатора &Тензотрем&

Реферат Модулі статистичної обробки аналізатора &Тензотрем&





налізатора Тензотрем

//diplom. cpp: визначає точку входу для консольного застосування.

# include stdafx. h

# include lt; stdio. h gt;

# include lt; malloc. h gt;

//Транспонування матріциtransponse (double ** x, double ** xt)

{(int i=0; i lt; 512; i ++) (int j=0; j lt; 512; j ++)

xt [i] [j]=x [j] [i];

}

//структура complex для роботи з комплексними числами

//re - дійсна частина числа

//im - уявна частина числа

typedef struct complex

{(double real, double imag)

{= real;=imag;

} re;

doubleim;

};

//Функції роботи з комплексними числами

//умноженіеmul (complex a, complex b)

{return complex (a. re * b. re - a. im * b. im, a. re * b. im + a. im * b. re); }

//сложеніеadd (complex a, complex b)

{return complex (a. re + b. re, a. im + b. im); }

//вичітаніеsub (complex a, complex b)

{return complex (a. re - b. re, a. im - b. im); }

//обчислення ступеня чіслаpowx (double x, int k)

{res=1; (int i=0; i lt; k; i ++)=res * x; res;

}

//обчислення факторіала (intn)

{res=1; (int i=1; i lt; n; i ++)=res * i; res;

}

//розкладання синуса навряд Тейлора (doublex)

{res=0; (int i=0; i lt; 100; i ++)=powx (- 1, i - 1) * powx (x, 2 * i - 1)/fact ( 2 * i - 1) + res;

returnres;

}

//ШПФ

//Аргументи:

//mas - покажчик на масив вихідних даних

//n - розмірність масиву mas (є ступенем 2)

//y - покажчик на масив вихідних даних розмірності n

void FFT (double * mas, int n, complex * y)

{pi=3.1415926535; (n == 1)

{= amp; complex (mas [0], 0) ;;

} wn (sinx (2 * pi/n + pi/2), sinx (2 * pi/n)); w (1, 0); i=0, j=n/2 , k=0; * a0=(double *) malloc (sizeof (double) * (n/2)),

* a1=(double *) malloc (sizeof (double) * (n/2)); (k lt; j - 1)

{[k]=mas [i]; [k]=mas [i + 1]; ++;=i + 2;

} * y0=(complex *) malloc (sizeof (complex) * (n/2)); * y1=(complex *) malloc (sizeof (complex) * (n/2)) ; ( amp; a0 [0], j, amp; y0 [0]); ( amp; a1 [0], j, amp; y1 [0]); (k=0; k lt; j; k ++)

{[k]=add (y0 [k], mul (w, y1 [k])); [k + j]=sub (y0 [k], mul (w, y1 [ k]));=mul (w, wn);

}

}

//Кореляція

//Аргументи:

//vect_1 - покажчик на перший масив вихідних даних

//vect_2 - покажчик на другий масив вихідних даних

//corr - покажчик на масив вихідних даних

//n - розмірність даних

//примітка: передбачається, що розмірності vect_1 і vect_2//збігаються

void correlation (double * vect_1, double * vect_2, double * corr, int n)

{i, j; (i=0; i lt; n; i ++)

for (j=0; j lt; n - i - 1; j ++)//т до у вибірці всього n

//значень, а індекс i + j не повинен ставати більше

//n, то другий цикл до n - i

corr [i]=corr [i] + vect_1 [j] * vect_2 [i + j]/n;

}

//Автокорреляция

//Аргументи:

//vect - покажчик на масив вихідних даних

//n - розмірність масиву mas (явялется ступенем 2)

//acorr - покажчик на масив вихідних даних

void autocorrelation (double * vect, int n, double * acorr)

{i, j; (i=0; i lt; n; i ++)

for (j=0; j lt; n - i - 1; j ++)//т до у вибірці всього

//n значень, а індекс i + j не повинен ставати

//більше n, то другий цикл до ni

acorr [i]=acorr [i] + vect [j] * vect [i + j]/n;

}

//множення матриць розміру nxm

//Аргументи:

Назад | сторінка 13 з 16 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: China Airlines as a complex system
  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Практична обробка безлічі даних, що представляють собою масив покажчиків на ...