Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

phasedelay

Retardo de fase del filtro digital

Sintaxis

[phi,w] = phasedelay(b,a,n)
[phi,w] = phasedelay(sos,n)
[phi,w] = phasedelay(d,n)
[phi,w] = phasedelay(...,n,'whole')
phi = phasedelay(...,w)
[phi,f] = phasedelay(...,n,fs)
[phi,f] = phasedelay(...,n,'whole',fs)
phi = phasedelay(...,f,fs)
[phi,w,s] = phasedelay(...)
[phi,f,s] = phasedelay(...)
phasedelay(...)

Descripción

[phi,w] = phasedelay(b,a,n) devuelve el vector de respuesta de retardo de fase -point, , y el vector de frecuencia de punto en radianes/muestra, , del filtro definido por coeficientes de numerador, y coeficientes de denominador, .nphinwba La respuesta de retardo de fase se evalúa en puntos igualmente espaciados alrededor de la mitad superior del círculo de la unidad.n Si se omite, el valor predeterminado es 512.n Para obtener mejores resultados, establezca un valor mayor que el orden del filtro.n

[phi,w] = phasedelay(sos,n) devuelve la respuesta de retardo de fase -point para la matriz de secciones de segundo orden, . es una matriz -by-6, donde el número de secciones, , debe ser mayor o igual que 2.nsossosKK Si el número de secciones es menor que 2, considera que la entrada es un vector de numerador, .phasedelayb Cada fila de corresponde a los coeficientes de un filtro de segundo orden (biquad).sos La ta fila de la matriz corresponde a .isos[bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)]

[phi,w] = phasedelay(d,n) devuelve la respuesta de retardo de fase de punto del filtro digital, .nd Se utiliza para generar en función de las especificaciones de respuesta de frecuencia.designfiltd

[phi,w] = phasedelay(...,n,'whole') utiliza puntos igualmente espaciados alrededor de todo el círculo de la unidad.n

phi = phasedelay(...,w) devuelve la respuesta de retardo de fase a las frecuencias especificadas, en radianes/muestra, en vector .w Las frecuencias están normalmente entre 0 y . debe contener al menos dos elementos.πw

[phi,f] = phasedelay(...,n,fs) Y [phi,f] = phasedelay(...,n,'whole',fs) devolver el vector de retardo de fase (en Hz), utilizando la frecuencia de muestreo (en Hz). debe contener al menos dos elementos.ffsf

phi = phasedelay(...,f,fs) devuelve la respuesta de retardo de fase a las frecuencias especificadas en vector (en Hz), utilizando la frecuencia de muestreo (en Hz).ffs

[phi,w,s] = phasedelay(...) Y [phi,f,s] = phasedelay(...) devolver información de trazado, donde hay una estructura con campos que puede cambiar para mostrar diferentes gráficas de respuesta de frecuencia.s

phasedelay(...) sin argumentos de salida traza la respuesta de retardo de fase frente a la frecuencia.

Nota

Si la entrada es de precisión única, la respuesta de retardo de fase se calcula utilizando la aritmética de precisión única.phasedelay La salida, , es de precisión única.phi

Ejemplos

contraer todo

Utilice mínimos cuadrados restringidos para diseñar un filtro FIR de paso bajo de la orden 54 y una frecuencia de corte normalizada 0.3. Especifique la ondulación de banda de paso y la atenuación de la banda de parada como 0,02 y 0,08, respectivamente, expresadas en unidades lineales. Calcular y trazar la respuesta de retardo de fase del filtro.

Ap = 0.02; As = 0.008;  b = fircls1(54,0.3,Ap,As); phasedelay(b)

Repita el ejemplo utilizando .designfilt Tenga en cuenta que esta función expresa las ondas en decibelios.

Apd = 40*log10((1+Ap)/(1-Ap)); Asd = -20*log10(As);  d = designfilt('lowpassfir','FilterOrder',54,'CutoffFrequency',0.3, ...                'PassbandRipple',Apd,'StopbandAttenuation',Asd); phasedelay(d)

Diseñe un filtro elíptico de la orden 10 y una frecuencia de banda de paso normalizada 0.4. Especifique una ondulación de banda de paso de 0,5 dB y una atenuación de banda de parada de 20 dB. Visualice la respuesta de retardo de fase del filtro sobre el círculo completo de la unidad.

[b,a] = ellip(10,0.5,20,0.4);  phasedelay(b,a,512,'whole')

Repita el ejemplo utilizando .designfilt

d = designfilt('lowpassiir','DesignMethod','ellip','FilterOrder',10, ...                'PassbandFrequency',0.4, ...                'PassbandRipple',0.5,'StopbandAttenuation',20); phasedelay(d,512,'whole')

Consulte también

| | | | |

Introducido antes de R2006a