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 1024
pró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.251Hz
i C#5 = 554.365
.
Kiedyś myślałem, że 1024
to 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:
- Podziel sygnał na pasma częstotliwości za pomocą filtrów pasmowych (na przykład
0-11.25Hz
i11.25-22.5Hz
). - 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. - Łączone pojemniki wynikowe z dopasowanymi etykietami.
Metoda 2:
- Używaj serii filtrów dolnoprzepustowych z rosnącym limitem.
- Wykonaj FFT na rosnących zakresach częstotliwości.
- 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).
- 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ć.
Odpowiedzi:
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.
źródło
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.
źródło
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.
źródło
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.
źródło