Advertisement
Guest User

Untitled

a guest
Feb 11th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. % Klasa przechowująca parametry sygnału.
  2. classdef Signal
  3. properties
  4. sf; % Częstotliwość próbkowania sygnału (Hz).
  5. l; % Długość sygnału (liczba próbek).
  6. T; % Czas trwania sygnału (s).
  7. X; % Wektor przechowujący kolejne wartości sygnału.
  8. avgX; % średnia wartość sygnału X.
  9. rmsX, % średnia kwadratowa sygnału X.
  10. stdX; % Odchylenie standardowe sygnału X.
  11. maxX; % Wartość maksymalna sygnału X.
  12. Y; % Transformata Fouriera sygnału X.
  13. end
  14. methods
  15. % Konstrukcja obiektu na bazie pliku zawierającego kolejne
  16. % wartości sygnału.
  17. function obj = Signal(filePath, sf)
  18. % Uzupełnienie własności w przypadku wczytania informacji o
  19. % sygnale z pliku.
  20. if (nargin > 0)
  21. % Ustawienie częstotliwości próbkowania.
  22. obj.sf = sf;
  23. % Wczytanie kolejnych wartości sygnału z pliku.
  24. obj.X = importdata(filePath);
  25. % Wyznaczenie długości sygnału (liczby próbek).
  26. obj.l = length(obj.X);
  27. % Wyznaczenie czasu trwania sygnału (liczba próbek /
  28. % częstotliwość).
  29. obj.T = obj.l / obj.sf;
  30. % Wyznaczenie średniej wartości sygnału.
  31. obj.avgX = mean(obj.X);
  32. % Wyznaczenie średniej kwadratowej sygnału.
  33. obj.rmsX = rms(obj.X);
  34. % Wyznaczenie odchylenia standardowego sygnału.
  35. obj.stdX = std(obj.X);
  36. % Wyznaczenie wartości maksymalnej sygnału.
  37. obj.maxX = max(obj.X);
  38. % Wyznaczenie transformaty Fouriera dla sygnału (w
  39. % dziedzinie zespolonej).
  40. obj.Y = fft(obj.X);
  41. % Uzupełnienie własności wartościami domyślnymi.
  42. else
  43. obj.sf = 1;
  44. obj.l = 0;
  45. obj.T = 0;
  46. obj.X = [];
  47. obj.avgX = NaN;
  48. obj.rmsX = NaN;
  49. obj.stdX = NaN;
  50. obj.maxX = NaN;
  51. obj.Y = [];
  52. end
  53. end
  54. % Stworzenie sygnału odfiltrowanego.
  55. function newSig = removeLowAmp(obj, amp)
  56. % Kopiowanie sygnału.
  57. newSig = obj;
  58. % Odfiltrowanie częstotliwości o mniejszej amplitudzie niż?
  59. % zadana.
  60. for i=1:length(newSig.Y)
  61. if abs(newSig.Y(i)) < amp
  62. newSig.Y(i) = 0;
  63. end
  64. end
  65. % Rekonstrukcja sygnału.
  66. newSig.X = abs(ifft(newSig.Y));
  67. % Wyznaczenie ?średniej wartości sygnału.
  68. newSig.avgX = mean(newSig.X);
  69. %Wyznaczenie wartości kwadratowej sygnału.
  70. newSig.rmsX = rms(newSig.X);
  71. %Wyznaczenie odchylenia standardowego sygnału.
  72. newSig.stdX = std(newSig.X);
  73. %Wyznaczenie wartości maksymalnej sygnału.
  74. newSig.maxX = max(newSig.X);
  75. end
  76. end
  77. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement