Vous êtes sur la page 1sur 11

Grados ETSIT.

Universidad Rey Juan Carlos Pgina


Ampliacin de Seales y Sistemas. Prctica 1




Ampliaci



PRCTICA NICA
Aula de prcticas: 09 y 10 (Laboratorio II).
Duracin estimada: 2-3 sesiones
Calendario de la prctica: diciembre de 2012.
Conocimientos tericos necesarios para poder realizar la prctica:
Temas: 1, 2, 3, 4, 5, 6


Bibliografa:

Signals and Systems; Alan V. Oppenheim, Alan S. Willsky, 2 edicin (Agosto 1996)
Prentice Hall; Captulo 1.
A. V. Oppenheim, R. W. Schafer, Discrete
NJ: Prentice-Hall, 1999.
Aprenda MatLab como si estuviera en primero; Javier Garca de Jaln; Escuela Tcnica
Superior de Ingenieros Industriales, Universidad Politcnica de Madrid.

Metodologa de trabajo:

Antes de acudir a clase, r
prcticas se utilizar para resolver dudas
nicamente durante la
Aunque todos los ejercicios
aqullos en los que aparece el smbolo * junto al nmero del ejercicio
recomendable la consulta previa de los conceptos tericos implicados.
No es necesario entregar ning
entregarn en la fecha indicada por el profesor tras el periodo de
En la ltima parte de la sesin de prcticas se resolvern algunos de los ejercicios
propuestos.
Recuerde que si en la vent
le ofrecer ayuda sobre la el
nombre_comando.
Para facilitar su tarea, l
Matlab escrito. Observe atentamente qu
Adems, en algn caso deber



. Universidad Rey Juan Carlos Pgina 1/11
. Prctica 1
iacin de Seales y Sistemas
(Laboratorio II).
ones.
diciembre de 2012.
Conocimientos tericos necesarios para poder realizar la prctica:
Signals and Systems; Alan V. Oppenheim, Alan S. Willsky, 2 edicin (Agosto 1996)
A. V. Oppenheim, R. W. Schafer, Discrete-Time Signal Processing, 2
a
Ed., Upper Saddle River,
Aprenda MatLab como si estuviera en primero; Javier Garca de Jaln; Escuela Tcnica
Superior de Ingenieros Industriales, Universidad Politcnica de Madrid.
Antes de acudir a clase, resulta necesario haber trabajado la prctica
prcticas se utilizar para resolver dudas. No es posible realizar todos los ejercicios
nicamente durante la clase de prcticas.
os los ejercicios estn relacionados con la teora explicada en clase,
aqullos en los que aparece el smbolo * junto al nmero del ejercicio
la consulta previa de los conceptos tericos implicados.
No es necesario entregar ningn guin de prcticas al finalizar la clase
n en la fecha indicada por el profesor tras el periodo de exmenes)
En la ltima parte de la sesin de prcticas se resolvern algunos de los ejercicios
en la ventana de Matlab teclea help nombre_comando
le ofrecer ayuda sobre la el significado y la forma de utilizar el comando
Para facilitar su tarea, la mayor parte de los ejercicios tienen parte del c
bserve atentamente qu lneas estn completas y cules no.
aso deber aadir lneas de cdigo adicionales.
Curso 2012/13



Signals and Systems; Alan V. Oppenheim, Alan S. Willsky, 2 edicin (Agosto 1996)
Ed., Upper Saddle River,
Aprenda MatLab como si estuviera en primero; Javier Garca de Jaln; Escuela Tcnica
haber trabajado la prctica, la sesin de
No es posible realizar todos los ejercicios
la teora explicada en clase, para
aqullos en los que aparece el smbolo * junto al nmero del ejercicio es muy
la consulta previa de los conceptos tericos implicados.
n guin de prcticas al finalizar la clase (se
menes).
En la ltima parte de la sesin de prcticas se resolvern algunos de los ejercicios
help nombre_comando el programa
significado y la forma de utilizar el comando
ayor parte de los ejercicios tienen parte del cdigo
les no.
13
Grados ETSIT. Universidad Rey Juan Carlos Pgina 2/11
Ampliacin de Seales y Sistemas. Prctica 1



