pds tarea lab i 2015 ii
DESCRIPTION
tarea del curso del octavo ciclo de la universidad nacional mayor de san marcos, de la facultad de ingenieria electronica y electrica.TRANSCRIPT
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMERICA)
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
E.A.P. INGENIERÍA ELECTRÓNICA
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES
A menos que se indique lo contrario, es posible asumir que a cada función se le dé el número correcto de entradas y que esas entradas tengan las dimensiones correctas. Por ejemplo, si la entrada se especifica para que sea conformada por tres vectores fila de cuatro elementos cada uno, su función no está obligada a determinar si la entrada se compone de tres arreglos bidimensionales, cada uno con una fila y cuatro columnas.
A menos que se indique lo contrario, su función no debe imprimir cualquier cosa en la Ventana de Comandos, pero su función no será contabilizada como incorrecta si lo hace.
Tenga en cuenta que no está obligado a utilizar los nombres sugeridos de las variables de entrada y las variables de salida, pero debe utilizar los nombres de las funciones especificadas.
----------------------------------------------------------------------------------------------------------------------------
(1) Escriba una función llamada tiempo_sonido que toma como entrada un vector fila de las
distancias en metros y devuelve dos vectores fila de la misma longitud. Cada elemento del primer argumento de salida es el tiempo en milisegundos que el sonido tardaría en recorrer la distancia especificada por el vector de entrada correspondiente. Para comprobar la tarea, verifique que se requiere de 10 milisegundos para que un pulso de sonido emitido por un sensor de ultrasonido transmisor llegue al sensor de ultrasonido receptor distante a 3.4 metros de distancia. La segunda salida contiene la distancia entre los dos sensores de ultrasonido convertido a centímetros. Suponga que la velocidad del sonido es de 340.00 m/seg. (2) Escriba una función llamada valor_medio_cuadratico que devuelve m, que es el valor medio
del cuadrado de los primeros números enteros positivos n, donde n es un número entero positivo y es el
único argumento de entrada. Por ejemplo, si n es 5, la función tiene que calcular el promedio de los números 1, 4, 9, 16 y 25. Se puede utilizar cualquiera de las funciones integradas que incluyen, por ejemplo, sum.
(3) Considere la definición: function [s1, s2, sumas] = senos (pts, amp, n1, n2).
La entrada, pts, es un número entero, pero amp, n1, y n2 no son necesariamente números enteros. El
argumento de salida s1 es un vector fila cuya longitud (número de elementos) es igual a pts. Los elementos
de s1 son los valores de la función coseno cuando se le da los argumentos igualmente espaciados que
comiencen en cero y se extiendan a través de n1 períodos del seno (Tenga en cuenta que el requerimiento es
para períodos completos, así es que si n1 es un número entero, tanto el primero como el último elemento de
s1 será 0 y que sea de un error muy pequeño) (Sugerencia: si tiene que hacer una valla recta de 100 metros
TAREA DEL LABORATORIO NO.1: INTRODUCCIÓN A MATLAB.
con segmentos de 10m de largo, cuántos segmentos se necesita?). La amplitud de la onda senoidal es igual a
amp. El vector s2 es el mismo que s1 excepto que s2 contiene n2 periodos. Los vectores sumas son la
suma de s1 y s2. Si se omite n2, entonces debe ser ajustado a un valor mayor al 5% de n1. Si n1 también se
omite, entonces se le debe establecer en 100. Si amp no se proporciona, entonces por defecto deberá ser
fijado en 1. Finalmente, si pts se omite, entonces se debe establecer en 1000. Si ejecuta senos como se
muestra en la figura y trazar la grafica del tercer argumento de salida, sumas, las figuras resultantes deben
verse como estos (si estiras las ventanas de la grafica en forma horizontal):
[s1, s2, sumas] = senos(10,1,2,3); [s1,s2,sumas] = senos(1000,1,50,52);
(4) Escriba una función llamada promedio_movil que toma un escalar llamada x como argumento de
entrada y devuelve un escalar. El valor que devuelve depende no sólo de la entrada, sino también de las entradas anteriores a esta misma función cuando la función es llamada repetidamente. Ese valor devuelto es el "promedio móvil" de esas entradas. La función utiliza un "buffer" para retener las entradas anteriores, y el buffer pueda almacenar un máximo de 25 entradas. Específicamente, la función debe almacenar las 25 entradas más recientes en un vector (el buffer) que es una variable persistente dentro de la función. Cada vez que la función es llamada, se copia el argumento de entrada en un elemento de la memoria del buffer. Si ya existen 25 entradas almacenadas en el buffer, se descarta el elemento más antiguo y se guarda el actual en el buffer. Después de que ha almacenado la entrada en el buffer, se devuelve el valor medio de todos los elementos del buffer. Por lo tanto, para cada una de las primeras 24 llamadas a la función, la función utiliza sólo las entradas que ha recibido hasta ahora para determinar la media (por ejemplo, la primera llamada
simplemente devuelve x, la segunda llamada el promedio de x y la entrada de la primera llamada , etc.), y después de eso, devuelve el promedio de las 25 entradas más recientes. (5) Escriba una función llamada onda_cuadrada que calcula la suma:
1
2 1
2 1
n
k
sen k t
k
Para cada 1001 valores de t uniformemente espaciados desde 0 a 4π inclusive. El argumento de entrada es un escalar entero positivo n, y el argumento de salida es un vector fila de 1001 de tales sumas, una suma por cada valor de t. Verificar la función construida llamándolo con n = 200 o más y graficando el resultado, y ver por que la función es llamada “onda_cuadrada”. (6) Escriba una función llamada cuenta_letras que lleva el nombre de un archivo de texto como entrada
y devuelve el número de letras del texto (es decir, cualquiera de los personajes, a-a-z y de A-a-Z) que contiene
el archivo. SUGERENCIA: Puede utilizar la función isletter incorporado. Si hay un problema al abrir el
archivo, la función devuelve -1. ADVERTENCIA: si utiliza el flag ’w’ con fopen, en oposición a 'r', se
sobrescribirá el archivo.