Está en la página 1de 8

Propiedades de la DFT

Ejercicios resueltos por Rodrigo Javier Herrera Garcı́a*


3 de octubre de 2018

Resumen
Las propiedades de la transformación discreta de Fourier (DFT1 ), aunque son similares a las propiedades
de otras transformaciones de Fourier, exhiben notables diferencias debido a su naturaleza finita. Debido a
que la DFT es nuestra principal herramienta de cálculo, debemos entender sus propiedades y su relación
con las otras transformaciones utilizadas en el procesamiento de señales digitales (DSP2 ). La meta de estos
proyectos y ejercicios es desarrollar alguna familiaridad y tener alguna idea del uso de las propiedades de
la DFT. Serán enfatizadas caracterı́sticas únicas de la DFT, especialmente la naturaleza circular de todo el
indexamiento tanto en el dominio del tiempo como en el de frecuencia. 
La DFT se define como una operación sobre un vector de tiempo de N puntos x[0], x[1], . . . , x[n − 1] :
N
X −1
nk
X[k] = x[n]WN para k = 0, 1, 2, . . . , N − 1 (1)
n=0

donde WN = e−j2π/N . La operación en (1) es una transformación de un vector de N puntos de muestras


en el tiempo x[n] a otro vector de N puntos de muestras en el dominio de la frecuencia X[k]. La definición
(1) también puede ser interpretada como un “muestreo en la frecuencia” de la DTFT3 (transformación de
Fourier de tiempo discreto).
Al principio es necesario decir una palabra acerca de la diferencia entre los términos DFT y FFT. La
FFT4 (transformación rápida de Fourier) es precisamente un algoritmo rápido para el cálculo de la DFT;
no es una transformación separada. En Matlab, la función fft es siempre utilizada para calcular la DFT
y no hay función dft de todas maneras. Similarmente, la función ifft es utilizada para calcular la DFT
inversa. Por consiguiente, es usualmente aceptable utilizar los términos de manera intercambiable cuando
se refieren a los resultados del cálculo.
Palabras clave: transformación discreta de Fourier, transformación rápida de Fourier.

* Ingeniero electrónico, profesor del área de procesamiento digital de señales e investigador del grupo IDEAS de la Facultad de Ingenierı́a

de la Universidad Distrital Francisco José de Caldas. Correo Electrónico: rherrera@udistrital.edu.co.


1 DFT es el acrónimo de las palabras inglesas Discrete Fourier Transform.
2 DSP es el acrónimo de las palabras inglesas Digital Signal Processing.
3 DTFT es el acrónimo de las palabras inglesas Discrete-Time Fourier Transform.
4 FFT es el acrónimo de las palabras inglesas Fast Fourier Transform.

