Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En general, un sistema DSP toma una señal discreta de entrada, la procesa y genera una señal discreta de
salida. En esta práctica se muestran los procedimientos elementales para generar señales discretas en octave
1. Objetivos
Generar señales discretas en el dominio del tiempo.
Aplicar algunos comandos básicos de octave en problemas simples de DSP.
2. Conceptos teóricos
Señales discretas. Muestras.
Señales de duración finita.
Periodicidad.
Energı́a.
Potencia media.
Secuencias impulso y escalón.
Secuencia exponencial.
Secuencia senoidal real.
Secuencia exponencial compleja.
Periodicidad de las secuencias senoidales y exponenciales complejas.
3. Generación de secuencias
3.1. Secuencias impulso y escalón
% Programa p01_31
% Generación de una secuencia impulso
clf
% genera un vector desde -10 hasta 20
n = -10:20;
% genera una secuencia impulso unitario
1
u = [zeros(1,10) 1 zeros(1,20)];
% plot la secuencia impulso
stem(n,u);
xlabel(’Tiempo n’); ylabel(’Amplitud’);
title(’Secuencia impulso unitario’);
axis([-10 20 0 1.2]);
Ejercicios
1. Ejecute el programa p01 31
2. ¿Para qué sirven los comandos clf, clear, axis, title, xlabel, ylabel?
3. Modifique el programa p01 31 para que genere una secuencia impulso unitario retardado 11 muestras
ud[n].
4. Modifique el programa p01 31 para que genere un escalón unitario s[n].
5. Modifique el programa para que genere un escalón unitario retardado 7 muestras sd[n].
clear;
clf;
c = -(1/12)+(pi/6)*i;
K = 2;
n = 0:40;
x = K*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
xlabel(’Tiempo n’);ylabel(’Amplitud’);
title(’Parte real’);
subplot(2,1,2);
stem(n,imag(x));
xlabel(’Tiempo n’);ylabel(’Amplitud’);
title(’Parte imaginaria’);
% Programa p01_322
% Generacion de una secuencia exponencial real
clf;
n = 0:35; a = 1.2; K = 0.2;
x = K*a.^+n;
stem(n,x);
xlabel(’Tiempo n’);ylabel(’Amplitud’);
Ejercicios
1. Ejecute el programa p01 321
2. ¿Qué parámetro controla el crecimiento o decrecimiento de la secuencia? ¿Qué parámetro controla la
amplitud?
2
3. ¿Qué ocurre si el valor del parámetro c se cambia a (1/12)+(pi/6)*i?
4. ¿Para qué sirven los operadores real e imag?
11. La energı́a de una secuencia s[n] almacenada en el vector s puede ser calculada mediante el comando
sum(s.*s). Evalúe la energı́a de las secuencias x[n] generadas en los ejercicios 6 y 9
n = 0:40;
f = 0.1;
phase = 0;
A = 1.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Lı́mpia la gráfica antigua
stem(n,x); % Representa la secuencia
axis([0 40 -2 2]);
grid;
title(’Sinusoidal Sequence’);
xlabel(’Time index n’);
ylabel(’Amplitude’);
axis;
Ejercicios
1. Ejecute el programa p01 33
2. ¿Cuánto vale la frecuencia de esta secuencia y cómo se puede cambiar su valor? ¿Qué parámetro controla
la fase? ¿Qué parámetro controla la amplitud? ¿Cuánto vale el periodo de esta secuencia?
3. ¿Cuánto vale la longitud de esta secuencia y cómo se puede cambiar?
4. Calcule la potencia media de la secuencia generada.
3
7. Modifique el programa para generar una secuencia de longitud 50, frecuencia 0.08, amplitud 2.5 y fase
π/2 rad. Trace la gráfica. ¿Cuánto vale el periodo de la secuencia?
8. Reemplace el comando stem en el programa p01 34 por el comando plot y vuelva a ejecutar el programa.
¿Cuál es la diferencia entre este gráfico y el generado en el ejercicio 1?
9. Reemplace el comando stem en el programa p01 34 por el comando stairs y vuelva a ejecutar el programa.
¿Cuál es la diferencia entre este gráfico y los generados en los ejercicios 1 y 8?
Del mismo modo, una secuencia aleatoria de longitud N con una distribución normal, de media 0 y varianza
unidad se puede obtener mediante el comando
x = randn(1,N)
Ejercicios
1. Escriba un programa para generar y trazar la gráfica de una secuencia aleatoria de longitud 100 y cuyas
muestras estén uniformemente distribuidas en el intervalo [-2, 2].
2. Escriba un programa para generar y trazar la gráfica de cinco secuencias senoidales de longitud 31
X[n] = A · cos(ω0 n + φ)
donde la amplitud A la fase φ son variables aleatorias de distribución uniforme en el rango 0 ≤ A ≤ 4 para
la amplitud y 0 ≤ φ ≤ 2π para la fase.
4. Presentación de resultados
El formato de presentación de resultados es libre. Se valorará la claridad y la presentación. No obstante, se
deben cumplir las siguientes condiciones mı́nimas:
1. Todos los ficheros de código en octave deberán ser incluidos en una carpeta de nombre src.
2. Los nombres de los ficheros deben hacer referencia al apartado con el que se corresponden. Por ejemplo, el
código correspondiente al programa p01 31 ejercicio 1 se puede nombrar como p01 31 1.m. Aténgase a la
convención 8.1, es decir, un máximo de 8 caracteres para el nombre y para la extensión, simplemente la
letra m. No utilice ningún caracter que no pertenezca al alfabeto inglés.
3. Se debe incluir un fichero PDF (evite cualquier otro tipo de formato) en el que explique la resolución de
los ejercicios de la práctica e incluya los gráficos, código fuente, y cualquier otro contenido que considere
de interés.
Todos los ficheros de la práctica deben ser empaquetados en un único fichero comprimido de formato ZIP (o
tar.gz, si trabaja en linux), cuyo nombre debe indicar el nombre de los alumnos y el número de la páctica. Este
fichero debe ser entregado a través de la plataforma moodle.