Strona głównaArtykułyMatematyka

Krótkotrwała Transformata Fouriera: Obserwowanie Zmian Częstotliwości

Prosta DFT mówi, które częstotliwości istnieją; STFT kroi czas na okna, aby zobaczyć, kiedy każde z nich wystąpiło — za nieuniknionej ceny kompromisu między rozdzielczością czasową a częstotliwościową.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Rozkład dyskretyczny Fouriera: jeden widmo dla całego sygnału

Rozkład dyskretyny Fouriera (DFT) przetwarza N próbek sygnału, przekształcając je na sumę N sinusoid o równo rozłożonych częstotliwościach, każda z własną amplitudą i fazą. Odpowiada to pytaniu, jakie częstotliwości występują średnio w całym nagraniu:

X[k] = Σ_{n=0}^{N-1} x[n] · e^(−2πi·kn/N),   k = 0 … N−1

magnitude spectrum:  |X[k]|  →  "how much energy at frequency k·(fs/N)"
computed via the FFT in O(N log N) instead of O(N²)
demo na żywo · powiązana symulacja● LIVE

Co ukrywa pojedynczy spektrum

Spektogram o wartościach bezwzględnych z DFT nie posiada osi czasu – jest to ujęcie w całości całego sygnału, skompresowane do zakresu częstotliwości. Jeśli na niego zasypać chirp, który zmienia się od 200 Hz do 2000 Hz przez pięć sekund, spektrum pokaże energię rozłożoną na całym tym zakresie, nieodróżnialną od sygnału zawierającego wszystkie te częstotliwości jednocześnie przez cały czas. Każdy sygnał, którego zawartość częstotliwości zmienia się w czasie – mowa, muzyka, chirp, nośnik AM-modulowany – traci dokładnie informację, o której zazwyczaj zależy nam: kiedy dana częstotliwość wystąpiła.

STFT: Podziel sygnał na nakładające się okna

Short-Time Fourier Transform rozwiązuje to prostym pomysłem: przesuwamy krótki okno (kilkuset próbek, zaokrąglone na końcach przy pomocy funkcji Hann lub Hamminga, aby uniknąć ostrych cięć) wzdłuż sygnału, obliczamy DFT dla każdego z fragmentów oknie i układamy otrzymane widma obok siebie. Rezultatem jest spektrogram – obraz 2D z czasem na jednej osi, częstotliwością na drugiej, a kolor lub jasność wskazująca amplitudę – który dokładnie odpowiada sposobie odczytania częstotliwości chirpującego sygnału w czasie, albo widoku pionowych pasm energii oznaczających spółgłoski w mowie.

for each window position t:
    segment = x[t : t+W] * hann(W)     # taper to reduce spectral leakage
    spectrogram[:, t] = |FFT(segment)|

window length W trades time resolution for frequency resolution

Nieunikniony kompromis niepewności

Krótki interwał precyzuje, kiedy coś się wydarzyło dokładnie, ale rozmywa jakąś częstotliwość (niewielka liczba próbek oznacza grube przedziały częstotliwościową); długi interwał robi to odwrotnie. Nie jest to błąd implementacyjny – jest to bezpośrednia konsekwencja zasady niepewności czasu-częstości, tej samej matematyki, która leży u podstaw relacji niepewności Heisenberga w mechanice kwantowej, zastosowanej do sygnałów zamiast cząstek. Nie ma pojedynczej długości okna, która byłaby jednocześnie optymalna dla obu przypadków – ostrego momentu (jak uderzenie w bębny) i czystego tonu (jak trwający dźwięk); każdy spektrogram jest kompromisem dobranym do danego sygnału.

Odczyt trybów na tym symulatorze

Czysty sygnał sinusoidalny (pure sine) pokazuje jeden pasek poziomy; chord (akord) wyświetla kilka nakładających się pasm poziomych, po jednym na nutę; chirp (triller) prezentuje rosnący lub malejący diagonalny ślad, który DFT (przekształcenie Fouriera dyskretyzacji) został wyraźnie rozstrzygnięty w trajektorii; AM (modulacja amplitudy) pokazuje silną linię nośnika otaczającą dwa symetryczne pasma boczne oddzielone od siebie częstotliwością modulacji, dokładnie tak jak przewiduje teoria modulacji amplitudy; a szerokopasmowy szum wypełnia całą oś częstotliwości bez żadnej struktury w danym momencie, ponieważ z definicji nie posiada dominującej częstotliwości do śledzenia.

Frequently asked questions

Dlaczego prosta DFT nie pokazuje rosnącego tonu w sygnale chirp?

DFT rozkłada cały czas trwania sygnału na jedną spektrum bez osi czasu, więc częstotliwość, która przesuwa się w górę z czasem, wygląda identycznie jak wiele częstotliwości obecnych jednocześnie dla całego nagrania. Tylko podział sygnału w czasie, taki jak STFT, pozwala odzyskać, kiedy każda częstotliwość występowała.

Dlaczego STFT nie może mieć zarówno idealnej rozdzielczości czasowej, jak i częstotliwościowej?

Ponieważ rozdzielczość w każdym dziedzinie zależy od długości okna w przeciwnych kierunkach: krótkie okno lokalizuje czas precyzyjnie, ale próbuje tylko kilka cykli, rozmywając częstotliwość; długie okno rozstrzyga częstotliwość dokładnie, ale średnia na dużą skalę czasu. Ten kompromis czasowo-częstotliwościowy jest ograniczeniem matematycznym, a nie błędem do naprawy poprzez wybór lepszego algorytmu.

Co reprezentują poziome pasma obok nośnika w trybie AM?

Amplitudowe modulowanie nośnika o częstotliwości fc z tonem o częstotliwości fm matematycznie produkuje trzy komponenty: sam nośnik fc, a także dwa poziome pasma o częstotliwościach fc − fm i fc + fm. Wyświetlacz STFT pokazuje wszystkie trzy jako oddzielne poziome linie, ponieważ jest to naprawdę trójczęstotliwościowy sygnał, a nie artefakt ilustracyjny.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz DFT & STFT Visualiser i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację DFT & STFT Visualiser

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)