Está en la página 1de 7

Señales y Sistemas discretos en el tiempo

Procesamiento Digital de Señales

Mauricio Loja, Hans Grijalva


Departamento de Eléctrica y electrónica
Universidad de las Fuerzas Armadas
ESPE
Sangolquí, Ecuador
mmloja@espe.edu.ec, hrgrijalva@espe.edu.ec

Abstract—Below is an analysis of signals and time discrete


systems using simulation, in this case Matlab software, use the
different commands that offers this software sophisticated
mathematical analysis.
Resumen—A continuación, se realiza un análisis de señales y
sistemas discretos en el tiempo utilizando software de
simulación, en este caso Matlab, se emplea los diversos
comandos que ofrece este software sofisticado para el análisis
matemático.

Palabras Clave—Señal, convolución, procesamiento, filtro.

I. INTRODUCCIÓN
Las señales pueden ser discretas en el tiempo o continuas.
Si se habla, por ejemplo, la voz es una señal continua en el
tiempo, pero al querer transmitir esa señal en el mundo
tecnológico se convierte en señal discreta y así poder
transmitirla a cualquier lugar, entonces, las señales discretas Figura 1. Gráfico de x(t) utilizando el comando stem.
son las que se deben analizar para así saber su
comportamiento.  conv: Realiza la convolución discreta de dos secuencias.
Parámetros de entrada: los vectores a y b sostienen las dos
II. PROCEDIMIENTO secuencias
A. Señales discretas en el tiempo y sistemas con Matlab Parámetros de salida: el vector y mantiene la convolución de a y b.

La caja de herramientas de procesamiento de señales de Sintaxis:


Matlab tiene varias funciones que ayudan en el o w = conv(u,v).- Devuelve la convolución de vectores uy v.
procesamiento de señales discretas. En esta sección se da una
breve descripción de los que están más estrechamente o w = conv(u,v,shape).- devuelve una subsección de la
convolución, según lo especificado por shape.
relacionados al material en este laboratorio.
Ejemplo:
 stem: Taza de una secuencia de datos como raíces del eje x
terminando en círculos como en las parcelas de señales de
𝑎 = [11111]; 𝑏 = [123456789]; 𝑐 = conv(𝑎, 𝑏); 𝑠𝑡𝑒𝑚(𝑐);
tiempo discreto.
Parámetros de entrada:
 Los valores de ordenada t en los que se trazarán los
datos.
 Los valores de datos x que se trazarán.
Sintaxis:
o stem(Y)
o stem(X,Y)
o stem(___,'filled').- Rellena los círculos. Utilice esta
opción con cualquiera de las combinaciones del
argumento de entrada en las sintaxis anteriores.
o stem(___,LineSpec).- Especifica el estilo de línea,
símbolo de marcador y el color.
o stem(___,Name,Value).- Modifica la tabla de stem
usando uno o más nombres, argumentos de valor par.
o stem(ax,___)
o h = stem(___)

Ejemplo:
𝑡 = [0: 0,1: 2]; 𝑥 = cos(𝜋 ∗ 𝑡 + 0,6); 𝑠𝑡𝑒𝑚(𝑡, 𝑥); Figura 2. Convolución de a y b utilizando el comando "conv".

 impz: Calcula la respuesta de impulso de un sistema inicialmente


relajado descrito por una diferencia ecuación de rence.
El proceso de muestreo se puede ver como un mapeo de una
Parámetros de entrada: función de tiempo continuo en un conjunto de muestras de tiempo
 Un vector b que contiene los valores de 𝑏𝑙 , para 𝑙 = 0,1, … , 𝑀; discreto. En general, sin embargo, hay infinitas funciones que
 Un vector a que contiene los valores de 𝑎𝑖 , para 𝑖 = 0,1, … , 𝑁 pueden generar el mismo conjunto de muestras. Para ilustrar tal
 El numero deseado de muestras n de la respuesta al impulso. noción, considere una función general 𝑓1 (𝑡). Utilizando una
