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ć.