Идея
Любой сигнал, повторяющийся с периодом T, можно записать суммой синусоид и косинусоид, частоты которых — целые кратные основной частоты f = 1 ÷ T:
f(t) = a0 ÷ 2 + Σ (an cos nωt + bn sin nωt), где ω = 2πf
Слагаемые — это гармоники: n = 1 — основная, n = 2 — вторая гармоника с удвоенной частотой и так далее. Коэффициенты находят, умножая сигнал на каждую синусоиду или косинусоиду и усредняя за период: bn = (2 ÷ T) ∫ f(t) sin(nωt) dt. Жозеф Фурье ввёл эту идею в 1807 году, чтобы решить уравнение теплопроводности; сейчас на ней основаны сжатие звука и изображений, радио, спектроскопия и анализ всего, что колеблется.
Три стандартные волны
Для волн, колеблющихся от −1 до +1 и нечётных (нужны только синусы):
- Прямоугольная волна: bn = 4 ÷ (nπ) для нечётных n, ноль для чётных. Амплитуды 1,273, 0,424, 0,255, 0,182, …
- Пилообразная: bn = −2 ÷ (nπ) для всех n (возрастающая пила). Все гармоники, убывающие как 1 ÷ n.
- Треугольная: bn = 8(−1)(n−1)/2 ÷ (n²π²) для нечётных n. Убывают как 1 ÷ n², гораздо быстрее.
Правило за этим: у сигнала со скачками коэффициенты убывают как 1 ÷ n; у непрерывного, но с изломами — как 1 ÷ n²; у ещё более гладкого — быстрее. Гладким сигналам нужно мало слагаемых, резким — много.
Разобранный пример
Сложим первые три ненулевых слагаемых прямоугольной волны в её середине, ωt = π ÷ 2, где волна равна +1:
- sin(π ÷ 2) = 1, sin(3π ÷ 2) = −1, sin(5π ÷ 2) = 1.
- 1,273 × 1 + 0,424 × (−1) + 0,255 × 1 = 1,104.
Пять слагаемых дают 1,273 − 0,424 + 0,255 − 0,182 + 0,141 = 1,063; частичные суммы колеблются вокруг 1 и медленно приближаются, как и предсказывают коэффициенты 1 ÷ n.
Явление Гиббса
Около скачка частичные суммы дают выброс, и он не уменьшается при добавлении слагаемых. Он стремится примерно к 8,95% скачка с каждой стороны: прямоугольная волна, прыгающая от −1 до +1 (скачок 2), достигает примерно 1,18 при любом числе гармоник. Рябь становится уже и прижимается к скачку, так что средняя за период ошибка всё же стремится к нулю, а максимальная — нет. На практике это важно: отсечение высоких частот (фильтр нижних частот или сжатие JPEG) даёт звон рядом с резкими краями.
Мощность: теорема Парсеваля
Среднее f2 за период равно сумме мощностей гармоник: среднее(f2) = Σ bn2 ÷ 2 (для ряда только из синусов). Для прямоугольной волны среднее(f2) = 1, и одна основная гармоника содержит (4 ÷ π)2 ÷ 2 = 81% от этого; первые пять нечётных гармоник — 96%. Поэтому прямоугольная волна звучит на высоте своей основной гармоники с ярким жужжащим тембром: верхние гармоники несут оставшиеся несколько процентов.
Эпициклы и дискретное преобразование Фурье
Каждое слагаемое c einωt — точка, движущаяся по окружности радиусом |c| со скоростью n оборотов за период. Сложение слагаемых одно за другим — это цепочка окружностей, каждая крутится со своей скоростью: эпициклы, тот же приём, которым Птолемей описывал планеты. Для замкнутого контура на плоскости запишите его точки как комплексные числа z = x + iy, возьмите M равномерно расположенных точек и сделайте дискретное преобразование Фурье:
ck = (1 ÷ M) Σj zj e−2πijk/M
Каждое ck — одна окружность; со всеми M окружностями цепочка точно повторяет контур, а с несколькими самыми большими рисует сглаженную версию. Углы и мелкие детали живут в маленьких быстрых окружностях.
Как пользоваться симуляцией
В Симулятор рядов Фурье выберите волну и число слагаемых. Цепочка окружностей вращается, высота пера — частичная сумма, а кривая прокручивается вправо поверх точной волны зелёного цвета; график — это спектр. Попробуйте:
- Прямоугольная волна, 1 слагаемое, затем 2, 5, 20 и 100: выброс у скачка остаётся около 9%, а рябь сужается.
- Треугольная с 3 слагаемыми: уже очень близко, потому что её коэффициенты убывают как 1 ÷ n².
- Включите звук и добавляйте слагаемые к прямоугольной волне: высота тона остаётся той же, а тембр меняется от чистой синусоиды, похожей на флейту, до гнусавого жужжания.
- Нарисуйте свою фигуру, затем уменьшите число слагаемых до 3–4: рисунок расплывается в петлю, похожую на эллипс.
Что предполагает модель
- Идеальные, строго периодические волны амплитуды 1 с точными коэффициентами; для волн ничего не измеряется и не дискретизируется.
- Ряды только из синусов для трёх волн, выбранных нечётными функциями; сдвинутой волне понадобились бы и косинусы.
- Фигуры пересэмплируются в 256 равномерно расположенных точек вдоль контура перед преобразованием и замыкаются соединением последней точки с первой.
- Звук из тех же коэффициентов через периодическую волну Web Audio в браузере, которая нормирует громкость; он играет на заданной высоте, а гармоники выше примерно 20 кГц не слышны.
Крайние случаи
- Одно слагаемое: любая волна становится чистой синусоидой амплитуды b1; у прямоугольной она 4 ÷ π = 1,27, выше самой волны.
- В самой точке скачка каждая частичная сумма прямоугольной волны ровно 0 — среднее двух сторон.
- Рисунок, пересекающий сам себя или с разрывом, всё равно считается одной замкнутой петлёй; преобразование подгоняет любой путь, который образуют точки.
- Очень высокие гармоники в звуке: при 880 Гц сотая гармоника была бы 88 кГц, далеко за пределами слуха и возможностей звукового оборудования; браузер их отбрасывает.
Где это перестаёт быть верным
- У неповторяющихся сигналов нет ряда Фурье; им нужно преобразование Фурье — непрерывный набор частот. Короткие звуковые импульсы имеют размытый спектр, поэтому у щелчка нет высоты тона.
- Дискретные данные. Реальный сигнал, измеренный с конечной частотой, не может представить частоты выше половины этой частоты (предел Найквиста); более высокие складываются обратно в ложные низкие частоты (алиасинг).
- Настоящие инструменты — не идеальные волны: их гармоники не точно целые кратные (струны фортепиано жёсткие), они меняются в течение ноты, а атака несёт большую часть характера, как показывает Тюнер для инструментов, когда слушает настоящую ноту.
- Патологические функции. Существуют непрерывные функции, ряды Фурье которых расходятся в некоторых точках; для всего нарисованного или записанного это на практике никогда не важно.
Связанные инструменты
Симулятор стоячих волн показывает гармоники, которые может удерживать струна или труба, а Генератор тона играет синусоидальную, прямоугольную, пилообразную и треугольную волны любой частоты, чтобы сравнить их на слух.