Está en la página 1de 8

AMPLIACIN DE MATEMTICAS (2o Ing. de Telecomunicacin) Departamento de Matemtica Aplicada II.

Universidad de Sevilla CURSO ACADMICO 2008-2009

Prctica IV: La transformada Discreta/Rpida de Fourier.

Interpolacin Trigonomtrica Compleja


Interpolacin trigonomtrica compleja. El problema de la interpolacin trigonomtrica compleja, con periodo prejado T > 0, consiste en, dado un vector arbitrario y = (y0, y1 , . . . , yN 1 )t CN , encontrar una combinacin lineal de exponenciales complejas 1 P (t) = N 2 2 0 + 1 exp ti + . . . + N1 exp (N 1)ti T T N 1 2 1X n exp n ti = N n=0 T k T N

tal que P = yk , para todo k = 0, 1, . . . , N 1.

Conviene mencionar que el factor inicial 1/N no es ms que un convenio y se incluye para seguir la notacin habitual en los textos de procesado digital de seales; convenio que, por otra parte, tambin utiliza el programa MATLAB. Es bien conocido que este problema de interpolacin tiene siempre solucin nica y ello se debe a las notables propiedades de las matrices de Fourier. 1 1 1 1 1 2 ... N 1 4 2(N1) 1 2 FN := . . . . . ... . . . . . . . . N1 2(N1) (N1)(N 1) 1 1

2i , es decir, la raz primitiva N-sima de la unidad. En Como es usual, = exp N 1 concreto, se verica que FN = NFN e y= 1 FN , N = FN y,

donde = (0 , 1 , . . . , N1 )t . Ejercicio resuelto 1. Verique numricamente que F4 F4 = 4id4 . >> fou4=[1 1 1 1;1 i -1 -i;1 -1 1 -1;1 -i -1 i] >> fou4*conj(fou4) Ejercicio 2. Repita el ejercicio anterior con F6 . La transformada rpida de Fourier. Acabamos de ver que la resolucin efectiva del problema de la interpolacin trigonomtrica compleja puede realizarse simplemente multiplicando por la matriz de Fourier conjugada, lo cual conduce a N 2 mulpiplicaciones complejas y otras tantas sumas. Para las aplicaciones actuales este orden computacional es realmente alto pero, afortunadamente, hay un algoritmo que es capaz de reducir este costo a un nivel de aproximadamente N log2 N: la transformada rpida de Fourier. La orden t de MATLAB implementa este mtodo numrico. Ejercicio resuelto 3. Resuelva el problema de interpolacin trigonomtrica compleja en [0, 2] para el vector y = (1, 2, 3, 4)t y compruebe grcamente que la parte real del correspondiente "polinomio" de interpolacin complejo interpola los pares 3 (0, 1), ( , 2), (, 3), ( , 4) . 2 2 Qu pares interpola la parte imaginaria? (En un fichero de datos intercom.m) y=1:4;beta=fft(y); t=0:0.001:2*pi; fun=zeros(1,length(t)); for k=1:4 fun=fun+beta(k)*exp((k-1)*t*i); end fun=0.25*fun; plot(t,real(fun)) hold on plot(0:pi/2:3*pi/2,1:4,or) hold off shg pause plot(t,imag(fun)) 2

hold on plot(0:pi/2:3*pi/2,zeros(1,4),or) hold off shg

Interpolacin Trigonomtrica Real


Interpolacin trigonomtrica real. Sea f : R R una seal peridica de periodo T > 0, de la cual slo se conocen sus valores en una cierta coleccin equiespaciada de puntos k T, k = 0, 1, . . . , N 1. N Por comodidad, asumiremos siempre que N = 2M es par. Por otro lado, consideremos el conjunto Trig(T, N) de las siguientes funciones T -peridicas tk := 2 2 2 2 cos 0 t = 1, cos M t sen n t , cos n t : n = 1, . . . , M 1 . T T T T El problema de la interpolacin trigonomtrica real consiste en encontrar una combinacin lineal de las funciones del conjunto Trig(T, N) (denominada polinomio trigonomtrico equilibrado)
M1 X n=1

P (t) = a0 + tal que

2 2 2 an cos n t + bn sen n t + aM cos M t , T T T

P (tk ) = f (tk ),

para todo k = 0, 1, . . . , N 1.

Las condiciones de interpolacin anteriores, adems, muestran claramente el por qu de no incluir en el conjunto Trig(T, N) las funciones elementales y T -peridicas sen 0 2 t y T sen M 2 t . Simplemente son funciones redundantes en el proceso de interpolacin pues T valen 0 en cada tk . Desde el punto de vista del Anlisis de Fourier, lo que se pretende con la interpolacin trigonomtrica es conseguir una serie nita trigonomtrica fcilmente manipulable, que represente a f y que pueda verse, por tanto, como una versin truncada de la serie de Fourier de f en [0, T ]. En cualquier caso, conviene subrayar que, en general, esta serie nita trigonomtrica no es necesariamente una suma parcial nita de la serie de Fourier asociada a f . Puede probarse que el polinomio trigonomtrico equilibrado P siempre existe y es nico, o equivalentemente, los N coecientes reales

