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

Estructuras de datos

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

Funciones

PdsFirpds_fir_new (const PdsVector *h)
 Crea un filtro FIR con parámetros h. Más...
 
PdsFirpds_fir_get_new_lowpass (PdsDfNatural Order, PdsDfReal Wn, const PdsVector *Window)
 Crea un filtro FIR pasa bajo, con un orden y frecuencia de corte especificado. Más...
 
PdsFirpds_fir_get_new_highpass (PdsDfNatural Order, PdsDfReal Wn, const PdsVector *Window)
 Crea un filtro FIR pasa alto, con un orden y frecuencia de corte especificado. Más...
 
PdsFirpds_fir_get_new_bandpass (PdsDfNatural Order, PdsDfReal Wn1, PdsDfReal Wn2, const PdsVector *Window)
 Crea un filtro FIR pasa banda, con un orden y frecuencias de corte especificados. Más...
 
PdsFirpds_fir_get_new_bandstop (PdsDfNatural Order, PdsDfReal Wn1, PdsDfReal Wn2, const PdsVector *Window)
 Crea un filtro FIR rechaza banda, con un orden y frecuencias de corte especificados. Más...
 
int pds_fir_evaluate_value (PdsFir *FIR, PdsDfReal x, PdsDfReal *y)
 Evalúa el filtro FIR con el valor de entrada x, el resultado es cargado en y. Más...
 
int pds_fir_evaluate_vector (PdsFir *FIR, const PdsVector *x, PdsVector *y)
 Evalúa el filtro FIR con el vector de entrada x, el resultado es cargado en el vector y. Más...
 
int pds_fir_get_x_value (PdsFir *FIR, PdsDfNatural i, PdsDfReal *x)
 Esta funcion retorna el valor de X[n-i]. Más...
 
int pds_fir_get_h_value (PdsFir *FIR, PdsDfNatural i, PdsDfReal *h)
 Esta funcion retorna el valor de h[i]. Más...
 
const PdsVector * pds_fir_get_h_vector (PdsFir *FIR)
 Esta funcion retorna la dirección del vector h con los valores del filtro fir. Más...
 
int pds_fir_get_order (PdsFir *FIR)
 Esta función retorna o grado del filtro FIR. Más...
 
int pds_fir_get_length (PdsFir *FIR)
 Esta función retorna la longitud del vector que representa el filtro FIR. Más...
 
int pds_fir_frequency_response (const PdsFir *FIR, PdsVector *H)
 Encuentra el módulo de la respuesta en frecuencia, normalizada de 0 a pi del filtro digital conformado por la respuesta al impulso h. Más...
 
void pds_fir_free (PdsFir *FIR)
 Libera el filtro de tipo PdsFir. Más...
 
void pds_fir_destroy (PdsFir **FIR)
 Libera el filtro de tipo PdsFir. y carga la variable con NULL. Más...
 

Descripción detallada


fir-filter.png
Filtro FIR

\[ y[n]=\sum_{i=0}^{N-1}h_ix[n-i] \]

.

\[ \frac{Y[z]}{X[z]} = H[z] = \sum_{i=0}^{N-1}h_iz^{-i} \]

.

Documentación de las funciones

PdsFir * pds_fir_new ( const PdsVector *  h)

Crea un filtro FIR con parámetros 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].
Devuelve
Un puntero a una estructura de tipo PdsFir. O NULL en caso de error.
Ejemplos:
testprog2.c.
PdsFir * pds_fir_get_new_lowpass ( PdsDfNatural  Order,
PdsDfReal  Wn,
const PdsVector *  Window 
)

Crea un filtro FIR pasa bajo, con un orden y frecuencia de corte especificado.

Puede ser usado un vector de ponderación (Window) para mejorar el comportamiento del filtro. Esta función crea un filtro de tipo I : http://www.mathworks.com/help/signal/ug/fir-filter-design.html Para elegir el orden minimo del filtro puede elegirse el criterio :

\[ Order \geq \frac{4}{BW} \]

where

\[ BW=|Wn-round(Wn)| \]

Este criterio es similar a http://www.dspguide.com/ch16/2.htm

