{"id":173,"date":"2024-10-16T20:47:52","date_gmt":"2024-10-17T01:47:52","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/telg1034\/?p=173"},"modified":"2026-03-27T21:22:34","modified_gmt":"2026-03-28T02:22:34","slug":"espectro-formato-euler-a-cosenot","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/dsp-unidades\/espectro-formato-euler-a-cosenot\/","title":{"rendered":"1.6 Espectro - Formato Euler a coseno(t) con Sympy-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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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. Euler a coseno<\/h2>\n\n\n\n<p>Como resultado del producto de sinusoides usando la f\u00f3rmula de Euler se obtienen t\u00e9rminos exponenciales para las partes de frecuencia y fase.<\/p>\n\n\n\n<p>El proceso inverso requiere reagrupar las expresiones de la lista <code>Xe_senales<\/code> por cada t\u00e9rmino suma.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unaSenal = sym.powsimp(unaSenal,combine='exp')<\/code><\/pre>\n\n\n\n<p>Luego simplificar sus exponentes tomando como factor com\u00fan el n\u00famero complejo <code>I<\/code>. En \u00e9ste \u00faltimo paso es necesario tomar en cuenta el signo del t\u00e9rmino que contiene <code>t<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>factor_I = I\n<span style=\"color: #d35400\">if<\/span> t1&lt;sym.S.Zero:\n    factor_I = -I\nexponente = factor_I*(sym.expand(exponente\/factor_I))<\/code><\/pre>\n\n\n\n<p>Este proceso se debe aplicar a cada t\u00e9rmino suma de la expresi\u00f3n, requiriendo un an\u00e1lisis detallado de cada t\u00e9rmino como se muestra en el algoritmo.<\/p>\n\n\n\n<p>Al terminar de reordenar la expresi\u00f3n se convierte nuevamente a la forma coseno usando la instrucci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Xe_to_cos = Xe_sum.rewrite(sym.cos)<\/code><\/pre>\n\n\n\n<p>El proceso de inverso se agrupa en la funci\u00f3n <code>euler_to_cos_list(Xe_senales)<\/code>.<\/p>\n\n\n\n<p>La mejor forma de escribir el algoritmo paso a paso es usando un ejemplo, con el que si usa el algoritmo b\u00e1sico desarrollado en <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/dsp-unidades\/dsp-u01\/espectro-producto-de-sinusoides\/\" data-type=\"post\" data-id=\"137\">Producto de sinusoides<\/a> , podr\u00e1 observar que el resultado debe considerar mas casos de los presentados.<\/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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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\">2. Ejercicio<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: McClellan ejemplo 3.3 p77<\/p>\n\n\n\n<p>La se\u00f1al x(t) es el producto de dos se\u00f1ales de frecuencias 9 y 200 Hz seg\u00fan la expresi\u00f3n mostrada, realice el espectro de frecuencias correspondiente.&nbsp; muestre la expresi\u00f3n de cosenos m\u00e1s simples usando las f\u00f3rmulas de Euler.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = 2 \\cos (2 \\pi 9 t) \\cos( 2 \\pi*200*t) <\/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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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=\"analitico\">2.&nbsp;Desarrollo anal\u00edtico<\/h2>\n\n\n\n<p>Se usa la f\u00f3rmula de Euler para cada parte de la expresi\u00f3n:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> 2 \\cos (2 \\pi (9) t) = e^{j 2\\pi (9) t} +e^{-j 2\\pi (9)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\cos( 2 \\pi (200) t) = \\frac{1}{2} e^{j 2\\pi (200) t} +\\frac{1}{2}e^{-j 2\\pi (200)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = 2 \\cos (2 \\pi 9 t) \\cos( 2 \\pi*200*t) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = \\Big(e^{j 2\\pi (9) t} +e^{-j 2\\pi (9)t} \\Big) \\Big( \\frac{1}{2} e^{j 2\\pi (200) t} + \\frac{1}{2}e^{-j 2\\pi (200)t} \\Big) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">= \\frac{1}{2} e^{j 2\\pi (9) t} e^{j 2\\pi (200) t} + \\frac{1}{2} e^{j 2\\pi (9) t}e^{-j 2\\pi (200)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> +\\frac{1}{2} e^{-j 2\\pi (9)t} e^{j 2\\pi (200) t} + \\frac{1}{2}e^{-j 2\\pi (9)t} e^{-j 2\\pi (200)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">= \\frac{1}{2}e^{j 2\\pi (200) t + j 2\\pi (9) t} + \\frac{1}{2} e^{-j 2\\pi (200) t + j 2\\pi (9) t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> +\\frac{1}{2} e^{j 2\\pi (200) t -j 2\\pi (9)t} + \\frac{1}{2}e^{-j 2\\pi (200)t -j 2\\pi (9)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">= \\frac{1}{2}e^{j 2\\pi (209) t } + \\frac{1}{2} e^{-j 2\\pi (191) t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> +\\frac{1}{2} e^{j 2\\pi (191) t} + \\frac{1}{2} e^{-j 2\\pi (209)t} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = \\cos (2\\pi(191)t) + \\cos (2 \\pi (209)t)<\/span>\n\n\n\n<p>El resultado obtenido usando la funci\u00f3n <code>euler_to_cos_list()<\/code> es:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>x(t): 2*cos(9*t*(2*pi))*cos(200*t*(2*pi))\nx_senales: \nsenal:   2*cos(9*t*(2*pi))*cos(200*t*(2*pi))\n  euler: exp(-209*I*t*2*pi)\/2 + exp(-191*I*t*2*pi)\/2 + exp(191*I*t*(2*pi))\/2 + exp(209*I*t*(2*pi))\/2\n<strong>x_expand: \n  cos(382*pi*t) + cos(418*pi*t)<\/strong>\nx_espectro:\nfreq : &#091;-209. -191.  191.  209.]\nampl : &#091;1\/2 1\/2 1\/2 1\/2]\nfase : &#091;0 0 0 0]\netiq : &#091;'1\/2' '1\/2' '1\/2' '1\/2']<\/code><\/pre>\n\n\n\n<p>La gr\u00e1fica de espectro muestra las se\u00f1ales desplazadas en frecuencia resultado del producto de senoidales.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2024\/11\/espectroSenalesProductoCos03.png\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"443\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2024\/11\/espectroSenalesProductoCos03.png\" alt=\"espectro Senales Producto Cos 03\" class=\"wp-image-174\" \/><\/a><\/figure>\n\n\n\n<p>Se adjunta la gr\u00e1fica de tiempo como complemento<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2024\/11\/espectroSenalesProductoCos_t04.png\"><img decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2024\/11\/espectroSenalesProductoCos_t04.png\" alt=\"espectro Senales Producto Cos t 04\" class=\"wp-image-175\" \/><\/a><\/figure>\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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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\">3. Algoritmo con Python<\/h2>\n\n\n\n<p>El algoritmo en Python incluye la funci\u00f3n <code>euler_to_cos_list(Xe_senales)<\/code> que se a\u00f1ade a <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/dsp-procesa-senales\/recursos-dsp\/dsp-algoritmos-telg1034-py\/\" data-type=\"page\" data-id=\"18266\"><strong>telg1034<\/strong>.py<\/a> para el uso en los otros ejercicios cuando se busca simplificar las expresiones de <code>x_senales<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ejemplo 3.3 p77 Disminuir la diferencia entre frecuencias\n# telg1034 DSP fiec-espol edelros@espol.edu.ec\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport sympy as sym\nimport telg1034 as dsp\n\n# variables\nfrom telg1034 import t,A,w,f,p,pi,DosPi,I,equivalentes\n\n# INGRESO\nx1 = 2*sym.cos(DosPi*9*t)\nx2 = sym.cos(DosPi*200*t)\nx  = x1*x2\n\n# PROCEDIMIENTO\nx_senales = dsp.x_list_term_Add(x)\nx_conteo = len(x_senales)\nXe_senales = dsp.cos_to_euler_one_term(x_senales)\nXe_espectro = dsp.cos_spectrum_list(x_senales)\n\ndef euler_to_cos_list(Xe_senales):\n    '''Xe_senales a coseno, simplifica x(t) en formato Euler\n    '''\n    Xe_conteo = len(Xe_senales)\n    x_expand = sym.S.Zero\n    for i in range(Xe_conteo):\n        unaSenal = Xe_senales&#x5B;i]\n        if unaSenal.has(sym.UnevaluatedExpr):\n            unaSenal = unaSenal.doit()\n        unaSenal = sym.powsimp(unaSenal,combine='exp')\n        if unaSenal.is_Add:\n            term_sum = unaSenal.args\n            Xe_sum = sym.S.Zero\n            for unterm in term_sum:\n                factor_mul = unterm.args\n                if len(factor_mul)&gt;0: # unterm no es constante\n                    Xe_term = sym.S.One\n                    for unfactor in factor_mul:\n                        if unfactor.has(t) and unfactor.has(sym.exp):\n                            exponente = unfactor.args&#x5B;0]\n                            expresion = sym.expand(exponente\/I)\n                            constante = expresion.subs(t,0)\n                            expresion = expresion - constante\n                            t1 = expresion.subs(t,1)\n                            factor_I = I\n                            if t1&lt;sym.S.Zero:\n                                factor_I = -I\n                            exponente = factor_I*(sym.expand(exponente\/factor_I))\n                            el_factor = sym.exp(exponente)\n                        else: # el factor es constante\n                            el_factor = unfactor\n                        Xe_term = Xe_term*el_factor\n                else: # unterm es constante\n                    Xe_term = unterm\n                Xe_sum = Xe_sum + Xe_term\n            Xe_to_cos = Xe_sum.rewrite(sym.cos)\n        else:\n            Xe_to_cos = unaSenal\n        x_expand = x_expand + Xe_to_cos\n    return(x_expand)\nx_expand = euler_to_cos_list(Xe_senales)\n\n# SALIDA\nprint('x(t):',x)\nprint('x_senales: ')\nfor i in range(x_conteo):\n    print('senal:  ',x_senales&#x5B;i])\n    print('  euler:',Xe_senales&#x5B;i])\nprint('x_expand: ')\nprint(' ',x_expand)\nprint('x_espectro:')\nfor unparam in Xe_espectro:\n    print(unparam,':',Xe_espectro&#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 has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#concepto\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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\">4. Gr\u00e1ficas de espectro de frecuencias y se\u00f1al en tiempo<\/h2>\n\n\n\n<p>La parte gr\u00e1fica es la usada en la secci\u00f3n de Producto de se\u00f1ales<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICAS de espectro de frecuencias ---------\nfreq = Xe_espectro&#x5B;'freq']\nmagnitud = Xe_espectro&#x5B;'ampl']\netiqueta = Xe_espectro&#x5B;'etiq']\nmag_max = float(max(magnitud))\nfreq_max = float(max(freq))\n\n# grafica \ngraf_dx = 0.12\nfig_espectro = plt.figure()\ngraf_fasor = fig_espectro.add_subplot()\n# grafica magnitud\ngraf_fasor.set_xlim(&#x5B;-freq_max*(1+graf_dx),freq_max*(1+graf_dx)])\ngraf_fasor.set_ylim(&#x5B;0,mag_max*(1+graf_dx*2)])\ngraf_fasor.axhline(0,color='black')\ngraf_fasor.axvline(0,linestyle='dotted',color='grey')\ngraf_fasor.stem(freq,magnitud)\n# etiquetas de fasor\nfor k in range(0,len(freq),1):\n    texto = etiqueta&#x5B;k]\n    x_text = freq&#x5B;k]\n    y_text = magnitud&#x5B;k]\n    plt.annotate(texto,xy=(x_text,y_text), xytext=(0,5),\n                 textcoords='offset points',ha='center')\ngraf_fasor.grid()\ngraf_fasor.set_xlabel('freq Hz')\ngraf_fasor.set_ylabel('amplitud')\ngraf_fasor.set_title('Espectro: x_senales')\n\n#plt.show()\n\n# GRAFICAR x(t) ---------------------------\n# INGRESO\nx_senales_graf = &#x5B;x1,x2,x] # para graficar\nx_etiqueta = &#x5B;'x1(t)','x2(t)','x1(t)x2(t)']\nx_tipolinea = &#x5B;'dashed','dotted','solid']\n\ntramos_T = 20       # tramos por periodo\nperiodos_graf = 2   # periodos en una grafica\n\n# PROCEDIMIENTO GRAFICA\nx_conteo_graf = len(x_senales_graf)\n# etiquetas si est\u00e1n vacias\nif len(x_etiqueta)==0: \n    if x_conteo_graf &gt; 1:\n        for i in range(0,x_conteo_graf-1,1):\n            x_etiqueta.append('x'+str(i)+'(t)')\n            x_tipolinea.append('dotted')\n    x_etiqueta.append('x(t)')\n    x_tipolinea.append('solid')\n    \n&#x5B;T_min,T_max] = dsp.periodo_minmax(freq)\nx_conteo = len(x_senales_graf)\n\nmuestras_T = tramos_T + 1\n# intervalo de t entre &#x5B;a,b] en pasos dt\na = 0\nb = T_max*periodos_graf\ndt = T_min\/tramos_T # tama\u00f1o de paso,tramo, muestreo\nti = np.arange(a,b+dt,dt)\n\nxi_k = &#x5B;] # muestras de cada se\u00f1al x\nfor unasenal in x_senales_graf:\n    # x(t) a forma num\u00e9rica lambda t:\n    if unasenal.has(t):\n        xk = sym.lambdify(t,unasenal)\n    else: # es constante\n        xk = lambda t: unasenal + 0*t\n    xki = xk(ti) # eval\u00faa en intervalo\n    xi_k.append(np.copy(xki))\n\n# graficar\nfig_x = plt.figure()\ngraf_x = fig_x.add_subplot()\nfor i in range(0,x_conteo_graf,1):\n    color_i = dsp._graf_lineacolor_i(i)\n    graf_x.plot(ti,xi_k&#x5B;i], color=color_i,\n                linestyle=x_tipolinea&#x5B;i],\n                label=x_etiqueta&#x5B;i])\n    graf_x.axhline(0,color='black')\ngraf_x.set_title('Se\u00f1ales xk(t)')\ngraf_x.set_xlabel('t (segundos)')\ngraf_x.set_ylabel('x_senales')\ngraf_x.grid()\ngraf_x.legend()\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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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. Tarea<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>: McClellan ejercicio 3.1 p75<\/p>\n\n\n\n<p>Verificar el algoritmo con<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t) = \\sin ^2 (10 \\pi t) <\/span>\n\n\n\n<p>que debe dar resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>x(t): sin(10*pi*t)**2\nx_senales: \nsenal:   sin(10*pi*t)**2\n  euler: -exp(20*I*pi*t)\/4 + 1\/2 - exp(-20*I*pi*t)\/4\nx_expand: \n  1\/2 - cos(20*pi*t)\/2\n   freq_min: 10.0\nfreq_centro: 10.0\n   freq_max: 10.0\nancho de banda BW: 0.0\nx_espectro:\nfreq : &#091;-10.   0.  10.]\nampl : &#091;1\/4 1\/2 1\/4]\nfase : &#091;pi 0 pi]\netiq : &#091;'1\/4$ e^j(\\\\pi)$' '1\/2' '1\/4$ e^j(\\\\pi)$']<\/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\">Euler a coseno<\/a><\/p>\n\n\n\n<p><a href=\"#ejercicio\">ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/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>Euler a coseno ejercicio anal\u00edtico algoritmo gr\u00e1fica 1. Euler a coseno Como resultado del producto de sinusoides usando la f\u00f3rmula de Euler se obtienen t\u00e9rminos exponenciales para las partes de frecuencia y fase. El proceso inverso requiere reagrupar las expresiones de la lista Xe_senales por cada t\u00e9rmino suma. Luego simplificar sus exponentes tomando como factor [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-dsp-unidades","format":"standard","meta":{"footnotes":""},"categories":[193],"tags":[],"class_list":["post-173","post","type-post","status-publish","format-standard","hentry","category-dsp-unidades"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/173","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=173"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/173\/revisions"}],"predecessor-version":[{"id":21457,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/173\/revisions\/21457"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}