#include #include #include int main(int pp, char *pole[]) { double amplituda=0; double kmitocet=0; double d_trvani=0; double x=0; double y=0; double xz=0; double yz=0; double yz2=0; double theta=0; double a=0; double b=0; double cas=0; int neco; double deltaT = 0.000125; // vzorkovaci­ frekvence 8 kHz double u_ok = 0.0; if (pp!=4) { //kontrola pp printf("Spatny pocet parametru zadejte 3\n"); return 1; } amplituda=atof(pole[1]); kmitocet=atof(pole[2]); d_trvani=atof(pole[3])/1000; //capu si z para ty srandy if (amplituda<=0) { //kontrola amplitudy printf("Spatna amplituda, musi byt kladna\n"); return 1; } if (kmitocet<=0) { //kontrola kmitocet printf("Spatny kmitocet musi byz kladny\n"); return 1; } if (d_trvani<=0) { //kontrola delky trvani printf("Spatna delka trvani musi byt kladna\n"); return 1; } theta=2*M_PI*(kmitocet/8000); a=sin(theta); b=cos(theta); for (cas = 0; cas <= d_trvani; cas = cas + deltaT) { printf("%5.6lf ", cas); // výpis času u_ok = amplituda * sin(2 * M_PI * kmitocet * cas); printf("%5.6lf ", u_ok); //print sin napeti if (cas==0.000125) { x=amplituda; } else { x=0; } y=(x*a)+(2*yz*b)-yz2; //DSP algo pro printf("%5.6lf\n", y); // výpis DSP vystupu yz2=yz; yz=y; //zpozdeni neco=0; // cas=cas+deltaT; //nevim for nechce forovat } return 0; }