
SVAROG i empi
Spis treści
⬆ SVAROG
Svarog (Signal Viewer, Recorder and Analyzer on GPL) to tworzony na Wydziale Fizyki UW i w firmie BrainTech program do wyświetlania i analizy wielozmiennych sygnałów (głównie elektrofizjologiczych), napisany w Javie i dostępny na licencji GPL. Strona projektu, zawierająca kod źródłowy, to https://gitlab.com/fuw_software/svarog3. Potrzebne do korzystania z programu skompilowane pliki znajdują się w "artefakcie" target.zip na stronie https://gitlab.com/fuw_software/svarog3/-/artifacts.
Po rozpakowaniu archiwum target.zip utworzy się folder svarog, w którym znajdziemy główny plik svarog-standalone.jar (Java ARchive). Ten plik — jeśli w systemie jest skonfigurowane środowisko wykonawcze Javy (Java Runtime Environment, JRE) — można zwykle uruchomić podwójnym kliknięciem. Wyjątkiem będzie tutaj pierwsze uruchomienie, gdyż współczesne systemy ze względów bezpieczeństwa ograniczają uruchamianie programów z "nieznanych" źródeł. Dlatego przy pierwszym uruchomieniu system zwykle wyświetli ostrzeżenie. Gdy wyrazimy świadomą zgodę, następne uruchomienia nie będą już jej wymagały.
W przypadku kłopotów z uruchomieniem programu można skorzystać ze starszych wersji, które dystrybuowano razem z wirtualną maszyną Javy dla głównych systemów, dostępnych pod adresem https://gitlab.com/fuw_software/svarog2-packager/-/releases.
empi
Jednym z poleceń, które znajdziemy w menu Svaroga, jest dekompozycja wybranego odcinka sygnału algorytmem matching pursuit. Ta funkcja technicznie różni się od pozostałych, gdyż wywołuje zewnętrzny program empi, napisany w C++ ze wsparciem dla GPU, a nie w Javie, więc musi być kompilowany dla konkretnych systemów operacyjnych. Dlatego w podfolderach folderu svarog/mp znajdziemy binaria programu empi, skompilowane dla najważniejszych systemów. Aby wybrać właściwą wersję, należy uruchomić w Svarogu opcję "Preferences" z menu "Tools", gdzie w zakładce "Tools" znajduje się możliwość skonfigurowania ścieżki do właściwego kompilatu empi.
Nawet po prawidłowym skonfigurowaniu ścieżki, pierwsze uruchomienie dekompozycji MP z poziomu Svaroga może zwrócić błąd. Wynika on stąd, że, podobnie jak sam Svarog, program empi również nie pochodzi ze "znanego systemowi" źródła, w związku z czym stanowi potencjalne niebezpieczeństwo. Dlatego przed pierwszym wywołaniem tej funkcji z poziomu Svaroga trzeba najpierw uruchomić sam program empi i udzielić odpowiedniej zgody — w przypadku systemu MacOS wymaga to np. otwarcia okna ustawień systemowych i wyrażenia odp. zgody w zakładce "prywatność i ochrona".
empi do pracy wsadowej
Empi w badaniach naukowych wykorzystujemy zwykle do dekompozycji sygnałów, której wyniki (czyli parametry dopasowanych do sygnału funkcji Gabora) zapisujemy w plikach z rozszerzeniem .db czyli bazach danych struktur. Pliki te mogą być wczytywane do Svaroga w celu wyświetlenie dekompozycji w przestrzeni czas-częstość, ale często pracujemy też bezpośrednio na parametrach dopasowanych do sygnału funkcji. Przykładowe skrypty w Pythonie i Matlabie dostępne są pod adresem https://github.com/develancer/empi/tree/master/demo
Literatura
- S. Mallat and Z. Zhang (1993) Matching pursuit with time-frequency dictionaries. IEEE Transactions on Signal Processing, 41:3397-3415.
- Piotr Różański (2024) empi: GPU-Accelerated Matching Pursuit with Continuous Dictionaries. ACM Transactions on Mathematical Software Vol. 50, No. 3.
- Multivariate matching pursuit in optimal Gabor dictionaries: theory and software with interface for EEG/MEG via Svarog
- Spindles in Svarog: framework and software for parametrization of EEG transients.