Está en la página 1de 8

PROCESAMIENTO DIGITAL DE SEALES Pour mes alumnes de itm PRIMERA PRCTICA: F NDAMENTOS DE MATLA!.

OBJETIVOS Introducir al estudiante en el manejo de herramientas bsicas de MATLAB. Emplear unciones aritm!ticas " l#$icas con herramientas proporcionadas por el MATLAB. %enerar archi&os .m. %ra icar se'ales. (e inir unciones en Matlab. A)TIVI(A(ES )orra el pro$rama MATLAB. En el ambiente de trabajo *ue presenta el MATLAB +,or- space. escriba cada una de las si$uientes instrucciones/ r=2 vol=(4/3)*pi*r^3 0epita el ejercicio anterior con r=5 " colocando al inal de cada instrucci#n punto y coma. Escriba en el ambiente de trabajo del MATLAB las si$uientes instrucciones " determine *ue ejecuta cada comando en cuesti#n/ who whos Ahora escriba en el MATLAB lo mostrado a continuaci#n/ vol 12u! se obser&a3 A continuaci#n escriba el conjunto de instrucciones presentadas4 de esta manera se puede obser&ar como se emplean los operadores suma4 resta4 multiplicaci#n " di&isi#n4 3 + 4 - 5/8 + 2* Ahora escriba en el MATLAB las si$uientes instrucciones/ r!=2" r2=!" vol=(4/3)*pi*(r!^3 - r2^3) A continuaci#n comen5aremos a emplear operaciones l#$icas4 el primer operador a emplear es el i# +el i# es empleado para establecer una condici#n " siempre es culminado con un $n%.4 escriba en el ambiente de trabajo del MATLAB la si$uiente instrucci#n/ r=2" i# r&'( vol=(4/3)*pi*r^3 $n% Obser&e *ue al escribir las instrucciones anteriores la indicaci#n & no aparece sino hasta despu!s de teclearse $n%. Si el enunciado re*uiere un operador l#$ico i$ual despu!s del i# se emplea 664 es decir/

r=2" i# r==2( vol=(4/3)*pi*r^3 $n% El operador l#$ico 7di erente de8 se escribe )=. Escriba en el ambiente de trabajo del MATLAB/ r=5 i# r 96 4( vol=(4/3)*pi*r^3 $n% A continuaci#n se presenta una lista de otros operadores l#$icos *ue se emplean de orma anlo$a a los utili5ados anteriormente/ *p$ra%or :. ; <. = >. =6 ?. ;6 @. and+A4B. A. A B B C. or+A4B. D. A E B Menor estricto *ue Ma"or estricto *ue Ma"or o i$ual *ue Menor o i$ual *ue Si ocurre A " B Si ocurre A " B Si ocurre A o B Si ocurre A o B +i,ni#ica%o

Se puede obser&ar *ue los operadores Fro. @. " A. son e*ui&alentes. (e i$ual orma ocurre con los operadores C " D. Ejecute en el MATLAB las si$uientes instrucciones/ -=!" .=2" c=!23" %=!4" $=!5" whos cl$ar - c whos 12u! obser&a3 El comando 7clear A c8 borra las &ariables A " c. Ejecute en el MATLAB las si$uientes instrucciones/ whos cl$ar whos 12u! obser&a3 El comando 7clear8 borra todas las &ariables del ambiente de trabajo. Las &ariables de inidas en el MATLAB pueden almacenarse para ser usadas en otra oportunidad. Gara esto se usan las instrucciones 7sa&e8 " 7load8. En el ejemplo si$uiente se crea un archi&o 7&ariblesH:.mat8 con las &ariables de inidas en el espacio de trabajo/ -=!" .=2" c=!23" %=!4" $=!5" whos sav$ varia.l$s'! cl$ar whos En las instrucciones anteriores se de inen las &ariables A4b4c4d " e " se almacenan en el archi&o 7&ariablesH:8 para lue$o ser borradas del Matlab. Gara car$ar las &ariables en el ambiente de trabajo del MATLAB se usa la instrucci#n 7load8.

