Расчёт фазового фильтра

Форум, посвященный общим вопросам, связанным с MATLAB

Модератор: Admin

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Расчёт фазового фильтра

Сообщение =Anatoliy= » Вт май 15, 2018 3:42 pm

Всем доброго времени суток!
Подскажите, плз, как в матлабе спроектировать фазовый фильтр(заданный сдвиг фазы в заданном диапазоне частот)? Пересмотрел FDA Toolkit и Filter builder, вроде не нашёл того что мне нужно.

sandy
Эксперт
Сообщения: 5446
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Расчёт фазового фильтра

Сообщение sandy » Вт май 15, 2018 11:45 pm

Функция iirgrpdelay.
С уважением

Александр Сергиенко

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Re: Расчёт фазового фильтра

Сообщение =Anatoliy= » Ср май 16, 2018 9:24 am

Спасибо! А можете немного уточнить? Эта функция синтезирует фильтр с заданным ГВЗ, мне же нужен фильтр с заданным фазовым сдвигом. Насколько я понимаю эти параметры связаны через производную,т.е. задавая закон ГВЗ нельзя обеспечить нужный фазовый сдвиг. Например, если фазовый фильтр обеспечивает сдвиг фазы на 30 градусов или на 60 градусов то в обоих случаях ГВЗ будет равно нулю,т.к. ГВЗ это производная ФЧХ. Как быть? Или я что то напутал?

sandy
Эксперт
Сообщения: 5446
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Расчёт фазового фильтра

Сообщение sandy » Ср май 16, 2018 1:52 pm

Не понял, вам что, нужен ПОСТОЯННЫЙ фазовый сдвиг на всех частотах?
С уважением



Александр Сергиенко

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Re: Расчёт фазового фильтра

Сообщение =Anatoliy= » Ср май 16, 2018 2:09 pm

Да, как частный случай. В общем случае хотелось бы иметь возможность построения фильтра с заданным распределением фазы от частоты в пределах рабочего диапазона частот.

sandy
Эксперт
Сообщения: 5446
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Расчёт фазового фильтра

Сообщение sandy » Ср май 16, 2018 2:58 pm

Поскольку фильтр неизбежно будет вносить задержку, то ПОСТОЯННЫЙ фазовый сдвиг вы не получите - она превратится в линейную зависимость от частоты. Это вполне пересчитывается в зависимость групповой задержки от частоты.

Если же говорить не о рекурсивном All-pass фильтре, а о нерекурсивной аппроксимации, то я рекомендовал бы оконным методом синтезировать любую желаемую зависимость. Задача нетипичная, поэтому код придется писать самому.

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



Александр Сергиенко

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Re: Расчёт фазового фильтра

Сообщение =Anatoliy= » Ср май 16, 2018 3:26 pm

sandy писал(а):Поскольку фильтр неизбежно будет вносить задержку, то ПОСТОЯННЫЙ фазовый сдвиг вы не получите - она превратится в линейную зависимость от частоты. Это вполне пересчитывается в зависимость групповой задержки от частоты.

А как же КИХ фильтр Гильберта? Он же даёт постоянный сдвиг 90 градусов в полосе частот.

sandy писал(а):Если же говорить не о рекурсивном All-pass фильтре, а о нерекурсивной аппроксимации, то я рекомендовал бы оконным методом синтезировать любую желаемую зависимость. Задача нетипичная, поэтому код придется писать самому.

Александр, большое спасибо за развёрнутый ответ! Т.е. эта задача решаема для КИХ врукопашную? Буду думать как поступить.

sandy писал(а):Да, если речь про постоянный фазовый сдвиг (плюс задержка) в заданном диапазоне, то это линейная комбинация задержанного сигнала и выходного сигнала преобразователя Гильберта.

Тут у меня небольшая неясность. А можно по ходу ещё один вопрос? У фильтра Гильберта фазовый сдвиг 90 градусов в диапазоне частот,но если посмотреть ФЧХ видим косую с левого верхнего угла в правый нижний. А где же 90 градусов? Я наверное не учитываю что-то очень простое...

sandy
Эксперт
Сообщения: 5446
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Расчёт фазового фильтра

Сообщение sandy » Ср май 16, 2018 4:49 pm

А как же КИХ фильтр Гильберта? Он же даёт постоянный сдвиг 90 градусов в полосе частот.

Реализуемый (т.е. причинный) - нет.
У фильтра Гильберта фазовый сдвиг 90 градусов в диапазоне частот,но если посмотреть ФЧХ видим косую с левого верхнего угла в правый нижний. А где же 90 градусов? Я наверное не учитываю что-то очень простое...

Да, не учитываете. Задержку.
С уважением



Александр Сергиенко

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Re: Расчёт фазового фильтра

Сообщение =Anatoliy= » Ср май 16, 2018 8:12 pm

Александр - Вы гений! Такого лаконичного и понятного объяснения я уже давно не встречал. Спасибо, я понял где заблудился в трёх соснах. А теперь, возвращаясь к исходному вопросу, мне для реализации ПОСТОЯННОГО фазового сдвига (либо с распределением фазы) в полосе частот задержка не мешает. Для такого варианта можно ли использовать какую либо штатную функцию матлаба, или всё же нужно врукопашную действовать?

sandy
Эксперт
Сообщения: 5446
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Расчёт фазового фильтра

Сообщение sandy » Чт май 17, 2018 10:15 am

Постоянный фазовый сдвиг (если мы имеем в виду вещественный фильтр) - это линейная комбинация исходного сигнала и его преобразования Гильберта. Коэффициенты этой линейной комбинации - это синус и косинус нужного фазового угла. Поэтому можно рассчитать КИХ-преобразователь Гильберта четного порядка (чтобы вносимая задержка была целым числом отсчетов) и скомбинировать его выход с задержанным исходным сигналом. Фазовый сдвиг не будет при этом выдержан точно, так как АЧХ этих двух каналов разные. В принципе, можно вместо просто задержки сделать второй фильтр, у которого АЧХ будет примерно повторять АЧХ преобразователя Гильберта, но это уже больше возни.
А вам это именно в виде фильтра нужно сделать? А то можно же и вот так:

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

y = real(hilbert(x)*exp(1i*phi));
С уважением



Александр Сергиенко

=Anatoliy=
Пользователь
Сообщения: 152
Зарегистрирован: Вт ноя 18, 2008 1:53 pm

Re: Расчёт фазового фильтра

Сообщение =Anatoliy= » Чт май 17, 2018 10:27 am

Ну вот,потихоньку у меня начало формироваться решение.
Спасибо Вам за помощь и всех Вам благ!