{"id":1447,"date":"2017-08-21T09:15:50","date_gmt":"2017-08-21T14:15:50","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1001\/?p=1447"},"modified":"2026-04-12T16:11:07","modified_gmt":"2026-04-12T21:11:07","slug":"transformada-z-fracciones-parciales","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u07\/transformada-z-fracciones-parciales\/","title":{"rendered":"7.3 Transformada z - Fracciones parciales, polos reales y complejos"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"concepto\">1. Fracciones parciales modificadas z<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi 5.1-1 p495, Oppenheim 10.3 p757, Hsu 4.5.D p174<\/p>\n\n\n\n<p>Muchas de las transformadas X(z) de inter\u00e9s en la pr\u00e1ctica son funciones racionales, que pueden ser expresadas como la suma de fracciones parciales, cuyas transformadas inversas pueden ser encontradas r\u00e1pidamente en la tabla de transformadas.<\/p>\n\n\n\n<p>Se busca evitar realizar el integral en el plano complejo requerido para encontrar la transformada inversa de z.<\/p>\n\n\n\n<p>El m\u00e9todo de las fracciones parciales es pr\u00e1ctico porque cada x[n] transformable se define para n\u22650, existe&nbsp; su correspondiente X[z] definida para |z|&gt;r<sub>0<\/sub> y viceversa. (r<sub>0<\/sub> es constante)<\/p>\n\n\n\n<p>Para desarrollar y probar el algoritmo con Sympy-Python, se usar\u00e1 el desarrollo de los tres ejercicios siguientes, con polos \u00fanicos, repetidos y complejos. El algoritmo final del literal c integra las soluciones anteriores.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"norepetidos\">2. Ejercicio. Polos no repetidos o diferentes<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi Ejercicio 5.3a p495. Hsu. ejercicio 4.29 p198<\/p>\n\n\n\n<p>Realice la expansi\u00f3n en fracciones parciales de,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] = \\frac{8z-19}{(z-2)(z-3)}<\/span>\n\n\n\n<p>Se puede encontrar que,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] = \\frac{3}{(z-2)}+\\frac{5}{(z-3)}<\/span>\n\n\n\n<p>de la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u07\/transformada-z-tabla\/\" data-type=\"post\" data-id=\"1413\">tabla de transformadas z<\/a> se tiene,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = [3(2)^{n-1} +5(3)^{n-1}] \\mu [n-1]<\/span>\n\n\n\n<p>Que tiene una entrada&nbsp; con t\u00e9rminos multiplicadas por \u03bc[n-1], que es un inconveniente y no deseable. Se prefieren las transformadas respecto a \u03bc[n].<\/p>\n\n\n\n<p>Observando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u07\/transformada-z-tabla\/\" data-type=\"post\" data-id=\"1413\">tabla de transformadas z<\/a>&nbsp;entre los \u00edtems 6a y 7, se tiene que si la se\u00f1al X[n] es multiplicada por u[n], el numerador tiene un factor z. Esto se consigue expandiendo en fracciones parciales X[z]\/z&nbsp; que son <strong>fracciones parciales modificadas<\/strong> cuando se tiene un factor z en el numerador y luego se restauran multiplicando el todo el resultado por z.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{8z-19}{z(z-2)(z-3)}<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> =\\frac{-19\/6}{z} + \\frac{3\/2}{z-2} + \\frac{5\/3}{z-3}<\/span>\n\n\n\n<p>que al multiplicar ambos lados por z, se obtiene,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] =\\frac{-19}{6} + \\frac{3}{2}\\frac{z}{z-2} + \\frac{5}{3}\\frac{z}{z-3}<\/span>\n\n\n\n<p>y usando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u07\/transformada-z-tabla\/\" data-type=\"post\" data-id=\"1413\">tabla de transformadas z<\/a> se obtiene:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = \\frac{-19}{6} \\delta [n] + \\Big[ \\frac{3}{2}(2)^n + \\frac{5}{3}(3)^n \\Big] \\mu[n] <\/span>\n\n\n\n<p>que es el resultado esperado y con respuesta equivalente al resolver con algoritmo iterativo para n=0,1,2,3,...<\/p>\n\n\n\n<p>Por este motivo, es recomendable siempre expandir en fracciones parciales X[z]\/z en lugar de solo X[z], pues tiene un factor z en el numerador.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Algoritmo en Python<\/h3>\n\n\n\n<p>Para realizar el ejercicio, debemos considerar usar Sympy. Las operaciones se realizan al dividir X[x]\/z y simplificar la nueva expresi\u00f3n Xzz, luego una expansi\u00f3n Xzp. El resultado se multiplica t\u00e9rmino a t\u00e9rmino por z y de a\u00f1aden a la expresi\u00f3n total Xzfp.<\/p>\n\n\n\n<p>El bloque de ingreso que se modifica para cada caso es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pz = 8*z-19\nQz = (z-2)*(z-3)<\/code><\/pre>\n\n\n\n<p>El resultado obtenido es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> Xz:\n    8*z - 19   \n---------------\n(z - 3)*(z - 2)\n\n Xz\/z:\n    8*z - 19    \n----------------\nz*(z - 3)*(z - 2)\n\n Xz\/z.apart:\n    3           5        19\n--------- + --------- - ---\n2*(z - 2)   3*(z - 3)   6*z\n\n Xz = (Xz\/z)*z\n   3*z         5*z      19\n--------- + --------- - --\n2*(z - 2)   3*(z - 3)   6 \n\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones en Python<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Transformada z- Fracciones parciales\n# Polos \u00fanicos, repetidos y complejos\n# Lathi Ejercicio 5.3a pdf495\n# https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/\nimport sympy as sym\n\n# INGRESO\nz = sym.Symbol('z')\n\nPz = 8*z-19\nQz = (z-2)*(z-3)\nXz = Pz\/Qz\n\n# PROCEDIMIENTO\nFz = sym.simplify(Xz)\n# fracciones parciales modificadas\nFzz = (Fz)\/z\nFzm = Fzz.apart()\n# fracciones parciales restaurada\nterminos = Fzm.args\nFzp = 0*z\nfor untermino in terminos:\n    Fzp = Fzp + untermino*z\n\n# SALIDA\nprint('\\n Xz:')\nsym.pprint(Xz)\nprint('\\n Xz\/z:')\nsym.pprint(Fzz)\nprint('\\n Xz\/z.apart:')\nsym.pprint(Fzm)\nprint('\\n Xz = (Xz\/z)*z')\nsym.pprint(Fzp)\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"repetidos\">3. Ejercicio. Polos repetidos<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi Ejercicio 5.3b p495<\/p>\n\n\n\n<p>Realice la expansi\u00f3n en fracciones parciales de,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] = \\frac{z(2z^2-11z+12)}{(z-1)(z-2)^{3}}<\/span>\n\n\n\n<p>Antes de realizar la expansi\u00f3n en fracciones parciales, se divide ambos lados de la expresi\u00f3n para z. Es decir se usa fracciones parciales modificadas<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{1}{z}\\frac{z(2z^2-11z+12)}{(z-1)(z-2)^{3}}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}}<\/span>\n\n\n\n<p>donde el modelo de las fracciones parciales a aplicar es:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}} = \\frac{k}{z-1} + \\frac{a_0}{(z-2)^3} + \\frac{a_1}{(z-2)^2} + \\frac{a_2}{(z-2)}<\/span>\n\n\n\n<p>Para encontrar las constantes, se eval\u00faa la expresi\u00f3n de la izquierda con los valores de cada ra\u00edz del denominador, en cada caso se obvia el t\u00e9rmino de la ra\u00edz en el denominador,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k = \\frac{(2z^2-11z+12)}{\\cancel{z-1}(z-2)^{3}} \\Bigg|_{z=1} = \\frac{(2(1)^2-11(1)+12)}{((1)-2)^{3}} = -3 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a_0 = \\frac{(2z^2-11z+12)}{(z-1)\\cancel{(z-2)^{3}}}\\Bigg|_{z=2} = \\frac{(2(2)^2-11(2)+12)}{((2)-1)} = -2 <\/span>\n\n\n\n<p>con lo que la expresi\u00f3n modelo se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}} = \\frac{-3}{z-1} + \\frac{-2}{(z-2)^3} + \\frac{a_1}{(z-2)^2} + \\frac{a_2}{(z-2)}<\/span>\n\n\n\n<p>Una forma de resolver es por ejemplo para a<sub>2<\/sub>, multiplicar ambos lados por z y hacer que z\u2192\u221e<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}} z = z \\Big[\\frac{-3}{z-1} + \\frac{-2}{(z-2)^3} + \\frac{a_1}{(z-2)^2} + \\frac{a_2}{(z-2)}\\Big] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}} z = \\frac{-3z}{z-1} + \\frac{-2z}{(z-2)^3} + \\frac{a_1z}{(z-2)^2} + \\frac{a_2z}{(z-2)}\\Big] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = \\frac{-3}{1-1\/z} + \\frac{-2z}{(z-2)^3} + \\frac{a_1z}{(z-2)^2} + \\frac{a_2}{(1-2\/z)}\\Big] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = -3 + (0) + (0) + a_2 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a_2 =3<\/span>\n\n\n\n<p>quedando solamente una inc\u00f3gnita a<sub>1<\/sub> por resolver,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2z^2-11z+12)}{(z-1)(z-2)^{3}} = \\frac{-3}{z-1} + \\frac{-2}{(z-2)^3} + \\frac{a_1}{(z-2)^2} + \\frac{3}{(z-2)}<\/span>\n\n\n\n<p>El valor de a<sub>1<\/sub> se puede determinar haciendo z tomar un valor conveniente, es decir z=0 en ambos lados de la ecuaci\u00f3n<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{(2(0)^2-11(0)+12)}{((0)-1)((0)-2)^{3}} = \\frac{-3}{(0)-1} + \\frac{-2}{((0)-2)^3} + \\frac{a_1}{((0)-2)^2} + \\frac{3}{((0)-2)}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{12}{(-1)(-8)} = \\frac{-3}{-1} + \\frac{-2}{-8} + \\frac{a_1}{4} + \\frac{-3}{-2}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{3}{2} = 3 + \\frac{1}{4} + \\frac{a_1}{4} - \\frac{3}{2}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{6}{2} - \\frac{13}{4}= \\frac{a_1}{4} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -\\frac{1}{4}= \\frac{a_1}{4} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> a_1 = -1 <\/span>\n\n\n\n<p>completando la expresi\u00f3n:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{-3}{z-1} + \\frac{-2}{(z-2)^3} + \\frac{-1}{(z-2)^2} + \\frac{3}{(z-2)}<\/span>\n\n\n\n<p>teniendo finalmente X[z] al multiplicar ambos lados por z,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] = \\frac{-3z}{z-1} + \\frac{-2z}{(z-2)^3} + \\frac{-1z}{(z-2)^2} + \\frac{3z}{(z-2)}<\/span>\n\n\n\n<p>y usando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u07\/transformada-z-tabla\/\" data-type=\"post\" data-id=\"1413\">tabla de transformadas z<\/a> se obtiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = \\Big[-3 -2 \\frac{n(n-1)}{8}(2)^n - \\frac{n}{2}(2)^n + 3(2)^n \\Big] \\mu [n]<\/span>\n\n\n\n<p>simplificando un poco:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = \\Big[-3 -\\Big(\\frac{n(n-1)}{4} + \\frac{n}{2} - 3\\Big)(2)^n \\Big] \\mu [n]<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = -\\Big[3 +\\frac{1}{4}(n^2 + n-12)(2)^n \\Big] \\mu [n]<\/span>\n\n\n\n<p>Usando el algoritmo en Python anterior, el bloque de ingreso cambia a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pz = z*(2*z**2-11*z+12)\nQz = (z-1)*(z-2)**3<\/code><\/pre>\n\n\n\n<p>con el resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> Xz:\n  \/   2            \\\nz*\\2*z  - 11*z + 12\/\n--------------------\n         3          \n  (z - 2) *(z - 1)  \n\n Xz\/z:\n   2            \n2*z  - 11*z + 12\n----------------\n       3        \n(z - 2) *(z - 1)\n\n Xz\/z.apart:\n    3       3        1          2    \n- ----- + ----- - -------- - --------\n  z - 1   z - 2          2          3\n                  (z - 2)    (z - 2) \n\n Xz = (Xz\/z)*z\n   3*z     3*z       z         2*z   \n- ----- + ----- - -------- - --------\n  z - 1   z - 2          2          3\n                  (z - 2)    (z - 2) \n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>comparando con el resultado anal\u00edtico es el mismo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"complejos\">4. Ejercicio. Polos complejos<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi Ejercicio 5.3c p495<\/p>\n\n\n\n<p>Realice la expansi\u00f3n en fracciones parciales de,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z] = \\frac{2 z(3z+17)}{(z-1)(z^2 - 6z+25)}<\/span>\n\n\n\n<p>Se realiza la separaci\u00f3n en fracciones parciales modificadas<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{2(3z+17)}{(z-1)(z^2 - 6z+25)}<\/span>\n\n\n\n<p>usando el m\u00e9todo \"cubrir\" de Heaviside se tiene que :<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k = \\frac{2(3z+17)}{\\cancel{(z-1)}(z^2 - 6z+25)} \\Big|_{z=1}=2<\/span>\n\n\n\n<p>queda por resolver la segunda parte de la fracci\u00f3n.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z} = \\frac{2}{(z-1)}+\\frac{Az+B}{z^2 - 6z+25}<\/span>\n\n\n\n<p>Usando el <em><strong>m\u00e9todo de los factores cuadr\u00e1ticos<\/strong><\/em>, se multiplica ambos lados por z y z\u2192\u221e<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z}z= z\\frac{2}{(z-1)}+z\\frac{Az+B}{z^2 - 6z+25}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = \\frac{2}{(1-1\/z)}+\\frac{Az^2+Bz}{(z^2 - 6z+25)}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = \\frac{2}{(1-1\/z)}+\\frac{A+B\\frac{1}{z}}{\\frac{1}{z^2}(z^2 - 6z+25)}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = \\frac{2}{(1-1\/z)}+\\frac{A+B\\frac{1}{z}}{1 - 6\\frac{1}{z}+25\\frac{1}{z^2}}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 = 2+A<\/span>\n\n\n\n<p>con lo que A = -2 , para encontrar B se usa un valor conveniente de z=0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{2 z(3z+17)}{(z-1)(z^2 - 6z+25)} = \\frac{2}{(z-1)}+\\frac{Az+B}{z^2 - 6z+25}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{2 (0+17)}{(0-1)(0^2 - 6(0)+25)} = \\frac{2}{((0)-1)}+\\frac{-2(0)+B}{(0^2 - 6(0)+25)}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{34}{-25} = +\\frac{2}{-1}+\\frac{B}{25}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> -\\frac{34}{25} + 2=\\frac{B}{25}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">-34+ 2(25) = B <\/span>\n\n\n\n<p>con lo que B=16<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{X[z]}{z}= \\frac{2}{(z-1)}+\\frac{-2z+16}{z^2 - 6z+25}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> X[z]= \\frac{2}{(z-1)}+\\frac{z(-2z+16)}{z^2 - 6z+25}<\/span>\n\n\n\n<p>con lo que es posible usar la tabla de transformadas z usando los \u00edtems 2a y 12c. Para 12c los valores de A = -2, B = 16, |\u03b3| =5 y a=-3.<\/p>\n\n\n\n<p><span class=\"wp-katex-eq katex-display\" data-display=\"true\"> r = \\sqrt{\\frac{(-2)^2 (5)^2+(16)^2-2(-2)(-3)(16)}{(5^2 -(-3)^2}} <\/span> <span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = \\sqrt{\\frac{100+256-192}{25-9}} =3.2 <\/span><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\beta = \\cos^{-1} \\Big(\\frac{-(-3)}{5} \\Big) = 0.927 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\theta = \\tan^{-1} \\Bigg(\\frac{(-2)(-3)-16}{(-2)\\sqrt{(5^2 -(-3)^2}}\\Bigg) = \\tan^{-1}\\Big( \\frac{-10}{-8}\\Big) = -2.246 <\/span>\n\n\n\n<p>reemplazando en la transformada, se encuentra x[n].<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = [2+3.2(5)^n \\cos(0.927n-2.246)] \\mu [n] <\/span>\n\n\n\n<p>pasamos a probar el algoritmo, donde se encuentra que para el denominador hay ra\u00edces complejas. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pz = 2<em>(3<\/em>z+17)<br>Qz = (z-1)<em>(z<\/em><em>2-6<\/em>z+25)<\/code><\/pre>\n\n\n\n<p>Otra forma de observar es que las funciones parciales a\u00fan entregan resultados con t\u00e9rminos que tienen el denominador con grado 2. Donde hay que usar expresiones de la tabla de transformadas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> Xz:\n     2*z*(3*z + 17)    \n-----------------------\n        \/ 2           \\\n(z - 1)*\\z  - 6*z + 25\/\n\n Xz en fracciones parciales\n   2*z*(z - 8)     2*z \n- ------------- + -----\n   2              z - 1\n  z  - 6*z + 25        \nparametros cuadraticos: \n-2*z*(z - 8)\/(z**2 - 6*z + 25) :\nr \t 3.2015621187164243\ngamma \t 5.0\nbeta \t 0.9272952180016123\ntheta \t 0.8960553845713439\n&gt;&gt;&gt;  <\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Algoritmo en Python<\/h2>\n\n\n\n<p>El algoritmo inicia de la misma forma que en la secci\u00f3n anterior. Ahora hay que revisar el grado del denominador en cada t\u00e9rmino. Si es de grado 2, se calculan los valores de r, \u03b2 y \u03b8 para armar las transformada a partir de la tabla.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Transformada z- Fracciones parciales\n# Polos \u00fanicos, repetidos y complejos\n# Lathi Ejercicio 5.3a pdf495\n# https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/ss-unidades\/#unidad7\nimport numpy as np\nimport sympy as sym\n\n# INGRESO\nz = sym.Symbol('z')\n\nPz = 2*z*(3*z+17)\nQz = (z-1)*(z**2-6*z+25)\n\n#Pz = z*(2*z**2-11*z+12)\n#Qz = (z-1)*(z-2)**3\n\n##Pz = 8*z-19\n##Qz = (z-2)*(z-3)\nXz = Pz\/Qz\n\n# PROCEDIMIENTO\ndef apart_z(Fz):\n    ''' fracciones parciales en dominio z\n        modifica con factor 1\/z\n    '''\n    Fz = sym.simplify(Fz)\n    # fracciones parciales modificadas con 1\/z\n    Fzz = (Fz)\/z\n    Fzm = sym.apart(Fzz,z)\n    # restaura z\n    term_suma = sym.Add.make_args(Fzm)\n    Fzp = 0*z\n    for term_k in term_suma:\n        Fzp = Fzp + term_k*z\n    return(Fzp)\n\ndef Q_cuad_z_parametros(Fz):\n    ''' parametros cuadraticos en dominio z\n    '''\n\n    def Q_cuad_z_term(untermino):\n        ''' parametros cuadraticos en dominio z\n            de un termino de fraccin parcial\n        '''\n        unparametro ={}\n        # revisa denominador cuadratico\n        &#x5B;numerador,denominador] = (untermino).as_numer_denom()\n        gradoD = 0\n        coeficientesD = denominador\n        gradoN = 0\n        coeficientesN = numerador\n        if not(denominador.is_constant()):\n            denominador = denominador.as_poly()\n            gradoD = denominador.degree()\n            coeficientesD = denominador.coeffs()\n        if not(numerador.is_constant()):\n            numerador = numerador.as_poly()\n            gradoN = numerador.degree()\n            coeficientesN = numerador.coeffs()\n        if gradoD == 2 and gradoN==2:\n            a = float(coeficientesD&#x5B;1])\/2\n            gamma2 = float(coeficientesD&#x5B;2])\n            gamma = np.sqrt(gamma2)\n            A = float(coeficientesN&#x5B;0])\n            B = float(coeficientesN&#x5B;1])\n            rN = (A**2)*gamma2 + B**2 - 2*A*a*B\n            rD = gamma2 - a**2\n            r = np.sqrt(rN\/rD)\n            beta = np.arccos(-a\/gamma)\n            thetaN = A*a-B\n            thetaD = A*np.sqrt(gamma2-a**2)\n            theta = np.arctan(thetaN\/thetaD)\n            unparametro = {'r':r,\n                           'gamma':gamma,\n                           'beta':beta,\n                           'theta':theta}\n        return(unparametro)\n\n    Fz = apart_z(Fz)\n    # parametros denominador cuadratico\n    Qs2 = {}\n    term_suma = sym.Add.make_args(Fz)\n    for term_k in term_suma:\n        Qs2_k = Q_cuad_z_term(term_k)\n        if len(Qs2_k)&gt;0:\n            Qs2&#x5B;term_k] = Qs2_k\n    return(Qs2)\n\nFz  = apart_z(Xz)\nQs2 = Q_cuad_z_parametros(Fz)\n\n# SALIDA\nprint('\\n Xz:')\nsym.pprint(Xz)\nprint('\\n Xz en fracciones parciales')\nsym.pprint(Fz)\nif len(Qs2)&gt;0:\n    print('parametros cuadraticos: ')\n    for Qs2_k in Qs2:\n        print(Qs2_k,':')\n        for cadauno in Qs2&#x5B;Qs2_k].keys():\n            print(cadauno,'\\t',Qs2&#x5B;Qs2_k]&#x5B;cadauno])\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Algoritmo con busca_polosceros_z() y gr\u00e1dicas con gr\u00e1fica<\/h2>\n\n\n\n<p>resultado del algoritmo, para el ejercicio de polos complejos.<\/p>\n\n\n\n<p>Se presenta el concepto de uso de la funci\u00f3n busca_polosceros_z(Fz) , sin embargo luego se implementa junto con la b\u00fasqueda de polos representados por una variable s\u00edmbolo en telg1001.py:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>_Fz_as_PQ_roots(Fz,z)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code> Hz:\n     2\u22c5z\u22c5(3\u22c5z + 17)    \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        \u239b 2           \u239e\n(z - 1)\u22c5\u239dz  - 6\u22c5z + 25\u23a0\nfracciones parciales z:\n z\u22c5(16 - 2\u22c5z)    2\u22c5z \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\n 2              z - 1\nz  - 6\u22c5z + 25        \n\npolos: {1: 1, 3 - 4*I: 1, 3 + 4*I: 1}\nceros: {-17\/3: 1, 0: 1}\n\nparametros cuadraticos: \nz*(16 - 2*z)\/(z**2 - 6*z + 25) :\nr : 3.2015621187164243\ngamma : 5.0\nbeta : 0.9272952180016123\ntheta : 0.8960553845713439<\/code><\/pre>\n\n\n\n<p>Instrucciones en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Transformada z- Fracciones parciales\n# Polos \u00fanicos, repetidos y complejos\n# Lathi Ejercicio 5.3a pdf495\n# https:\/\/blog.espol.edu.ec\/algoritmos101\/senales\/ss-unidades\/#unidad7\nimport numpy as np\nimport sympy as sym\nimport telg1001 as ss\n \n# INGRESO\nz = sym.Symbol('z')\n \n# Pz = z**2\n# Qz = (z-0.7)*(z+0.5)\n\n\n#Pz = 8*z-19\n#Qz = (z-2)*(z-3)\n\n#Pz = z*(2*z**2-11*z+12)\n#Qz = (z-1)*(z-2)**3\n\nPz = 2*z*(3*z+17)\nQz = (z-1)*(z**2-6*z+25)\n\nHz = Pz\/Qz\n \n# PROCEDIMIENTO \nFz  = ss.apart_z(Hz)\nQs2 = ss.Q_cuad_z_parametros(Fz)\n\ndef busca_polosceros_z(Fz):\n    def polosceros_simple(Hs):\n        ''' Busca_polo de un termino sin exp(-a*s)\n        '''\n        Hs = sym.simplify(Hs,inverse=True)\n        # Hs deber\u00eda ser un solo termino suma\n        Hs_factor = sym.factor(Hs,z)\n        # polos y ceros de termino Hs\n        &#x5B;P,Q] = Hs_factor.as_numer_denom()\n        P = sym.poly(P,z)  # numerador\n        Q = sym.poly(Q,z)  # denominador\n        P_ceros = sym.roots(P)\n        Q_polos = sym.roots(Q)\n        respuesta = {'Q_polos' : Q_polos,\n                     'P_ceros' : P_ceros}\n        return(respuesta)\n\n    # polos y ceros\n    polosceros = {} ; \n    term_sum = sym.Add.make_args(Fz)\n    for term_k in term_sum:\n        PZ_k = polosceros_simple(term_k)\n        polosceros&#x5B;term_k] = PZ_k\n    # integra polos\n    Q_polos = {} ; P_ceros = {}\n    P_ceros = polosceros_simple(Fz)\n    for term_k in polosceros:\n        polos = polosceros&#x5B;term_k]&#x5B;'Q_polos']\n        for unpolo in polos:\n            if unpolo in Q_polos:\n                veces = max(&#x5B;Q_polos&#x5B;unpolo],polos&#x5B;unpolo]])\n                Q_polos&#x5B;unpolo] = veces\n            else:\n                Q_polos&#x5B;unpolo] = polos&#x5B;unpolo]\n    PZ_k = polosceros_simple(Fz)\n    P_ceros = PZ_k&#x5B;'P_ceros']\n    return(&#x5B;Q_polos,P_ceros])\n\n&#x5B;Q_polos,P_ceros] = busca_polosceros_z(Fz)\n\n\n# SALIDA\nprint('\\n Hz:')\nsym.pprint(Hz)\nprint('fracciones parciales z:')\nsym.pprint(Fz)\nprint('\\npolos:',Q_polos)\nprint('ceros:',P_ceros)\nif len(Qs2)&gt;0:\n    print('\\nparametros cuadraticos: ')\n    for unterm in Qs2:\n        print(unterm,':')\n        for unparam in Qs2&#x5B;unterm]:\n            print(unparam,':',Qs2&#x5B;unterm]&#x5B;unparam])\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Gr\u00e1fica en Python de polos y ceros<\/h2>\n\n\n\n<p>Instrucciones adicionales al algoritmo anterior, la funci\u00f3n se incorpora a telg1001.py<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/fraccionesParcialesZPolosZerosgraf.png\" alt=\"fracciones Parciales Z Polos Ceros gr\u00e1fica\" class=\"wp-image-20807\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICAR polos y ceros en z\nimport matplotlib.pyplot as plt\n\ndef graficar_Fz_polos(Fz,Q_polos={},P_ceros={},\n                z_a=1,z_b=0,muestras=101,f_nombre='F',\n                solopolos=False,precision=4,casicero=1e-10):\n    ''' polos y ceros plano z imaginario\n    '''\n    fig_zROC, graf_ROC = plt.subplots()\n    # limite con radio 1\n    radio1 = plt.Circle((0,0),1,color='lightsalmon',\n                        fill=True)\n    radio2 = plt.Circle((0,0),1,linestyle='dashed',\n                        color='red',fill=False)\n    graf_ROC.add_patch(radio1)\n    for unpolo in Q_polos.keys():\n        &#x5B;r_real,r_imag] = unpolo.as_real_imag()\n        unpolo_radio = np.abs(unpolo)\n        unpolo_ROC = plt.Circle((0,0),unpolo_radio,\n                          color='lightgreen',fill=True)\n        graf_ROC.add_patch(unpolo_ROC)\n    graf_ROC.add_patch(radio2) # borde r=1\n    graf_ROC.axis('equal')\n    # marcas de r=1 y polos\n    for unpolo in Q_polos.keys():\n        x_polo = np.round(float(sym.re(unpolo)),precision)\n        y_polo = np.round(float(sym.im(unpolo)),precision)\n        etiq_polo = x_polo\n        if y_polo&gt;casicero:\n            etiq_polo= etiq_plo+1j*y_polo\n        etiqueta = 'polo: '+str(etiq_polo)\n        graf_ROC.scatter(x_polo,y_polo,marker='x',\n                        color='red',label = etiqueta)\n        etiqueta = &quot;(&quot;+str(x_polo) +','+str(y_polo)+&quot;)&quot;\n        plt.annotate(etiqueta,(x_polo,y_polo), rotation=45)\n    # marcas de ceros\n    for uncero in P_ceros.keys():\n        x_cero = np.round(float(sym.re(uncero)),precision)\n        y_cero = np.round(float(sym.im(uncero)),precision)\n        etiq_cero = x_cero\n        if y_cero&gt;casicero:\n            etiq_cero= etiq_plo+1j*y_cero\n        etiqueta = 'cero: '+str(etiq_cero)\n        graf_ROC.scatter(x_cero,y_cero,marker='o',\n                        color='blue',label = etiqueta)\n        etiqueta = &quot;(&quot;+str(x_cero) + ','+str(y_cero)+&quot;)&quot;\n        plt.annotate(etiqueta,(x_cero,y_cero), rotation=45)\n    # limita radio 1\n    graf_ROC.plot(1,0,'o',color='red',\n                 label ='radio:'+str(1))\n    graf_ROC.axhline(0,color='grey')\n    graf_ROC.axvline(0,color='grey')\n    graf_ROC.grid()\n    graf_ROC.legend()\n    graf_ROC.set_xlabel('Re&#x5B;z]')\n    graf_ROC.set_ylabel('Imag&#x5B;z]')\n    untitulo = r'ROC '+f_nombre+'&#x5B;z]=$'\n    untitulo = untitulo+str(sym.latex(Fz))+'$'\n    graf_ROC.set_title(untitulo)\n    return(fig_zROC)\n\n# para graficar polos y ceros\nf_nombre = 'H'    # nombre de funci\u00f3n&#x5B;z]: H,X,Y, etc\n# grafica de polos y zeros\nfig_ROC = ss.graficar_Fz_polos(Hz,Q_polos,P_ceros,\n                      muestras=101,f_nombre=f_nombre)\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algoritmo\">Algoritmo simplificado con funciones<\/h2>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code> Hz:\n          2        \n         z         \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(z - 0.7)\u22c5(z + 0.5)\n\n fracciones parciales z:\n0.416666666666667\u22c5z   0.583333333333333\u22c5z\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n      z + 0.5               z - 0.7      \n\n polos: {0.700000000000000: 1, -0.500000000000000: 1}\nceros: {0: 2}\n\n h&#091;n]:\n\u239b                      n                        n\u239e     \n\u239d0.416666666666667\u22c5-0.5  + 0.583333333333333\u22c50.7 \u23a0\u22c5\u03b8(n)\n<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Transformada z- Fracciones parciales\n# Polos \u00fanicos, repetidos y complejos, transformada inversa\n# Lathi Ejercicio 5.3a pdf495 # grafica polos y ceros H(z)\n# https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u07\/transformada-z-fracciones-parciales\/\nimport numpy as np\nimport sympy as sym\nimport telg1001 as ss\n  \n# INGRESO\nz = sym.Symbol('z')\nn = sym.Symbol('n', real=True)\n\nPz = z**2\nQz = (z-0.7)*(z+0.5)\n\n#Pz = 8*z-19\n#Qz = (z-2)*(z-3)\n\n#Pz = z*(2*z**2-11*z+12)\n#Qz = (z-1)*(z-2)**3\n\n#Pz = 2*z*(3*z+17)\n#Qz = (z-1)*(z**2-6*z+25)\n\nHz = Pz\/Qz\n \nmuestras = 10 #para la gr\u00e1fica\nf_nombre = 'H'    # nombre de funci\u00f3n&#x5B;z]: H,X,Y, etc\n  \n# PROCEDIMIENTO \nFz  = ss.apart_z(Hz)\nQs2 = ss.Q_cuad_z_parametros(Fz)\n&#x5B;Q_polos,P_ceros] = ss.busca_polosceros_z(Fz)\nhn = ss.inverse_z_transform(Fz,z,n)\n \n# SALIDA\nprint('\\n Hz:')\nsym.pprint(Hz)\nprint('\\n fracciones parciales z:')\nsym.pprint(Fz)\nprint('\\n polos:',Q_polos)\nprint('ceros:',P_ceros)\nif len(Qs2)&gt;0:\n    print('\\n parametros cuadraticos: ')\n    for unterm in Qs2:\n        print(unterm,':')\n        for unparam in Qs2&#x5B;unterm]:\n            print(unparam,':',Qs2&#x5B;unterm]&#x5B;unparam])\nprint('\\n h&#x5B;n]:')\nsym.pprint(hn)\n \n# GRAFICA ------------------\nimport matplotlib.pyplot as plt\n# grafica de polos y zeros\nfig_ROC = ss.graficar_Fz_polos(Hz,Q_polos,P_ceros,\n                      muestras,f_nombre)\n#plt.show()\n \n# grafica F&#x5B;n]\nfn = sym.lambdify(n,hn, modules=ss.equivalentes)\nki = np.arange(0,muestras,1)\nfi = fn(ki)\nfig_fn, graf_fn = plt.subplots()\nplt.stem(ki,fi)\nplt.xlabel('ki')\nplt.ylabel(f_nombre.lower()+'&#x5B;n]')\nuntitulo = r''+f_nombre.lower()+'&#x5B;n]=$'\nuntitulo = untitulo+str(sym.latex(hn))+'$'\nplt.title(untitulo)\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group alignwide has-medium-font-size is-content-justification-center is-layout-flex wp-container-core-group-is-layout-b02886af wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">fracci\u00f3n parcial z<\/a><\/p>\n\n\n\n<p>polos:<\/p>\n\n\n\n<p><a href=\"#norepetidos\">no repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#repetidos\">repetidos<\/a><\/p>\n\n\n\n<p><a href=\"#complejos\">complejos<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>fracci\u00f3n parcial z polos: no repetidos repetidos complejos algoritmo gr\u00e1fica 1. Fracciones parciales modificadas z Referencia: Lathi 5.1-1 p495, Oppenheim 10.3 p757, Hsu 4.5.D p174 Muchas de las transformadas X(z) de inter\u00e9s en la pr\u00e1ctica son funciones racionales, que pueden ser expresadas como la suma de fracciones parciales, cuyas transformadas inversas pueden ser encontradas r\u00e1pidamente [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-ss-unidades","format":"standard","meta":{"footnotes":""},"categories":[177],"tags":[],"class_list":["post-1447","post","type-post","status-publish","format-standard","hentry","category-ss-u07"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=1447"}],"version-history":[{"count":27,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1447\/revisions"}],"predecessor-version":[{"id":24203,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1447\/revisions\/24203"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}