You are on page 1of 9

Seales y Sistemas Prctica 1.

Introduccin a las seales y sistemas


1 Objetivos
El principal objetivo de esta prctica es asentar los conceptos ms bsicos sobre la denicin y las propiedades de las seales y los sistemas. En primer lugar se presentarn algunos ejemplos de seales sencillas, con las que se podrn comprobar cmo se realiza el escalado y el desplazamiento, tanto en la amplitud como en el eje tiempo, y cmo se realizan combinaciones sencillas de varias seales. Despus se usarn estas seales para probar la respuesta de distintos sistemas, tratando de determinar si poseen o no una serie de propiedades: invarianza en el tiempo, linealidad, memoria y causalidad. Tambin se analizar un ejemplo con distintas formas de interconexin de sistemas.

2
2.1

Seales
Seales elementales

En primer lugar, ejecuta la secuencia de comandos que se muestra en el listado 1 y observa el resultado. Listado 1. Inicio.m

% Inicio de figuras y memoria close all ; clear all ; % Ejes de tiempos continuo y discreto t =[ -10:0.01:10]; n =[ -10:10]; % Ejemplo de sinusoide c1 = cos (2* pi * t /6+ pi /2); figure ; plot_continuous (t , c1 ); xlabel ( ' t '); ylabel ( ' c1 (t ) ' );
Los dos primeros comandos sirven para cerrar todas las guras que hubiera abiertas y borrar de la memoria las variables usadas hasta ahora. Despus se denen dos vectores, que nos servirn como ejes de tiempo para las seales que vayamos a calcular y representar. El vector t representa un segmento del eje de tiempo de una seal continua, que comienza en el instante t = 10, y naliza en el instante t = 10. Como no se pueden calcular todos los valores que toma una seal continua en un intervalo porque son innitos, se usa un paso pequeo (en este caso 0.01) para obtener un conjunto de valores intermedios sucientemente signicativo (en este caso t = [10, 9.99, 9.98, 9.97, ..., 10] ). El vector n representa un segmento del eje de tiempo de una seal discreta, que comienza en n = 10 y acaba en n = 10. En este caso, el paso debe ser igual a la unidad (por eso est omitido) para que el eje corresponda a una seal discreta en tiempo. El vector c1 contiene los valores que toma la funcin c1 (t ) = cos(2 t /6 + /2) para cada uno de los valores del vector de tiempos t que hemos denido. Mediante los siguientes comandos se representa grcamente la seal c1 (t ). Una vez creada una nueva ventana para alojar la gura, se representa la seal continua denida en MATLAB por los vectores t (vector de instantes de tiempo) y c1 (vector de amplitudes) mediante la funcin plot_continuous. Por ltimo se ponen etiquetas a los ejes vertical (t ) y horizontal (c1 (t )) de la gura.

Cuestin 2.1. Identica la frecuencia angular 0 y el periodo T0 de la seal representada y comprueba que coinciden con los que se observan en la grca. 0 =

T0 =

A continuacin ejecuta la serie de comandos que aparece en el listado 2, que dene 6 seales (4 continuas y 2 discretas) usando algunas de las funciones que se han proporcionado junto con el enunciado de la prctica. Para ejecutar estos comandos puedes invocar directamente al chero script BasicSignals desde la ventana de comandos. Listado 2. BasicSignals.m

% Inicio de figuras y ejes de tiempos continuo y discreto close all ; t =[ -10:0.01:10]; n =[ -10:10]; % Ejemplos de seales elementales e1 = escalon (t ); figure (1); plot_continuous (t , e1 ); xlabel ( ' t '); ylabel ( ' e1 (t ) ' ); w1 = rampa ( t ); figure (2); plot_continuous (t , w1 ); xlabel ( ' t '); ylabel ( ' w1 (t ) ' ); x1 = rect (t ); figure (3); plot_continuous (t , x1 ); xlabel ( ' t '); ylabel ( ' x1 (t ) ' ); p1 = trapecio ( t ); figure (4); plot_continuous (t , p1 ); xlabel ( ' t '); ylabel ( ' p1 (t ) ' ); d1 = delta ( n ); figure (5); plot_discrete (n , d1 ); xlabel ( ' n ' ); ylabel ( ' d1 [ n] '); r1 = rampa_disc (n ); figure (6); plot_discrete (n , r1 ); xlabel ( ' n ' ); ylabel ( ' r1 [ n] ');
Cuestin 2.2. Busca una expresin matemtica que caracterice cada una de las seales continuas que se han obtenido y escrbela en los huecos del siguiente recuadro. e1 (t ) = 1, t > 0 0, t 0 w1 (t ) =