1
1. Ejemplos de la DFT 1.1. Pulsos
de señales comunes Hay señales que contienen únicamente unos y ceros. Para
los siguientes ejercicios, usted puede dibujar las partes real
En este proyecto desarrollaremos la DFT de ciertas señales e imaginaria de la DFT pero puede ser mejor dibujar la
comunes (p.e. pulsos, ondas seno, sinc con alias o asinc, etc.). magnitud y la fase.
Con Matlab, usted puede dibujar señales y sus transfor-
maciones fácilmente ası́ que el objetivo es visualizar una a. Señal impulso unitario: xi = [1 0 0 0 0 0 0 0] corres-
variedad de pares de transformaciones. En el proceso, us- ponde a la definición matemática:
ted debe poner atención a las simetrı́as que podrı́an estar (
presentes. 1 n=0
δ[n] = (2)
0 n = 1, 2, . . . , N − 1
Sugerencias. Todas las señales utilizadas con la DFT son
Para este problema calcule una DFT de 8 puntos (es
discretas, ası́ que ellas deben ser mostradas utilizando stem;
decir, N = 8). En general, ¿qué es la DFT de N puntos
similarmente, la transformación es un vector de valores dis-
de δ[n]?
cretos, ası́ que también debe ser dibujada con stem. Puesto
que la DFT es de valor complejo, usted tendrá que dibujar
las partes real e imaginaria en la mayorı́a de los casos. Si b. Todos uno: x1 = [1 1 1 1 1 1 1 1]. Fı́jese que este
usted desea ver dibujos simultáneos de las partes real e ima- ejemplo junto con la parte (a) ilustra el principio de dua-
ginaria de los vectores en el dominio del tiempo y en el do- lidad de la DFT.
minio de la frecuencia, utilice los comandos subplot(22x)
antes de cada comando stem para forzar que los cuatro di-
bujos sean colocados sobre la misma pantalla, con las partes c. Impulso desplazado: xish = [0 0 0 1 0 0 0 0]. Dibuje
real e imaginaria una encima de la otra, como en la Figura la magnitud de los valores de la DFT. Trate con otros
1. El programa que produce la Figura 1 sigue: desplazamientos—¿hay un desplazamiento diferente de
cero de xi donde la DFT sea puramente real?
Parte real de x[n] Parte real de DFT de x[n]
15
1

0.5
10 d. Pulso rectangular de tres puntos: xb = [1 1 1 0 0 0 0
0]; trate también el caso de cuatro puntos.
Valor

Valor

0 5

-0.5
0
e. Pulso rectangular simétrico: xbsy = [1 1 0 0 0 0 0 1].
-1

0 5 10 15
-5
0 5 10 15
Demuestre que esta DFT será puramente real. Compare
índice n índice k las magnitudes de la DFT de xb y xbsy.
Parte imaginaria de x[n] Parte imaginaria de DFT de x[n]
5
1

0.5
0 1.2. Ondas Seno
Valor

Valor

-5
Una sinusoide de valor real es descrita por tres parámetros.
-0.5
La forma matemática de la señal de tiempo es
-1
-10
0 5 10 15 0 5 10 15 s[n] = A cos(2πfo n + φ) para n = 0, 1, 2, . . . , N − 1 (3)
índice n índice k

Figura 1: Dibujos de las partes real e imaginaria de una señal de tiempo donde N es la longitud de la señal, A su amplitud, fo su
discreto y su DFT de 16 puntos con subplot(22x) para crear una frecuencia y φ la fase relativa en n = 0.
visualización de cuatro paneles. La DFT está al lado derecho y la
señal de tiempo de valor complejo está al lado izquierdo. a. Calcule la DFT de 21 puntos de una secuencia represen-
tando exactamente un ciclo de una onda coseno. Deter-
mine la frecuencia de esta sinusoide. Asegúrese de tomar
nn = 0:15; exactamente un ciclo, no un ciclo más un punto (es decir,
xx = exp(j*nn/3); no repita la primera muestra). Si se hace correctamente,
XX = fft(xx);
kk = nn; la respuesta será extremadamente simple.
subplot(221), stem(nn, real(xx))
title(’PARTE REAL de x[n]’), xlabel(’ı́ndice [n]’)
subplot(223), stem(nn, imag(xx)) b. Repita la parte (a) para una señal seno, luego para una
title(’PARTE IMAGINARIA de x[n]’), xlabel(’ı́ndice [n]’) coseno con un desplazamiento de fase de 45◦ . Observe
subplot(222), stem(kk, real(XX))
title(’PARTE REAL de la DFT’), xlabel(’ı́ndice [k]’)
cuidadosamente las magnitudes de los coeficientes de la
subplot(224), stem(kk, imag(XX)) DFT (y compare las fases).
title(’PARTE IMAGINARIA de la DFT’), xlabel(’ı́ndice [k]’)

2
c. Repita la parte (a) para tres ciclos de una sinusoide, aun 2.1. Secuencia senc con alias
utilizando una DFT de 21 puntos. ¿Cuál es la frecuencia
Una vez entendido, el principio de dualidad es bastante po-
de esta sinusoide (en radianes por muestra)?
deroso. Como un buen ejemplo de su uso en el cómputo,
considere la DFT de la señal senc con alias. De acuerdo
con la dualidad, el pulso rectangular y la función asenc son
d. Trate con un vector que es 3.1 ciclos de una sinusoide.
“transformaciones pares”.
¿Por qué es la DFT tan diferente?
a. La DFT de un pulso rectangular es una función seno con
alias en ω; la DFT de N puntos justamente muestrea la
e. Experimente con sinusoides de diferentes frecuencias. De- asenc en ω = (2π/N )k. Para un pulso de L puntos con
muestre que la selección para que la frecuencia sea fo = simetrı́a par, el resultado es
k(1/N ), cuando k es un entero, da una DFT de N puntos sen(πkL/N )
que tiene únicamente dos valores diferentes de cero. R[k] = asenc(ω, L) ω=2πk/N = (5)
sen(πk/N )

Genere un pulso rectangular con ancho de 7 puntos a


través de boxcar(7) y calcule su DFT de 16 puntos.
1.3. Exponenciales complejas Verifique que fueron obtenidos los valores transformados
correctos. Repita para una DFT de 21 puntos. Explique
La exponencial compleja está definida como
por qué la DFT de 21 puntos tiene tantos valores iguales
a cero.
c[n] = ejωo n para n = 0, 1, . . . , N − 1 (4)

La selección de ωo da resultados radicalmente diferentes pa- b. En la dual de la parte (a), la secuencia de tiempo se toma
ra la DFT. para que sea una asenc. Utilice Matlab para calcular y
dibujar la DFT de la siguiente secuencia asenc muestrea-
da:
a. Escoja ωo = 6π/N y calcule la DFT de N = 16 pun-
tos. ¿Cuántos valores de la DFT son diferentes de cero? sen(9πn/N )
a0 [n] = para n = 0, 1, . . . , N − 1
Puesto que las exponenciales complejas son las señales sen(πn/N )
base de la DFT, la propiedad de ortogonalidad prestan
sus transformaciones en una forma sencilla. Asuma que N es mayor que 9, digamos N = 16 o N = 21.

c. Encuentre la DFT de N puntos de la siguiente secuencia


b. El dual de la exponencial compleja es el impulso des- asenc desplazada:
plazado, cuando ωo es un múltiplo entero de 2π/N . En-
sen(9π(n + 1)/N )
cuentre la secuencia de 16 puntos cuya DFT es X[k] = a1 [n] = para n = 0, 1, . . . , N − 1
ej6πk/16 . sen(π(n + 1)/N )

Puesto que la función asenc es periódica, este desplaza-


miento es un desplazamiento circular.
c. Ahora trate con ωo = 5π/N y calcule la DFT de N = 16
puntos. Explique por qué no hay ceros en la DFT en este
caso. d. !Note que el factor en el numerador de a0 [n] o a1 [n] debe
ser impar! Trate de reemplazar el 9 con 10 en cualquiera
de las partes previas y calcule la DFT. ¿Por qué hay
d. La fórmula de Euler relaciona la exponencial compleja tanta diferencia entre los casos pares e impares?
con seno y coseno. Sea ωo = 6π/N . Muestre cómo cons-
truir la DFT de sen(ωo n) del resultado de la parte (a).
2.2. Tren de impulsos
Desarrolle el siguiente experimento:

2. DFTs difı́ciles a. Genere un tren de impulsos que contenga 207 muestras.


Entre los impulsos debe haber 22 ceros. La altura de cada
Las siguientes DFTs son difı́ciles de calcular a mano, pero impulso debe ser una constante. Llame a esta señal p[n].
los resultados no son difı́ciles de visualizar. Matlab hace 8
X
fácil calcular las transformaciones pares, ası́ que la visua- p[n] = δ[n − `Mo ] con Mo = 23
lización que viene del principio de dualidad del análisis de `=0
Fourier es reforzado por los siguientes ejercicios.

3
b. Calcule la DFT de 207 puntos de p[n]. Observe que en el α = 12 , este es un caso especial donde la transformación
dominio de la DFT, P [k] también toma únicamente los de Fourier de tiempo continuo produce una transforma-
valores de ceros y una constante. Determine el espacio ción que es de la misma forma, X(ω) = exp( 12 ω 2 ).
entre los impulsos en el dominio de k.

b. Forme un vector de N puntos de las muestras de g[n].


c. El perı́odo de la señal de entrada, Mo , es un divisor de Note que N será igual a 2L + 1. Coloque las muestras
la longitud de la FFT. Use este factor para explicar la en un vector de manera que preserven simetrı́a par. Esto
forma matemática de P [k]. Generalice este resultado. En puede ser acompañado con la rotación de la muestra más
particular, prediga la DFT si p[n] contiene 23 impulsos grande g[0] al comienzo del vector.
separados por 9 ceros; luego verifique con Matlab.

c. Calcule la DFT de N puntos de g[n]. Verifique que el


d. Cambie ligeramente la longitud de la DFT y calcule una
resultado es puramente real. Si no lo es, el vector de
DFT de 200 puntos. Puesto que los últimos 22 puntos
tiempo no fue construido simétricamente.
de p[n] son cero, solo necesitamos eliminar los ceros del
final. Explique por qué los valores de la transformación
son tan diferentes, pero note que la DFT aun tiene un d. Dibuje la parte real de la DFT y compare a una Gaus-
número grande de picos espaciados regularmente. siana. Puede ser necesario rotar el vector DFT para ver
que se ve como una Gaussiana (vea fftshift).
e. Cuando se dobla la longitud de la DFT, debe haber aun
ceros en la transformación: Calcule la DFT de 414 puntos
e. Experimente con valores diferentes de α. Mantenga cons-
de p[n] y dibuje la magnitud. Determine cuáles puntos
tante la longitud de la transformación. Trate de hacer
de la DFT son exactamente iguales a cero y explique
el ancho de la Gaussiana el mismo en los dominios del
por qué. ¿Qué pasarı́a para una DFT de 621 puntos?
tiempo y la frecuencia. Note que cuando el ancho de la
Explique.
Gaussiana decrece en el dominio del tiempo, crece en el
dominio de la DFT. Esta es una demostración del prin-
f. Calcule la DFT de 1024 puntos de p[n], de nuevo con re- cipio del incertidumbre del análisis de Fourier: “El pro-
lleno de ceros antes de la FFT. Note que la transforma- ducto del ancho del tiempo y del ancho de la frecuencia
ción tiene muchos picos y parecen estar en un espaciado es siempre mayor que una constante fija”. Entonces dis-
regular, al menos aproximadamente. Mida el espaciado minuir el ancho del tiempo necesariamente incrementará
y cuente los picos. Establezca la relación general entre el ancho de la frecuencia.
el perı́odo de la señal de entrada, p[n], la longitud de la
DFT y el espaciado regular de los picos en la DFT.
2.4. Exponencial real
2.3. Una Gaussiana Otra señal común es la exponencial real decreciente. La
transformación z de esta señal consiste de un solo polo, ası́
Un resultado resaltado frecuente de la teorı́a de Fourier es que es muy sencillo evaluarla. Sin embargo, está mal pen-
que “la transformación de Fourier de una Gaussiana es una sar que la DFT es solamente una versión muestreada de la
Gaussiana”. Esta sentencia es exactamente verdadera para transformación z.
el caso de la transformación de Fourier de tiempo continuo,
pero solo aproximadamente verdadera para la DTFT y la a. Genere una porción finita de una señal exponencial: x[n] =
DFT5 . (0,9)n u[n], para 0 ≤ n < N . Tome un número pequeño
de muestras, digamos N = 32.
a. Genere una señal Gaussiana de valor real:
2
g[n] = e−αn −L≤n≤L
b. Calcule la DFT
de N puntos de x[n] y dibuje la magnitud
de la DFT, X[k] .
La señal se trunca de manera simétrica alrededor del ori-
gen (n = 0). Escoja L de manera que la Gaussiana sea
bien muestreada hasta sus colas. La selección exacta de

c. Compare X[k] con las muestras de Y (ejω ) , la magni-
L dependerá de α; quizá el exponente más grande αL2 tud de la DTFT de y[n] = (0,9)n u[n], una exponencial
debe estar restringido a ser menos que 100. Si tomamos de longitud infinita.
5 Esas señales para las cuales DF T {v[n]} → V [k] son llamadas los
vectores propios de la DFT (refiérase al siguiente conjunto de proyec- Y (ejω ) =
1
tos, DFT como una matriz ).

1 − 0,9e−jω (6)

4
Dibuje las magnitudes sobre la misma gráfica—explique es truculenta. Hay funciones internas de Matlab llamadas
la diferencia en términos del ventaneo. fliplr y flipud para dar la vuelta derecha-izquierda sobre
las filas y arriba-abajo sobre las columnas. Ninguna de es-
tas es lo que deseamos para la DFT, porque estas funciones
d. Otra señal relacionada puede ser creada muestreando la hacen lo siguiente:
DTFT de an u[n]. Cree una DFT por medio del muestreo
de la fórmula (6) yout [n] = x[N − 1 − n] para n = 0, 1, . . . , N − 1
Entonces x[0] es intercambiado con x[N − 1], x[1] con x[N −
V [k] = Y (ejω )

ω=(2π/N )k 2] y ası́ sucesivamente. Por otro lado, la vuelta circular ne-
cesaria para la DFT satisfarı́a
Tome la IDFT de N puntos de V [k] para obtener v[n]. ycir [n] = x[−n mód N ] = x[0, N − n]
Experimente con diferentes longitudes de transformación
para N , porque cuando N → ∞, el resultado debe obte- para n = 1, 2, . . . , N − 1. En este caso, x[0] no se mueve
nerse muy cercano a an u[n]. mientras que x[1] es intercambiado con x[N − 1], x[2] con
x[N − 2] y ası́ sucesivamente.

Puesto que la DFT fue formada a través de muestras en el a. Escriba un archivo .m para la operación dar la vuelta cir-
dominio de la frecuencia, debe haber aliasing en el dominio cularmente; llámela cflip. Para un vector fila de N pun-
del tiempo. Derive una fórmula para v[n] en términos de tos cflip es sencillamente [ x(1), x(N:-1:2) ] , pero
y[n], basada en esta idea del aliasing de tiempo. usted debe hacerla trabajar para filas, columnas y ma-
trices (es decir, dar la vuelta circular de cada columna).

b. Verifique la propiedad de la DFT: ‘Dar una vuelta cir-


3. Simetrı́as en la DFT cular en el tiempo es dar una vuelta circular en la fre-
Este proyecto revisa diferentes atributos de la señal como cuencia”. Use vectores de prueba sencillos pero hágalos
par, impar, puramente real y puramente imaginaria y explo- de valor complejo para probar esta propiedad completa-
ra su implicación para una estructura especial de la DFT mente.
resultante. También se introduce el atributo de simetrı́a con-
jugada debido a que es el dual importante de puramente c. Verifique la propiedad de la DFT: “Una conjugada en el
real: “Una señal de tiempo puramente real tiene una DFT tiempo da una conjugada más una vuelta circular en la
simétrica conjugada y viceversa”. En muchos casos, estas frecuencia”. Establezca la dual de esta propiedad; luego
simetrı́as pueden ser utilizadas para simplificar los cálculos, verifı́quela con una señal de prueba de valor complejo.
especialmente en variaciones diferentes del algoritmo FFT.

Sugerencias La indexación de un vector de N puntos en 3.2. Partes par e impar


Matlab va de 1 a N . Sin embargo, muchas de las simetrı́as
de la DFT son expresadas en términos de vueltas con res- Las simetrı́as primarias están basadas en la paridad y dis-
pecto al origen (es decir, la restricción x[n] = x[−n mód N ] paridad. Por supuesto, estas deben ser definidas “circular-
define una señal par). Esto presenta problemas cuando se mente”.
trabaja en Matlab. Una solución sencilla serı́a crear un
a. Para uso en el resto de este ejercicio, escriba una función
nuevo archivo .m para desarrollar el volteado circular. Esto
de Matlab que extraiga la parte par de un vector; ha-
estarı́a basado en la aritmética módulo N , la cual se imple-
ga lo mismo para la parte impar. Estas funciones deben
menta a través del archivo .m mod descrito en el Apéndice
llamar a la función cflip escrita previamente.
A. Empezando desde cflip, usted puede escribir entonces
archivos .m adicionales para extraer las partes par e impar
de un vector de señal, como también sus partes simétrica b. Genere una señal de prueba de valor real v[n] utilizando
conjugada y antisimétrica conjugada. rand. Seleccione una longitud relativamente corta, diga-
mos N = 15 o N = 16. Compute la DFT de v[n] para
3.1. Las simetrı́as son circulares obtener V [k] y luego lo siguiente para ambas longitudes
par e impar.
Todas las operaciones con la DFT son hechas sobre un domi-
nio de indexación que es circular. Puesto que todas las pro-
piedades de simetrı́a se reducen únicamente a dos operacio- c. Calcule las partes par e impar de v[n].
nes básicas, la conjugación y dar la vuelta, es esencial tener ve [n] = 1
v[n] + v[−n mód N ]

2
funciones para cada una. Matlab provee una función conju- 1

gar interna: conj. Sin embargo, la operación “dar la vuelta” vo [n] = 2 v[n] − v[−n mód N ]

5

Luego compute las DFTs de estas dos señales para la d. Muestre que <e V[k] es par, por medio de calcular la
siguiente parte. parte imparde <e V [k] la cual deberı́a ser cero. Mues-
tre que =m V [k] es impar.
d. Para la DFT computada en la parte (a), extraiga sus
partes real e imaginaria y haga la siguiente comparación:
Entonces podemos concluir que la DFT de una secuencia

DFT ve [n]

vs. <e V [k]
real es simétrica conjugada, la cual es la propiedad dual
  esperada. ¿Cuál serı́a el resultado para un vector de entrada
DFT vo [n] vs. =m V [k] puramente imaginario?

Si v[n] es compleja, muestre que estas mismas relaciones


no se mantienen.
3.4. Todas las simetrı́as posibles
e. Las nociones de par e impar pueden ser extendidas al caso Cualquier señal de valor complejo puede ser descompues-
de complejos definiendo dos atributos llamados simetrı́a ta en cuatro sub-señales, cada una de las cuales exhibe
conjugada y antisimetrı́a conjugada. Genere una señal una cierta simetrı́a. Especı́ficamente, la señal compleja, v[n],
de prueba de valor complejo, v[n]. Compute sus partes siempre puede ser escrita como
simétrica conjugada y antisimétrica conjugada a través 
de v[n] = vr,e [n] + vr,o [n] + j vi,e [n] + vi,o [n] (8)

vcsy [n] = 21 v[n] + v ∗ [−n mód N ]



(7) donde los subı́ndices denotan real (r), imaginario (i), par
vcas [n] = 12 v[n] − v ∗ [−n mód N ]

(e) e impar (o). Entonces vi,o [n] es la parte impar de la
parte imaginaria de v[n]. El mismo orden de descomposición
Escriba funciones de Matlab que extraigan estas partes puede ser hecho para la DFT, V [k].
de un vector de señal de valor complejo. 
V [k] = Vr,e [k] + Vr,o [k] + j Vi,e [k] + Vi,o [k]

f. Muestre que la parte real de vcsy [n] es siempre par y Sin embargo, está mal asumir que la DFT de una de las
que la parte imaginaria es impar. Verifique estos hechos sub-señales se ajusta a la correspondiente sub-secuencia de
en Matlab para la parte simétrica conjugada de una la DFT.
secuencia de prueba aleatoria. Establezca una relación
similar para vcas [n]; verifı́quela. a. Escriba una función de Matlab que descomponga cual-
quier vector en sus cuatro partes, como fue definido en
(8).
g. Verifique que la DFT de una señal simétrica conjugada
es puramente real. ¿Qué sucede con la DFT de una señal
anti-simétrica conjugada?
b. Las simetrı́as de la DFT pueden ser catalogadas en un
diagrama que muestra la correspondencia de la simetrı́a
en el dominio de la transformación a una de las cua-
3.3. DFT de una secuencia real tro sub-señales en el dominio del tiempo. Complete el
siguiente diagrama conectando cada sub-señal en el do-
Por dualidad, la DFT de una secuencia puramente real debe
minio del tiempo • con la sub-secuencia apropiada en el
ser simétrica conjugada. Comience con una secuencia real de
dominio de la frecuencia ◦.
N puntos v[n], la cual no es ni par ni impar.

a. Calcule su DFT: V [k] = DFT v[n] . Simetrı́as
de la DFT
vr,e [n] • ◦ Vr,e [k] real y par
  vr,o [n] • ◦ Vr,o [k] real e impar
b. Visualice <e V [k] e =m V [k] . Además, grafique la vi,e [n] • ◦ Vi,e [k] imaginario y par
magnitud y la fase de V [k] y note cualquier simetrı́a ob- vi,o [n] • ◦ Vi,o [k] imaginario e impar
via.

c. Extraiga la parte antisimétrica conjugada de V [k], la cual c. Dé ejemplos numéricos para mostrar que cada conexión
debe ser cero. en el diagrama es correcta.

6
4. Trucos para la DFT inversa 4. Compare los valores numéricos de x[n] y v[n] = Y [k]|k=n .

En la práctica, hardware especial puede ser construido para


calcular la DFT. En este caso, es ventajoso usar el mismo b. Derive la regla general para la relación entre los valores
hardware para la DFT inversa (iDFT). Este proyecto mues- de x[n] y v[n] y pruebe por qué ellos están relacionados
tra tres diferentes formas que la iDFT se puede computar de manera tan sencilla.
utilizando un algoritmo de la DFT directa. Todo está basa-
do en el hecho que la fórmula para la iDFT es cercanamente
idéntica a aquella para la DFT directa, excepto por un signo c. Programe un archivo .m que implemente la iDFT de
menos en el exponente y un factor de 1/N . acuerdo a este algoritmo. Pruébelo sobre algunos pares
DFT conocidos.
N −1
1 X −nk
x[n] = X[k]WN (9)
N
k=0
4.2. iDFT a través de conjugadas
para n = 0, 1, 2, . . . , N − 1.
Este ejercicio trata con el cálculo de la DFT inversa utili-
Sugerencias. Tres funciones iDFT diferentes son descri- zando varias conjugadas bien colocadas. Use una secuencia
tas en este proyecto. Por consiguiente, tres archivos .m sepa- de prueba X[k] generada como en el Ejercicio 4.1.
rados deben ser escritos y probados. Dentro de Matlab, la
función DFT inversa ifft es realmente implementada uti- a. Deseamos mostrar que los siguientes tres pasos son equi-
lizando uno de estos trucos. Escriba la lista de la función valentes a la iDFT de X[k].
ifft para ver cual es.
1. Conjugue X[k].

4.1. iDFT a través de rotaciones circulares


2. Compute la DFT directa de X ∗ [k].
Este ejercicio trata con el cálculo de la DFT inversa utili- Como antes, tenemos un vector de N puntos, ası́ que
zando una propiedad de la transformación que es conocida podemos hacer esto.
como dualidad. Este método es interesante porque enfati-
za la naturaleza circular de toda la indexación de la DFT.
3. Conjugue la DFT de salida resultante.
El archivo .m cflip desarrollado en el proyecto 3 será útil
Si el resultado de la DFT previa fuera Y [k], ahora
aquı́.
tenemos Y ∗ [k].
a. Genere una secuencia aleatoria x[n] utilizando una dar
la vuelta circular. La longitud de la secuencia puede ser
cualquiera, pero es frecuente escoger una potencia de 2; b. Compare

los valores numéricos de x[n] y los de v[n] =
si es ası́, seleccione N = 16. Utilice fft para calcular la Y [k]|k=n . Note que el efecto de las operaciones conjuga-
DFT de x[n] y llame esto X[k]. Esta secuencia será la se- das han sido cambiar el signo de la exponencial compleja.
cuencia de prueba para la iDFT. Desarrolle los siguientes Derive la regla general para la relación entre los valores
pasos con Matlab: de x[n] y v[n] y pruebe por qué ellos están relacionados
de una manera tan sencilla.
1. De la vuelta a la secuencia X[k] utilizando una dar la
vuelta circular. Puesto que X[k] es justo un vector de
c. Cree un archivo .m de Matlab que implemente este al-
16 valores complejos, puede ser tratado como si fuera
goritmo para la iDFT. Compare con la implementación
un vector de muestras de tiempo. Ası́ la operación de
realmente usada en Matlab; el listado de la función de
dar la vuelta define un nuevo vector de tiempo por
Matlab ifft puede ser obtenido a través de type ifft.
medio de y[n] = X[k]|k=(−n) mód N .

2. Puesto que la secuencia y[n] es justo un vector de 16


valores complejos, puede ser utilizado como la entrada 4.3. Otro truco de la iDFT
a una DFT directa (es decir, aplique fft de nuevo). Este ejercicio muestra aun otra forma de computar la DFT
Llame al resultado Y [k]. inversa. Su prueba también se basa en la propiedad conju-
gada de la DFT. Utilice la misma secuencia de prueba como
3. Una vez de nuevo, la secuencia Y [k] es justo un vector en los dos ejercicios precedentes.
de 16 valores, ası́ que puede ser considerado como un
vector de tiempo si k es reemplazado por n. a. Deseamos mostrar que los siguientes tres pasos son equi-
valentes a la iDFT de X[k] (vea la Figura 2).

7
 
ℜe X[k] N ℜe x[n]
 FFT 
ℑm X[k] N ℑm x[n]

Figura 2: iDFT a través de cambio de las partes real e imaginaria.

1. Intercambie las partes real e imaginaria de X[k] y de-


fina el resultado como un vector de tiempo; esto es,
defina v[n] ası́ que su parte real es la parte imaginaria
de X[k] y su parte imaginaria es la parte real de X[k].

2. Calcule la DFT directa de v[n] y llame a esto V [k].

3. Intercambie las partes real e imaginaria de V [k] y


defı́nalas como un vector de tiempo; esto es, defina
y[n] de manera que su parte real es la parte imagina-
ria de V [k] y su parte imaginaria es la parte real de
V [k].

b. Compare los valores numéricos de x[n] y y[n]. Derive la


regla general para la relación entre los valores de x[n] y
y[n] y pruebe por qué ellos están relacionados de manera
sencilla.

c. Cree un archivo .m de Matlab que implemente este al-


goritmo iDFT.

También podría gustarte