You are on page 1of 51

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Universidad del Per, DECANA DE AMERICA

FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA


E. A. P. INGENIERIA DE TELECOMUNICACIONES

Flavio Carrillo Gomero


fcarrillog@unmsm.edu.pe
DEPARTAMENTO ACADEMICO DE TELECOMUNICACIONES

Captulo VIII

Transformada Discreta de Fourier

Introduccin

INTRODUCCION
x[n]

X(ej)

X(ej) es una funcin compleja continua en el dominio de la frecuencia .


X(ej)

-3

-2

OBJETIVO: representar x[n] en el dominio de la frecuencia a partir de


las muestras de su espectro X(ej)

Los computadores slo pueden almacenar y manejar un conjunto finito de


datos, por consiguiente es necesario representar xc(t) mediante un conjunto
finito de valores.
Adecuado para ser ejecutado por la PC o por el PDS

Transformada Discreta de Fourier

Transformada Discreta de Fourier

Transformada Discreta de Fourier


Primer paso es muestrear xc(t) para obtener una seal discreta xc[n].
Segundo paso. Como la seal analgica puede no estar limitada en el
tiempo, hay que obtener un conjunto finito de muestras de la secuencia
discreta mediante un proceso de truncamiento.

Sea x[n] una secuencia finita, definida de la siguiente manera:

x n xc n w n
Donde:

xc[n] seal discreta con infinitas muestras.


w[n] funcin ventana. Ejemplo: Ventana Rectangular
1,

0 n N-1

0,

en el resto

w[n] =

Transformada Discreta de Fourier

Respuesta en Frecuencia de los Sistemas SDLIT

Tercer Paso. Calcular ahora la Transformada de Fourier para Seales Discretas


para N muestras:

N 1

X e j x n e jn
n 0

Dado que X(ej) es una funcin compleja y de periodo 2, bastara con calcular
X(ej) en el intervalo [0,

2].

Imposible encontrar exactamente X(ej) utilizando un procesador digital, pues


se necesitaran infinitos espacios de memoria y calcular infinitos productos y
sumas.

X(ej) se calcular slo sobre un conjunto de N valores de frecuencia (muestras


de frecuencia) igualmente espaciados en el intervalo [0,2 ] .

Transformada Discreta de Fourier

Derivacin de la DTF

DERIVACION DE LA TRANSFORMADA DISCRETA DE FOURIER


x[n]
xc(t) xc[n]

En el dominio del tiempo

0
0 2

X(ej)

...

15

..

En el dominio de la frecuencia

X[k]

Periodo de
muestreo T.

2
NT

t (seg)
n (seg)

N-1

Frecuencia de
muestreo
dividida entre N.

0
0 2
0 2

6 ...
15
..
6 ... 15 ..

2
N-1
(N-1)

(Rad)
k
= k (Rad/seg)

k 0,1, 2........, N 1

Transformada Discreta de Fourier

Derivacin de la DTF

De la definicin de la Transformada de Fourier para Seales Discretas:

X (e ) x[n]e jn
j

Como =.T , entonces:

X (e ) x[n]e jTn
j

X[k]

X (e

jk

N 1

) x[n]e

jnk T

n 0

N 1

x[n]e

jnk

2
T
NT

n 0

0
0 2
0 2

...

6 ...

15

..

15 ..

2
N-1
(N-1)

(Rad)
k
= k (Rad/seg)

k 0,1, 2........, N 1

Transformada Discreta de Fourier

Derivacin de la DTF

Simplificando obtenemos:

N 1

X (e jk ) x[n]e

2
kn
N

n 0

N 1

DFT

X [k ] x[n]W kn
n 0

IDFT

1
x n
N

k=0,1,2, ., N-1

W e

N 1

kn
X
[
k
]
W

k 0

n=0,1,2, ., N-1

Transformada Discreta de Fourier

Derivacin de la DTF

Ejemplo 1:
Hallar la DFT de la seal discreta x[n]:
x[n]

N=8

Solucin:

De la expresin para la DFT, aplicando a


7

X [k ] x[n]e

2
kn
N

n 0

Donde:

n 0,1, 2........, 7

k 0,1, 2........, 7

