Está en la página 1de 8

Grupo

Práctica 2: Periodicidad
Puesto
Apellidos, nombre Fecha
Apellidos, nombre

El objetivo de esta práctica es explorar las utilidades de representación gráfica de MATLAB para
observar las especiales propiedades de periodicidad de las señales discretas.

Para llevar a cabo la práctica, desarrolle cada ejercicio en un fichero de comandos ‘ejercicio_X.m’
separado (salvo cuando se le solicite desarrollar una función, en cuyo caso el fichero llevará el nombre de
la función). Justo antes de finalizar la práctica, comprima los ficheros ‘.m’ generados en un único fichero
‘practica_2_Puesto_XX . zip’, conéctese al sistema de entrega de prácticas de la Intranet y entréguelo en
el grupo que corresponda.

Salvo que se le indique lo contrario en algún 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 periódicas

2.1.1 Ejercicio 1: Señales sinusoidales en forma coseno

El objetivo de este ejercicio es representar señales periódicas discretas de pulsación creciente, y


observar el rango efectivo de variación de pulsación que estas señales presentan. Para ello, considere la
señal discreta:

⎛ 2kπ ⎞
x k [n] = cos(ω 0 k n ) = cos⎜ n⎟
⎝ 8 ⎠

{ }
Desarrolle, sin utilizar bucles, un script que genere esta señal para los valores k ∈ 0,1,2,3,4,5,6,7,8 ,
en el intervalo n ∈ [0,10] , y que represente en un mismo gráfico estas nueve señales (utilice el comando
subplot para hacer un gráfico múltiple de 3x3 gráficos), y las etiquete para identificar sin duda a qué
señal corresponde cada representación.

A la vista del gráfico obtenido, y sin hacer ningún tipo de cálculos aparte, intente contestar a las
siguientes preguntas:

─ Del conjunto de las nueve señales representadas, ¿cuántas son distintas?

─ Rellene la tabla adjunta:


x 0 [n] x1 [n] x 2 [n] x3 [n] x 4 [n] x5 [n] x 6 [n] x 7 [n] x8 [n]

Valor de ω 0

Periodo fundamental*, N 0


ω fundamental,
N0

─ Ordene las nueve señales, dando número ‘cero’ a la de menor frecuencia o pulsación fundamental y
mismo número a señales con igual pulsación, e indique en la siguiente tabla el orden que ocupa cada
señal (observe que la pulsación 2π equivale a la pulsación 0, es decir, a una señal constante o de
mínima frecuencia) :

x 0 [n] x1 [n] x 2 [n] x3 [n] x 4 [n] x5 [n] x 6 [n] x 7 [n] x8 [n]

Orden en frecuencia

2.1.2 Ejercicio 2: Señales sinusoidales en forma seno

Repita el ejercicio anterior, pero esta vez trabajando con señales en forma seno, es decir:

⎛ 2kπ ⎞
x ′k [n] = sin (ω 0 k n ) = sin ⎜ n ⎟ , k ∈ {0,1,2,3,4,5,6,7,8}
⎝ 8 ⎠

Observe el nuevo gráfico obtenido, e intente explicar por qué las señales x′4 [n] y x8′ [n] no presentan
el aspecto que cabría esperar a raíz de la expresión analítica que tienen; contraste su explicación con el
profesor de prácticas. Proponga una solución numérica (no gráfica) y póngala en práctica, de modo que
los resultados sean los esperables (utilice el comando round) y que la solución adoptada se pueda aplicar
a todas las señales representadas.

A la vista del nuevo gráfico obtenido, y sin hacer ningún tipo de cálculos aparte, conteste de nuevo a
las siguientes cuestiones:

─ Del conjunto de las nueve señales representadas, ¿cuántas son distintas?

─ Rellene la tabla adjunta:

*
Para deducirlo acuda a su definición, es decir, el mínimo desplazamiento que ha de efectuarse sobre la señal
para que coincida con ella misma.
x 0′ [n] x1′ [n] x ′2 [n] x3′ [n] x ′4 [n] x5′ [n] x 6′ [n] x 7′ [n] x8′ [n]

Valor de ω 0

Periodo fundamental, N 0


ω fundamental,
N0

─ Ordene las nueve señales, dando número ‘cero’ a la de menor frecuencia o pulsación fundamental y
mismo número de orden a señales con igual pulsación, e indique en la siguiente tabla el orden que
ocupa cada señal:

