ИнтВиз

Математический анализ · модуль 2 из 14

Преобразование Фурье: почему MP3 весит мало

Сигнал раскладывается на синусоиды. Сохраняем только K самых сильных и восстанавливаем по ним исходный сигнал. Так работают MP3, JPEG и сжатие видео.

  • исходный сигнал
  • восстановленный
  • сохранённые частоты

Теория

Дискретное преобразование Фурье (ДПФ) раскладывает сигнал из $N$ отсчётов $x[0], \dots, x[N-1]$ на сумму синусоид с частотами $f = 0, 1, \dots, N - 1$:

$$ X[f] = \sum_{n=0}^{N-1} x[n] \, e^{-2\pi i f n / N}, \qquad x[n] = \frac{1}{N} \sum_{f=0}^{N-1} X[f] \, e^{2\pi i f n / N}. $$

Модуль $|X[f]|$ — амплитуда частоты $f$, аргумент — её фаза. Для вещественного сигнала спектр симметричен: $X[N - f] = \overline{X[f]}$, поэтому достаточно хранить частоты от $0$ до $N/2$.

Сжатие. Энергия реальных сигналов сосредоточена в небольшом числе частот. Если оставить $K$ коэффициентов с наибольшей амплитудой, обнулить остальные и выполнить обратное преобразование, получится приближение $\hat x$. Каждая сохранённая гармоника требует трёх чисел: номера частоты, вещественной и мнимой части. Степень сжатия равна $N / 3K$, качество оценивается относительной ошибкой:

$$ \mathrm{RMSE} = \sqrt{\frac{\sum_n (x[n] - \hat x[n])^2}{\sum_n x[n]^2}}. $$

Гладкий сигнал восстанавливается по нескольким гармоникам. Сигнал с резкими перепадами (меандр, пила) требует многих гармоник; при малом $K$ около скачков возникают колебания — явление Гиббса.

Быстрое преобразование Фурье (БПФ) вычисляет ДПФ за $O(N \log N)$ операций вместо $O(N^2)$.

Где это применяется в IT

Кодеки отбрасывают слабые частотные компоненты, которые человек почти не замечает. На этом построено сжатие звука, изображений и видео.

  • Аудио. MP3 и AAC сжимают звук в 10–12 раз, удаляя неслышимые частоты.
  • Изображения. JPEG применяет похожее косинусное преобразование к блокам $8 \times 8$ пикселей и грубо квантует высокие частоты.
  • Резкие фронты. Меандру нужно много гармоник: сигналы с резкими перепадами сжимаются хуже гладких.

Код на Python

Загружаю пример…