x[n] obtenemos:

Transformada Discreta de Fourier

Derivacin de la DTF

Calculando cada uno de los componentes de frecuencia de X[k] :


7

X (k ) x[n]e

2
kn
N

n 0

X 0 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7
j

2
.1.1
8

2
2.1
8

2
3.1
8

2
4.1
8

2
5.1
8

2
6.1
8

2
7.1
8

X 1 x 0 x 1 e
X 2 x 0 x 1 e
X 3 x 0 x 1 e
X 4 x 0 x 1 e

X 5 x 0 x 1 e

X 6 x 0 x 1 e

X 7 x 0 x 1 e

x 2 e

2
.1.2
8

2
.2.2
8

2
.3.2
8

2
.4.2
8

2
.5.2
8

2
.6.2
8

2
.7.2
8

x 2 e
x 2 e
x 2 e

x 2 e

x 2 e

x 2 e

2
.1.3
8

2
2..3
8

2
3..3
8

2
4..3
8

2
5..3
8

2
6..3
8

2
7..3
8

x 3 e
x 3 e
x 3 e
x 3 e

x 3 e

x 3 e

x 3 e

2
.1.4
8

2
2.4
8

x 4 e
x 4 e
x 4 e

2
3.4
8

x 4 e

2
4.4
8

2
5.4
8

2
6.4
8

2
7.4
8

x 4 e

x 4 e

x 4 e

2
.1.5
8

2
2.5
8

x 5 e
x 5 e
x 5 e

2
3.5
8

x 5 e

2
4.5
8

x 5 e

2
5.5
8

2
6.5
8

2
7.5
8

x 5 e

x 5 e

x 6 e
x 6 e

2
.1.6
8

2
2..6
8

2
3..6
8

x 6 e

2
4..6
8

x 6 e

2
5..6
8

x 6 e

2
6..6
8

x 6 e

2
7..6
8

x 6 e

2
.1.7
8

2
2..7
8

x 7 e
x 7 e

x 7 e

2
3..7
8

2
4..7
8

2
5..7
8

x 7 e
x 7 e

x 7 e

2
6..7
8

x 7 e

2
7..7
8

Transformada Discreta de Fourier

Derivacin de la DTF

Resultados del clculo:


K

X[k]

[k] (rad)

6.0000

+0.0000

1.8478

- 1.9635

1.4142

- 0.7854

0.7653

+0.3927

0.0000

+0.0000

0.7653

- 0.3927

1.4142

+0.2854

1.8478

+1.9635

Transformada Discreta de Fourier

FT DE UN PULSO RECTANGULAR CONTINUO

Sea x(t) una seal pulso rectangular continua en el tiempo. Determinar la


Transformada de Fourier X().

x(t)
1

2.5

2.5

1 / 2 t / 2
x t
otros
0

t (seg)

sen / 2
/ 2

Transformada Discreta de Fourier

DTFT DE UN PULSO RECTANGULAR DISCRETO


x[n]

1 2 n 2
x n
otros
0

3 2

X e j e j 2 e j 1 e j e j 2

X e j

(Rad)

Transformada Discreta de Fourier

DFT DE UN PULSO RECTANGULAR DISCRETO PARA


N=16

X(k)

(k) (rad)

6.0000

+ 0.0000

4.73571

- 0.9817

1.8478

- 1.9635

0.6888

+ 0.1963

1.4142

- 0.7854

0.4602

- 1.7671

0.7653

+ 0.3927

0.9419

- 0.5890

0.0000

+ 0.0000

0.9419

+ 0.5890

10

07653

- 0.3927

11

0.4602

+ 1.7671

12

1.4142

+ 0.7854

13

0.6888

- 0.1963

14

1.8478

+ 1.9635

15

4.7357

+ 0.9817

Transformada Discreta de Fourier

DFT DE UN PULSO RECTANGULAR DISCRETO PARA


N=32

Transformada Discreta de Fourier

DFT DE UN PULSO RECTANGULAR DISCRETO PARA


N=64

Ejemplo Prctico

Transformada Discreta de Fourier

DFT con Matlab