x1 (t ) =

p1 (t ) =

Cuestin 2.3. Busca una expresin matemtica que caracterice cada una de las seales discretas que se han obtenido y escrbela en los huecos del siguiente recuadro.

d1 [n] =

r1 [n] =

2.2

Escalado y desplazamiento en amplitud

Ejecuta y analiza la secuencia de comandos del listado 3, que son un ejemplo de escalado y desplazamiento en amplitud de las seales usadas en el apartado anterior. 2

Listado 3. ShiftScaleAmp.m

% Inicio de figuras y ejes de tiempos continuo y discreto close all ; t =[ -10:0.01:10]; n =[ -10:10]; % Seales originales y con transformaciones en amplitud x1 = rect (t ); figure (1); plot_continuous (t , x1 ); xlabel ( ' t '); ylabel ( ' x1 (t ) ' ); x2 =4* rect (t ) -1; figure (2); plot_continuous (t , x2 ); xlabel ( ' t '); ylabel ( ' x2 (t ) ' ); p1 = trapecio ( t ); figure (3); plot_continuous (t , p1 ); xlabel ( ' t '); ylabel ( ' p1 (t ) ' ); p2 = -3* trapecio ( t )+1; figure (4); plot_continuous (t , p2 ); xlabel ( ' t '); ylabel ( ' p2 (t ) ' ); d1 = delta ( n ); figure (5); plot_discrete (n , d1 ); xlabel ( ' n ' ); ylabel ( ' d1 [ n] '); d2 =4* delta (n ) -0.5; figure (6); plot_discrete (n , d2 ); xlabel ( ' n ' ); ylabel ( ' d2 [ n] '); r1 = rampa_disc (n ); figure (7); plot_discrete (n , r1 ); xlabel ( ' n ' ); ylabel ( ' r1 [ n] '); r2 =0.5* rampa_disc ( n )+2.5; figure (8); plot_discrete (n , r2 ); xlabel ( ' n ' ); ylabel ( ' r2 [ n] ');
Cuestin 2.4. Calcula el escalado y desplazamiento en la amplitud que debes incluir en los huecos de los comandos del listado 4 para que las seales resultantes coincidan con las que aparecen en la gura 1.
1.5 1 0.5 0.75 0.5 0.25

x2 (t )

r2 (t )
6 4 2

0.5 1 1.5 10 8

0.25 0.5 0.75 10

10

7.5

2.5

2.5

7.5

10

Figura 1. Seales x2 (t ) y r2 [n] Listado 4. Cuestion2_4.m

% Transformaciones en amplitud x2 = AAA * rect (t )+ AAA ; figure (9); plot_continuous (t , x2 ); xlabel ( ' t '); ylabel ( ' x2 (t ) ' ); r2 = AAA * rampa_disc (n )+ AAA ; figure (10); plot_discrete (n , r2 ); xlabel ( ' n '); ylabel ( ' r2 [n] ');

2.3

Escalado y desplazamiento en el eje

Ejecuta y analiza la secuencia de comandos que aparece en el listado 5, que son ejemplo de escalado y desplazamiento en el eje de las seales usadas en los apartados anteriores. Listado 5. ShiftScaleAxis.m

