Guion 4 Solucion

Anuncio
Práctica 4: Series de Fourier
Grupo
Puesto
Apellidos, nombre
Apellidos, nombre
Fecha
SOLUCION
El objetivo de esta práctica es profundizar en la respuesta de sistemas LTI, comprobar el
comportamiento de estos sistemas ante señales exponenciales complejas, y desarrollar prácticamente
varios de los conceptos relacionados con el Desarrollo en Serie de Fourier (DSF) de señales discretas
periódicas.
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_4_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.).
4.1 Exponenciales complejas como autofunciones de sistemas LTI
4.1.1
Ejercicio 1: sistemas LTI causales
El objetivo de este ejercicio es comprobar que las exponenciales complejas discretas son
efectivamente autofunciones de los sistemas LTI. Para comprobarlo, este ejercicio está orientado a
localizar los autovalores correspondientes a varias de estas funciones.
Sea un sistema LTI causal definido por la siguiente relación entrada/salida:
y[n] − 0.25 y[n − 1] = x[n] + 0.9 x[n − 1]
Suponiendo que se verifica la condición de reposo inicial para n < 0 , es posible obtener
analíticamente su respuesta al impulso, x[n] = δ [n] → y[n] = h[n] , aplicando recurrencia:
De la ecuación que describe el sistema, se desprende que y[n] = x[n] + 0.9 x[n − 1] + 0.25 y[n − 1] :
h[0] = y[0] = x[0] + 0.9 x[− 1] + 0.25 y[− 1] = 1
h[1] = y[1] = x[1] + 0.9 x[0] + 0.25 y[0] = 0.9 + 0.25
h[2] = y[2] = x[2] + 0.9 x[1] + 0.25 y[1] = 0.25 ⋅ (0.9 + 0.25)
h[3] = y[3] = x[3] + 0.9 x[2] + 0.25 y[2] = 0.25 2 ⋅ (0.9 + 0.25)
…
Deduzca la expresión general de h[n ] :
h[n ] =
1,

n −1
(0.9 + 0.25) * (0.25)
0

