Два условия, два коэффициента
Фильтр с k+1 свободными коэффициентами может удовлетворять ровно k+1 условиям на его передаточной функции. Хэмминг продемонстрировал это на самом простом нетривиальном примере: два коэффициента, два условия.
Условия
- При f = 1/6: H(1/6) = 1 (эта частота проходит неизменённой)
- При f = 1/3: H(1/3) = 0 (эта частота полностью подавляется)
Форма фильтра
Фильтр, использующий два коэффициента a и b с входом x_n и одной задержкой:
y_n = a · x_n + b · x_{n−1}
Подстановка собственной функции
Вход e^{i2πfn}, выход H(f) · e^{i2πfn}. Правая часть даёт:
H(f) · e^{i2πfn} = a · e^{i2πfn} + b · e^{i2πf(n−1)}
Разделим на e^{i2πfn}:
H(f) = a + b · e^{−i2πf}
Теперь применим два условия, чтобы получить два уравнения с двумя неизвестными.
Решение для коэффициентов
Подставим f = 1/6 в H(f) = a + b·e^{−i2πf}:
1 = a + b·e^{−i2π/6} = a + b·(cos(−π/3) + i·sin(−π/3)) = a + b·(1/2 − i√3/2)
Подставим f = 1/3:
0 = a + b·e^{−i2π/3} = a + b·(−1/2 − i√3/2)
Из этих двух уравнений Хэмминг решил и получил a = 1/2, b = 1/2 — то же самое, что 3-точечное усреднение (с выходом в среднем положении).
Полный фильтр
Фильтр, который удовлетворяет обоим условиям, имеет форму:
y_n = (x_{n−1} + x_n + x_{n+1}) / 2
Выход в позиции n использует предыдущий, текущий и следующий входные отсчёты.
Передаточная функция:
H(f) = (e^{i2πf} + 1 + e^{−i2πf}) / 2 = (2cos(2πf) + 1) / 2 = cos(2πf) + 1/2
Проверка:
- H(1/6) = cos(π/3) + 1/2 = 1/2 + 1/2 = 1 ✓
- H(1/3) = cos(2π/3) + 1/2 = −1/2 + 1/2 = 0 ✓
При других частотах: H(0) = 1 + 1/2 = 3/2 (пропускает DC с усилением), H(1/2) = −1 + 1/2 = −1/2.
Понимание: цифровой фильтр реализует в программном обеспечении то, что аналоговый RC-фильтр реализует в аппаратном обеспечении. Выбор коэффициентов аналитически контролирует частотную характеристику.
Передаточная функция на нескольких частотах
Передаточная функция H(f) = cos(2πf) + 1/2 применяется на каждой частоте, не только в двух точках проектирования.
Открытие Гиббса
Хэмминг рассказал историю о Майкельсоне — того самого Майкельсона-Морли — который построил аналоговую машину для вычисления рядов Фурье до 75 членов. Когда он восстановил разрывную функцию из её коэффициентов, машина показала постоянный выброс рядом с разрывом.
Майкельсон спросил местных математиков. Они обвинили оборудование. Только Гиббс слушал.
Явление Гиббса: когда ряд Фурье, усеченный до N членов, аппроксимирует разрыв скачка, аппроксимация превышает приблизительно на 8,9% высоту прыжка — и этот выброс НЕ уменьшается с увеличением N. Больше членов сужает пик выброса, но никогда его не устраняет.
Математически: N-членный ряд Фурье сходится поточечно везде, кроме точки разрыва. В точке разрыва частичные суммы сходятся к середине прыжка, но максимум частичной суммы рядом с прыжком подходит к 1,0895 (для разрыва единичной высоты), а не к 1,0.
Почему это важно для фильтров
Идеальный фильтр нижних частот имеет передаточную функцию скачка: H(f) = 1 для f < f_c, H(f) = 0 для f > f_c. Этот разрыв между полосой пропускания и полосой подавления означает, что любой конечный фильтр (усеченный ряд Фурье) проявляет рябь Гиббса в своей частотной характеристике.
Следствие: проектирование только усеченным рядом Фурье создаёт фильтры с ≈9% ряби в полосе пропускания и полосе подавления, независимо от того, сколько коэффициентов используется.
Последствия явления Гиббса
Хэмминг использовал этот результат для мотивации функций окна: умножение идеальных коэффициентов Фурье на плавно сужающееся окно резко снижает выброс Гиббса.
Окно Хэмминга: w_k = 0.54 + 0.46·cos(πk/N). Это окно снижает рябь Гиббса до менее 0,2%.
Компромисс: применение окна сглаживает переход, но расширяет переходную полосу. Более резкий срез всегда требует большего количества коэффициентов.