daily pastebin goal
1%
SHARE
TWEET

Untitled

a guest Feb 11th, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top