n=0
n>0
n<0
Sean las señales:
x1 [n] = e
π
j n
4
x 2 [n] = sin (n ⋅ π 8 + π 16)
x 3 [n] = (9 10)n
x 4 [n] = n + 1
Defina las cuatro señales xi [n] en el intervalo n ∈ [− 20,50] , y la señal h[n ] en el intervalo n ∈ [0,70]
y represéntelas en cinco gráficos en fila en una misma ventana (utilice subplot). Caso de que alguna
señal tenga parte real y parte imaginaria, representa simultáneamente su módulo y fase en el mismo
gráfico (comando hold y dos colores).
Parte A: obtención de las respuestas con la función conv.
Observe que h[n ] toma valores en el intervalo n ∈ [0, ∞ ) ; por lo tanto, ya que en la práctica no podemos
definir un vector de infinitos valores, cualquier cálculo de una respuesta y[n] utilizando la función conv
tendrá que utilizar una versión reducida o truncada de h[n ] , que denominaremos hT [n] . Según se vio en
la práctica anterior, ello hará que la respuesta obtenida, yT [n] , sea una versión reducida o truncada de la
respuesta teórica, y[n] . Teniendo en cuenta que en este caso hT [n] se ha definido en el intervalo
n ∈ [0,70] , indique en qué intervalo se verificará que yT [n] = y[n] .
n∈
[0, 50]
NOTA: en principio según el guión el transitorio es prácticamente nulo a partir de n ≥ 0 , con lo cual
el intervalo debería ser [0,50]. Para sacarlo gráficamente, observe el comportamiento (con la
herramienta Datatip) de la convolución de h[n] con las señales periódicas
Obtenga, utilizando la función conv, las respuestas y i [n] , y represéntelas en un nuevo gráfico de
cuatro filas; represéntelas únicamente en el intervalo en que son válidas.
Obtención de los autovalores:
Debido a la imposibilidad que tiene MATLAB de trabajar con señales infinitamente largas, las señales
xi [n] han de comenzar en un instante determinado. Ello da lugar a una respuesta natural o transitoria en
y i [n] , que conforme aumenta n se va haciendo despreciable. En este caso, comenzando las señales en
n = −20 , el transitorio es prácticamente nulo para n ≥ 0 . Como la propiedad de las exponenciales como
autofunciones se da en régimen permanente, para comprobarla compararemos las entradas y las
respuestas sólo desde el índice n = 0 hasta el final del intervalo de validez de las respuestas. En este
intervalo, si la relación y i [n] xi [n] es constante, indica que xi [n] es una autofunción del sistema, y que
dicha constante es el autovalor buscado.
Represente las cuatro señales H i = yi [n] xi [n] en un nuevo gráfico de cuatro filas y rellene la tabla
adjunta:
x1 [n]
Es autofunción (SI/NO)
Autovalor H:
x 2 [n]
x 3 [n]
x 4 [n]
SI
NO
SI
NO
1.7415+1.147i
-
2.7692
-
Parte B: obtención de las respuestas con la función filter.
El comando filter calcula la respuesta de un sistema LTI causal especificado por una ecuación en
diferencias, lineal y de coeficientes constantes, y suponiendo reposo inicial. Más específicamente, sea el
sistema está definido por la ecuación:
N
∑a
k
y[n − k ] =
k =0
M
∑ b x[n − k ]
k
k =0
Para un vector fila de valores de entrada, x, la expresión y=filter(b,a,x) obtiene el vector de valores de
salida, y, siendo a un vector con los valores de ak, y b un vector fila con los valores de bk. El vector de
salida tiene el mismo rango de valores que el de entrada, y todos sus valores son válidos (a diferencia de
lo que ocurre con la función conv debido al uso de h[n ] , truncada por necesidad).
Obtenga, ahora utilizando la función filter, las respuestas y i [n] , y represéntelas en un nuevo gráfico
de cuatro filas. Obtenga, como en el caso anterior, los autovalores, comparando las entradas y las
respuestas desde el índice n = 0 .
Represente de nuevo las cuatro señales H i = yi [n] xi [n] en un nuevo gráfico de cuatro filas y rellene
la tabla adjunta:
x1 [n]
x 2 [n]
x 3 [n]
x 4 [n]
SI
NO
SI
NO
1.7415+1.147i
-
2.7692
-
Es autofunción (SI/NO)
Autovalor H:
4.2 Desarrollo en Serie de Fourier de señales discretas periódicas
Dada una señal x[n] periódica, para obtener con MATLAB los coeficientes a k de su DSF, utilice la
función a=(1/N)*fft(x), donde N es el periodo fundamental de la señal x[n] , y x es un vector fila que
contiene los valores de un periodo cualquiera, y sólo uno, de x[n] .
La operación inversa se realiza del siguiente modo: dada la serie de coeficientes a k , k ∈ [0, N − 1] ,
utilice x=N*ifft(a) para obtener un periodo de la señal periódica x[n] .
Para evitar efectos derivados de la precisión finita con que opera MATLAB, redondee al quinto
decimal (recuerde lo visto en la Práctica 2) los valores de las señales resultantes de ambas operaciones
(fft e ifft) antes de hacer nada más con ellas.
4.2.1
Ejercicio 2: DSF de sinusoides discretas
Sean las siguientes señales discretas periódicas:
 2π 
~
x1 [n] = cos
n  , que es una señal par
 10 
 2π 
~
x 2 [n] = sin 
n  , que es una señal impar
 10 
