You are on page 1of 2

OpenStax-CNX module: m16122 1

Algoritmo de Goertzel

Andres Romero Mier y Tern


This work is produced by OpenStax-CNX and licensed under the

Creative Commons Attribution License 2.0

Abstract
Introduccin al funcionamiento del Algoritmo de Goertzel y a su implementacin en un DSP

A pesar del ahorro de recursos que la FFT (Transformada Rpida de Fourier) consigue en comparacin
con la DFT ordinaria (Transformada Discreta de Fourier), para algunas aplicaciones simplemente se requiere
calcular el espectro para algunas frecuencias de inters. Un ejemplo de esto se tiene en la demodulacin
FSK, en las cuales nicamente dos frecuencias son empleadas para transmitir datos binarios, otro ejemplo
es matriz DTMF (Dual Tone Multifrequency) de los telfonos con marcacin por tonos.
Para estas aplicaciones el algoritmo de Goertzel reduce la cantidad de operaciones en nmeros reales en
casi la mitad en relacin con el clculo directo de la DFT.
El algoritmo de Goertzel se obtiene como una adaptacin de la ecuacin de la DTF, equivalente a una
convolucin que puede ser implementada mediante un ltro digital.
A partir de las constantes de la DFT tenemos que

e(j ) = Wk (1)
2k
N
N

y considerando que

WNN k = 1 (2)
podemos escribir la ecuacin de la DFT de manera equivalente a
PN 1
X (k) = n=0 x (n) 1WNnk
(3)
PN 1
= n=0 x (n) WNN k WNnk
PN 1 k(N n)
= n=0 x (n) WN
expandiendo la sumatoria tenemos

WNk x (0) + x (1) WNk + x (2) WNk + + x (N 1) WNk (4)


  
X (k) =
esta ecuacin en diferencias puede ser escrita en forma recursiva como

y (n) = WNk y (n 1) + x (n) (5)


Version 1.2: Apr 28, 2008 1:18 pm -0500
http://creativecommons.org/licenses/by/2.0/

http://cnx.org/content/m16122/1.2/
OpenStax-CNX module: m16122 2

en donde

y (0) = WNk x (0)


y (1) = WNk y (0) + x (1)
y (2) = WNk y (1) + x (2) (6)
..
.
y (N 1) = WNk y (N 2) + x (N 1)
para las condiciones iniciales de funcionamiento y (1) = 0.
De esta manera el coeciente de la DFT para k es equivalente a la salida de la ecuacin en diferencias
en el tiempo n = N 1.

X (k) = y (N 1) (7)
Expresando la ecuacin en diferencias como una funcin de transferencias tenemos
Y (z) 1 1 WNk z 1 1 WNk z 1
= H (z) = = = (8)
1 WNk z 1 k
1 2cos 2k
  
X (z) 1 WNk + WN z 1 + z 2 N z 1 + z 2
Esta funcin de transferencias representa a un ltro IIR
De esta manera, y entendiendo que cada valor de k se encuentra relacionado con una banda del espectro
de frecuencias de la seal x (n), podemos obtener la energa nicamente en las bandas que nos interesan y
ahorrar clculos en bandas no requeridas.

http://cnx.org/content/m16122/1.2/

You might also like