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
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