Rozdzielczość częstotliwości zależy od zależności między długością FFT a częstotliwością próbkowania sygnału wejściowego.
Jeśli zbierzemy 8192 próbek do FFT, będziemy mieli:
8192 próbek 2)= 4096 Pojemniki FFT
Jeśli nasza częstotliwość próbkowania wynosi 10 kHz, to twierdzenie Nyquista-Shannona o próbkowaniu mówi, że nasz sygnał może zawierać zawartość częstotliwości do 5 kHz. Nasza rozdzielczość przedziału częstotliwości to:
5 kHz 4096 Pojemniki FFT≃ 1,22 Hz kosz
Może to być łatwiejszy sposób wyjaśnienia tego koncepcyjnie, ale uproszczony: rozdzielczość bin to po prostu , gdzie to częstotliwość próbkowania sygnału wejściowego, a N to liczba punktów FFT zastosowana (długość próbki). fsampfas a m pN.fas a m p
Widzimy z powyższego, że aby uzyskać mniejsze pojemniki FFT, możemy albo uruchomić dłuższy FFT (tj. Pobrać więcej próbek z tą samą częstotliwością przed uruchomieniem FFT) lub zmniejszyć naszą częstotliwość próbkowania.
The Catch:
Zawsze występuje kompromis między rozdzielczością czasową a rozdzielczością częstotliwości.
W powyższym przykładzie musimy zebrać 8192 próbek, zanim będziemy mogli uruchomić FFT, co przy próbkowaniu przy 10 kHz zajmuje 0,82 sekundy.
Gdybyśmy próbowali uzyskać mniejsze pojemniki FFT, uruchamiając dłuższy FFT, pobranie potrzebnych próbek zajęłoby jeszcze więcej czasu.
To może być OK, może nie być. Ważne jest to, że przy stałej częstotliwości próbkowania zwiększenie rozdzielczości częstotliwości zmniejsza rozdzielczość czasową. Oznacza to, że im dokładniejszy jest pomiar w dziedzinie częstotliwości, tym mniej dokładna może być w dziedzinie czasu. Skutecznie tracisz wszystkie informacje o czasie wewnątrz długości FFT.
W tym przykładzie, jeśli ton 1999 Hz zacznie się i zatrzyma w pierwszej połowie próbki FFT 8192, a ton 2002 Hz zostanie odtworzony w drugiej połowie okna, zobaczymy oba, ale wydaje się, że wystąpiły w tym samym czas.
Musisz również wziąć pod uwagę czas przetwarzania. 8FT punkt FFT wymaga przyzwoitej mocy obliczeniowej. Sposobem na zmniejszenie tej potrzeby jest zmniejszenie częstotliwości próbkowania, która jest drugim sposobem na zwiększenie rozdzielczości częstotliwości.
W twoim przykładzie, jeśli obniżysz częstotliwość próbkowania do czegoś takiego jak 4096 Hz, potrzebujesz tylko 4096 punktów FFT, aby osiągnąć przedziały 1 Hz * 4096 Hz, to potrzebujesz tylko 4096 punktów FFT, aby osiągnąć przedziały 1 Hz i nadal możesz rozwiązać Sygnał 2kHz. Zmniejsza to rozmiar bin FFT, ale także zmniejsza szerokość pasma sygnału.
Ostatecznie z FFT zawsze będzie kompromis między rozdzielczością częstotliwości a rozdzielczością czasu. Musisz osiągnąć trochę równowagi, aby osiągnąć wszystkie cele.
Zdolność rozróżniania dwóch bardzo blisko siebie rozmieszczonych sygnałów zależy w dużym stopniu od amplitud względnych i zastosowanej funkcji okienkowania.
Może się okazać, że zabawa analizatorem sygnałów Baudline jest dobrym sposobem na rozwinięcie intuicji w tej sprawie - i nie, uruchamianie kilku FFT i wykreślanie jednego widma na raz w Matlabie lub Pythonie / Numpy nie jest tak naprawdę takie samo.
EDYCJA: Istnieje również sztuczka polegająca na wypełnianiu danych wejściowych zerami i przyjmowaniu większego FFT. Nie poprawi to twojej zdolności różnicowania, ale może sprawić, że widmo będzie bardziej czytelne. Jest to w zasadzie sztuczka podobna do antyaliasingu w grafice wektorowej.
źródło
Warto zauważyć, że FFT jest alternatywą dla obliczania liczby oddzielnych par sum (k = 0..próbka_długość-1) próbki [k] * SineRefWave [j] [k] i próbki [j] * CosRefWave [j ] [k], dla wszystkich j do połowy długości próbki. Jeśli potrzebne są odczyty amplitudy przy wszystkich tych częstotliwościach, FFT obliczy je wszystkie w czasie O (NlgN), podczas gdy obliczenie ich indywidualnie zajmie czas O (N ^ 2). Z drugiej strony, jeśli potrzebne są tylko odczyty amplitudy przy kilku częstotliwościach, często lepiej jest po prostu obliczyć je indywidualnie, szczególnie jeśli używa się procesora lub procesora DSP, który może skutecznie obliczyć ten styl sumy.
Warto również zauważyć, że podczas gdy FFT z np. Oknem próbkowania 20 ms nie będzie w stanie rozróżnić pojedynczego tonu 1975Hz lub kombinacji częstotliwości (1975-N) Hz i (1975 + N) Hz dla N <25, można go użyć do pomiaru izolowanych częstotliwości z dokładnością lepszą niż okno próbkowania, jeśli w pobliżu nie ma innej zawartości spektralnej. Samotna częstotliwość 1975Hz będzie odbierać równo w przedziałach 1950Hz i 2000Hz, podobnie jak kombinacja tonów 1974Hz i 1976Hz. Jednak izolowany dźwięk 1974 Hz wziąłby się silniej w przedziale 1950 Hz niż w przedziale 2000 Hz, a dźwięk 1976 Hz wziąłby się silniej w przedziale 2000 Hz.
źródło
Rozdzielczość częstotliwości nie zależy od długości FFT, ale od długości całkowitego czasu próbkowania T, tj. Wynosi 1 / T, co jest również najniższym składnikiem częstotliwości, jaki otrzymałeś.
Uwaga: wypełnienie zerowe nie zwiększa rozdzielczości częstotliwości; DFT zerowego sygnału wypełniającego jest jedynie lepszym przybliżeniem DTFT sygnału wyjściowego.
źródło
Jeśli znasz zakres możliwych częstotliwości wejściowych, a zakres jest wąski, możesz zastosować podzakres próbkowania, aby zmniejszyć liczbę próbek i czas obliczania FFT. Przy 256 próbkach i częstotliwości próbkowania 256 Hz otrzymujesz pożądaną rozdzielczość 1 Hz i pasmo wolne od aliasów 128 Hz.
źródło
spójrz na to zdjęcie. jest jasne. związek między rozdzielczością fs a fft
źródło