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 utilizando fvtool
:
d = designfilt('lowpassiir','FilterOrder',9, ... 'HalfPowerFrequency',400,'SampleRate',2000); fvtool(d,'Analysis','freq')
También puede hacer clic en el botón Magnitude and Phase Response (Respuesta de magnitud y de fase) en la barra de herramientas, o bien seleccionar Analysis (Análisis) > Magnitude and Phase Response (Respuesta de magnitud y de fase) para visualizar la gráfica.
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)