Parámetros
[in]OrderEl orden del filtro pasa bajo.
[in]WnLa frecuencia de corte normalizada del filtro pasa bajo. Wn significa que la frecuencia de corte es Wn*Fs/2, donde Fs es la frecuencia de muestreo.
[in]WindowEs un vector de ponderación para mejorar el comportamiento del filtro. Si este valor es igual a NULL entonces es usado una ventana de hamming como vector de ponderación.
Devuelve
Un puntero a una estructura de tipo PdsFir. O NULL en caso de error.
PdsFir * pds_fir_get_new_highpass ( PdsDfNatural  Order,
PdsDfReal  Wn,
const PdsVector *  Window 
)

Crea un filtro FIR pasa alto, con un orden y frecuencia de corte especificado.

Puede ser usado un vector de ponderación (Window) para mejorar el comportamiento del filtro. Esta función crea un filtro de tipo I si Order es par e tipo IV si Order es impar : http://www.mathworks.com/help/signal/ug/fir-filter-design.html Para elegir el orden minimo del filtro puede elegirse el criterio :

\[ Order \geq \frac{4}{BW} \]

where

\[ BW=|Wn-round(Wn)| \]

Este criterio es similar a http://www.dspguide.com/ch16/2.htm

Parámetros
[in]OrderEl orden del filtro pasa alto.
[in]WnLa frecuencia de corte normalizada del filtro pasa alto. Wn significa que la frecuencia de corte es Wn*Fs/2, donde Fs es la frecuencia de muestreo.
[in]WindowEs un vector de ponderación para mejorar el comportamiento del filtro. Si este valor es igual a NULL entonces es usado una ventana de hamming como vector de ponderación.
Devuelve
Un puntero a una estructura de tipo PdsFir. O NULL en caso de error.
PdsFir * pds_fir_get_new_bandpass ( PdsDfNatural  Order,
PdsDfReal  Wn1,
PdsDfReal  Wn2,
const PdsVector *  Window 
)

Crea un filtro FIR pasa banda, con un orden y frecuencias de corte especificados.

Puede ser usado un vector de ponderación (Window) para mejorar el comportamiento del filtro. Esta función crea un filtro de tipo I si Order es par e tipo II si Order es impar : http://www.mathworks.com/help/signal/ug/fir-filter-design.html Para elegir el orden minimo del filtro puede elegirse el criterio :

\[ Order \geq \frac{8}{BW} \]

where

\[ BW=|Wn1-Wn2-round(Wn1-Wn2)| \]

Este criterio es similar a http://www.dspguide.com/ch16/2.htm

Parámetros
[in]OrderEl orden del filtro pasa alto.
[in]Wn1La frecuencia de corte normalizada del filtro pasa alto. Wn1 significa que la frecuencia de corte es Wn1*Fs/2, donde Fs es la frecuencia de muestreo.
[in]Wn2La frecuencia de corte normalizada del filtro pasa bajo. Wn2 significa que la frecuencia de corte es Wn2*Fs/2, donde Fs es la frecuencia de muestreo.
[in]WindowEs un vector de ponderación para mejorar el comportamiento del filtro. Si este valor es igual a NULL entonces es usado una ventana de hamming como vector de ponderación.
Devuelve
Un puntero a una estructura de tipo PdsFir. O NULL en caso de error.
PdsFir * pds_fir_get_new_bandstop ( PdsDfNatural  Order,
PdsDfReal  Wn1,
PdsDfReal  Wn2,
const PdsVector *  Window 
)

Crea un filtro FIR rechaza banda, con un orden y frecuencias de corte especificados.

Puede ser usado un vector de ponderación (Window) para mejorar el comportamiento del filtro. Esta función crea un filtro de tipo I si Order es par e tipo II si Order es impar : http://www.mathworks.com/help/signal/ug/fir-filter-design.html Para elegir el orden minimo del filtro puede elegirse el criterio :

\[ Order \geq \frac{8}{BW} \]

where

\[ BW=|Wn1-Wn2-round(Wn1-Wn2)| \]

