Home | Develop | Download | Contact
Estructuras de datos | Funciones
Funciones del módulo PdsLpFir.

Estructuras de datos

struct  PdsLpFir
 Una estructura tipo PdsLpFir . Más...
 

Funciones

PdsLpFirpds_lpfir_new (const PdsVector *h, PdsDfNatural par)
 Crea un filtro Linear-Phase FIR con parametros h. Más...
 
int pds_lpfir_evaluate_value (PdsLpFir *LPFIR, PdsDfReal x, PdsDfReal *y)
 Evalúa el filtro Linear-Phase FIR con el valor de entrada x, el resultado es cargado en y. Más...
 
int pds_lpfir_evaluate_vector (PdsLpFir *LPFIR, const PdsVector *x, PdsVector *y)
 Evalúa el filtro Linear-Phase FIR con el vector de entrada x, el resultado es cargado en el vector y. Más...
 
int pds_lpfir_get_order (PdsLpFir *LPFIR)
 Esta función retorna o grado del filtro FIR. Más...
 
int pds_lpfir_get_length (PdsLpFir *LPFIR)
 Esta función retorna la longitud del vector que representa el filtro FIR. Más...
 
void pds_lpfir_free (PdsLpFir *LPFIR)
 Libera el filtro de tipo PdsLpFir. Más...
 
void pds_lpfir_destroy (PdsLpFir **LPFIR)
 Libera el filtro de tipo PdsLpFir. y carga la variable con NULL. Más...
 

Descripción detallada


\[ h[n]=h[N-1-n]\]

.

lpfir1.png
Filtro Linear-Phase FIR, h con M=3 elementos, y N=6 par

\[ M=N/2\]

.

\[ y[n]=\sum_{i=0}^{\frac{N}{2}-1}h_i(x[n-i]+x[n-(N-1-i)]) \]

.

\[ \frac{Y[z]}{X[z]} = H[z] = \sum_{i=0}^{M-1}h_i(z^{-i}+z^{-(N-1-i)}) \]

.

lpfir2.png
Filtro Linear-Phase FIR, h con M=3 elementos, y N=5 impar

\[ M=(N+1)/2\]

.

\[ y[n]=\sum_{i=0}^{M-2}h_i(x[n-i]+x[n-(N-1-i)]) + h_{M-1} x[n-(M-1)] \]

.

\[ \frac{Y[z]}{X[z]} = H[z] = \sum_{i=0}^{M-2}h_i(z^{-i}+z^{-(N-1-i)}) + h_{M-1}z^{-(M-1)}\]

.

Documentación de las funciones

PdsLpFir * pds_lpfir_new ( const PdsVector *  h,
PdsDfNatural  par 
)

Crea un filtro Linear-Phase FIR con parametros h.

El vector h entregado como parámetro a esta función nunca es modificado.

Parámetros
[in]hVector para los coeficientes de h_i*x[n-i].
[in]parIndica si el vector H total tiene una cantidad de elementos par.
Devuelve
Un puntero a una estructura de tipo PdsLpFir. O NULL en caso de error.
Ejemplos:
testprog7.c.
int pds_lpfir_evaluate_value ( PdsLpFir LPFIR,
PdsDfReal  x,
PdsDfReal y 
)

Evalúa el filtro Linear-Phase FIR con el valor de entrada x, el resultado es cargado en y.

En cada iteración se realizan corrimientos para el vector LPFIR->X.

Parámetros
[in,out]LPFIREl filtro Linear-Phase FIR a usar.
[in]xEl valor de entrada del filtro.
[out]yEl valor de salida del filtro.
Devuelve
TRUE si todo fue bien o FALSE si no;
Ejemplos:
testprog7.c.
int pds_lpfir_evaluate_vector ( PdsLpFir LPFIR,
const PdsVector *  x,
PdsVector *  y 
)

Evalúa el filtro Linear-Phase FIR con el vector de entrada x, el resultado es cargado en el vector y.

Se recomienda usar esta función solo cuando x es mucho mayor que LPFIR->h. Solo se realizan corrimientos de LPFIR->X al inicio y al final del vector x en los casos intermediarios se aprovecha tener el vector, y no se efectuan corrimientos, por lo que es un poco mas rápido que pds_lpfir_evaluate_value cuando x es mucho mayo que LPFIR->h.

Parámetros
[in,out]LPFIREl filtro Linear-Phase FIR a usar.
[in]xEl vector de entrada del filtro.
[out]yEl vector de salida del filtro.
Devuelve
TRUE si todo fue bien o FALSE si no.
Ejemplos:
testprog7.c.
int pds_lpfir_get_order ( PdsLpFir LPFIR)

Esta función retorna o grado del filtro FIR.

Parámetros
[in]LPFIREl filtro LPFIR a usar.
Devuelve
El orden del filtro o -1 en caso de error;
int pds_lpfir_get_length ( PdsLpFir LPFIR)

Esta función retorna la longitud del vector que representa el filtro FIR.

Parámetros
[in]LPFIREl filtro LPFIR a usar.
Devuelve
La longitud del filtro o -1 en caso de error;
void pds_lpfir_free ( PdsLpFir LPFIR)

Libera el filtro de tipo PdsLpFir.

Parámetros
[in]LPFIREl filtro a liberar.
Devuelve
No retorna valor.
Ejemplos:
testprog7.c.
void pds_lpfir_destroy ( PdsLpFir **  LPFIR)

Libera el filtro de tipo PdsLpFir. y carga la variable con NULL.

Parámetros
[in]LPFIREl filtro a liberar.
Devuelve
No retorna valor.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed