dft. - Universidad de Carabobo

Anuncio
Procesamiento digital de la señal
Transformada discreta de Fourier (DFT)
Alfonso Zozaya
Universidad de Carabobo (UC)
Departamento de Electrónica y Comunicaciones
Valencia, Venezuela, marzo de 2007
A. Zozaya
Mar. 2007 –1–
Transformada discreta de Fourier (DFT)
Sea x(n) una secuencia de N muestras en el intervalo [0, N − 1] (o sea
causal). Se define la Transformada discreta de Fourier DFT de x(n), la
cual se denota por X(k), como:
X(k) , DFT[x(n)] =
N
−1
X
x(n)WNkn
(1)
n=0
0≤k ≤N −1
donde WN , exp
− 2π
N
.
La DFT X(k) es igualmente una secuencia de N muestras.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Mar. 2007 –2–
Transformada discreta de Fourier inversa (IDFT)
Sea X(k) la DFT de N muestras en el intervalo [0, N − 1] de x(n). Se
define la Transformada discreta de Fourier inversa IDFT de X(k):
N −1
1 X
X(k)WN−kn
x(n) , IDFT[X(k)] =
N
(2)
k=0
0≤n≤N −1
La IDFT x(n) es igualmente una secuencia de N muestras.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Mar. 2007 –3–
Implementación de la DFT usando MATLAB
function Xk=dft(xn)
% X(k)=DFT(x(n))
%
% Calcula la DFT de la secuencia x(n) de duracion finita N.
N=length(xn);
n=0:N-1;
k=0:N-1;
WN=exp(-j*(2*pi/N));
W=WN.^(k’*n);
Xk=W*xn’;
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Mar. 2007 –4–
Implementación de la IDFT usando MATLAB
function x=idft(X)
% x(nk)=IDFT(X(k))
%
% Calcula la IDFT de la secuencia X(k) de duracion finita N.
N=length(X);
n=0:N-1;
k=0:N-1;
WN=exp(j*(2*pi/N));
W=WN.^(k’*n);
x=(1/N)*W*X’;
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DFS –5–
Relación entre la DFT y la serie de Fourier de tiempo
discreto DFS
1. Recordemos algunas caracterı́sticas de las DFS:
a) La DFS está definida solo para secuencias x
e(n) periódicas, de perı́odo
N , de duración infinita:
1) Ecuación de análisis:
e
X(k)
=
N
−1
X
x
e(n)WNkn,
0≤k ≤N −1
(3)
n=0
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DFS –6–
2) Ecuación de sı́ntesis:
N −1
1 X e
x
e(n) =
X(k)WN−kn,
N
−∞ ≤ n ≤ ∞
(4)
k=0
b) El contenido frecuencial de la DFS es discreto y finito (se puede
manejar computacionalmente).
c) Si N es el perı́odo de x
e(n), solo N coeficientes X(k) distintos es
necesario calcular.
d) El contenido temporal de x
e(n) es discreto e infinito.
2. La DFT en cambio:
a) La DFT está definida solo para secuencias x(n) de duración finita
(aperiódicas):
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DFS –7–
1) Ecuación de análisis:
X(k) =
N
−1
X
x(n)WNkn,
0≤k ≤N −1
(5)
n=0
2) Ecuación de sı́ntesis:
N −1
1 X
X(k)WN−kn,
x(n) =
N
0≤n≤N −1
(6)
k=0
b) Tanto el contenido temporal como frecuencial de las secuencias se
pueden manejar computacionalmente.
3. Comparación resumida:
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DFS –8–
Cuadro 1: Relación entre la DFS y la DFT
DFS
e
X(k)
=
NP
−1
n=0
x
e(n)WNkn
0≤k ≤N −1
x
e(n) =
1
N
NP
−1
k=0
−kn
e
X(k)W
N
−∞ ≤ n ≤ ∞
DFT
X(k) =
NP
−1
n=0
x(n)WNkn
0≤k ≤N −1
x(n) =
1
N
NP
−1
k=0
X(k)WN−kn
0≤n≤N −1
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DFS –9–
4. Del cuadro (1) observamos que si expandimos la secuencia aperiódica
x(n) de N muestras, en una secuencia periódica de perı́odo N :
x
e(n) =
∞
X
x(n − rN )
(7)
r=−∞
o equivalentemente:
x
e(n) = x(nmodN ),
−∞ ≤ n ≤ ∞
(8)
entonces se cumple que:
x(n) =
x
e(n), n ∈ [0, N − 1];
0,
n∈
/ [0, N − 1].
(9)
5. Y la DFT de x(n) coincide con la DFS de x
e(n).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –10–
Relación entre la DFT y la DTFT
1. Recordemos algunas propiedades de la DTFT:
a) La DTFT está definida para secuencias absolutamente sumables.
b) Ecuación de análisis:
∞
X
X(ω) =
x(n)e−ωn
(10)
X(ω)eωn dω
(11)
n=−∞
c) Ecuación de sı́ntesis:
1
x(n) =
2π
Z
π
−π
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –11–
d) De la ecuación de análisis (10) vemos que el contenido temporal de
x(n), aun cuando es discreto, se extiende, en general, infinitamente.
e) De la ecuación de sı́ntesis (11) vemos que el contenido frecuencial de
X(ω), aún cuando está confinado a un dominio finito, es (continuo)
infinito.
2. Para secuencias x(n) de duración finita N , la suma de la ecuación de
análisis (10) se restringe a N términos:
n0 +(N −1)
X(ω) =
X
x(n)e−ωn
(12)
n=n0
y si x(n) es causal:
X(ω) =
N
−1
X
x(n)e−ωn
(13)
n=0
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –12–
3. El contenido temporal de las secuencia x(n) de duración finita es manejable computacionalmente.
4. El espectro X(ω) de x(n) sigue siendo continuo (infinito) y por lo tanto
no es ((manejable computacionalmente)).
5. Para ((manejar)) numéricamente el espectro de x(n), podemos tomar algunas muestras de X(ω): {X(ωk )}, con ωk = 2π
M k y k ∈ {0, 1, 2, . . . , M −
1}.
6. Cabe preguntarse: ¿Cuál es el número M mı́nimo de muestras necesarios
para reconstruir X(ω)?
7. ¡¡¡ El número mı́nimo de muestras es N !!!. En efecto, dada la secuencia
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –13–
de N muestras {X(ωk )}, donde:
X(ωk ) =
N
−1
X
x(n)e−ωk n =
n=0
N
−1
X
2π
x(n)e− N kn
(14)
n=0
0≤k ≤N −1
X(ω) se puede reconstruir a partir de {X(ωk )} mediante la fórmula de
interpolación [1]:
X(ω) =
N
−1
X
k=0
donde
2π
X(ωk )Φ ω − k
N
(15)
sin ωN
2 −ω ( N 2−1 )
ω e
N sin 2
Φ(ω) =
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –14–
8. Ahora procedamos a poner la ecuación (14) al lado de la ecuación de la
DFT de la secuencia finita x(n) (5):
Cuadro 2: Comparación entre la DTFT y la DFT.
N muestras de DTFT[x(n)]
X(ωk ) =
NP
−1
− 2π
N kn
x(n)e
n=0
0≤k ≤N −1
DFT[x(n)]
X(k) =
NP
−1
n=0
x(n)WNkn
0≤k ≤N −1
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación DFT-DTFT –15–
9. Tomando en cuenta que WN = exp
− 2π
N
concluimos que:
X(k) = X(ω)|ω= 2π k
(16)
N
0≤k ≤N −1
10. X(k), la transformada discreta de Fourier (DFT) de x(n), es la versión
discreta (muestreada) de X(ω), la transformada de tiempo discreto de
Fourier (DTFT) de x(n).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
0 padding –16–
Zero-padding
1. A partir de la ecuación (16) inferimos que la resolución en frecuencia de
la versión muestreada de la DTFT se puede mejorar arbitrariamente hasta
2π
M , con M tan grande cuanta memoria tengamos disponible, aumentando
el número de muestras de la DTFT en el intervalo [−π, π] de N a M .
2. Y que esto a su vez se consigue aumentando hasta M el tamaño de
la secuencia x(n) mediante una operación que se conoce como zeropadding, la cual consiste en rellenar con ceros la secuencia, a partir de su
último valor, hasta alcanzar el tamaño deseado. Respecto al Zero-padding
cabe mencionar:
a) El zero-padding permite aumentar la densidad espectral de X(ωk ).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
0 padding –17–
b) El zero-padding no altera la realidad matemática de la secuencia x(n),
y por lo tanto tampoco su espectro.
c) Sin embargo, si x(n) se ha obtenido muestreando una señal analógica
xa(t), de duración finita, enventanada, el zero-padding aún permitirá una mayor resolución espectral de X(ωk ), pero, en general, no de
Xa(Ωk ).
d) La secuencia que se obtiene con el zero-padding ya no representa
las muestras de xa(t) en la ventana, porque los ceros que se añaden
artificialmente no se corresponden con el comportamiento de xa(t) en
la ventana ( a menos, claro está, de una providencial coincidencia).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
0 padding –18–
Ejercicio: relación entre xa(t), su espectro, la DFT y el
zero-padding
Dada la señal
xa(t) = cos ω1t + cos ω2t
1. Enventanar xa(t) con una ventana rectangular de duración T segundos.
2. Tomar muestras de la porción de xa(t) enventanada a razón de ωs >
2 máx{ω1, ω2} y construir la secuencia x(n).
3. Calcular la DFT de x(n) para un valor pequeño de T .
4. Aumentar la densidad espectral de X(k) usando zero-padding.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
0 padding –19–
5. Calcular la DFT de x(n) para un valor grande de T , por ejemplo:
T > 1/∆f , siendo 2π∆f la resolución en frecuencia deseada en Ω.
6. Comentar y concluir.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –20–
Propiedades de la DFT
1. Linealidad:
DFT[ax1(n) + bx2(n)] = aDFT[x1(n)] + bDFT[x2(n)]
si N1 6= N2, para la aplicación de esta propiedad tomar N =
máx(N1, N1), y calcular las DFTs con N muestras completando con
ceros donde sea necesario.
2. Rotación circular:
a) La rotación circular de una secuencia se denota por x((−n))N y se
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –21–
define como:
x((−n))N =
x(0),
n = 0;
x(N − n), 1 ≤ n ≤ N − 1.
b) ((Envolver (enrollar) la secuencia x(n) circularmente en sentido antihorario haciendo coincidir el 0 con N y desenvolver (desenrollar) en
sentido horario)).
c) En MATLAB: x=x(mod(-n,N)+1).
d) La DFT de una secuencia rotada circularmente se obtiene rotando
circularmente la DFT de la secuencia sin rotar:
DFT [x((−n))N ] = X((−k))N =
X(0),
k = 0;
X(N − k), 1 ≤ k ≤ N − 1.
3. Conjugación, la DFT de una secuencia conjugada se obtiene conjugando
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –22–
la DFT de la secuencia rotada circularmente:
DFT[x∗(n)] = X ∗((−k))N
4. Simetrı́as de las secuencias reales: si x(n) es una secuencia real,
entonces x(n) = x∗(n) y usando la propiedad de conjugación anterior:
X(k) = X ∗((−k))N
de lo cual se desprenden las secuencias:
a)
b)
c)
d)
par circular <[X(k)] = <[X((−k))N ].
impar circular =[X(k)] = −=[X((−k))N ].
par circular |X(k)| = |X((−k))N |.
impar circular ∠X(k) = −∠X((−k))N .
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –23–
5. Desplazamiento circular de una secuencia
a) El desplazamiento circular de m muestras de una secuencia se logra
envolviendo (enrollar) la secuencia x(n) circularmente en sentido
antihorario, haciendo coincidir el 0 con N , rotando las muestras
sobre el circulo m veces, en sentido horario si m < 0 y en sentido
antihorario si m > 0, y desenvolviendo (desenrollar) en el mismo
sentido antihorario.
b) El desplazamiento circular de m muestras de x(n) se denota por
x((n − m))N .
c) La DFT de x((n − m))N vale:
DFT[x((n − m))N ] = WNkmX(k)
6. Desplazamiento circular en el dominio de la frecuencia, es una
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –24–
propiedad similar al desplazamiento temporal:
DFT[WN−`nx(n)] = X((k − `))N
7. Convolución circular de N muestras
a) La convolución circular de N muestras se denota por x1(n) N x2 (n) y
se define como:
x1(n) N x2 (n) =
N1
X
x1(m)x2((n − m))N ,
0≤n≤N −1
m=0
b) La DFT de la convolución circular de dos secuencias es igual al
producto de las DFT de las secuencias:
DFT [x1(n) N x2 (n)] = X1 (k)X2 (k)
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Propiedades de la DFT –25–
8. Multiplicación, esta propiedad es similar a la propiedad de convolución
circular:
1
DFT[x1(n)x2(n)] = X1(k) N X2 (k)
N
9. Relación de Parseval, relaciona la energı́a de la señal en ambos dominios:
N
−1
N
−1
X
X
1
Ex =
|X(k)|2
|x(n)|2 =
N
n=0
k=0
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación x1 (n) ∗ x2 (n) ⇔ x1 (n)
N x2 (n) –26–
Cálculo de la convolución lineal a partir de la
convolución circular
1. Sean x1(n) y x2(n) dos secuencias de duración finita, y sean N1 y N2
los tamaños respectivos de tales secuencias.
2. A partir de la definición de convolución circular observamos que
x1(n) N x2 (n) es, en general, una versión ((solapada)) (aliased) de
x1(n) ∗ x2(n).
3. Si ponemos N = N1 + N2 − 1, y completamos con ceros las secuencias
x1(n) y x2(n) hasta que cada una alcance un tamaño de N muestras,
entonces [1]: x1(n) ∗ x2(n) = x1(n) N x2 (n).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
Relación x1 (n) ∗ x2 (n) ⇔ x1 (n)
N x2 (n) –27–
4. ¿Cómo podrı́amos calcular la convolución circular/lineal de dos secuencias
a partir de sus DFTs?
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
FFT –28–
Comentarios acerca de la FFT
1. La DFT implementada como ha sido en MATLAB, es ineficiente, porque
el número de operaciones requeridas para su computo es del orden
O(N 2).
2. En 1965 Cooley y Tukey [2] divulgaron el primer algoritmo para el cálculo
eficiente de la DFT.
3. Luego se han desarrollado varios (DIT-FFT, DIF-FFT, por ejemplo),
todos los cuales se engloban bajo un mismo acrónimo: FFT de fast
Fourier transform.
4. La FFT es un algoritmo que requiere un número de operaciones del orden
O(N lg N ).
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
FFT –29–
100
90
80
70
O(N2)
60
50
40
30
20
O(N logN)
10
0
1
2
3
4
5
6
7
8
9
10
N
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
FFT –30–
Referencias
[1] Vinay K. Ingle and John G. Proakis. Digital Signal Processing using MATLAB. BookWare Companion Series. Brooks/Cole Thomson
Learning, 2000.
[2] J. W. Cooley and J. W. Tukey. Mathematical computations. (19):297–
301, April 1965.
[3] Jhon G. Proakis and Dimitris G. Manolakis. Digital Signal Processing,
Principles,Algorithms, and Application. Prentice Hall, third edition,
1996.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
A. Zozaya
FFT –31–
[4] Gordon E. Carlson. Signal and Linear System Analysis with MATLAB.
BookWare Companion Series. John Wiley & Sons, Inc., 1998.
[5] Julius O. Smith. Introduction to Digital Filters.
ccrma.stanford.edu/˜jos/filters/, February 11, 2002.
http://www-
[6] Thanos Antoulas and John Slavinsky. Partial Fraction Expansion.
http://cnx.rice.edu/content/, Nov 24, 2003.
<=] [N] [C] [J] [I] [H]
[Abrir] [⊗] [
Descargar