{"id":2832,"date":"2018-01-12T07:10:47","date_gmt":"2018-01-12T12:10:47","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1001\/?p=2832"},"modified":"2026-04-05T21:29:23","modified_gmt":"2026-04-06T02:29:23","slug":"s2eva2012ti_t3-lti-dt-causal-coeficientes-de-respuesta-impulso-hn","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-s2eva\/s2eva2012ti_t3-lti-dt-causal-coeficientes-de-respuesta-impulso-hn\/","title":{"rendered":"s2Eva2012TI_T3 LTI DT causal, coeficientes de respuesta impulso h[n]"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-2eva\/2eva2012ti_t3-lti-dt-causal-respuesta-impulso\/\" data-type=\"post\" data-id=\"1954\">2Eva2012TI_T3 LTI DT causal, coeficientes de respuesta impulso h[n]<\/a><\/p>\n\n\n\n<p>La ecuaci\u00f3n de diferencias descrita se usa para crear el diagrama de bloques.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] - \\frac{5}{4} y[n-1] + \\frac{1}{36} y[n-2] + \\frac{1}{18} y[n-3] = x[n] - \\frac{1}{2} x[n-1] <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal a. Respuesta impulso h[n]<\/h2>\n\n\n\n<p>La forma para usar transformadas z requiere que se desplazar tres unidades.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n+3] - \\frac{5}{4} y[n+2] + \\frac{1}{36} y[n+1] + \\frac{1}{18} y[n] = x[n+3] - \\frac{1}{2} x[n+2] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z^3 Y[z] - \\frac{5}{4} z^2 Y[z] + \\frac{1}{36} z Y[z] + \\frac{1}{18} Y[z] = z^3X[z] - \\frac{1}{2} z^2 X[z] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> (z^3 - \\frac{5}{4} z^2 + \\frac{1}{36} z + \\frac{1}{18}) Y[z] = (z^3 - \\frac{1}{2} z^2) X[z] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H[z] = \\frac{Y[z]}{X[z]} = \\frac{z^3 - \\frac{1}{2} z^2}{z^3 - \\frac{5}{4} z^2 + \\frac{1}{36} z + \\frac{1}{18}} <\/span>\n\n\n\n<p>las ra\u00edces del denominador obtenidas con Sympy-Python:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; sym.roots(Pz)\n{1\/2: 1, 0: 2}\n&gt;&gt;&gt; sym.factor(Pz)\nz**2*(2*z - 1)\/2\n&gt;&gt;&gt; sym.factor(Qz)\n(4*z - 1)*(9*z**2 - 9*z - 2)\/36\n&gt;&gt;&gt; sym.roots(Qz)\n{1\/4: 1, 1\/2 - sqrt(17)\/6: 1, 1\/2 + sqrt(17)\/6: 1}\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p><strong>Observaci\u00f3n<\/strong>: existe una ra\u00edz con distancia al origen superior al radio=1, por lo que habr\u00eda un termino creciente no acotado.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"571\" height=\"456\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/01\/2Eva2012TI_T3_graf_Hzpolos01.png\" alt=\"2Eva2012TI_T3 graf Hz polos 01\" class=\"wp-image-19743\" \/><\/figure>\n\n\n\n<p>que se observa tambi\u00e9n como:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/01\/2Eva2012TI_T3_graf_Hzpolos02.png\" alt=\"2Eva2012TI_T3 graf Hz polos 02\" class=\"wp-image-19744\" \/><\/figure>\n\n\n\n<p>El modelo se puede plantear como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H[z] = \\frac{z^2\\Big(z-\\frac{1}{2}\\Big)}{\\Big(z-\\frac{1}{4}\\Big)\\Big(z^2-z-\\frac{2}{9}\\Big)}<\/span>\n\n\n\n<p>para usar fracciones parciales modificadas, se multiplica cada lado por 1\/z:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{H[z]}{z} = \\frac{z\\Big(z-\\frac{1}{2}\\Big)}{\\Big(z-\\frac{1}{4}\\Big)\\Big(z^2-z-\\frac{2}{9}\\Big)}<\/span>\n\n\n\n<p>Se puede plantear un modelo de respuesta por cada ra\u00edz como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{H[z]}{z} = \\frac{k1}{z-\\frac{1}{4}}+\\frac{k_2 z +k_3}{z^2-z-\\frac{2}{9}}<\/span>\n\n\n\n<p>usando el m\u00e9todo de Heaviside,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1 = \\frac{z\\Big(z-\\frac{1}{2}\\Big)}{\\cancel{\\Big(z-\\frac{1}{4}\\Big)}\\Big(z^2-z-\\frac{2}{9}\\Big)}\\Big|_{z=\\frac{1}{4}} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1 = \\frac{\\frac{1}{4}\\Big(\\frac{1}{4}-\\frac{1}{2}\\Big)}{\\Big(\\frac{1}{4}^2-\\frac{1}{4}-\\frac{2}{9}\\Big)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_1 = -\\frac{1}{16}\\frac{1}{\\frac{(4)(9)-(16)(9)-(2)(16)(4)}{(16)(4)(9)}} =\\frac{36}{236}<\/span>\n\n\n\n<p>con lo que ahora en la expresi\u00f3n se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{H[z]}{z} = \\frac{z\\Big(z-\\frac{1}{2}\\Big)}{\\Big(z-\\frac{1}{4}\\Big)\\Big(z^2-z-\\frac{2}{9}\\Big)} =\\frac{\\frac{36}{236}}{z-\\frac{1}{4}}+\\frac{k_2 z +K_3}{z^2-z-\\frac{2}{9}} = <\/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{H[z]}{z} z = \\frac{z^2\\Big(z-\\frac{1}{2}\\Big)}{\\Big(z-\\frac{1}{4}\\Big)\\Big(z^2-z-\\frac{2}{9}\\Big)} =\\frac{\\frac{36}{236}z}{z-\\frac{1}{4}}+z\\frac{k_2 z +K_3}{z^2-z-\\frac{2}{9}} = <\/span>\n\n\n\n<p>se divide numerador y denominador del lado izquierdo para 1\/z<sup>3<\/sup> y el lado derecho el primer termino 1\/z y el segundo termino 1\/z<sup>2<\/sup><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Big(1-\\frac{1}{2}\\frac{1}{z}\\Big)}{\\Big(1-\\frac{1}{4}\\frac{1}{z}\\Big)\\Big(1-\\frac{1}{z}-\\frac{2}{9}\\frac{1}{z^2}\\Big)} =\\frac{\\frac{36}{236}}{1-\\frac{1}{4}\\frac{1}{z}}+\\frac{k_2 +K_3\\frac{1}{z}}{1-\\frac{1}{z}-\\frac{2}{9}\\frac{1}{z}}<\/span>\n\n\n\n<p>y cuando z\u2192\u221e<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{\\Big(1-\\frac{1}{2}(0)\\Big)}{\\Big(1-\\frac{1}{4}(0)\\Big)\\Big(1-(0)-\\frac{2}{9}(0)\\Big)} =\\frac{\\frac{36}{236}}{1-\\frac{1}{4}(0)}+\\frac{k_2 +K_3(0)}{1-(0)-\\frac{2}{9}(0)}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 1 =\\frac{36}{236}+k_2<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> k_2 = 1-\\frac{36}{236}=\\frac{200}{236} = \\frac{50}{59}<\/span>\n\n\n\n<p>con lo que K<sub>2<\/sub>=50\/59 , para encontrar K<sub>3<\/sub> se usa un valor conveniente de z=0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H[0] = \\frac{(0)\\Big((0)-\\frac{1}{2}\\Big)}{\\Big((0)-\\frac{1}{4}\\Big)\\Big((0)^2-(0)-\\frac{2}{9}\\Big)} =\\frac{\\frac{36}{236}}{(0)-\\frac{1}{4}}+\\frac{\\frac{50}{59}(0) +K_3}{(0)^2-(0)-\\frac{2}{9}} = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 0 =\\frac{\\frac{36}{236}}{-\\frac{1}{4}}+\\frac{K_3}{-\\frac{2}{9}} = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_3 = \\frac{2}{9}\\frac{\\frac{36}{236}}{-\\frac{1}{4}} = -4\\frac{2}{9}\\frac{36}{236} = -\\frac{8}{59}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{H[z]}{z} = \\frac{36}{236}\\frac{1}{z-\\frac{1}{4}}+\\frac{50\/59 z -8\/59}{z^2-z-\\frac{2}{9}} = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{H[z]}{z} = \\frac{36}{236}\\frac{1}{z-\\frac{1}{4}}+\\frac{2}{59}\\frac{25 z -4}{z^2-z-\\frac{2}{9}} <\/span>\n\n\n\n<p>y restaurando en fracciones parciales al multiplicar por z cada lado<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> H[z] = \\frac{9}{59}\\frac{z}{z-\\frac{1}{4}}+\\frac{2}{59}\\frac{z(25 z -4)}{z^2-z-\\frac{2}{9}} <\/span>\n\n\n\n<p>los valores no se ajustan al modelo planteado en el enunciado, y existe un polo con radio&gt;1, por lo que el sistema es creciente,y otro polo en posici\u00f3n r&lt;0.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h[n] = a \\alpha^n \\mu [n] + b \\beta^n \\mu[n] + c \\gamma^n \\mu [n] <\/span>\n\n\n\n<p>obtenga entonces los valores pertinentes.<\/p>\n\n\n\n<figure class=\"wp-block-table alignwide\"><table><tbody><tr><td>a= 9\/59 = 0.1525<\/td><td>b= ... creciente sin cota, con polo mayor a 1<\/td><td>c=... con polo negativo, lo que es un t\u00e9rmino con signo alternado.<\/td><\/tr><tr><td>\u03b1= 1\/4 = 0.25<\/td><td>\u03b2 = 1\/2 + np.sqrt(17)\/6 = 1.1871842709362768<\/td><td>\u03b3 = 1\/2 - np.sqrt(17)\/6 = -0.18718427093627676<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Resultados iniciales con el algoritmo<\/h3>\n\n\n\n<p>Se encuentra que hay un t\u00e9rmino que no se puede usar para encontrar la transformada z.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code> Hz:\n            2      \n       3   z       \n      z  - --      \n           2       \n-------------------\n        2          \n 3   5*z    z    1 \nz  - ---- + -- + --\n      4     36   18\n\n Hz en fracciones parciales\n50*z*(z - 4\/25)       9*z     \n--------------- + ------------\n   \/ 2       2\\   59*(z - 1\/4)\n59*|z  - z - -|               \n   \\         9\/               \n\n Hz en factores\n               2                       \n              z *(z - 0.5)             \n---------------------------------------\n           \/ 2                        \\\n(z - 0.25)*\\z  - z - 0.222222222222222\/\n\n {Q_polos:veces}: {1\/4: 1, 1\/2 - sqrt(17)\/6: 1, 1\/2 + sqrt(17)\/6: 1}\n {P_ceros:veces}: {1\/2: 1, 0: 2}\n\nparametros cuadraticos: \n termino: 50*z*(z - 4\/25)\/(59*(z**2 - z - 2\/9))\nr : 120.72788283210394\ngamma : None\nbeta : None\ntheta : None\n\nestabilidad asint\u00f3tica en z:\ncirc1_dentro : 2\ncirc1_repetidos : 0\ncirc1_sobre : 0\ncirc1_fuera : 1\nunicos : 3\nrepetidos : 0\nasintota : inestable\n\n h&#091;n]:\n   -n             \n9*4  *Heaviside(n)\n------------------\n        59        \nrevisar terminos sin transformada de tabla:\n50*z*(z - 4\/25)\/(59*(z**2 - z - 2\/9))\n\nse\u00f1al discreta h&#091;n]\nn   : &#091;0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]\nh&#091;n]: &#091;1.52542373e-01 3.81355932e-02 9.53389831e-03 2.38347458e-03\n 5.95868644e-04 1.48967161e-04 3.72417903e-05 9.31044756e-06\n 2.32761189e-06 5.81902973e-07]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo en Python<\/h3>\n\n\n\n<p>Desarrollo con las expresiones iniciales, sin correcci\u00f3n sobre los par\u00e1metros que se indican en el enunciado.<\/p>\n\n\n\n<p><strong>Nota<\/strong>: cuando se produzca el siguiente error con Numpy para evaluar una expresi\u00f3n con exponente negativo,<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Traceback (most recent call last):\n  File \"D:\\MATG1052Ejemplos\\Transformadaz\\ejercicio03.py\", line 93, in \n    fi  = f_n(ki)\n  File \"\", line 2, in _lambdifygenerated\n    return (9\/59)*4**(-n)*Heaviside(n, 1\/2)\n<strong>ValueError: Integers to negative integer powers are not allowed.<\/strong><\/code><\/pre>\n\n\n\n<p>proceda actualizando los valores a evaluar como tipo real (dtype float), tan solo usando en la l\u00ednea de ki con lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ki  = np.arange(0,muestras_fn,<strong>1.0<\/strong>)<\/code><\/pre>\n\n\n\n<p>quedando las instrucciones de la siguiente forma, que si eval\u00faa valores para realizar gr\u00e1ficas.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Transformada z- Fracciones parciales\n# https:\/\/blog.espol.edu.ec\/telg1001\/lti-dt-transformada-z-xz-fracciones-parciales-con-python\/\nimport numpy as np\nimport sympy as sym\nimport matplotlib.pyplot as plt\nimport telg1001 as fcnm\n#sym.SYMPY_DEBUG=True\n\n# INGRESO\nz = sym.Symbol('z')\nn = sym.Symbol('n', real=True)\n\n# coeficientes como racional en dominio 'ZZ' enteros\na0 = sym.Rational(1,2)\na1 = sym.Rational(5,4)\na2 = sym.Rational(1,36)\na3 = sym.Rational(1,18)\n\nPz = z**3-a0*z**2\nQz = z**3-a1*z**2+a2*z+a3\n\nF = Pz\/Qz\n\n# para graficar\nf_nombre = 'H'    # nombre de funci\u00f3n&#x5B;z]: H,X,Y, etc\nmuestras_fn = 10  # muestras para f&#x5B;n]\n\n# PROCEDIMIENTO\nFz  = fcnm.apart_z(F)\nFz_factor = sym.factor(F.evalf())\nFz_factor = fcnm._round_float_is_int(Fz_factor)\n\n# polos y ceros de Hz\n&#x5B;P,Q] = F.as_numer_denom()\nP = sym.poly(P,z)\nQ = sym.poly(Q,z)\nP_ceros = sym.roots(P)\nQ_polos = sym.roots(Q)\n\nestable_z = fcnm.estabilidad_asintotica_z(Q_polos)\n\n# Inversa de transformada z\nfn = 0*n ; f_noeval = 0*n ; Qz2_term =&#x5B;]\nterm_sum = sym.Add.make_args(Fz)\nfor term_k in term_sum:\n    term_kn = fcnm.inverse_z_transform(term_k,z,n)\n    if type(term_kn)==tuple:\n        fn = fn + term_kn&#x5B;0]\n    elif term_kn is not None:\n        fn = fn + term_kn\n    elif term_kn is None:\n        f_noeval = f_noeval + term_k\n    Qz2 = fcnm.Q_cuad_z_parametros(term_k)\n    if Qz2:\n        Qz2_term.append(Qz2)\nfn = fn.collect(sym.Heaviside(n))\nfn = fn.collect(sym.DiracDelta(n))\n\n# SALIDA\nprint('\\n '+f_nombre+'z:')\nsym.pprint(F)\nprint('\\n '+f_nombre+'z en fracciones parciales')\nsym.pprint(Fz)\nprint('\\n '+f_nombre+'z en factores')\nsym.pprint(Fz_factor)\nprint('\\n {Q_polos:veces}:',Q_polos)\nprint(' {P_ceros:veces}:',P_ceros)\nif len(Qz2_term)&gt;0:\n    print('\\nparametros cuadraticos: ')\n    for i in range(0,len(Qz2_term),1):\n        for unterm in Qz2_term&#x5B;i]:\n            print(' termino:',unterm)\n            fcnm.print_resultado_dict(Qz2_term&#x5B;i]&#x5B;unterm])\nprint('\\nestabilidad asint\u00f3tica en z:')\nfcnm.print_resultado_dict(estable_z)\nprint('\\n '+f_nombre.lower()+'&#x5B;n]:')\nsym.pprint(fn)\nif not f_noeval==sym.S.Zero:\n    print('revisar terminos sin transformada de tabla:')\n    print(f_noeval)\n\n# # GRAFICA  -----------\nfig_ROC = fcnm.graficar_Fz_polos(Fz_factor,Q_polos,P_ceros,\n                      muestras=101,f_nombre=f_nombre)\n\nfig_Fz = fcnm.graficar_Fs(Fz_factor,Q_polos,P_ceros,\n                     muestras=101,\n                     f_nombre=f_nombre)\n\n# graficar f&#x5B;n] -------\nf_n = sym.lambdify(n,fn.expand(),modules=fcnm.equivalentes)\nki  = np.arange(0,muestras_fn,1.0)\nfi  = f_n(ki)\n\nprint('\\nse\u00f1al discreta '+f_nombre.lower()+'&#x5B;n]')\nprint('n   :',ki)\nprint(f_nombre.lower()+'&#x5B;n]:',fi)\n\n# graficar f&#x5B;n]\nfig_fn, grafxn = plt.subplots()\nplt.axvline(0,color='grey')\nplt.stem(ki,fi)\nplt.grid()\nplt.xlabel('n')\nplt.ylabel(f_nombre.lower()+'&#x5B;n]')\netiqueta = r''+f_nombre.lower()+'&#x5B;n]= $'+str(sym.latex(fn))+'$'\nplt.title(etiqueta)\n\nplt.show()\n<\/pre><\/div>\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2012TI_T3 LTI DT causal, coeficientes de respuesta impulso h[n] La ecuaci\u00f3n de diferencias descrita se usa para crear el diagrama de bloques. literal a. Respuesta impulso h[n] La forma para usar transformadas z requiere que se desplazar tres unidades. las ra\u00edces del denominador obtenidas con Sympy-Python: Observaci\u00f3n: existe una ra\u00edz con distancia al origen [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-ss-ejercicios","format":"standard","meta":{"footnotes":""},"categories":[187],"tags":[199],"class_list":["post-2832","post","type-post","status-publish","format-standard","hentry","category-ss-s2eva","tag-senalessistemas"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2832","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=2832"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2832\/revisions"}],"predecessor-version":[{"id":23968,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2832\/revisions\/23968"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=2832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=2832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=2832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}