Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Klasa przechowująca parametry sygnału.
- classdef Signal
- properties
- sf; % Częstotliwość próbkowania sygnału (Hz).
- l; % Długość sygnału (liczba próbek).
- T; % Czas trwania sygnału (s).
- X; % Wektor przechowujący kolejne wartości sygnału.
- avgX; % średnia wartość sygnału X.
- rmsX, % średnia kwadratowa sygnału X.
- stdX; % Odchylenie standardowe sygnału X.
- maxX; % Wartość maksymalna sygnału X.
- Y; % Transformata Fouriera sygnału X.
- end
- methods
- % Konstrukcja obiektu na bazie pliku zawierającego kolejne
- % wartości sygnału.
- function obj = Signal(filePath, sf)
- % Uzupełnienie własności w przypadku wczytania informacji o
- % sygnale z pliku.
- if (nargin > 0)
- % Ustawienie częstotliwości próbkowania.
- obj.sf = sf;
- % Wczytanie kolejnych wartości sygnału z pliku.
- obj.X = importdata(filePath);
- % Wyznaczenie długości sygnału (liczby próbek).
- obj.l = length(obj.X);
- % Wyznaczenie czasu trwania sygnału (liczba próbek /
- % częstotliwość).
- obj.T = obj.l / obj.sf;
- % Wyznaczenie średniej wartości sygnału.
- obj.avgX = mean(obj.X);
- % Wyznaczenie średniej kwadratowej sygnału.
- obj.rmsX = rms(obj.X);
- % Wyznaczenie odchylenia standardowego sygnału.
- obj.stdX = std(obj.X);
- % Wyznaczenie wartości maksymalnej sygnału.
- obj.maxX = max(obj.X);
- % Wyznaczenie transformaty Fouriera dla sygnału (w
- % dziedzinie zespolonej).
- obj.Y = fft(obj.X);
- % Uzupełnienie własności wartościami domyślnymi.
- else
- obj.sf = 1;
- obj.l = 0;
- obj.T = 0;
- obj.X = [];
- obj.avgX = NaN;
- obj.rmsX = NaN;
- obj.stdX = NaN;
- obj.maxX = NaN;
- obj.Y = [];
- end
- end
- % Stworzenie sygnału odfiltrowanego.
- function newSig = removeLowAmp(obj, amp)
- % Kopiowanie sygnału.
- newSig = obj;
- % Odfiltrowanie częstotliwości o mniejszej amplitudzie niż?
- % zadana.
- for i=1:length(newSig.Y)
- if abs(newSig.Y(i)) < amp
- newSig.Y(i) = 0;
- end
- end
- % Rekonstrukcja sygnału.
- newSig.X = abs(ifft(newSig.Y));
- % Wyznaczenie ?średniej wartości sygnału.
- newSig.avgX = mean(newSig.X);
- %Wyznaczenie wartości kwadratowej sygnału.
- newSig.rmsX = rms(newSig.X);
- %Wyznaczenie odchylenia standardowego sygnału.
- newSig.stdX = std(newSig.X);
- %Wyznaczenie wartości maksymalnej sygnału.
- newSig.maxX = max(newSig.X);
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement