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.

invfreqz

Identificar parámetros de filtro de tiempo discreto a partir de datos de respuesta de frecuencia

Sintaxis

[b,a] = invfreqz(h,w,n,m)
[b,a] = invfreqz(h,w,n,m,wt)
[b,a] = invfreqz(h,w,n,m,wt,iter)
[b,a] = invfreqz(h,w,n,m,wt,iter,tol)
[b,a] = invfreqz(h,w,n,m,wt,iter,tol,'trace')
[b,a] = invfreqz(h,w,'complex',n,m,...)

Descripción

es elinvfreqz operación inversa de ; encuentra una función de transferencia de tiempo discreto que corresponde a una respuesta de frecuencia compleja dada.freqz Desde el punto de vista del análisis de laboratorio, se puede utilizar para convertir datos de magnitud y fase en funciones de transferencia.invfreqz

[b,a] = invfreqz(h,w,n,m) devuelve los coeficientes de numerador y denominador reales en vectores y de la función de transferenciaba

H(z)=B(z)A(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(m+1)zm

cuya respuesta de frecuencia compleja se da en vector en los puntos de frecuencia especificados en vector .hw Escalares y especificar las órdenes deseadas de los polinomios numeradores y denominadores.nm

La frecuencia se especifica en radianes entre 0 y 0, y la longitud de debe ser la misma que la longitud de . para asegurar la simetría de dominio de frecuencia adecuada para un filtro real.hwinvfreqzconj(h)-w

[b,a] = invfreqz(h,w,n,m,wt) pondera los errores de ajuste frente a la frecuencia, donde hay un vector de factores de ponderación de la misma longitud que .wtw

[b,a] = invfreqz(h,w,n,m,wt,iter) Y

[b,a] = invfreqz(h,w,n,m,wt,iter,tol) proporcionar un algoritmo superior que garantiza la estabilidad del sistema lineal resultante y busca el mejor ajuste utilizando un esquema numérico e iterativo. El parámetro indica que finaliza la iteración cuando la solución ha convergido o después de iteraciones, lo que ocurra primero. Define la convergencia como que ocurre cuando la norma del vector de degradado (modificado) es menor que , donde es un parámetro opcional que tiene como valor predeterminado 0.01.iterinvfreqziterinvfreqztoltol Para obtener un vector de peso de todos los, utilice

invfreqz(h,w,n,m,[],iter,tol)

[b,a] = invfreqz(h,w,n,m,wt,iter,tol,'trace') muestra un informe de progreso textual de la iteración.

[b,a] = invfreqz(h,w,'complex',n,m,...) crea un filtro complejo. En este caso no se aplica ninguna simetría, y la frecuencia se especifica en radianes entre - y .

Ejemplos

contraer todo

Convierta una función de transferencia simple en datos de respuesta de frecuencia y, a continuación, de nuevo a los coeficientes de filtro originales. Croquice los ceros y polos de la función.

a = [1 2 3 2 1 4]; b = [1 2 3 2 3];  [h,w] = freqz(b,a,64); [bb,aa] = invfreqz(h,w,4,5)
bb = 1×5

    1.0000    2.0000    3.0000    2.0000    3.0000

aa = 1×6

    1.0000    2.0000    3.0000    2.0000    1.0000    4.0000

 zplane(bb,aa)

y son equivalentes a y , respectivamente.bbaaba Sin embargo, el sistema es inestable porque tiene polos fuera del círculo de la unidad. Utilice el algoritmo iterativo para encontrar una aproximación estable al sistema.invfreqz Compruebe que los polos están dentro del círculo de la unidad.

[bbb,aaa] = invfreqz(h,w,4,5,[],30)
bbb = 1×5

    0.2427    0.2788    0.0069    0.0971    0.1980

aaa = 1×6

    1.0000   -0.8944    0.6954    0.9997   -0.8933    0.6949

 zplane(bbb,aaa)

Algoritmos

De forma predeterminada, utiliza un método de error de ecuación para identificar el mejor modelo a partir de los datos.invfreqz Esto encuentra y enba

minb,ak=1nwt(k)|h(k)A(w(k))B(w(k))|2

creando un sistema de ecuaciones lineales y resolviéndolas con el operador.MATLAB®\ Aquí (a( )) y (a( )) se encuentran las transformaciones de Fourier de los polinomios y , respectivamente, en la frecuencia ( ), y es el número de puntos de frecuencia (la longitud de y ).AkBkabknhw Este algoritmo se basa en Levi .[1]

El algoritmo superior ("output-error") utiliza el Gauss-Newton para la búsqueda iterativa, con la salida del primer algoritmo como estimación inicial.[2] Esto resuelve el problema directo de minimizar la suma ponderada del error al cuadrado entre los puntos de respuesta de frecuencia reales y deseados.

minb,ak=1nwt(k)|h(k)B(w(k))A(w(k))|2

Referencias

[1] Levi, E. C. “Complex-Curve Fitting.” IRE Transactions on Automatic Control. Vol. AC-4, 1959, pp. 37–44.

[2] Dennis, J. E., Jr., and R. B. Schnabel. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Englewood Cliffs, NJ: Prentice-Hall, 1983.

Consulte también

| |

Introducido antes de R2006a