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 2000 /*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 * [[%ATTACHURL%/dane_widmo.dat][dane_widmo.dat]]: przykladowy plik z danymi ---- * kompiluje i uruchamie, ale w wyniki są _nan_ tzn ,,not a number" tzn błęd matematycznie z punkt widzenie komputera, np podzielić przez zero, lub numer większy niż maksimum numer, itd.... -- Main.BoudRoukema - 16 Mar 2005
Attachments
1
Attachments
1
Topic attachments
I
Attachment
Action
Size
Date
Who
Comment
dat
dane_widmo.dat
manage
41.0 K
15 Mar 2005 - 16:59
AgnieszkaB
przykladowy plik z danymi
This topic: Main
>
TWikiUsers
>
AgnieszkaB
>
WidmoMocy
Topic revision:
16 Mar 2005,
BoudRoukema
(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