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.

islinphase

Determine si el filtro tiene la fase lineal

Sintaxis

flag = islinphase(b,a)
flag = islinphase(sos)
flag = islinphase(d)
flag = islinphase(...,tol)
flag = islinphase(h)

Descripción

flag = islinphase(b,a) Devuelve una salida lógica, igual a si los coeficientes de filtro en y definir un filtro de fase lineal. es igual a si el filtro no tiene una fase lineal.flagtruebaflagfalse

flag = islinphase(sos) Devuelve si el filtro especificado por la matriz de secciones de segundo orden, tiene la fase lineal. es una matriz de-por-6, donde el número de secciones,, debe ser mayor o igual que 2.truesossosKK Cada fila de corresponde a los coeficientes de un filtro de segundo orden (Biquad).sos La fila TH de la matriz corresponde a.isos[bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)]

flag = islinphase(d) Devuelve si el filtro digital, tiene una fase lineal.trued Se utiliza para generar según las especificaciones de frecuencia-respuesta.designfiltd

flag = islinphase(...,tol) utiliza la tolerancia, para determinar cuándo dos números están lo suficientemente cerca para ser considerados iguales.tol Si no se especifica, el valor predeterminado es.toleps^(2/3)

 Detalles de aritmética de punto fijo

flag = islinphase(h) determina si el objeto de filtro tiene una fase lineal.dfilth

Ejemplos

contraer todo

Utilice el método de ventana para diseñar un filtro FIR de paso bajo de orden décimo con frecuencia de corte normalizada 0,55. Verifique que el filtro tenga una fase lineal.

d = designfilt('lowpassfir','DesignMethod','window', ...     'FilterOrder',10,'CutoffFrequency',0.55); flag = islinphase(d)
flag = logical
   1

[phs,w] = phasez(d);  plot(w/pi,phs) xlabel('Frequency \omega/\pi') ylabel('Phase')

Los filtros IIR en general no tienen una fase lineal. Verifique la declaración construyendo los filtros de octavo Orden Butterworth, Chebyshev y elípticas con especificaciones similares.

ord = 8; Wcut = 0.35; atten = 20; rippl = 1;  [zb,pb,kb] = butter(ord,Wcut); sosb = zp2sos(zb,pb,kb);  [zc,pc,kc] = cheby1(ord,rippl,Wcut); sosc = zp2sos(zc,pc,kc);  [zd,pd,kd] = cheby2(ord,atten,Wcut); sosd = zp2sos(zd,pd,kd);  [ze,pe,ke] = ellip(ord,rippl,atten,Wcut); sose = zp2sos(ze,pe,ke);

Trace las respuestas de fase de los filtros. Determine si tienen una fase lineal.

fv = fvtool(sosb,sosc,sosd,sose,'Analysis','phase'); legend(fv,'Butterworth','Chebyshev I','Chebyshev II','Elliptic')

 phs = [islinphase(sosb) islinphase(sosc) ...        islinphase(sosd) islinphase(sose)]
phs = 1x4 logical array

   0   0   0   0

Introducido en R2013a