loa% varia.l$s'! whos Ahora comen5aremos a ejecutar ciclos o subrutinas4 escriba en el ambiente de trabajo del MATLAB los si$uientes comandos/ #or r=!/5 vol=(4/3)*pi*r^3" %isp(0r(vol1) $n% Los clculos del ciclo no empe5arn hasta *ue se teclee el comando $n% " se$uidamente presionar la tecla $nt$r . El enunciado %isp(0r( vol1) imprime los &alores de r " &ol en una lInea cada &e5 *ue se ejecute el clculo de &ol. Otra orma de escribir el ciclo es mediante la instrucci#n 7Jhile8 de la si$uiente orma/ r='" whil$ r25 r = r + !" vol = (4/3) * pi * r^3" %isp(0r( vol1) $n% Otra orma de escribir el ciclo4 es decrementndolo de la si$uiente orma/ #or r=5/-!/! vol = (4/3) * pi * r^3" %isp(0r( vol1) $n% En Matlab4 por omisi#n4 los nKmeros se escriben con cinco dI$itos. Teclee la si$uiente orden se$uida de un $nt$r/ pi Sin embar$o4 los mismos dI$itos pueden eLhibirse con :A dI$itos si se emite la orden #ormat lon,M por ejemplo/ #ormat lon, pi Si desea &ol&er al ormato corto utilice #ormat short/ #ormat short pi El comando .r$a3 termina la ejecuci#n de un ciclo #or o whil$. Ejemplo/ #or i=!/4 #or 5=!/2' i# 5&2*i( %isp(05(i1)( .r$a3( $n% $n% $n%

En el ejemplo anterior4 brea- termina el ciclo interior tan pronto se satis ace j=<Ni4 pero el ciclo de i se continKa hasta i6A. Al ejecutar los comandos4 MATLAB memori5a las &ariables utili6a%as. Sus &alores permanecen en la memoria hasta *ue sale del MATLAB. Gara borrar todas las &ariables utilice el comando cl$ar. Si s#lo desea borrar al$unas &ariables4 sus nombres se indican despu!s de la palabras cl$ar M por ejemplo/ 7=2" y=3" %isp(7) %isp(y) cl$ar 7 y %isp(7) %isp(y)

Si desea borrar la &entana utilice el comando clc. clc

MATLAB puede aceptar datos de entrada a tra&!s del teclado mediante el comando input. Si se desea leer un nKmero4 un enunciado bsico serIa/ 6 = input(89$cl$$ $l ra%io/8)

La parte OTeclee el radio/O es un mensaje de solicitud *ue se eLhibe en pantalla. )uando se teclee el &alor del radio " se pulse la tecla $nt$r4 el dato se $uradar en 5. Tambi!n es posible introducir cadenas de caracteres desde el teclado. Pn enunciado bsico serIa/ 6 = input(8:n%i;u$ su nom.r$/8( 8s8)

El se$undo ar$umento4 OsO4 indica *ue la entrada del teclado es un carcter +strin$.. La &ariable Q5Q se con&ertir en un arre$lo +&ector ila. a menos *ue la cadena s#lo conten$a un carcter. Se puede introducir una cadena de caracteres con input sin OsO si la cadena se teclea encerrada en ap#stro es. En este caso4 el mensaje de solicitud podrIa ser/ 6 = input(8:n%i;u$ su nom.r$ ($nc$rra%o $n ap<stro#$s)/ 8)

Escriba en el ambiente de trabajo del MATLAB las si$uientes instrucciones/ cl$ar clc #print#(8=>?@9:@- 8)" #print#(8ABCD>* 8)" #print#(8 !EnEn8)"

)onclu"a acerca de la utilidad de la instrucci#n print . )ambie las instrucciones anteriores por las si$uientes. 12u! obser&a3 cl$ar clc #print#(8=>?@9:@-EnEn8)" #print#(8ABCD>*EnEn8)" #print#(8 !EnEn8)"

Es posible imprimir mensajes " nKmeros con ormato en el 7,or- space8 si se utili5a print M por ejemplo/