Este criterio es similar a http://www.dspguide.com/ch16/2.htm

Parámetros
[in]OrderEl orden del filtro pasa alto.
[in]Wn1La frecuencia de corte normalizada del filtro bajo. Wn1 significa que la frecuencia de corte es Wn1*Fs/2, donde Fs es la frecuencia de muestreo.
[in]Wn2La frecuencia de corte normalizada del filtro alto. Wn2 significa que la frecuencia de corte es Wn2*Fs/2, donde Fs es la frecuencia de muestreo.
[in]WindowEs un vector de ponderación para mejorar el comportamiento del filtro. Si este valor es igual a NULL entonces es usado una ventana de hamming como vector de ponderación.
Devuelve
Un puntero a una estructura de tipo PdsFir. O NULL en caso de error.
Ejemplos:
testprog2.c.
int pds_fir_evaluate_value ( PdsFir FIR,
PdsDfReal  x,
PdsDfReal y 
)

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

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

Parámetros
[in,out]FIREl filtro 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:
testprog2.c.
int pds_fir_evaluate_vector ( PdsFir FIR,
const PdsVector *  x,
PdsVector *  y 
)

Evalúa el filtro 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 mayo que FIR->h. Solo se realizan corrimientos de FIR->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_fir_evaluate_value cuando x es mucho mayo que FIR->h.

Parámetros
[in,out]FIREl filtro 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:
testprog2.c.
int pds_fir_get_x_value ( PdsFir FIR,
PdsDfNatural  i,
PdsDfReal x 
)

Esta funcion retorna el valor de X[n-i].

Siendo n la muestra actual e i indica la i-esima muestra anterior.

Parámetros
[in]FIREl filtro FIR a usar.
[in]iEl valor i de la posicion de X[n-i] en la entrada del filtro.
[out]xEl valor de X[n-i].
Devuelve
TRUE si todo fue bien o FALSE si no;
int pds_fir_get_h_value ( PdsFir FIR,
PdsDfNatural  i,
PdsDfReal h 
)

Esta funcion retorna el valor de h[i].

Siendo h[i] el factor de ponderacion de X[n-i].

Parámetros
[in]FIREl filtro FIR a usar.
[in]iEl valor i de la posicion de h[i].
[out]hEl valor de h[i].
Devuelve
TRUE si todo fue bien o FALSE si no;
const PdsVector * pds_fir_get_h_vector ( PdsFir FIR)

Esta funcion retorna la dirección del vector h con los valores del filtro fir.

Parámetros
[in]FIREl filtro FIR a usar.
Devuelve
Retorna la dirección del vector h con los valores del filtro fir. o NULL en caso de error. Este vector no debe ser modificado pues también modificaría al filtro
Ejemplos:
testprog2.c.
int pds_fir_get_order ( PdsFir FIR)

Esta función retorna o grado del filtro FIR.

Parámetros
[in]FIREl filtro FIR a usar.
Devuelve
El orden del filtro o -1 en caso de error;
int pds_fir_get_length ( PdsFir FIR)

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

Parámetros
[in]FIREl filtro FIR a usar.
Devuelve
La longitud del filtro o -1 en caso de error;
int pds_fir_frequency_response ( const PdsFir FIR,
PdsVector *  H 
)

Encuentra el módulo de la respuesta en frecuencia, normalizada de 0 a pi del filtro digital conformado por la respuesta al impulso h.

Teoría

\[ H(w)=\left|h(Z=e^{j w})\right|, ~\forall ~ 0 \leq w \leq \pi \]

Parámetros
[in]FIRFiltro fir a anaizar.
[out]HDonde se guardará el módulo cuadrado de la respuesta en frecuencia del filtro digital.
Devuelve
TRUE si todo fue bien o FALSE si no. (ej. FIR==NULL o H==NULL)
void pds_fir_free ( PdsFir FIR)

Libera el filtro de tipo PdsFir.

Parámetros
[in]FIREl filtro a liberar.
Devuelve
No retorna valor.
Ejemplos:
testprog2.c.
void pds_fir_destroy ( PdsFir **  FIR)

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

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

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed