Main Content

Modelos de sistemas de tiempo discreto

Los modelos de sistema de tiempo discreto son esquemas de representación para filtros digitales. El entorno informático técnico admite varios modelos de sistema de tiempo discreto, que se describen en las secciones siguientes:MATLAB®

Función de transferencia

Es una representación básica de dominio Z de un filtro digital, expresando el filtro como una proporción de dos polinomios.función de transferencia Es el principal modelo de tiempo discreto para esta caja de herramientas. La descripción del modelo de función de transferencia para la transformación Z de la ecuación de diferencia de un filtro digital es

Y(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(m+1)zmX(z).

Aquí, las constantes ( ) y ( ) son los coeficientes de filtro, y el orden del filtro es el máximo de y .biainm En el entorno, estos coeficientes se almacenan en dos vectores (vectores de fila por convención), un vector de fila para el numerador y otro para el denominador.MATLAB Consulte para obtener más detalles sobre el formulario de función de transferencia.Filtros y funciones de transferencia

Ganancia de polo cero

La forma o forma factorizada de una función de transferencia escero-polo-ganancia

H(z)=q(z)p(z)=k(zq(1))(zq(2))...(zq(n))(zp(1))(zp(2))...(zp(n)).

Por convención, los coeficientes polinómicos se almacenan en vectores de fila y raíces polinómicos en vectores de columna. Por lo tanto, en forma de ganancia de polo cero, las ubicaciones cero y polo para el numerador y el denominador de una función de transferencia residen en vectores de columna. La ganancia de la función de transferencia factorizada es un escalar.kMATLAB

Las funciones y las convierten entre representaciones polinómicas y de ganancia de polo cero.polyroots Por ejemplo, un filtro IIR simple es

b = [2 3 4]; a = [1 3 3 1]; 

Los ceros y polos de este filtro son

q = roots(b) p = roots(a) % Gain factor k = b(1)/a(1) 

Volviendo a los polinomios originales,

bb = k*poly(q) aa = poly(p) 

Tenga en cuenta que y en este caso representan la función de transferencia:ba

H(z)=2+3z1+4z21+3z1+3z2+z3=z(2z2+3z+4)z3+3z2+3z+1.

Para , la función omite el cero para igual a 0.b = [2 3 4]rootsz De hecho, la función pierde polos y ceros para igual a 0 cada vez que la función de transferencia de entrada tiene más polos que ceros, o viceversa.z Esto es aceptable en la mayoría de los casos. Para evitar el problema, sin embargo, simplemente anexe ceros para hacer que los vectores la misma longitud antes de usar la función; por ejemplo, .rootsb = [b 0]

Espacio Estatal

Siempre es posible representar un filtro digital, o un sistema de ecuaciones de diferencia, como un conjunto de ecuaciones de diferencia de primer orden. En matriz o forma, puede escribir las ecuaciones comoespacio estatal

x(n+1)=Ax(n)+Bu(n)y(n)=Cx(n)+Du(n),

donde está la entrada, es el vector de estado y es la salida.uxy Para los sistemas de un solo canal, es una matriz -por- donde es el orden del filtro, es un vector de columna, es un vector de fila y es un escalar.AmmmBCD La notación de espacio de estado es especialmente conveniente para sistemas multicanal donde la entrada y la salida se convierten en vectores, y , , y se convierten en matrices.uyBCD

La representación del espacio de estado se extiende fácilmente al entorno. , , , y son matrices rectangulares; las funciones los tratan como variables individuales.MATLABABCDMATLAB

Tomar la transformación Z de las ecuaciones de espacio de estado y combinarlas muestra la equivalencia de las formas de función de espacio de estado y transferencia:

Y(z)=H(z)U(z), where H(z)=C(zIA)1B+D

No se preocupe si no está familiarizado con la representación del espacio estatal de los sistemas lineales. Algunos de los algoritmos de diseño de filtro sutilizan la forma de espacio de estado internamente, pero no requieren ningún conocimiento de los conceptos de espacio de estado para usarlos correctamente. Sin embargo, si las aplicaciones utilizan ampliamente el procesamiento de señal basado en el espacio de estado, consulte el producto para obtener una biblioteca completa de herramientas de espacio de estado.Control System Toolbox™

Expansión de fracción parcial (formulario de residuos)

Cada función de transferencia también tiene una representación correspondiente o de formulario, dada porexpansión parcial de la fracciónResiduo

b(z)a(z)=r(1)1p(1)z1+...+r(n)1p(n)z1+k(1)+k(2)z1+...+k(mn+1)z(mn)

( ) no tiene polos repetidos.Hz Aquí está el grado del polinomio denominador de la función de transferencia racional ( )/ ( ).nbzaz Si es un polo de multiplicidadr sr, a continuación , ( ) tiene términos del formulario:Hz

r(j)1p(j)z1+r(j+1)(1p(j)z1)2...+r(j+sr1)(1p(j)z1)sr

La función en convierte las funciones de transferencia a y desde el formulario de expansión de fracción parcial.Signal Processing Toolbox™residuez El " " en el extremo de significa -dominio, o dominio discreto. devuelve los polos en un vector de columna, los residuos correspondientes a los polos en un vector de columna, y cualquier parte inadecuada de la función de transferencia original en un vector de fila. determina que dos polos son los mismos si la magnitud de su diferencia es menor que el 0,1 por ciento de cualquiera de las magnitudes de los polos.zresiduezzresiduezprkresiduez

La expansión parcial de la fracción surge en el procesamiento de la señal como un método para encontrar la transformación Z inversa de una función de transferencia. Por ejemplo, la expansión parcial de la fracción de

H(z)=4+8z11+6z1+8z2

Es

b = [-4 8]; a = [1 6 8]; [r,p,k] = residuez(b,a) 

que corresponde a

H(z)=121+4z1+81+2z1

Para encontrar la transformación Z inversa de ( ), encontrar la suma de las transformaciones Z inversas de los dos complementos de ( ), dando la respuesta de impulso causal:HzHz

h(n)=12(4)n+8(2)n,n=0,1,2,

Para verificar esto en el entorno, escribaMATLAB

imp = [1 0 0 0 0]; resptf = filter(b,a,imp) respres = filter(r(1),[1 -p(1)],imp)+...   filter(r(2),[1 -p(2)],imp) 

Secciones de Segundo Orden (SOS)

Cualquier función de transferencia ( ) tiene una representaciónHzsecciones de segundo orden

H(z)=k=1LHk(z)=k=1Lb0k+b1kz1+b2kz2a0k+a1kz1+a2kz2

donde está el número de secciones de segundo orden que describen el sistema.L El entorno representa la forma de sección de segundo orden de un sistema de tiempo discreto como una matriz -by-6 .MATLABLsos Cada fila de contiene una sola sección de segundo orden, donde los elementos de fila son los tres coeficientes de numerador y tres denominadores que describen la sección de segundo orden.sos

sos=(b01b11b21a01a11a21b02b12b22a02a12a22b0Lb1Lb2La0La1La2L)

Hay muchas maneras de representar un filtro en forma de sección de segundo orden. Mediante el emparejamiento cuidadoso de los pares de polos y cero, el orden de las secciones en cascada y el escalado multiplicativo de las secciones, es posible reducir la ganancia de ruido de cuantificación y evitar el desbordamiento en algunas implementaciones de filtro de punto fijo. Las funciones y , descritas en , realizan el emparejamiento polo-cero, el escalado de sección y el orden de sección.zp2sosss2sosTransformaciones lineales del sistema

Nota

Todas las transformaciones de sección de segundo orden solo se aplican a los filtros digitales.Signal Processing Toolbox

Estructura de celosía

Para un filtro discreto de orden completo o de cero descrito por los coeficientes polinómicos ( ) a 1, 2, ... +1, hay coeficientes de estructura de celosía correspondientes ( ) a 1, 2, ... .NanN, NNknN, N Los parámetros ( ) también se denominan el filtro.kncoeficientes de reflexión Dados estos coeficientes de reflexión, puede implementar un filtro discreto como se muestra a continuación.

Diagramas de estructura de filtro de celosía FIR e IIR

Para un filtro IIR de polo cero general descrito por coeficientes polinómicos y , existen coeficientes de celosía ( ) para los coeficientes denominador y de escalera ( ) para el numerador .abknavnb El filtro de celosía/escalera puede implementarse como

Diagrama del filtro de celosía/escalera

La función de caja de herramientas acepta un filtro FIR o IIR en forma polinómico y devuelve los coeficientes de reflexión correspondientes.tf2latc Un filtro FIR de ejemplo en forma polinómico es

b = [1.0000   0.6149   0.9899   0.0000   0.0031  -0.0082]; 

La representación de celosía (coeficiente de reflexión) de este filtro es

k = tf2latc(b) 

Para los filtros IIR, la magnitud de los coeficientes de reflexión proporciona una fácil comprobación de estabilidad. Si todos los coeficientes de reflexión correspondientes a un polinomio tienen una magnitud menor que 1, todas las raíces de ese polinomio están dentro del círculo de la unidad. Por ejemplo, considere un filtro IIR con polinomio numerador desde arriba y polinomio denominador:b

a = [1 1/2 1/3]; 

La representación de celosía del filtro es

[k,v] = tf2latc(b,a);  

Dado que < para todos los coeficientes de reflexión en , el filtro es estable.abs(k)1k

La función calcula los coeficientes polinómicos para un filtro a partir de sus coeficientes de celosía (reflexión).latc2tf Dado el vector del coeficiente de reflexión, la forma polinómia correspondiente esk

b = latc2tf(k); 

Los coeficientes de celosía o celosía/escalera se pueden utilizar para implementar el filtro utilizando la función .latcfilt

Matriz de convolución

En el procesamiento de señales, la convolvción de dos vectores o matrices equivale a filtrar uno de los operandos de entrada por el otro. Esta relación permite la representación de un filtro digital como un archivo .matriz de convolución

Dado cualquier vector, la función de caja de herramientas genera una matriz cuyo producto interno con otro vector es equivalente a la convolución de los dos vectores.convmtx La matriz generada representa un filtro digital que puede aplicar a cualquier vector de longitud adecuada; la dimensión interna de los operandos debe aceptar calcular el producto interno.

La matriz de convolución de un vector, que representa los coeficientes del numerador para un filtro digital, esb

b = [1 2 3]; x = randn(3,1); C = convmtx(b',3); 

Dos formas equivalentes de convolver con son las siguientes.bx

y1 = C*x; y2 = conv(b,x);