function[X]=dft_01(x)
%
% Clculo de la DFT de modo directo.
%
Xsize=length(x);
% Clculo la DFT (Por el camino menos eficiente)
for m=0:Xsize-1
sum=0;
for n=0:Xsize-1
sum=sum+x(n+1)*(cos(2*pi*n*m/Xsize)1i*sin(2*pi*n*m/Xsize));
end
X(m+1)=sum;
end

Transformada Discreta de Fourier

DFT con Matlab


% CALCULO DE LA DFT por el mtodo directo
close all; clear all; clc;
% Datos iniciales.
f=80; % frecuencia analgica en Hz.
fs=1000; % frecuencia de muestreo en Hz.
Ts=1/fs; % periodo de muestreo
n=0:Ts:0.50;
x=cos(2*pi*f*n); % Secuencia de prueba
N=length(x);
X=dft_01(x);
% Calculo de la DFT de x[n]
Xabs=abs(X);
Xmax=max(abs(X));
figure(1);plot(x, '.-b'); % Ploteo de las grficas resultantes
xlabel(sprintf('%6.5f Segundos entre muestra y muestra', Ts));
title('Muestras de x(t)');
figure(2);plot(abs(X),'.','Color',[0.41,0.26,0.10]);
xlabel(sprintf('La resolucin de frecuencia es de %5.3f Hz
entre muestras',fs/(length(X)-1)));
title('Mdulo de la DFT de x');

Transformada Discreta de Fourier

Ejemplo 2
Frecuencia de muestreo:
Frecuencia analgica de x(t):
Secuencia de entrada:
Nmero de muestras en el tiempo:
Resolucin de la escala de frecuencia:

fs = 1000 Hz.
f = 80 Hz.
x [n] = cos(2**f*n)
N = length(x)
fk = fs/(N-1)

Transformada Discreta de Fourier

Mdulo de la DFT de x
250
X: 41
Y: 248.1

200

150

100

50

100

200
300
400
La resolucin de frecuencia es de 2.000 Hz entre muestras

500

600

Transformada Discreta de Fourier

Ejemplo 3
Frecuencia de muestreo:
Frecuencia analgica de x(t):
Secuencia de entrada:
Nmero de muestras en el tiempo:
Resolucin de la escala de frecuencia:

fs = 1000 Hz.
f = 200 Hz.
x [n] = cos(2**f*n)
N = length(x)
fk = fs/(N-1)

Transformada Discreta de Fourier

Mdulo de la DFT de x
250

X: 101
Y: 234.6

200

150

100

50

100

200
300
400
La resolucin de frecuencia es de 2.000 Hz entre muestras

500

600

Transformada Discreta de Fourier

Ejemplo 4
Frecuencia de muestreo:
Frecuencia analgica de x(t):
Secuencia de entrada:
Nmero de muestras en el tiempo:
Resolucin de la escala de frecuencia:

fs = 1000 Hz.
f = 450 Hz.
x [n] = cos(2**f*n)
N = length(x)
fk = fs/(N-1)

Transformada Discreta de Fourier

Mdulo de la DFT de x
180
X: 226
Y: 176.6

160

140

120

100

80

60

40

20

100

200
300
400
La resolucin de frecuencia es de 2.000 Hz entre muestras

500

600

Transformada Discreta de Fourier

Ejemplo 5
Frecuencia de muestreo:
Frecuencia analgica de x(t):
Secuencia de entrada:
Nmero de muestras en el tiempo:
Resolucin de la escala de frecuencia:

fs = 1000 Hz.
f = 540 Hz.
x [n] = cos(2**f*n)
N = length(x)
fk = fs/(N-1)

Transformada Discreta de Fourier

Mdulo de la DFT de x
180
X: 231
Y: 173.9

X: 272
Y: 173.9

160

140

120

100

80

60

40

20

100

200
300
400
La resolucin de frecuencia es de 2.000 Hz entre muestras

500

600

Transformada Discreta de Fourier

Transformada Rpida de Fourier


FFT

Transformada Discreta de Fourier

FFT

TRANSFORMADA RAPIDA DE FOURIER - FFT

La Transformada de Fourier Discreta - DFT es discreta tanto en el dominio

del tiempo como en el dominio de la frecuencia y es definida para


secuencias de duracin finita.

Es una transformada para efectos de clculo, pero muy ineficiente para para
secuencias con longitud de datos N muy grande.

En 1965 Cooley y Tukey obtuvieron un procedimiento de clculo reducido de


la DFT.

Como consecuencia se desarrollaron algoritmos de clculo conocidos como


algoritmos de la Transformada Rpida de Fourier FFT.

Transformada Discreta de Fourier

FFT

Sea x[n] una secuencia de N puntos.


X(k) su DFT de N puntos, dada por la siguiente expresin:.
N 1

X k x[n].WNnk , 0 k N 1
n 0

donde:

WN e

2
N

Para obtener una muestra de X(k), se necesita:


N multiplicaciones complejas y
(N-1) sumas complejas

Por lo tanto, para obtener la DFT completa de N puntos se necesita:


N (N-1) N 2 sumas complejas y
N 2 multiplicaciones complejas

Transformada Discreta de Fourier

FFT

Generalmente el tiempo de procesamiento para una suma es..


mayor

igual

menor
menor

que para una multiplicacin.

Concentrarse sobre el nmero de multiplicaciones complejas.

Por ejemplo para N=2 por si mismo requiere:


4 multiplicaciones y 2 sumas.

Transformada Discreta de Fourier

FFT

Eficiencia del clculo

Un algoritmo diseado en forma eficiente implica que el


numero de operaciones debe ser constante por cada muestra,
por lo tanto el numero total de operaciones debe ser
lineal con respecto a N.

Entonces la FFT aprovecha las propiedades de:


Periodicidad y
W 6 W 14 ...

Simetra de

Periodicidad :
k n N
N

WNkn W

W 5 W 13 ...

Simetra:
kn N / 2
N

n k N
N

W 4 W 12 ...

W 0 W 8 ...

W 3 W 11 ...

kn
N

W 7 W 15 ...

W 1 W 9 ...

W 2 W 10 ...

Transformada Discreta de Fourier

FFT

Ejemplo 6
Desarrollar el clculo de la DFT de 4 puntos y un algoritmo eficiente
para realizar dicha operacin de:
3

X k x[n].W4nk , 0 k 3, W4 e

2
4

n 0

Solucin:
El proceso de clculo puede ser expresado como una matriz:

X 0 W40 W40

0
1
X
1
W
W

4
X 2 W40 W42

0
3
X
3

W4 W4

W40 W40 x 0

2
3
x
1
W4 W4
W44 W46 x 2

W46 W49 x 3

El cual requiere 16 multiplicaciones complejas.

Transformada Discreta de Fourier

FFT

Criterio de eficiencia: utilizando la periodicidad

W40 W44 1 ;

W41 W49 j ; W42 W46 1; W43 j

Y sustituyendo en la matriz anterior, obtenemos:


X 0 1


X
1

1
X 2 1


X
3
1

1 x 0

j x 1

1 x 2

j x 3

Utilizando la simetra, obtenemos:


X 0 x 0 x 1 x 2 x 3 x 0 x 2 x 1 x 3
g1

g2

X 1 x 0 jx 1 x 2 jx 3 x 0 x 2 j x 1 x 3
h1

h2

X 2 x 0 x 1 x 2 x 3 x 0 x 2 x 1 x 3
g1

g2

X 3 x 0 jx 1 x 2 jx 3 x 0 x 2 j x 1 x 3
h1

h2

Transformada Discreta de Fourier

FFT

Por lo tanto un algoritmo eficiente es:


Paso 2

Paso 1
g1 x 0 x 2
g 2 x 1 x 3
h1 x 0 x 2
h2 x 1 x 3

X 0 g1 g 2

se requiere
solamente 2
multiplicaciones
complejas.

X 1 h1 jh2
X 2 g1 g 2
X 3 h1 jh2

Diagrama de flujo de este algoritmo.


x 0
x 2

g1
1

x 1
x 3

X 0

h1
1

g2
1

h2

X 1
X 2
X 3

Transformada Discreta de Fourier

FFT

Una interpretacin:

(a) Una secuencia x[n] de 4 puntos es dividida en secuencias de 2


puntos, las cuales son reacomodadas dentro de vectores columna
como la mostrada a continuacin:
X 0 X 1 X 0

,

X
2
X
3



X 2

X 1

X 3

(b) se toma una DFT de 2 puntos ms pequeos de cada columna:


X 0
W2
X 2

X 1 1

X 3 1

1 X 0

1 X 2

X 1 X 0 X 2

X 3 X 0 X 2

X 1 X 3 g1

X 1 X 3 h1

Luego cada elemento de la matriz resultado es multiplicado por W4pq ,


donde p es el ndice de la fila y q es el ndice de la columna; es decir,
la operacin punto-producto se lleva acabo:
1

1
g1

h
j
1

g 2 g1

h2 h1

g2
jh2

g2
h2

Transformada Discreta de Fourier

FFT

Finalmente, dos DFTs de 2 puntos ms pequeos se toman de los


vectores fila.

g1
h
1

g2
g1
W

jh2 2 h1

g 2 1
jh2 1

1 g1 g 2

1 h1 jh2

g1 g 2 X 0

h1 jh2 X 1

X 2

X 3

Aunque esta interpretacin parece tener ms multiplicaciones que el


algoritmo eficiente, sugiere un enfoque sistemtico de calcular una
DFT grande basado en DFT ms pequeos.

Transformada Discreta de Fourier

FFT

ALGORITMO PARA LA FFT Radix-2:


DECIMACION EN FRECUENCIA
Sea la secuencia x[n] , para n = 0, 1, 2, , N-1
Separando x[n] en secuencias pares e impares y aplicando la DFT:
N 1

X [k ] x[n]W
n 0

Haciendo n n

kn

N
1
2

x[n]W
n 0

Como W

N
2

N 1

x[n]W
n

kn

N
2

N
y reemplazando en la segunda sumatoria, tenemos:
2
N
1
2

N
1
N 2
k
2

n 0

n 0

X [k ] x[n]W kn W
k

kn

x[n

cos jsen 1
k

N
1
2

n 0

X [k ] x[n] 1 x[n
k

N
]W kn
2

y reemplazando, tenemos:

N kn
]W
2

Transformada Discreta de Fourier

FFT

..
Como:

para k par

para k impar

Separando X[k] en secuencias separadas pares e impares


N
1
2

n 0

X [k ] x[n] x[n
N
1
2

n 0

X [k ] x[n] x[n

N kn
]W
2

N kn
]W
2

Para k par

Para k impar

Haciendo k =2m para la sumatoria de los pares y k = 2m+1 para los impares
N
1
2

n 0

X [2m] x[n] x[n


N
1
2

n 0

N 2 mn
]W
2

X [2m 1] x[n] x[n

m = 0, 1, 2, N/2 -1

N 2 mn mn m = 0, 1, 2, N/2 -1
]W W
2

Transformada Discreta de Fourier

FFT

..
Haciendo:

a n x n x n
2

b n x n x n
2

Las ecuaciones pueden ser escritas como 2 DFT de N/2 puntos:


N
1
2

X [2m] a nWNmn/2

m = 0, 1, 2, N/2 -1

n 0

N
1
2

X [2m 1] b[n]WNmn/2WNn m = 0, 1, 2, N/2 -1


n 0

Transformada Discreta de Fourier

EJEMPLO PARA N=8


Descomponiendo la DFT de N puntos en dos DFT de N/2 puntos.
Aplicando las dos ecuaciones:
3

X [0] a nW40 a 0W40 a 1W40 a 2W40 a 3W40


n 0
3

X [2] a nW41n a 0W40 a 1W41 a 2W42 a 3W43


n 0
3

X [4] a nW42 n a 0W40 a 1W42 a 2W44 a 3W46


n 0
3

X [6] a nW43n a 0W40 a 1W43 a 2W46 a 3W49


n 0

X [1] b nW40W8n b 0W40W80 b 1W40W81 b 2W40W82 b 3W40W83


n 0
3

X [3] b nW4nW8n b 0W40W80 b 1W41W81 b 2W42W82 b 3W43W83


n 0
3

X [5] b nW42 nW8n b 0W40W80 b 1W42W81 b 2W44W82 b 3W46W83


n 0
3

X [7] b nW43nW8n b 0W40W80 b 1W43W81 b 2W46W82 b 3W49W83


n 0

FFT

Transformada Discreta de Fourier

FFT

..
Descomponiendo a[n] y b[n]
a 0 x 0 x 4

b 0 x 0 x 4

a 1 x 1 x 5

b 1 x 1 x 5

a 2 x 2 x 6

b 2 x 2 x 6

a 3 x 3 x 7

b 3 x 3 x 7

Transformada Discreta de Fourier

FFT

..
El proceso de descomposicin puede ser repetido nuevamente pero para N/4
que es la etapa final para N=8.
El nmero de etapas, o DFTs se deber repetir hasta llegar a la DFT de 2
puntos.
En general una FFT de N puntos tendr m etapas con

N 2m

Transformada Discreta de Fourier

..
La ltima descomposicin, ya que se ha llegado a aplicar la DFT de 2 puntos,
es la ms baja descomposicin del algoritmo Radix 2. Luego para una DFT de
2 puntos las salidas X[k] de esta ltima etapa pueden ser escritas de la
siguiente forma:

X 0 x 0W 0 x 1W 0 x 0 x 1

X 1 x 0W 0 x 1W 1 x 0 x 1

FFT

Transformada Discreta de Fourier

FFT

..
La decimacin en Frecuencia adquiere su nombre del hecho de que la
secuencia de salida X[k] es descompuesta (decimada) en subsecuencias ms
pequeas, continuando por a etapas o iteraciones.

Transformada Discreta de Fourier

FFT

Ejemplo numrico
Hallar la FFT Radix 2 para x[n] = {1, 1, 1, 1, 1, 1, 0, 0}, para N=8.
Los coeficientes W pueden ser calculados una sola vez y almacenados para ser
utilizados luego:
W80 1
W e
1
8

W e
2
8

2
8

4
8



cos jsen 0.707 j 0.707
4
4
j

W e
3
8

6
8

0.707 j 0.707

Ahora calculamos las salidas intermedias para cada etapa:


ETAPA 1:
x 0 x 4 2

x 0

x 1 x 5 2

x1

x 2 x 6 1

x 2

x 3 x 7 1

x3

x 0 x 4W 0
x 1 x 5W 0
x 2 x 6W j
x 3 x 7W 0.707 j 0.707
0

x 4

x5

x 6

x 7

x[0], x[1],.., x[7] son las salidas intermedias de la 1era. iteracin:

Transformada Discreta de Fourier

FFT

ETAPA 2:
x 0 x 2 2 1 3

x 0

x 4 x6 0 j j

x 4

x1 x3 2 1 3

x1

x5 x7 0.707 j 0.707

x5

x0 x2W 2 11=1
x1 x3W 2 1 j = j

x 2

x 4 x6W
x5 x7W

x 6

x3

0.707 j 0.707

x 7

x[0], x[1],.., x[7] representan salidas intermedias de la segunda iteracin:

ETAPA 3:
X 0 x 0 x1 3 3 6
X 1 x 4 x5 0.707 j1.707
X 2 x 2 x3 1 j
X 3 x 6 x7 0.707 j 0.2929

X 4 x 0 x1 0
X 5 x 4 x5 0.707 j 0.2929
X 6 x 2 x3 1 j
X 7 x 6 x7 0.707 j1.7071

Transformada Discreta de Fourier

FFT

x[0]

x[0]

x[1]

x[1]

x[2]

x[2]

x[3]

x[3]

x[4]

x[4]

x[5]

x[5]

x[6]

x[6]

x[7]

x[7]

Bibliografia

[1] J. G. Proakis, y D. G. Manolakis, Captulo 5: La Transformada de


Fourier Discreta, TRATAMIENTO DIGITAL DE SEALES, 3. Edicin,
Editorial Prentice Hall, pp. 401 - 455, 2000.
[2] J. G. Proakis, y D. G. Manolakis, Captulo 6: Calculo eficiente de la
DFT: algoritmos para la FFT, TRATAMIENTO DIGITAL DE SEALES,
3. Edicin, Editorial Prentice Hall, pp. 457 - 507, 2000.

PREGUNTAS

Fin del Captulo VIII

You might also like