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