frecuencia de muestreo de muestras de 𝑓𝑠 por segundo, el proceso
Parámetro de salida: de muestreo produce el tiempo discreto función 𝑓1 (𝑛𝑇𝑠 ), con 𝑇𝑠 =
1/𝑓𝑠 y entero n.
o Un vector h que contiene la respuesta de impulso del sistema.
Considere la función:
Ejemplo:
𝑓1 (𝑡) = cos(2𝜋3𝑡) ; 𝑓𝑠 = 10
Una lista muestra idéntica se puede obtener, con el mismo
𝑎[1 − 0,22 − 0,21 0,017 0,01]; 𝑏 = [1 2 1]; intervalo de frecuencia de muestreo y el tiempo, a partir de una
ℎ = impz(𝑏, 𝑎, 20); 𝑠𝑡𝑒𝑚(ℎ); función:

𝑓2 (𝑡) = cos(2𝜋7𝑡) ;

Comandos en Matlab:

time = 0:0.1:0.9;
f_1 = cos(2*pi*3.*time);
f_2 = cos(2*pi*7.*time);
time_aux = 0:0.001:(1-0.001);
figure(1);
stem(time,f_1);
hold on;
plot(time_aux, cos(2*pi*3.*time_aux));
hold off;
figure(2);
stem(time,f_2);
hold on;
plot(time_aux, cos(2*pi*7.*time_aux));
hold off;
Figura 3. Respuesta de impulso de un sistema utilizando el
comando "impz".

B. Sistemas recursivos
Lo más notorio dentro de esta simulación es como
trabaja MatLab, es decir en la parte matemática se
acostumbra a trabajar desde el punto cero de la gráfica,
pero en MatLab se trabaja desde el punto uno. Esto es y
se debe tener en consideración para próximas
simulaciones.
Ejemplo:
Encuentra la respuesta al impulso del sistema:
Figura 5. f_1(t)
1
𝑦[𝑛] − 𝑦[𝑛 − 1] = 𝑥[𝑛]

Suponiendo que está inicialmente relajada, con α=1.15
y 0<n<30.

Figura 6. f_2(t)

Para eliminar la ambigüedad se ilustra en este ejemplo, hay que hacer


referencia al teorema de muestreo. Ese resultado
indica que una función coseno 7 Hz no se tomará una muestra con F s =
10 Hz, ya que la frecuencia de muestreo mínima en este
Figura 4. Respuesta al impulso. caso debe estar por encima F s = 14 Hz. Por lo tanto, si criterio de
muestreo de Nyquist se satisface, sólo hay una función de tiempo
C. Muestreo continúo asociada con un conjunto dado de muestras discretas en el
tiempo y una frecuencia de muestreo particular.
D. Filtrado y ruido
Cuando se ingresa una señal cualquiera por un sistema,
esta tiende a mezclarse con ruido, para obtener una salida
adecuada es necesario filtrar la señal, en el caso de MatLab
usando el comando filter, se puede encontrar una forma de
volver a reconstruir nuestra señal original, de la mejor
manera posible.

b = ones(1,N);
y = filter(b,1,x_noisy);

Según N aumente la técnica para reducir el ruido es


bastante efectiva, sin embargo, si N es muy grande el Figura 10. Señal filtrada con N=9
procedimiento elimina la componente que tiene frecuencias
altas de la sinodal. Para N=3 se ve que la señal filtrada aún contiene mucho
ruido, simulando para diferentes N, se comprobó que para N=9
la señal filtrada se asemeja mucho a la señal original, y a partir
N≥12 la señal empezaba a perder componentes de altas
frecuencias.

III. EJERCICIOS ADICIONALES

A. Ejercicio 1
Calcule la suma de convolución del siguiente par de
secuencias usando la función Matlab conv:

1 0≤𝑛≤2
Figura 7. Señal Original 0 0≤𝑛≤6 1 0≤𝑛≤4
𝑥[𝑛] = { 𝑦 ℎ[𝑛] = {
1 7≤𝑛≤8 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
Resolución
Código en Matlab

x = [1 1 1 0 0 0 0 1 1 0 0];
figure;
stem(x);
title('Entrada x[n]')
xlabel('n');
ylabel('x[n]');
h= [0 1 2 3 4 0 0];
figure;
stem(h);
title('h[n]')
Figura 8. Señal con ruido xlabel('n');
ylabel('h[n]');
y = conv(x,h)
figure;
stem(y);
title('Salida y[n]')
xlabel('n');
ylabel('y[n]');

Gráficos

Figura 9. Señal filtrada con N=3


figure;
stem(y)
title('Salida y[n]');

Gráficos:

Figura 11. Señal de entrada x[n]

Figura 14. Entrada x[n]

Figura 12. h[n]

Figura 15. Salida y[n]

3. Escriba un programa en Matlab para trazar las muestras de las


soluciones de la siguiente diferencia de ecuaciones de n=0 a
n=20:

𝑦[𝑛] + 2𝑦[𝑛 − 1] + 𝑦[𝑛 − 2] = 0, 𝑦[0] = 1 𝑦 𝑦[1] = 0

𝑦[𝑛] + 𝑦[𝑛 − 1] + 2𝑦[𝑛 − 2] = 0, 𝑦[−1] = 1 𝑦 𝑦[0] = 1


Figura 13. Señal de salida y[n]
Resolución:

z=zeros(1,20);
2. Calcule 𝑦[𝑛] = 𝑥[𝑛] ∗ 𝑥[𝑛] ∗ 𝑥[𝑛] ∗ 𝑥[𝑛] usando la valIni1=filtic([0 0 0],[1 2 1],[1 0]);
función de Matlab conv para la secuencia: y=filter([0 0 0],[1 2 1],z,valIni1);
figure
stem(1:20,y)
1,0 ≤ 𝑛 ≤ 4 title ('Salida y1[n]')
𝑥[𝑛] = { valIni2 = filtic ([0, 0, 0],[1, 1,
0, 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
Resolución: 2],[1,0]);
y =filter ([0, 0, 0],[1, 1,
x = [1 1 0 0]; 2],z,valIni2);
figure; figure
stem(x); stem(1:20,y)
title('Entrada x[n]') title 'Salida y2[n]';
xlabel('n');
ylabel('x[n]');
y=conv(x,x); Gráficos
y=conv(y,x);
y=conv(y,x);
Figura 16. Gráfico de salida para la ecuación 1 Figura 18. Gráfico respuesta al impulso Ec. 1

Figura 19. Gráfico respuesta al impulso Ec. 2


Figura 17. Gráfico de salida para la ecuación 2

4. Escriba un programa de Matlab para calcular las 5. Escriba un programa en Matlab para trazar la respuestas de
respuestas de impulso de los sistemas descritos por la estado estable para la entrada 𝑥[𝑛] = 𝑠𝑖𝑛(𝑤𝑛)𝑢[𝑛] de los
siguiente ecuación de diferencia. filtros descritos por las siguientes tres ecuaciones de
diferencia. Configure 𝑤1 = 𝜋⁄3 y 𝑤2 = 𝜋:
a. 𝑦[𝑛] = 𝑥[𝑛 − 2] + 𝑥[𝑛 − 1] + 𝑥[𝑛]
a. 𝑦[𝑛] + 𝑦[𝑛 − 1] + 𝑦[𝑛 − 2] = 𝑥[𝑛] 1
b. 𝑦[𝑛] − 𝑦[𝑛 − 1] = 𝑥[𝑛]
2
c. 𝑦[𝑛] = 𝑥[𝑛 − 2] + 2𝑥[𝑛 − 1] + 𝑥[𝑛]
b. 4𝑦[𝑛] + 𝑦[𝑛 − 1] + 3𝑦[𝑛 − 2] =
𝑥[𝑛] + 𝑥[𝑛 − 4] Resolución:
Resolución:

N=20; a)
a=[1 1 1]; t=30;
b=1; for i=1:t
z=impz(b,a,N); x_1(i)=sin(pi/3*(i-1));
figure end
stem(z) for i=1:t
title('Respuesta al impulso y1[n]'); x_2(i)=sin(pi*(i-1));
end
a=[4 1 3]; y_1=filter([1 1 1],1, x_1);
b=[1 0 0 1]; y_2=filter([1 1 1],1, x_2);
z=impz(b,a,N); subplot(2,1,1);
figure stem(0:29,y_1,'g'),title 'Para w1=pi/3';
stem(z) subplot(2,1,2);
title('Respuesta al impulso y2[n]'); stem(0:29,y_2,'r'),title 'Para w2=pi';

Gráficos
` Gráfico
Gráfico

Figura 20. Respuesta en estado estacionario 1


Figura 22. Respuesta en estado estacionario 3
b)
for i=1:t
x_1(i)=sin(pi/3*(i-1));
end 6. Supongamos que queremos procesar la señal de tiempo continuo
for i=1:t 𝑥𝑎 (𝑡) = 3 cos(2𝜋1000𝑡) + 7 sin(2𝜋1100𝑡) usando un Sistema de
x_2(i)=sin(pi*(i-1)); tiempo discreto. La frecuencia de muestreo utilizada es de 4000
end muestras por segundo. El procesamiento en tiempos discreto llevado a
y_1=filter(1,[1 -1/2], x_1); cabo en las muestras de la señal 𝑥[𝑛] se describe por la siguiente
y_2=filter(1,[1 -1/2], x_2); ecuación de diferencia 𝑦[𝑛] = 𝑥[𝑛] + 𝑥[𝑛 − 2].
figure
subplot(2,1,1); Después del procesamiento, las muestras de la salida 𝑦[𝑛] se
stem(0:29,y_1,'r'),title 'Para w1=pi/3'; convierten nuevamente a la forma de tiempo continuo. Escribir un
subplot(2,1,2); programa en Matlab para realizar una simulación de la solución de
stem(0:29,y_2,'c'),title 'Para w2=pi'; este problema e interpretar el efecto que este procesamiento tiene en
la señal de entrada. Sugerencias:
Gráfico  Simula las señales en tiempo continuo 𝑥𝑎 (𝑡) en Matlab usando
secuencias por muestrearlos a 100 veces la frecuencia de
muestreo, es decir, como 𝑓𝑠 (𝑚) = 𝑓𝑎 (𝑚(𝑇/100)) muestras de
la secuencia original, formando la señal 𝑓(𝑛) = 𝑓𝑠(100𝑛) =
𝑓𝑎 (𝑛𝑇).
 La interpolación de 𝑦𝑎 (𝑛𝑇) se puede aproximar truncando cada
función.
1
[sin 𝜋 ( − 𝑛)]
𝑇
1
𝜋 ( − 𝑛)
𝑇

Considerando que son cero fuera del intervalo de tiempo nT -10T≤ t


≤ nT + 10T. Tenga en cuenta que, dado que estamos truncando las
funciones de interpolación, la suma de la interpolación debe llevarse
a cabo sólo por unos pocos términos.
Figura 21. Respuesta en estado estacionario 2
Resolución:

f1=1000;
f2=1100;
c) . fp=gcd(f1,f2);
T=1/fp;
for i=1:t fs=4000;
x_1(i)=sin(pi/3 * (i-1)); fm=100*fs;
end t=0:1/fm:T;
for i=1:t xt=3*sin(2*pi*f1*t)+7*sin(2*pi*f2*t);
x_2(i)=sin(pi*(i-1)); n=0:1:T*fs;
end xn=3*sin(2*pi*f1*n./fs)+7*sin(2*pi*f2*n./fs);
y_1=filter([1 2 1],1, x_1); %Determinacion del valo de h
y_2=filter([1 2 1],1, x_2); N=5;
figure h=impz([1 0 1],1,N);
subplot(2,1,1); yn=conv(xn,h);
stem(0:29,y_1,'r');title 'Paraw1=pi/3';
n1=0:length(yn)-1;
subplot(2,1,2); %Graficas
stem(0:29,y_2,'b'),title 'Para w2=pi'; figure(1)
plot(t,xt)
hold on;
title('Senal Analogica x[n]')
xlabel('t')
ylabel('x(t)')
hold off;
figure(2)
stem(n,xn)
hold on;
title('Secuencia x[n]')
xlabel('n')
ylabel('x[n]')
hold off;
figure(3)
stem(n1,yn)
hold on;
title('Secuencia y[n]') Figura 25. Señal de salida muestreada
xlabel('n')
ylabel('y[n]') IV. CONCLUSIONES Y RECOMENDACIONES
hold off;
o El análisis de señales discretas en el tiempo mediante el software
Matlab es muy completo ya que nos da herramientas necesarias y
comandos para poder hacer un análisis más profundo y poder
obtener información importante.
o Las señales periódicas tienen diferentes aplicaciones y es por ello
que el experimentar a nivel de software es muy importante.
Gráfico o Se ha entendido la funcionalidad de los diversos comandos
existentes en Matlab para el procesamiento de señales discretas.
o Es importante definir la extensión de los ejes para observar
el gráfico con claridad.

REFERENCIAS

[1] P.Diniz, E. da Silva y S. Netto, Digital Signal Processing: System Analysis and
Desing, Cambridge University Press, 2010.
[2] H.Monson, Schaum’s Outline of Theory and Problems of Digital Signal
Processing, McGraw Hill, 2011

Figura 23.Señal de Entrada

Figura 24. Muestreo de la señal de entrada

También podría gustarte