Расчет параметров оконных функций

Все что касается фильтрации
Аватара пользователя
DimKaKiber
Сообщения: 29
Зарегистрирован: 26 мар 2020, 15:00
Откуда: Томск
Контактная информация:

Расчет параметров оконных функций

Сообщение DimKaKiber »

Здравствуйте! Захотелось более подробно изучить различные типы оконных функций.

Возникли затруднения с пониманием методики расчета некоторых их характеристик (http://www.dsplib.ru/content/win/win.html).

1) как рассчитывается параметр Тау, приведенный на рисунке 5? Только визуально оценивать?
2) не нашел как рассчитывается максимальный уровень боковых лепестков (гамма макс).

В википедии нашел список корректировочных окон (https://en.wikipedia.org/wiki/Window_fu ... _functions) без параметров, которые указаны в статье и хотелось бы рассчитать их параметры. Особенно интересен параметр K, который использую для расчета наилучшего порядка фильтра.Не встречались ли Вам более полные списки (желательно с формулами) оконных функций и, может быть, где то есть для них уже рассчитанные параметры? Наподобие тех, что приведены в таблице в статье.

Заранее спасибо за ответ!

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение Бахурин Сергей »

Некоторые параметры оконных функция измеряются по спектру (например максимальный уровень боковых лепестков легче измерить, чем аналитически рассчитывать).
Самая лучшая статья, в которой описаны наиболее широко используемые виды функций это

F. J. Harris, "On the use of windows for harmonic analysis with the discrete Fourier transform," in Proceedings of the IEEE, vol. 66, no. 1, pp. 51-83, Jan. 1978.

В статье есть расширенная версия таблицы параметров и их теоретическое обоснование. Очень рекомендую.

Также посмотрите описание функции на dspl-2.0, в которой большинство окон реализовано (включая Кайзера и Чебышева), исходные коды на Си оконных функций доступны.

Аватара пользователя
DimKaKiber
Сообщения: 29
Зарегистрирован: 26 мар 2020, 15:00
Откуда: Томск
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение DimKaKiber »

Спасибо большое! Буду изучать)
Большая часть окон правда уже реализована (из Вашей статьи) - решил поиграться с недостающими и, возможно, улучшить этим свою программу.

Аватара пользователя
DimKaKiber
Сообщения: 29
Зарегистрирован: 26 мар 2020, 15:00
Откуда: Томск
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение DimKaKiber »

Спасибо за статьи и за библиотеку. Стыдно, но позаимствовал у Вас исходный код для окна Дольфа-Чебышева и Кайзера. Оконные функции из приведенной Вами статьи реализовал. Если есть интерес - могу сбросить исходники.

Задумал автоматизировать процесс получения параметров окон, но столкнулся со сложностью. Скорее всего где то что то недопонял. У меня не получается верно сформировать шкалу нормированных частот.
Например, по таблице из статьи http://www.dsplib.ru/content/win/win.html для оконной функции Ханна нормированная ширина главного лепестка должна быть равной 4, у меня же по шкале Он составляет чуть меньше 2х.
Результат для оконной функции Ханна
Результат для оконной функции Ханна
Новый точечный рисунок.png (7.5 КБ) 3780 просмотров
дельту частот считаю как , где T - длина оконной функции.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение Бахурин Сергей »

Нормировка идет к бинам ДПФ а не к частоте. Ниже скрипт в октаве (матлабе) который показывает как строились графики оконных функций в частотной области

Код: Выделить всё

clear all; close all; clc;

N = 32;
K = 512;

% window
w = zeros(K,1);
w(1:N) = hamming(N);

% Spectrum
W = 20*log10(fftshift(abs(fft(w./sum(w)))));

% frequency in DFT bins
freq = -(N/2) : (N/K) : (N/2-N/K);

% plot
plot(freq, W);
axis([-N/2, N/2, -100, 5]);
grid on;
xlabel("frequency, DFT bins");

Аватара пользователя
DimKaKiber
Сообщения: 29
Зарегистрирован: 26 мар 2020, 15:00
Откуда: Томск
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение DimKaKiber »

Спасибо большое! Теперь все получилось :)
Но возник еще один немного странный вопрос: при проектировании FIR методом оконного взвешивания или при анализе спектра нужно ли нормировать коэффициенты окна? Как при процедуре оценки его свойств.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение Бахурин Сергей »

При проектировании фильтров нормировать не нужно, потому что окно умножается на импульсную характеристику и коэффициент передачи фильтра не должен измениться.

При спектральном анализе обычно нормируют. Например при расчете спектрально плотности мощности методом Уэлча делают нормировку как описано для функции dspl-2.0

При этом надо иметь ввиду, что при проектировании фильтров стараются использовать симметричные окна для сохранения линейной ФЧХ, а для спектрального анализа - периодические.

Аватара пользователя
DimKaKiber
Сообщения: 29
Зарегистрирован: 26 мар 2020, 15:00
Откуда: Томск
Контактная информация:

Re: Расчет параметров оконных функций

Сообщение DimKaKiber »

Спасибо! Про симметричные/периодические окна я понял. Этому как раз внимания не уделил, но теперь скорректировал свою программу :)
Раньше окна использовал как раз только для проектирования FIR фильтров. Спектр анализировал в Audacity и доверял их алгоритмам.
Сейчас же появилась задача выявления сходства между специфическими паттернами сигнала. Одна из задач как раз - понять есть ли сходства в частотной области. Поэтому решил проверить все по максимуму и выбрать уже из большего разнообразия корректировочных окон чем предлагают Матлаб и Audacity. Причем важно оценить изменения в течении времени, а не по отдельным спектрам. И подобрать оптимальный шаг анализа. Сначала планируется визуальная оценка, потом, если что то отыщется, автоматизированный сбор статистики по 1000+ интерпретированным сигналам (нужным их фрагментам).

Сейчас колеблюсь - как лучше сформировать спектрограмму - при помощи перекрывающихся БПФ или при помощи вейвлетного разложения?
По теории вроде как спектрограмма с использованием БПФ менее точна чем при использовании вейвлетов. Но Вейвлетное разложение сильно зависит от тела выбранного вейвлета.
И стоит ли заморачиваться с мел-спектрограммой?

Ответить