Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dane = read('C:\Users\pwe.3\Desktop\sinus.txt',-1,2);
- t = dane; t(:,2) = []; // seria danych - czas t
- y = dane; y(:,1) = []; // seria danych - wartość przebiegu y
- y2 = y^2;
- FFTt = 1/t;
- // SINUS
- subplot(311)
- plot2d("gnn",t,y,style=[color("blue")]) // wykres xy-liniowy, krzywa kolor niebieski
- set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
- title("sinus");
- xlabel("t, s","fontsize", 4, "color", "black") // podpis osi X
- ylabel("y","fontsize", 4, "color", "black") // podpis osi y
- //liczenie
- L = length(y);
- avgy = sum(y)/L;
- yc = y - avgy;
- Ymod = 2*abs(fft(yc,-1)/L);
- tpomiaru = t(L) - t(1);
- tprob = tpomiaru/L;
- fprob = 1/tprob;
- df = fprob / (L/2)/2;
- k = 0:L-1;
- fk = df * k;
- fend = 2000;
- a = floor(fprob/(2*fend)+0.5);
- ymax = max(Ymod(1:L/2));
- block = 0;
- for i = 1 : length(Ymod)
- if ymax == Ymod(i) && block == 0 then
- x = i - 1;
- block = 1;
- end
- end
- freq0 = df * x;
- period = 1 / freq0;
- Lperiod = floor(period/tprob) + 1;
- minPeriod = min(y(1:Lperiod));
- maxPeriod = max(y(1:Lperiod));
- ypp = maxPeriod - minPeriod;
- yavg = sum(y(1:Lperiod))/Lperiod;
- yrms = sqrt(1/Lperiod * sum(y2(1:Lperiod)));
- yavgabs = 1/Lperiod * sum(abs(y(1:Lperiod)));
- kpeak = ymax/yrms;
- kshape = yrms/yavgabs;
- /// display
- disp(fend,"Fend =");
- disp(freq0,"freq0 =");
- disp(minPeriod,"ymin = ");
- disp(maxPeriod, "ymax =");
- disp(ypp, "ypp =");
- disp(yavg, "yavg =");
- disp(yrms, "yrms = ");
- disp(yavgabs, "yavgabs =");
- disp(kpeak, "kpeak =");
- disp(kshape, "kshape");
- //FFT log
- subplot(312);
- plot2d("gln",fk(1:L/2),Ymod(1:L/2),style=[color("black")]) // wykres xy-liniowy, krzywa kolor niebieski
- set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
- title("fft log");
- xlabel("f, Hz","fontsize", 4, "color", "black") // podpis osi X
- ylabel("y","fontsize", 4, "color", "black") // podpis osi y
- // FFT lin
- subplot(313);
- plot2d("gnn",fk(1:L/2/a),Ymod(1:L/2/a),style=[color("black")]) // wykres xy-liniowy, krzywa kolor niebieski
- set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
- title("fft lin");
- xlabel("f, Hz","fontsize", 4, "color", "black") // podpis osi X
- ylabel("y","fontsize", 4, "color", "black") // podpis osi y
Advertisement