Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

residuez

Expansión de fracciones parciales de la transformada Z

Descripción

ejemplo

[ro,po,ko] = residuez(bi,ai) encuentra los residuos, polos y términos directos de una expansión de fracciones parciales de la relación de los polinomios de numerador y denominador, b y a.

[bo,ao] = residuez(ri,pi,ki) , con tres argumentos de entrada y dos argumentos de salida, vuelve a convertir la expansión de fracciones parciales a polinomios con coeficientes en los vectores fila b y a.

Ejemplos

contraer todo

Calcule la expansión de fracciones parciales que corresponde al filtro IIR paso bajo de tercer orden que describe la función de transferencia

H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2).

Exprese el numerador y el denominador como convoluciones de polinomios.

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];

b = b0*conv(b1,b2);
a = conv(a1,a2);

Calcule los residuos, polos y términos directos de la expansión de fracciones parciales.

[r,p,k] = residuez(b,a)
r = 3×1 complex

  -0.1153 - 0.0182i
  -0.1153 + 0.0182i
   0.3905 + 0.0000i

p = 3×1 complex

   0.7230 + 0.5224i
   0.7230 - 0.5224i
   0.6830 + 0.0000i

k = -0.1037

Represente los polos y los ceros de la función de transferencia y superponga los polos que acaba de encontrar.

zplane(b,a)
hold on
plot(p,'^r')
hold off

Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 4 objects of type line. One or more of the lines displays its values using only markers

Utilice residuez otra vez para reconstruir la función de transferencia.

[bn,an] = residuez(r,p,k)
bn = 1×4

    0.0563   -0.0009   -0.0009    0.0563

an = 1×4

    1.0000   -2.1291    1.7834   -0.5435

Argumentos de entrada

contraer todo

Coeficientes de polinomios, especificados como vectores. Los vectores b y a especifican los coeficientes de los polinomios del sistema de tiempo discreto b(z)/a(z) en potencias descendentes de z.

B(z)=b0+b1z1+b2z2++bmzmA(z)=a0+a1z1+a2z2++anzn

Si hay múltiples raíces y a > n-1,

B(z)A(z)=r(1)1p(1)z1++r(n)1p(n)z1+k(1)+k(2)z1++k(mn+1)z(mn)

Residuos de la fracción parcial, especificados como vector.

Polos de la fracción parcial, especificados como vector.

Términos directos, especificados como vector fila.

Argumentos de salida

contraer todo

Residuos de la fracción parcial, devueltos como vector.

Polos de la fracción parcial, devueltos como vector. El número de polos es

n = length(a)-1 = length(r) = length(p)

Si p(j) = ... = p(j+s-1) es un polo de multiciplidad s, la expansión incluye términos de la fórmula

r(j)1p(j)z1+r(j+1)(1p(j)z1)2++r(j+sr1)(1p(j)z1)s

Términos directos, devueltos como vector fila. El vector de coeficientes de términos directos k está vacío si length(b) es menor que length(a); de lo contrario:

length(k) = length(b) - length(a) + 1

Coeficientes de polinomios, devueltos como vectores.

Algoritmos

residuez convierte un sistema de tiempo discreto, expresado como la relación de dos polinomios, en una fórmula de la expansión de fracciones parciales o de residuos. También vuelve a convertir la expansión de fracciones parciales en los coeficientes de polinomios originales.

Nota

Numéricamente, la expansión de fracciones parciales de una relación de polinomios es un problema mal planteado. Si el polinomio de denominador está cerca de un polinomio con múltiples raíces, entonces incluso pequeños cambios en los datos, incluidos los errores de redondeo, pueden provocar grandes cambios arbitrarios en los polos y residuos resultantes. En su lugar, debe utilizar representaciones de espacios de estados o de polos y ceros.

residuez aplica funciones estándar de MATLAB® y técnicas de fracciones parciales para encontrar r, p y k en b y a. Encuentra

  • Los términos directos a que utilizan deconv (división polinomial larga) cuando length(b) > length(a)-1.

  • Los polos que utilizan p = roots(a).

  • Todos los polos repetidos; los polos se organizan según sus multiplicidades.

  • El residuo de cada polo pj que no se repite multiplicando b(z)/a(z) por 1/(1 - pjz−1) y evaluando la función racional resultante con z = pj.

  • Los residuos de los polos repetidos resolviendo

    S2*r2 = h - S1*r1
    

    en el caso de r2 que utiliza \. h es la respuesta al impulso de b(z)/a(z) reducido, S1 es una matriz cuyas columnas son respuestas al impulso de los sistemas de primer orden compuestos por las raíces que no se repiten y r1 es una columna que contiene los residuos de las raíces que no se repiten. Cada columna de la matriz S2 es una respuesta al impulso. Para cada raíz pj de la multiciplidad sj, S2 contiene sj columnas que representan las respuestas al impulso de cada uno de los sistemas siguientes.

    11pjz1,1(1pjz1)2,,1(1pjz1)sj

    El vector h y las matrices S1 y S2 tienen n + xtra filas, donde n es el número total de raíces y el parámetro interno xtra, establecido en 1 de forma predeterminada, determina el nivel de sobredeterminación del sistema de ecuaciones.

Nota

La función residue en el lenguaje MATLAB estándar es muy similar a residuez. Calcula la expansión de fracciones parciales de sistemas de tiempo continuo en el dominio de Laplace (consulte la referencia [1]) en lugar de sistemas de tiempo discreto en el dominio z, como hace residuez.

Referencias

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | | | | | | | |