Вы находитесь на странице: 1из 51

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Universidad del Per, DECANA DE AMERICA

FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA


E. P. INGENIERIA ELECTRONICA

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 - 0 2 3
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
w[n] =
0, en el resto
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] En el dominio del tiempo
xc(t) xc[n]
T Periodo de
muestreo T.

0 t (seg)
0 2 6 ... 15 .. N-1 n (seg)
En el dominio de la frecuencia
X(ej) X[k] Frecuencia de

2
muestreo
dividida entre N.
NT

0 2 (Rad)
0 2 6 ... 15 .. N-1 k
0 2 6 ... 15 .. (N-1) = 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

n
Como =.T , entonces:

X (e ) j
x[
n
n ]e jTn

N 1 N 1 2
jnk
) x[n]e x[n]e
jk jnk T T
X[k] X (e NT

n 0 n 0

0 2 (Rad)
0 2 6 ... 15 .. N-1 k
0 2 6 ... 15 .. (N-1) = k (Rad/seg)
k 0,1, 2........, N 1
Transformada Discreta de Fourier Derivacin de la DTF


Simplificando obtenemos:

N 1 2
j
X (e jk ) x[n]e
kn
N

n 0

N 1 k=0,1,2, ., N-1
DFT X [k ] x[n]W kn
j
2

n 0 W e N

N 1

1
IDFT x n X [ k ]W kn
n=0,1,2, ., N-1
N k 0
Transformada Discreta de Fourier Derivacin de la DTF

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

x[n]
1
N=8

0 1 2 3 4 5 6 7 n
Solucin:
De la expresin para la DFT, aplicando a x[n] obtenemos:

7 2
j
X [k ] x[n]e
kn
N

n 0

Donde: n 0,1, 2........, 7


k 0,1, 2........, 7
Transformada Discreta de Fourier Derivacin de la DTF


Calculando cada uno de los componentes de frecuencia de X[k] :
7 2
j
X (k ) x[n]e
kn
N

n 0

X 0 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7
2 2 2 2 2 2 2
j j j j j j j
X 1 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
.1.1 .1.2 .1.3 .1.4 .1.5 .1.6 .1.7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 2 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
2.1 .2.2 2..3 2.4 2.5 2..6 2..7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 3 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
3.1 .3.2 3..3 3.4 3.5 3..6 3..7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 4 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
4.1 .4.2 4..3 4.4 4.5 4..6 4..7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 5 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
5.1 .5.2 5..3 5.4 5.5 5..6 5..7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 6 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
6.1 .6.2 6..3 6.4 6.5 6..6 6..7
8 8 8 8 8 8 8

2 2 2 2 2 2 2
j j j j j j j
X 7 x 0 x 1 e x 2 e x 3 e x 4 e x 5 e x 6 e x 7 e
7.1 .7.2 7..3 7.4 7.5 7..6 7..7
8 8 8 8 8 8 8
Transformada Discreta de Fourier Derivacin de la DTF

Resultados del clculo:


K X[k] [k] (rad)

0 6.0000 +0.0000

1 1.8478 - 1.9635

2 1.4142 - 0.7854

3 0.7653 +0.3927

4 0.0000 +0.0000

5 0.7653 - 0.3927

6 1.4142 +0.2854

7 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)

2.5 2.5 t (seg)

1 / 2 t / 2
x t
0 otros sen / 2
X
/ 2
Transformada Discreta de Fourier

DTFT DE UN PULSO RECTANGULAR DISCRETO


x[n]

1 2 n 2
x n
1

0 otros

3 2 1 0 1 2 3 4 5 6 n X e j e j 2 e j 1 e j e j 2

X e j

(Rad)
Transformada Discreta de Fourier

K X(k) (k) (rad)


DFT DE UN PULSO RECTANGULAR DISCRETO PARA 0 6.0000 + 0.0000
N=16
1 4.73571 - 0.9817

2 1.8478 - 1.9635

3 0.6888 + 0.1963

4 1.4142 - 0.7854

5 0.4602 - 1.7671

6 0.7653 + 0.3927

7 0.9419 - 0.5890

8 0.0000 + 0.0000

9 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: fs = 1000 Hz.


Frecuencia analgica de x(t): f = 80 Hz.
Secuencia de entrada: x [n] = cos(2**f*n)
Nmero de muestras en el tiempo: N = length(x)
Resolucin de la escala de frecuencia: fk = fs/(N-1)
Transformada Discreta de Fourier

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

200

150

100

50

0
0 100 200 300 400 500 600
La resolucin de frecuencia es de 2.000 Hz entre muestras
Transformada Discreta de Fourier

Ejemplo 3

Frecuencia de muestreo: fs = 1000 Hz.


Frecuencia analgica de x(t): f = 200 Hz.
Secuencia de entrada: x [n] = cos(2**f*n)
Nmero de muestras en el tiempo: N = length(x)
Resolucin de la escala de frecuencia: fk = fs/(N-1)
Transformada Discreta de Fourier

Mdulo de la DFT de x
250

X: 101
Y: 234.6

200

150

100

50

0
0 100 200 300 400 500 600
La resolucin de frecuencia es de 2.000 Hz entre muestras
Transformada Discreta de Fourier

Ejemplo 4

Frecuencia de muestreo: fs = 1000 Hz.


Frecuencia analgica de x(t): f = 450 Hz.
Secuencia de entrada: x [n] = cos(2**f*n)
Nmero de muestras en el tiempo: N = length(x)
Resolucin de la escala de frecuencia: 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

0
0 100 200 300 400 500 600
La resolucin de frecuencia es de 2.000 Hz entre muestras
Transformada Discreta de Fourier

Ejemplo 5

Frecuencia de muestreo: fs = 1000 Hz.


Frecuencia analgica de x(t): f = 540 Hz.
Secuencia de entrada: x [n] = cos(2**f*n)
Nmero de muestras en el tiempo: N = length(x)
Resolucin de la escala de frecuencia: fk = fs/(N-1)
Transformada Discreta de Fourier

Mdulo de la DFT de x
180

X: 231 X: 272
Y: 173.9 Y: 173.9
160

140

120

100

80

60

40

20

0
0 100 200 300 400 500 600
La resolucin de frecuencia es de 2.000 Hz entre muestras
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

2
j
donde:
WN e 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 W W 5 W 13 ... W 7 W 15 ...

Periodicidad :
W 4 W 12 ... W 0 W 8 ...
k n N n k N
WNkn W N W N
Simetra: W 3 W 11 ... W 1 W 9 ...
W 2 W 10 ...
WNkn N / 2 WNkn
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 2
j
X k x[n].W4nk , 0 k 3, W4 e 4
j
n 0

Solucin:

El proceso de clculo puede ser expresado como una matriz:

X 0 W40 W40 W40 W40 x 0


0
X 1 W
4 W4
1
W42 W43 x 1
X 2 W40 W42 W44 W46 x 2
0
X 3 W4 W4
3
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 1 1 1 x 0

X 1 1 j 1 j x 1

X 2 1 1 1 1 x 2

X 3 1 j 1 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 1 Paso 2
g1 x 0 x 2 X 0 g1 g 2
se requiere
g 2 x 1 x 3 X 1 h1 jh2 solamente 2
h1 x 0 x 2 X 2 g1 g 2 multiplicaciones
h2 x 1 x 3 X 3 h1 jh2 complejas.

Diagrama de flujo de este algoritmo.

x 0 X 0
g1

x 2 X 1
1 h1 j

x 1 X 2
g2 1

x 3 X 3
1 h2 j
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 1
,
X 2 X 3 X 2 X 3

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

X 0 X 1 1 1 X 0 X 1 X 0 X 2 X 1 X 3 g1 g2
W2
X 2 X 3 1 1 X 2 X 3 X 0 X 2 X 1 X 3 h1 h2

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 g 2 g1 g2
h
1 j 1 h2 h1 jh2
Transformada Discreta de Fourier FFT


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

g1 g2 g1 g 2 1 1 g1 g 2 g1 g 2 X 0 X 2
h
jh2 2 h1 jh2 1 1 h1 jh2 h1 jh2 X 1
W
1 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
N 1 2 N 1
X [k ] x[n]W kn
x[n]W kn
x[n]W kn

n 0 n 0 n
N
2
N
Haciendo n n y reemplazando en la segunda sumatoria, tenemos:
2
N N
1 N 2
1
2
X [k ] x[n]W kn W x[n
k N
2
]W kn
n 0 n 0 2
N
cos jsen 1
k k k
2
Como W y reemplazando, tenemos:
N
1
2
N kn
X [k ] x[n] 1 x[n
k
]W
n 0 2
Transformada Discreta de Fourier FFT

..
1 1
k
Como: para k par
1 1
k
para k impar
Separando X[k] en secuencias separadas pares e impares
N
1
2
N kn
X [k ] x[n] x[n ]W Para k par
n 0 2
N
1
2
N kn
X [k ] x[n] x[n ]W Para k impar
n 0 2

Haciendo k =2m para la sumatoria de los pares y k = 2m+1 para los impares
N
1
2
N 2 mn
X [2m] x[n] x[n ]W m = 0, 1, 2, N/2 -1
n 0 2
N
1
2
N 2 mn mn m = 0, 1, 2, N/2 -1
X [2m 1] x[n] x[n ]W W
n 0 2
Transformada Discreta de Fourier FFT

..
Haciendo:
N
a n x n x n
2
N
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 FFT

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
n0
3
X [4] a nW42n a 0W40 a 1W42 a 2W44 a 3W46
n 0
3
X [6] a nW43n a 0W40 a 1W43 a 2W46 a 3W49
n0
3
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
n0
3
X [5] b nW42nW8n 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
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 FFT

..
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
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
2
j
W e
8
1 8
cos jsen 0.707 j 0.707
4 4
4 6
j j
W e
8
2 8
j W e
8
3 8
0.707 j 0.707

Ahora calculamos las salidas intermedias para cada etapa:

ETAPA 1:
x 0 x 4 2 x 0
x 0 x 4W 0
0
x 4

x 1 x 5 2 x1
x 1 x 5W 0
1
x5

x 2 x 6 1 x 2
x 2 x 6W j
2
x 6

x 3 x 7 1 x3
x 3 x 7W 0.707 j 0.707
3
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 x 6 0 j j x 4

x1 x3 2 1 3 x1
x5 x 7 0.707 j 0.707 x5

x0 x 2W 2 11=1
0
x 2
x 4 x6W 0
j x 6

x1 x3W 2 1 j = j
2
x3
x5 x7W 2
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 4 x 0 x1 0
X 1 x 4 x5 0.707 j1.707 X 5 x 4 x5 0.707 j 0.2929
X 2 x 2 x3 1 j X 6 x 2 x3 1 j
X 3 x 6 x7 0.707 j 0.2929 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

Вам также может понравиться