x 0′ [n] x1′ [n] x 2′ [n] x3′ [n] x 4′ [n] x5′ [n] x 6′ [n] x 7′ [n] x8′ [n]

Orden en frecuencia

2.1.3 Ejercicio 3: señales exponenciales puras

Sean las señales exponenciales complejas:

2 kπ
⎛ 2kπ ⎞ ⎛ 2kπ ⎞
x k [n] = e n ⎟ , k ∈ {0,1,2,3,4,5,6,7,8}
j n
8 = cos⎜ n ⎟ + j sin ⎜
⎝ 8 ⎠ ⎝ 8 ⎠

Observe que sus partes real e imaginaria son respectivamente las señales representadas en los dos
ejercicios anteriores. Teniendo esto en cuenta, observe simultáneamente los gráficos de los dos ejercicios
anteriores (cada uno en una ventana) y conteste a las siguientes cuestiones:

─ Del conjunto de las nueve señales exponenciales, ¿cuántas son distintas?

─ Teniendo en cuenta que las propiedades de periodicidad de una señal exponencial pura son las
resultantes de combinar sus partes real e imaginaria, del conjunto de las nueve señales exponenciales,
¿cuántas frecuencias fundamentales distintas se observan?

─ Del conjunto de las nueve señales exponenciales, ¿cuál presenta frecuencia menor, cuál la presenta
mayor, y qué valor en cada caso?
2.2 Periodicidad en señales discretas
2.2.1 Ejercicio 4: Comparación señales discretas vs. señales continuas

Sean las siguientes señales:

⎛ 2π ⎞ ⎛ 2π ⎞
x1 [n] = cos⎜ n ⎟ , x1 (t ) = cos⎜ t⎟
⎝ 12 ⎠ ⎝ 12 ⎠
⎛ 8π ⎞ ⎛ 8π ⎞
x 2 [n] = cos⎜ n ⎟ , x 2 (t ) = cos⎜ t⎟
⎝ 31 ⎠ ⎝ 31 ⎠
⎛1 ⎞ ⎛1 ⎞
x3 [n] = cos⎜ n ⎟ , x3 (t ) = cos⎜ t ⎟
⎝2 ⎠ ⎝2 ⎠

Desarrolle un script que genere estas seis señales en los intervalos n ∈ [0,50] y t ∈ [0,50] (definido en
segundos a intervalos de 0.2 s.) respectivamente, y represéntelas en un mismo gráfico de tres filas o
subgráficos (utilice subplot). En cada subgráfico represente superpuestas la señal continua (utilice plot)
y la señal discreta correspondiente (utilice stem).

A partir de la inspección de los gráficos, obtenga el periodo mínimo de repetición de las seis señales,
es decir, su periodo fundamental, y compruebe que los cálculos teóricos1 coinciden con sus
observaciones. Rellene la tabla adjunta:

x1 [n] x 2 [n] x3 [n]

N0 observado

N0 teórico

x1 (t ) x 2 (t ) x 3 (t )

T0 observado

T0 teórico

2.2.2 Ejercicio 5: función de comprobación de periodicidad

El objetivo de este ejercicio es desarrollar una función de MATLAB que verifique si una señal dada
presenta un periodo también dado.

Más específicamente, la función recibirá como parámetros un vector con valores de una señal discreta
(parámetro signal) y el valor del periodo que se desea verificar (parámetro period). El procedimiento
propuesto para hacer la verificación consiste en generar una nueva señal consistente en la señal signal
desplazada tantas unidades como indique el parámetro period. A continuación se seleccionarán las partes

1
Tenga en cuenta que en las señales continuas el periodo fundamental se obtiene analíticamente como T0 = 2π ω 0 , y para

ω 0 m m0
las señales discretas, el periodo es el valor entero N0 que verifique = = , siendo m0 cualquier número entero.
2π N N 0
de ambas señales que estén definidas, y se restarán (ver Fig. 1); si el resultado es nulo, indicará que
signal presenta el periodo dado; si no, no. Este resultado lo devolverá la función como valor de retorno.
No utilice bucles ni estructuras de control para llevar a cabo esta función.

signal
signal
desplazada
period

is_periodic

Fig. 1: Diagrama de funcionamiento propuesto para la función f_test_period

La función 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 señal ‘signal’ y un número ‘period’
% y devuelve ‘0’ si la señal presenta dicho periodo, y un valor
% distinto de cero en caso contrario. Esta función hace uso de
% la función ‘length(X)’.

Para comprobar el funcionamiento de la función desarrollada, aplicarla sobre las tres señales 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
x1 [n] x 2 [n] x3 [n]

period

is_periodic

Comente los resultados obtenidos, e indique, si procede, alguna solución a los problemas numéricos
que haya encontrado:
2.2.3 Ejercicio 6: periodicidad de la suma de señales periódicas

Considere las tres señales siguientes:

⎛ 2π ⎞ ⎛ 3π ⎞
x1 [n] = cos⎜ n ⎟ + 2 ⋅ cos⎜ n⎟
⎝ N ⎠ ⎝N ⎠
⎛2 ⎞ ⎛3 ⎞
x 2 [n] = cos⎜ n ⎟ + cos⎜ n ⎟
⎝N ⎠ ⎝N ⎠
⎛ 2π ⎞ ⎛ 5π ⎞
x3 [n] = cos⎜ n ⎟ + 3 ⋅ cos⎜ n⎟
⎝ N ⎠ ⎝ 2N ⎠

Suponiendo que N=6, represente las tres señales en un gráfico de 3x1 subgráficos (utilice subplot).
Represéntelas inicialmente en el rango n ∈ [0,49] . A continuación, a través de la observación de los
gráficos y de la utilización de la función f_test_period, obtenga el periodo fundamental de cada una y
represéntelas de nuevo, esta vez en un intervalo de dos periodos fundamentales (si alguna no fuera
periódica, represéntela en n ∈ [0,49] ). Dibuje el resultado obtenido:

x1[n]

x2[n]

x3[n]

Indique en qué condiciones la suma de dos señales periódicas es una señal periódica:
2.2.4 Ejercicio 7: periodicidad del producto de señales periódicas

Considere las tres señales siguientes:

⎛π ⎞ ⎛π ⎞
x1 [n] = sin ⎜ n ⎟ ⋅ cos⎜ n⎟
⎝4 ⎠ ⎝4 ⎠
⎛π ⎞
x 2 [n] = cos 2 ⎜ n ⎟
⎝4 ⎠
⎛π ⎞ ⎛π ⎞
x1 [n] = sin ⎜ n ⎟ ⋅ cos⎜ n ⎟
⎝4 ⎠ ⎝8 ⎠

Represente las tres señales en un gráfico de 3x1 subgráficos (utilice subplot). Represéntelas en el
rango n ∈ [0,49] . A continuación, a través de la observación de los gráficos y de la utilización de la
función f_test_period, obtenga el periodo fundamental de cada una . Dibuje el resultado obtenido:

x1[n]

x2[n]

x3[n]

Indique en la tabla adjunta cuál es el periodo de las señales factores y el periodo de la señal producto.

N 0 , factor 1 N 0 , factor 2 N 0 , señal


x1 [n]

x 2 [n]

x3 [n]

Comente en qué condiciones el producto de dos señales periódicas es una señal periódica (efectúe las
pruebas adicionales que considere necesarias para llegar a una conclusión fundada):
2.2.5 Ejercicio 8: función de cálculo de periodicidad

El objetivo de este ejercicio es desarrollar una función de MATLAB que obtenga y devuelva el
periodo fundamental de una señal dada; si la señal no es periódica devolverá valor nulo, y si es constante,
valor unidad.

Más específicamente, la función recibirá como único parámetro una señal discreta (parámetro
signal). El procedimiento propuesto para obtener su periodo fundamental consiste en crear un bucle que
vaya llamando a la función f_test_period con valores crecientes del parámetro period (comenzando en
el valor 1 y terminando en la mitad de la longitud de la señal). Cuando la llamada a dicha función arroje
valor nulo, se devolverá el valor del periodo que ha provocado esta situación. Si el bucle terminara sin
que se haya verificado la condición anterior, se devolverá valor nulo.

Para desarrollar esta función es probable que requiera hacer uso de las funciones de programación
for, if y return. La función 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 señal ‘signal’ y devuelve su periodo, si
% la señal es periódica, ‘0’ si no lo es, y ‘1’ si es una señal
% de valor constante.

Compruebe su funcionamiento con cualquiera de las señales de los ejercicios anteriores.

También podría gustarte