guion 2 solucion
DESCRIPTION
GUIA DE SOLUCIONTRANSCRIPT
-
Grupo Prctica 2: Periodicidad Puesto
Apellidos, nombre SOLUCIN Fecha
Apellidos, nombre SOLUCIN
El objetivo de esta prctica es explorar las utilidades de representacin grfica de MATLAB para
observar las especiales propiedades de periodicidad de las seales discretas.
Para llevar a cabo la prctica, desarrolle cada ejercicio en un fichero de comandos ejercicio_X.m separado (salvo cuando se le solicite desarrollar una funcin, en cuyo caso el fichero llevar el nombre de la funcin). Justo antes de finalizar la prctica, comprima los ficheros .m generados en un nico fichero practica_2_Puesto_XX . zip, conctese al sistema de entrega de prcticas de la Intranet y entrguelo en el grupo que corresponda (lunes A, martes B, mircoles C o viernes D).
Salvo que se le indique lo contrario en algn apartado concreto, no est permitido utilizar en los scripts las funciones de control de flujo del programa de MATLAB ( for , if-else , etc.).
2.1 Rango de frecuencias de las exponenciales discretas peridicas
2.1.1 Ejercicio 1: Seales sinusoidales en forma coseno
El objetivo de este ejercicio es representar seales peridicas discretas de pulsacin creciente, y observar el rango efectivo de variacin de pulsacin que estas seales presentan. Para ello, considere la seal discreta:
[ ] ( )
== nknnx kk 82
coscos 0
Desarrolle, sin utilizar bucles, un script que genere esta seal para los valores { }8,7,6,5,4,3,2,1,0k , en el intervalo [ ]10,0n , y que represente en un mismo grfico estas nueve seales (utilice el comando subplot para hacer un grfico mltiple de 3x3 grficos), y las etiquete para identificar sin duda a qu seal corresponde cada representacin.
-
A la vista del grfico obtenido, y sin hacer ningn tipo de clculos aparte, intente contestar a las siguientes preguntas:
Del conjunto de las nueve seales representadas, cuntas son distintas?
5
Rellene la tabla adjunta:
[ ]nx0 [ ]nx1 [ ]nx2 [ ]nx3 [ ]nx4 [ ]nx5 [ ]nx6 [ ]nx7 [ ]nx8
Valor de 0k 0 pi/4 pi/2 3pi/4 pi 5pi/4 3pi/2 7pi/4 2pi
Periodo fundamental*, 0N Inf 8 4 8 2 8 4 8 Inf
fundamental, 0
2
N
0 pi/4 pi/2 pi/4 pi pi/4 pi/2 pi/4 0
* Para deducirlo acuda a su definicin, es decir, el mnimo desplazamiento que ha de efectuarse sobre la seal para que coincida con ella misma.
-
Ordene las nueve seales, dando nmero cero a la de menor frecuencia o pulsacin fundamental y mismo nmero a seales con igual pulsacin, e indique en la siguiente tabla el orden que ocupa cada seal (observe que la pulsacin 2 equivale a la pulsacin 0, es decir, a una seal constante o de mnima frecuencia) :
[ ]nx0 [ ]nx1 [ ]nx2 [ ]nx3 [ ]nx4 [ ]nx5 [ ]nx6 [ ]nx7 [ ]nx8
Orden en frecuencia 0 1 2 1 3 1 2 1 0
2.1.2 Ejercicio 2: Seales sinusoidales en forma seno
Repita el ejercicio anterior, pero esta vez trabajando con seales en forma seno, es decir:
[ ] ( )
== nknnx kk 82
sinsin 0 , { }8,7,6,5,4,3,2,1,0k
Observe el nuevo grfico obtenido, e intente explicar por qu las seales [ ]nx4 y [ ]nx8 no presentan el aspecto que cabra esperar a raz de la expresin analtica que tienen; contraste su explicacin con el profesor de prcticas. Proponga una solucin numrica (no grfica) y pngala en prctica, de modo que los resultados sean los esperables (utilice el comando round ) y que la solucin adoptada se pueda aplicar a todas las seales representadas.
-
A la vista del nuevo grfico obtenido, y sin hacer ningn tipo de clculos aparte, conteste de nuevo a las siguientes cuestiones:
Del conjunto de las nueve seales representadas, cuntas son distintas?
7
Rellene la tabla adjunta:
[ ]nx0 [ ]nx1 [ ]nx2 [ ]nx3 [ ]nx4 [ ]nx5 [ ]nx6 [ ]nx7 [ ]nx8
Valor de 0k 0 pi/4 pi/2 3pi/4 pi 5pi/4 3pi/2 7pi/4 2pi
Periodo fundamental, 0N Inf 8 4 8 Inf 8 4 8 Inf
fundamental, 0
2
N
0 pi/4 pi/2 pi/4 0 pi/4 pi/2 pi/4 0
Ordene las nueve seales, dando nmero cero a la de menor frecuencia o pulsacin fundamental y mismo nmero de orden a seales con igual pulsacin, e indique en la siguiente tabla el orden que ocupa cada seal:
[ ]nx0 [ ]nx1 [ ]nx2 [ ]nx3 [ ]nx4 [ ]nx5 [ ]nx6 [ ]nx7 [ ]nx8
Orden en frecuencia 0 1 2 1 0 1 2 1 0
-
2.1.3 Ejercicio 3: seales exponenciales puras
Sean las seales exponenciales complejas:
[ ]
+
== nkjnkenxn
kj
k 8
2sin
8
2cos8
2 , { }8,7,6,5,4,3,2,1,0k
Observe que sus partes real e imaginaria son respectivamente las seales representadas en los dos ejercicios anteriores. Teniendo esto en cuenta, observe simultneamente los grficos de los dos ejercicios anteriores (cada uno en una ventana) y conteste a las siguientes cuestiones:
Del conjunto de las nueve seales exponenciales, cuntas son distintas?
8
Teniendo en cuenta que las propiedades de periodicidad de una seal exponencial pura son las resultantes de combinar sus partes real e imaginaria, del conjunto de las nueve seales exponenciales, cuntas frecuencias fundamentales distintas se observan?
0,pi/4,pi/2,pi
Del conjunto de las nueve seales exponenciales, cul presenta frecuencia menor, cul la presenta mayor, y qu valor en cada caso?
Menor -> k = 0 y = 8. frecuencia 0
Mayor -> k = 4. frecuencia pi
2.2 Periodicidad en seales discretas
2.2.1 Ejercicio 4: Comparacin seales discretas vs. seales continuas
Sean las siguientes seales:
[ ]
= nnx12
2cos1
, ( )
= ttx12
2cos1
[ ]
= nnx31
8cos2
, ( )
= ttx31
8cos2
[ ]
= nnx2
1cos3 , ( )
= ttx2
1cos3
Desarrolle un script que genere estas seis seales en los intervalos [ ]50,0n y [ ]50,0t (definido en segundos a intervalos de 0.2 s.) respectivamente, y represntelas en un mismo grfico de tres filas o subgrficos (utilice subplot ). En cada subgrfico represente superpuestas la seal continua (utilice plot ) y la seal discreta correspondiente (utilice stem ).
-
A partir de la inspeccin de los grficos, obtenga el periodo mnimo de repeticin de las seis seales, es decir, su periodo fundamental, y compruebe que los clculos tericos1 coinciden con sus observaciones. Rellene la tabla adjunta:
[ ]nx1 [ ]nx2 [ ]nx3
0N observado 12 31 25
0N terico 12 31 NO
( )tx1 ( )tx2 ( )tx3
0T observado 12 7.8 12.6
0T terico 12 7.75 12.55664
2.2.2 Ejercicio 5: funcin de comprobacin de periodicidad
El objetivo de este ejercicio es desarrollar una funcin de MATLAB que verifique si una seal dada presenta un periodo tambin dado.
Ms especficamente, la funcin recibir como parmetros un vector con valores de una seal discreta
1 Tenga en cuenta que en las seales continuas el periodo fundamental se obtiene analticamente como 00 2 =T , y para
las seales discretas, el periodo es el valor entero 0N que verifique 0
00
2 N
m
N
m ==
, siendo 0m cualquier nmero entero.
-
(parmetro signal ) y el valor del periodo que se desea verificar (parmetro period ). El procedimiento propuesto para hacer la verificacin consiste en generar una nueva seal consistente en la seal signal desplazada tantas unidades como indique el parmetro period . A continuacin se seleccionarn las partes de ambas seales que estn definidas, y se restarn (ver Fig. 1); si el resultado es nulo, indicar que signal presenta el periodo dado; si no, no. Este resultado lo devolver la funcin como valor de retorno. No utilice bucles ni estructuras de control para llevar a cabo esta funcin.
signal
desplazadaperiod
is_periodic
signal
Fig. 1: Diagrama de funcionamiento propuesto para la funcin f_test_period
La funcin se almacenar en un fichero f_test_period.m y presentar el siguiente prototipo: function is_periodic = f_test_period(signal,period)
% f_test_period acepta una seal signal y un nme ro period % y devuelve 0 si la seal presenta dicho periodo , y un valor % distinto de cero en caso contrario. Esta funcin hace uso de
% la funcin length(X).
Para comprobar el funcionamiento de la funcin desarrollada, aplicarla sobre las tres seales discretas del ejercicio anterior y rellenar la tabla adjunta (utilice en los dos primeros casos el valor observado, y en el tercero utilice period=12 ):
signal [ ]nx1 [ ]nx2 [ ]nx3 period
12 31 12
is_periodic 0 0 Dif 0
Comente los resultados obtenidos, e indique, si procede, alguna solucin a los problemas numricos que haya encontrado:
2.2.3 Ejercicio 6: periodicidad de la suma de seales peridicas
Considere las tres seales siguientes:
[ ]
+
= nN
nN
nx 3
cos22
cos1
[ ]
+
= nN
nN
nx3
cos2
cos2
[ ]
+
= nN
nN
nx2
5cos3
2cos3
Suponiendo que N=6, represente las tres seales en un grfico de 3x1 subgrficos (utilice subplot ).
Represntelas inicialmente en el rango [ ]49,0n . A continuacin, a travs de la observacin de los grficos y de la utilizacin de la funcin f_test_period , obtenga el periodo fundamental de cada una y represntelas de nuevo, esta vez en un intervalo de dos periodos fundamentales (si alguna no fuera
-
peridica, represntela en [ ]49,0n ). Dibuje el resultado obtenido:
-
Indique en qu condiciones la suma de dos seales peridicas es una seal peridica.
Cul es el periodo de la seal suma?
Cualquier seal x( t ) que sea igual a la suma de dos seales peridicas, x1( t ) y x2( t ), con perodos fundamentales T1 y T2 respectivamente, ser peridica si se cumple la siguiente relacin:
010 1 0 2 0 0
2 0
01 2
0
, enteros
siendo fraccin irreducible ( es el m.c.m entre y )
mT m T n T m T n y mT n n
mT T T
N
= = = =
Igual para el caso discreto.
2.2.4 Ejercicio 7: periodicidad del producto de seales peridicas
Considere las tres seales siguientes:
[ ]
= nnnx4
cos4
sin1
[ ]
= nnx4
cos22
[ ]3 sin cos4 8x n n n =
Represente las tres seales en un grfico de 3x1 subgrficos (utilice subplot ). Represntelas en el
rango [ ]49,0n . A continuacin, a travs de la observacin de los grficos y de la utilizacin de la funcin f_test_period , obtenga el periodo fundamental de cada una.
Dibuje el resultado obtenido:
-
Indique en la tabla adjunta cul es el periodo de las seales factores y el periodo de la seal producto.
0N , factor 1 0N , factor 2 0N , seal
[ ]nx1 8 8 4 [ ]nx2 8 8 4 [ ]nx3 8 16 16
Comente en qu condiciones el producto de dos seales peridicas es una seal peridica (efecte las pruebas adicionales que considere necesarias para llegar a una conclusin fundada):
2.2.5 Ejercicio 8: funcin de clculo de periodicidad
El objetivo de este ejercicio es desarrollar una funcin de MATLAB que obtenga y devuelva el periodo fundamental de una seal dada; si la seal no es peridica devolver valor nulo, y si es constante, valor unidad.
Ms especficamente, la funcin recibir como nico parmetro una seal discreta (parmetro signal ). El procedimiento propuesto para obtener su periodo fundamental consiste en crear un bucle que vaya llamando a la funcin f_test_period con valores crecientes del parmetro period (comenzando en el valor 1 y terminando en la mitad de la longitud de la seal). Cuando la llamada a dicha funcin arroje valor nulo, se devolver el valor del periodo que ha provocado esta situacin. Si el bucle terminara sin que se haya verificado la condicin anterior, se devolver valor nulo.
Para desarrollar esta funcin es probable que requiera hacer uso de las funciones de programacin for , if y return . La funcin se almacenar en un fichero f_get_period.m y presentar el siguiente prototipo: function fundamental_period = f_get_period(signal)
% f_get_period acepta una seal signal y devuelve su periodo, si % la seal es peridica, 0 si no lo es, y 1 si es una seal
% de valor constante.
Compruebe su funcionamiento con cualquiera de las seales de los ejercicios anteriores.