Proste demo
W końcu przyszedł czas na test algorytmów filtrujących, które stworzyłem na potrzeby mojego konkursowego projektu. Dane, które będę filtrował pochodzą z zarejestrowanego lotu motolotni Kasperwing. Pisałem o tym w jednym z poprzednich postów. W tym celu powstało małe demo, w którym zaimplementowałem takie funkcjonalności jak:
- ładowanie danych z plików CSV,
- wybór kolumny z pliku CSV,
- wybór algorytmów filtrujących,
- możliwość narysowania całki sygnału,
- konfiguracja filtrów (na ten moment jeszcze nie działa, filtry są skonfigurowane na sztywno).
Wiem, że layout nie powala na kolana ale przecież nie o to chodziło. Całość kodu znajduje się w moim konkursowym repozytorium na GitHubie.
Filtrujmy więc
Filtry testowałem na fragmencie rzeczywistych danych zarejestrowanych podczas prób w locie motolotni Kasperwing. W tym przypadku są to dane pochodzące z jednego z przyspieszeniomierzy.
Surowe dane
Filtr FIR
Filtr AlphaBeta
Mądry filtr AlphaBeta – jednowymiarowy filtr Kalmana
O tym filtrze jeszcze nie pisałem. Okazało się, że odpowiednio zmodyfikowany filtr AlphaBeta staje się jednowymiarowym filtrem Kalmana. Modyfikacja ta polega na automatycznym, dynamicznym doborze współczynników alpha i beta na podstawie wariancji sygnału i szumów. Zainteresowanych odsyłam do mojego repozytorium i zachęcam do dyskusji 🙂
Podsumowanie
Może zastanawiasz się dlaczego tak dużo uwagi poświęcam zagadnieniu filtracji sygnałów. Przecież to konkurs dla programistów, nie dla naukowców! Owszem ale kod, który piszę ma bardzo naukowe podstawy i może potencjalnie przydać się niejednemu programiście tworzącemu przeróżne aplikacje. W kolejnych etapach konkursu stworzę algorytm INS i postaram się pokazać jak ważnym jego elementem jest dobrze dobrany filtr.
A propos ogarnąłem bardzo fajną bibliotekę w JS do rysowania chmur punktów. Dzięki temu będę mógł pokazać Wam w przyszłości efekty działania moich algorytmów w 3D. Poniżej macie zarejestrowany tor lotu motolotni Kasperwing na podstawie danych z GPSa 🙂
Wiem, że moje demo ma kilka niedociągnięć, że kod może pozostawiać wiele do życzenia. Chciałem jednak aby każdy mógł przetestować sobie moje algorytmy „od kopa” bez zbędnego kodzenia. Jeśli masz jakieś cenne uwagi na ten temat to pisz śmiało. Na pewno mi pomożesz.
5 listopada 2017 at 00:39
-niedawno stalem sie wspolwlascicielem „zielonego” KASPERWINGa,
i najbardziej interesuja mnie stany lotu z predkosciami minimalnymi,
do zera wlacznie.
-czy na podstawie dostepnych Panu danych mozna znalezc(ocenic) minimalne
zarejestrowane predkosci lotu poziomego?
moj tel,
*********,Henryk,Krakow.PS=opublikowana Praca wyglada na bardzo solidna i profesjonalna!
http://pokazylotnicze.prz.edu.pl/galeria
=zdjecia „zielonego” KASPERWINGa…
7 listopada 2017 at 15:27
Dziękuję bardzo! W sprawie danych napisałem Panu wiadomość na podany email.