Функции 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)