Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 524 → Rev 525

/programy/C/ix86/signals/correlation
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programy/C/ix86/signals/correlation.c
1,3 → 1,6
// jednoduchy algoritmus krizove korelace
// copile gcc correlation.c -lm -o correlation
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
24,12 → 27,26
}
}
 
int linear_chirp(int *pole, int delka_pole, int delka_pulsu, int spozdeni){
 
static const double pi = 3.141592653589793238462643383279502884197; // Archimedes constant pi
static const float f0 = 1;
static const float k = 1;
 
int t;
 
// for(t=0;t < delka_pole;t++){ pole[t] = (int) ( 100*sin(2*pi*t*(f0+(k/2)*t)) ) ;
// }
for(t=0;t < delka_pole;t++){ pole[t] = (int) ( 100*sin(t/2) ) ;
}
}
 
int main (void)
{
int i,n,m;
int i,n,m,delay;
double r;
 
obdelnik(sample,100,10,35); // vyrobi vzorek signalu
linear_chirp(sample,100,10,0); // vyrobi vzorek signalu
obdelnik(signal,500,10,100); // vyrobi signal ve kterem se vzorek hleda
 
for(n=0; n < 400;n++){ //spocita korelaci pro mozna spozdeni
38,14 → 55,23
correlation[n]=r;
}
 
r=0;
for(n=0; n < 400;n++){ //najde nejvetsi shodu (pro nazornost v samostatnem cyklu)
if (r < correlation[n]){
delay = n;
r = correlation[n];
}
}
 
 
for(i=0;i<400;i++)
{
fprintf(stdout,"%3u ",i); // vypise cislo bunky v poli (spozdeni)
// fprintf(stdout,"%2d ",sample[i]);
fprintf(stdout,"%2d ",sample[i]);
// fprintf(stdout,"%2d ",signal[i]);
fprintf(stdout,"%3.2f\n",correlation[i]); // vypise hodnotu korelace nejvissi cislo je nejvetsi korelace.
// fprintf(stdout,"%3.2f\n",correlation[i]); // vypise hodnotu korelace nejvissi cislo je nejvetsi korelace.
}
fprintf(stdout,"\nvzorek v signalu zacina na miste: %3u \n",delay);
 
exit(1);
}