{"id":30,"date":"2017-01-02T07:00:43","date_gmt":"2017-01-02T12:00:43","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/estg1003\/?p=30"},"modified":"2026-04-16T09:26:05","modified_gmt":"2026-04-16T14:26:05","slug":"morse-codificador-decodificador","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/stp-aplica\/morse-codificador-decodificador\/","title":{"rendered":"1. Morse - Codificador y Decodificador 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\">Morse<\/a><\/p>\n\n\n\n<p><a href=\"#codificador\">codificador<\/a><\/p>\n\n\n\n<p><a href=\"#decodificador\">decodificador<\/a><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"#codectxt\">codificador texto<\/a><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"#morsemarkov\">Morse - Markov<\/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. Morse Concepto<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>:\u00a0Leon-Couch, 5\u20139 Se\u00f1alizaci\u00f3n Pasabanda Modulada Binaria (OOK), <a href=\"https:\/\/es.wikipedia.org\/wiki\/C%C3%B3digo_morse\">C\u00f3digo Morse Wikipedia<\/a> , <a href=\"https:\/\/es.wikipedia.org\/wiki\/Tel%C3%A9grafo\">Tel\u00e9grafo Wikipedia<\/a>, <a href=\"https:\/\/www.itu.int\/dms_pubrec\/itu-r\/rec\/m\/R-REC-M.1677-1-200910-I!!PDF-E.pdf\"> Recommendation ITU-R M.1677-1 (10\/2009) International Morse code<\/a>,<\/p>\n\n\n\n<figure class=\"wp-block-image alignright\"><img decoding=\"async\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/04\/telegrafollave.png\" alt=\"telegrafollave\" \/><\/figure>\n\n\n\n<p><strong>Dato Hist\u00f3rico<\/strong> - 1844 Samuel F. B. Morse muestra la l\u00ednea de tel\u00e9grafo en Baltimore, MD y Washington, DC<\/p>\n\n\n\n<p>El c\u00f3digo Morse fue muy usado en telegraf\u00eda, transmisiones por radio mar\u00edtimas y a\u00e9reas.<\/p>\n\n\n\n<p>Conocido tambi\u00e9n como alfabeto Morse, cambia los caracteres alfanum\u00e9ricos a <strong>c\u00f3digos<\/strong> morse combinando puntos <code>'.'<\/code> y rayas <code>'-'<\/code>. <\/p>\n\n\n\n<p>La separaci\u00f3n entre <strong>c\u00f3digos<\/strong> morse se realiza con un espacio <code>' '<\/code>, mientras que en la separaci\u00f3n entre palabras se usan 3 espacios <code>'   '<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Ejemplo:\nun mensaje: ESPOL impulsando la sociedad del conocimiento\n. ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - --- <\/code><\/pre>\n\n\n\n<p>Un tema que permite revisar varios conceptos de telecomunicaciones es el tel\u00e9grafo y el c\u00f3digo Morse.<\/p>\n\n\n\n<p>Los bloques de desarrollo usados en \u00e9sta secci\u00f3n se presentan el el siguiente diagrama<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/04\/morsebloques.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1094\" height=\"237\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/04\/morsebloques.png\" alt=\"morsebloques\" class=\"wp-image-27\" \/><\/a><\/figure>\n\n\n\n<p><strong>Referencia<\/strong>: Tel\u00e9grafo arm\u00f3nico - Gigantes de las m\u00e1quinas. History Latinoam\u00e9rica. 12 enero 2022<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"TEL\u00c9GRAFO ARM\u00d3NICO - GIGANTES DE LAS M\u00c1QUINAS\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/B_fZfffUCZM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"codificador\">2. Codificador - Algoritmo con Python<\/h2>\n\n\n\n<p>La traducci\u00f3n entre un caracter del alfabeto a un c\u00f3digo morse se puede facilitar con una funci\u00f3n dedicada a \u00e9sta tarea.<\/p>\n\n\n\n<p>Para buscar un equivalente de un <strong>caracter<\/strong> en una tabla de conversi\u00f3n a <strong>c\u00f3digo<\/strong>, por facilidad de usar como \u00edndice un <code>caracter<\/code> se propone usar un diccionario de Python.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# C\u00f3digo Morse -  codificador\n# propuesta: edelros@espol.edu.ec\n\ndef morsecodec(caracter):\n    equivale={\n        'A':'.-', 'B':'-...', 'C':'-.-.', \n        'CH':'----', 'D':'-..', 'E':'.', \n        'F':'..-.', 'G':'--.', 'H':'....', \n        'I':'..', 'J':'.---', 'K':'-.-',\n        'L':'.-..', 'M':'--', 'N':'-.', \n        '\u00d1':'--.--', 'O':'---', 'P':'.--.', \n        'Q':'--.-', 'R':'.-.', 'S':'...', \n        'T':'-', 'U':'..-', 'V':'...-',\n        'W':'.--', 'X':'-..-', 'Y':'-.--', \n        'Z':'--..',\n        '0':'-----', '1':'.----', '2':'..---', \n        '3':'...--', '4':'....-', '5':'.....', \n        '6':'-....', '7':'--...', '8':'---..', \n        '9':'----.', \n        '.':'.-.-.-', ',':'-.-.--', '?':'..--..', \n        '&quot;':'.-..-.', '!':'--..--', ' ':' '}\n    caracter=caracter.upper()\n    codigo=equivale&#x5B;caracter]\n    return(codigo)\n<\/pre><\/div>\n\n\n<p>El programa para cambiar un <strong>mensaje<\/strong> a su versi\u00f3n morse se simplifica usando la funci\u00f3n anterior.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# INGRESO\nmensaje = input('un mensaje: ')\n# mensaje= 'ESPOL impulsando la sociedad del conocimiento'\n\n# PROCEDIMIENTO\nn = len(mensaje)\ntraducido = ''\nfor caracter in mensaje:\n    traducido = traducido + morsecodec(caracter) + ' '\n\n# SALIDA\nprint(traducido)\n<\/pre><\/div>\n\n\n<p>La ejecuci\u00f3n del programa y la funci\u00f3n tiene el resultado mostrado en el ejemplo.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>un mensaje: ESPOL impulsando la sociedad del conocimiento\n. ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - --- <\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Decodificador - algoritmo con Python<\/h2>\n\n\n\n<p>Para realizar el proceso inverso al codificador, se ingresa un <strong>c\u00f3digo<\/strong> morse obtenido de un receptor a un <strong>deco<\/strong>dificador. Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>mensaje en morse:<br><code>. ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - ---  <\/code><br>ESPOL IMPULSANDO LA SOCIEDAD DEL CONOCIMIENTO<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image alignright\"><img decoding=\"async\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/04\/telegraforeceptor.png\" alt=\"telegraforeceptor\" \/><figcaption class=\"wp-element-caption\">tel\u00e9grafo receptor<\/figcaption><\/figure>\n\n\n\n<p><strong>Deco<\/strong>dificar Morse requiere usar una tabla de equivalentes descrita en el est\u00e1ndar internacional (ITU), en el orden contrario al codificador.<\/p>\n\n\n\n<p>En un mensaje morse, las palabras son separadas por tres espacios <code>'   '<\/code>; en una palabra, cada c\u00f3digo se separa por un espacio <code>' '<\/code>.<\/p>\n\n\n\n<p>La traducci\u00f3n de un c\u00f3digo morse a un caracter del alfabeto, se puede realizar con una funci\u00f3n. De forma semejante al codificador, se usa la tabla de equivalentes como un diccionario.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# C\u00f3digo Morse -  DECOdificador\n# propuesta: edelros@espol.edu.ec\n\ndef morsedeco(codigo): \n    equivale={ \n        '.-':'A', '-...':'B', '-.-.':'C', \n        '----':'CH', '-..':'D', '.':'E', \n        '..-.':'F', '--.':'G', '....':'H', \n        '..':'I', '.---':'J', '-.-':'K',\n        '.-..':'L', '--':'M', '-.':'N', \n        '--.--':'\u00d1', '---':'O', '.--.':'P', \n        '--.-':'Q', '.-.':'R', '...':'S', \n        '-':'T', '..-':'U', '...-':'V',\n        '.--':'W', '-..-':'X', '-.--':'Y', \n        '--..':'Z',\n        '-----':'0', '.----':'1', '..---':'2', \n        '...--':'3', '....-':'4', '.....':'5', \n        '-....':'6', '--...':'7', '---..':'8', \n        '----.':'9', \n        '.-.-.-':'.', '-.-.--':',', '..--..':'?', \n        '.-..-.':'&quot;', '--..--':'!', '   ':' ', \n        ' ':' '}\n    caracter=equivale&#x5B;codigo]\n    return(caracter)\n\n<\/pre><\/div>\n\n\n<p>El programa para cambiar un mensaje morse al alfabeto se simplifica usando la funci\u00f3n anterior.<\/p>\n\n\n\n<p>La ejecuci\u00f3n del programa y la funci\u00f3n tiene el resultado mostrado en el ejemplo.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# INGRESO\ntraducido = input('mensaje en morse: ')\n# traducido='. ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - --- '\n    \n# PROCEDIMIENTO\nmensaje  = ''\npalabras = traducido.split('   ')\nfor unapalabra in palabras:\n    letras = unapalabra.split(' ')\n    for unaletra in letras:\n        mensaje = mensaje+morsedeco(unaletra)\n    mensaje = mensaje + ' '\n\n# SALIDA\nprint('mensaje decodificado: ')\nprint(mensaje)\n<\/pre><\/div>\n\n\n<p>resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>mensaje en morse:\n<code>. ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - --- <\/code>\nmensaje decodificado:\nESPOL IMPULSANDO LA SOCIEDAD DEL CONOCIMIENTO<\/code><\/pre>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"codectxt\">Morse codificador texto<\/h2>\n\n\n\n<p>Para la transmisi\u00f3n de texto, por ejemplo la letra de una canci\u00f3n, se puede codificar a Morse usando inicialmente el procedo de los ejemplos anteriores.<\/p>\n\n\n\n<p>Por ejemplo, una parte del archivo origen: <a href=\"https:\/\/www.dropbox.com\/s\/7qpx0qumuiap8om\/elaguacate_Letra.txt?dl=0\">elaguacate_Letra.txt<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tu eres mi amor \nmi dicha y mi tesoro \nmi s\u00f3lo encanto \ny mi ilusi\u00f3n.<\/code><\/pre>\n\n\n\n<p>se convertir\u00eda en: <a href=\"https:\/\/www.dropbox.com\/s\/m5jyjrtliya2ijt\/elaguacate_morse.txt?dl=0\">elaguacate_morse.txt<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- ..- . .-. . ... -- .. .- -- --- .-. \n-- .. -.. .. -.-. .... .- -.-- -- .. - . ... --- .-. --- \n-- .. ... --- .-.. --- . -. -.-. .- -. - --- \n-.-- -- .. .. .-.. ..- ... .. --- -. .-.-.-<\/code><\/pre>\n\n\n\n<p>que puede ser guardado en otro archivo&nbsp; y procesado como un proceso estoc\u00e1stico.<\/p>\n\n\n\n<p>Hay que considerar que en la codificaci\u00f3n est\u00e1ndar Morse, no existen las letras con tildes ('\u00e1\u00e9\u00ed\u00f3\u00fa') que para la transmisi\u00f3n se debe quitar las tildes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones complementarias<\/h3>\n\n\n\n<p>Se usa como funci\u00f3n b\u00e1sica como codificador Morse la descrita en el <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/morse-codificador\/\">problema b\u00e1sico<\/a>.<\/p>\n\n\n\n<p>Cuando el tema a tratar es un texto m\u00e1s largo, se abordan m\u00e1s detalles del procesamiento del texto, como el quitar las tildes antes de codificar la letra. En el est\u00e1ndar de la codificaci\u00f3n Morse (origen en ingl\u00e9s) no se usaban las tildes en las letras, para \u00e9sta operaci\u00f3n se usa la funci\u00f3n <code>quitatildes()<\/code>.<\/p>\n\n\n\n<p>Como complemento se a\u00f1aden las funciones de codificaci\u00f3n por l\u00ednea, otra funci\u00f3n para el conteo de s\u00edmbolos,<\/p>\n\n\n\n<p>La codificaci\u00f3n en Python usada para el ejemplo se adjunta:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# C\u00f3digo Morse -  codificador de texto\n# propuesta: edelros@espol.edu.ec\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef morsecodec(caracter):\n    equivale={\n        'A':'.-', 'B':'-...', 'C':'-.-.', \n        'CH':'----', 'D':'-..', 'E':'.', \n        'F':'..-.', 'G':'--.', 'H':'....', \n        'I':'..', 'J':'.---', 'K':'-.-',\n        'L':'.-..', 'M':'--', 'N':'-.', \n        '\u00d1':'--.--', 'O':'---', 'P':'.--.', \n        'Q':'--.-', 'R':'.-.', 'S':'...', \n        'T':'-', 'U':'..-', 'V':'...-',\n        'W':'.--', 'X':'-..-', 'Y':'-.--', \n        'Z':'--..',\n        '0':'-----', '1':'.----', '2':'..---', \n        '3':'...--', '4':'....-', '5':'.....', \n        '6':'-....', '7':'--...', '8':'---..', \n        '9':'----.', \n        '.':'.-.-.-', ',':'-.-.--', '?':'..--..', \n        '&quot;':'.-..-.', '!':'--..--', ' ':' '}\n    # Si caracter no est\u00e1 en equivale\n    codigo = caracter\n    # codifica a morse\n    caracter = caracter.upper()\n    if (caracter in equivale):\n        codigo = equivale&#x5B;caracter]    \n    return(codigo)\n\ndef quitatildes(linea):\n    sintilde = {'\u00e1':'a', '\u00e9':'e', '\u00ed':'i',\n                '\u00f3':'o', '\u00fa':'u'}\n    nueva = ''\n    for caracter in linea:\n        if (caracter in sintilde):\n            caracter = sintilde&#x5B;caracter]\n        nueva = nueva + caracter\n    return(nueva)\n\ndef morselinea(linea):\n    linea = linea.strip('\\n')\n    linea = linea.strip(' ')\n    linea = quitatildes(linea)\n    lineamorse = ''\n    for caracter in linea:\n        enmorse = morsecodec(caracter)\n        lineamorse = lineamorse + enmorse + ' '\n    return(lineamorse)\n\ndef cuentasimbolo(texto,simbolos):\n    k = len(simbolos)\n    veces = np.zeros(k,dtype=int)\n    n = len(texto)\n    for fila in range(0,n,1):\n        unalinea = texto&#x5B;fila]\n        unalinea = unalinea.strip('\\n')\n        m = len(unalinea)\n        for caracter in unalinea:\n            donde = simbolos.find(caracter)\n            if (donde&gt;=0): #Si no encuentra es negativo\n                veces&#x5B;donde] = veces&#x5B;donde]+1\n    total = np.sum(veces)\n    return(veces)\n\n# PROGRAMA -----------------------------\n\n# INGRESO\nnombrearchivo = 'elaguacate_Letra.txt'\n\n# PROCEDIMIENTO\n# procesa el archivo\narchivo  = open(nombrearchivo,'r')\nunalinea = archivo.readline()\ncodificado = &#x5B;]\nwhile not(unalinea==''):\n    unalinea = unalinea.strip('\\n')\n    unalinea = unalinea.lower()\n    lineamorse = morselinea(unalinea)\n    codificado.append(lineamorse)\n    unalinea = archivo.readline()\narchivo.close()\n\n# cuenta s\u00edmbolos\nsimbolos = '.- '\nconteo   = cuentasimbolo(codificado,simbolos)\ntotal    = np.sum(conteo)\npmf      = conteo\/total\n\n# SALIDA\nprint('Texto en morse: ')\nn = len(codificado)\netiquetas = &#x5B;'punto','raya','espacio']\nfor i in range(0,n,1):\n    print(codificado&#x5B;i])\n\n# PMF\nprint('PMF')\nprint(etiquetas)\nprint(pmf)\n\n# GRAFICA\nx = np.arange(0,len(conteo),1)\nplt.stem(x,pmf)\nplt.xticks(x,etiquetas)\nplt.title('pmf')\nplt.show()\n\n# ARCHIVO\nnarchivo = 'morsetexto.txt'\narchivo  = open(narchivo,'w')\nfor i in range(0,n,1):\n    linea = codificado&#x5B;i]+'\\n'\n    archivo.write(linea)\narchivo.close()\n<\/pre><\/div>\n\n\n<p>Al final se presenta la pmf, sus valores y gr\u00e1ficas, junto al archivo morsetexto.txt como resultado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PMF\n&#091;'punto', 'raya', 'espacio']\n&#091; 0.3588785   0.2953271   0.34579439]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/10\/elaguacatemorse_pmf.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/10\/elaguacatemorse_pmf.png\" alt=\"\" class=\"wp-image-1309\" \/><\/a><\/figure>\n\n\n\n<p><em><strong>Tarea<\/strong><\/em>: Procese los datos necesarios para generar la funci\u00f3n de distribuci\u00f3n acumulada (cdf), el valor esperado, varianza y desviaci\u00f3n est\u00e1ndar.<\/p>\n\n\n\n<p>Realice las observaciones y recomendaciones necesarias para mejorar el algoritmo que haya encontrado al usar su propio texto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-23441af8 wp-block-group-is-layout-flex\">\n<p class=\"has-medium-font-size\"><a href=\"#codectxt\">Codificador texto<\/a><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"#morsemarkov\">Morse - Markov<\/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=\"morsemarkov\">4. Morse cadena de Markov - Ejercicio<\/h2>\n\n\n\n<p>Para el texto en c\u00f3digo Morse obtenido en el ejercicio \"Morse codificador texto\", se requiere realizar la correspondiente cadena de Markov.<\/p>\n\n\n\n<p>Se tiene como archivo de entrada: <a href=\"https:\/\/www.dropbox.com\/s\/m5jyjrtliya2ijt\/elaguacate_morse.txt?dl=0\">elaguacate_morse.txt<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- ..- . .-. . ... -- .. .- -- --- .-. \n-- .. -.. .. -.-. .... .- -.-- -- .. - . ... --- .-. --- \n-- .. ... --- .-.. --- . -. -.-. .- -. - --- \n-.-- -- .. .. .-.. ..- ... .. --- -. .-.-.-<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Determine el espacio de estados: S= {...}<\/li>\n\n\n\n<li>Realice el diagrama de transici\u00f3n de estados.<\/li>\n\n\n\n<li>Realice el conteo correspondiente de las transiciones entre estados<\/li>\n\n\n\n<li>Elabore la matriz de transici\u00f3n usando el resultado anterior<\/li>\n\n\n\n<li>Ubique en el diagrama los valores correspondientes a las transiciones<\/li>\n\n\n\n<li>Encuentre la matriz de transici\u00f3n en estado estable, o largo plazo.<\/li>\n\n\n\n<li>Compare los resultados de estado estable con la pmf obtenida en el ejercicio \"Morse codificador texto\"<\/li>\n\n\n\n<li>Presente las observaciones<\/li>\n\n\n\n<li>Escriba las recomendaciones.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Algoritmo en Python<\/h3>\n\n\n\n<p>Un ejemplo de instrucciones para realizar el conteo de las transiciones.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Matriz de transicion de C\u00f3digo Morse\n# Tarea: Realizar la matriz de transici\u00f3n\n# para la cadena de Markov\nimport numpy as np\n\n# INGRESO\nnarchivo = 'elaguacate_morse.txt'\narchivo  = open(narchivo, 'r')\n\n# PROCEDIMIENTO\ns = '.- '\nn = len(s)\nconteo = np.zeros(shape=(n,n), dtype=int)\nlinea  = archivo.readline()\nwhile not(linea ==''):\n    linea = linea.strip('\\n')\n    m = len(linea)\n    for i in range(0,m-1,1):\n        simbolo = linea&#x5B;i]\n        simbolosigue = linea&#x5B;i+1]\n        f = s.find(simbolo)\n        c = s.find(simbolosigue)\n        conteo&#x5B;f,c] = conteo&#x5B;f,c] +1\n\n    print(linea)\n    linea = archivo.readline()\n\n# SALIDA\nprint('matriz de conteo: ')\nprint('   .   -  espacio')\nprint(conteo)\n<\/pre><\/div>\n\n\n<p>Resultado del algoritmo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>matriz de conteo: \n   .   -  espacio\n&#091;&#091;123 116 145]\n &#091;100  93 123]\n &#091;156  92 102]]<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Morse codificador decodificador codificador texto Morse - Markov 1. Morse Concepto Referencia:\u00a0Leon-Couch, 5\u20139 Se\u00f1alizaci\u00f3n Pasabanda Modulada Binaria (OOK), C\u00f3digo Morse Wikipedia , Tel\u00e9grafo Wikipedia, Recommendation ITU-R M.1677-1 (10\/2009) International Morse code, Dato Hist\u00f3rico - 1844 Samuel F. B. Morse muestra la l\u00ednea de tel\u00e9grafo en Baltimore, MD y Washington, DC El c\u00f3digo Morse fue muy [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-stp-ejercicios","format":"standard","meta":{"footnotes":""},"categories":[202],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-stp-aplica"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/30","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=30"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":24315,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/30\/revisions\/24315"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}