Transformata Fouriera: podstawa kompresji MP3, JPEG, Wi-Fi i MRI
Każdy sygnał – od ścieżki dźwiękowej po fale radiowe – można rozłożyć na sumę sinusoid o różnych częstotliwościach, amplitudach i fazach. To idea Jeana-Baptiste'a Fouriera z 1807 roku, odrzucona przez Lagrange'a jako niemożliwa. Proces jest odwracalny i bez utraty informacji.
Każdy sygnał = sin(f₁) × a₁ + sin(f₂) × a₂ + sin(f₃) × a₃ + ...
gdzie f — częstotliwość, a — amplituda
Takie rozkłady stosuje się w przetwarzaniu dźwięku, obrazów, komunikacji bezprzewodowej. FFT (Szybka Transformata Fouriera) przyspiesza obliczenia z O(n²) do O(n log n), umożliwiając praktyczne zastosowania.
Kompresja MP3 poprzez psychoakustykę i FFT
MP3 redukuje przepływność z 1,4 Mb/s (CD) do 128 Kb/s. Algorytm wykorzystuje FFT do przejścia w dziedzinę częstotliwości.
# Pseudokod kompresji MP3
frequencies = fft(audio_signal)
for f in frequencies:
if f.frequency > 20000: # ucho nie słyszy powyżej 20 kHz
f.amplitude = 0
if f.is_masked_by(louder_neighbor): # model psychoakustyczny
f.amplitude = 0 # cichy dźwięk obok głośnego — niesłyszalny
if f.amplitude < threshold: # zbyt cicho
f.amplitude = 0
compressed = encode(remaining_frequencies)
Częstotliwości powyżej 20 kHz i komponenty maskowane są odrzucane. Dekodowanie to odwrotne FFT. Różnica jest niezauważalna dla ludzkiego ucha.
JPEG i DCT dla obrazów
JPEG stosuje DCT (dyskretną transformatę kosinusową) – wariant Fouriera – do bloków 8×8 pikseli. Niskie częstotliwości zachowują kształty, wysokie (szczegóły, szum) są kwantyzowane.
Blok 8×8 pikseli
↓
DCT: rozkład na "częstotliwości wizualne"
↓
Niskie częstotliwości = płynne gradienty, ogólne kształty
Wysokie częstotliwości = ostre krawędzie, drobne detale, szum
↓
Odrzucić wysokie częstotliwości (oko nie zauważy na zdjęciu zachodu słońca)
↓
Obraz skompresowany, 10–20 razy mniejszy od oryginału
Artefakty w postaci kwadratów to skutek nadmiernego odcięcia wysokich częstotliwości. Odwrotna transformacja przywraca obraz.
OFDM w Wi-Fi i komunikacji mobilnej
OFDM (ortogonalne zwielokrotnianie z podziałem częstotliwości) moduluje dane na setki podnośnych w kanale szerokości 80 MHz. Podnośne są ortogonalne dzięki właściwościom sinusoid.
Jeden kanał Wi-Fi szerokości 80 MHz:
[podn.1][podn.2][podn.3]...[podn.234]
↓ ↓ ↓ ↓
dane dane dane ... dane
Wszystkie częstotliwości przesyłane JEDNOCZEŚNIE.
Odbiornik rozdziela je z powrotem przez FFT.
Wi-Fi 6 używa 4096-QAM na 980 podnośnych. Odbiornik stosuje IFFT do demodulacji. Podobnie w 4G/5G, DSL, DVB-T.
- Zalety OFDM: odporność na propagację wielodrogową, wysoka efektywność widmowa.
- Obliczenia: FFT/IFFT w czasie rzeczywistym na układach scalonych.
- Skala: miliardy urządzeń wykonują biliony FFT/s.
Rozpoznawanie w Shazam i MRI
Shazam: FFT audio → spektrogram → szczyty częstotliwości jako odciski palców → wyszukiwanie w bazie.
1. Nagrać 3 sekundy audio
2. FFT → spektrogram
3. Znaleźć szczyty → fingerprints
4. Porównać z bazą
Szczyty są odporne na szum. MRI: magnes rezonuje protony, zapisuje przestrzeń k (dziedzinę częstotliwości). Odwrotne FFT daje obraz.
Protony rezonują → fale radiowe → przestrzeń k
↓
Odwrotne FFT
↓
Obraz
Implementacja FFT w Pythonie
Rekurencyjna FFT dla zrozumienia algorytmu Cooleya-Tukeya.
import numpy as np
def fft(x):
n = len(x)
if n == 1:
return x
even = fft(x[0::2])
odd = fft(x[1::2])
T = [np.exp(-2j * np.pi * k / n) * odd[k] for k in range(n // 2)]
return [even[k] + T[k] for k in range(n // 2)] + \
[even[k] - T[k] for k in range(n // 2)]
Przyspieszenie umożliwia przetwarzanie sygnałów w czasie rzeczywistym.
Co jest ważne
- Rozkład Fouriera jest uniwersalny dla procesów falowych: dźwięk, światło, fale radiowe.
- FFT redukuje złożoność z O(n²) do O(n log n), umożliwiając kwadryliony operacji/s.
- Zastosowania: kompresja (MP3/JPEG), komunikacja (OFDM), medycyna (MRI), rozpoznawanie (Shazam).
- Ortogonalność sinusoid zapewnia rozdzielenie sygnałów bez interferencji.
- Fizyka świata to suma podstawowych oscylacji; Fourier dekoduje ten język.
— Editorial Team
Brak komentarzy.