Está en la página 1de 4

Universidad de Castilla-La Mancha

Escuela Técnica Superior de Ingenieros Industriales


Grado en Ingenierı́a Electrónica Industrial y Automática

Procesado Digital de Señales


Prof.: Alejandro Lucas Borja

Práctica 1.- Generación de señales discretas en el dominio del tiempo

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].

3.2. Secuencias exponenciales


% Programa p01_321
% Generacion de una secuencia exponencial compleja

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?

5. ¿Para qué sirve el comando subplot?


6. Ejecute el programa p01 322
7. ¿Qué parámetro controla el crecimiento o decrecimiento de la secuencia? ¿Qué parámetro controla la
amplitud?

8. ¿Cuál es la diferencia entre los operadores ^ y .^?


9. ¿Qué ocurre si el valor del parámetro a es menor que 1? Ejecute el programa con el valor de a = 0.9 y el
de K = 20
10. ¿Cuál es la longitud de esta secuencia y cómo puede ser cambiada?

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

3.3. Secuencias senoidales


% Programa p01_33
% Generación de una secuencia senoidal

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.

5. ¿Para qué sirven los comandos axis y grid?


6. Modifique el programa p01 33 para generar una secuencia senoidal de frecuencia 0.9 y trace la gráfica.
Compárela con la generada en el ejercicio 1. Después, modifique el programa para generar una secuencia
senoidal de frecuencia 1.1 y trace la gráfica. Compárela con la generada en el ejercicio 1. Comente los
resultados.

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?

3.4. Secuencias aleatorias


Una secuencia aleatoria de longitud N con muestras distribuidas uniformemente en el intervalo (0, 1) se
puede generar en octave mediante el comando
x = rand(1,N)

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.

También podría gustarte