#print#(8Dl volum$n %$ la $s#$ra $s F!2.5#. "n#$ %ol& A*uI se inclu"# entre los ap#stro es la cadena *ue se &a a eLhibir +El &olumen de la es era.4 el ormato del nKmero +R:<.@ . " el operador de nue&a lInea + \n). Q&olQ es la &ariable *ue se imprimir en el ormato R:<.@ . Si se omite Sn lo *ue se imprima en se$uida aparecer en la misma lInea. El ormato R:<.@ imprime en pantalla un nKmero con :< ci ras si$ni icati&as " cinco decimales. Otros ejemplos de ormatos de impresi#n se muestran a continuaci#n/ #print# (8GormatoH$/ F4.5$.En8( vol) #print# (8GormatoH#/ F4.3#.En8( vol) #print# (8GormatoH#/ F3.'# En8( vol) Las &ariables de arre$lo unidimensional tienen orma de ila o de columna " estn Intimamente relacionadas con los &ectores " las matrices. En MATLAB4 arre$lo de ila es lo mismo *ue &ector de ila " arre$lo de columna es lo mismo *ue &ector de columna. La &ariable QLQ puede de inirse como &ector de ila especi icando sus elementosM por ejemplo/ 7 = 0'( '.!( '.2( '.3( '.4 '.51 Si desea imprimir un elemento particular4 teclee L con su subindice. Gor ejemplo/ 7(3) Pna orma e*ui&alente de de inir la misma QLQ es/ #or i=!/4 7(i)=(i-!)*'.!" $n% 7 Otra orma de de inir una &ariable de arre$lo de ila con un incremento o decremento ijo es/ cl$ar 7 = '/'.!/'.5 La de inici#n de un arre$lo de columna es similar a la de un arre$lo de ila eLcepto *ue los elementos se separan mediante de punto " coma4 por ejemplo/ 6 = 0'"'.!" '.2" '.3" '.4"'.51 Pna alternati&a para de inir esto mismo es a$re$ar un ap#stro e a un arre$lo de ila/ 6 = 0'( '.!( '.2( '.3( '.4 '.518 Si Q"Q " QLQ son arre$los *ue tienen la misma lon$itud " la misma orma + ila o columna.4 se pueden sumar4 restar4 multiplicar " di&idir empleando los operadores aritm!ticos de arre$los/ 56LT" 56LU" 5 6 L .N " 56 L .V " (e ina dos arre$los QLQ e Q"Q tipo ila con elementos +:4<4>4?4@. " realice las operaciones al$ebraicas ilustradas anteriormente.

El operador potenciaci#n arroja un arre$lo cu"os elementos son los del arre$lo ori$inal ele&ados a la potencia indicada. Pn ejemplo se presenta a continuaci#n/ 6=7.^!.2

Al i$ual *ue otros len$uajes de pro$ramaci#n4 MATLAB tiene numerosas unciones matemticas4 desde las elementales hasta las de alto ni&el. Las unciones matemticas en MATLAB presentan dos notables di erencias respecto de las de otros len$uajes de pro$ramaci#n/ Wuncionan con &ariables complejas sin discriminaci#n al$una " uncionan con ar$umentos &ectoriales " matriciales. Ejemplo/ cl$ar cos(2+3*i) 7=!/4 sin(7) y=7+i*7 cos(y)

La ejecuci#n de comandos en la plata orma de trabajo del MATLAB s#lo es apropiada si no ha" *ue teclear mucho o si se desea eLplorar ideas de orma interacti&a. Sin embar$o4 en los casos en *ue los comandos ocupan ms de unas cuantas lIneas es ms con&eniente *ue el usuario escriba un archi&o 7.m8. En el menK WILE del MATLAB cree un nue&o documento MUWILE. En el editor de archi&os MU WILE escriba las instrucciones si$uientes/ 7='/'.'5/!'" y=sin(7).*$7p(-'.4*7)" plot(7(y) 7la.$l(I$5$ 7J)" yla.$l(I$5$ yJ)

%uarde el archi&o con el nombre EH:.m en el directorio ,or- *ue se encuentra dentro del directorio MATLAB. Si el directorio no eListe4 cree el directorio " lue$o el GATX desde MATLAB. En el ambiente de trabajo del MATLAB escriba EH: " lue$o pulse EFTE0. Obser&e la utilidad de la unciones plot4 Llabel e "label. En el archi&o EH:.m cambie la instrucciYn 7plot+L4".8 por las si$uientes lue$o $uarde " corra el archi&o desde el ambiente de trabajo MATLAB para cada caso. plot(7(y(8o8) plot(7(y(J,J) plot(7(y(J+J) plot(7(y(J+,J)

En el archi&o EH:.m a$re$ue al inal la si$uiente instrucci#n " corra el pro$rama. a7is(Is;uar$J)

)ambie la instrucci#n anterior por la si$uiente " corra el pro$rama. a7is(Io##J)

Fue&amente cambie la instrucci#n por la si$uiente " corra el pro$rama. a7is(02(4(-'.2('.!1)

Ahora a$re$ue al inal las intrucciones " corra una &e5 mas el pro$rama. ,ri% on titl$(IKrL#ica !J)

