Ingmate03t4 Lab
Ingmate03t4 Lab
Ingmate03t4 Lab
Apellidos:
Procesamiento de
Señales, Sonido e
Imágenes Digitales Nombre:
Actividades
Objetivo
n = [-3:3];
x = e.^n;
stem(n,x);
2, 𝑛 = −2
−2, 𝑛=1
𝑥[𝑛] = 3, 𝑛=0
1, 𝑛=1
{0, resto
Entrega
Una señal continua se representa en Octave mediante vectores que contengan valores
muestreados de la señal en intervalos cortos. Para ello, habitualmente se define primero
el intervalo de muestreo ts (inct), habitualmente menor que la unidad, y después sus
variables dependientes e independientes.
inct = 0.1;
t = [-2:inct:3];
x = 0.5 * (sign(t) + 1);
plot(t,x);
axis([-2 3 -1 1])
También podemos etiquetar la gráfica función usando title, xlabel e ylabel. Por ejemplo:
title('x = escalon(t)');
xlabel('t (seg)');
ylabel('x(t)');
En Octave las muestras del eje de coordenadas (vertical) pueden ser números complejos,
en cuyo caso las operaciones stem y plot por defecto muestran la parte real. Los
comandos real, imag, abs y angle permiten calcular la parte real, imaginaria, módulo y
argumento de la función compleja discreta o continua que estemos representando.
n = -4:4;
x1 = exp(2.0/16.0*pi*n);
x2 = sin(2.0/16.0*pi*n);
hold off;
stem(n,x1);
hold on;
stem(n,x2,'Color','red', 'MarkerEdgeColor', 'red'); % El primer parámetro de color es el
color del segmento de la muestra y el segundo es el color del círculo de la muestra.
legend('exp(2*pi*n/16)', 'sin(2*pi*n/16)')
𝜋
𝑥(𝑡) = 𝑒 𝑗 4 𝑡
Para ello podemos usar las funciones Octave: real, imag, abs y angle.
Entrega
En la tarea anterior hemos visto que se podía parametrizar el color de las señales
representadas. Por ejemplo, para representar x(t)=sen(πt) en rojo, haríamos:
t= [-2*pi:0.1:2*pi];
x = sin(pi*t);
plot(t,x,'Color','red');
Utiliza Octave para representar, en 1 columna y 2 filas con subplot, las siguientes
señales en el rango de la variable independiente -10 a 10 con la señal discreta en color
por defecto y la señal continua en rojo:
14𝜋 14𝜋
𝑥1 (𝑡) = 𝑅𝑒 {𝑒 𝑗 16 𝑡 } 𝑥1 [𝑛] = 𝑅𝑒 {𝑒 𝑗 16 𝑛 }
1 1
𝑥2 (𝑡) = cos ( 𝑡) 𝑥2 [𝑛] = cos ( 𝑛)
4 4
En vista de los resultados obtenidos indica qué señales de las anteriores son periódicas
o aperiódicas. En las periódicas indique su periodo fundamental.
Entrega
𝑛 + 1, 0 ≤ 𝑛 ≤ 4 1, 0 ≤ 𝑛 ≤ 2
𝑥[𝑛] = { ℎ[𝑛] = {
0, resto 0, resto
Representa estas señales con subplot en n [0,10] usando dos filas y una columna.
Vamos a calcular la convolución y[n]=x[n]*h[n]. Para ello, observando que x[n] tiene
valor solo un en un rango finito [0,4], podemos escribir la suma de convolución como
suma de cinco términos:
Donde:
𝑦𝑚 [𝑛] = 𝑥[𝑚]ℎ[𝑛 − 𝑚]
Representa lo que ocurre con el valor en la posición x[m] (que corresponde a un escalar)
al pasarlo por un sistema con respuesta al impulso desplazada h[n-m] (que corresponde
a un vector). Lógicamente ym[n] también será un vector.
Para calcular h[n-m] deberás implementar una función en Octave que posteriormente
llamarás en el programa principal. Dicha función se almacenará como un fichero .m.
Para ello el fichero debe comenzar con la palabra reservada function y el nombre del
fichero coincidir con el de la función. Por ejemplo, podemos crear un fichero
real_imag.m con este contenido:
Las funciones en Octave pueden retornar más de un valor (en este ejemplo, dos valores)
y debemos asignar un valor a cada valor retornado antes de que acabe la función.
Posteriormente, para ejecutar la función, suponiendo que en X1 tengamos representada
una señal, obtendríamos su parte real (X1r) e imaginaria (X1i) haciendo:
[X1r,X1i] = real_imag(X1);
Después calcula las sumas parciales ym[n] en los vectores y0, y1, ... y4 y represéntalos
con subplot. Por ejemplo, para calcular y2 haríamos:
y2 = x(2+1).*desplaza(h,2);
𝑦[𝑛] = ∑ 𝑦𝑚 [𝑛]
𝑚
contrario revisa los apartados anteriores. Ten en cuenta que conv no define los índices
de la variable independiente, luego es nuestra responsabilidad determinar los índices
de los valores obtenidos.
Entrega
Rúbrica