Информатика / Алгоритмы и анализ данных

Окно Ханна: коэффициенты и поправка амплитуды

Симметричное окно Ханна плавно уменьшает края записи до нуля. Оно снижает дальнюю спектральную утечку ценой расширения главного лепестка и изменения амплитуды, поэтому масштаб спектра требует отдельной поправки.

Опубликовано: Обновлено:

Формула

$$w_n=\frac12\left(1-\cos\frac{2\pi n}{N-1}\right),\quad G_c=\frac1N\sum_{n=0}^{N-1}w_n,\quad N>1$$
Схема Симметричное окно Ханна: N=5
Симметричное окно Ханна: N=5Симметричное окно Ханна: N=50010.52130.540

Горизонталь — номер n; вертикальные отрезки — веса 0;0,5;1;0,5;0.

Обозначения

$N$
длина симметричного окна, N>1, 1
$n$
целый индекс от 0 до N−1, 1
$wₙ$
вес отсчёта, 1
$Gс$
когерентный коэффициент усиления окна, 1
$xₙwₙ$
сигнал после взвешивания, единица сигнала

Условия применения

Здесь используется симметричное окно при целом N>1. Вес умножается на отсчёт с тем же индексом. Поправка через сумму весов точно восстанавливает амплитуду комплексной гармоники на сетке в её коэффициенте ДПФ; для вещественных тонов нужно учитывать соседние и зеркальные лепестки.

Ограничения

Окно не удаляет алиас, возникший до получения отсчётов. Поправка 1/Gс не превращает высоту любого спектрального пика в точную амплитуду: мешают смещение тона от сетки, смешение лепестков и шум. Для мощности шума используют сумму квадратов весов.

Подробное объяснение

Конечная запись без окна имеет резкий обрыв, если её концы не стыкуются. Умножение на плавные веса уменьшает этот разрыв. Симметричное окно Ханна обращается в ноль при n=0 и n=N−1, а около середины сохраняет наибольшие веса. При чётной длине точный максимум 1 в дискретный набор обычно не попадает.

Умножение во времени соответствует свёртке спектров. Узкая линия после оконной обработки приобретает форму спектра окна. Дальние боковые лепестки становятся меньше по сравнению с прямоугольным обрезанием, но главный лепесток шире. Поэтому подавление утечки и разделение соседних тонов требуют компромисса.

Если взять комплексный тон xₙ=A·exp(2πikn/N), его собственный коэффициент после взвешивания равен A·Σwₙ. В исходной ненормированной сумме без окна он равен N·A. Их отношение — Gс. Этот вывод объясняет амплитудную поправку без предположения, что все окна ослабляют сигнал одинаково.

Для симметричного варианта при N>2 сумма весов равна (N−1)/2, поэтому Gс=(N−1)/(2N). Для N=2 оба веса нулевые, и поправка не определена. Периодический вариант со знаменателем N имеет другую сумму. Выбор между ними нужно сделать до расчёта поправки, а не после сравнения спектров.

Как пользоваться формулой

  1. Выберите симметричное или периодическое окно и явно запишите его длину; проверьте знаменатель косинуса.
  2. Вычислите каждый вес и умножьте на отсчёт с тем же номером, сохраняя исходный порядок измеренного сигнала.
  3. Найдите сумму весов и когерентное усиление; не подставляйте половину автоматически для короткого симметричного окна.
  4. При оценке амплитуды проверьте положение тона и соседние лепестки; для шумовой мощности используйте другую нормировку.

Историческая справка

Название окна Ханна связано с Юлиусом фон Ханном; документация SciPy отдельно предупреждает о смешении написаний Hann и Hanning. В цифровом спектральном анализе XX века оконные функции стали способом управлять эффектом конечной длительности наблюдения и формой спектральных лепестков.

В современных библиотеках симметричное окно часто предназначено для проектирования фильтров, а периодическое — для спектрального анализа. Эти соглашения описывают разные конечные наборы весов, хотя оба строятся из приподнятого косинуса. Поправка амплитуды следует из их суммы и определения ДПФ. Поэтому название исторической функции не заменяет проверки конкретной нормировки реализации.

Историческая линия формулы

Окно носит имя Юлиуса фон Ханна. Амплитудная поправка через когерентное усиление относится к вычислительному применению окон в дискретном спектральном анализе. Её значение определяется фактическими весами, а не одним историческим названием.

Пример

Для симметричного окна длины N=5 аргументы косинуса равны 0;π/2;π;3π/2;2π. Веса w=(0;0,5;1;0,5;0), сумма 2, а Gс=2/5=0,4. Безразмерный комплексный тон xₙ=2·exp(2πin/5) после окна имеет коэффициент на индексе k=1: X₁=2·Σwₙ=4. Деление на N дало бы 0,8; деление дополнительно на Gс возвращает 2. Проверка: 4/(5·0,4)=2. Это точный расчёт для комплексного тона. Для вещественного косинуса зеркальная компонента может добавлять вклад, особенно на короткой записи; механическое удвоение с поправкой тогда не гарантирует точности.

Частая ошибка

Не путайте Ханна и Хэмминга: их коэффициенты и краевые значения различаются. Не используйте знаменатель N вместо N−1, сохраняя название симметричного варианта. Когерентное усиление не равно среднему квадрату весов. Нельзя делить на нулевое усиление двухточечного симметричного окна.

Практика

Задачи с решением

Три веса

Условие. Найдите симметричное окно при N=3 и Gс.

Решение. Аргументы 0;π;2π, веса 0;1;0. Сумма 1, Gс=1/3.

Ответ. (0;1;0), усиление 1/3.

Периодический вариант

Условие. Найдите веса 0,5−0,5cos(2πn/4) при n=0…3.

Решение. Косинусы 1;0;−1;0, поэтому веса 0;0,5;1;0,5. Сумма 2.

Ответ. Gс=2/4=0,5; последний вес не нулевой.

Дополнительные источники

  • https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.windows.hann.html
  • https://docs.scipy.org/doc/scipy/tutorial/signal.html
  • https://docs.scipy.org/doc/scipy/tutorial/fft.html

Связанные формулы

Информатика

Дискретное преобразование Фурье и обратная формула

$X_k=\sum_{n=0}^{N-1}x_n e^{-2\pi i kn/N},\qquad x_n=\frac1N\sum_{k=0}^{N-1}X_k e^{2\pi i kn/N}$

Дискретное преобразование Фурье переводит конечную последовательность в комплексные частотные коэффициенты. Обратная сумма восстанавливает все отсчёты; знак экспоненты и нормировку нужно выбирать согласованно.

Информатика

Частоты и амплитуды по коэффициентам ДПФ

$\Delta f=\frac{f_s}{N},\quad f_k=\frac{kf_s}{N},\quad A_k=\frac{2|X_k|}{N}\quad(0<k<N/2)$

Шаг частот ДПФ равен частоте дискретизации, делённой на длину записи. Для вещественной гармоники точно на внутреннем частотном отсчёте амплитуда равна удвоенному модулю коэффициента, делённому на число отсчётов.

Информатика

Наложение частот: расчёт алиаса при дискретизации

$f_a=\min_{m\in\mathbb Z}|f-mf_s|,\qquad 0\le f_a\le f_s/2$

При равномерной дискретизации вещественного гармонического сигнала частоты, отличающиеся на целое число частот дискретизации и знак, могут давать одинаковые отсчёты. Частота алиаса лежит от нуля до половины частоты дискретизации.