Home | Develop | Download | Contact
 Todo Estructuras de Datos Funciones Variables 'typedefs' Grupos Páginas
Estructuras de datos
Módulo PdsGoertzel.

Cálculo de la FT (Fourier Transform), aplicando el algoritmo de Goertzel. Más...

Estructuras de datos

struct  PdsGoertzel
 Estructura tipo PdsGoertzel. Esta estructura genera una Transformada de Fourier de N puntos aplicando el algoritmo de Goertzel. Más...
 

pds_goertzel_new

Creando nuevas estructuras de tipo PdsGoertzel

PdsGoertzelpds_goertzel_new (PdsFtNatural k, PdsFtNatural N)
 Crea una estructura de tipo PdsGoertzel, para generar una FT de N puntos. Si N no es potencia de 2, no da error, y se crea una estructura para una FT con un N1, que si es potencia de dos y mayor a N, (N1>=N). El valor de N mínimo es N=2 . Más...
 

pds_goertzel_evaluate

Evaluando datos

int pds_goertzel_evaluate_real (const PdsGoertzel *FT, PdsComplex *X, const PdsVector *In)
 Evalúa la transformada de fourier X[k] a un vector real. El tamaño del vector In debe ser igual o menor que el número de puntos de la FT, La diferencia se llenará con ceros. Más...
 

pds_goertzel_<free>

Liberando memoria

void pds_goertzel_free (PdsGoertzel *FT)
 Libera una estructura de tipo puntero PdsGoertzel. Más...
 
void pds_goertzel_destroy (PdsGoertzel **FT)
 Libera una estructura de tipo puntero PdsGoertzel, y carga a la estructura con NULL. Más...
 

Descripción detallada

Cálculo de la FT (Fourier Transform), aplicando el algoritmo de Goertzel.

pdsgoertzel.png
Transformada de Fourier aplicando el algoritmo de Goertzel

\begin{eqnarray*} X[k] &=& \sum_{i=0}^{N-1}x[i]W_N^{ik} \\ W_N^{r} &=& e^{-j 2 \pi r / N } \end{eqnarray*}

Para que este algoritmo sea ventajoso comparado al algoritmo FFT, debe cumplirse que la cantidad de puntos np de la FT, que se desea averiguar debe cumplir np<3N*log2(N)/(4N+4). Si solo se ha creado una estructura PdsGoertzel, entonces np=1.

\begin{eqnarray*} np&<&\frac{3~N~log_2(N)}{4(N+1)} \end{eqnarray*}

Documentación de las funciones

PdsGoertzel * pds_goertzel_new ( PdsFtNatural  k,
PdsFtNatural  N 
)

Crea una estructura de tipo PdsGoertzel, para generar una FT de N puntos. Si N no es potencia de 2, no da error, y se crea una estructura para una FT con un N1, que si es potencia de dos y mayor a N, (N1>=N). El valor de N mínimo es N=2 .

Parámetros
[in]kEs el elemento de la FT{x[n]}, X[k], que se desea encontrar.
[in]NEs el número de elementos de la FT.
Devuelve
Un puntero a una estructura de tipo PdsGoertzel. En caso de error devuelve NULL.
Ejemplos:
testprograma1.c.
int pds_goertzel_evaluate_real ( const PdsGoertzel FT,
PdsComplex *  X,
const PdsVector *  In 
)

Evalúa la transformada de fourier X[k] a un vector real. El tamaño del vector In debe ser igual o menor que el número de puntos de la FT, La diferencia se llenará con ceros.

Parámetros
[in]FTLa estructura a una FT de Goertzel de N puntos.
[out]XEl elemento complejo en la posición k de la FT de N puntos.
[in]InEl vector de un tamaño menor o igual a N, al que se le desea aplicar la FT.
Devuelve
TRUE si todo fue bien o FALSE si no.
Ejemplos:
testprograma1.c.
void pds_goertzel_free ( PdsGoertzel FT)

Libera una estructura de tipo puntero PdsGoertzel.

Parámetros
[in,out]FTLa FT de Goertzel a liberar.
Devuelve
No retorna valor.
Ejemplos:
testprograma1.c.
void pds_goertzel_destroy ( PdsGoertzel **  FT)

Libera una estructura de tipo puntero PdsGoertzel, y carga a la estructura con NULL.

Parámetros
[in,out]FTLa FT de Goertzel a liberar.
Devuelve
No retorna valor.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed