Académique Documents
Professionnel Documents
Culture Documents
\
|
+ =
|
\
|
+ |
\
|
=
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