ReadManager umożliwia analizę sygnału pochodzącego z pomiarów posturograficznych w aplikacji Brain4fuw. Służy do tego klasa WBBReadManager.
Klasa WBBReadManager jest podklasą klasy ReadManager. Zapewnia dostęp do parametrów sygnału posturograficznego i umożliwia jego modyfikację.
from obci_readmanager.signal_processing.balance.wii_preprocessing import (
wii_filter_signal,
wii_downsample_signal,
wii_cut_fragments)
from obci_readmanager.signal_processing.balance.wii_read_manager import WBBReadManager
# inicjalizacja klasy WBBReadManager - utwórz obiekt podając na wejściu
# ścieżki do odpowiednich plików :
wbb_mgr = WBBReadManager('file.obci.xml',
'file.obci.raw',
'file.obci.tag')
# obiekt klasy WBBReadManager jest podklasą ReadManager
# umożliwia to pobranie informacji o sygnale:
sampling = float(wbb_mgr.get_param('sampling_frequency'))
num_of_channels = int(wbb_mgr.get_param('number_of_channels'))
# obiekt klasy WBBReadManager posiada metody:
# get_x(): zwraca COPx wyznaczony na podstawie danych z czujników
raw_x = wbb_mgr.get_x()
# get_y(): zwraca COPy wyznaczony na podstawie danych z czujników
raw_y = wbb_mgr.get_y()
# get_timestamps(): zwraca dane z kanału ze znacznikami czasowymi
timestamps_channel = wbb_mgr.get_timestamps()
# filtracja danych przy użyciu funkcji wii_filter_signal(),
# która jako parametry przyjmuje:
# wbb_mgr – obiekt klasy WBBReadManager
# cutoff_upper – częstość odcięcia (float)
# order – rząd filtru (int)
# use_filtfilt – True/False w zależności czy ma być użyto procedura
# filtrowania filtfilt/lfilter (bool)
# funkcja zwraca obiekt klasy WBBReadManager z przefiltrowanym sygnałem
cutoff_upper=20
order=2
use_filtfilt=False
wbb_mgr = wii_filter_signal(wbb_mgr,
cutoff_upper,
order,
use_filtfilt)
# przepróbkowanie danych przy użyciu funkcji wii_downsample_signal(),
# która jako parametry przyjmuje:
# wbb_mgr – obiekt klasy WBBReadManager
# factor - nowa_fs = fs / factor (int)
# pre_filter - True/False w zależności czy ma być użyty filtr
# dolnoprzepustowy z częstością odcięcia: częstość próbkowania / 2
# use_filtfilt – True/False w zależności czy ma być użyta procedura
# filtrowania filtfilt/lfilter (bool)
# funkcja zwraca obiekt klasy WBBReadManager z przepróbkowanycm sygnałem
factor=2
pre_filter=False
use_filtfilt=True
wbb_mgr = wii_downsample_signal(wbb_mgr,
factor,
pre_filter,
use_filtfilt)
# segmentacja danych przy użyciu funkcji wii_cut_fragments(),
# która jako parametry przyjmuje:
# wbb_mgr – obiekt klasy WBBReadManager
# start_tag_name – nazwa znacznika określającego początek fragmentu
# end_tags_names – lista z nazwami znaczników określających koniec
# fragmentu
# funkcja zwraca obiekt klasy SmartTagsManager
smart_tags = wii_cut_fragments(wbb_mgr,
start_tag_name='start',
end_tags_names=['stop'])