Cálculo de La Convolución Lineal Mediante La DFT
Cálculo de La Convolución Lineal Mediante La DFT
Cálculo de La Convolución Lineal Mediante La DFT
X 1 [k ] y X 2 [k ]
x 1 [n ] y x 2 [n] , respectivamente.
b) Calcular el producto
c) Calcular la secuencia
X 3 [k ]=X 1 [k ] X 2 [ k ] para
0 k N 1.
X 3 [k ] .
x 2 [n ]
x1 [ n]
x 3 [ n ]=
m =
x 1 [ m ] x 2 [ nm ]
x 2 [ nm ]
( L+ P1)
x 1 [ m ] x 2 [ nm ]
x 3 [ n ] 0
x1 [ m ]
n=1, 0 n L1
n=L+ P1 . Es
en el intervalo
0 n L+ P2 .
x3 [ n ]
resultante de
X (e jw )
de una secuencia
x [n]
se
~
x [ n ] = x [ nrN ]
r=
2 k
N
( ) ) ,0 k N1
X [ k ]= X ( e
j
0 ,en el resto
~
x p [ n ]= x [n],0 n N1
0 ,en el resto
Obviamente, si
x [n]
solapamiento temporal y
x p [n]
n
x p [n]=x ]. Sin embargo, si la longitud de
x [n]
x [n]> N ,
x3 [ n ]
La secuencia
jw
jw
X 3 (e )=X 1 ( e ) X 2 (e )
Si definimos una DFT
X 3 [ k ] =X 3 e
j 2
k
N
)) , 0 k N1
X 3 [ k ] =X 1 e
j 2
k
N
)) X
j 2
k
N
( e ( )) , 0 k N 1
Y, por tanto,
X 3 [k ]=X 1 [k ] X 2 [k ]
Es decir, la secuencia resultante de realizar la DFT inversa de X3[k] es
x3 p [ n ]=
r=
x3 [ nrN ] ,0 n N 1
0, en el resto
La
convolucin
x 1[n] y x 2[n]
circular
como
convolucin
lineal
con
es de longitud
muestra en la Figura 8.18(b). En las Figuras 8.18(c) y (d) se muestran dos de las
versiones desplazadas x3[nrN ] de la Ecuacin (8.137), x3[nN ] y x3[n+N ] para
N =6. La convolucin circular de N puntos de x1[n] y x2[n] se puede formar
utilizando la Ecuacin (8.137). Esto se muestra en la Figura 8.18(e) para N =L=6 y
en la Figura 8.18(f) para N =2L=12. Ntese que, para N = L = 6, slo x3[n] y
x3[n+N] contribuyen al resultado. Para N = 2L = 12, slo x3[n] contribuye al
resultado. Como la longitud de la convolucin lineal es (2L1), el resultado de la
convolucin circular para N = 2L es idntico al resultado de la convolucin lineal
para todo 0 n N 1. De hecho, esto sera tambin cierto para N = 2L1 = 11.
En muchas aplicaciones, como filtrado de seales de voz, la seal de entrada es de duracin indefinida, se
podra almacenar la seal completa y realizar despus el procedimiento utilizando una DFT, pero esto no
es prctico y la solucin a esto es utilizar convolucin por bloques (La seal que se va a filtrar se divide
en secciones de longitud L)
Consideremos la respuesta al impulso h[n] de longitud P y la seal x[n] que se muestran a continuacin.
De aqu en adelante supondremos que x[n] = 0 para n < 0 y que la longitud de x[n] es mucho mayor que
P. La secuencia x[n] se puede representar como una suma de segmentos de longitud finita L.
Es decir:
x [ n ]= xr [ nrL ]
r=0
Siendo
x r [ n ] = x [ n+rL ] , 0 n L1
0,en elresto
y [ n ] =x [ n ]h [ n ] = y r [nrL]
r =0
Siendo
y r [ n ] =x r [ n ]h [n]
y rp [n] es el resultado
de una convolucin circular con solapamiento temporal. La parte de cada seccin de salida en la regin 0
n 2 es la parte que hay que descartar. Las restantes muestras de las secciones sucesivas se van
colocando una detrs de otra para formar la salida filtrada. Es decir,
y [ n ] = y r [ nr ( LP+ 1 )+ P1 ] ,
r =0
Siendo
y r [ n ] = y rp [ n ] P1 n L1
0 en el resto