Obtenga los coeficientes de su DSF siguiendo el procedimiento indicado: defina las señales
x1 [n] = ~
x1 [n] y x 2 [n] = ~
x 2 [n] en el intervalo n ∈ [0, N 0 − 1] , y aplique la expresión indicada. En un
mismo gráfico, represente en la fila superior tres gráficos con x1 [n] , el módulo de sus coeficientes y la
fase de sus coeficientes; en la fila inferior represente en otros tres gráficos la información correspondiente
de x 2 [n] .
Compruebe que los coeficientes corresponden con lo que cabría esperar, y que efectivamente verifican
las propiedades que corresponden a las señales pares e impares. Comente, en este sentido, el resultado
obtenido:
NOTA: es posible que la representación de las fases no salga idéntica. En tal caso, un problema que
probablemente tengan muchos alumnos sean factores de redondeo.
4.2.2
Ejercicio 3: Obtención de una señal a partir de sus coeficientes
Sea una señal discreta periódica de periodo N 0 = 5 , con coeficientes:
a 0 = 1, a 2 = a −* 2 = e jπ 4 , a 4 = a −* 4 = 2e jπ
3
A la vista de los coeficientes, espera que la señal periódica a que pertenecen, ~
x [n ] , sea una señal que
tome valores complejos, que sólo tome valores reales, o que sólo los tome imaginarios?
Determine analíticamente el valor de los coeficientes a k . Para ello recuerde que los coeficientes del
DSF cumplen la relación
ak ,
k ∈ [0, N 0 − 1]
a k = ak + N0 .
a 0 = 1, a1 = a − 4 = a 4* = 2e − jπ 3 , a 2 = e jπ 4 , a3 = a − 2 = a 2* = e − jπ 4 , a 4 = 2e jπ 3
Expresión analítica: X(n) = 1 + 4 cos(2pi/5n - pi/3) + 2 cos(4pi/5n + pi/4);
Aplique sobre el vector de coeficientes la función ifft para obtener un periodo, x[n ] de la señal
periódica a que pertenecen. Genere a continuación la señal ~
x [n ] en el intervalo n ∈ [− 3N ,3N − 1]
replicando la señal x[n ] , y represéntela:
0
0
4.2.3
Ejercicio 4: DSF de señales discretas cuadradas
Sean las siguientes señales discretas periódicas:
x1 [ n] = { 1,
, 0≤n≤7
1,
x 2 [n] = 
0,
,
1,
x3 [n] = 
0,
,
con periodos
0≤n≤7
8 ≤ n ≤ 15
0≤n≤7
8 ≤ n ≤ 31
N 01 = 8 , N 02 = 16 y N 03 = 32 respectivamente.
Defina tres vectores, x1, x2 y x3, cada uno con un solo periodo de las tres señales definidas.
Represente a continuación en un mismo gráfico de tres filas las tres señales periódicas en el intervalo
n ∈ [0,63] (para ello, replique los periodos de cada una que sea necesario).
Obtenga los coeficientes del DSF de las tres señales y represente su módulo en un mismo gráfico de
tres filas. Indique cuál es el valor medio en un periodo de cada señal y compruebe que el primer
coeficiente del desarrollo de cada señal coincide con su valor medio en un periodo. Asimismo calcule la
energía por período de las tres señales, tanto a partir de las muestras de la señal como de los coeficientes
ak:
x1 [n]
x 2 [n]
x 3 [n]
Valor medio:
1
0.5
0.25
Coeficiente a0 :
1
0.5
0.25
Energía a partir de x[n]
1
0.5
0.25
Energía a partir de ak
1
0.5
0.25
Coeficientes de la DFS para las señales extendidas
Coeficientes de la DFS para un periodo de la señal
4.2.4
Ejercicio 5: Reconstrucción de una señal a partir de parte de sus coeficientes.
El objetivo del ejercicio es observar el efecto que tiene eliminar parte de las componentes
frecuenciales de una señal, y comprobar que en señales discretas no se produce el fenómeno de Gibbs.
Este ejercicio parte de la serie de coeficientes, a k , k ∈ [0,31] , obtenidos para la señal x3 [n] del
ejercicio anterior; por lo tanto, replique la parte del ejercicio anterior necesaria para obtenerlos.
Teniendo en cuenta que al ser x3 [n] una señal real, sus coeficientes verifican a k = a −* k , genere en el
intervalo n ∈ [0,32] las siguientes señales, x3 _ m [n] , que consisten en el DSF de x3 [n] truncado (es decir,
con sólo m de los armónicos):
2
x3 _ 2 [n] =
∑
jk
2π
n
32
jk
2π
n
32
ak e
k = −2
8
x3 _ 8 [n] =
∑
ak e
k = −8
x3 _ 12 [n] =
12
∑
jk
ak e
k = −12
2π
n
32
x3 _ all [n] =
16
∑
jk
ak e
2π
n
32
k = −15
Represente las cuatro señales en un mismo gráfico de cuatro filas, de modo que se muestre cómo la
familia de funciones va convergiendo a x3 [n] . Indique si se aprecia el fenómeno de Gibbs en las
reconstrucciones parciales.
x3_2[n]
x3_8[n]
x3_12[n]
x3_all[n]
Valor medio:
0.25
0.25
0.25
0.25
Coeficiente a0 :
0.25
0.25
0.25
0.25
Energía a partir de x[n]
0.2155
0.2402
0.2459
0.25
Energía a partir de ak
0.2155
0.2402
0.2459
0.25
Descargar