% Inicio de figuras y ejes de tiempos continuo y discreto close all ; t =[ -10:0.01:10]; n =[ -10:10]; % Transformaciones en el eje x1 = rect (t ); figure (1); plot_continuous (t , x1 ); xlabel ( ' t '); ylabel ( ' x1 (t ) ' ); x3 = rect ( -0.5*( t +1)); figure (2); plot_continuous (t , x3 ); xlabel ( ' t '); ylabel ( ' x3 (t ) ' ); p1 = trapecio ( t ); figure (3); plot_continuous (t , p1 ); xlabel ( ' t '); ylabel ( ' p1 (t ) ' ); p3 = trapecio (2*(2 - t )); figure (4); plot_continuous (t , p3 ); xlabel ( ' t '); ylabel ( ' p3 (t ) ' ); d1 = delta ( n ); figure (5); plot_discrete (n , d1 ); xlabel ( ' n ' ); ylabel ( ' d1 [ n] '); d3 = delta (3*( n -1)); figure (6); plot_discrete (n , d3 ); xlabel ( ' n ' ); ylabel ( ' d3 [ n] '); r1 = rampa_disc (n ); figure (7); plot_discrete (n , r1 ); xlabel ( ' n ' ); ylabel ( ' r1 [ n] '); r3 = rampa_disc ( -2* n +2); figure (8); plot_discrete (n , r3 ); xlabel ( ' n ' ); ylabel ( ' r3 [ n] ');
Cuestin 2.5. Calcula el escalado y desplazamiento en el eje que debes incluir en los huecos de los comandos del listado 6 para que las seales resultantes coincidan con las que aparecen en la gura 2.
1.5 4.5 4 3.5 1 3 2.5

x3 (t )

0.5

p3 (t )
4 2

2 1.5 1

0 0.5 0 0.5 10 8 6 0 2 4 6 8 10 0.5 10 8 6 4 2 0 2 4 6 8 10

Figura 2. Seales x3 (t ) y r3 [n] Listado 6. Cuestion2_5.m

% Transformaciones en el eje x3 = rect ( AAA *( t + AAA )); figure (9); plot_continuous (t , x3 ); xlabel ( ' t '); ylabel ( ' x3 (t ) ' );
4

p3 = trapecio ( AAA *( t + AAA )); figure (10); plot_continuous (t , p3 ); xlabel ( ' t ' ); ylabel ( ' p3 ( t) ');

2.4

Combinacin de seales

Ejecuta y analiza la secuencia de comandos que aparece en el listado 7, que son ejemplos de combinacin lineal de seales usadas en los apartados anteriores.

Listado 7. CombSignals.m

% Inicio de figuras y ejes de tiempos continuo y discreto close all ; t =[ -10:0.01:10]; n =[ -10:10]; % Combinacin lineal de seales g3 = -2* rect (0.5* t ) -0.5* trapecio ( t +2); figure (1); plot_continuous (t , g3 ); xlabel ( ' t '); ylabel ( ' g3 (t ) ' ); s3 = rampa_disc (n +2)+ rampa_disc (2 - n ); figure (2); plot_discrete (n , s3 ); xlabel ( ' n ' ); ylabel ( ' s3 [ n] ');
Cuestion 2.6. Calcula el escalado y desplazamiento en amplitud y en el eje que debes incluir en los huecos de los comandos del listado 8 para que las combinaciones de seales resultantes coincidan con las que aparecen en la gura 3.
2.5 2 1.5 3.5 3 2.5 2

g3 (t )

s3 [n]
4 2

1 0.5 0

1.5 1 0.5 0

0.5 10 8

10

0.5 10 8

10

Figura 3. Seales g3 (t ) y s3 [n] Listado 8. Cuestion2_6.m

% Combinacin lineal de seales g3 = AAA * rampa ( AAA *t + AAA )+ AAA * rampa ( AAA *t + AAA ); figure (3); plot_continuous (t , g3 ); xlabel ( ' t '); ylabel ( ' g3 (t ) ' ); s3 = AAA * delta (n - AAA )+ AAA * delta (n - AAA )+ AAA * delta (n - AAA ); figure (4); plot_discrete (n , s3 ); xlabel ( ' n ' ); ylabel ( ' s3 [ n] ');

3
3.1

Sistemas
Propiedades de los sistemas

Invarianza en el tiempo Cuestion 3.1. Ejecuta los comandos que aparecen en el listado 9 y explica justicadamente en el siguiente recuadro si el sistema system1 tiene un comportamiento invariante para esta entrada o es variante en el tiempo. Listado 9. Invar.m

