Czy możesz zwiększyć rozdzielczość częstotliwości FFT bez zwiększania rozmiaru okna?

12

Chciałbym użyć STFT do analizy wielopłaszczyznowej. Zdaję sobie sprawę, że wykrycie cząsteczek występujących w sygnale to dopiero początek. Nadal mam z tym problem.

Powiedzmy, że mam próbkowany sygnał z częstotliwością „CD” 44100Hz. Z oknem 1024próbek otrzymuję rozdzielczość przedziału częstotliwości wynoszącą 22500Hz/512=43Hz. To wystarczy, aby rozpoznać wysokie dźwięki fortepianu, takie jak: C5 = 523.251Hzi C#5 = 554.365.

Kiedyś myślałem, że 1024to dość duże okno. Ale może tak nie jest i zwykle do wykrywania częściowych używa się większych okien?

Czy rozdzielczość częstotliwości można zwiększyć inną metodą niż zwiększenie rozmiaru okna, co pogarsza rozdzielczość czasową? Myślałem o dwóch metodach:

Metoda 1:

  1. Podziel sygnał na pasma częstotliwości za pomocą filtrów pasmowych (na przykład 0-11.25Hzi 11.25-22.5Hz).
  2. Próbkuj niższe pasma, aby oryginalne wysokie częstotliwości były teraz niskimi częstotliwościami (zrób to dla drugiego pasma 11.25-22.5Hz -> 0Hz-22.5Hz) - nie jestem pewien, czy to możliwe.
  3. Łączone pojemniki wynikowe z dopasowanymi etykietami.

Metoda 2:

  1. Używaj serii filtrów dolnoprzepustowych z rosnącym limitem.
  2. Wykonaj FFT na rosnących zakresach częstotliwości.
  3. Dla każdej częstotliwości użyj najlepszej możliwej rozdzielczości (pojemniki z pierwszego FFT, w którym ta częstotliwość została uwzględniona).
  4. Spowoduje to, że niskie częstotliwości będą miały lepszą rozdzielczość, ale myślę, że jest to w porządku, ponieważ w przypadku wyższych dźwięków różnica częstotliwości jest większa.

Będę wdzięczny za wszelkie uwagi w tej sprawie.

Przeczytałem również tutaj: W jaki sposób rozmiar okna, częstotliwość próbkowania wpływają na oszacowanie skoku FFT? na temat metody poprawy wyników szczytowej selekcji. Myślę, że spróbuję go użyć.

nuoritoveri
źródło
Jeśli wiesz, że jest tylko jeden element sinusoidalny, możesz dopasować parabolę do sąsiednich pojemników piku i interpolować, aby znaleźć „prawdziwy” szczyt. Nie jestem pewien, jak to się ma do metody fazowej opisanej przez @pichenettes.
endolith,

Odpowiedzi:

9

Jeśli naprawdę nalegasz na użycie FFT (zamiast metod parametrycznych, które nie ucierpiałyby na kompromisach czas / częstotliwość), możesz sfałszować znacznie lepszą rozdzielczość, używając informacji o fazie do odzyskania chwilowej częstotliwości dla każdego bloku FFT. Cząstki można następnie wykryć, szukając płaskowyżów w funkcji dającej chwilową częstotliwość jako funkcję indeksu bin FFT. Powszechna implementacja tej techniki opisana w tym dokumencie „kosztuje” cię o jeden dodatkowy STFT (chwilowa częstotliwość jest odzyskiwana przez operacje na STFT sygnału i STFT pochodnej sygnału).

Zobacz na przykład funkcję ifgram w tej implementacji Matlaba modelowania sinusoidalnego sygnałów audio.

Zauważ, że to nie pomoże rozwiązać dwóch części cząstkowych wpadających do sąsiednich pojemników FFT. Zapewni to tylko o wiele dokładniejsze oszacowanie częstotliwości niż zwykłe przekształcenie w częstotliwość indeksu bin FFT piku widmowego.

