1. Realizar el Laboratorio 1 del libro: https://ptolemy.berkeley.edu/~eal/publications/lab-manual.pdf L.1 Arreglos y Sonido L.1.1 Sección I Para obtener información sobre alguna función, utilizar el comando “help”. Ejemplo: >> help size 1. Una variable en MATLAB es una matriz. Una matriz tiene dimensiones N × M, donde N y M son enteros,. N es el número de filas y M es el número de columnas. Si N = M = 1, la variable es un escalar. Si N = 1 y M> 1, entonces la variable es un vector fila. Si N> 1 y M = 1, entonces la variable es un vector columna. Si tanto N como M son mayores que uno, entonces la variable es una matriz, y si N = M, entonces la variable es una matriz cuadrada. Los coeficientes de una matriz son números reales o complejos. (a) Cada uno de los siguientes comandos es una asignación de un valor a una variable llamada matriz. Para cada uno, identifique las dimensiones de la matriz (M y N), identifique si la variable es un escalar, un vector fila, un vector columna o una matriz ➢ ➢ ➢ ➢ ➢ ➢ ➢ array = [1 2 3 4 5] array = [1:5] array = 1:5 array = [1:1:5] array = [1:-1:-5] array = [1 2; 3 4] array = [1; 2; 3; 4] (b) Cree una matriz de 2 × 3 que contenga datos arbitrarios. Explore usando las funciones de MATLAB zeros, ones, eye y rand para crear la matriz. Encuentre una manera de usar la matriz cuadrada eye(2) como parte de su matriz de 2 × 3. Verifique los tamaños de sus matrices usando size. (c) Utilice el tamaño y la longitud de los comandos de MATLAB para determinar la longitud de los conjuntos dados por 1: 0.3: 10 y 1: 1: -1. Considere más generalmente el patrón para la creación de un array = start: step: stop, donde start, stop y step son variables escalares o números reales. ¿Cuántos elementos hay en el arreglo? De una expresión en MATLAB en términos de las variables start, stop y step. Es decir, deberíamos poder hacer lo siguiente: ➢ start = 1; ➢ stop = 5; ➢ step = 1; ➢ array = start:step:stop; Ahora evalúe su expresión por medio de: length(array). 2. MATLAB puede usarse como lenguaje de programación de propósito general. Sin embargo, a diferencia de un lenguaje de programación de uso general, tiene características especiales para operar con vectores y matrices, que lo hacen especialmente conveniente para modelar señales y sistemas. (a) En este ejercicio se usará Matlab para Calcular la siguiente sumatoria, usando un ciclo for.: 25 ∑ k k=0 (b) Use la función sum para dar una especificación más compacta de una línea de la suma en la parte (a). La diferencia entre estos dos enfoques. ilustra la diferencia entre usar MATLAB y usar un lenguaje de programación más tradicional. El bucle for está más cerca del estilo usaría con C ++ o Java. La función suma ilustra lo que MATLAB funciona mejor: operaciones compactas en matrices enteras. (c) En MATLAB, cualquier función integrada que opera en un escalar también puede operar en una matriz. Por ejemplo, ➢ sin(pi/4) ➢ sin([0 pi/4 pi/2 3*pi/4 pi]) Esta característica se llama vectorización. Use la vectorización para construir un vector que tabula los valores de la función sin para el conjunto {0, π / 10, 2π / 10, ..., π}. Use la notación de colon explorada en el ejercicio anterior. (d) Dadas dos matrices A y B que tienen las mismas dimensiones, MATLAB puede multiplicar los elementos de manera puntual utilizando el operador. *. Por ejemplo, ➢ [1 2 3 4].*[1 2 3 4] Usar esta multiplicación punto a punto para tabular los valores de sen2 θ para el conjunto {0, π/10, 2π/10, ... , π}. 3. Una señal de tiempo discreto puede ser aproximada en MATLAB por un vector (ya sea una fila o un vector columna). Para este este ejercicio, se construirán algunos de esos vectores y trazarlos. (a) Cree un arreglo que sea un vector de fila de longitud 36, con ceros en todas partes excepto en la posición 18, donde tiene el valor 1. (Sugerencia: intente ayudar con ceros para encontrar una manera de crear un vector de fila con sólo ceros y luego asignar el 18º elemento de este vector, el valor uno.) Esta matriz se aproxima a impulso de tiempo discreto, que es una señal que es cero en todas partes excepto en un punto de muestra. Usaremos impulsos para estudiar sistemas lineales. Dibujar la señal de impulso, usando tanto la función plot como stem. (b) Dibujar a mano la onda sinusoidal x: [−1, 1] → Reales, dada por ∀ t ∈ [−1, 1], x (t) = sin (2π × 5t + π / 6). En su boceto, trace cuidadosamente el valor en el momento 0. Asuma el dominio representa el tiempo en segundos. ¿Cuál es la frecuencia de esta onda sinusoidal en Hertz y en radianes por segundo, cuál es su período en segundos y cómo Cuántos ciclos completos hay en el intervalo [−1, 1]? (c) Muestree la función x de la parte anterior a 8 kHz, y usando MATLAB, graficar las muestras para todo el intervalo [−1, 1]. Cuántas muestras hay? (d) Cambie la frecuencia de la onda sinusoidal de la sección anterior a 440 Hz y graficar la señal para el intervalo [−1, 1]. ¿Por qué es difícil de leer? Trace solo las muestras que se encuentran en el intervalo [0, 0.01] (esto es un Intervalo de 10 ms). (e) El sonido de la función MATLAB (ver help sound) con sintaxis ➢ sound (SeñalMuestreada, frecuencia) envía la matriz unidimensional o el vector muestreado SeñalMuestreada tarjeta de audio del PC. El segundo argumento especifica la frecuencia de muestreo en Hertz. Se supone que los valores en SeñalMuestreada son números reales en el rango [−1.0, 1.0]. Los valores fuera de este rango se recortan a −1.0 o 1.0. Use esta función para escuchar la señal que creó en el anterior parte. Escuche tanto un intervalo de 10 ms como un intervalo de 2 segundos. Describir qué se escucha. (f) Escuchar ➢ sound (0.5 * SeñalMuestreada, frecuencia) ➢ sound (2 * SeñalMuestreada, frecuencia) donde sampledSignal es la señal que creó en la parte (d) anterior. Explique de qué manera son diferentes de lo que escuchó en la versión anterior parte. Escucha a ➢ sound (SeñalMuestreada, frecuencia/2) ➢ sound (SeñalMuestreada, frecuencia*2) Explicar porqué son diferentes L.1.2 Sección II 1. Use MATLAB para graficar las siguientes funciones continuas en el tiempo f : [−0.1, 0.1]→Reales: ➢ ∀ t ∈ [−0.1, 0.1], f(t) = sin(2π × 100t) ➢ ∀ t ∈ [−0.1, 0.1], f(t) = exp(−10t) sin(2π × 100t) ➢ ∀ t ∈ [−0.1, 0.1], f(t) = exp(10t) sin(2π × 100t) El primero de ellos es una señal sinusoidal normal. El segundo es una señal sinusoidal con una envolvente exponencial decreciente. El tercero es una señal sinusoidal con una envolvente exponencial creciente. Elija un período de muestreo para que las gráficas se acerquen a funciones en tiempo continuo. Explicar la elección del período de muestreo. Usar subplot para trazar las tres funciones en un mosaico. Incluya la figura en su informe de laboratorio. 2. Usar MATLAB para escuchar una forma de onda sinusoidal de un segundo escalada por un exponencial decreciente dada por ➢ ∀ t ∈ [0, 1], f (t) = exp (−5t) sin (2π × 440t). Use una frecuencia de muestreo de 8,000 muestras / segundo. Describa cómo es este sonido diferente de los sonidos sinusoidales que escuchó en la sección en el laboratorio. 3. Construya una señal de sonido que consista en una secuencia de sinusoides de medio segundo con envolventes decrecientes exponencialmente, como en la parte anterior, pero con un secuencia de frecuencias: 494, 440, 392, 440, 494, 494 y 494. Escuchar el sonido. ¿Puede identificar la melodía? En su informe de laboratorio, entregue los comandos de MATLAB que producen el sonido. 4.Este ejercicio explora la relación entre las funciones de MATLAB y funciones matemáticas LABORATORIO 2 (a) Escriba un programa en MATLAB para generar y mostrar (usando la función stem) las señales: ➢ ➢ ➢ ➢ ➢ ➢ Dirac (respuesta de la unidad) Paso de unidad (paso de Heaviside) Firmar Rectángulo Seno Cardinal sinusoidal (b) Escriba una función en MATLAB [x, t] = sin_NU (f0, fs, T) para generar una señal sinusoidal. Los parámetros de salida x y t son los vectores de amplitud y tiempo, respectivamente. Los parámetros de entrada son f0 (frecuencia de la señal en Hz), fs (frecuencia de muestreo en Hz), T (duración de la señal en segundos). (c) Pruebe su función sin_NU con los valores de los parámetros de entrada ... y muestre el resultado utilizando la función de trazado. Para ilustrar el fenómeno de aliasing, realizamos dos experimentos simples que nos permitan "escucharlo". Usando la función sin_NU del ejercicio 1: (a) Genere dos señales sinusoidales de 1 kHz (duración de 2 segundos), la primera señal a la frecuencia de muestreo de 20 kHz y la segunda señal a la frecuencia de muestreo de 1.5 kHz; (b) En el mismo gráfico, use la función de trazado para mostrar las dos señales versus t en el rango 0 <t <5 mseg .; (c) Escuche las dos señales una tras otra utilizando la función soundsc (x, fs); y (d) Dé su interpretación de esta escucha. Ejercicio 2.3: cuantización La cuantización se realiza reemplazando cada valor de una señal analógica x (t) por el valor del nivel de cuantificación más cercano. Para ejemplificar esta operación, simulemos un ADC (convertidor analógico a digital) unipolar que tenga las especificaciones técnicas: R = 10 voltios (rango de escala completa) y B = 3 (número de bits). (a) Escriba una función MATLAB y = adc_NU (x, R, B) donde x e y son vectores que contienen la señal de entrada y la señal cuantificada, respectivamente; (b) Pruebe su función con una señal de rampa de entrada que varía de -5 a 15 voltios (1 voltio por paso); y (c) En el mismo gráfico, use las funciones de trazado y de vástago para mostrar la señal de entrada y la señal cuantificada, respectivamente. Cite As Sanzhar Askaruly (2020). Lab 1 - Digital Signal Processing. Sampling and Quantization (https://www.mathworks.com/matlabcentral/fileexchange/54530-lab-1-digital-signal-proc essing-sampling-and-quantization), MATLAB Central File Exchange. Retrieved February 18, 2020.