% Inicio de figuras y eje de tiempo discreto close all ; n =[ -10:10]; % Invarianza en el tiempo % Seal de entrada original x1 = delta ( n )+ delta (n -1)+ delta (n -2); figure (1); plot_discrete (n , x1 ); xlabel ( ' n ' ); % Seal de salida y1 = system1 (x1 ,n ); figure (2); plot_discrete (n , y1 ); xlabel ( ' n ' ); % Seal de entrada desplazada x2 = delta (n -5)+ delta (n -6)+ delta (n -7); figure (3); plot_discrete (n , x2 ); xlabel ( ' n ' ); % Seal de salida y2 = system1 (x2 ,n ); figure (4); plot_discrete (n , y2 ); xlabel ( ' n ' );

ylabel ( ' x1 [ n] ');

ylabel ( ' y1 [ n] ');

ylabel ( ' x2 [ n] ');

ylabel ( ' y2 [ n] ');

Linealidad Cuestion 3.2. Ejecuta los comandos que aparecen en el listado 10 y explica justicadamente en el siguiente recuadro si el sistema system2 tiene un comportamiento lineal para esta entrada o no es lineal. Listado 10. Lineal.m

% Inicio de figuras y eje de tiempo discreto close all ; n =[ -10:10]; % Linealidad % Seal de entrada x1 = triang (n ); figure (1); plot_discrete (n , x1 ); xlabel ( ' n ' ); ylabel ( ' x1 [ n] '); y1 = system2 (x1 ,n ); figure (2); plot_discrete (n , y1 ); xlabel ( ' n ' ); ylabel ( ' y1 [ n] '); % Seal de entrada retrasada x2 = rampa ( n );
6

figure (3); plot_discrete (n , x2 ); y2 = system2 (x2 ,n ); figure (4); plot_discrete (n , y2 ); % Combinacin de entradas y3 = system2 (2* x1 +3* x2 ,n ); figure (5); plot_discrete (n , y3 ); % Combinacin de salidas y4 =2* y1 +3* y2 ; figure (6); plot_discrete (n , y4 );

xlabel ( ' n ' ); ylabel ( ' x2 [ n] '); xlabel ( ' n ' ); ylabel ( ' y2 [ n] ');

xlabel ( ' n ' ); ylabel ( ' y3 [ n] ');

xlabel ( ' n ' ); ylabel ( ' y4 [ n] ');

Memoria Cuestion 3.3. Estudia la secuencia de comandos de la funcin system3 que aparecen en el listado 11. Recuerda que la funcin length(x) devuelve la longitud del vector x y la funcin zeros(1,N) devuelve un vector de longitud N relleno de ceros. Trata de expresar en el siguiente recuadro la seal de salida y[n] en funcin de la seal de entrada x[n]. A partir de esta expresin, justica si el sistema tiene memoria o no. Puedes comprobar que el resultado es correcto introduciendo un impulso unitario a la entrada y observando la salida. Listado 11. system3.m

function y = system3 (x ,n ) % Estado inicial x_ant =0; % Inicio del vector de salida y= zeros (1 , length (x )); % Clculo de la seal de salida for k =1: length ( x) y( k )= x(k )+0.5* x_ant ; x_ant =x (k ); end ;

Causalidad Cuestion 3.4. Observa la secuencia de comandos de la funcin system4 que aparecen en el listado 12 y trata de expresar en el siguiente recuadro la seal de salida y[n] en funcin de la seal de entrada x[n]. A partir de esta ex7

presin, justica si el sistema es causal o anticausal. Puedes comprobar que el resultado es correcto introduciendo un impulso unitario como seal de entrada y observando la salida. Listado 12. system4.m

function y = system4 (x ,n ) % Estado final x_pos =0; % Inicio del vector de salida y= zeros (1 , length (x )); % Clculo de la seal de salida for k = length (x ): -1:1 y( k )= x(k )+0.5* x_pos ; x_pos =x (k ); end ;

3.2

Interconexin de sistemas

Cuestion 3.5. Observa la secuencia de comandos que aparecen en el listado 13, correspondiente al sistema system5, y dibuja en el siguiente recuadro un diagrama de bloques en el que se muestre como estn interconectados los sistemas system1, system2, system3 y system4.

Listado 13. system5.m

function y = system5 (x ,n ) % Seal y1 y1 = system1 (x ,n ); % Seal y2 y2 = system2 (x ,n ); % Seal y3 y3 = system3 (y1 ,n ); % Seal de salida y= system4 ( y2 +y3 ,n );

You might also like