Mam wiele sygnałów EEG i chcę je analizować metodami liniowymi, takimi jak STFT (Short Time Fourier Transform). W STFT: Jak mogę zoptymalizować długość okna analizy, aby odpowiednio odzwierciedlić widmo częstotliwości każdego okna analizy?
Mam wiele sygnałów EEG i chcę je analizować metodami liniowymi, takimi jak STFT (Short Time Fourier Transform). W STFT: Jak mogę zoptymalizować długość okna analizy, aby odpowiednio odzwierciedlić widmo częstotliwości każdego okna analizy?
Odpowiedzi:
Jest to klasyczna „zasada nieoznaczoności” transformacji Fouriera. Możesz mieć wysoką rozdzielczość w czasie lub wysoką rozdzielczość w częstotliwości, ale nie jednocześnie jednocześnie. Długości okien pozwalają na wymianę między nimi.
Jeśli chcesz wykryć „zdarzenia” w sygnale EEG z rozdzielczością powiedzmy 10ms, powinna to być długość okna. To daje rozdzielczość częstotliwości około 100 Hz.
Optymalna długość okna zależy od zastosowania. Jeśli aplikacja wymaga dokładniejszych informacji o domenie czasu, zmniejsz rozmiar okien. Jeśli aplikacja wymaga bardziej szczegółowych informacji w domenie częstotliwości, zwiększ rozmiar okien. Jak wspomniał Hilmar, Uncertainty Principle
naprawdę nie ma innego wyboru. Nie można uzyskać idealnej rozdzielczości w obu domenach jednocześnie. Możesz uzyskać idealną rozdzielczość tylko w jednej domenie kosztem zerowej rozdzielczości w drugiej (domeny czasu i częstotliwości) lub pomiędzy nimi, ale w obu domenach.
Nie wiem, czy to odpowiada na twoje pytanie, ponieważ pytałeś konkretnie o STFT. Możesz spróbować użyć, wavelet transforms
aby uzyskać informacje w sygnale. Wavelet transforms
da ci rozdzielczość w znacznie większym zakresie, analizując sygnał przy wielu rozdzielczościach okna.
Nie znam EEG, ale podstawowym (może powinienem powiedzieć fundamentalnym) problemem podczas korzystania z STFT jest wybór odpowiedniej długości okna. Jeśli twoje EEG ma charakter okresowy i chcesz rozwiązać podstawowe i harmoniczne, powinieneś użyć „długiego” okna. Jeśli zamiast tego chcesz wykryć początek lub obecność jakiegoś zdarzenia lub bardziej interesuje Cię obwiednia widma, możesz użyć „krótkiego” okna.
Spędziłem dużo czasu na optymalizacji okien w analizie częstotliwości i czasu lub banków filtrów . Można je zoptymalizować pod kątem wykrywania, usuwania szumów, separacji sygnałów ... Jest to bardzo zależne od aplikacji. Ponieważ analiza czasowo-częstotliwościowa jest na ogół zbędna, optymalizacja okien analizy lub syntezy to różne zadania. I długość tylko jeden parametr w projekcie okna.
Problem jest jeszcze bardziej złożony, ponieważ dyskretne sformułowanie optymalności jest znacznie bardziej skomplikowane niż przypadek ciągłej dziedziny czasu (patrz np . Optymalnie skoncentrowana transformata Gabora dla zlokalizowanych składników czasowo-częstotliwościowych ).
Więc moja obecna praktyczna zasada brzmi: zacznij od kształtu i długości okna, które wydają się w porządku. Następnie powtórz analizę z dwoma oknami o długości dwa i pół długości i połącz wyniki.
Zwykle szeroki rozmiar okna zapewnia lepszą rozdzielczość częstotliwości, ale słabą rozdzielczość czasową i odwrotnie. Spójrz na ten przykład, w którym wygenerowałem spektrogram fali sinusoidalnej o częstotliwości 5 kHz i częstotliwości próbkowania 22050 Hz, z mojego kodu C ++.
Powyższy spektrogram ma rozmiar okna 2048 próbek i nakłada się na 1024 próbki.
Spójrz na ten spektrogram:
Ten ma rozmiar okna 512 próbek i nakłada się na 256 próbek.
Czy widzisz różnicę? Pierwszy ma lepszą rozdzielczość częstotliwości niż drugi. Ale drugi ma lepszą rozdzielczość czasową w porównaniu do pierwszego. Zatem wybór rozmiaru okna zależy od aplikacji. Jeśli masz do czynienia z próbkami mowy do śledzenia wysokości tonu, wybór większego rozmiaru okna powinien być odpowiedni.