Мгновенная фаза в Matlab - PullRequest
0 голосов
/ 12 июня 2011

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

1 Ответ

1 голос
/ 12 июня 2011

Если вы не прибегнете к необычным методам (например, filtfilt, предложенным в комментарии nibot), у вас всегда будут некоторые фазовые искаженияЛинейные фазовые РПИ с задержкой D добавят фазу 2 * pi * f * D, в то время как нелинейные фазовые ИДК добавят фазу, которая не зависит линейно от f.

В обоих случаях легко вычислить фазовое искажение (например, используйте freqz(num, den) для БИХ) и учесть это искажение при интерпретации результирующего измерения.Конечно, вы получите бессмысленные результаты, когда фаза значительно изменится в интересующем вас диапазоне частот, но это другая проблема.

...