Функции MATLAB® доступны, чтобы извлечь фазовый отклик фильтра. Учитывая частотную характеристику, функциональный abs
возвращает значение, и angle
возвращает угол фазы в радианах. Просмотреть значение и фазу Фильтра Баттерворта с помощью fvtool
:
d = designfilt('lowpassiir','FilterOrder',9, ... 'HalfPowerFrequency',400,'SampleRate',2000); fvtool(d,'Analysis','freq')
Можно также нажать кнопку Magnitude и Phase Response на панели инструментов или выбрать Analysis> Magnitude и Phase Response, чтобы отобразить график.
Функция unwrap
также полезна в анализе частоты. unwrap
разворачивает фазу, чтобы сделать его непрерывным через разрывы фазы на 360 ° путем добавления множителей ±360 ° по мере необходимости. Чтобы видеть, как unwrap
полезен, разработайте 25-й порядок lowpass КИХ-фильтр:
h = fir1(25,0.4);
Получите частотную характеристику с freqz
и постройте фазу в градусах:
[H,f] = freqz(h,1,512,2); plot(f,angle(H)*180/pi) grid
Трудно отличить скачки на 360 ° (артефакт функции арктангенса в angle
) от скачков на 180 °, которые показывают нули в частотной характеристике.
unwrap
устраняет скачки на 360 °:
plot(f,unwrap(angle(H))*180/pi)
Также можно использовать phasez
, чтобы видеть развернутую фазу:
phasez(h,1)