Práctica 5: Transformada de Fourier Apellidos, nombre Apellidos, nombre SOLUCION Grupo Puesto Fecha El objetivo de esta práctica es mostrar al alumno el modo de obtener la Transformada de Fourier (TF de una señal en tiempo continuo, observar ciertas características de la TF, y comprobar la utilidad de la representación de sistemas LTI en el dominio transformado. 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_5_puesto_xx. zip, conéctese al sistema de entrega de prácticas de la Intranet y entréguelo en el grupo que corresponda. 5.1 Aproximación numérica a la TF de tiempo continuo Para obtener en MATLAB la TF de una señal continua, se acude a aproximaciones numéricas: dada una señal x ( t, la integral que involucra el cálculo de su TF es posible aproximarla por un sumatorio, del siguiente modo: X jωt jω ( = ( = ( ( nτ jω x t e dt lim x nτ e τ 0 n= Para la mayoría de las señales, ésta es una buena aproximación. Si además la señal x ( t es nula fuera del intervalo 0 t < T, y siempre que se tome un valor suficientemente pequeño de τ, es posible escribir: X N 1 τ jωt jωt jω ( = ( = ( ( ( nτ jω x t e dt x t e dt x nτ e T 0 n= 0, donde N es un entero tal que T = Nτ, con lo que el sumatorio se extiende desde t = 0 hasta t = T τ e incluye T τ valores muy próximos de la variable t (tantos y tanto más próximos cuanto menor sea el valor de τ. Obsérvese que el sumatorio es precisamente la DFT multiplicada por τ de una señal discreta x [] n = x( nτ, que toma valores en n [ 0, N 1]. Por lo tanto, recordando lo visto en la Práctica 4, la expresión Xw=tao*fft(x arrojará una señal discreta: X [] k X ( jω donde ω k k 2πk 2πk = T Nτ =, k [ 0, N 1], que contiene el valor aproximado de N muestras de la TF de x ( t. Sin embargo, dado que la función fft obtiene la DFT en el intervalo ω [ 0, 2π ], en el que el subintervalo ω [ π, 2π ] corresponde a pulsaciones negativas, es necesario recolocar la segunda mitad del vector X al principio del vector ω π / τ, π / τ : (Xw=fftshift(Xw para obtener la aproximación de la TF en [ ] τ [] k X ( X = jw k donde ωk 2πk 2πk N N = =, k, T Nτ 2 2, donde se asume que N es par.
Dado que X [] k representa muestras de una señal continua, X ( jω, en un intervalo de pulsaciones π π ω k,, represéntela siempre en este intervalo con el comando plot en vez de con stem. τ τ Teniendo en cuenta estas ideas, desarrolle los ejercicios que propone esta práctica. 5.1.1 Ejercicio 1: obtención de la TF de señales básicas Sean las señales: x x x x 1 2t ( t = e 2t ( t = e cos(2π 2 t 2t ( t = e cos(8π 3 t 2 ( t = e t cos(100 4 t El objetivo es obtener y representar su TF siguiendo el método ya expuesto. Para ello defina las cuatro señales en el intervalo 0 t < 10 utilizando τ = 0. 01, obtenga su correspondiente TF y defina un vector con los valores de la variable ω a que corresponden cada uno de los valores de las TF obtenidas (según lo visto, w=[-pi:2*pi/n:pi]*(1/tao; en este caso, por ser N=T/tao=1000 un número par y resultar 2*pi/N múltiplo de pi, haga además w=w(1:end-1 para que la longitud de este vector iguale a los T/tao valores del vector transformada. Represente en una misma ventana de cuatro filas y dos columnas (utilice subplot las ocho funciones, cada señal (en función de t y su correspondiente transformada (en función de ω, únicamente su módulo en una fila distinta. A la vista de los gráficos obtenidos indique las relaciones existentes entre parámetros observables en cada una de las cuatro señales (p.ej., el valor medio y la frecuencia de variación de cada una de ellas, y parámetros observables en sus respectivas TF (p.ej., valores concretos, aspecto y localización de los máximos:
5.1.2 Ejercicio 2: extracción de parámetros de la TF de señales básicas A fin de verificar los datos observados en el ejercicio anterior, a continuación del código de dicho ejercicio: 1. Obtenga el valor medio de cada señal x i ( t (utilice para ello la función mean y compruebe que coincide con el coeficiente a 0 de su DSF (recuerde que este coeficiente es proporcional al valor de la TF en el origen: a X ( j0 / T 0 =. Rellene la tabla adjunta: x 1 ( t x 2 ( t x 3 ( t ( t Valor medio 0.050502 0.0051017 0.00081631 0.00052175 a 0 0.050502 0.0051017 0.00081631 0.00052175 2. Obtenga en cada función X i ( jω la pulsación a la cual se produce el primer máximo (utilice para ello la función [C,I]=max( y compruebe que coincide aproximadamente con la pulsación de la oscilación de cada señal x i ( t que figura en su respectiva expresión analítica. Rellene la tabla adjunta: k x 1 ( t x 2 ( t x 3 ( t ( t Pulsación 0 2*pi 8*pi 100 ω X ( jω es máximo i k 0 6,2832 25.1327 99.9026 3. Verifique la Relación de Parseval. Para ello, obtenga por una parte la energía de cada señal * ( t ( jω x i, y a continuación compruebe que coincide con 1 2π veces la energía de cada función X i. Rellene la tabla adjunta: x 4 x 4 ( t x 1 ( t x 2 ( t x 3 ( t ( t 2 x i dt 0,2550332 0,141532 0,130822 0,130092 1 2 X i ( jω dω 0,255052 0,141532 0,130822 0,130092 2π x 4 * En esta práctica se utiliza repetidamente una aproximación discreta de una señal continua, f ( t, tomando una muestra cada τ valores, de modo que f [ n] = f ( nτ. En esta situación, el área abarcada por f ( t en un intervalo de t es posible aproximarla como la suma de áreas abarcadas por rectángulos de altura f [] n y anchura τ, en el intervalo equivalente de n, de modo que se verifica: f ( t dt = τ f [ n] = τ f [ n] Análogamente, deduzca la aproximación a seguir para calcular ( jω paso del vector ω. 1 2π X i 2 dω, para ello utilice el
5.1.3 Ejercicio 3: TF de una señal de audio, obtención y caracterización El objetivo de este ejercicio es observar y caracterizar el espectro de una señal real de audio. Para obtener muestras de una señal de audio, incluya en su fichero.m los siguientes comandos: load laughter; tao=1/8192; T=6.4251; N=T/tao; % laughter.wav es el fichero con muestras de la señal de audio % Intervalo de tiempo, en segundos, entre muestras consecutivas % Duración total, en segundos, de la señal de audio % Número total de muestras o valores discretos El resultado será directamente un vector columna de nombre y, que contiene N=52634 muestras de una señal de audio, y ( t, de duración total T=6,425s, tomadas cada τ = 1 8192s. Si su equipo dispone de altavoces, reproduzca el contenido de la señal utilizando el comando sound(y,(1/tao. Siguiendo el mismo procedimiento que en el ejercicio anterior, obtenga la TF de esta señal. Represente en una misma ventana de cuatro filas (utilice subplot, por un lado la señal (en función de t y por otro, en las otras tres filas, el módulo y las partes real e imaginaria de su correspondiente Transformada de Fourier (en función de ω.
Operando exclusivamente con la TF indique qué componente de frecuencia, en hertzios, de la señal y ( t es la de valor más pronunciado (utilice la función max sobre el módulo de la TF y cuál es el valor medio de la señal y ( t : Frecuencia máxima (Hz Valor medio ( a 0 1122 Hz (7050 rad/s 0.00028903 Indique además si se verifica, por ser y ( t una señal real, que Y ( jω Y ( jω verifique que la señal resta de ambas, Y ( jω Y ( jω = *. Para comprobarlo *, tiene energía prácticamente nula (en
comparación con la de Y ( jω. Para obtener la señal inversa utilice la función flipud (recuerde que al ser y un vector columna, su TF también lo será, y por lo tanto no tiene sentido utilizar fliplr, para obtener la señal conjugada utilice conj, y para restar ambas señales tenga en cuenta que sus índices correspondientes a ω = 0 han de estar alineados (algo que por defecto no ocurre ya que al tener la señal transformada un número par de elementos, la función flipud no sólo invierte sino que desplaza un valor. Rellene la tabla adjunta: Energía de Y ( jω Energía de Y ( jω Y ( jω 0.16702 * 0 5.1.4 Ejercicio 4: síntesis de la TF de una señal real a partir de su TF El objetivo de este ejercicio es obtener una señal y ( t a partir de su TF. Para ello, este ejercicio continúa el ejercicio anterior, es decir, el punto de partida es el vector de muestras de Y ( jω que allí se obtuvo. Dado el vector Yw que representa la señal Y ( jω, el modo de obtener su transformada inversa, ( t y r, representada por el vector yr, es utilizar el comando yr=ifft(fftshift(yw/tao;. Dado que, por problemas de redondeo, esta operación genera una señal con una pequeña parte imaginaria, si se sabe, como es el caso, que la señal resultante es real, conviene eliminar la parte imaginaria escribiendo yr=real(yr;. Represente en una misma ventana de tres filas (utilice subplot la señal ( t y, la señal ( t, y la diferencia entre ambas. Si su equipo dispone de altavoces, reproduzca el contenido de la señal original y de su TF inversa e indique si subjetivamente aprecia diferencia entre ambas: y r
Para obtener una referencia cuantitativa de su similitud o de su diferencia, calcule y consigne en la tabla adjunta la energía total de las tres señales: y ( t y r ( t y( t y ( t Energía: 0.16702 0.16702 0 r Comente el resultado obtenido: