Professional Documents
Culture Documents
DANNY ARMIJOS
Para:
* Ing. Diego Orellana
1. TEMA:
SISTEMAS Y SEALES DE TIEMPO DISCREITO
2. OBJETIVOS:
4. Equipos y Reactivos
Equipos y herramientas
Una Computadora con capacidad de corer Matlab
5. IMARCO TERICO:
Seales y sistemas de tiempo discreto
Comenzamos con los conceptos de seales y sistemas en tiempo discreto. Se introducen
una serie de tipos importantes de seales y sus operaciones. Los sistemas lineales y
invariantes por desplazamiento se discuten sobre todo porque son ms fciles de analizar
e implementar. La convolucin y las representaciones de las ecuaciones de diferencia
reciben una atencin especial debido a su importancia en el procesamiento de seal
pg. 1
6.
ACTIVIDADES DESARROLLAS:
6.1 Seales en Tiempo Discreto
6.1.1
Tipos de secuencias
Secuencia Sinosoidal
Secuencia peridica:
6.1.2
Operaciones en secuencias
1. Adicin de seal
Se implementa en MATLAB por el operador aritmtico "+". Sin embargo, las
longitudes de x1 (n) y x2 (n) deben ser las mismas. Si las secuencias son de
longitudes desiguales, o si las posiciones de la muestra son diferentes para
secuencias de igual longitud, entonces no podemos utilizar directamente el
operador +. Tenemos que aumentar primero x1 (n) y x2 (n) para que tengan el
mismo vector de posicin n (y por lo tanto la misma longitud). Esto requiere una
cuidadosa atencin
A las operaciones de indexacin de MATLAB. En particular, el funcionamiento
lgico de la interseccin "&", las operaciones relacionales como "<=" y "==", y la
funcin find son necesarios para hacer x1 (n) y x2 (n) de longitud igual. La
siguiente funcin, denominada funcin sigadd, demuestra estas operaciones esto
se muestra en el cuadro8. Su uso se ilustra en el ejemplo 2.2 que se desarrollar
ms adelante
function [y,n] = sigadd(x1,n1,x2,n2)
% Implementa y (n) = x1 (n) + x2 (n)
unesdoc.unesco.org unesdoc.unesco.org
% [Y, n] = sigadd (x1, n1, x2, n2)
% Y = secuencia suma sobre n, que incluye n1 y n2
% X1 = primera secuencia sobre n1
% X2 = segunda secuencia sobre n2 (n2 puede ser diferente de
%
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duracin de
y1 = zeros(1,length(n)); y2 = y1; % inicializacin
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 con duracin
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 con duracin
y = y1+y2; % secuencia de adicin
n1)
y(n)
de
de
y
y
Por lo tanto, esta operacin no tiene efecto sobre el vector x, pero el vector n
cambia aadiendo k a cada elemento. Esto se muestra en la funcin
sigshift.que se observa en el cuadro 10.
function [y,n] = sigshift(x,m,k)
% implements y(n) = x(n-k)
% ------------------------% [y,n] = sigshift(x,m,k)
%
n = m+k; y = x;
Cuadro. 10 Representacin de la funcin sigshift que lo que hace es
desplaza una seal
4. Folding (Plegado)
En esta operacin cada muestra de x (n) es volteada alrededor de n = 0 para
obtener una secuencia plegada y (n).
En MATLAB esta operacin se implementa mediante la funcin fliplr (x) para
los valores de muestra y por la funcin -fliplr (n) para las posiciones de
muestra como se muestra en la funcin sigfold la cual se puede observar en
el cuadro 11.
ejemplos
6.1 Ejemplo 2.1
%% Ejemplo 2.1
%Generar y trazar cada una de las siguientes secuencias en el
intervalo indicado.
%%%%a. x(n) = 2(n + 2) (n 4), 5 n 5.
disp('ejercicio a')
figure(1);
n = [-5:5]; %vector
x = 2*impseq(-2,-5,5) - impseq(4,-5,5); % uso de la funcion impseq
creada anteriormente
stem(n,x); title('Sequence in Problem 2.1a')%permite graficar un
conjunto de nmeros discretos
xlabel('n'); ylabel('x(n)');% etiqueta eje x e y
pause;% para programa para contiar hacer enter
%b. x(n) = n [u(n) ? u(n ? 10)]+10e?0.3(n?10) [u(n ? 10) ? u(n ?
20)], 0 ? n ? 20.
disp('ejercicio b')
figure(2);
n = [0:20];
x1 = n.*(stepseq(0,0,20)-stepseq(10,0,20));% uso de la funcion
stepseq creada anteriormente
x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));
x = x1+x2;
subplot(2,2,3); stem(n,x); title('Sequence in Problem 2.1b')
xlabel('n');
ylabel('x(n)');
pause;
%% c. x(n) = cos(0.04pin) + 0.2w(n), 0 ? n ? 50.
disp('ejercicio c')
figure(3);
n = [0:50];
x = cos(0.04*pi*n)+0.2*randn(size(n));
subplot(2,2,2);
stem(n,x); title('Sequence in Problem 2.1c')
xlabel('n'); ylabel('x(n)');
pause;
%%x(n) = {..., 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, ...}; ?10 ?
n ? 9.
disp('ejercicio d')
figure(4);
n = [-10:9];
x = [5,4,3,2,1];
xtilde = x' * ones(1,4); xtilde = (xtilde(:))';
subplot(2,2,4); stem(n,xtilde); title('Sequence in Problem 2.1d')
xlabel('n'); ylabel('xtilde(n)');
a)
b)
c)
d)
Figura. 4 a), b), c) y d) Respuestas del ejercicio 2.1
6.2 Ejemplo 2.2
6.3
8.
EJEMPLO 2.4
Sea x (n) = u (n) - u (n - 10). Descomponga x (n) en componentes pares e impares.
La resolucion de este ejercicio lo podemos observar en el cuadro 17 donde esta el
script y la representacioin de las funciones resultantes se observa en la figura 7.
a)
b)
Figura. 8 Resultado obtenido tras correr el cdigo del cuadro 18
9.2
Ejemplo 2.8
Dadas las dos secuencias siguientes x(n) = [3, 11, 7,0,1, 4, 2], 3 n
3; h(n) = [2,3, 0,5, 2, 1], 1 n 4
Determine the convolution y(n) = x(n) * h(n).
La resolucion de este ejercicio
a)
b)
Figura. 9 Resultado obtenido tras correr el cdigo del cuadro 19
10. La funcin conv no proporciona ni acepta ninguna informacin de temporizacin si las
secuencias tienen soporte arbitrario. Lo que se necesita es un punto inicial y un punto
final de y (n). Dada la duracin finita x (n) yh (n), es fcil determinar estos puntos.
Dejar
{X (n); Nxb n nxe} y {h (n); Nhb n nhe}
7
11.
Ejemplo 2.9
noise sequence 1
Secuencia de ruido 1
13.
Cuando cuadro 26
b = [b0, b1, ..., bM];
a = [a0, a1, ..., aN];
14.
Ejemplo 2.11
a)
b)
Figura. 12 Resultado obtenido tras correr el cdigo del cuadro 28
7. DISCUSIN:
En la presente prctica se aprendi sobre el funcionamiento de algunas funciones de
Matlab como es el caso de realizar operaciones con las diversas funciones creadas
para el anlisis de seales discretas, la importancia de saber usar Matlab ya que se
puede facilitar mucho el clculo con lo que es la convolucin y correlacin haciendo
ms fcil analizar las seales discretas, la cual permite ahorrarse de realizar estos
clculos a mano ya que son muy tediosos de all la gran ventaja de utilizar el
programa que nos ahorra el tiempo de anlisis.
8. CONCLUSIN:
Matlab es una herramienta que permite realizar operaciones de anlisis tanto
matemtico como grafico que permite trabajar con funciones prescritas o generar
nuevas funciones la cual nos ahorra bastante tiempo ya que este anlisis hecho a
mano demorara muchsimo tiempo y con posibles erros humanos que no ocurre con
este software.
9. RECOMENDACIONES:
Es recomendable colocar al lado de cada funcin %%% un comentario de que realiza
esta parte del cdigo para llevar ms claro el funcionamiento de cada programa
generado en matlab.
10. BIBLIOGRAFA
[1] J. W. Cooley and J. W. Tukey. An algorithm for the machine computation of complex
Fourier series. Mathematical Computations, 19:297301, April 1965.
[2] Vinay K. Incle & Jhon G. Proakis. Digital Signal Progrssing Using Matlab.
Northeastern University. Third edition
[3] D. Hanselman and B. Littlefield. Mastering MATLAB 7. Pearson/Prentice Hall,
Englewood Cliffs, NJ, 2005.
[4]J. G. Proakis and D. G. Manolakis. Digital Signal Processing:Principles, Algorithms and
Applications. Prentice Hall, Upper Saddle River, NJ, fourth edition, 2006.