:= {ao , a1 , . . . , aM , b1 , . . . , bM1 } estn unvocamente determinados. Frmulas de interpolacin usando la orden t. Por comodidad, supondremos otra vez que T = 2 y consideremos la correspondiente funcin f : R R peridica de periodo 2. A su vez, denotemos k yk := f 2 , k = 0, 1, . . . , N 1 (N = 2M). N

Si escribimos y = (y0, y1 , . . . , yN1 )t RN , podemos considerar su transformada discreta de Fourier = f f t(y) CN y obtener, por tanto, el polinomio de interpolacin trigonomtrico complejo asociado al vector y. En concreto, 1X h(t) := n exp(nti). N n=0
N1

Al ser y un vector real, puede probarse que las coordenadas de verican que 0 , M R y n = Nn , para n = 1, . . . , M 1. La utilidad de este aparente rodeo es que a partir de es inmediato el clculo de los coecientes del problema de interpolacin trigonomtrica real. A saber 0 , N 2 Re(n ) , N 2 Im(n ) N M , N

a0 :=

an :=

bn :=

(n = 1, . . . , M 1),

aM :=

donde, lgicamente, {a0 , a1 , . . . , aM , b1 , . . . , bM1 } son los coecientes del polinomio de interpolacin trigonomtrico real asociado a y en [0, 2]. Ejercicio resuelto 4. Disee una funcin en MATLAB que implemente la interpolacin trigonomtrica real a partir de la transformada rpida de Fourier. La funcin debe determinar, al menos, los coecientes del polinomio de interpolacin trigonomtrico equilibrado y una grca de dicho polinomio en [0, T ], donde T es el periodo de muestreo. Los argumentos de entrada deben ser la muestra, el periodo de muestreo T y el paso h del mallado para generar la grca del polinomio en [0, T ]. Usando la orden plot, represente grcamente, en el intervalo [0, 0.32] el siguiente polinomio trigonomtrico de periodo 0.32 = 1/f1 : f(t) = 0.5 + 2 sen(2f1 t) + cos(2f2 t), f1 = 3.125Hz, f2 = 6.25Hz.

A partir de f , obtenga una muestra de 64 puntos equiespaciados en el intervalo anterior. Verique que la funcin diseada permite reconstruir grcamente, a partir de la muestra, la funcin f. (Grfica de la seal original) >> t=0:0.001:0.32; 4

>> f1=3.125;f2=6.25; >> y=0.5 +2*sin(2*pi*f1*t)+cos(2*pi*f2*t); >> plot(t,y) (Obtencin de la muestra) >> t=0:0.32/64:0.32;t=t(1:64); >> m=0.5+2*sin(2*pi*f1*t)+cos(2*pi*f2*t); (Fichero para la interpolacin trigonomtrica real) function [a,b]=coeftrig(x,T,h) N=length(x);M=N/2; beta=fft(x); a(1)=beta(1)/N; a(M+1)=beta(M+1)/N; for i=2:M a(i)=2*real(beta(i))/N; b(i)=-2*imag(beta(i))/N; end %%%%%%%%%%%Dibujo del polinomio%%%%%%%%%%% t=0:h:T; p=2*pi/T; L=T/h +1; u=zeros(1,L); for k=1:M-1 u=u+a(k+1)*cos(p*k*t)+b(k+1)*sin(p*k*t); end u=u+a(1)+a(M+1)*cos(p*M*t); b=b(2:M); plot(t,u),shg Nota: Utilice la funcin con los siguientes valores: x = m, T = 0.32 y h = 0.001. Ejercicio resuelto 5. Considere nuevamente la seal f(t) = 0.5 + 2 sen(2f1 t) + cos(2f2 t), f1 = 3.125Hz, f2 = 6.25Hz.

Con la muestra de 64 puntos equiespaciados obtenida en el ejercicio anterior, realice un periodograma (grca de amplitud frente a frecuencia) del correspondiente polinomio de interpolacin trigonomtrico. Compruebe la exactitud del anlisis espectral, es decir, que en la seal reconstruida aparecen las mismas frecuencias que en la original. function barfou(x,v) N=length(x);M=N/2; beta=fft(x); beta(1)=beta(1)/2; beta(M+1)=beta(M+1)/2; beta=(2/N)*beta; 5

beta=beta(v); bar(real(beta),b); hold on bar(imag(-beta),r); hold off shg Nota: Ejecute el chero anterior con v=1:32 y v=1:64. Ejercicio 6. Realice un anlisis espectral de una onda triangular de amplitud 1 y periodo un segundo, muestreada a 1/32 en un ciclo. Compare los resultados obtenidos en el desarrollo en serie de Fourier de dicha seal. Hay discrepancias signicativas?

Anlisis Espectral de Seales


