{"id":70,"date":"2016-11-06T05:04:57","date_gmt":"2016-11-06T10:04:57","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/estg1003\/?p=70"},"modified":"2026-04-04T10:47:46","modified_gmt":"2026-04-04T15:47:46","slug":"senal-deterministica-componentes","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/stp-u01eva\/senal-deterministica-componentes\/","title":{"rendered":"6. Se\u00f1al Determin\u00edstica, por componentes 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-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>Se\u00f1al:<\/p>\n\n\n\n<p><a href=\"#senaldeterministica\" data-type=\"internal\" data-id=\"#senaldeterministica\">Determin\u00edstica<\/a><\/p>\n\n\n\n<p><a href=\"#componentes\">Componentes<\/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=\"senaldeterministica\">Se\u00f1al Determin\u00edstica<\/h2>\n\n\n\n<p><strong><em>Referencia<\/em><\/strong>: Lathi 1.3.2 pdf\/p.63, <a href=\"https:\/\/www.iso.org\/standard\/3601.html\">Est\u00e1ndar ISO16<\/a>, <a href=\"https:\/\/es.wikipedia.org\/wiki\/Frecuencias_de_afinaci%C3%B3n_del_piano\">Frecuencias de afinaci\u00f3n de un piano<\/a><\/p>\n\n\n\n<p>Se\u00f1al determin\u00edstica, conocida como una se\u00f1al cuya descripci\u00f3n f\u00edsica es completamente conocida por su forma matem\u00e1tica o gr\u00e1fica.<\/p>\n\n\n\n<p>Ejemplo: <a href=\"https:\/\/www.dropbox.com\/s\/e14hdlx0aglq7ve\/deltasigmaaudio440Hz_1s.wav?dl=0\">Se\u00f1al 440 Hz<\/a><\/p>\n\n\n\n<p>Es una se\u00f1al que puede ser escrita de forma determin\u00edstica como:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x(t)= cos(2\\pi f t)<\/span>\n\n\n\n<p>Siendo f=440 Hz<\/p>\n\n\n\n<p>La se\u00f1al de <strong>440 Hz<\/strong> es usada como la frecuencia referencia para la afinaci\u00f3n de todos los instrumentos musicales desde 1936, adoptada por ISO en 1955 y reafirmado en 1975 como ISO16.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/estg1003\/files\/2017\/04\/senal440Hz.png\" alt=\"se\u00f1al 440Hz\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo en Python - Graficar en dominio del tiempo<\/h3>\n\n\n\n<p>El audio del <strong>archivo.wav<\/strong> se puede escuchar con Windows media player. Para visualizar la forma de se\u00f1al del <strong>archivo.wav<\/strong>, se puede usar Python para leer el archivo y realizar la gr\u00e1fica la se\u00f1al en el dominio del tiempo.<\/p>\n\n\n\n<p>El <strong>archivo.wav<\/strong> debe encontrarse en el mismo directorio que el archivo .py de Python.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Se\u00f1ales anal\u00f3gicas\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport scipy.io.wavfile as waves\n\n# INGRESO\n# archivo = input('archivo.wav a leer: ')\narchivo = '440Hz_44100Hz_16bit_05sec.wav'\n&#x5B;muestreo, sonido] = waves.read(archivo)\n\n# SALIDA - Observaci\u00f3n intermedia\nprint('frecuencia de muestreo: ', muestreo)\nprint('dimensiones de matriz: ', np.shape(sonido))\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code alignwide\"><code>frecuencia de muestreo:  44100\ndimensiones de matriz:  (220500,)<\/code><\/pre>\n\n\n\n<p><strong>Nota<\/strong>: si el archivo.wav tiene etiquetas, se descartan para el ejercicio. por lo que se presenta una advertencia \"WavFileWarning\".<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>c:\\python34\\lib\\site-packages\\scipy\\io\\wavfile.py:179: WavFileWarning: Chunk (non-data) not understood, skipping it. WavFileWarning)<\/code><\/pre>\n\n\n\n<p>Existen 220500 muestras en el archivo del ejemplo, que en una sola gr\u00e1fica puede resultar muy denso y poco observable. La gr\u00e1fica se limitar\u00e1 a una ventana de tiempo del archivo definida en el rango de tiempo por <strong>inicio<\/strong> y <strong>termina<\/strong>, con valores en el rango de milisegundos.<\/p>\n\n\n\n<p>El rango de la ventana puede cambiarse si es de inter\u00e9s usar otro rango de tiempo.<\/p>\n\n\n\n<p>De las dimensiones de la matriz (220500,), se determina que el audio es de tipo monof\u00f3nico al tener una sola dimensi\u00f3n. El audio est\u00e9reo tiene dimensiones de (n,2).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# PROCEDIMIENTO\n# ventana de observaci\u00f3n\ninicia  = 0\ntermina = 0.005\ncanal   = 0\n\n# selecciona datos\ndt = 1\/muestreo\nt  = np.arange(inicia,termina,dt)\nmuestras = len(t)\nfragmento = sonido&#x5B;int(inicia\/dt):int(inicia\/dt)+muestras]\n\n# SALIDA\nplt.plot(t,fragmento)\nplt.ylabel('sonido(t)')\nplt.xlabel('t segundos')\nplt.show()\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"517\" height=\"329\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/04\/senal440Hz_pianoviolin.png\" alt=\"se\u00f1al 440Hz piano violin\" class=\"wp-image-21959\" \/><\/figure>\n\n\n\n<p>Aunque la se\u00f1al es simple de ver, y o\u00edr, la riqueza del sonido de un instrumento corresponde a otros componentes de frecuencia que los hace \u00fanicos al o\u00eddo estando en la misma nota musical.<\/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-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>Se\u00f1al:<\/p>\n\n\n\n<p><a href=\"#senaldeterministica\" data-type=\"internal\" data-id=\"#senaldeterministica\">Determin\u00edstica<\/a><\/p>\n\n\n\n<p><a href=\"#componentes\">Componentes<\/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=\"componentes\">Se\u00f1al Componentes<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Si dise\u00f1a un equipo para transmitir el tono \"la\" de 440Hz, debe tomar en cuenta que no siempre es posible obtener una expresi\u00f3n matem\u00e1tica \"sencilla\" de una se\u00f1al.<\/p>\n\n\n\n<p>Escuche los siguientes sonidos, vea sus gr\u00e1ficas y realice sus observaciones:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.dropbox.com\/s\/ajdskfjcmwhl510\/440Hz_44100Hz_16bit_05sec.wav?dl=0\">440Hz_44100Hz_16bit_05sec.wav<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.dropbox.com\/s\/ysf476q8kb1xv0f\/440Hz_piano.wav?dl=0\">440Hz_piano.wav<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.dropbox.com\/s\/327pd63bco5d7pr\/440Hz_violin_A4.wav?dl=0\">440Hz_violin_A4.wav<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/estg1003\/files\/2017\/04\/senal440Hz_pianoviolin.png\" alt=\"senal440Hz_pianoviolin\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfQue tienen en com\u00fan cada una de las se\u00f1ales?<\/li>\n\n\n\n<li>\u00bfQue tienen de diferente?<\/li>\n\n\n\n<li>Proponga algunas expresiones matem\u00e1ticas para cada una de las gr\u00e1ficas mostradas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo en Python<\/h3>\n\n\n\n<p>Para obtener la gr\u00e1fica de los sonidos, se leen los datos y frecuencias de muestreo de cada uno de los archivos.wav<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Se\u00f1ales anal\u00f3gicas\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport scipy.io.wavfile as waves\n\n# INGRESO\narchivo1 = '440Hz_44100Hz_16bit_05sec.wav'\n&#x5B;muestreo1, sonido1] = waves.read(archivo1)\n\narchivo2 = '440Hz_piano.wav'\n&#x5B;muestreo2, sonido2] = waves.read(archivo2)\n\narchivo3 = '440Hz_violin_A4.wav'\n&#x5B;muestreo3, sonido3] = waves.read(archivo3)\n\n# SALIDA - Observacion intermedia\nprint('archivo, frecuencia , dimensiones:')\nprint('sonido1: ', muestreo1, np.shape(sonido1))\nprint('sonido2: ', muestreo2, np.shape(sonido2))\nprint('sonido3: ', muestreo3, np.shape(sonido3))\n<\/pre><\/div>\n\n\n<p>con lo que se obtiene:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>archivo, frecuencia , dimensiones:\nsonido1:  44100 (220500,)\nsonido2:  11025 (16538,)\nsonido3:  22050 (98160,)<\/code><\/pre>\n\n\n\n<p><strong>Nota<\/strong>: si el archivo.wav tiene etiquetas, se descartan para el ejercicio. por lo que se presenta una advertencia \"WavFileWarning\".<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>c:\\python34\\lib\\site-packages\\scipy\\io\\wavfile.py:179: WavFileWarning: Chunk (non-data) not understood, skipping it.\n  WavFileWarning)<\/code><\/pre>\n\n\n\n<p>Se observa que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>todos los \"sonidos\" son monof\u00f3nicos,<\/li>\n\n\n\n<li>las frecuencias de <strong>muestreo<\/strong> de cada archivo son diferentes<\/li>\n\n\n\n<li>las <strong>dimensiones<\/strong> de cada \"sonido\" o cantidad de muestras indican una duraci\u00f3n diferente<\/li>\n<\/ul>\n\n\n\n<p>Se recomienda escuchar nuevamente cada<strong> sonido<\/strong> y decidir el intervalo de observaci\u00f3n para las gr\u00e1ficas. Se propone usar una ventana de observaci\u00f3n o <strong>fragmento<\/strong> desde de los 1.2 segundos por 11 milisegundos.<\/p>\n\n\n\n<p>Se extraen los <strong>fragmentos<\/strong> de cada <strong>sonido<\/strong> y se determinan los tiempos a los que corresponden basados en cada <code>dt<\/code>, con lo que se grafican los fragmentos.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# PROCEDIMIENTO\n# ventana de observaci\u00f3n\ninicia  = 1.2\ntermina = 1.211\ncanal   = 0\n\n# Extraen los fragmentos de sonido\ndt1 = 1\/muestreo1\nt1  = np.arange(inicia,termina,dt1)\nmuestras   = len(t1)\nfragmento1 = sonido1&#x5B;int(inicia\/dt1):int(inicia\/dt1)+muestras]\n\ndt2 = 1\/muestreo2\nt2  = np.arange(inicia,termina,dt2)\nmuestras   = len(t2)\nfragmento2 = sonido2&#x5B;int(inicia\/dt2):int(inicia\/dt2)+muestras]\n\ndt3 = 1\/muestreo3\nt3  = np.arange(inicia,termina,dt3)\nmuestras  = len(t3)\nfragmento3 = sonido3&#x5B;int(inicia\/dt3):int(inicia\/dt3)+muestras]\n\n# SALIDA\n# grafica\nplt.subplot(311)\nplt.plot(t1,fragmento1)\nplt.ylabel('sonido1(t)')\n\nplt.subplot(312)\nplt.plot(t2,fragmento2)\nplt.ylabel('sonido2(t)')\n\nplt.subplot(313)\nplt.plot(t3,fragmento3)\nplt.ylabel('sonido3(t)')\nplt.xlabel('t segundos')\n\nplt.show()\n<\/pre><\/div>\n\n\n<p><img decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/estg1003\/files\/2017\/04\/senal440Hz_pianoviolin.png\" alt=\"senal440Hz_pianoviolin\"><br>Una vez obtenidas las gr\u00e1ficas, realice observaciones adicionales a cada una de las se\u00f1ales de sonido:<br>1.<br>2.<br>3.<\/p>\n\n\n\n<p><strong>Pregunta<\/strong>:<br>Para la nota musical \"la\", ejecutada en un violin tradicional tradicional de madera, \u00bftendr\u00e1 la misma forma de se\u00f1al siempre?.<\/p>\n\n\n\n<p>Considere las siguientes situaciones:<br>a. Tocada por diferentes m\u00fasicos<br>b. en diferentes lugares<br>c. en diferentes d\u00edas<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Tarea<\/h2>\n\n\n\n<p>Buscar la nota \"La\" en otros instrumentos en formato.wav. De ser necesario realizar observaciones adicionales.<\/p>\n\n\n\n<p><strong><em>Referencia<\/em><\/strong>: Lathi 1.3.2 pdf\/p.63, <a href=\"https:\/\/www.iso.org\/standard\/3601.html\">Est\u00e1ndar ISO16<\/a>, <a href=\"https:\/\/es.wikipedia.org\/wiki\/Frecuencias_de_afinaci%C3%B3n_del_piano\">Frecuencias de afinaci\u00f3n de un piano<\/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-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>Se\u00f1al:<\/p>\n\n\n\n<p><a href=\"#senaldeterministica\" data-type=\"internal\" data-id=\"#senaldeterministica\">Determin\u00edstica<\/a><\/p>\n\n\n\n<p><a href=\"#componentes\" data-type=\"internal\" data-id=\"#componentes\">Componentes<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Se\u00f1al: Determin\u00edstica Componentes Se\u00f1al Determin\u00edstica Referencia: Lathi 1.3.2 pdf\/p.63, Est\u00e1ndar ISO16, Frecuencias de afinaci\u00f3n de un piano Se\u00f1al determin\u00edstica, conocida como una se\u00f1al cuya descripci\u00f3n f\u00edsica es completamente conocida por su forma matem\u00e1tica o gr\u00e1fica. Ejemplo: Se\u00f1al 440 Hz Es una se\u00f1al que puede ser escrita de forma determin\u00edstica como: Siendo f=440 Hz La se\u00f1al [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-stp-unidades","format":"standard","meta":{"footnotes":""},"categories":[213],"tags":[],"class_list":["post-70","post","type-post","status-publish","format-standard","hentry","category-stp-u01eva"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/70","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=70"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/70\/revisions"}],"predecessor-version":[{"id":23260,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/70\/revisions\/23260"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}