1,17 → 1,42 |
#include <stdio.h> |
#include <stdlib.h> |
#include <math.h> |
|
int x[500]; |
int y[50]; |
int y[500]; |
#define n 500 |
int delay; |
int maxdelay = 500; |
double correlation[1000]; |
|
int obdelnik(int *pole, int delka_pulsu, int spozdeni) |
{ |
int i; |
int value=1; |
for (i=0; i <= n; i++) { |
if (i < spozdeni && i < n) pole[i]=value; |
|
if ((i > spozdeni) && (i < (spozdeni+10))) pole[i] = value++; |
|
if (i < (spozdeni+delka_pulsu+10) && i > (spozdeni+10) && i < n) pole[i]= value; |
|
if (i < (spozdeni+delka_pulsu+20) && i > (spozdeni+delka_pulsu+10) && i < n) pole[i] = value--; |
|
if (i > (spozdeni+delka_pulsu+20) && i < n) pole[i]=value; |
} |
} |
|
int main (void) |
{ |
fprintf(stdout,"inicializace bufferu s chirpem"); |
int i,j; |
double mx,my,sx,sy,sxy,denom; |
|
int i,j |
double mx,my,sx,sy,sxy,denom,r; |
fprintf(stdout,"inicializace bufferu s chirpem \n"); |
obdelnik(x,10,40); |
obdelnik(y,10,75); |
|
/* Calculate the mean of the two series x[], y[] */ |
|
// vypocita stredni hodnotu signalu |
mx = 0; |
my = 0; |
for (i=0;i<n;i++) { |
21,7 → 46,8 |
mx /= n; |
my /= n; |
|
/* Calculate the denominator */ |
// spoocita jmenovatele |
|
sx = 0; |
sy = 0; |
for (i=0;i<n;i++) { |
30,10 → 56,11 |
} |
denom = sqrt(sx*sy); |
|
/* Calculate the correlation series */ |
//spocita korelacni koeficient |
for (delay=-maxdelay;delay<maxdelay;delay++) { |
sxy = 0; |
for (i=0;i<n;i++) { |
for (i=0;i<n;i++) |
{ |
j = i + delay; |
if (j < 0 || j >= n) |
continue; |
46,11 → 73,18 |
sxy += (x[i] - mx) * (y[j] - my); |
*/ |
} |
r = sxy / denom; |
correlation[delay+maxdelay] = sxy / denom; |
|
/* r is the correlation coefficient at "delay" */ |
|
} |
|
for(i=0;i<=n;i++) |
{ |
fprintf(stdout,"%2d ",x[i]); |
fprintf(stdout,"%2d ",y[i]); |
fprintf(stdout,"%3.2f\n",correlation[i]); |
} |
|
exit(1); |
} |