Está en la página 1de 1

Tarea 08

Transformada Rápida de Fourier


Procesamiento Digital de Señales, FI, UNAM, 2024-1
Nombre:

1. [2 puntos. ]Calcule a mano la Transformada Discreta de Fourier (DFT) de las siguientes señales empleando el
algoritmo Radix2 de la Transformada Rápida de Fourier:
a) x(n) = [3, 2, 5, 1]
b) x(n) = [4, 3, 2, 1, 0, 1, 2, 3]

2. [2 puntos. ]Considere una señal x(n) de 512 puntos y suponga que una computadora tarda 50 µs en calcular
FFT(x). ¿Cuánto se tardarı́a la misma computadora en calcular la FFT de una señal de 2048 puntos?

a) El doble d ) Cuatro veces g) Ocho veces


b) Poco más del doble e) Poco más de cuatro veces
c) Poco menos de cuatro veces f ) Poco menos de ocho veces h) Más de ocho veces

Seleccione la mejor opción y explique por qué.


3. [6 puntos. ]Implemente en MATLAB u Octave (en un archivo con extensión *.m) el algoritmo Radix2 para
calcular la Transformada Rápida de Fourier. Puede utilizar como base el siguiente código en Python:
1 im po rt numpy a s np
2
3 d e f FFT( x ) :
4 i f l e n ( x ) == 1 : # S i l a s e c u e n c i a e s de un s o l o punto
5 return x # e n t o n c e s l a s o l u c i ón e s t r i v i a l
6 N = len (x) # S i no , s e p r o c e d e con l a e s t r a t e g i a ” d i v i d e y v e n c e r á s ”
7 # Se c a l c u l a n l o s p r i m e r o s N/2 f a c t o r e s Twiddle de N puntos
8 W = np . exp (−2 j * np . p i /N* np . a r a n g e (N/ 2 ) )
9 xe = x [ : : 2 ] # Se o b t i e n e n l o s ı́ n d i c e s p a r e s de l a s e c u e n c i a
10 xo = x [ 1 : : 2 ] # Se o b t i e n e n l o s ı́ n d i c e s i m p a r e s de l a s e c u e n c i a
11 Xe = FFT( xe ) # Se c a l c u l a l a Transformada de F o u r i e r de cada
12 Xo = FFT( xo ) # s u b s e c u e n c i a de manera r e c u r s i v a
13 X1 = Xe + W* Xo # Se j u n t a n l a s dos s o l u c i o n e s p a r c i a l e s para f o r m a r
14 X2 = Xe − W* Xo # l a s o l u c i ón t o t a l .
15 r e t u r n np . c o n c a t e n a t e ( ( X1 , X2) ) # Se d e v u e l v e l a s e c u e n c i a c a l c u l a d a
16
17 d e f IFFT ( x ) :
18 i f l e n ( x ) == 1 :
19 return x
20 N = len (x)
21 # Los f a c t o r e s Twiddle para l a Transformada i n v e r s a s o l o d i f i e r e n en
22 # e l s i g n o d e l exponente
23 W = np . exp ( 2 j * np . p i /N* np . a r a n g e (N/ 2 ) )
24 xe = x [ : : 2 ]
25 xo = x [ 1 : : 2 ]
26 Xe = FFT( xe )
27 Xo = FFT( xo )
28 X1 = Xe + W* Xo
29 X2 = Xe − W* Xo
30 # Para l a t r a n s f o r m a d a i n v e r s a s e a p l i c a un f a c t o r de 1/N
31 r e t u r n 1/N* np . c o n c a t e n a t e ( ( X1 , X2) )

También podría gustarte