2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Сдвиг фазы с помощью фильтра Гильберта
Сообщение31.08.2024, 15:07 


19/11/20
307
Москва
Фильтр Гильберта иммеет такие АЧХ и ФЧХ:
Изображение
Интересен он тем, что его ФЧХ начинается со скачка на $\frac{\pi}{2}$ рад, а потом линейна. Я не могу понять вот что:
чтобы построить на одном графике сигнал и его сдвинутую по фазе с помощью фильтра Гильберта копию, нужно либо сдвинуть выход фильтра во времени влево, либо сдвинуть оригинальный сигнал вправо (задержать). Тут я нахожу два объяснения:
- у фильтра есть переходный процесс
- у фильтра ФЧХ линейно убывает, то есть чтобы разница по фазе у каждой спектральной составляющей выходного сигнала с оригинальным была равна $\frac{\pi}{2}$, нужно такой же наклон ФЧХ дать и оригинальному сигналу

Вопрос: а на какое число отсчётов нужно задерживать оригинальный сигнал? По идее переходный процесс КИХ-фильтра длится столько счётов, сколько "хранится" в фильтре. То есть если у фильтра длина 3, то первые 3 отсчёта его выхода это переходный процесс, а дальше уже идёт нормальный отклик. С другой стороны в данном случае всё определяется наклоном ФЧХ фильтра. И вот у меня получается, что такой же наклон у задержки, длина которой равна $\frac{ord-1}{2}$, где $ord$ - это порядок фильтра. Почему так получается?

 Профиль  
                  
 
 Re: Сдвиг фазы с помощью фильтра Гильберта
Сообщение01.09.2024, 08:09 


30/11/23
30
Для смыслового понимания я приготовил демонстрашку в маткаде.
Изображение

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

Любой реальный колебательный процесс содержит в спектре Фурье отрицательные и положительные частоты комплексных экспонент. Каждая спектральная составляющая складываясь со своей зеркальной компонентой взаимно уничтожают мнимую компоненту. Поэтому в реальных физических колебательных процессах остаются ненулевыми только действительные величины и не остаётся мнимых. Чтобы выделить мнимую компоненту, которая присутствует на каждой отдельной частоте нужно поступить наоборот с зеркальными половинами спектра. Фильтр Гильберта, насколько я понимаю именно это и делает. Он взаимно вычитает действительные компоненты на зеркальных частотах и складывает мнимые, которые в присутствуют в зеркальных половинках спектра с противоположным знаком.

На моём рисунке зелёным цветом задана формула фильтра Гильберта в спектральном виде. Справа на графике зелёным цветом нарисованы две половинки спектра, где одна из половин инвертируется.

Поскольку речь вероятно идёт о практическом применении, это означает что существует тактовая частота дискретизации сигнала. Поэтому необходимо использовать фильтр Найквиста для сигнала. То есть - надо выбрать рабочую полосу шириной равной частоте дискретизации, и обрезать все частоты вне этой полосы. Во второй строчке из спектрального фильтра получена временная импульсная характеристика этого фильтра Гильберта с одновременным обрезанием спектра за пределами взятия интеграла по частоте от $ -\pi$ до $ \pi$. В качестве рабочей полосы выбрана нулевая зона Найквиста. В знаменателе сидят нормирующие множители. В общем-то они отношения к вопросу не имеют, но так для красоты и порядка я их оставил. В третьей строчке проверка того, что нормировка сделана правильно.

И наконец, внизу третий график, где нарисована действительная и мнимая составляющая импульсной характеристики фильтра Гильберта. Красным цветом нарисована действительная нулевая часть. Если бы спектр не инвертировали, а взяли бы вместо фильтра Гильберта тождественную единицу, то здесь красным была бы функция $ \sin(x)/x $. Синим цветом здесь - та самая, мнимая компонента, импульсной характеристики фильтра Гильберта. Хвосты этой характеристики ненулевые в бесконечности по времени как в прошлом так и в будущем. Инженерно-программный выбор заключается в выборе рабочей области характеристики, который будет использоваться. Обрезанный остаток хвостов определяет ошибку фильтрации. Идеальный необрезанный фильтр имеет бесконечные хвосты импульсной характеристики. Разумно было бы отрезать хвосты симметрично. Так можно минимизировать ошибку при равной длине выбранной рабочей области импульсной характеристики.

На вашем графике нарисован наклон фазовой характеристики. Это связано исключительно с выбором системы координат в которой размещён ваш кусок импульсной характеристики. За что я не люблю такие матлабовские картинки - непонятно происхождение вашего графика. А в моём маткадовском файле картинки рисуются по формулам указанным на рисунке. Если вы перепишете эти формулы, вы получите точно такие же графики. Если сдвинуть характеристику на время t, то возникнет дополнительный фазовый сдвиг $wt$. Отсюда и наклон фазы у вашего графика. Если разместить симметрично относительно нуля координат, то наклона фазы не будет.

Теперь о задержках. Допустим в данном случае мы выбрали 21 точку как нарисовано на нижней картинке. Пусть 21 точка это длина импульcной характеристики. Её центр находится в нуле, и ещё по 10 точек в прошлом и будущем относительно точки t=0. Двигаясь по времени мы постепенно заполняем новыми поступившими отсчётами наш КИХ-фильтр, в котором требуются 21 значение для вычисления суммы.

Пусть на входе в t=0 поступил первый отсчёт сигнала. Мы хотим понять, когда на выходе такого КИХ-фильтра мы увидим отклик этой точки в центре импульсной характеристики. После того как первая партия отсчётов заполнит ещё 20 точек, мы получим 21 точку на входе и посчитаем первый отклик на выходе. Но он не будет соответствовать центру выбранной импульсной характеристики, он будет находиться лишь первым с краю. Надо подождать ещё 10 точек, когда самый первый отсчёт дойдёт до центра и попадёт в перемножитель с центральным коэффициентом. Итого 31 требуется для получения первого значения в центре. 31-1=30 это и вероятно есть программная задержка, о который вы спрашиваете. Она складывается из длины импульсной характеристики плюс расположение фазового центра относительно края.

 Профиль  
                  
 
 Re: Сдвиг фазы с помощью фильтра Гильберта
Сообщение01.09.2024, 09:23 
Заслуженный участник
Аватара пользователя


11/03/08
10004
Москва
По-моему, всё проще. Мы имеем дело с "физически реализуемыми" фильтрами, не умеющими предугадывать будущее. Соответственно, поскольку для расчёта сигнала в момент времени T используются значения после этого момента времени, то результат выдаётся с задержкой на половину длины фильтра. Что при сопоставлении с исходным сигналом выглядит, как линейно меняющийся сдвиг по фазе. Чтобы его устранить, надо сдвинуть на то же время исходный сигнал, тогда этого сдвига не будет.

 Профиль  
                  
 
 Re: Сдвиг фазы с помощью фильтра Гильберта
Сообщение01.09.2024, 10:06 


30/11/23
30
Да, пожалуй, вы правы, сдвиг будет 10, а не 30 точек. В этот момент исходная точка будет в центре.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group