Anlisis espectral de seales. La transformada discreta/rpida de Fourier se usa de modo masivo en multitud de temas relacionados con el procesamiento digital de seales analgicas. De obligada mencin son los anlisis y sntesis espectrales de seales, la correlacin cruzada de seales o la convolucin de seales. Recordemos que una seal analgica es una funcin continua del tiempo t R f(t) R que representa informacin, como el sonido de una voz, la presin sanguinea,... Para procesar esta informacin con un computador, se toma una muestra de la seal cada T segundos y as se genera una cierta seal digitalizada. Puesto que tomamos muestras cada T segundos, hay T 1 muestras por segundo y, se dice, entonces que la frecuencia de muestreo es de T 1 Hz. En la prctica, puede asumirse que las seales ms utilizadas son las aperidicas de banda limitada y las peridicas nitas, es decir, formadas por un nmero nito de armnicos. Si la correspondiente muestra consta de un total de N valores, entonces el n-simo valor es yn = f(nT ), n = 0, 1, , N 1.

La transformada discreta/rpida de Fourier nos permite convertir la seal digital anterior (yn ) en el dominio del tiempo en un conjunto de puntos (n ) que representan el contenido en frecuencia. Puesto que los puntos en los que tomamos las muestras estn igualmente espaciados en el intervalo temporal [0, NT ], los coecientes calculados con la transformada discreta correspondiente a frecuencias separadas por (NT )1 Hz. Fenmenos especcos: aliasing, leakage. La frecuencia de Nyquist de una seal es el doble de la mxima frecuencia presente en dicha seal. El teorema del muestreo nos dice que para muestrear adecuadamente una seal debemos muestrear al menos con la frecuencia de Nyquist. Cuando se muestrea por debajo de la frecuencia de Nyquist se produce el fenmeno denominado aliasing (palabra que procede de alias). Este fenmeno consiste en que las frecuencias superiores a la mitad de la frecuencia de muestreo aparecen como frecuencias distintas en la senal muestreada (esto es con un alias). 6

Supongamos que tenemos una sunisoide de 10Hz con una duracin de 10 segundos y que la muestreamos de manera muy na, por ejemplo, 1000Hz : >> sf=1000; t=0:1/sf:1; >> f=10; y=sin(2*pi*f*t); Si diezmamos la senal discreta y tomando una muestra de cada k tenemos la secuencia >> z=y(1:k:end); La frecuencia de muestreo de la secuencia z ser k veces menor que la de y : fz = 1000 fy = Hz. k k

Puesto que la seal original tiene 10Hz de frecuencia, la menor frecuencia de muestreo aconsejable ser de 20Hz, es decir, que como mximo podemos tomar k = 50. Si muestreamos tomando k > 50 aparecer aliasing. Otro aspecto a tener en cuenta al muestrear es el denominado fenmeno de leakage. Si f es peridica de periodo p, el problema surge cuando T no es mltiplo de p. En concreto, cuando no se muestrea sobre un nmero entero de ciclos de los armnicos presentes en la seal, aquellas componentes de la DFT ms cercanas a dichos armnicos se dispersan o derraman a otras frecuencias. La razn del fenmeno estriba en que, al forzar en el muestreo un periodo distinto del propio de la seal, intentamos realmente reconstruir una seal ms compleja (usualmente con ms discontinuidades) que la original y que requiere, por tanto, de un mayor nmero y variedad de frecuencias. El leakage en el caso aperidico surge, simplemente, de que tenemos necesariamente que muestrear en un intervalo nito [0, L = NT ] y la seal puede tomar valores no nulos en toda la recta real o en un intervalo muy grande. Nuevamente, esto puede forzar discontinuidades no presentes en la seal y, de ah, nuevamente el derrame a otras frecuencias. Un modo de paliar este fenmeno es utilizar funciones (window functions) (t) en [0, L] que decaigan suavemente en los extremos del intervalo y considerar, como muestras de la seal, los valores ((nT )f(nT )). Ejercicio resuelto 7. Determine la transformada discreta/rpida de Fourier de 512 puntos muestreados sobre un periodo de un segundo y procedentes de la seal f (t) = sen(2f1 t) + 2 sen(2f2 t), donde f1 = 30Hz y f2 = 400Hz. Describa el fenmeno de aliasing que aparece y como lo podra solventar. (Grfica de la seal original) >> t=0:0.001:1; >> f1=30;f2=400; >> y=sin(2*pi*f1*t)+2*cos(2*pi*f2*t); >> plot(t,y) Nota: La frecuencia de 400Hz hace que la visualizacin en el tiempo sea confusa. (Obtencin de la muestra: 512 puntos) >> t=0:1/512:1;t=t(1:512); 7

>> m=sin(2*pi*f1*t)+2*sin(2*pi*f2*t); (Anlisis espectral) barfou(m,1:206) Nota: A tenor del anlisis espectral, la seal reconstruida es g(t) = sen(2f1 t) 2sen(2g2 t), con g2 = 212.

Hay un fenmeno de aliasing debido a un muestreo lento. Para solventar el problema basta muestrear con 802 puntos puesto que la frecuencia ms alta es de 400Hz. Ejercicio 8. Considere ahora una muestra de 256 puntos equiespaciados de la seal h(z) = sen(2f3 t), f3 = 30.27Hz

en el intervalo [0, 1] y obtenga el correspondiente periodograma. Determine cal o cuales de las componentes mostradas deben considerarse errneas y explique razonadamente por qu aparecen.

También podría gustarte