Hyluss

Pwe

Oct 29th, 2018
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.25 KB | None | 0 0
  1. dane = read('C:\Users\pwe.3\Desktop\sinus.txt',-1,2);
  2. t = dane; t(:,2) = [];  // seria danych - czas t
  3. y = dane; y(:,1) = [];  // seria danych - wartość przebiegu y
  4.  
  5. y2 = y^2;
  6.  
  7. FFTt = 1/t;
  8.  
  9.  
  10. // SINUS
  11. subplot(311)
  12. plot2d("gnn",t,y,style=[color("blue")])  // wykres xy-liniowy, krzywa kolor niebieski
  13. set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
  14. title("sinus");
  15. xlabel("t, s","fontsize", 4, "color", "black") // podpis osi X
  16. ylabel("y","fontsize", 4, "color", "black") // podpis osi y
  17.  
  18.  
  19. //liczenie
  20. L = length(y);
  21. avgy = sum(y)/L;
  22. yc = y - avgy;
  23. Ymod = 2*abs(fft(yc,-1)/L);
  24. tpomiaru = t(L) - t(1);
  25. tprob = tpomiaru/L;
  26. fprob = 1/tprob;
  27.  
  28. df = fprob / (L/2)/2;
  29. k = 0:L-1;
  30. fk = df * k;
  31.  
  32. fend = 2000;
  33. a = floor(fprob/(2*fend)+0.5);
  34.  
  35. ymax = max(Ymod(1:L/2));
  36.  
  37. block = 0;
  38. for i = 1 : length(Ymod)
  39.     if ymax == Ymod(i) && block == 0 then
  40.         x = i - 1;
  41.         block = 1;
  42.     end
  43. end
  44.  
  45. freq0 = df * x;
  46.  
  47. period = 1 / freq0;
  48. Lperiod = floor(period/tprob) + 1;
  49.  
  50. minPeriod = min(y(1:Lperiod));
  51. maxPeriod = max(y(1:Lperiod));
  52. ypp = maxPeriod - minPeriod;
  53.  
  54. yavg = sum(y(1:Lperiod))/Lperiod;
  55.  
  56. yrms = sqrt(1/Lperiod * sum(y2(1:Lperiod)));
  57. yavgabs = 1/Lperiod * sum(abs(y(1:Lperiod)));
  58. kpeak = ymax/yrms;
  59. kshape = yrms/yavgabs;
  60.  
  61.  
  62. /// display
  63.  
  64. disp(fend,"Fend =");
  65. disp(freq0,"freq0 =");
  66. disp(minPeriod,"ymin = ");
  67. disp(maxPeriod, "ymax =");
  68. disp(ypp, "ypp =");
  69. disp(yavg, "yavg =");
  70. disp(yrms, "yrms = ");
  71. disp(yavgabs, "yavgabs =");
  72. disp(kpeak, "kpeak =");
  73. disp(kshape, "kshape");
  74.  
  75.  
  76. //FFT log
  77. subplot(312);
  78. plot2d("gln",fk(1:L/2),Ymod(1:L/2),style=[color("black")])  // wykres xy-liniowy, krzywa kolor niebieski
  79. set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
  80. title("fft log");
  81. xlabel("f, Hz","fontsize", 4, "color", "black") // podpis osi X
  82. ylabel("y","fontsize", 4, "color", "black") // podpis osi y
  83.  
  84. // FFT lin
  85. subplot(313);
  86. plot2d("gnn",fk(1:L/2/a),Ymod(1:L/2/a),style=[color("black")])  // wykres xy-liniowy, krzywa kolor niebieski
  87. set(gca(),"grid",[1 1]*color('gray')) // włączenie siatki, kolor szary
  88. title("fft lin");
  89. xlabel("f, Hz","fontsize", 4, "color", "black") // podpis osi X
  90. ylabel("y","fontsize", 4, "color", "black") // podpis osi y
Advertisement