{"id":21989,"date":"2017-01-25T14:50:29","date_gmt":"2017-01-25T19:50:29","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/estg1003\/?p=775"},"modified":"2026-04-16T09:30:20","modified_gmt":"2026-04-16T14:30:20","slug":"senal-sonido-pmf-cdf","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/stp-aplica\/senal-sonido-pmf-cdf\/","title":{"rendered":"Se\u00f1al Sonido - cdf"},"content":{"rendered":"\n<p><strong><em>Referencia<\/em><\/strong>: Leon W Couch ap\u00e9ndice B p675, \"El Aguacate\", pasillo introducci\u00f3n, <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/ccpg1001\/archivos-de-audio-wav-abrir-extraer-una-porcion\/\">Archivos de Audio.wav \u2013 Abrir, extraer una porci\u00f3n<\/a><\/p>\n\n\n\n<p>De forma semejante al an\u00e1lisis para una se\u00f1al triangular, se obtiene barriendo una ventana estrecha de <strong>\u0394x<\/strong> voltios de ancho, verticalmente a lo largo de las formas de onda y despu\u00e9s midiendo la frecuencia relativa de la ocurrencia de voltajes en la ventana <strong>\u0394x<\/strong>.<\/p>\n\n\n\n<p>El eje de tiempo se divide en <strong>n<\/strong> intervalos y la forma de onda aparece <strong>n\u0394x<\/strong> veces dentro de estos intervalos en la ventana \u0394x.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"560\" height=\"361\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/07\/SonidoPmf01.png\" alt=\"sonido el aguacate intro\" class=\"wp-image-21976\" \/><\/figure>\n\n\n\n<p>Se inicia abriendo el archivo <code>'<a href=\"https:\/\/www.dropbox.com\/s\/04wl05aj291ivxc\/muestra01_ElAguacateIntro.wav?dl=0\">muestra01_ElAguacateIntro.wav<\/a>'<\/code>, seleccionando un canal en caso de ser est\u00e9reo. Para los c\u00e1lculos se convierte a n\u00fameros reales 'float' de tipo est\u00e1ndar de python y para la gr\u00e1fica se determina el rango de tiempo <code>'t'<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# pmf de un sonido\n# entrada es arcchivo01\n# propuesta:edelros@espol.edu.ec\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport scipy.io.wavfile as waves\nimport scipy.stats as stats\n\n# INGRESO \n# archivo01 = input('archivo de sonido 01:' )\narchivo01 = 'muestra01_ElAguacateIntro.wav'\n\n# PROCEDIMIENTO\nmuestreo, sonido01 = waves.read(archivo01)\n\n# Extrae un canal en caso de est\u00e9reo\ncanales=np.shape(sonido01)\ncuantos=len(canales)\ncanal = 0   \nif (cuantos==1): # Monof\u00f3nico\n    uncanal=sonido01&#x5B;:]  \nif (cuantos&gt;=2): # Est\u00e9reo\n    uncanal=sonido01&#x5B;:,canal]\n    \nsenal=uncanal.astype(float)\ndt=1\/muestreo\nn=len(senal)\nt=np.arange(0,n*dt,dt)\n<\/pre><\/div>\n\n\n<p>Se grafica la se\u00f1al en observaci\u00f3n de <strong>uncanal<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# SALIDA GRAFICA\nplt.plot(t,senal)\nplt.title(' Sonido')\nplt.xlabel('t')\nplt.ylabel('se\u00f1al')\nplt.plot()\nplt.show()\n<\/pre><\/div>\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/07\/SonidoPmf01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-776\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/07\/SonidoPmf01.png\" alt=\"\" width=\"560\" height=\"361\"><\/a><br>Aplicando luego el mismo algoritmo usado para se\u00f1ales triangulares y senoidales, manteniendo la forma discreta.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Funci\u00f3n de Probabilidad de Masa, PMF\nm=40  # intervalos eje vertical\n\n#PROCEDIMIENTO\nrelativa = stats.relfreq(senal, numbins = m )\ndeltax=relativa.binsize\n\n# Eje de frecuencias, por cada deltax\nsenalmin=np.min(senal)\nsenalmax=np.max(senal)\nsenalrango=np.linspace(senalmin,senalmax,m)\n\n# SALIDA\nprint('frecuencia relativa:')\nprint(relativa.frequency)\nprint('Rango de Se\u00f1al')\nprint(senalrango)\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code alignwide\"><code>frecuencia relativa:\n&#091; 0.00023583  0.00073469  0.00089796  0.00053515  0.00084354  0.00179592  0.00245805  0.00306576  0.0039093   0.00504308  0.0066576   0.0099229  0.01693424  0.02671202  0.03568254  0.05160998  0.06758277  0.07323356  0.08575057  0.09217234  0.11898413  0.08494331  0.07535601  0.06454422  0.05382313  0.03821315  0.02429932  0.01573696  0.01075737  0.00767347  0.00576871  0.00365533  0.00245805  0.00176871  0.00145125  0.00103401  0.0008254   0.00106122  0.00137868  0.0004898 ]\nRango de Se\u00f1al\n&#091;-32768.         -31087.61538462 -29407.23076923 -27726.84615385 -26046.46153846 -24366.07692308 -22685.69230769 -21005.30769231 -19324.92307692 -17644.53846154 -15964.15384615 -14283.76923077 -12603.38461538 -10923.          -9242.61538462  -7562.23076923  -5881.84615385  -4201.46153846  -2521.07692308   -840.69230769    839.69230769   2520.07692308   4200.46153846   5880.84615385   7561.23076923   9241.61538462  10922.          12602.38461538  14282.76923077  15963.15384615  17643.53846154  19323.92307692  21004.30769231  22684.69230769  24365.07692308  26045.46153846  27725.84615385  29406.23076923  31086.61538462  32767.        ]<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# SALIDA Grafico de PMF\nplt.bar(senalrango,relativa.frequency, width=deltax*0.8)\nplt.xlabel('Amplitud de se\u00f1al')\nplt.ylabel('PMF')\nplt.show()\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/07\/SonidoPmf02.png\"><img decoding=\"async\" src=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/estg1003\/files\/2017\/07\/SonidoPmf02.png\" alt=\"\" class=\"wp-image-777\" \/><\/a><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Funci\u00f3n distribuci\u00f3n acumulada\nacumulada=np.cumsum(relativa.frequency)\n\n# SALIDA CDF\nplt.step(senalrango,relativa.frequency,label='pmf', where='post')\nplt.step(senalrango,acumulada,label='cdf', where='post')\nplt.xlabel('Amplitud de se\u00f1al')\nplt.title(' Funci\u00f3n de distribui\u00f3n acumulada , CDF')\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/07\/SonidoPmf04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"359\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/07\/SonidoPmf04.png\" alt=\"\" class=\"wp-image-778\" \/><\/a><\/figure>\n\n\n\n<p>Para grabar los archivos puede usar <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>np.savetxt('nombrearchivo.txt', arreglodata )<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Referencia: Leon W Couch ap\u00e9ndice B p675, \"El Aguacate\", pasillo introducci\u00f3n, Archivos de Audio.wav \u2013 Abrir, extraer una porci\u00f3n De forma semejante al an\u00e1lisis para una se\u00f1al triangular, se obtiene barriendo una ventana estrecha de \u0394x voltios de ancho, verticalmente a lo largo de las formas de onda y despu\u00e9s midiendo la frecuencia relativa de [&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-21989","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\/21989","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=21989"}],"version-history":[{"count":2,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21989\/revisions"}],"predecessor-version":[{"id":23251,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21989\/revisions\/23251"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=21989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=21989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=21989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}