I. Secuencias Bsicas

I.A Secuencias Reales

Ejercicio 1.

Genere y dibuje en 3 grficas diferentes y haciendo uso del comando stem, las siguientes
secuencias. El eje de abscisas debe extenderse exclusivamente en el rango indicado.

xl[n] = 0.9 [n-5], 0 < n <20
x2[n] = 4.5 [n+7], -10 < n <10

Dibuje ahora la seal

x3[n] = 4.5 [n+17], 0< n < 20

Es necesario modificar ambos vectores (abscisas y ordenadas) respecto a los de la
seal x2[n]? A qu se debe esto?

%SOLUCION PARCIAL

%Una seal en Matlab esta compuesta por dos vectores, el vector que
%contiene los indices y el vector que contiene los valores de la seal

%Generamos los indices de la seal 1 y 3
n =

%Generamos los indices de la seal 2
m =

%Generamos los valores de la seal 1, 2 y 3
x1 =
x2 =
x3 =

%Dibujamos las seales
figure(1);
stem(n,x1);

figure(2);
%Rellenar lo que falta

figure(3);
%Rellenar lo que falta


Ejercicio 2.

Grados ETSIT. Universidad Rey Juan Carlos Pgina 3/11
Ampliacin de Seales y Sistemas. Prctica 1

Escriba una funcin MATLAB, sinus.m, que genere una sinusoide de longitud finita. La
funcin recibir 5 parmetros: amplitud, pulsacin
0
, fase, y dos nmeros que
especificarn el primer y ltimo valor de n para los que se genera la sinusoide:
x[n] = A cos (
0
n + ), n
0
< n <n1
La funcin debe devolver dos vectores: el de ndices y el de valores de la sinusoide.

%SOLUCION PARCIAL

function [sal_1, sal_2] = sinus(A, omega, phi, inicio, fin);
%Devuelve dos variables de salida

sal_1 =
sal_2 =



I.B Secuencias Complejas

Aunque en el mundo real las seales toman valores reales, a menudo resulta
extremadamente til generar, procesar e interpretar parejas de seales reales como seales
complejas: combinando ambas seales reales como partes real e imaginaria de una
compleja.

Las exponenciales complejas responden a la siguiente formulacin general:
Gz
0
n
= Ae
j n
r
n
e
j n
= Ar
n
e
j ( n+)
= Ar
n
[ cos( n +)+ j sen ( n +)]
donde G = Ae
j
es la amplitud compleja y z
0
= re
j
es el ncleo de la exponencial.

Nota: recuerde que el nmero complejo 1 = i se denota en MatLab: con la letra i
minscula, con la j minscula o con el smbolo 1i (recomendado).


Ejercicio 3.