Al inal del archi&o EH:.m a$re$ue primero 7clf " corra el pro$rama. Lue$o cambie la instrucci#n por 7cla 0epita el ejercicio colocando al inal de las primeras dos instrucciones punto " coma. )ree un nue&o archi&o en el editor MUWILE " escriba las instrucciones si$uientes/ 7='/'.'5/5" y=sin(7)" 6=cos(7)" plot(7(y(7(6)

%uarde el archi&o anterior con el nombre EH<.m " c#rralo. )ambie la instrucci#n 7plot(x,y,x,z) por las si$uientes " corra el pro$rama en cada caso. plot(7(y(JMI(7(6(J*J) plot(7(y(I/J(7(6(J*yJ) plot(7(y(JrI(7(6(J.J)

)ree un nue&o archi&o en el editor MUWILE " copie las si$uientes instrucciones/ Fota/ Gara ahorrar tiempo copie " pe$ue las instrucciones usando las herramientas de edici#n. clc cl$ar" cl#" hol% o## 7='/'.'5/5 y=sin(7) plot(7(y) hol% on 6=cos(7) plot(7(6) hol% o##

%uarde el archi&o anterior con el nombre EH>.m " corra el pro$rama. Obser&e *ue la instrucci#n hold on permite el solapamiento de las $r icas de las unciones Q"Q " Q5Q. Teclee 7clc8 " lue$o 7enter8. 12u! obser&a3 )ree un nue&o archi&o EH?.m con las si$uientes instrucciones/ cl$ar(clc #print#(8=>?@9:@- ABCD>* !EnEn8)" whil$ ! #print#(8+$l$ccion$ la #unci<n a ,ra#icarEn8)" 6=input(8!. +in(7) 2. @os(7) 3. D7p(-7) /8)"#print#(8En8)" i# 6==! N 6==2 N 6==3 7='/'.'5/!'" i# 6==!( y=sin(7)"$n% i# 6==2( y=cos(7)"$n% i# 6==3( y=$7p(-7)"$n% plot(7(y)" u=input(8OP$s$a ,ra#icar nu$vam$nt$ (s/n)Q8(8s8)" i# u==8s8( clc"cla" $ls$ .r$a3" $n% $n% cl$ar"clc $n%

Ejecute el archi&o EH?.m desde el ambiente MATLAB " compruebe la utilidad de las instrucciones i 4 ,hile4 brea-4 end en un archi&o 7.m8. Obser&e *ue la orma de salir del la5o creado por la instrucci#n 7while es a tra&!s de la instrucci#n 7break.

)ree un nue&o archi&o EH@.m con las si$uientes instrucciones " pruebe con la unci#n sin4 cos " eLp +in$rese sin4 cos " eLp.. Obser&e *ue la instrucci#n 7fecal de ine un arre$lo unidimensional Q"Q e&aluando la unci#n Q5Q +de inida mediante la instrucci#n input por pantalla. en los &alores QLQ. cl$ar(clc #print#(8=>?@9:@- ABCD>* !EnEn8)" whil$ ! 6=input(8:n,r$s$ la #unci<n $n #ormato C-9R-S /8(8s8)"#print#(8En8)" 7='/'.'5/!'" y=#$val(6(7)" plot(7(y)" u=input(8OP$s$a ,ra#icar nu$vam$nt$ (s/n)Q8(8s8)" i# u==8s8( clc"cla" $ls$ .r$a3" $n% cl$ar"clc $n%

El si$uiente pro$rama permite in$resar una unci#n por pantalla. )ree un nue&o archi&o EHA.m con las si$uientes instrucciones. )olo*ue como entrada las unciones +L.6L.NLT: " +L.6sin+L.Tcos+L. T<@NeLp+UL.. La unci#n Oeval O reali5a la e&aluaci#n de la cadena de caracteres en los &alores del arre$lo OLO. cl$ar(clc #print#(8=>?@9:@- ABCD>* 2EnEn8)" whil$ ! 6=input(8:n,r$s$ la #unci<n #(7)/ 8(8s8)"#print#(8En8)" 7='/'.'5/!'" y=$val(6)" plot(7(y)" u=input(8OP$s$a in,r$sar otra #unci<n (s/n)Q8(8s8)" i# u==8s8( clc"cla" $ls$ .r$a3" $n% cl$ar"clc $n%

Se pueden crear e incluir en la librerIa del MATLAB unciones de inidas se$Kn los re*uerimientos del pro$ramador. )opie en un archi&o de nombre mi uncion.m el si$uiente c#di$o. #unction y=mi#uncion(7) y=s;rt(7.*7+!)-tan(7)"

Gara utili5ar la unci#n de inida anteriormente copie en el ambiente de trabajo MATLAB las si$uientes instrucciones. Obser&e *ue la uncion Qmi uncionQ tiene una raI5 entre H.D " :. 7='/'.'!/!.3" plot(7(mi#uncion(7)) ,ri% on

También podría gustarte