fenenety
źródło
Co rozumiesz przez metody parametryczne? Czy to ty kilka miesięcy temu wspomniałeś o algorytmie, który był podobny do FFT, ale miał skalę oktawy częstotliwości zamiast jednolitej skali częstotliwości?
Jim Clay
Metody parametryczne to metody analizy sygnałów statystycznych, które zakładają, że sygnał jest generowany przez określony proces opisany przez zestaw parametrów i który oblicza oszacowanie tych parametrów metodą najmniejszych kwadratów. Na przykład, jeśli przyjmiesz, że sygnał jest sumą N tłumionych wykładniczo sinusoidów + szum, algorytmy takie jak ESPRIT lub MUSIC mogą być użyte do wnioskowania o amplitudach i pulsacjach złożonych N.
pikenety
2
Prawdopodobnie masz na myśli transformację stałej-Q. Zastrzeżenie polega na tym, że nie jest on tak wydajny pod względem obliczeniowym, jak FFT; i że odwrócenie tej transformacji jest nietrywialnym problemem optymalizacji.
pikenety
@JimClay: Może to powinno zostać przeniesione tutaj?
endolith,
1
Stwierdzenie, że w metodach parametrycznych nie występują kompromisy czasowo-częstotliwościowe, jest mylące. U ich podstaw metody parametryczne modelują system i wykorzystują model do wydobywania znaczących danych. Ale wydajność jest tak dobra, jak model. Zakładając, że wybrany zostanie „najlepszy” model (liczba biegunów lub liczba wektorów własnych przestrzeni sygnałowej), wydajność tych metod jest nadal bardzo wrażliwa na długość rekordu danych.
Bryan
2

Termin „rozdzielczość” ma wiele znaczeń. Zasadniczo nie można zwiększyć swojej zdolności do oddzielania (lub „rozwiązywania”) ściśle rozmieszczonych pików widmowych przez interpolację przy użyciu tej samej długości okna danych. Ale możesz oszacować częstotliwość izolowanych stacjonarnych pików widmowych, które są znacznie powyżej poziomu szumu, z lepszą rozdzielczością (czasami znacznie lepszą) niż odstępy między przedziałami FFT za pomocą różnych metod interpolacji.

Typowe metody interpolacji wyników FFT dla szacunków o wyższej rozdzielczości obejmują interpolację paraboliczną, interpolację Sinc, wypełnianie zerami danych w znacznie dłuższym FFT oraz metody wokodera fazowego przy użyciu (nieznacznie) przesuniętych nakładających się okien.

FFT jest w zasadzie zbiorem filtrów pasmowoprzepustowych, każdy z bardzo stromym przejściem, ale tonami tętnienia pasma zatrzymania dla danej długości jądra filtra FIR. Jako takie, filtry te nie mają doskonałego tłumienia szumu nieokresowego hałasu w oknie. Jeśli podejrzewasz, że tego typu zakłócenia stanowią problem, lepsza może być okienkowa FFT lub niestandardowy bank filtrów.

hotpaw2
źródło
1

Po dalszych badaniach przywoływanych przez Jima Claya i odpowiedziach na feniksy w komentarzach odkryłem, że moja metoda 2 została na nowo odkryta Ograniczona transformacja Q opisana na przykład przez Kashimę i Mont-Reynaud (nie jestem pewien, czy mogę link do tego artykułu, plik wygląda na zgrany ) .

Ich podejście jest algorytmicznie bardziej wydajne, ponieważ zaczynają od największego zakresu częstotliwości i iteracyjnie zmniejszają go o 2, aż do najniższej oktawy.

Korzyści z Q-transformacji zostały również zbadane przez Browna na przykład tutaj . Może nie być tak wydajny jak pojedynczy FFT, ale ma tę zaletę, że nie oblicza grubego FFT na pasmach o wysokiej częstotliwości, które tego nie wymagają.

Dziękujemy za wszystkie odpowiedzi, komentarze i linki.

nuoritoveri
źródło
Co ty opisujesz brzmi bardzo podobnie do transformaty falkowej, co wydaje się potwierdzać to . Zdaję sobie sprawę, że to stary post, ale przyszli czytelnicy mogą również chcieć przyjrzeć się falkom. Chociaż, jak wskazałem w mojej odpowiedzi, nie można zmienić zasady niepewności czasowo-częstotliwościowej, ale znajomość danych może pozwolić ci trochę oszukać.
orodbhen
1

Jeśli zachowasz „historię” danych wejściowych i użyjesz jej do nakładania się na swoje DFT, to dostarczy więcej informacji do wydobycia zawartości widmowej. Oczywiście zależy to od zmieniającego się w czasie charakteru sygnału. Byłby podobny w formie do funkcji rozkładu prawdopodobieństwa.

To dałoby ci DFT, które są rozmieszczone bliżej czasu. Jednak nadal zwiększałoby to niepewność czasową każdego DFT, która jest ograniczona prawami natury: nie można jednocześnie określić dokładnej wartości zachowania czasowego i spektralnego.

Jeśli jednak zawartość częstotliwości nie różni się znacznie w oknie, powinno być dobrze.

orodbhen
źródło