opis: program robi widmo mocy z sygnalu rownoprobkowanego do pliku plik_z_danymi.dat za pomoca transformaty Fouriera. <verbatim> #include<stdio.h> #include<math.h> #define M 10000 /*liczba dyskretnych wartosci okresu*/ #define KP 100 /*poczatkowa wartosc parametru k*/ #define N 20000 /*liczba pomiarow*/ #define PI 3.1415926536 /*liczba pi*/ main() { float t[N],f[N]; float P0,P,a,b,c,czasObs; int i,k; FILE *plik1, *plik2, *dane; char *nazwa1, *nazwa2, *nazwa; nazwa="plik_z_danymi.dat"; nazwa1="plik_z_wynikiem1.dat"; nazwa2="plik_z_wynikiem2.dat"; dane=fopen(nazwa,"r"); plik1=fopen(nazwa1,"w"); plik2=fopen(nazwa2,"w"); for (i=0; i<=N-1; ++i) { fscanf(dane,"%f%f\n",&t[i],&f[i]); } fclose(dane); czasObs=t[0]-t[N-1]; P0=KP*czasObs; for (k=1; k<=M; ++k) { P=P0/k; a=0; b=0; for (i=0; i<=N-2; ++i) { a=a+f[i]*sin(k*2*PI*t[i]/P0); b=b+f[i]*cos(k*2*PI*t[i]/P0); } a=2*a/czasObs; b=2*b/czasObs; a=fabs(a); b=fabs(b); c=sqrt(a*a+b*b); fprintf(plik1,"%10.5f%10.5f%10.5f%10.5f\n",P,a,b,c); fprintf(plik2,"%10.5f%10.5f%10.5f%10.5f\n",log10(P),a,b,c); } fclose(plik1); fclose(plik2); return 0; } </verbatim> -- Main.AgnieszkaB - 09 Mar 2005
This topic: Main
>
TWikiUsers
>
AgnieszkaB
>
WidmoMocy
Topic revision: revision 1 (raw view)
Copyright © CC-BY-SA by the contributing authors. All material on this collaboration platform is copyrighted under CC-BY-SA by the contributing authors unless otherwise noted.
Ideas, requests, problems regarding Foswiki?
Send feedback