{"id":1187,"date":"2017-07-19T09:55:59","date_gmt":"2017-07-19T14:55:59","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1001\/?p=1187"},"modified":"2026-02-01T16:33:35","modified_gmt":"2026-02-01T21:33:35","slug":"lti-dt-respuesta-estadocero-zsrn-python","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-u06\/lti-dt-respuesta-estadocero-zsrn-python\/","title":{"rendered":"6.5 LTI DT - Respuesta estado cero ZSRn con Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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\">1.  Respuesta estado cero ZSRn<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Lathi 3.8 p280<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"91\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/07\/respuestaEstadoCero01Discreto.png\" alt=\"respuesta Estado Cero Discreto ZSRn\" class=\"wp-image-20471\" \/><\/figure>\n\n\n\n<p>Es la respuesta de un sistema cuando el estado es cero. se inicia con que la entrada x[n] es la suma de componentes \u03b4[n]<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = x[0] \\delta[n] + x[1] \\delta[n-1] + x[2] \\delta[n-2] + \\text{\u2026} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + x[-1] \\delta[n+1] + x[-2] \\delta[n+2] + \\text{\u2026} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = \\sum_{m=-\\infty}^{\\infty} x[m] \\delta[n-m] <\/span>\n\n\n\n<p>En un sistema lineal, conociendo su respuesta impulso, responde a cualquier entrada como la suma de sus componentes.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = \\sum_{m=-\\infty}^{\\infty} x[m] h[n-m] = x[n] \\circledast h[n]<\/span>\n\n\n\n<p><strong>Revisar<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u06\/convolucion-de-sumas-tabla\/#propiedades\">Propiedades de suma de convoluci\u00f3n<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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=\"ejercicio\">2. Ejercicio. Respuesta estado cero ZSRn<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: Lathi Ejemplo 3.21 p286<\/p>\n\n\n\n<p>Determine la respuesta a estado cero de un sistema LTID descrito por la ecuaci\u00f3n de diferencias mostrada,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n+2] - 0.6 y[n+1] - 0.16 y[n] = 5x[n+2] <\/span>\n\n\n\n<p>Si la entrada es x[n] = 4<sup>-n<\/sup> u[n]<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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=\"anal\u00edtico\">3. Desarrollo Anal\u00edtico<\/h2>\n\n\n\n<p>Para realizar el diagrama, se desplaza la ecuaci\u00f3n en dos unidades<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] - 0.6 y[n-1] - 0.16 y[n-2] = 5x[n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = 0.6 y[n-1] + 0.16 y[n-2] + 5x[n] <\/span>\n\n\n\n<p>las condiciones iniciales es estado cero son todas cero.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"381\" height=\"303\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/07\/RespuestaEstadoCeroEj01Discreto.png\" alt=\"Respuesta Estado Cero Ej01 ZSRn\" class=\"wp-image-20464\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>La entrada puede expresada como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = 4^{-n} \\mu [n] = \\Big( \\frac{1}{4} \\Big)^n \\mu [n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x[n] = 0.25^{n} \\mu [n] <\/span>\n\n\n\n<p>la respuesta al impulso del sistema se encontr\u00f3 en el ejemplo de la secci\u00f3n anterior:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h[n] = [ (-0.2)^n +4 (0.8)^n ] \\mu [n] <\/span>\n\n\n\n<p>Por lo que:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = x[n] \\circledast h[n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.25^{n} \\mu [n] \\circledast \\Big[ (-0.2)^n +4 (0.8)^n \\Big] \\mu [n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.25^{n} \\mu [n] \\circledast (-0.2)^n \\mu [n] + 0.25^{n} \\mu [n] \\circledast 4 (0.8)^n \\mu [n] <\/span>\n\n\n\n<p>usando la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ss-unidades\/ss-u06\/convolucion-de-sumas-tabla\/\" data-type=\"post\" data-id=\"1219\">tabla de convoluci\u00f3n de sumas<\/a> para tener:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = \\Bigg[ \\frac{0.25^{n+1}-(-0.2)^{n+1}}{0.25-(-0.2)} + 4 \\frac{0.25^{n+1} - 0.8^{n+1}}{0.25-0.8}\\Bigg] \\mu [n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = \\Bigg[2.22 \\Big[ 0.25^{n+1} - (-0.2)^{n+1}\\Big] + <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> - 7.27 \\Big[ 0.25^{n+1} - (0.8)^{n+1}\\Big]\\Bigg] \\mu [n] <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = \\Big[ -5.05 (0.25)^{n+1} - 2.22(-0.2)^{n+1} + 7.27 (0.8)^{n+1} \\Big] \\mu [n] <\/span>\n\n\n\n<p>recordando que \u03d2<sup>n+1<\/sup> =&nbsp;\u03d2(\u03d2)<sup>n<\/sup> se puede expresar,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = \\Big[-1.26 (0.25)^{n} + 0.444 (-0.2)^{n} +5.81(0.8)^{n}\\Big] \\mu [n] <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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=\"numerico\">4. Desarrollo num\u00e9rico con Python<\/h2>\n\n\n\n<p>La respuesta a estado cero se encuentra en forma num\u00e9rica con la expresi\u00f3n:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y[n] = x[n] \\circledast h[n] <\/span>\n\n\n\n<p>que en Numpy es <code>np.convolve()<\/code> y facilita el c\u00e1lculo de la convoluci\u00f3n de sumas. El tema de convoluci\u00f3n con Python se desarrolla en la siguiente secci\u00f3n.<\/p>\n\n\n\n<p>La respuesta del algoritmo se presenta en la gr\u00e1fica:<\/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\/07\/RespuestaEstadoCeroEj01a.png\" alt=\"Respuesta Estado Cero Ej01a\" class=\"wp-image-20755\" \/><\/figure>\n\n\n\n<p>En el algoritmo se compara la soluci\u00f3n num\u00e9rica yi[n] con la soluci\u00f3n anal\u00edtica yia[n], obteniendo un error del orden 10<sup>-3<\/sup> dado por el truncamiento de d\u00edgitos en ambos m\u00e9todos.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code> error numerico vs anal\u00edtico: \n maximo de |error|:  0.006000000000000227\n errado: \n&#091;-0.          0.         -0.          0.         -0.          0.\n -0.          0.         -0.          0.         -0.         -0.\n -0.          0.          0.         -0.006      -0.0058     -0.00509\n -0.0041445  -0.00334173 -0.00267831 -0.0021442  -0.00171569 -0.00137264\n -0.00109813 -0.00087851 -0.00070281 -0.00056225 -0.0004498  -0.00035984\n -0.00028787]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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\">5. Algoritmo en Python<\/h2>\n\n\n\n<p>El algoritmo contin\u00faa como un anexo a los algoritmos de respuesta a entrada cero e impulso.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Sistema LTID. Respuesta entrada cero, \n# Respuesta a impulso\n# resultado con raices Reales\n# ejercicio lathi ejemplo 3.121 p286\nimport numpy as np\nimport sympy as sym\n\n# INGRESO\n# Respuesta de estado cero ------------------------\n# Rango &#x5B;a,b], simetrico a eje vertical\nb = 15 ; a = -b\nu = lambda n: np.piecewise(n,&#x5B;n&gt;=0,n&lt;0],&#x5B;1,0])\nx = lambda n: (0.25)**(n)*u(n)\nh_n = lambda n: (-0.2)**n+4*(0.8)**n\nh = lambda n: h_n(n)*u(n)\n\n# PROCEDIMIENTO\nni = np.arange(a,b+1,1)\nxi = x(ni)\nhi = h(ni)\n\n# Suma de Convolucion x&#x5B;n]*h&#x5B;n]\nyi = np.convolve(xi,hi,'same')\n\n# compara respuesta numerica con resultado analitico\nya = lambda n: (-1.26*(0.25**n)+0.444*((-0.2)**n)+5.81*(0.8**n))*u(n)\nyia = ya(ni)\n\nerrado = yia-yi\nerradomax = np.max(np.abs(errado))\n        \n# SALIDA\nprint('respuesta estado cero: ')\nprint('\\n error numerico vs analitico: ')\nprint(' maximo de abs(error): ', erradomax)\nprint(' errado: ')\nprint(errado)\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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=\"grafica\">6. Gr\u00e1fica en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA -----------\nimport matplotlib.pyplot as plt\n\nplt.figure(1)\nplt.suptitle('Suma de Convolucion x&#x5B;n]*h&#x5B;n]')\n\nplt.subplot(311)\nplt.stem(ni,xi, linefmt='b--',\n         markerfmt='bo',basefmt='k-')\nplt.ylabel('x&#x5B;n]')\n\nplt.subplot(312)\nplt.stem(ni,hi, linefmt='b--',\n         markerfmt='ro',basefmt='k-')\nplt.ylabel('h&#x5B;n]')\n\nplt.subplot(313)\nplt.stem(ni,yi, linefmt='g-.',\n         markerfmt='mo', basefmt='k-',\n         label='yi')\nplt.stem(ni,yia, linefmt='y-.',\n         markerfmt='*', basefmt='k-',\n         label='yia')\n\nplt.ylabel('x&#x5B;n]*h&#x5B;n]')\nplt.xlabel('n')\nplt.legend()\n\nplt.tight_layout()\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 has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">ZSRn<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#anal\u00edtico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#numerico\">num\u00e9rico<\/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>ZSRn ejercicio anal\u00edtico num\u00e9rico algoritmo gr\u00e1fica 1. Respuesta estado cero ZSRn Referencia: Lathi 3.8 p280 Es la respuesta de un sistema cuando el estado es cero. se inicia con que la entrada x[n] es la suma de componentes \u03b4[n] En un sistema lineal, conociendo su respuesta impulso, responde a cualquier entrada como la suma de [&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":[176],"tags":[],"class_list":["post-1187","post","type-post","status-publish","format-standard","hentry","category-ss-u06"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1187","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=1187"}],"version-history":[{"count":9,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1187\/revisions"}],"predecessor-version":[{"id":20757,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1187\/revisions\/20757"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}