Respuesta de fase
MATLAB® incluye funciones para extraer la respuesta de fase de un filtro. A partir de una respuesta en frecuencia, la función abs
devuelve la magnitud y angle
devuelve el ángulo de la fase en radianes. Para ver la magnitud y la fase de un filtro Butterworth:
d = designfilt("lowpassiir",FilterOrder=9, ... HalfPowerFrequency=0.4); freqz(d)
La función unwrap
también es útil en el análisis de frecuencia. unwrap
desenvuelve la fase para hacerla continua en discontinuidades de fase de 360° añadiendo múltiplos de ±360° según se requiera. Para ver cómo unwrap
le puede resultar de utilidad, diseñe un filtro paso bajo FIR de 25.º orden:
h = fir1(25,0.4);
Obtenga la respuesta en frecuencia con freqz
y represente la fase en grados:
[H,f] = freqz(h,1,512,2); plot(f,angle(H)*180/pi) grid
Resulta difícil distinguir los saltos de 360° (un artefacto de la función arctangent dentro de angle
) de los saltos de 180° que expresan ceros en la respuesta en frecuencia. unwrap
elimina los saltos de 360°:
plot(f,unwrap(angle(H))*180/pi)
También puede utilizar phasez
para ver la fase no envuelta:
phasez(h,1)