Cel zajęć
Wprowadzenie do przedmiotu..
Przypomnienie/zapoznanie się z programami Mathematica i Matlab.
Generowanie danych „syntetycznych" o zadanych parametrach.
Wykresy funkcji i danych.
Algorytmy różniczkowania numerycznego przebiegów czasowych.
Algorytmy całkowania numerycznego przebiegów czasowych.
Zadania do wykonania
Zapoznanie się z elementarną dokumentacją systemów Mathematica i Matlab — przed zajęciami.
Przećwiczenie podanych przykładów.
Zapoznanie się z dokumentacją on-line obu systemów (w przypadku Matlaba dostępne są również programy demonstracyjne).
Przypomnienie sobie wzorów na numeryczne różniczkowanie (hint: iloraz różnicowy) i całkowanie (hint: metoda prostokątów, metoda trapezów).
Wygenerowanie „syntetycznych" zestawów danych i sprawdzenie procedur całkowania/różniczkowania.
Wygenerowanie syntetycznych zestawów danych (zaburzonych szumem o rozkładzie normalnym o średniej zero i zadanej wariancji) oraz sprawdzenie procedur całkowania/różniczkowania i zbadanie wpływu wariancji na wyniki.
Zamiast danych syntetycznych można użyć danych rzeczywistych.
Zadanie praktyczne
Wczytać dane przykładowe1 lub inne dane przykładowe.
Przygotowałem kolejny zestaw danych przykładowych.
Narysować wykres danych.
Na wykresie inteligentnie zaznaczyć okresy wzrostu i spadku mierzonej wartości (użyć do tego pochodnej?)
Uwaga: wszystkie dane są skompresowane, w formacie xz. Po kliknięciu w plik o tym rozszerzeniu powinno automatycznie uruchomić się oprogramowanie pozwalające dostać się do zawartości pliku.
Format pierwszego zestawu danych danych
Dane pochodzą z pomiarów temperatury, ciśnienia atmosferycznego, wilgotności względnej oraz jasności światła z czujnika „wystawionego za okno". Okno było od strony południowo-wschodniej więc, z oczywistych względów, dane nie mogą być traktowane jako wiarogodne. Pomiary realizowane są co pięć minut z czujnika TI CC2650 SensorTag.
Format danych (CSV)2 jest następujący:
2015-09-27 17:15:00 CEST , 1443366900 , 1.6820185584e+01
Pierwsza kolumna to czas w postaci czytelnej, druga — tak zwany unix time stamp, a trzecia to zmierzona wartość. Gdy zamiast zmierzonej wartości pojawi się NaN oznacza to, że brakuje pomiaru. Taki punkt powinien „wypaść" z danych.
Dane pochodzą z systemu RRDtool, który dane zapisuje w specyficznych bazach danych wykorzystując format Round Robin Archives, który pozwala przechowywać najaktualniejsze dane z ostatniego okresu (na przykład doba) i skonsolidowane dane z okresów dłuższych — tydzień, miesiąc, rok. Stąd pojawiające się zestawach danych informacje typu:
--- AVERAGE 300
określają typ konsolidacji (może to być oprócz AVERAGE — MIN lub MAX) oraz okres konsolidacji (w sekundach: 300, 1800, 86400, 2678400). Dane nawet jeżeli pojawiają się częściej są uśredniane.
Przygotowałem prost program w języku awk do „rozpakowania” tego pliku danych.
Jak ,,rozpakować’’ zane z pierwszego zestawu opisałem w dziale FAQ.
Format drugiego zestawu danych
W srugim przypadku dane pochodzą z osobistej stacji pogodowej Netatmo. Pomiary robione były na zewnątrz i wewnątrz pomieszczeń. Mierzone było ciśnienie atmosferyczne (tylko wewnątrz) temperatura, poziom szumu (tylko wewnątrz) i wilgotność.
Pliki zawierają dane mierzone „dosyć gęsto", ale okres próbkowania jest niejednostajny.
W przypadku szumu, oprócz znacznika czasu (TimeStamp) jest czas podany w formie tekstowej oraz wartość mierzonego parametru. Separatorem jest średnik.
Timestamp;"Timezone : Europe/Warsaw";noise
1485903709;"2017/02/01 00:01:49";36
W przypadku innych parametrów będzie identycznie. Separatorem części ułamkowej (jeżeli występuje) jest kropka.