Genere y dibuje cada una de las siguientes secuencias. Exprese las sinusoides mediante
exponenciales complejas y genere los vectores con la funcin exp. En el caso de seales
complejas dibuje mediante subplot las partes real e imaginaria. Utilice adems subplot para
dibujar el mdulo y la fase.
[ ]
[ ] 50 0 ,
4 11
cos ) 1 . 1 (
20 0 ,
7
cos 4
7
sin 3
2
1

|

\
|
+ =
|

\
|
+ |

\
|
=
n n n x
n n j n n x
n



%SOLUCION PARCIAL

n1 =
n2 =
x1 =
Grados ETSIT. Universidad Rey Juan Carlos Pgina 4/11
Ampliacin de Seales y Sistemas. Prctica 1

x2 =

figure
subplot (2,1,1);
stem (n1, real(x1)); title ('x_1[n]: Parte real')

subplot (2,1,2);
%Rellenar todo lo que falta



II. Sistemas lineales e invariantes

Ejercicio 1.

Considere la seal x[n] y el sistema lineal e invariante (definido por su respuesta al
impulso, h[n]) que siguen:

Determine y[n]=x[n]*h[n] mediante la funcin conv. Dibuje x[n], h[n] e y[n]; asegrese de
que representa cada seal en los instantes de tiempo correspondientes.

%SOLUCION PARCIAL

%Generamos los indices de la seales x h
n_x =
n_h =
%Generamos los valores de la seales x h
x =
h =

%Generamos los indices de la seal y
ini_y =
fin_y =
n_y = ini_y:fin_y;

%Generamos los valores de la seal 1, 2 y 3 (para ello utilizamos conv)
y =

%Dibujamos las seales
figure
stem(n_y,y);


Ejercicio 2*.

Considere el sistema lineal e invariante definido por la siguiente ecuacin en diferencias:
[ ] [ ] [ ] [ ] 2 1 3 + + = n x n x n x n y
Y considere tambin la siguiente seal de entrada x[n].
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 5/11
Sistemas Lineales. Prctica 1



Determine y[n] para la x[n] anterior mediante la funcin filter. Dibuje x[n] e y[n]; asegrese
de que representa cada seal en los instantes de tiempo correspondientes.


Calcule de forma terica cul es la respuesta al impulso de este sistema. Compare esta
respuesta al impulso con la del Ejercicio 5 y comente las diferencias entre ambos
procedimientos para calcular la salida de los sistemas LTI definidos va ecuaciones en
diferencias.

%SOLUCION PARCIAL

%Generamos los indices de la seal x
n_x =

%Generamos los valores de la seal x
x =

%Help filter
%FILTER One-dimensional digital filter.
% Y = FILTER(B,A,X) filters the data in vector X with the
% filter described by vectors A and B to create the filtered
% data Y. The filter is a "Direct Form II Transposed"
% implementation of the standard difference equation:
%
% a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
% - a(2)*y(n-1) - ... - a(na+1)*y(n-na)

%Generamos los coeficientes del filtro
b =
a =

%Filtramos la seal y obtenemos la salida
y = filter (b,a,x);

%Generamos los indices de la seal x
n_y =

%Dibujamos la seal y
figure
stem(n_y,y);


Ejercicio 3*.

Considere el sistema lineal e invariante con respuesta al impulso finita (FIR) definido por la
siguiente ecuacin en diferencias:
[ ] [ ] [ ] [ ] 2 1 + + = n x n x a n x n y
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 6/11
Sistemas Lineales. Prctica 1

Elija el parmetro a del sistema para que la respuesta en frecuencia se anule en w
0
=25/32.
Filtre una seal sinusoidal y variando su frecuencia compruebe que presenta el cero de
transmisin deseado.




%SOLUCION PARCIAL

w_0 = 2*pi*5/32;

%Calculamos el coeficiente para que la respuesta en frecuencia se anule
%en w_0
a_coef =

%Generamos la sinusoide
n_x =
x =


%Coeficientes de la ecuacion en diferencias del filtro (hay que utilizar
a_coef)
b =

%Calculamos y como la salida del filtro que implementa la ecuacion en
%diferencias
y = filter(b, 1, x);


%Representamos las seales x e y para comprobar que la salida es cero
figure(1)
plot(n_x,x)
%Queremos representar ambas seales en la misma grafica, para ello
%utilizamos el comando hold on Para mas informacion teclear help hold
hold on

%Para poder diferencias ambas seales dibujamos la segunda de ellas en un
%color distinto. Para ello incorporamos un tercer argumento a la funcion
%plot que indica que queremos pintar la curva en color rojo ('r'). Para
% mas informacion teclear help plot
plot(n_x,y,'r')

%Finalmente aadimos un rotulo al eje de las abcisas y una leyenda a
%nuestra figura. Para mas info teclear help xlabel y help legend
xlabel('Tiempo [n]')
legend('x[n]','y[n]')


III. Representacin de secuencias en el dominio de la frecuencia


Ejercicio 1.
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 7/11
Sistemas Lineales. Prctica 1


Escriba una funcin (llmela dsf_analisis) que partiendo de una secuencia x[n] y de un
perodo N, implemente la frmula de anlisis:
[ ]

=
1
0
2
1
N
n
nk
N
j
k
e n x
N
a

,
devolviendo un vector a que contenga a
k
, para 0 k N-1.
Nota: recuerde que la funcion sum calcula la suma de los elementos de un vector.
%SOLUCION PARCIAL

function a=dsf_analisis(x,N)

a =
n =

for k=0:N-1
a(k+1) =
end




Ejercicio 2.

Escriba una funcin (llmela dsf_sintesis) que partiendo de un vector de coeficientes, a, y
de un perodo N, implemente la ecuacin de sntesis:
[ ]

=
=
1
0
2
N
k
n
N
jk
k
e a n x

,
devolviendo un vector x que contenga x[n], para 0 n N-1. Compruebe que es la funcin
inversa de la utilizada en el ejercicio anterior.

%SOLUCION PARCIAL

function x=dsf_sintesis(a,N)

%Rellenar todo lo que falta

Ejercicio 3*.

Modifique la funcin anterior para obtener versiones sintticas de x[n] construidas a partir
de slo P ( P N ) coeficientes (haga variar k entre P/2 y P/2). Aplique la nueva funcin a
la seal siguiente para P = 4, 8, 16, y 32:
[ ]



=
31 8 , 0
7 0 , 1
n
n
n x .

Dibuje para cada uno de los 4 valores de P propuestos la seal original y la obtenida a
travs de la ecuacin de sntesis. Se observa el fenmeno de Gibbs?.
Nota: Los resultados deben presentarse en una nica figura compuesta por 4 sub-grficas diferentes (para
obtener estas sub-grficas utilice el comando subplot). En cada una de las sub-grficas deber representarse
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 8/11
Sistemas Lineales. Prctica 1

en color azul la seal x[n] original as como en color rojo la seal recuperada obtenida tras aplicar las
ecuaciones de anlisis y de sntesis sobre lo seal x[n] (para representar dos curvas diferentes en la misma
grafica utilice el comando hold).







IV. Muestreo

Ejercicio 1.

En general, una sinusoide continua viene dada por la siguiente expresin:
) 2 cos( ) (
0
+ = t f A t s ,
donde A es la amplitud, f
0
es la frecuencia en Hertzios, y la fase inicial (en radianes).
Escriba una funcin MATLAB sinus_c.m que genere muestras de una sinusoide, es decir,
una secuencia:
[ ] ) ( ) ( nT s t s n s
nT t
= =
=
,
siendo T el periodo de muestreo (y fs = l/T, la frecuencia de muestreo). Concretamente, la
funcin recibir seis parmetros: A, f
0
, , fs, y los instantes de comienzo y fin (en
segundos); y devolver dos vectores: muestras e instantes correspondientes (en segundos).

Pruebe su funcin con el siguiente ejemplo: f
0
= 1200 Hz., = 45, A = 50, fs = 8 kHz., t
0

(instante de comienzo) = 0, t
f
(instante final) = 7 ms. Cul es la longitud de la secuencia
resultante?, cul es la frecuencia discreta equivalente?
Nota: para calcular la longitud utilice el comando length o el comando size, qu diferencia existe entre
ambos comandos?

Considere ahora el siguiente ejemplo: f
0
= 6800 Hz., = 45, A = 50, fs = 8 kHz, t
0

(instante de comienzo) = 0, t
f
(instante final) = 7 ms. Cul es la frecuencia discreta
equivalente?

Explique las diferencias entre los resultados obtenidos en los dos ejercicios anteriores.



Ejercicio 2.

Diezmado. Programe una funcin en Matlab, diezma(x,N), que dadas como entradas una
seal, x, y el factor de diezmado, N, proporcione como salida la seal y[n]=x[Nn].
Nota: puede resultarle de utilidad el uso del operador de MatLab : .

Compruebe el funcionamiento de la funcin diezma() aplicndolo sobre la primera de las
sinusoides del apartado anterior (aqulla con frecuencia f
0
= 1200 Hz) y con valores de
diezmado de N=2, 3 y 6.

%SOLUCION PARCIAL
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 9/11
Sistemas Lineales. Prctica 1


function y=diezma(x,N)

%Creamos los indices de la seal diezmada
n_d =

%Obtenemos la seal diezmada utilizando x y n_d
y=

%Comentario: al final hacer help decmate y analizar las diferencias



V. Transformada discreta de Fourier (DFT)

En MatLab existe una funcin fft que sirve para calcular la DFT de una secuencia discreta.
En concreto, la funcin fft de MatLab utiliza uno de los mltiples algoritmos que acelera el
clculo de la DFT y que, de forma general, reciben el nombre de Fast Fourier Transform.

Ejercicio 1

Calcule, con ayuda de fft, la DFT de longitud 16 de un pulso centrado en el origen de
longitud L=7. Dibuje el mdulo y la fase de la transformada, divida la figura en dos
subgrficas distintas, represente el mdulo en la grfica superior y la fase en la grfica
inferior con ayuda del comando subplot. Cul son los valores del eje de abcisas que est
representando?

%SOLUCION PARCIAL

%Generamos la secuencia original
n=0:15;
p=[ones(1,7), zeros(1,(16-7))];

%Generamos la DFT original
%Comentario: hacer help fft
P_dft = fft( .... , .... ); %Escribir los parmetros de entrada
k=


%Dibujamos
figure
subplot(2,1,1)
stem(k,abs(P_dft))
xlabel('k')
ylabel('Mdulo')
subplot(2,1,2)
stem(k,angle(P_dft))
xlabel('k')
ylabel('Fase')


Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 10/11
Sistemas Lineales. Prctica 1

Ejercicio 2

Considere la seal:


< <
=
2 , 0 , 0
2 0 |, 1 | 1
) (
t t
t t
t x

Muestree la seal x(t) con un periodo de muestreo T=1/10. Calcule X[k] la DFT de longitud
50 de la seal muestreada..

Basndose en nicamente en la informacin contenida en X[k], represente en una misma
figura con tres subgrficas diferentes:

(a) X[k]: DFT de la seal x(t) muestreada.
(b) X():TF de la seal x(t) muestreada.
(c) X():TF de la seal x(t).

Indique claramente los ejes de abcisas para cada una de las tres figuras. Dibuje las
secuencias utilizando el comando stem y las seales utilizando el comando plot.




N=16;
n=0:(N-1);
x=
X_k = fft(x,16);

k=0:15;
Omega =
omega =

figure
subplot(3,1,1)
stem(k,abs(....))%Escribir los parmetros de entrada
xlabel('k')
title('DFT')
subplot(3,1,2)
plot(Omega, abs(....))%Escribir los parmetros de entrada
xlabel('\Omega')
title('TF de x[n]')
subplot(3,1,2)
plot(omega, abs(....))%Escribir los parmetros de entrada
xlabel('\omega')
title('TF de x(t)')




Ejercicio 3
Ingeniera de Telecomunicacin. Universidad Rey Juan Carlos Pgina 11/11
Sistemas Lineales. Prctica 1


Considere la secuencia:
[ ]


=
L n
L n
n x
, 0
1 0 , 1


con L=10. Calcule numricamente utilizando la funcin fft X[k] como la DFT de longitud
N de la secuencia x[n]. Utilizando la funcin ifft calcule ahora la secuencia y[n] como la
DFT inversa de la secuencia Y[k]=X
2
[k].

Represente la seal y[n] para N=10, N=20 y N=40, especifique claramente los valores del
eje de abcisas. Comente los resultados obtenidos.



VI. Transformada Z

Ejercicio 1

La salida y[n] y la entrada x[n] de un sistema LTI causal est relacionada mediante el
siguiente diagrama de bloques:


Utilice la funcin filter para calcular la respuesta al impulso del sistema. Dibuje el
diagrama de polos y ceros de la respuesta al impulso del sistema utilizando la funcin
zplane. Nota: tenga en cuenta que la salida de la funcin zplane vara en funcin del formato (vectores fila,
columna, ) de los argumentos de entrada.



z
-1
x[n] y[n]
3 -1/6

z
-1
-1

z
-1

z
-1
1/6

Vous aimerez peut-être aussi