Jak usunąć artefakt z sygnału

0

Mam sobie taki oto sygnał:

Signal_Artifacts.png

Jego źródłem jest bifazowy impuls w postaci jednego okresu fali kwadratowej. W jaki sposób mogę się go pozbyć, wyrządzając najmniej szkód dla sygnału, który jest przez artefakt przykryty?

0

Hmmy, nie mógłbyś po prostu wykryć tego piku i odjąć jeden okres tego sygnału prostokątnego? Nie napisałeś, czy ten sygnał się sumuje z Twoim, czy to jakieś zakłócenie, i czy znasz dokładnie charakter tego prostokątnego.

0
Wybitny Terrorysta napisał(a):

Nie napisałeś, czy ten sygnał się sumuje z Twoim, czy to jakieś zakłócenie, i czy znasz dokładnie charakter tego prostokątnego.

Ogólnie rzecz biorąc źródło artefaktu sumuje się z właściwym sygnałem. Źródłem artefaktu są impulsy prądowe aplikowane przez elektrody rozlokowane na skórze przy oczach, a sygnał właściwy, jest sygnałem elektroencefalograficznym (EEG) rejestrowanym przez 21 elektrod rozlokowanych na skórze głowy. Impulsy prądowe mają kształt jednego okresu fali prostokątnej. Cały okres trwa 40 ms, a zakres amplitudy, to 0.1 mA.

Próbowałem między innymi uśredniać reprezentację artefaktu na podstawie wszystkich artefaktów występujących w sygnale i następnie tę uśrednioną reprezentację odejmować od pojedynczych artefaktów. Jest jednak problem związany z tym, że zbocza pojedynczych artefaktów są próbkowane małą ilością próbek:

figure_1.png

Odjęcie od takiego artefaktu uśrednionej reprezentacji artefaktu skutkuje mniej więcej czymś takim (nie zwracaj uwagi na czerwony sygnał):

figure_2.png

PS W sumie wpadłem teraz na pomysł, że może warto zwiększyć ilość próbek (odwrótny downsampling) i wtedy odejmowanie będzie skuteczniejsze i dokładniejsze.

Hmmy, nie mógłbyś po prostu wykryć tego piku i odjąć jeden okres tego sygnału prostokątnego?

Jak to widzisz? Bo jeżeli chodzi o zlokalizowanie tego artefaktu w sygnale, to nie ma problemu. Mogę też w miarę dokładnie wyznaczyć np. jego środek. Problem w tym, jak określić artefakt, który powinienem odjąć? Do tej pory używałem uśrednienia.

0

Ciekawy problem. Też myślałem o uśrednianiu. Czy może ten impuls prądowy daje zawsze taką samą amplitudę sygnału na EEG? Jeżeli tak można by się pozbyć tych próbek będących na zboczach, a całą resztę przesunąć odpowiednio w dół i w górę o tą amplitudę. Aczkolwiek podejrzewa, że w zależności od czynników zewnętrznych amplituda może być różna. Tak myślę, czy nie określić tej amplitudy na podstawie poprzednich właściwych próbek? To znaczy sygnał tam waha się w granicach jakiś stałych wartości i o tyle redukujemy ten pik (wycinając próbki na zboczach i przesuwając resztę w dół, tak żeby zachowany był trend).

Można widzieć co za ciekawą rzecz tworzysz?

0

Skoro znasz częstotliwość i fazę sygnału, to po prostu wytnij ten fragment. Nie jestem specem w przetwarzaniu sygnałów, bo nigdy się tym nie zajmowałem, ale FFT a potem Inv FFT powinno dać radę.

0

Tylko, że sygnał prostokątny to nieskończenie dużo prążków od jego właściwej częstotliwości w górę. poza tym, że wyciełoby to też zapewne sygnał, to jedyne co mógłbyś uzyskać to wygładzenie tego prostokąta, a w skrajnym przypadku same zerowe próbki. Tu właśnie leży problem. Tak sobie pomyślałem, nie dałoby rady zamiast ukrztałtowywać sygnał impulsu w prostokąt, ukrztałtować go w sinusa o znanej częstotliwości? Wtedy wycięcie byłoby zdecydowanie łatwiejsze.

0

Możesz podać wycinek sygnału (tzn wartości próbek). Spróbuję coś pokombinować.

0
Zimny Szczur napisał(a):

Tak sobie pomyślałem, nie dałoby rady zamiast ukrztałtowywać sygnał impulsu w prostokąt, ukrztałtować go w sinusa o znanej częstotliwości? Wtedy wycięcie byłoby zdecydowanie łatwiejsze.

No właśnie impuls będący jednym okresem jakiejś "normalnej" fali np. sinusoidalnej byłby najlepszym rozwiązaniem pod względem późniejszej analizy sygnału. W praktyce jednak impuls kwadratowy o wiele lepiej sprawdza się w tym, co ma robić, bo robi to gwałtowniej, już nie wchodząc w szczegóły o co chodzi.

Możesz podać wycinek sygnału (tzn wartości próbek). Spróbuję coś pokombinować.

Tak, oczywiście. W załączniku 10^5 próbek sygnału o częstotliwości 1024 Hz. Sygnał niefiltrowany.

DATA_VECTOR.zip

1 użytkowników online, w tym zalogowanych: 0, gości: 1