<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31327455</id><updated>2011-12-28T16:55:31.797-03:00</updated><category term='motor paso paso stepper motor music musica'/><category term='Musica GNU-Octave'/><category term='calculo frecuencia nota musical matlab gnu-octave'/><category term='Animación Motor Radial en Matlab gnu-octave'/><category term='Animacion Matlab GNU-Octave gif'/><category term='musica en matlab music'/><category term='pc beep bip linux internal speaker parlante interno musica c++'/><category term='gif matlab'/><category term='Orbita de Satelite Molniya  Matlab'/><category term='Audio  Tacómetro con Matlab medicion RPM motor sonido ruido'/><category term='fuerza chile himno nacional parlante interno pc speaker'/><category term='sonido matlab gnu-octave'/><category term='Volar...'/><category term='graficos octave octplot'/><category term='Sonido altura timbre intensidad'/><title type='text'>RocoBlog</title><subtitle type='html'>El Blog de Francisco Roco</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31327455.post-8524114400398319506</id><published>2010-04-21T01:21:00.008-04:00</published><updated>2011-08-06T22:45:50.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='motor paso paso stepper motor music musica'/><title type='text'>El Motor paso paso temperado a ±0.5[Hz] ( o Música con motores eléctricos)</title><content type='html'>El título hace referencia al "Clavecín bien temperado". Como nunca se pueden temperar o afinar bien las cosas, se indicó el máximo error por resolución en la afinación, que corresponde a medio [Hz].&lt;br /&gt;&lt;br /&gt;Como ejemplo, a continuación se trata de reproducir, a dos voces - que es lo que permite el controlador- el &lt;strong&gt;Himno Nacional de Chile&lt;/strong&gt;, para acentuar el nacionalismo post terremoto, la &lt;strong&gt;Badinerie de J.S. Bach&lt;/strong&gt;, pues a el se le debe el título y el &lt;strong&gt;Himno de la Universidad de Concepción&lt;/strong&gt; mi &lt;em&gt;alma mater&lt;/em&gt; y dueña de los motores.&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rMLWoW2o-9Y&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rMLWoW2o-9Y&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qK8z3BGp4-E&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/qK8z3BGp4-E&amp;amp;hl=es_ES&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wAHNweqCjXY&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wAHNweqCjXY&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;--&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/Nisn4cYt7hE?fs=1" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/nvpjr0q_uL0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;h3&gt; Un intento de explicación&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Cuando se puede controlar la frecuencia con la resolución de ±1[Hz] en una máquina y se puede controlar el tiempo de funcionamiento a esa frecuencia, se puede hacer música con ella.&lt;br /&gt;&lt;br /&gt;Este es el caso de los &lt;a href="http://es.wikipedia.org/wiki/Motor_paso_a_paso"&gt;motores paso paso&lt;/a&gt; o "stepper motors". En el caso particular del ejemplo de más abajo, usando un &lt;a href="http://www.techno-isel.com/Tic/motor_controllers.htm"&gt;controlador ISEL&lt;/a&gt; basta con enviarle los movimientos vía puerto serial.&lt;br /&gt;&lt;br /&gt;Usando la &lt;a href="http://rocoblog.blogspot.com/2007/01/clculo-de-frecuencias-para-una-nota-y.html"&gt;fórmula para convertir notas musicales en frecuencia&lt;/a&gt; y modificando el programa para hacer &lt;a href="http://rocoblog.blogspot.com/2009/09/como-hacer-musica-en-gnu-octave-o.html"&gt;música en GNU-Octave/Matlab&lt;/a&gt;, de manera que entregue la sintaxis de los movimientos de los motores en vez de la salida del audio, es una opción para hacer música con motores paso paso.&lt;br /&gt;&lt;br /&gt;Es importante decir que la sintaxis típica del motor es:&lt;br /&gt;&lt;br /&gt;[np motor 1],[vel motor 1],[np motor 2],[vel motor 2]&lt;br /&gt;&lt;br /&gt;por lo que el programa debe hacer la conversión de tiempo a numero de pasos basado en la frecuencia de giro. Existe un problema en este punto, porque para bajas frecuencias el error en tiempo crece, y se desea que para cada línea el tiempo de ejecución sea el  mismo, porque por cada línea se da la instrucción de mover 2 motores simultáneamente.&lt;br /&gt;&lt;br /&gt;El programa para la conversión, está probado en GNU-Octave y requiere de la función &lt;em&gt;notacnc_2.m&lt;/em&gt;, similar a la del programa anterior, para funcionar. En la sintaxis del programa se adjuntan las mismas canciones, expuestas anteriormente, como el Badinerie.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;El Código&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www2.udec.cl/~franciscoroco/dosvoces.m"&gt;El programa&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www2.udec.cl/~franciscoroco/notacnc_2.m"&gt;La función&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;En resumen, si puedes controlar la frecuencia, puedes hacer música.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-8524114400398319506?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/8524114400398319506/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=8524114400398319506' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/8524114400398319506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/8524114400398319506'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2010/04/el-motor-paso-paso-temperado-05hz.html' title='El Motor paso paso temperado a ±0.5[Hz] ( o Música con motores eléctricos)'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Nisn4cYt7hE/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-3908250346124731085</id><published>2010-03-05T13:22:00.006-03:00</published><updated>2010-03-06T00:34:10.287-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fuerza chile himno nacional parlante interno pc speaker'/><title type='text'>¡Fuerza Chile!</title><content type='html'>&lt;object width="425" height="350"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/gnIqm4tw-Fw"&gt;&lt;br /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/gnIqm4tw-Fw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.chileayudaachile.cl/" title="En vivo: Chile ayuda a Chile" target="_blank"&gt;&lt;img src="http://www.chileayudaachile.cl/banners/234x60-envivo.jpg" alt="En vivo: Chile ayuda a Chile" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tras el &lt;strong&gt;Terremoto&lt;/strong&gt; de 8,8 grados en la escala &lt;emp&gt;Richter&lt;/emp&gt; que ha afectado a la zona centro sur de &lt;strong&gt;Chile&lt;/strong&gt; se necesita &lt;strong&gt;ayuda&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;&lt;strong&gt;Manual de Cómo ayudar&lt;/strong&gt;&lt;/h2&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cooperativa.cl/prontus_nots/site/artic/20100301/pags/20100301173542.html#T0"&gt;Alternativas de Ayuda&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.chileayudachile.cl/"&gt;Chile Ayuda a Chile&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Cuenta Única 2702&lt;/strong&gt; Banco de Chile/Banco Santander&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;La foto que representa la campaña &lt;strong&gt;Chile ayuda a Chile&lt;/strong&gt;, que muestra a un compatriota levantando una &lt;strong&gt;bandera chilena&lt;/strong&gt; embarrada y rota entre escombros. Ese simbolismo contagioso me ha llevado a utilizar &lt;a href="http://rocoblog.blogspot.com/2009/12/como-hacer-musica-con-el-parlante.html"&gt;el parlante interno de mi PC&lt;/a&gt; para levantar simbólicamente nuestra bandera musical, el &lt;strong&gt;Himno nacional de Chile&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;El himno está arreglado para dos voces, en el video aparece una voz grabada previamente y superpuesta, para que suene mejor.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; El &lt;strong&gt;código del programa&lt;/strong&gt;, el ejecutable y las notas de la primera y segunda voz del himno están para la descarga &lt;a href="http://www.megaupload.com/?d=9XJQ7OR9"&gt;vía megaupload&lt;/a&gt; y vía &lt;a href="http://rapidshare.com/files/359527684/musica-bip-linux.zip.html"&gt;rapidshare&lt;/a&gt;  &lt;/p&gt;&lt;br /&gt;&lt;p&gt;A modo de comentario es importante decir que los terremotos no son un acontecimiento aislado en Chile. De hecho la misma zona ha sentido terremotos en el periodo histórico de la colonia. En 1751 uno destruyó &lt;strong&gt;Concepción&lt;/strong&gt; y &lt;strong&gt;Chillán&lt;/strong&gt;, fue en ese entonces, que la ciudad de Concepción se re-fundó en el lugar que está hoy -antes estaba en la localidad de Penco (Por eso el gentilicio de Concepción es penquista)- y la Ciudad de Chillán se reconstruyó donde hoy está Chillán Viejo.  El Chillán actual, que está al lado de Chillán Viejo, fue construido por otro terremoto, en 1835. Y sufriría otros terremotos en 1939, 1953 y 1960.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Por eso ánimo a todos, fuerza Chile, te levantarás.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-3908250346124731085?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/3908250346124731085/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=3908250346124731085' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/3908250346124731085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/3908250346124731085'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2010/03/fuerza-chile.html' title='¡Fuerza Chile!'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-2838172979375700968</id><published>2009-12-14T04:41:00.005-03:00</published><updated>2009-12-14T05:14:37.275-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pc beep bip linux internal speaker parlante interno musica c++'/><title type='text'>Cómo hacer música con el parlante interno del PC y C++</title><content type='html'>Al pensar en el parlante o altavoz interno del PC, en inglés, &lt;a href="http://en.wikipedia.org/wiki/PC_speaker"&gt;&lt;em&gt;PC speaker&lt;/em&gt;&lt;/a&gt;, se nos viene a la cabeza el &lt;em&gt;bip&lt;/em&gt;, en inglés &lt;em&gt;beep&lt;/em&gt; que suena como aviso.&lt;br /&gt;&lt;br /&gt;Usando la consola en cualquier distribución basada en GNU/Linux se puede controlar el parlante, de modo de hacer frecuencias y duraciones a voluntad y poder hacer música. A diferencia del uso de &lt;a href="http://rocoblog.blogspot.com/2007/01/clculo-de-frecuencias-para-una-nota-y.html"&gt;GNU-Octave y Matlab para hacer música&lt;/a&gt;, noi se necesita construir la onda, solo se debe controlar la frecuencia y duración.&lt;br /&gt;&lt;br /&gt;Tomando como referencia la entrada de notas usada para &lt;a href="http://rocoblog.blogspot.com/2007/05/musica-en-matlab-como-hacer-musica-en.html"&gt;hacer música en Matlab&lt;/a&gt;, en la que se ingresan notas de forma parecida a como se hace en los programas compositores en los celulares Nokia, especificando la duración en el primer caracter, la nota en clave americana, y la octava tomando como octava central la 3ra, se puede hacer una función teniendo como entrada las notas en dicho formato y como salida las frecuencias y las duraciones de esas notas.&lt;br /&gt;&lt;br /&gt;La salida de la función -&lt;em&gt;las frecuencias y las duraciones&lt;/em&gt; pueden ser ingresadas a otros dispositivos, en el caso del Matlab era a otra función que creaba las ondas, a motores controlados electronicamente, etcétera.&lt;br /&gt;&lt;br /&gt;En este caso nos comunicamos con el parlante enviandole frecuencias y notas:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;//  La Función que hace los sonidos&lt;br /&gt;int suena(int freq,int len){&lt;br /&gt;  &lt;br /&gt; int fd = open("/dev/console", O_WRONLY);&lt;br /&gt;      ioctl(fd, KIOCSOUND, (int)(1193180/freq));&lt;br /&gt;      //usleep(1000*len);&lt;br /&gt;&lt;br /&gt; usleep(1000*len);&lt;br /&gt;      ioctl(fd, KIOCSOUND, 0);&lt;br /&gt;      close(fd);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Esta parte puede hacerse de forma distinta instalando &lt;strong&gt;gnubeep&lt;/strong&gt;. Con el que se puede escribir &lt;br /&gt;&lt;div class="codigo"&gt; gnubeep -f 2600 -l 1000000&lt;/div&gt;&lt;br /&gt;y sonarán 600 &lt;a href"http://es.wikipedia.org/wiki/Hercio"&gt;[Hz]&lt;/a&gt; por 1 segundo.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; El código&lt;/h2&gt;&lt;br /&gt;El código escrito en &lt;a href="http://es.wikipedia.org/wiki/C%2B%2B"&gt;C++&lt;/a&gt; funcionó en mi PC con &lt;a href="http://www2.mandriva.com/es/"&gt;Mandriva 2009.1&lt;/a&gt;, y probablemente funcione en cualquier &lt;a href="http://es.wikipedia.org/wiki/Distribución_Linux"&gt;distribución GNU/Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Puede ser compilado para Windows descomentando las partes indicadas con &lt;strong&gt;//win&lt;/strong&gt; .&lt;br /&gt;&lt;br /&gt;Está a disposición de vustra merced en el enlace: &lt;a href="http://www2.udec.cl/~franciscoroco/musica.cpp"&gt;musica.cpp&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Algunos ejemplos para ingresarle al programa:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Badinerie  BWV 1067 de J.S. Bach. La transcripción es para la primera voz y la parte del bajo&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;   &lt;li&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/badinerie_1.txt"&gt;Badinerie primera voz&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/badinerie_2.txt"&gt;Badinerie segunda voz&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;Suite para Cello N°1, BWV 1007 J.S. Bach&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/cello_suite_1.txt"&gt;Suite de Cello&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt; Invention 13 (BWV 784) de J.S. Bach&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/invencion13_primera.txt"&gt;Invención 13 primera voz&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/invencion13_segunda.txt"&gt;Invención 13 segunda voz&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;br /&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt; Ejemplos&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Usando dos computadores y sincronizando el instante en que empiezan las canciones se probaron los ejemplos anteriores.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Badinerie BWV 1067&lt;/h3&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QBYTYTaJYLU&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/QBYTYTaJYLU&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Invención 13, BWV 784&lt;/h3&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AJkquHX1c4c&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/AJkquHX1c4c&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Suite para Cello 1007&lt;/h3&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o6s6Ce9jM14&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/o6s6Ce9jM14&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Comentario&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Si quiere desactivar el pitido, escriba en la consola como superusuario:&lt;br /&gt;&lt;div class="codigo"&gt;# modprobe -r pcspkr&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-2838172979375700968?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/2838172979375700968/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=2838172979375700968' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/2838172979375700968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/2838172979375700968'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2009/12/como-hacer-musica-con-el-parlante.html' title='Cómo hacer música con el parlante interno del PC y C++'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-727526775090639091</id><published>2009-09-10T23:53:00.017-04:00</published><updated>2009-12-19T05:49:31.698-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musica GNU-Octave'/><title type='text'>Como hacer musica en GNU Octave o Música en GNU Octave  o bien migrando "Musica en Matlab" a Octave</title><content type='html'>En la una de las &lt;a href="http://rocoblog.blogspot.com/2007/05/musica-en-matlab-como-hacer-musica-en.html"&gt;entradas anteriores&lt;/a&gt; se describe un programa para hacer música en Matlab, programa que fue probado en Windows.&lt;br /&gt;&lt;br /&gt;La idea es si existe un computador con alguna distribución de GNU/Linux, y en vez de &lt;a href="http://www.mathworks.com/"&gt;Matlab&lt;/a&gt; ocupamos el siempre útil y nunca bien ponderado &lt;a href="http://www.gnu.org/software/octave/"&gt;GNU Octave&lt;/a&gt; para ejecutar este programa.&lt;br /&gt;&lt;br /&gt;Muchos comandos de &lt;a href="http://www.mathworks.com/"&gt;Matlab&lt;/a&gt;  se ejecutan de igual manera en &lt;a href="http://www.gnu.org/software/octave/"&gt;GNU Octave&lt;/a&gt;.&lt;br /&gt;Excepto por algunos comandos importantes :&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt; menu('title','opc 1','opc 2') &lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Este comando no está en  &lt;a href="http://www.gnu.org/software/octave/"&gt;GNU Octave&lt;/a&gt;, por lo menos en la instalación del paquete &lt;a href="http://octave.sourceforge.net/"&gt;Octave-forge&lt;/a&gt;, así que el menú con botones de &lt;a href="http://www.mathworks.com/"&gt;Matlab&lt;/a&gt;, pasa a ser un sencillo menú por consola.&lt;br /&gt;&lt;br /&gt;Otro comando que existe para Matlab y funciona en Octave es :&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt; sound(y,fm) &lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;las primeras veces que ejecuté el programa arrojaba un error así:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;&lt;br /&gt;octave:2&gt; Fs=44100;&lt;br /&gt;octave:3&gt; t=0:1/Fs:1;&lt;br /&gt;octave:4&gt; y=sin(2*pi*440*t);&lt;br /&gt;octave:5&gt; sound(y,Fs)&lt;br /&gt;sh: ofsndplay: command not found&lt;br /&gt;warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details&lt;br /&gt;warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details&lt;br /&gt;warning: broken pipe -- some output may be lost&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La solución es simplemente un &lt;div class="codigo"&gt;&lt;code&gt; clear all&lt;/code&gt;&lt;/div&gt; antes de ejecutar el comando. Existe un error al hacer esto cuando un instala el Octave-forge, pero la solución es borrar unos paquetes que por lo menos en este caso no son prioridad, en detalle está &lt;a href="http://elblogmano.blogspot.com/2009/05/error-bug-de-octave-al-hacer-clear-all.html"&gt;acá&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;El funcionamiento muestra el detalle de lo reproducido:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;octave:7&gt; clear all&lt;br /&gt;octave:8&gt; Fs=44100;&lt;br /&gt;octave:9&gt; t=0:1/Fs:1;&lt;br /&gt;octave:10&gt; y=sin(2*pi*440*t);&lt;br /&gt;octave:11&gt; sound(y,Fs)&lt;br /&gt;warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details&lt;br /&gt;warning: warn_fortran_indexing is no longer a built-in variable; please read the NEWS file or type `news' for details&lt;br /&gt;play au: header size 24 is too small&lt;br /&gt;&lt;br /&gt;-: (au)&lt;br /&gt;&lt;br /&gt;Encoding: Signed PCM&lt;br /&gt;Channels: 1 @ 16-bit&lt;br /&gt;Samplerate: 44100Hz&lt;br /&gt;Replaygain: off&lt;br /&gt;Duration: unknown&lt;br /&gt;&lt;br /&gt;In:0.00% 00:00:01.00 [00:00:00.00] Out:44.1k [      |      ] Hd:0.0 Clip:0&lt;br /&gt;Done.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Al intentar correr el programa en &lt;a href="http://es.wikipedia.org/wiki/Fedora_(distribución_Linux)#Fedora_12"&gt;Fedora 12&lt;/a&gt; obtenía el siguiente  error:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;octave:1&gt; Fs=44100;t=0:1/Fs:1;y=sin(2*pi*440*t);sound(y)&lt;br /&gt;error: sound.m: No command line utility found for sound playing&lt;br /&gt;error: called from:&lt;br /&gt;error:   /usr/share/octave/packages/audio-1.1.4/sound.m at line 108, column 5&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;La solución para esto, que dan en &lt;a href="http://start.ubuntuforums.org/showthread.php?t=1002606"&gt;los foros de ubuntu&lt;/a&gt; es en resumen la siguiente:&lt;br /&gt;&lt;br /&gt;Tener instalado &lt;strong&gt;alsa-utils&lt;/strong&gt; o &lt;strong&gt;pulseaudio-utils&lt;/strong&gt;.&lt;br /&gt;Luego dice poner en  &lt;code&gt;~/.octaverc&lt;/code&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;global sound_play_utility = 'aplay';&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;o bien&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;global sound_play_utility = 'paplay';&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;o bien ponerlo directamente en Octave.&lt;br /&gt;&lt;br /&gt;Vemos que funciona:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;octave:2&gt;  Fs=44100;t=0:1/Fs:1;y=sin(2*pi*440*t);sound(y,Fs)&lt;br /&gt;Playing Sparc Audio 'stdin' : Signed 16 bit Big Endian, Rate 44100 Hz,Mono&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Otro comando que se ejecuta de manera parecida en Octave es:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;wavwrite( 'nombre',y, Fs, nbits)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;la diferencia es importante es que la señal guardada en un vector &lt;code&gt;y&lt;/code&gt;, debe ser ingresada necesariamente como un vector columna. En este caso &lt;code&gt;y&lt;/code&gt; es un vector fila, cual debe ser ingresado traspuesto:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;octave:13&gt; wavwrite( 'Roco_audio.wav',y', Fs, 16)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Con esas consideraciones, el programa esta listo para ejecutarse.&lt;br /&gt;Básicamente, los cambios que hay que hacerle al código  Matlab para ejecutarse en Octave son relativamente menores.&lt;br /&gt;&lt;br /&gt;El programa fue probado en  &lt;code&gt;GNU Octave, version 3.0.3&lt;/code&gt; sobre &lt;a href="http://www.mandriva.com/es/descargas"&gt;Mandriva Linux Free 2009 Spring.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;El programa&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El menú del programa se ve así, obviamente las tildes son omitidas para evitar errores de codificación de caracteres  :&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   MENU     &lt;br /&gt;-----------------------&lt;br /&gt;Seleccione Opcion&lt;br /&gt;&lt;br /&gt;1) Ingresar notas 1ra voz&lt;br /&gt;2) Ingresar notas 2da voz&lt;br /&gt;3) Ingresar notas 3ra voz&lt;br /&gt;4) Ingresar Percusion&lt;br /&gt;5) Sonido&lt;br /&gt;6) Guardar Cancion&lt;br /&gt;7) Duracion de la negra [s]&lt;br /&gt;8) Salir&lt;br /&gt;-----------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La idea es la misma que en &lt;a href="http://rocoblog.blogspot.com/2007/05/musica-en-matlab-como-hacer-musica-en.html"&gt;aca,&lt;/a&gt; salvo que en Octave.&lt;br /&gt;&lt;a href="http://www.udec.cl/%7Efranciscoroco/musica_octave.zip"&gt;Acá el programa y las funciones&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;y un ejemplo que no incluye el uso de la percusión :&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Versión de un fragmento de la canción "Rosas" de la Oreja de van Gogh GNU Octave&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=bc0439b" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La Badinerie de J.S. Bach BWV 1067&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=245c0e7" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chao&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-727526775090639091?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/727526775090639091/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=727526775090639091' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/727526775090639091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/727526775090639091'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2009/09/como-hacer-musica-en-gnu-octave-o.html' title='Como hacer musica en GNU Octave o Música en GNU Octave  o bien migrando &quot;Musica en Matlab&quot; a Octave'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-1579331843283793431</id><published>2009-05-30T00:11:00.006-04:00</published><updated>2009-12-11T03:46:03.590-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graficos octave octplot'/><title type='text'>Gráficos en GNU Octave, la  alternativa a Matlab</title><content type='html'>En GNU &lt;a href="http://es.wikipedia.org/wiki/GNU_Octave"&gt;Octave&lt;/a&gt; el programa para cálculos numéricos similar a Matlab, la mayoría de los comandos en la sintaxis son iguales.&lt;br /&gt;&lt;br /&gt;Para graficar, se ocupa  el comando &lt;code&gt;plot(x,y)&lt;/code&gt; el cual entrega gráficos menos agradables a la vista que los logrados en Matlab.  Octave ocupa para esto otro Software que se llama &lt;a href="http://es.wikipedia.org/wiki/Gnuplot"&gt;GNU Plot. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Se puede cambiar el uso del GNU Plot por otro programa, que mejora la presentación de los gráficos, usando comandos iguales en algunos casos, y otros parecidos.&lt;br /&gt;&lt;br /&gt;Ese programa es &lt;a href="http://octplot.sourceforge.net/"&gt;OctPlot&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para obtener octplot + Octave:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;$ sudo apt-get install octave octplot&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Luego para activar OctPlot, despues de hechar a correr Octave se pone:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;octave:1&gt; toggle_octplot&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lo que desactiva GNUplot y deja trabajando a OctPlot.&lt;br /&gt;&lt;br /&gt;Un Ejemplo de un gráfico obtenido en Octplot, a continuación la sintaxis:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;t=0:.1:10;&lt;br /&gt;y=sin(pi*t);&lt;br /&gt;x=cos(pi*t);&lt;br /&gt;z=2*cos(pi*t+pi/4)+1;&lt;br /&gt;plot(t,y,'k')&lt;br /&gt;hold on&lt;br /&gt;plot(t,x,'k--')&lt;br /&gt;plot(t,z,'r.-')&lt;br /&gt;&lt;br /&gt;title('Titulo del Grafico');&lt;br /&gt;xlabel('Variable Independiente');&lt;br /&gt;ylabel('Vatiable Dependiente');&lt;br /&gt;&lt;br /&gt;axis([0 10 -1 3]);&lt;br /&gt;legend('Signal 1','Signal 2','signal 3');&lt;br /&gt;text(5,2,'Texto en el grafico');&lt;br /&gt;print('MiGrafico.png', "-dpng");&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/SiC4R8KqAYI/AAAAAAAAAJU/uHyXu9GfO-8/s1600-h/MiGrafico.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/SiC4R8KqAYI/AAAAAAAAAJU/uHyXu9GfO-8/s400/MiGrafico.png" alt="" id="BLOGGER_PHOTO_ID_5341471776409518466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Chao.&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-1579331843283793431?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/1579331843283793431/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=1579331843283793431' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/1579331843283793431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/1579331843283793431'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2009/05/graficos-en-gnu-octave-la-alternativa.html' title='Gráficos en GNU Octave, la  alternativa a Matlab'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ep6DnIy71qM/SiC4R8KqAYI/AAAAAAAAAJU/uHyXu9GfO-8/s72-c/MiGrafico.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-8820689096516094850</id><published>2008-05-19T23:07:00.014-04:00</published><updated>2009-12-11T02:25:26.320-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Orbita de Satelite Molniya  Matlab'/><title type='text'>Órbita de Molniya o Molniya Orbit o молния</title><content type='html'>&lt;p&gt;&lt;a href="http://www2.udec.cl/%7Efranciscoroco/molniya.gif"&gt;&lt;img src="http://www2.udec.cl/%7Efranciscoroco/molniya.gif" alt="Orbita de Molniya en Matlab" vspace="5" align="left" border="0" hspace="5" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La &lt;a href="http://es.wikipedia.org/wiki/%C3%93rbita_de_Molniya"&gt;órbita de Molniya&lt;/a&gt; es una órbita inventada por los camaradas de la ex &lt;a href="http://es.wikipedia.org/wiki/URSS"&gt;Unión Soviética&lt;/a&gt; para utilizarla en sus satélites de comunicación. Antes de hacer esto, pensé que era fácil comunicar vía satélite a cualquier parte del globo, pero no es así, pues sólo para lugares que estan cercanos al Ecuador se puede poner un &lt;a href="http://es.wikipedia.org/wiki/%C3%93rbita_geoestacionaria"&gt;satélite geoestacionario.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;¿Que pasa con los lugares que están cercanos a los polos?&lt;br /&gt;&lt;br /&gt;El satélite geoestacionario permenece sobre el punto que se requiere porque mantiene su velocidad igual a la de este punto. ¿Que características debe tener la órbita para cumplir con esta misión?&lt;br /&gt;&lt;br /&gt;La velocidad de rotación de  la tierra es constante, y si quiero que el satélite siga a un punto en la superfice la velocidad de rotación - o velocidad angular - del satélite debe ser la misma. La órbita con la velocidad angular constante es la circular, que usan los geoestacionarios, en ella, la distancia del satélite a la tierra permanece igual siempre -no como el la órbita elíptica-.&lt;br /&gt;&lt;br /&gt;La órbita del satelite estará sobre un plano, este plano contendrá siempre el centro de la tierra, es decir , si quiero que mi satélite geostacionario pase por Concepción, defino el plano por el que esta esta ciudad, y me doy cuenta que al girar sobre este punto el satélite no pasará por el centro de la tierra, es decir no puedo poner un satelite geoestacionario ahí, ¿Dónde puedo? En el ecuador porque el plano de las ubicaciones que están ahi contiene el centro de la tierra.&lt;br /&gt;&lt;br /&gt;En ese momento es cuando el DT llama para que entre a la cancha a la órbita elíptica.  La característica que tiene esta órbita es que tiene una distancia máxima, el  &lt;a href="http://es.wikipedia.org/wiki/Apogeo"&gt;apogeo,&lt;/a&gt; y una mínima, el &lt;a href="http://es.wikipedia.org/wiki/Perigeo"&gt;perigeo.&lt;/a&gt;  La gracia esta en que en el perigeo la velocidad del satélite&lt;br /&gt;&lt;br /&gt;La que  Esta órbita es una buena solución para el problema de cubrir zonas de alta latitud, dicho de otra forma , de zonas cercanas a los polos. Los camarradas pensarón en esta órbita para su Madrrre RRRusia, pero también puede servir pa nuestro Chile querido porque tenemos territorio muy al sur del mundo.&lt;br /&gt;&lt;br /&gt;El objetivo de las siguientes lineas de sintaxis es reproducir por cuales zonas sobre el globo pasa nuestro satélite y de qué zonas cubre, o sea que zonas en ese instante es capaz de dar comunicación.&lt;br /&gt;&lt;br /&gt;Hay que decir que esta órbita tiene 63.4° de inclinación respecto del Ecuador, y tiene su apogeo cerca de Ciudad de Mejico, y algún lugar de Rusia.&lt;br /&gt;&lt;br /&gt;Lo notable de esto es que se hizo en tiempos donde no existían metodos como Matlab u Octave para hacer todos estos gráficos y cálculos, los camarradas la sacaron con lápiz, regla de cálculo y mucho ingenio. Debo confesar que esto me costo y si hubiese sido uno de esos rusos probablemente hubiese terminado en el &lt;a href="http://es.wikipedia.org/wiki/Gulag"&gt;&lt;b&gt;Gulag&lt;/b&gt;&lt;/a&gt; &lt;span style="font-family:arial;"&gt;por no presetar cálculos a tiempo. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Sintaxis en MATLAB&lt;br /&gt;&lt;/h2&gt;          &lt;pre class="codeinput"&gt;clc;&lt;br /&gt;clear &lt;span class="string"&gt;all&lt;/span&gt;;&lt;br /&gt;close &lt;span class="string"&gt;all&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Datos&lt;a name="2"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;rt=6400;            &lt;span class="comment"&gt;%Longitud del Radio de la Tierra&lt;/span&gt;&lt;br /&gt;g0=9.8;             &lt;span class="comment"&gt;%acel. gravedad&lt;/span&gt;&lt;br /&gt;rper=rt+600;        &lt;span class="comment"&gt;%Perigeo&lt;/span&gt;&lt;br /&gt;betha=(rper/rt);    &lt;span class="comment"&gt;%Periogeo Adimensional&lt;/span&gt;&lt;br /&gt;ii=-63.4*pi/180;    &lt;span class="comment"&gt;%angulo orbita -ecuador&lt;/span&gt;&lt;br /&gt;lon_ap=-100;        &lt;span class="comment"&gt;%longitud del apogeo&lt;/span&gt;&lt;br /&gt;lon_ap=lon_ap+90;&lt;br /&gt;uv=((rt*g0/1000)^(0.5));  &lt;span class="comment"&gt;%Adimensional de velocidad&lt;/span&gt;&lt;br /&gt;ut=rt/uv;                 &lt;span class="comment"&gt;%Adimanensional de Tiempo&lt;/span&gt;&lt;br /&gt;T=12*3600/ut;             &lt;span class="comment"&gt;%Período de la órbita adimensional&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Cálculos&lt;a name="3"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre style="font-family: arial;"&gt;Se calculan las  constantes de la ecuacion polar de la orbita y se calcula el  semi eje mayor&lt;/pre&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBQf_s6BI/AAAAAAAAAEw/9URPq6s832E/s1600-h/molniya_eq50705.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBQf_s6BI/AAAAAAAAAEw/9URPq6s832E/s400/molniya_eq50705.png" alt="" id="BLOGGER_PHOTO_ID_5202292271288739858" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;pre class="codeinput"&gt;a=(T/(2*pi))^(2/3);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;e=1-betha/a;&lt;br /&gt;k=(a*(1-e^2))^0.5;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;t=linspace(0,24,50*24)*3600/ut;     &lt;span class="comment"&gt;%vector tiempo en seg&lt;/span&gt;&lt;br /&gt;E=zeros(1,length(t));               &lt;span class="comment"&gt;%anomamalía verdadera&lt;/span&gt;&lt;br /&gt;error=1e-8;                         &lt;span class="comment"&gt;%Tolerancia para el cálculo de E&lt;/span&gt;&lt;br /&gt;ini=0;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Cálculo de E en función del tiempo&lt;a name="4"&gt;&lt;/a&gt;&lt;/h2&gt;          &lt;p&gt;Se resuelve la ecuación&lt;/p&gt;          &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ep6DnIy71qM/SDJBNP_s6AI/AAAAAAAAAEo/_CIV7nZsadM/s1600-h/molniya_eq27602.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_Ep6DnIy71qM/SDJBNP_s6AI/AAAAAAAAAEo/_CIV7nZsadM/s400/molniya_eq27602.png" alt="" id="BLOGGER_PHOTO_ID_5202292215454164994" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;Para ello se utiliza el método de Newton o bisección, para ubicar la solución de E, en la ecuación que la relaciona E con             el tiempo          &lt;/p&gt;&lt;pre class="codeinput"&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; i=1:length(t)&lt;br /&gt;ini=0;&lt;br /&gt;f=t(i)-T/(2*pi)*(E(i)-e*sin(E(i)));      &lt;span class="comment"&gt;%Función a buscar solución&lt;/span&gt;&lt;br /&gt;z=1;&lt;br /&gt;&lt;span class="keyword"&gt;while&lt;/span&gt; abs(f)&gt;error&lt;br /&gt;E(i)=ini;&lt;br /&gt;f=t(i)-T/(2*pi)*(E(i)-e*sin(E(i)));&lt;br /&gt;fa=f;&lt;br /&gt;&lt;span class="keyword"&gt;while&lt;/span&gt; sign(f) == sign(fa)   &lt;span class="comment"&gt;%Búsqueda del cambio de signo&lt;/span&gt;&lt;br /&gt;E(i)=E(i)+pi/180*10^(2-z);&lt;br /&gt;fa=f;&lt;br /&gt;f=t(i)-T/(2*pi)*(E(i)-e*sin(E(i)));&lt;br /&gt;ini=E(i)-pi/180*10^(2-z);&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;z=z+1;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Determinación  v y rho para cada tiempo&lt;a name="5"&gt;&lt;/a&gt;&lt;/h2&gt;          &lt;p&gt;La anomalía verdadera v, se obtiene a partir de E con:&lt;/p&gt;          &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBUf_s6CI/AAAAAAAAAE4/8AInt3n4Ktw/s1600-h/molniya_eq171326.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBUf_s6CI/AAAAAAAAAE4/8AInt3n4Ktw/s400/molniya_eq171326.png" alt="" id="BLOGGER_PHOTO_ID_5202292340008216610" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;La ecuación de la Elipse, que da la posición del radio adimensional rho para cada ángulo de la anomalía verdadeda v es:&lt;/p&gt;          &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBIf_s5_I/AAAAAAAAAEg/3E6UVDYe1Ho/s1600-h/molniya_eq18538.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBIf_s5_I/AAAAAAAAAEg/3E6UVDYe1Ho/s400/molniya_eq18538.png" alt="" id="BLOGGER_PHOTO_ID_5202292133849786354" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;pre class="codeinput"&gt;v=2*atan(((1+e)/(1-e))^0.5*tan(E/2));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;r=k^2./(1+e*cos(v));&lt;br /&gt;rm=r.*rt;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Paso a ejes cartesianos&lt;a name="6"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;y=rm.*cos(v).*cos(ii);&lt;br /&gt;z=rm.*cos(v).*sin(ii);&lt;br /&gt;x=sqrt(rm.^2-y.^2-z.^2).*(-sign(sin(v)));&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Paso a coordenadas polares&lt;a name="7"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;tm=atan2(y,x)-pi/2;&lt;br /&gt;fim=atan2(z,sqrt(x.^2+y.^2));&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Se toma en cuenta el movimiento de la tierra y la posición del perigeo&lt;a name="8"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;tm=tm-2*pi/(24)*t*ut/3600+lon_ap*pi/180;&lt;br /&gt;&lt;/pre&gt;&lt;h2&gt;Orden del los vectores para que queden entre -180 y 180&lt;a name="9"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; i=1:length(tm)&lt;br /&gt;&lt;span class="keyword"&gt;while&lt;/span&gt; abs(tm(i))&gt;pi&lt;br /&gt;tm(i)=tm(i)-2*pi*sign(tm(i));&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Ordenamos el Vector para que no aparezcan líneas cruzadas&lt;a name="10"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;i=1;&lt;br /&gt;&lt;span class="keyword"&gt;while&lt;/span&gt; i &lt; class="keyword"&gt;if sign(tm(i))~=sign(tm(i+1)) &amp;amp;&amp;amp;  abs(tm(i))&gt;pi/180*100&lt;br /&gt;tm =[ tm(1:i) NaN  tm(i+1:end)];&lt;br /&gt;fim=[fim(1:i) NaN  fim(i+1:end)];&lt;br /&gt;i=i+2;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;i=i+1;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Zonas de cobertura&lt;a name="11"&gt;&lt;/a&gt;&lt;/h2&gt;          &lt;p&gt;Se calcula el angulo de cobertura para cada posición de la órbita y se ordenana los vectores para cuando cruzan de una parte             del planeta a la otra          &lt;/p&gt;&lt;pre class="codeinput"&gt;alfa=.57006302;&lt;br /&gt;g=pi/2-alfa-asin(sin(pi/2+alfa)*rt./rm);&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; i=1:length(g)&lt;br /&gt;xz(i,:)=tm(i)+g(i).*cos(linspace(0,2*pi,60));&lt;br /&gt;yz(i,:)=fim(i)+g(i).*sin(linspace(0,2*pi,60));&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Ordenamiento de la zona de cobertura&lt;a name="12"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;pre class="codeinput"&gt;[l,a]=size(yz);&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; i=1:l&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; j=1:a&lt;br /&gt;&lt;span class="keyword"&gt;if&lt;/span&gt; abs(yz(i,j)) &gt; pi/2&lt;br /&gt;yz(i,j)=pi-yz(i,j);&lt;br /&gt;xz(i,j)=-xz(i,j);&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt; &lt;/pre&gt;&lt;h2&gt;Gráfico de La Órbita&lt;a name="13"&gt;&lt;/a&gt;&lt;/h2&gt;          &lt;p&gt;Se carga la costa del mundo, la órbita y la zona de cobretura, además se grafica en forma de animación para ver la zona de             cobertura en cada proyección de la orbita del satélite          &lt;/p&gt;&lt;pre class="codeinput"&gt;load &lt;span class="string"&gt;coast&lt;/span&gt;;                            &lt;span class="comment"&gt;%Carga costas del mundo&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;for&lt;/span&gt; i=1:length(g)&lt;br /&gt;plot(tm*180/pi,fim*180/pi,&lt;span class="string"&gt;'r'&lt;/span&gt;)     &lt;span class="comment"&gt;%Grafica Órbita&lt;/span&gt;&lt;br /&gt;hold &lt;span class="string"&gt;on&lt;/span&gt;&lt;br /&gt;plot(long,lat,&lt;span class="string"&gt;'k'&lt;/span&gt;)                 &lt;span class="comment"&gt;%Carga mapa&lt;/span&gt;&lt;br /&gt;xlim([-180 180])                   &lt;span class="comment"&gt;%Límites&lt;/span&gt;&lt;br /&gt;ylim([-90 90])&lt;br /&gt;plot(180/pi*xz(i,:),180/pi*yz(i,:),&lt;span class="string"&gt;'.'&lt;/span&gt;)&lt;br /&gt;plot(tm(i)*180/pi,fim(i)*180/pi,&lt;span class="string"&gt;'o'&lt;/span&gt;)&lt;br /&gt;pause(.01)&lt;br /&gt;hold &lt;span class="string"&gt;off&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-8820689096516094850?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/8820689096516094850/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=8820689096516094850' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/8820689096516094850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/8820689096516094850'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2008/05/rbita-de-molniya-o-molniya-orbit-o.html' title='Órbita de Molniya o Molniya Orbit o молния'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ep6DnIy71qM/SDJBQf_s6BI/AAAAAAAAAEw/9URPq6s832E/s72-c/molniya_eq50705.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-262914796962053092</id><published>2007-07-24T15:53:00.005-04:00</published><updated>2009-12-11T03:33:15.620-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio  Tacómetro con Matlab medicion RPM motor sonido ruido'/><title type='text'>Audio - Tacometro con Matlab ( Como medir las RPM con Matlab y un microfono)</title><content type='html'>Los sonidos que emite un motor de explosiones- o alternativo- son más agudos al incrementar las RPM -su velocidad de rotación del cigüeñal, aumenta su frecuencia-. Por otro lado, los sonidos son más graves cuando las RPM son más bajas.  El Objetivo es usar esta idea para hacer un "Audio-Tacómetro" que funcione con la frecuencia del sonido ¿ la nota musical- que haga el motor, usando la Trasformada de Fourier -FFT- y Matlab. La idea es hacer una especie de afinador para el motor que en vez de mostrar la nota muestre la frecuencia del sonido. Conocida la frecuencia del sonido hay que saber como se relaciona esta con las RPM.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Supuestos&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt; La fuerza de la explosión del motor es de forma cualquiera, pero es periódica, por lo que puede usarse la transformada de Fourier  ¿La FFT - para descomponerla en una suma de fuerzas periódicas de la forma.&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZZtTB6j_I/AAAAAAAAACM/mHZo_ZhtZUA/s1600-h/1for.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZZtTB6j_I/AAAAAAAAACM/mHZo_ZhtZUA/s200/1for.jpg" alt="" id="BLOGGER_PHOTO_ID_5090855063526215666" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-family:georgia;"&gt;&lt;/span&gt; El periodo de la fuerza, es el periodo de tiempo entre cada explosión producida. La velocidad angular, las RPM, que es lo que queremos medir, dependen del movimiento sube-baja de cada pistón, y este a su vez depende de la periodicidad de las explosiones. Por lo tanto, podemos dejar la velocidad angular en función de la frecuencia de las explosiones, que es lo que vamos a medir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; Midiendo la frecuencia de las explosiones con sonido&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt; Hay varias formas de medir el periodo de las explosiones, por ejemplo con el encendido de las bujías. En realidad lo que se busca es la frecuencia fundamental del sonido que  musicalmente, es la nota que hace el motor.&lt;br /&gt;La respuesta del sistema a la fuerza excitadora ¿la Fuerza de la explosión-es el movimiento de forma de vibración. Esta vibración se transmite al aire, y es el sonido, que se mide por micrófono.  Se supone el sistema lineal, entonces la respuesta de este es la suma de las respuestas provocadas por cada sumando de la descomposición de la fuerza periódica del motor por la serie de Fourier.  Suponiendo que la fuerza es no impulsiva, con periodo mayor al periodo natural de vibración de la estructura que produce el sonido. Esto para suponer que la respuesta tiene una parte transiente y una estacionaria. Esta última es la que nos importa porque contiene la frecuencia de la fuerza excitadora.&lt;br /&gt;&lt;br /&gt;En el mejor de los casos, la fuerza excitadora es sólo una sinusoide, que en el espectro se ve una sola línea a la frecuencia de la fuerza, pero esto no pasa, pues hay más componentes múltiplos en el espectro, entonces lo que se  que se debería obtener para una RPM constante, debería mostrar las respuestas provocadas por cada sumando de la fuerza excitadora.  Como cada respuesta de cada sumando de serie de la fuerza corresponde a un múltiplo de la frecuencia fundamental -por los n de la serie-, la diferencia entre cada línea del espectro corresponde a la frecuencia fundamental.  Como la frecuencia fundamental depende de la velocidad angular del cigüeñal si se conoce esta, se puede conocer la velocidad angular del cigüeñal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZa9zB6kCI/AAAAAAAAACk/Lci9fykh17A/s1600-h/gra1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZa9zB6kCI/AAAAAAAAACk/Lci9fykh17A/s400/gra1.jpg" alt="" id="BLOGGER_PHOTO_ID_5090856446505685026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Relación de la frecuencia fundamental con la velocidad angular&lt;/h2&gt;&lt;br /&gt; Para un motor de 4 tiempos de 4 cilindros, tenemos 2 explosiones por cada vuelta o revolución de cigüeñal.&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZasDB6kBI/AAAAAAAAACc/edJJfc1WhJA/s1600-h/r1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZasDB6kBI/AAAAAAAAACc/edJJfc1WhJA/s400/r1.jpg" alt="" id="BLOGGER_PHOTO_ID_5090856141563006994" border="0" /&gt;&lt;/a&gt; la frecuencia de las explosiones es:&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZbOzB6kDI/AAAAAAAAACs/j33JSVggK_k/s1600-h/r2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZbOzB6kDI/AAAAAAAAACs/j33JSVggK_k/s400/r2.jpg" alt="" id="BLOGGER_PHOTO_ID_5090856738563461170" border="0" /&gt;&lt;/a&gt; Así las RPM en función de la frecuencia de las explosiones es&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZbhDB6kEI/AAAAAAAAAC0/Mug-n54cVtY/s1600-h/r3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZbhDB6kEI/AAAAAAAAAC0/Mug-n54cVtY/s400/r3.jpg" alt="" id="BLOGGER_PHOTO_ID_5090857052096073794" border="0" /&gt;&lt;/a&gt; Para un motor de dos tiempos y un pistón, como el del avioncito del GIANT, se calcula de la misma manera y la relación da&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZbqDB6kFI/AAAAAAAAAC8/6q542G4WPew/s1600-h/r4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZbqDB6kFI/AAAAAAAAAC8/6q542G4WPew/s400/r4.jpg" alt="" id="BLOGGER_PHOTO_ID_5090857206714896466" border="0" /&gt;&lt;/a&gt; El régimen de funcionamiento para este motor esta aproximadamente entre las 2000 rpm correspondientes al ralentí, y un poco mas de 9000 que es el máximo.&lt;br /&gt;&lt;br /&gt;Esto es 33,3[Hz] y 150[Hz] por lo que las notas musicales que se podrían hacer con el motor - poco más de una octava- se ven en el gráfico. &lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZb7zB6kGI/AAAAAAAAADE/GVSNaWyh1Jg/s1600-h/gra2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/RqZb7zB6kGI/AAAAAAAAADE/GVSNaWyh1Jg/s400/gra2.jpg" alt="" id="BLOGGER_PHOTO_ID_5090857511657574498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Las Mediciones&lt;/h2&gt;&lt;br /&gt;Para medir se usa un micrófono de PC que en las especificaciones dice que tiene una respuesta de frecuencia de 100 Hz a 10 kHz, es decir, que deja fuera las frecuencias que queremos medir.&lt;br /&gt;Curiosamente cerca del motor de mi auto, el micrófono registra señales de bajas frecuencias, ¿Cómo ocurre esto? No sé, sólo sé que se puso cerca del motor del auto y mostraba una señal y su frecuencia correspondía con las RPM.  Para el caso del avioncito del GIANT, el micrófono no es capaz de registrar las frecuencias bajas, pero empieza a registrar una señal periódica concordante con las RPM del motor a las 5500-6000 rpm unos 100[Hz] Aproximadamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Para medir se hace un programa en Matlab que grabe un tiempo pequeño, le haga la FFT, y muestre el gráfico. La grabación se hace con el comando wavread, donde TM es el tiempo de la grabación y FS es la frecuencia de muestreo. &lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;Y=wavrecord(TM*FS,FS);&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; Para hacer el FFT hay que tener ciertas consideraciones. El algoritmo que hace el FFT se puede &lt;a style="font-family: georgia;" href="http://www.mathworks.com/support/tech-notes/1700/1702.html"&gt;bajar de la página de The MathWorks ¿ Support&lt;/a&gt; , este entrega todo listo, &lt;a style="font-family: georgia;" href="http://www.udec.cl/~franciscoroco/mifft.m"&gt;yo la hice una funcion que se llama mifft (aunque no es mía)&lt;/a&gt; . Usamos como frecuencia de muestro el doble de la máxima frecuencia que puede alcanzar el motor, 600[Hz] (Criterio de Nyquist). Graficamos para cada instante el espectro, para tratar de hacerlo en tiempo real y ver los resultados. A continuación el FFT instantáneo.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;clear all&lt;br /&gt;FS=1000; %input(' Frecuencia de Muestreo: ');&lt;br /&gt;TM=.1;&lt;br /&gt;while 1&lt;br /&gt;    Y=wavrecord(TM*FS,FS); &lt;br /&gt;    [x,y]=mifft(Y,FS);&lt;br /&gt;    hold off   &lt;br /&gt;    plot(0,0)&lt;br /&gt;    [yo,i]=max(y);&lt;br /&gt;    xo=x(i);&lt;br /&gt;    frecf=num2str(xo);  &lt;br /&gt;    frecf=['La fundamental :',frecf];&lt;br /&gt;    text(3*FS/8,3/4*max(y),frecf)&lt;br /&gt;    text(3*FS/8,2/4*max(y),frecf)&lt;br /&gt;    hold on&lt;br /&gt;    &lt;br /&gt;    stem(x ,y ) &lt;br /&gt;    pause(TM)&lt;br /&gt;    clc&lt;br /&gt;    %fprintf(1,'RPM         %.0f \n',30*xo)&lt;br /&gt;    %fprintf(1,'frecuencia  %.0f  ',xo)&lt;br /&gt;    if max(Y) &amp;#62;=.99 | min(Y)&amp;#60;=-.99&lt;br /&gt;        fprintf(1,'\n\n   ¡ONDA SATUDADA!',xo)&lt;br /&gt;    end &lt;br /&gt;end&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Un problema que puede ocurrir es que la señal medida puede estar saturada y el FFT mostrará muchos armónicos que no están presentes. Por eso graficamos para cada instante la señal que graba el computador, de forma parecida a un osciloscopio,  esto para asegurar que no existe la saturación, y para ver la forma de onda y asegurarnos de que sea periódica. En este caso ocupamos una frecuencia de muestreo alta para ver la forma de la onda, 44100 [Hz] La idea es tener ambos gráficos. A continuación el "Osciloscopio Hechizo" &lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;clear all&lt;br /&gt;FS=44100/2;&lt;br /&gt;TM=.1;&lt;br /&gt;amx=.01;&lt;br /&gt;while 2&amp;#60;3&lt;br /&gt;    Y=wavrecord(TM*FS,FS); &lt;br /&gt;    hold off&lt;br /&gt;    X=linspace(0,length(Y)/FS,length(Y));&lt;br /&gt;    plot(0,-amx)&lt;br /&gt;    hold on&lt;br /&gt;    plot(TM,amx)&lt;br /&gt;    plot(X,Y)&lt;br /&gt;    pause(.5*TM)&lt;br /&gt;end&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; Aquí se ve la diferencia de un La440 Hz con la señal saturada y no saturada&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZhLTB6kHI/AAAAAAAAADM/_WQPskNcXxo/s1600-h/a11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZhLTB6kHI/AAAAAAAAADM/_WQPskNcXxo/s400/a11.jpg" alt="" id="BLOGGER_PHOTO_ID_5090863275503685746" border="0" /&gt;&lt;/a&gt; Espectro de de la onda saturada&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ep6DnIy71qM/RqZhajB6kII/AAAAAAAAADU/qWV3u0LyYzM/s1600-h/a12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Ep6DnIy71qM/RqZhajB6kII/AAAAAAAAADU/qWV3u0LyYzM/s400/a12.jpg" alt="" id="BLOGGER_PHOTO_ID_5090863537496690818" border="0" /&gt;&lt;/a&gt; Vista de la onda saturada&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZhmTB6kJI/AAAAAAAAADc/QiITyxxtsEI/s1600-h/a21.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZhmTB6kJI/AAAAAAAAADc/QiITyxxtsEI/s400/a21.jpg" alt="" id="BLOGGER_PHOTO_ID_5090863739360153746" border="0" /&gt;&lt;/a&gt; Espectro de onda no saturada&lt;br /&gt;&lt;a style="font-family: georgia;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZhzDB6kKI/AAAAAAAAADk/E842tujf5zU/s1600-h/a22.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RqZhzDB6kKI/AAAAAAAAADk/E842tujf5zU/s400/a22.jpg" alt="" id="BLOGGER_PHOTO_ID_5090863958403485858" border="0" /&gt;&lt;/a&gt; Onda no saturada&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;La prueba&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt; Poniendo el micrófono en un lugar seguro y no caliente, cerca del motor de un Suzuki Aerio® para las 1500 rpm medidas en el tacómetro del vehículo que tiene una sensibilidad de 500 rpm (se mantuvo lo más cerca de la rayita de los 1500) y asegurando que no esta saturada la señal.&lt;br /&gt;&lt;br /&gt; Aca esta la &lt;a href="http://www.udec.cl/~franciscoroco/motorsuzuki.wav"&gt;grabación del motor del Suzuki Aerio® para las 1500 rpm&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; El fft de la grabación es:&lt;br /&gt;&lt;br /&gt;&lt;img style="font-family: georgia;" src="http://www2.udec.cl/~franciscoroco/fftgif.gif" /&gt;&lt;br /&gt; La línea mde mayor amplitud esta cercana a los 50[Hz]&lt;br /&gt;&lt;br /&gt; La onda muestreada a 44100[Hz]es esta, notar que no está saturada.&lt;br /&gt;&lt;br /&gt;&lt;img style="font-family: georgia;" src="http://www2.udec.cl/~franciscoroco/ondagif.gif" /&gt;&lt;br /&gt;&lt;br /&gt; La onda muestreada a 600[Hz]es esta.&lt;br /&gt;&lt;br /&gt;&lt;img style="font-family: georgia;" src="http://www2.udec.cl/~franciscoroco/onda600.gif" /&gt;&lt;br /&gt;&lt;br /&gt;El espectro es como en el mejor caso, es decir,  solo muestra una línea de frecuencia, que corresponde  a los 50[Hz] que son las 1500[rpm]=30*50[Hz]. Esto pasa porque se ocupa una frecuencia de muestreo baja, y no se muestran los armónicos mayores a 300[Hz],  Los armónicos menores a 300 [Hz] existen, pero son muy pequeños. La onda muestreada a 44100[Hz] tiene forma periódica pero no de sinusoide, por esto debe tener armónicos.&lt;br /&gt;&lt;br /&gt;El problema de estas mediciones ocurre cuando se acelera de forma rápida, pues la muestra que se graba y se analiza no es una sinusoide de periodo constante, como lo exige el FFT. El periodo de la señal cambia, y el programa entrega una frecuencia que no corresponde necesariamente al sonido del motor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;h2&gt;Caso del avión del &lt;a href="http://giant.udec.cl/"&gt;GIANT&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt; El sistema funciona con el avioncito midiendo RPM mas altas que 5000~6000 RPM. Hay dos problemas para medir las RPM con este método para el avioncito...&lt;br /&gt;&lt;br /&gt;1) La saturación de la señal medida por la gran amplitud del sonido del motor a altas RPM, esto se soluciona cubriendo el micrófono con géneros o esponjas aislantes, pero ocurre que cuando esta funcionando al ralentí el sonido es muy bajo y el micrófono no lo registra de buena forma.&lt;br /&gt;&lt;br /&gt;2) Los sonidos producidos por el motor cuando este funciona a 5000-6000 RPM son cercanos a 100 Hz, limite inferior del rango de frecuencias que capta el motor. A diferencia de lo que ocurre en el auto, el micrófono no es capaz de captar estas ondas de baja frecuencia.&lt;br /&gt;&lt;br /&gt;Cualquier ayuda, sugerencia comentario es bienvenida&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-262914796962053092?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/262914796962053092/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=262914796962053092' title='7 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/262914796962053092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/262914796962053092'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/07/audio-tacometro-con-matlab-como-medir.html' title='Audio - Tacometro con Matlab ( Como medir las RPM con Matlab y un microfono)'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ep6DnIy71qM/RqZZtTB6j_I/AAAAAAAAACM/mHZo_ZhtZUA/s72-c/1for.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-2682691922689388787</id><published>2007-05-12T18:47:00.007-04:00</published><updated>2009-12-11T02:48:47.914-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='musica en matlab music'/><title type='text'>Musica en Matlab (Como hacer musica en matlab)</title><content type='html'>Imagínese usted la versión de famosas canciones interpretadas por un &lt;a href="http://es.wikipedia.org/wiki/Nintendo"&gt;Nintendo&lt;/a&gt;.&lt;br /&gt;Eso es lo que he intentado hacer con Matlab. El resultado a continuación:&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Escuche:&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt; Versión de la cortina del Tetris, se llama Korobushka, Tetris&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=d109bc9" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;  &lt;br /&gt;     Versión de la introducción de la "Reina del Tamarugal", Tirana&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=0114029" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;  &lt;br /&gt;   Versión de la cortina de "Informe Especial"&lt;br /&gt;  &lt;br /&gt;   &lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=c010359" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;  &lt;br /&gt; Versión de la canción de los Kjarkas "Llorando se fue" más conocida como "Lambada" (La versión del plagio)&lt;br /&gt;  &lt;br /&gt;   &lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=d690199" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Este es una humilde propuesta, pues hay maneras mas eficientes de hacer música con otros programas, como &lt;a href="http://www.noteworthysoftware.com/"&gt;Noteworthy Composer &lt;/a&gt; o el Guitar Pro , etc. O simplemente su merced puede  tocar música con instrumento. Recomiendo no tocar harmónica porque   pone nerviosa a la gente, sobre todo a tus compañeros de Universidad cuando hay certamenes.&lt;br /&gt;&lt;br /&gt;La ventaja de la propuesta de hacer música en MATLAB  es que acá empiezas de cero, y puedes crear tus propios tipos de sonidos, además de entender como funciona la música. Antes he escrito un poco sobre estos temas. Más abajo se hace referencia al &lt;a href="http://rocoblog.blogspot.com/2007/01/el-sonido-y-matlab.html"&gt;sonido&lt;/a&gt; y a sus &lt;a href="http://rocoblog.blogspot.com/2007/01/caractersticas-del-sonido.html"&gt;&lt;span style="text-decoration: underline;"&gt;características&lt;/span&gt;&lt;/a&gt;, además de el &lt;a href="http://rocoblog.blogspot.com/2007/01/clculo-de-frecuencias-para-una-nota-y.html"&gt;cálculo de una frecuencia para una nota en particular&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para explicar mejor el programa veamos las partes.&lt;br /&gt;El programa lee música escrita en formato parecido al de los celulares NOKIA, arma las señales de  sonido , las reproduce, y las guarda.&lt;br /&gt;&lt;br /&gt;Para ello se ocupan 3 funciones, aca se incluye el vínculo a las sintaxis:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;a) &lt;a href="http://www2.udec.cl/%7Efranciscoroco/musica.m"&gt;&lt;span style="font-weight: bold;"&gt;música&lt;/span&gt; &lt;/a&gt;&lt;/strong&gt;, Programa principal que una vez que tiene las señales las suma las reproduce y las guarda como .wav&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;b) &lt;a href="http://www2.udec.cl/%7Efranciscoroco/notas.m"&gt;&lt;span style="font-weight: bold;"&gt;notas &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt; Función que con las notas ingresadas en formato de escritura parecido al del celular NOKIA, crea señales en un vector con una frecuencia de muestreo dada.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;c) &lt;a href="http://www2.udec.cl/%7Efranciscoroco/perc.m"&gt;&lt;span style="font-weight: bold;"&gt;perc&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt; Crea la percusión variando el tiempo de sonido de un sonido parecido a un ruido de interferencia electríca, o ruido blanco.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Los detalles y observaciones importantes se discuten a continuación:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Ingreso de notas, lectura de notas, creación de la señal&lt;br /&gt;&lt;/span&gt;Se introducen como en los celulares NOKIA  de la forma&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;[Duración][Nota en clave americana][Octava del piano]&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;-La duración de la redonda será 1, y las figuras siguientes serán nombradas por el inverso del múltiplo que le corresponden. Así:&lt;br /&gt;redonda 1, blanca 2, negra 3, corchea 8, semicorchea 16.&lt;br /&gt;- La nota en clave americana A hasta la G, si es sostenido sera acompañada por una s, los bemoles se hacen con los sostenidos.&lt;br /&gt;-Las octavas son 5 , la central del piano es la 3.&lt;br /&gt;&lt;br /&gt;Ejemplo: La 440, corchea de la octava central del piano ..................4a3&lt;br /&gt;Ejemplo: Do# blanca de la "cuarta octava" (la del co central se toma como la tercera)   ..................2cs4&lt;br /&gt;&lt;br /&gt;Hice una misma función que leyera la nota y guardara en una matriz, la duración y la nota&lt;br /&gt;asi [duración , notas], si tenemos n notas con sus respectivas duraciones será una matriz de n x 2 filas.&lt;br /&gt;&lt;br /&gt;La creación de la señal se hace con la matriz anterior, se lee la frecuencia y la nota, y luego se arma una señal con la frecuencia y duración dada.&lt;br /&gt;&lt;br /&gt;Para armar el sonido se hace la sinusoide y se le suman los armónicos que queremos que tengan. Yo personalmente intentaba imitar el sonido de un nintendo, asi que le puse unos armonicos que encontre por ahí en internet, la señal me queda como una suma de esta manera:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;sin(fr*2*pi.*x)+1/4*sin(3*fr*2*pi.*x)+1/6*sin(5*fr*2*pi.*x)+1/8*sin(7*fr*2*pi.*x)&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Para armar el trozo de sonido para el par frecuencia/duración dejo un espacio libre con silencio , para que no suenen pegadas:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;for i=1:A&lt;br /&gt;fr=N1(i,1);&lt;br /&gt;t=N1(i,2);&lt;br /&gt;x=(0:(1/fm):t*8/10);&lt;br /&gt;y1=[y1  sin(fr*2*pi.*x)+1/4*sin(3*fr*2*pi.*x)+1/6*sin(5*fr*2*pi.*x)+1/8*sin(7*fr*2*pi.*x) zeros(size((0:(1/fm):t*2/10)))];&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Las notas/frecuencias las armamos asi&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;&lt;br /&gt;% ==FRECUENCIAS==&lt;br /&gt;r=2^(1/12);&lt;br /&gt;fr=440;%frecuencia del LA&lt;br /&gt;fr=r^-9*fr;%el Do&lt;br /&gt;c=r^0*fr*[1/4 1/2 1 2 4];&lt;br /&gt;cs=r^1*fr*[1/4 1/2 1 2 4];&lt;br /&gt;d=r^2*fr*[1/4 1/2 1 2 4];&lt;br /&gt;ds=r^3*fr*[1/4 1/2 1 2 4];&lt;br /&gt;e=r^4*fr*[1/4 1/2 1 2 4];&lt;br /&gt;f=r^5*fr*[1/4 1/2 1 2 4];&lt;br /&gt;fs=r^6*fr*[1/4 1/2 1 2 4];&lt;br /&gt;g=r^7*fr*[1/4 1/2 1 2 4];&lt;br /&gt;gs=r^8*fr*[1/4 1/2 1 2 4];&lt;br /&gt;a=r^9*fr*[1/4 1/2 1 2 4];&lt;br /&gt;as=r^10*fr*[1/4 1/2 1 2 4];&lt;br /&gt;b=r^11*fr*[1/4 1/2 1 2 4];&lt;br /&gt;s=0;&lt;br /&gt;i=1;&lt;br /&gt;ii=1;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)LA PERCUSIÓN&lt;/span&gt;&lt;br /&gt;Se hace de forma similar a la anterior pero solo se ingresa la duración.  1 2 5 8 16 . La señal que se crea es algo parecido ala interferencia , que suena como ch chc chhhhhchchchchch (asi).&lt;br /&gt;Es absolutamente igal , lo que varía es como armamos la señal.&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;y1=[y1,o*sin(100000*2*pi.*x.*100000000000000.*sin(x)) zeros(size((0:(1/fm):t*6/10)))];&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;ese seno es la interferencia que suena cchhchchchchhchcchchc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3)LOS INSTRUMENTOS&lt;br /&gt;&lt;/span&gt;Ahora que se tienen las señales hay que hacerlas sonar.&lt;br /&gt;Como ya creamos las señales de sonido, en el programa hay 3 de melodía más la percusión, lo que hay que hacer , es sumarlas&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;y=1/4*(y1+y2+y3+y4);&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;y reproducirlas, vamos, que suene...&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;sound(y,fm)&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Como tenemos almacenada la señal en el vector &lt;code&gt;y&lt;/code&gt; y tenemos su frecuencia de muestreo, con el comando &lt;div class="codigo"&gt;&lt;code&gt;wavwrite(y,fm,8,Nom)&lt;/code&gt;&lt;/div&gt; guardamos en un archivo formato wav la canción.&lt;br /&gt;Al inicio de la sintaxis están los códigos de algunas canciones. Están los 3 instrumentos más la percusión.&lt;br /&gt;Cualquier comentario duda o sugerencia, sólo hazlo :D&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-2682691922689388787?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/2682691922689388787/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=2682691922689388787' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/2682691922689388787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/2682691922689388787'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/05/musica-en-matlab-como-hacer-musica-en.html' title='Musica en Matlab (Como hacer musica en matlab)'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-6702400254622139745</id><published>2007-03-13T19:01:00.004-04:00</published><updated>2009-12-11T02:39:01.415-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gif matlab'/><title type='text'>Como hacer un gif con Matlab</title><content type='html'>&lt;img src="http://www.udec.cl/~franciscoroco/parabolita.gif" /&gt;&lt;br /&gt;Para algunos trabajos o presentaciones, mejor que un esquema , es una presentación. En nuestro caso teniendo ecuaciones de movimiento podemos hacer una en formato gif , que se pueden pegar en un Pagüer-point.&lt;br /&gt;&lt;br /&gt;Más abajo se ve como hacer animaciones en matlab, con un sistema mecánico. &lt;a href="http://rocoblog.blogspot.com/2006/12/animaciones-con-matlab.html"&gt;(Aquí) &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esas animaciones las podemos guardar como videos *.avi, pero como ese formato pesa mucho, personalmente prefiero los gifs.&lt;br /&gt;&lt;br /&gt;La gran pregunta es &lt;span style="font-weight: bold;"&gt;¿Cómo hago los gifs?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Buscando en internet encontré la página de un gringo que dice como hacerlo, y en realidad voy a decir como él lo hace, hay que agradecerle a él. La página es esta: &lt;a href="http://uwcem.ece.wisc.edu/creatingAnimatedGifs.htm"&gt;http://uwcem.ece.wisc.edu/creatingAnimatedGifs.htm&lt;/a&gt;&lt;br /&gt;Del poco inglés que sé pude rescatar lo siguiente: (Corrígeme si estoy mal)&lt;br /&gt;&lt;br /&gt;1) Necesitamos Matlab y un programita que esta en este &lt;a href="http://uwcem.ece.wisc.edu/downloadable/GaLE10.exe"&gt;vínculo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uwcem.ece.wisc.edu/downloadable/GaLE10.exe"&gt;http://uwcem.ece.wisc.edu/downloadable/GaLE10.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Para cada gráfico hecho, que se supone que será un cuadro en tu animación, debe estar en un ciclo "for" como muestra el ejemplo , despues deberás agregar unas lineas de sintaxis que crearán imágenes bmp.&lt;br /&gt;&lt;br /&gt;3) se crearan tantas imágenes como tu ciclo for, esas imágenes , las metes al &lt;a href="http://uwcem.ece.wisc.edu/downloadable/GaLE10.exe"&gt;p&lt;/a&gt;rograma para los gifs y listo tendrás tus gif hechos en matlab&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El ejemplo son puntos de una párabola puse las ecuaciones de movimiento parametrizadas...&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;code&gt;t=-2:.1:2;&lt;br /&gt;x=100*t;&lt;br /&gt;y=-9.8/2*t.^2+20;&lt;br /&gt;for i=1:length(t)&lt;br /&gt;plot(-200,0)&lt;br /&gt;hold on&lt;br /&gt;plot(200,25)&lt;br /&gt;plot(x(i),y(i),'o')&lt;br /&gt;plot(x(1:i),y(1:i),'.')&lt;br /&gt;pause(.05)&lt;br /&gt;&lt;br /&gt;% ===para Hacer GIF===&lt;br /&gt;Image = getframe;&lt;br /&gt;P = frame2im(Image);&lt;br /&gt;number = num2str(i);&lt;br /&gt;extension = '.bmp';&lt;br /&gt;filename = [number,extension];&lt;br /&gt;imwrite(P,eval('filename'), 'bmp');&lt;br /&gt;hold off&lt;br /&gt;end&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lo que se debería ver como el gif de arriba&lt;br /&gt;Cualquier duda comentario aporte crítica es bienvenida&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-6702400254622139745?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/6702400254622139745/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=6702400254622139745' title='8 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/6702400254622139745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/6702400254622139745'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/03/como-hacer-un-gift-con-matlab.html' title='Como hacer un gif con Matlab'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-7523270691437384345</id><published>2007-01-23T11:23:00.008-03:00</published><updated>2009-12-24T02:49:12.335-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='calculo frecuencia nota musical matlab gnu-octave'/><title type='text'>Como calcular la frecuencia de una nota musical y hacer música con Matlab / Gnu-Octave</title><content type='html'>Bueno como más abajo dice &lt;a href="http://rocoblog.blogspot.com/2007/01/el-sonido-y-matlab.html"&gt;como hacer un sonido&lt;/a&gt;, ahora podemos hacer música, pues la música no es más que un conjunto ordenado de sonidos. Veamos como ordenarlos...&lt;br /&gt;&lt;br /&gt;Si disponemos de un lenguaje de programación, que pueda actuar sobre algún dispositivo de sonido, o de cualquier cosa que pueda vibrar o producir sonidos a una frecuencia audible, sólo falta saber a que &lt;a href="http://es.wikipedia.org/wiki/Nota_(sonido)"&gt;nota musical&lt;/a&gt; corresponde cierta &lt;a href="http://es.wikipedia.org/wiki/Frecuencia"&gt;frecuencia&lt;/a&gt; en la variación de presión del aire.&lt;br /&gt;&lt;br /&gt;Los sonidos que se usan son los que corresponden a las notas musicales. A cada nota musical le corresponde una frecuencia. (Ver &lt;a href="http://rocoblog.blogspot.com/2007/01/caractersticas-del-sonido.html"&gt;Características del Sonido&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Introducción al Tema &lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;(Si quieres ver la fórmula para el cálculo sáltate esta parte)&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Muy &lt;em&gt;grosso modo&lt;/em&gt; la música posee, entre otras características importantes:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Altura&lt;/strong&gt;, las distintas notas que se representan en los espacios y líneas en el pentagrama&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Duración&lt;/strong&gt; que se representa con las figuras, redonda, blanca, negra, corchea , etc.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Timbre&lt;/strong&gt; el tipo de sonido si es de un piano, un motor sonando o de una soprano cantando&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Para hacer música, del tipo occidental, (Otras culturas ocupan distintas escalas) disponemos de un número discreto de sonidos limitados por el &lt;a href="http://es.wikipedia.org/wiki/Espectro_audible"&gt;rango audible de un ser humano&lt;/a&gt;, por las frecuencias 20[Hz] como cota inferior y por arriba de 20.000[Hz], lo que varía según la persona. Pues para algunas personas da lo mismo escuchar &lt;a href="http://es.wikipedia.org/wiki/Reggaeton"&gt;Reguetón&lt;/a&gt; por los altavoces de un &lt;a href="http://es.wikipedia.org/wiki/Telefon%C3%ADa_m%C3%B3vil"&gt;teléfono móvil&lt;/a&gt; o escuchar una grabación del &lt;a href="http://www2.deutschegrammophon.com/"&gt;deutsche grammophon&lt;/a&gt; en formato alta fidelidad, y para otras no da lo mismo, pero eso es para otro tema.&lt;br /&gt;&lt;br /&gt;Los sonidos usados por los músicos, las notas musicales, do re mi fa sol la si y sus respectivos bemoles y sostenidos, tienen frecuencias conocidas que se pueden calcular, y se pueden hacer en algún lenguaje de programación -como &lt;a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C"&gt;C&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/C%2B%2B"&gt;C++&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java"&gt;Java&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/MATLAB"&gt;Matlab&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascal"&gt;Pascal&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/BASIC"&gt;Basic&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Etc%C3%A9tera"&gt;etc&lt;/a&gt;  - para que suenen. La historia de las distintas escalas utilizadas -tipos de frecuencias y sus cálculos para las notas- es un poco larga y tiene que ver con criterios matemáticos (&lt;a href="http://www.xtec.es/centres/a8019411/caixa/musica_es.htm"&gt;Véase acá&lt;/a&gt;), es muy interesante.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Bach.jpg/180px-Bach.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Bach.jpg/180px-Bach.jpg" alt="Johann Sebastian Bach " border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Brevemente, la historia empieza con Pitágoras, que inventó la escala que lleva su nombre, pero la parte que ahora  interesa ver habla sobre el periodo barroco y &lt;a href="http://es.wikipedia.org/wiki/Johann_Sebastian_Bach"&gt;Johann Sebastian Bach&lt;/a&gt;. Cuando se usaba la escala Pitagórica y uno quería cambiar de tono las canciones (frecuentemente pasa cuando a un cantante no le alcanza el registro), se producía una no correspondencia, es decir, no sonaba correctamente ( sonaba mal o en palabras simples, sonaba feo).&lt;br /&gt;&lt;br /&gt;Y ahí es donde aparece la escala cromática, que el  famoso &lt;a href="http://es.wikipedia.org/wiki/Johann_Sebastian_Bach"&gt;Bach&lt;/a&gt; popularizó con su obra &lt;a href="http://es.wikipedia.org/wiki/El_clave_bien_temperado"&gt;"El clave bien temperado"&lt;/a&gt; o "&lt;i&gt;Das wohltemperierte Klavier" &lt;/i&gt;, el nombre lo dice, el instrumento clave estaba bien temperado, es decir, afinado con la escala cromática. ¿Cómo se populariza un estilo de afinación?  Componiendo un preludio y una fuga en todos los tonos posibles, es decir un preludio y fuga en Do mayor y menor, en Do sostenido mayor y menor en Re mayor ... y así. Hasta hace poco había leído que Bach había inventado esta afinación, lo que no es cierto, pero esto no quita mérito a semejante obra.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/El_clave_bien_temperado"&gt;"El clave bien temperado"&lt;/a&gt;  se puede ver y escuchar en &lt;a href="http://jan.ucc.nau.edu/~tas3/wtc.html"&gt;esta página&lt;/a&gt;, ahí explican hasta las partes. Es bastante interesante verlo y sobretodo escucharlo.&lt;br /&gt;&lt;br /&gt;¿Como se construye la escala cromática?&lt;br /&gt;La respuesta es "La distancia entre semitonos debe ser la misma". Eso desde el punto de vista musical. Porque esas palabras traducidas a la práctica son así :&lt;br /&gt;&lt;br /&gt;Para armar la escala temperada necesitamos una frecuencia de una nota conocida, llamada de referencia, en nuestro caso y por norma &lt;a href="http://es.wikipedia.org/wiki/Organizaci%C3%B3n_Internacional_de_Estandarizaci%C3%B3n"&gt;ISO&lt;/a&gt;-16 el &lt;strong&gt;LA&lt;/strong&gt; de la octava central del piano tiene 440 &lt;a href="http://es.wikipedia.org/wiki/Hercio"&gt;[Hz]&lt;/a&gt;. (Para afinar los músicos usan los &lt;a href="http://es.wikipedia.org/wiki/Diapas%C3%B3n"&gt;diapasones&lt;/a&gt;). En tiempos de Bach cada cual elegía su frecuencia de referencia, lo que no causaba problemas si se toca solo un instrumento.&lt;br /&gt;&lt;br /&gt;¿Cual es la relación entre frecuencias-notas en la escala cromática?&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Fórmula para calcular la frecuencia de una nota.&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dada una frecuencia conocida, la que llamaremos &lt;strong&gt;f&lt;sub&gt;Ref&lt;/sub&gt;&lt;/strong&gt;, la nota distante a &lt;strong&gt;i&lt;/strong&gt; semitonos sobre la frecuencia de referencia  &lt;strong&gt;f&lt;sub&gt;Ref&lt;/sub&gt;&lt;/strong&gt;  tendrá la frecuencia:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/SyO85KWmtgI/AAAAAAAAALk/3oFSPSL1Bvk/fre_1.png" alt="Fórmula para determinar la frecuencia de una nota a partir de una frecuencia conocida" /&gt;&lt;br /&gt;&lt;br /&gt;La norma &lt;a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=3601"&gt;ISO 16:1975&lt;/a&gt; dice que la frecuencia de referencia para el &lt;strong&gt;La&lt;/strong&gt; de la octava central del piano es:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh3.ggpht.com/_Ep6DnIy71qM/SyO85JFjDcI/AAAAAAAAALo/6WBHsGTq-Ys/fre_2.png" alt="Frecuencia de Referencia para el La de la octava central del piano" /&gt;&lt;br /&gt;&lt;br /&gt;La norma agrega también que debe ser generado con una precisión de &lt;strong&gt;0.5 [Hz]&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Entonces, siguiendo la norma, la frecuencia del i-ésimo semitono a partir del &lt;strong&gt;La&lt;/strong&gt; de la octava central del piano es:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/_Ep6DnIy71qM/SyO85Cox06I/AAAAAAAAALs/tg-vRrSC7Uw/fre_3.png" alt="Fórmula para de terminar la frecuencia de una nota a partir del La 440 [Hz]" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Ejemplo&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Calculemos la frecuencia del Do que sigue del La-440, el de la octava a la derecha de la octava central:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_Ep6DnIy71qM/R4phLQ5tj8I/AAAAAAAAAD0/4kcJyYmqQFA/s400/notas.JPG" alt="número de semitonos del Do al La" /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Veamos a que semitono corresponde.&lt;/strong&gt; Para ello vemos en la figura y contamos:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;0 La&lt;/li&gt;&lt;br /&gt; &lt;li&gt;1 La#&lt;/li&gt;&lt;br /&gt; &lt;li&gt;2 Si&lt;/li&gt;&lt;br /&gt; &lt;li&gt;3 Do&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;El &lt;strong&gt;Do&lt;/strong&gt; corresponde al semitono &lt;strong&gt;3&lt;/strong&gt; a partir del &lt;strong&gt;La&lt;/strong&gt;.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Reemplazamos en la fórmula&lt;/strong&gt;&lt;br /&gt;La frecuencia del do es:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt; &lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/SyO85JVS1AI/AAAAAAAAALw/eGJ3m1YOSJQ/fre_4.png" alt="Frecuencia del Do" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Hacemos música en Matlab&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Como se tienen las notas, basta con darles duración para crear música, usando como guía la parte vista más abajo, &lt;a href="http://rocoblog.blogspot.com/2007/01/el-sonido-y-matlab.html"&gt;Como hacer sonido&lt;/a&gt;, escribimos la siguiente sintaxis, creando primero con la forma vista arriba, las notas musicales, y luego creando sonidos.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;%==Frecuencia de Muestreo==&lt;br /&gt;fm=8120;&lt;br /&gt;&lt;br /&gt;% ==Elaboracion de las notas musicales==&lt;br /&gt;r=2^(1/12);&lt;br /&gt;&lt;br /&gt;% ==frecuencia de referencia LA==&lt;br /&gt;fr=440;&lt;br /&gt;&lt;br /&gt;% Tomamos la frecuencia del do para definir las octavas de mejor manera&lt;br /&gt;fr=r^-9*fr;&lt;br /&gt;c=r^0*fr*[1/4 1/2 1 2 4];&lt;br /&gt;cs=r^1*fr*[1/4 1/2 1 2 4];&lt;br /&gt;d=r^2*fr*[1/4 1/2 1 2 4];&lt;br /&gt;ds=r^3*fr*[1/4 1/2 1 2 4];&lt;br /&gt;e=r^4*fr*[1/4 1/2 1 2 4];&lt;br /&gt;f=r^5*fr*[1/4 1/2 1 2 4];&lt;br /&gt;fs=r^6*fr*[1/4 1/2 1 2 4];&lt;br /&gt;g=r^7*fr*[1/4 1/2 1 2 4];&lt;br /&gt;gs=r^8*fr*[1/4 1/2 1 2 4];&lt;br /&gt;a=r^9*fr*[1/4 1/2 1 2 4];&lt;br /&gt;as=r^10*fr*[1/4 1/2 1 2 4];&lt;br /&gt;b=r^11*fr*[1/4 1/2 1 2 4];&lt;br /&gt;&lt;br /&gt;%El Silencio, su frecuencia es cero&lt;br /&gt;s=0;&lt;br /&gt;&lt;br /&gt;%==Parte para Duracion==&lt;br /&gt;% Definimos la duracion en segundos de la negra.&lt;br /&gt;% tomada como 1 tiempo&lt;br /&gt;n=.5;&lt;br /&gt;&lt;br /&gt;%Hacemos un vector N = [ nota , duracion ]&lt;br /&gt;NOTAS=[g(3),e(3),s,e(3),f(3),g(3),e(4),e(4),c(4)];&lt;br /&gt;DURACION=[n/2,n/2,3*n/2,n/2,n/2,n/2,n,n,2*n];&lt;br /&gt;N=[NOTAS',DURACION'];&lt;br /&gt;y=[];&lt;br /&gt;&lt;br /&gt;%==Armamos la señal==&lt;br /&gt;for i=1:length(N)&lt;br /&gt;fr=N(i,1);&lt;br /&gt;t=N(i,2);&lt;br /&gt;x=(0:(1/fm):t);&lt;br /&gt;y=[y sin(fr*2*pi.*x)];&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;% Hacemos el sonido&lt;br /&gt;% en este comando&lt;br /&gt;% esta toda la magia&lt;br /&gt;&lt;br /&gt;sound(y)&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Puse en NOTAS y DURACION una canción muy conocida... jajaja, buenísima.&lt;br /&gt;&lt;br /&gt;El método para ingresar notas se puede mejorar y también se pueden añadir armónicos a la onda. Por ejemplo to hice un método para que introducir 3 instrumentos, percusión a través de notas parecidas al celular NOKIA&lt;br /&gt;&lt;a href="http://www2.udec.cl/~franciscoroco/musica.rar"&gt;El programa está acá&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;address&gt; Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-7523270691437384345?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/7523270691437384345/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=7523270691437384345' title='5 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/7523270691437384345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/7523270691437384345'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/01/clculo-de-frecuencias-para-una-nota-y.html' title='Como calcular la frecuencia de una nota musical y hacer música con Matlab / Gnu-Octave'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_Ep6DnIy71qM/SyO85KWmtgI/AAAAAAAAALk/3oFSPSL1Bvk/s72-c/fre_1.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-6985366525286058493</id><published>2007-01-23T10:48:00.004-03:00</published><updated>2009-12-11T02:36:52.696-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sonido altura timbre intensidad'/><title type='text'>Características del Sonido</title><content type='html'>Un sonido tiene características que se notan en la forma de onda.&lt;br /&gt;Estas son:&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Altura&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Intensidad&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Timbre&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;La Altura del Sonido&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Al hablar de altura se hace referencia a la nota musical que se hace, en otras palabras, que tan agudo o grave es el sonido. Mientras más grave es el sonido(Como el de un Contrabajo o un cantante bajo), menor será la frecuencia de mi onda y mayor su longitud de onda. Por el contrario si el sonido es agudo (Como un flautín o una soprano), la frecuencia de la onda será mayor y menor su longitud de onda.&lt;br /&gt;&lt;br /&gt;Si numeramos las teclas del piano de izquierda a derecha, es decir, de grave a agudo (Supongamos un piano de 96 teclas, [tienen al rededor de 88 algunos ]), y a cada tecla numerada hacemos corresponder una nota y por ende a una frecuencia, lo que veriamos es eso:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/RbWmTFiOokI/AAAAAAAAABI/3K1_WFsJ7-w/s1600-h/gnotas.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/RbWmTFiOokI/AAAAAAAAABI/3K1_WFsJ7-w/s400/gnotas.JPG" alt="" id="BLOGGER_PHOTO_ID_5023103806235124290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Intensidad&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;La intensidad del sonido hace referencia a lo que en los equipos de música se le llama "volume", es la cantidad potencia que tiene el sonido, por eso que los parlantes traen calcomanías que dicen 4000[W], por ejemplo.&lt;br /&gt;En la onda la intensidad se ve como la amplitud de la onda , más fuerte suena, más intenso , más amplitud tiene el sonido, por el contrario más despaco , menor su amplitud.&lt;br /&gt;La unidad de amplitud frecuentemente usada es el Decibelio [dB].&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;El Timbre&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;El timbre de un sonido dice relación con la fuente que produce el sonido que escuchamos. Me explico Puedo tener dos situaciones un cantante haciendo un La, y un pianista haciendo un la. En ambos casos la altura es la misma pues hacen la misma nota, la misma frecuencia de 440[Hz]. Imaginemos que la amplitud es la misma, así tienen el mismo volume, o intensidad. Pero aún así podemos diferenciar el sonido del piano con el del cantante, por la característica llamada timbre.&lt;br /&gt;&lt;br /&gt;En la onda esto corresponde a la cantidad de armónicos que tiene la onda.&lt;br /&gt;Los armónicos de una frecuencia X, son ondas de amplitud más pequeña que se suman a la frecuencia X , que se llama frecuencia principal.&lt;br /&gt;&lt;br /&gt;Por ejemplo, abajo vemos la frecuencia principal en color negro, su frecuencia armónica tiene una amplitud de 1/6 y una frecuencia tres veces mayor que la principal, la suma de estas dos onditas es la onda azul.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/RbWruliOolI/AAAAAAAAABQ/_Jqku9Hncns/s1600-h/gnotas2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/RbWruliOolI/AAAAAAAAABQ/_Jqku9Hncns/s400/gnotas2.JPG" alt="" id="BLOGGER_PHOTO_ID_5023109776239665746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el caso del sonido es un poco mas complicado, pues los armónicos son mucho más que dos , como en el caso anterior.&lt;br /&gt;&lt;br /&gt;Los sintetizadores , o los teclados electrónicos , crean electrónicamente con matlab distintos armónicos para crear sonidos como trompetas, pianos , voces etc. lo difícil es ver que armónicos agregar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A continuación pongo ejemplos de algunos "LA-440[Hz]" que he grabado y he graficado.&lt;br /&gt;Nótese los armónicos y que la onda tiene ciclos, no es difícil encontrarlos:&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;La por Roco&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=0a0050e" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nótese la onda graficada...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ep6DnIy71qM/RbWt0liOomI/AAAAAAAAABY/JF_jol4AFu0/s1600-h/gnotas3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ep6DnIy71qM/RbWt0liOomI/AAAAAAAAABY/JF_jol4AFu0/s400/gnotas3.JPG" alt="" id="BLOGGER_PHOTO_ID_5023112078342136418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:arial;"&gt;&lt;b&gt;La por un Diapasón (Este idealmente no tiene armónicos)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=720cd79" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RbWuwViOonI/AAAAAAAAABg/0nKzgMGLas0/s1600-h/gnotas4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RbWuwViOonI/AAAAAAAAABg/0nKzgMGLas0/s400/gnotas4.JPG" alt="" id="BLOGGER_PHOTO_ID_5023113104839320178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:arial;"&gt;&lt;b&gt;La por un piano&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="353" height="132"&gt;&lt;embed src="http://www.goear.com/files/external.swf?file=4f241fe" type="application/x-shockwave-flash" wmode="transparent" quality="high" width="353" height="132"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/RbWvMViOooI/AAAAAAAAABo/AgmW1VfnPKE/s1600-h/gnotas5.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/RbWvMViOooI/AAAAAAAAABo/AgmW1VfnPKE/s400/gnotas5.JPG" alt="" id="BLOGGER_PHOTO_ID_5023113585875657346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El programa para Matlab con los archivos de sonido de distintos "la" esta &lt;a href="http://www.udec.cl/%7Efranciscoroco/Versono.rar.rar"&gt;Aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Chao&lt;br /&gt;&lt;br /&gt;Francisco Roco&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-6985366525286058493?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/6985366525286058493/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=6985366525286058493' title='13 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/6985366525286058493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/6985366525286058493'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/01/caractersticas-del-sonido.html' title='Características del Sonido'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ep6DnIy71qM/RbWmTFiOokI/AAAAAAAAABI/3K1_WFsJ7-w/s72-c/gnotas.JPG' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-7067578629998301199</id><published>2007-01-14T03:21:00.003-03:00</published><updated>2009-12-11T02:21:47.158-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sonido matlab gnu-octave'/><title type='text'>El Sonido y matlab</title><content type='html'>&lt;div class="post-body"&gt;&lt;div&gt;&lt;br /&gt;&lt;h2&gt;¿Cómo hago sonido con el Matlab?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;El computador funciona de forma discreta, no en forma continua, es decir, trabaja con números, que guardamos en vectores.&lt;br /&gt;Un ejemplo de vector es &lt;code&gt;[1,2,3,4,5,6,10]&lt;/code&gt; (Un saludo pa’ todos los locos)&lt;br /&gt;&lt;br /&gt;Para hacer sonidos necesitamos una &lt;a href="http://es.wikipedia.org/wiki/Se%C3%B1al_digital"&gt;señal&lt;/a&gt; que en este caso es un vector con muchos números, de repente millones. Este vector tiene que contener el &lt;a href="http://es.wikipedia.org/wiki/Sonido"&gt;sonido&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Un sonido es una vibración, una onda, que la vemos de forma sinuidal o de forma parecida (En realidad es consecuencia de ello pero para formar una idea buena lo planteo así).&lt;br /&gt;&lt;br /&gt;Lo que se guarda en el vector son valores de la señal. Una analogía para entender esto la visualizo así: Una cuerda que se mueve, vibrando (Fig. 1) y le sacamos una foto en un instante. Cuando la cuerda esta quieta, no vibrando, decimos que está en el valor cero (Fig. 2). Mientras empieza a moverse de izquierda a derecha va adquiriendo valores, los que medimos al medio de la cuerda desde el punto donde esta quieta -cuando esta en cero- (Fig.3), su elongación máxima será 1 a la derecha,   y -1 a la izquierda (Fig.5 y 6).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/Rapr4_bTyYI/AAAAAAAAAAk/n2TK1aORDoQ/s1600-h/01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/Rapr4_bTyYI/AAAAAAAAAAk/n2TK1aORDoQ/s400/01.JPG" alt="" id="BLOGGER_PHOTO_ID_5019943361500662146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno, con cada foto que le saque a mi onda que representé como cuerda, tendré un valor que guardaré en el vector. Pero como el movimiento es una vibración, tengo que guardar estos valores cada cierto intervalo de tiempo, algo así como  sacar fotos cada 1 segundo a mi onda, y es ahí donde aparece el concepto de “Frecuencia de Muestro”.&lt;br /&gt;&lt;br /&gt;La frecuencia de Muestreo fm. es, la cantidad de muestras (fotos en mi analogía), que se toman en 1 segundo. Si tomo la grafica de los valores que va tomando mi onda (cuerda),  en el “eje y” pongo los valores en función del tiempo, y en el “eje x” el tiempo la frecuencia de muestreo en la figura es 1[&lt;a href="http://es.wikipedia.org/wiki/Hercio"&gt;Hz&lt;/a&gt;], pues muestreo (tomo una foto), 1 vez por segundo.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/Raptk_bTyZI/AAAAAAAAAAs/crBtqgW00uQ/s1600-h/02.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/Raptk_bTyZI/AAAAAAAAAAs/crBtqgW00uQ/s400/02.JPG" alt="" id="BLOGGER_PHOTO_ID_5019945216926534034" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ep6DnIy71qM/Rapt3_bTyaI/AAAAAAAAAA0/Wx3WbFL1XGM/s1600-h/03.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ep6DnIy71qM/Rapt3_bTyaI/AAAAAAAAAA0/Wx3WbFL1XGM/s400/03.JPG" alt="" id="BLOGGER_PHOTO_ID_5019945543344048546" border="0" /&gt;&lt;/a&gt;Lo que guardo es lo que se ve arriba&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/Frecuencia_de_muestreo#Frecuencias_de_muestreo_para_audio_y_v.C3.ADdeo"&gt;Frecuencia de muestreo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lógicamente cuando tengo una mayor frecuencia de muestreo mejor será la calidad del sonido, porque estaré representando con más puntos mi función.&lt;br /&gt;Por ejemplo el teléfono funciona a 8000 [&lt;a href="http://es.wikipedia.org/wiki/Hercio"&gt;Hz&lt;/a&gt;], y se escucha más o menos no más, (Sobre todo cuando hacen esos contactos con las unidades móviles en la Radio); Los CD tienen una frecuencia de muestreo de 44.100[&lt;a href="http://es.wikipedia.org/wiki/Hercio"&gt;Hz&lt;/a&gt;] la radio de 22100[&lt;a href="http://es.wikipedia.org/wiki/Hercio"&gt;Hz&lt;/a&gt;], bueno como dato no más.&lt;br /&gt;&lt;br /&gt;Hago lo comentado arriba en matlab con el comando &lt;code&gt;sound&lt;/code&gt; que reproduce un vector con su frecuencia de muestreo&lt;br /&gt;&lt;div class="codigo"&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,Courier;"&gt;&lt;span style=""&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%Frecuencia de muestreo&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fm=44000;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%frecuencia sonido, nota musical La&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fr=440;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%Duracion en segundos&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;duracion=1;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;t=0:1/fm:duracion;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;% Señal senoidal&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;y=sin(fr*2*pi*t);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%La hacemos sonar&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sound(y,fm)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%La guardamos como wav&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;wavwrite(.5*y,fm,'la440.wav')&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;%Graficamos un pedacito para ver la forma&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;t=t(round(68.5*length(t)/100):round(70*length(t)/100));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;y=y(round(68.5*length(y)/100):round(70*length(y)/100));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;plot(t,y)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Para los que no tengan Matlab:&lt;br /&gt;&lt;a href="http://www.udec.cl/~franciscoroco/la440.wav"&gt;1) Sonido que se debería escuchar&lt;/a&gt;&lt;br /&gt;2) Gráfico de un pedacito de señal, nótese que los valores que da están entre 1 y -1, y que en el eje x esta graficado el tiempo en segundos. Se nota la forma de sinusoide&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New,Courier;"&gt;&lt;span style=""&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ep6DnIy71qM/RanNe_bTyWI/AAAAAAAAAAM/sGn8nkad0W4/s1600-h/ondita.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ep6DnIy71qM/RanNe_bTyWI/AAAAAAAAAAM/sGn8nkad0W4/s400/ondita.JPG" alt="" id="BLOGGER_PHOTO_ID_5019769191986874722" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Su servidor...&lt;/p&gt;&lt;p&gt;Francisco Roco&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-7067578629998301199?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/7067578629998301199/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=7067578629998301199' title='7 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/7067578629998301199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/7067578629998301199'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/01/el-sonido-y-matlab.html' title='El Sonido y matlab'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ep6DnIy71qM/Rapr4_bTyYI/AAAAAAAAAAk/n2TK1aORDoQ/s72-c/01.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-1168703082303048720</id><published>2007-01-01T17:45:00.003-03:00</published><updated>2009-12-11T02:22:27.901-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Animación Motor Radial en Matlab gnu-octave'/><title type='text'>Animación del Motor Radial en Matlab</title><content type='html'>Se muestra a continuación una animación de un &lt;a href="http://es.wikipedia.org/wiki/Motor_radial"&gt;Motor Radial&lt;/a&gt; en la página se verá una animación para que quede clarísimo como es uno, la que se expone aquí es un poco más simple, pero no menos didáctica.&lt;br /&gt;&lt;br /&gt;Esta se ve así(En versión pequeña):&lt;br /&gt;&lt;img src="http://www2.udec.cl/~franciscoroco/radialchico.gif" /&gt;&lt;br /&gt;La animación es simplemente una sucesión de imágenes que van cambiando, en la cual cada una permanece un período de tiempo muy pequeño.&lt;br /&gt;&lt;br /&gt;El cálculo de la dinámica, más abajo, se plantea para varias posiciones, en este caso las mayas tiene como variable de entrada &lt;code&gt;t&lt;/code&gt; que es el ángulo de la manivela (cigüeñal).&lt;br /&gt;Luego se calcula la posición de los pasadores de la biela principal.&lt;br /&gt;Posteriormente la posición de los pistones. Para ello se necesitan como entradas un t inicial y los valores tentativos respectivos.&lt;br /&gt;Como son cinco pistones se cálcula la posición de cada uno de ellos en una función independiente, la idea era hacer una para todos, pero se me complicó el asunto en sun momento y al final hice 5 :D.&lt;br /&gt;&lt;br /&gt;Para hacer todo esto hay dos partes&lt;br /&gt;&lt;br /&gt;A) Programa principal&lt;br /&gt;B) Funciones de Cálculo.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Sintaxis del Programa Principal&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;En la función principal aquí abajo se ve: La parte de los valores iniciales. Un ciclo &lt;code&gt;For&lt;/code&gt; en el que se calcula para cada &lt;code&gt;t&lt;/code&gt; la posición de todos los pistones.Obviamente va variando el t, en esta parte se llaman a las funciones que caculan toda la imagen. Y por último la parte que hace el gráfico, que son puros &lt;code&gt;plot&lt;/code&gt; más la parte que usa el comando &lt;code&gt;pause&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Notar las tres partes indicadas:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;&lt;br /&gt;%Valores iniciales&lt;br /&gt;clc&lt;br /&gt;clear all&lt;br /&gt;hold off&lt;br /&gt;&lt;br /&gt;%numero de cálculos&lt;br /&gt;nc=2%5*360/5+1;&lt;br /&gt;&lt;br /&gt;%tiempo depausa para una imagen&lt;br /&gt;dt=0.01;&lt;br /&gt;paso=pi/4%5*pi/(180);&lt;br /&gt;&lt;br /&gt;%geometria&lt;br /&gt;lm=15; %manivela&lt;br /&gt;lb=45; %biela&lt;br /&gt;rb=8; %radio de la biela&lt;br /&gt;e=16; %ancho piston&lt;br /&gt;d=3.4; %ancho biela&lt;br /&gt;np=10; %numero de puntos para el calculo de la curvatura de las biela&lt;br /&gt; &lt;br /&gt;%Valor inicial&lt;br /&gt;t=0;&lt;br /&gt;X=[];&lt;br /&gt;Y=[];&lt;br /&gt;x1=lm+lb;&lt;br /&gt;&lt;br /&gt;% valores estimativos iniciales&lt;br /&gt;x1=40;&lt;br /&gt;tb=80*pi/180;&lt;br /&gt;&lt;br /&gt;%piston2&lt;br /&gt;t2=pi/8;&lt;br /&gt;a2=(90-72)*pi/180;&lt;br /&gt;x2=50;&lt;br /&gt;&lt;br /&gt;% Piston3&lt;br /&gt;t3=45*pi/180;&lt;br /&gt;a3=54*pi/180;&lt;br /&gt;x3=40;&lt;br /&gt;&lt;br /&gt;%Piston4&lt;br /&gt;t4=pi/5;&lt;br /&gt;a4=a3;&lt;br /&gt;x4=10;&lt;br /&gt;&lt;br /&gt;% Piston5&lt;br /&gt;t5=-30*pi/180;&lt;br /&gt;a5=18*pi/180;&lt;br /&gt;x5=40;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;%  Calculos&lt;br /&gt;&lt;br /&gt;for i=1:nc&lt;br /&gt; [tb,x1] = pist1(t,tb,x1,lm,lb,rb);&lt;br /&gt; x=[0,lm*sin(t)];&lt;br /&gt; y=[0,lm*cos(t)];&lt;br /&gt; X0(i,:)=x;&lt;br /&gt; Y0(i,:)=y;&lt;br /&gt; [cx,cy]=cuad(0,x1,e,0);&lt;br /&gt; CX1(i,:)=cx;&lt;br /&gt; CY1(i,:)=cy;&lt;br /&gt;&lt;br /&gt; % Biela&lt;br /&gt; pm=lm*[sin(t),cos(t)];&lt;br /&gt; [ppx,ppy]=pen(pm,tb,rb);&lt;br /&gt; Px(i,:)=ppx';&lt;br /&gt; Py(i,:)=ppy';&lt;br /&gt; tt(i)=t;&lt;br /&gt; xx2(i)=x2;&lt;br /&gt; &lt;br /&gt; % piston1&lt;br /&gt; X1(i,:)=[ppx(1),0];&lt;br /&gt; Y1(i,:)=[ppy(1),x1];&lt;br /&gt; &lt;br /&gt; % piston2&lt;br /&gt; [t2,x2] = pist(ppx(2),ppy(2),t2,x2,lm,lb,rb);&lt;br /&gt; [cx,cy]=cuad(x2*cos(a2),x2*sin(a2),e,(90-72)*pi/180);&lt;br /&gt; CX2(i,:)=cx;&lt;br /&gt; CY2(i,:)=cy;&lt;br /&gt; X2(i,:)=[ppx(2),x2*cos(a2)];&lt;br /&gt; Y2(i,:)=[ppy(2),x2*sin(a2)];&lt;br /&gt; xx2(i)=x2;&lt;br /&gt;  &lt;br /&gt; % piston3&lt;br /&gt; [t3,x3] = pist3(ppx(3),ppy(3),t3,x3,a3,lm,lb,rb);&lt;br /&gt; [cx,cy]=cuad(x3*cos(a3),-x3*sin(a3),e,pi-a3);&lt;br /&gt; CX3(i,:)=cx;&lt;br /&gt; CY3(i,:)=cy;&lt;br /&gt; X3(i,:)=[ppx(3),x3*cos(a3)];&lt;br /&gt; Y3(i,:)=[ppy(3),-x3*sin(a3)];&lt;br /&gt; xx3(i)=x3;&lt;br /&gt;&lt;br /&gt; % piston4&lt;br /&gt; [t4,x4] = pist4(ppx(4),ppy(4),t4,x4,a4,lm,lb,rb);&lt;br /&gt; [cx,cy]=cuad(-x4*cos(a4),-x4*sin(a4),e,a4);&lt;br /&gt; CX4(i,:)=cx;&lt;br /&gt; CY4(i,:)=cy;&lt;br /&gt; X4(i,:)=[ppx(4),-x4*cos(a4)];&lt;br /&gt; Y4(i,:)=[ppy(4),-x4*sin(a4)];&lt;br /&gt; xx4(i)=x4;&lt;br /&gt;&lt;br /&gt; % piston5&lt;br /&gt; [t5,x5] = pist5(ppx(5),ppy(5),t5,x5,a5,lm,lb,rb);&lt;br /&gt; [cx,cy]=cuad(-x5*cos(a5),x5*sin(a5),e,pi-a5);&lt;br /&gt; CX5(i,:)=cx;&lt;br /&gt; CY5(i,:)=cy;&lt;br /&gt; X5(i,:)=[ppx(5),-x5*cos(a5)];&lt;br /&gt; Y5(i,:)=[ppy(5),x5*sin(a5)];&lt;br /&gt; xx5(i)=x5;&lt;br /&gt;&lt;br /&gt; t=t+paso; &lt;br /&gt;&lt;br /&gt; % cigueñal&lt;br /&gt; [bx0,by0] = biela(X0(i,:),Y0(i,:),d,np);&lt;br /&gt; &lt;br /&gt; % las bielas&lt;br /&gt; [bx2,by2] = biela(X2(i,:),Y2(i,:),d,np);&lt;br /&gt; [bx3,by3] = biela(X3(i,:),Y3(i,:),d,np);&lt;br /&gt; [bx4,by4] = biela(X4(i,:),Y4(i,:),d,np);&lt;br /&gt; [bx5,by5] = biela(X5(i,:),Y5(i,:),d,np);&lt;br /&gt;&lt;br /&gt; BX0(i,:)=bx0';&lt;br /&gt; BY0(i,:)=by0';&lt;br /&gt;&lt;br /&gt; BX2(i,:)=bx2';&lt;br /&gt; BY2(i,:)=by2';&lt;br /&gt;&lt;br /&gt; BX3(i,:)=bx3';&lt;br /&gt; BY3(i,:)=by3';&lt;br /&gt;&lt;br /&gt; BX4(i,:)=bx4';&lt;br /&gt; BY4(i,:)=by4';&lt;br /&gt;&lt;br /&gt; BX5(i,:)=bx5';&lt;br /&gt; BY5(i,:)=by5';&lt;br /&gt;&lt;br /&gt; % biela Maestra&lt;br /&gt; [ppx,ppy]=pbiela(pm,tb,[ppx(1),0],[ppy(1),x1],3,10,rb);&lt;br /&gt; BPX(i,:)=ppx';&lt;br /&gt; BPY(i,:)=ppy';&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;BX=[];&lt;br /&gt;BY=[];&lt;br /&gt;&lt;br /&gt;a=[90,18,-54,-126,-198,90]*pi/180;&lt;br /&gt;&lt;br /&gt;for i=1:6&lt;br /&gt;  P = bloc(a(i),lm,lb,rb,e);&lt;br /&gt;  BX=[BX P(:,1)'];&lt;br /&gt;  BY=[BY P(:,2)'];&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;%  Animación&lt;br /&gt;&lt;br /&gt;for i=1:nc&lt;br /&gt; plot(-100,-100)&lt;br /&gt; hold on&lt;br /&gt; plot(BX,BY,'k')%Bloc&lt;br /&gt; plot(100,100)&lt;br /&gt; plot(CX1(i,:),CY1(i,:))%CUADRADO 1&lt;br /&gt; plot(CX1(i,:),CY1(i,:))%CUADRADO 1&lt;br /&gt; plot(CX2(i,:),CY2(i,:))%CUADRADO 2&lt;br /&gt; plot(CX3(i,:),CY3(i,:))%CUADRADO 3&lt;br /&gt; plot(CX4(i,:),CY4(i,:))%CUADRADO 4&lt;br /&gt; plot(CX5(i,:),CY5(i,:))%CUADRADO 5&lt;br /&gt;&lt;br /&gt; plot(Px(i,:),Py(i,:),'o')%PENTAGONO&lt;br /&gt;&lt;br /&gt; plot(X0(i,:),Y0(i,:),'o')%FIGURA 0 manivela 2 puntos&lt;br /&gt; plot(X1(i,:),Y1(i,:),'o')%FIGURA 1 pasador biela princ piston 2 puntos&lt;br /&gt; plot(X2(i,:),Y2(i,:),'o')%FIGURA 2 pasador biela princ piston 2 puntos&lt;br /&gt; plot(X3(i,:),Y3(i,:),'o')%FIGURA 3 pasador biela princ piston 2 puntos&lt;br /&gt; plot(X4(i,:),Y4(i,:),'o')%FIGURA 4 pasador biela princ piston 2 puntos&lt;br /&gt; plot(X5(i,:),Y5(i,:),'o')%FIGURA 5 pasador biela princ piston 2 puntos&lt;br /&gt;&lt;br /&gt; plot(BX0(i,:),BY0(i,:),'m')%Manivela&lt;br /&gt;&lt;br /&gt; plot(BPX(i,:),BPY(i,:),'r')%biela maestra&lt;br /&gt; plot(BX2(i,:),BY2(i,:))%Biela&lt;br /&gt; plot(BX3(i,:),BY3(i,:))%Biela&lt;br /&gt; plot(BX4(i,:),BY4(i,:))%Biela&lt;br /&gt; plot(BX5(i,:),BY5(i,:))%Biela&lt;br /&gt;&lt;br /&gt; hold off&lt;br /&gt; pause(dt) %Pausa dt segundos&lt;br /&gt;&lt;br /&gt;end&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Nótese las tres partes del programa, en la primera se declaran los valores iniciales para las funciones, y junto con ello se determinan para cuantos instantes se realizarán los cálulos, es decir, para cuantas posiciones de la biela principal se hacen los cálculos.&lt;br /&gt;En la segunda para cada instante, es decir, para cada posición de la biela maestra o principal, se calculan las posiciones de los pistones. Esto se hce llamando a las funciones correspondientes en cada caso, se examinará mas abajo este detalle.&lt;br /&gt;En la tercera parte se grafican, para cada instante las posiciones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; Funciones de Cálculo&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;La Primera función es "pist.m" , para calcular la posicion de los pistones, hay una función por pistón, la que se expone más abajo  es la del piston 1 el que se mueve de arriba abajo, la punta de la "estrella". La idea es tener como entrada a la función el angulo de la biela principal t, y con la ecuacion de la maya sacar los valores que faltan.&lt;br /&gt;Nótese que el método de calculo usado es el mismo que se describe en una entrada anterior del blog, si no se conoce ver en &lt;a href="http://rocoblog.blogspot.com/2006/12/animaciones-con-matlab.html"&gt;Animaciones con matlab&lt;/a&gt;, en el que se utiliza una iteración.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function     [tb,x1] = pist1(t,tb,x1,lm,lb,rb)&lt;br /&gt;e=10^-10;&lt;br /&gt;c=1;&lt;br /&gt;f1=lm*sin(t)-(lb+rb)*cos(tb);&lt;br /&gt;f2=lm*cos(t)+(lb+rb)*sin(tb)-x1;&lt;br /&gt;&lt;br /&gt;%  Iteracion&lt;br /&gt;while abs(f1)&gt;e | abs(f2)&gt;e&lt;br /&gt; c=c+1;&lt;br /&gt; df1x=0;&lt;br /&gt; df1tb=(lb+rb)*sin(tb);&lt;br /&gt; df2x=-1;&lt;br /&gt; df2tb=(lb+rb)*cos(tb);&lt;br /&gt; A=[df1x,df1tb;df2x,df2tb];&lt;br /&gt; B=[-f1;-f2];&lt;br /&gt; X=A\B;&lt;br /&gt; if X==[0;0]&lt;br /&gt;     break&lt;br /&gt; end&lt;br /&gt; tb=tb+X(2);&lt;br /&gt; x1=x1+X(1);&lt;br /&gt; f1=lm*sin(t)-(lb+rb)*cos(tb);&lt;br /&gt; f2=lm*cos(t)+(lb+rb)*sin(tb)-x1;&lt;br /&gt;end&lt;br /&gt;x1=lm*cos(t)+(lb+rb)*sin(tb);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Función para graficar los pistones&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Para hacer que la animación sea más realista, aunque esquemática, se usa una función que dibuja un cuadrado orientado en el angulo del bloc del motor, de manera que parezca un piston. La  función cuad.m , da un cuadrado, tiene como entrada un punto, con sus dos coordenadas &lt;code&gt;x&lt;/code&gt; e &lt;code&gt;y&lt;/code&gt;, el lado del cuadrado que queremos &lt;code&gt;e&lt;/code&gt; y el ángulo de inclinación de este &lt;code&gt;a&lt;/code&gt;. La función tiene como salidalos puntos de un cuadrado (representa un pistón), listo para ser graficado.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function [X,Y]=cuad(x,y,e,a);&lt;br /&gt;r=e*sqrt(2);&lt;br /&gt;b=pi/4-a;&lt;br /&gt;X=[x-r*sin(b),x+r*cos(b),x+r*sin(b),x-r*cos(b),x-r*sin(b)];&lt;br /&gt;Y=[y-r*cos(b),y-r*sin(b),y+r*cos(b),y+r*sin(b),y-r*cos(b)];&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; Función para Pasadores&lt;/h2&gt;&lt;br /&gt;La función &lt;code&gt;pen.m&lt;/code&gt; calcula la posición de los 5 pasadores de la biela principal, como entrada tiene la posicion de la manivela, con elvector &lt;code&gt;pm&lt;/code&gt;, el ángulo &lt;code&gt;tb&lt;/code&gt;, y el radio de la biela &lt;code&gt;rb&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function [ppx,ppy]=pen(pm,tb,rb)&lt;br /&gt;f=0;&lt;br /&gt;for i=1:6&lt;br /&gt; pp(i,:)=pm+rb*[-cos(tb+f),sin(tb+f)];&lt;br /&gt; f=f+72*pi/180;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;ppx=pp(:,1);&lt;br /&gt;ppy=pp(:,2);&lt;br /&gt;ppx(1)=0;&lt;br /&gt;ppy(1)=0;&lt;br /&gt;ppx(6)=0;&lt;br /&gt;ppy(6)=0;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Función para dibujar una biela&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;La función &lt;code&gt;biela.m&lt;/code&gt; se usa para dibujar la biela en el gráfico. Como tenemos los puntos de los pasadores de la biela, que son el pistón y la biela principal, se dibuja al rededor de estos un rectángulo con los bordes redondeados. Como entrada a la función, se tienen : los puntos de los pasadores, enlos vectores &lt;code&gt;X1&lt;/code&gt; e &lt;code&gt;Y1&lt;/code&gt;, el ancho de la biela &lt;code&gt;d&lt;/code&gt;, y el número de puntos &lt;code&gt;n&lt;/code&gt; que dibuja la semicircunferencia de la biela, nótese en el ciclo &lt;code&gt;for&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function     [X,Y] = biela(X1,Y1,d,n)&lt;br /&gt;p1=[X1(1,1),Y1(1,1)];&lt;br /&gt;p2=[X1(1,2),Y1(1,2)];&lt;br /&gt;a=atan2(Y1(1,2)-Y1(1,1),X1(1,2)-X1(1,1));&lt;br /&gt;b=pi/2-a;&lt;br /&gt;&lt;br /&gt;for i=1:n&lt;br /&gt; p(i,:)=p2+d*[cos(-b+i*pi/n),sin(-b+i*pi/n)];&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;for i=1:n&lt;br /&gt; p(n+i,:)=p1+d*[cos(a+pi/2+i*pi/n),sin(a+pi/2+i*pi/n)];&lt;br /&gt;end&lt;br /&gt;p(2*n+1,:)=p(1,:);&lt;br /&gt;X=p(:,1);&lt;br /&gt;Y=p(:,2);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Dibujando la biela Principal o Maestra&lt;/h2&gt;&lt;br /&gt;La función pbiela,hace una figura con forma de biela principal. Tomando pm la posición de la manivela,el angulo de esta, y&lt;br /&gt;&lt;br /&gt;los mismos argumentos que la función anterior.&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function [ppx,ppy]=pbiela(pm,tb,X1,Y1,d,n,rb)&lt;br /&gt;f=0;&lt;br /&gt;for i=1:6&lt;br /&gt; pp(i,:)=pm+3/2*rb*[-cos(tb+f),sin(tb+f)];&lt;br /&gt; f=f+72*pi/180;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;ppx=pp(:,1);&lt;br /&gt;ppy=pp(:,2);&lt;br /&gt;&lt;br /&gt;t=atan2(ppy(2)-ppy(5),ppx(2)-ppx(5));&lt;br /&gt;ppx(6)=ppx(1)-d*cos(t);&lt;br /&gt;ppy(6)=ppy(1)-d*sin(t);&lt;br /&gt;&lt;br /&gt;ppx(1)=ppx(1)+d*cos(t);&lt;br /&gt;ppy(1)=ppy(1)+d*sin(t);&lt;br /&gt;&lt;br /&gt;p1=[X1(1,1),Y1(1,1)];&lt;br /&gt;p2=[X1(1,2),Y1(1,2)];&lt;br /&gt;a=atan2(Y1(1,2)-Y1(1,1),X1(1,2)-X1(1,1));&lt;br /&gt;b=pi/2-a;&lt;br /&gt;&lt;br /&gt;for i=1:n&lt;br /&gt; ppx(i+6)=p2(1,1)-d*cos(b+i*pi/n);&lt;br /&gt; ppy(i+6)=p2(1,2)+d*sin(b+i*pi/n);&lt;br /&gt;end&lt;br /&gt;ppx(6+n)=ppx(1);&lt;br /&gt;ppy(6+n)=ppy(1);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Dibujando el Bloc del motor&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Para dibujar el bloc o carcasa del motor usamos la función &lt;code&gt;bloc.m&lt;/code&gt;, ella tiene como entradas el angulo de las estrellas &lt;code&gt;a2&lt;/code&gt;, el largo de la manivela &lt;code&gt;lm&lt;/code&gt;, el largo de la biela&lt;code&gt;lb&lt;/code&gt;, el radio de la biela &lt;code&gt;rb&lt;/code&gt; y el ancho del pistón&lt;code&gt;e&lt;/code&gt;. &lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function [P] = bloc(a2,lm,lb,rb,e)&lt;br /&gt;r1=-lm+rb+lb-e;&lt;br /&gt;r2=lm+rb+lb+e;&lt;br /&gt;r2=r2-r1;&lt;br /&gt;p1=r1*[cos(a2),sin(a2)];&lt;br /&gt;p2=r2*[cos(a2),sin(a2)];&lt;br /&gt;i=e*[-sin(a2),cos(a2)];&lt;br /&gt;d=e*[sin(a2),-cos(a2)];&lt;br /&gt;P(1,:)=p1+i;&lt;br /&gt;P(2,:)=p1+i+p2;&lt;br /&gt;P(3,:)=p1+i+p2+2*d;&lt;br /&gt;P(4,:)=p1+i+p2+2*d;&lt;br /&gt;P(5,:)=p1+d;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Los archivos *.m&lt;/h2&gt;&lt;br /&gt;Están para descargar&lt;a href="http://www.udec.cl/~franciscoroco/motor_radial.rar"&gt;Todas las funciones más el programa&lt;/a&gt;. Se agradecería avisar cualquier error.&lt;br /&gt;&lt;br /&gt;&lt;address&gt; Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-1168703082303048720?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/1168703082303048720/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=1168703082303048720' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/1168703082303048720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/1168703082303048720'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2007/01/se-muestra-continuacin-una-animacin-de.html' title='Animación del Motor Radial en Matlab'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-116728801465923221</id><published>2006-12-28T03:39:00.009-03:00</published><updated>2009-12-11T02:22:04.812-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Animacion Matlab GNU-Octave gif'/><title type='text'>Animaciones con Matlab/GNU-Octave</title><content type='html'>&lt;div&gt;&lt;br /&gt;  &lt;img src="http://www2.udec.cl/%7Efranciscoroco/piston1.gif" alt="animación de sistema pistón biela manivela"&gt;&lt;br /&gt; &lt;/div&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  Esto puede resultar de ayuda cuando se quiere calcular la dinámica de un sistema mecánico, es decir su posición en función del tiempo, su velocidad o  su aceleración para el cálculo de las fuerzas de trepidación. Además de el cálculo, uno puede "ver "estas magnitudes, en un animación. &lt;br /&gt;&lt;br /&gt; &lt;h4&gt;Animación en Matlab&lt;/h4&gt;&lt;br /&gt;  Simplemente es ir calculando para cada instante la posición de nuestro "sistema", las guardamos en matrices o vectores, y después graficamos para cada instante. Luego si se desea se puede guardar en un gif y se ve como el pistón de arriba ( para ver más &lt;a href="http://rocoblog.blogspot.com/2007/03/como-hacer-un-gift-con-matlab.html"&gt;Aquí para hacer un gif con matlab&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;h4&gt;Conocer la posición de un sistema Pistón Biela Manivela&lt;/h4&gt;&lt;br /&gt; &lt;br /&gt;  Se plantea la posición del sistema en un instante cualquiera para establecer las ecuaciones que permitan calcularla. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://lh4.ggpht.com/_Ep6DnIy71qM/Su0Ci_tLHKI/AAAAAAAAAJ4/E-cIcMQpWcM/animacion.png" alt="Geometría"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; La geometría conocida del sistema es: &lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;x&lt;/strong&gt; posición del pistón respecto del eje de giro de la manivela &lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;l&lt;sub&gt;b&lt;/sub&gt;&lt;/strong&gt; Longitud de la biela&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;l&lt;sub&gt;m&lt;/sub&gt;&lt;/strong&gt; Longitud de la manivela&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;t&lt;sub&gt;1&lt;/sub&gt;&lt;/strong&gt; Ángulo entre la línea de recorrido del pistón y la manivela&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;t&lt;sub&gt;2&lt;/sub&gt;&lt;/strong&gt; Ángulo entre la línea de recorrido del pistón y la biela&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Las ecuaciones se determinan sumando en cada componente los desplazamientos a partir de un punto y llegando al mismo punto. En este caso, partiendo del punto de rotación de la manivela, los desplazamientos serían: &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://lh4.ggpht.com/_Ep6DnIy71qM/Su0Sw0z38DI/AAAAAAAAAKY/_t8XGwRbFIY/ex_desplaz.png" alt="Desplazamientos"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; Es sistema de ecuaciones queda: &lt;br /&gt;&lt;br /&gt; &lt;img src="http://lh5.ggpht.com/_Ep6DnIy71qM/Su0SxFc_UhI/AAAAAAAAAKc/Ih1w-gBYLwk/ec_sis_x.png" alt="Ecuación de desplazamiento en X" &gt; &lt;br /&gt; &lt;img src="http://lh4.ggpht.com/_Ep6DnIy71qM/Su0SxDYxr6I/AAAAAAAAAKg/vCnROVEl09c/ex_sis_y.png" alt="Ecuación de desplazamiento en Y" &gt; &lt;br /&gt;&lt;br /&gt; Conocida la geometría, el largo de la biela y la manivela, y dado el ángulo de la línea de recorrido del pistón y la manivela, el sistema de ecuaciones que queda, tiene como incógnita la posición del pistón y el ángulo. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Se puede resolver despejando en la primera ecuación el valor de &lt;strong&gt;t&lt;sub&gt;2&lt;/sub&gt;&lt;/strong&gt; y luego reemplazar en la segunda ecuación para encontrar &lt;strong&gt;x&lt;/strong&gt;. Pero para generalizar el método, es conveniente resolver de otra forma el sistema para casos en que hay dos incógnitas, ambas en las dos ecuaciones y como argumento de una función trigonométrica, como en el caso del mecanismo de cuatro barras.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Resolución del sistema de ecuaciones&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt; Para ello se define una función F de dimensión 2, que tiene componentes los miembros del sistema de ecuaciones distintos de cero: &lt;br /&gt; &lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/Su0kIernB_I/AAAAAAAAAKo/vNMCrkGS_u0/ec_res_1.png" alt="Función para resolver el sistema de Ecuaciones" &gt; &lt;br /&gt;&lt;br /&gt; La función se iguala a cero por el segundo miembro del sistema de ecuaciones. &lt;br /&gt; Para encontrar las incógnitas se utiliza la aproximación de la función por los dos primeros términos de la serie de Taylor. &lt;br /&gt;&lt;br /&gt; &lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/Su0kIeCTzPI/AAAAAAAAAKs/CKa-dzqkaJQ/ec_res_2.png" alt="Serie de Taylor" &gt; &lt;br /&gt;&lt;br /&gt; Lo que desarrollado es: &lt;br /&gt; &lt;img src="http://lh4.ggpht.com/_Ep6DnIy71qM/Su0kIs9wRZI/AAAAAAAAAKw/ib4HKjJ2_aQ/ec_res_3.png" alt="Desarrollo de serie de Taylor" &gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Se impone que el valor de la aproximación de la serie de Taylor sea cero, coincidente con el de la función, entonces queda: &lt;br /&gt; &lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/Su0kItMCmAI/AAAAAAAAAK0/xuUnDz5dTEo/ec_res_4.png" alt="Desarrollo de la serie" &gt; &lt;br /&gt;&lt;br /&gt; Escrito de otra manera: &lt;br /&gt; &lt;img src="http://lh4.ggpht.com/_Ep6DnIy71qM/Su0kIq8IX5I/AAAAAAAAAK4/ozWvd5ZmFGE/ec_res_5.png" alt="Ecuación para conocer incógnito" &gt; &lt;br /&gt;&lt;br /&gt; Por lo que basta con invertir la matriz para conocer el valor de las incógnitas de la aproximación de la función por la serie de Taylor. Dichos valores son una aproximación a los valores que reemplazados en el sistema lo satisfacen. Por lo que se programa una iteración, de manera de partir con ciertos valores iniciales, evaluar la función, calcular las derivadas parciales, invertir la matriz, obtener valores nuevos, sumarlos a los antiguos, evaluar la función para que sea menor a un error pequeño predefinido  y si es así estos valores son considerados los que satisfacen el sistema. Si no es así, se vuelve a iterar. Lo que aparece resumido en el diagrama de flujo. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;img src="http://lh6.ggpht.com/_Ep6DnIy71qM/Su0t2cR74zI/AAAAAAAAALA/JUvOvawLZt0/Diagrama1.png" alt="Ecuación para conocer incógnito" &gt; &lt;br /&gt;&lt;br /&gt;&lt;h4&gt;La función de cálculo&lt;/h4&gt;&lt;br /&gt; Es diagrama de flujo anterior implementado en código GNU-Octave/Matlab se muestra a continuación. Nótese que como valores de entrada están el ángulo de la manivela, para el cual el sistema tiene una única posición y además se incluyen los valores de x y t&lt;sub&gt;2&lt;/sub&gt; iniciales, los que deben ser tentativos. &lt;br /&gt; La función entrega como parametro de salidas las incógnitas &lt;strong&gt;x&lt;/strong&gt; y &lt;strong&gt;t&lt;sub&gt;2&lt;/sub&gt;&lt;/strong&gt; y ademas de esos dos vectores, &lt;em&gt;xx&lt;/em&gt; e &lt;em&gt;yy&lt;/em&gt;, en los que se guardan la posición de los puntos para cada instante en los ejes &lt;em&gt;x&lt;/em&gt; e &lt;em&gt;y&lt;/em&gt;.  &lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function [xx,yy,x,t2] = blogpiston(t1,x,t2)&lt;br /&gt;&lt;br /&gt;% Tolerancia del error&lt;br /&gt;e=0.001;&lt;br /&gt;&lt;br /&gt;% Dimensiones del sistema&lt;br /&gt;lm=35;&lt;br /&gt;lb=56;&lt;br /&gt;&lt;br /&gt;% definicion de F&lt;br /&gt;f1=lm*sin(t1)-lb*sin(t2);&lt;br /&gt;f2=lm*cos(t1)+lb*cos(t2)-x;&lt;br /&gt;&lt;br /&gt;while abs(f1)&gt;e | abs(f2)&gt;e&lt;br /&gt; df1x=0;&lt;br /&gt; df1t2=-lb*cos(t2);&lt;br /&gt; df2x=-1;&lt;br /&gt; df2t2=-lb*sin(t2);&lt;br /&gt; A=[df1x,df1t2;df2x,df2t2];&lt;br /&gt; B=[-f1;-f2];&lt;br /&gt; &lt;br /&gt; % Resolucion del sistema&lt;br /&gt; X=A\B;&lt;br /&gt; &lt;br /&gt; % Por si acaso no converge&lt;br /&gt; if X==[0;0]&lt;br /&gt;  break&lt;br /&gt; end&lt;br /&gt; &lt;br /&gt; %valores nuevos de x y t2&lt;br /&gt; x=x+X(1);&lt;br /&gt; t2=t2+X(2);&lt;br /&gt; &lt;br /&gt; %definicion de F con los nuevos x y t2&lt;br /&gt; f1=lm*sin(t1)-lb*sin(t2);&lt;br /&gt; f2=lm*cos(t1)+lb*cos(t2)-x;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;% Puntos de la maya para el t1 dado&lt;br /&gt;xx=[0,lm*sin(t1),0];&lt;br /&gt;yy=[0,lm*cos(t1),x];&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;La animación&lt;/h4&gt;&lt;br /&gt; Para animar el sistema debemos tener calculada la posición del sistema dados varios instantes, o merjor dicho, para varios angulos de la manivela. Así, si se supone una velocidad angular constante en la manivela, puede calcularse para ángulos &lt;strong&gt;t&lt;sub&gt;1&lt;/sub&gt;&lt;/strong&gt; conocidos, a un paso conocido,y luego graficar cada resultado del sistema para cada valor de angulo  &lt;strong&gt;t&lt;sub&gt;1&lt;/sub&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt; Las instrucciones anterioes se indican en el siguiente código: &lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;% animacion&lt;br /&gt;clear all;&lt;br /&gt;&lt;br /&gt;% paso&lt;br /&gt;paso=6*pi/180;&lt;br /&gt;&lt;br /&gt;% numero de puntos&lt;br /&gt;nc=100;&lt;br /&gt;&lt;br /&gt;% datos&lt;br /&gt;t1=pi/4;&lt;br /&gt;&lt;br /&gt;% estimaciones&lt;br /&gt;x=70;&lt;br /&gt;t2=30*pi/180;&lt;br /&gt;&lt;br /&gt;% definicion de los vecotres para guardar los puntos&lt;br /&gt;X=[0,0,0];&lt;br /&gt;Y=X;&lt;br /&gt;XP=[0,0,0,0,0];&lt;br /&gt;YP=XP;&lt;br /&gt;&lt;br /&gt;% calculo para cada posicion de t1&lt;br /&gt;for i=1:nc&lt;br /&gt;    [xx,yy,x,t2] = blogpiston(t1,x,t2);&lt;br /&gt;    X(i,:)=xx;&lt;br /&gt;    Y(i,:)=yy;&lt;br /&gt;    t1=t1+paso;&lt;br /&gt;    %cuadrado para simular piston (Es para que se vea bonito )&lt;br /&gt;    [xx,yy]=cuad(xx(3),yy(3),5,0);&lt;br /&gt;    XP(i,:)=xx;&lt;br /&gt;    YP(i,:)=yy;&lt;br /&gt;    %&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;% grafico/animacion&lt;br /&gt;for i=1:nc&lt;br /&gt;&lt;br /&gt;    %Marco para la pantalla&lt;br /&gt;    plot(-100,-100)&lt;br /&gt;    hold on&lt;br /&gt;    plot(100,100)&lt;br /&gt;    &lt;br /&gt;    %malla&lt;br /&gt;    plot(X(i,:),Y(i,:),'-o')&lt;br /&gt;    %cuadrado piston&lt;br /&gt;    plot(XP(i,:),YP(i,:))&lt;br /&gt;    %tiempode pausa&lt;br /&gt;    pause(.1)&lt;br /&gt;    hold off&lt;br /&gt;&lt;br /&gt;end&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  Lo anterior puede guardarse como imágenes y puede &lt;a href="http://rocoblog.blogspot.com/2007/03/como-hacer-un-gift-con-matlab.html"&gt;elaborarse un gif de un pistón&lt;/a&gt; agregando la sintaxis del artículo citado, y quedará una animación como la que se ve en la cabeza del artículo. &lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Dibujar el pistón&lt;/h4&gt;&lt;br /&gt; Como la "animación" descrita dibuja solo lineas y puntos, agregué una función que dibuja un cuadrado para representar el pistón, tomando como referencia el punto calculado para la posición de este &lt;br /&gt;&lt;br /&gt; Notar que &lt;em&gt;x&lt;/em&gt; e &lt;em&gt;y&lt;/em&gt; son las coordenadas del pistón. El pistón es un cuadrado de lado &lt;em&gt;e&lt;/em&gt; que recorre una línea horientada con la vertical de ángulo &lt;em&gt;a&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;pre&gt;function [X,Y]=cuad(x,y,e,a);&lt;br /&gt;r=e*sqrt(2);&lt;br /&gt;b=pi/4-a;&lt;br /&gt;X=[x-r*sin(b),x+r*cos(b),x+r*sin(b),x-r*cos(b),x-r*sin(b)];&lt;br /&gt;Y=[y-r*cos(b),y-r*sin(b),y+r*cos(b),y+r*sin(b),y-r*cos(b)];&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Archivos *.m&lt;/h4&gt;&lt;br /&gt; Dada cualquier eventualidad los archivos *.m están en los siguientes enlaces: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.udec.cl/%7Efranciscoroco/blogpiston.m"&gt;Función&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.udec.cl/%7Efranciscoroco/bloganimacion.m"&gt;Programa&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.udec.cl/%7Efranciscoroco/cuad.m"&gt;Cuadrado para el pistón&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;address&gt;Francisco Roco&lt;/address&gt;&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-116728801465923221?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/116728801465923221/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=116728801465923221' title='6 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/116728801465923221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/116728801465923221'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2006/12/animaciones-con-matlab.html' title='Animaciones con Matlab/GNU-Octave'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_Ep6DnIy71qM/Su0Ci_tLHKI/AAAAAAAAAJ4/E-cIcMQpWcM/s72-c/animacion.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31327455.post-115516098243040209</id><published>2006-08-09T17:53:00.001-04:00</published><updated>2008-09-27T22:37:23.756-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Volar...'/><title type='text'>Volar...volar siempre fue el sueño de la humanidad</title><content type='html'>Volar...volar siempre fue el sueño de la humanidad, y ahora que la mente humana puede reproducir este milagro, es visto por todos como tal. Es cosa de fijarse en expresiones que se refieren a sensaciones, como por ejemplo por efecto de la marihuana, "uhh siento volar...arghh",O simplemente al ver alguien ensimismado en su labor hacemos referencia a esta actividad "uhh el loco se voló tocando el piano" .En el enamoramiento es común que se haga analogía con la sensación de vuelo, es clásica la imagen de la pareja volando sobre un campo de flores; tambien  escribió Neruda&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Hay que volar a cada instante como&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;las águilas, las moscas y los días,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;hay que vencer los ojos de Saturno&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;y establecer allí nuevas campanas."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A lo largo de la historia han aparecido varios dioses que poseen alas, como una forma de ilustrar la percepción del hombre sobre ello, como también los ángeles, Gokú y Supermán que está tan de moda en estos días.&lt;br /&gt;&lt;br /&gt;Una vez un compañero me dijo "Tu no puedes comparar el volar en avión, con esa sensación de libertad que sería poder volar sin cabinas, sin parabrisas, sin nada..."&lt;br /&gt;&lt;br /&gt;Bueno, en parte tiene razón pero aún en la conciencia colectiva las máquinas voladoras tienen una imagen de modernidad, complejidad y de progreso. Si no, amigos míos, ¿Por qué creen ustedes que en el comercial de las toallas higiénicas mencionan las alas de esta y recalcan , y vuelven a decir "con alas"?, ja ja, no eso es estar loco. Un caso más aterrizado es ver en el comercial de &lt;span style="font-style: italic;"&gt;Ferrari&lt;/span&gt; "La gasolina de la escuderia Ferrari no podía ser otra" donde sale un avión cisterna abasteciendo de combustible al modelo de la Fórmula uno mientras este esta corriendo a gran velocidad.&lt;br /&gt;&lt;br /&gt;Como que me volé ¿ah?. Eso tiene explicación en mi gusto por el rubro aeroespacial, eso de disfrutar viendo despegar un avión , o el colosal transbordador espacial, nace de una pregunta que todos nos hacemos cuando chico: ¿Cómo lo hacen?&lt;br /&gt;&lt;br /&gt;La respuesta a esta pregunta, obviamente es dificil entenderla a corta edad - para los que están en dicha situación &lt;a href="http://www.aviacion.cl/ninos.htm"&gt;http://www.aviacion.cl/ninos.htm&lt;/a&gt; - y a algunas personas nos tiene todavía buscándola, Leonardo Da Vinci quién también gustaba del tema  dijo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Un pájaro es una máquina que funciona conforme a unas leyes matemáticas , y entra en la capacidad del hombre reproducir esa máquina con todos sus movimientos."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Así que a estudiar nos vamos para continuar con este arte...&lt;div class="blogger-post-footer"&gt;ROCOBLOG&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31327455-115516098243040209?l=rocoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rocoblog.blogspot.com/feeds/115516098243040209/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31327455&amp;postID=115516098243040209' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/115516098243040209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31327455/posts/default/115516098243040209'/><link rel='alternate' type='text/html' href='http://rocoblog.blogspot.com/2006/08/volar.html' title='Volar...volar siempre fue el sueño de la humanidad'/><author><name>Francisco Roco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://1.bp.blogspot.com/-kCKOT5Wq0Ec/TdlyMnor37I/AAAAAAAAAPo/vLVXiOaGiTU/s220/froco.png'/></author><thr:total>4</thr:total></entry></feed>
