Filtro FIR en Punto Fijo Esteban Bustamante
Trabajo desarrollado como trabajo final de la materia Técnicas Digitales III
Cargando...
Buscando...
Nada coincide
Referencia del archivo fir_filter.h

Macros y funciones para un Filtro FIR en software utilizando aritmética de punto fijo. Más...

#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>

Ir al código fuente de este archivo.

defines

#define DELTA_ERROR   1e-4f
 Error máximo permitido en aserciones y verificaciones.
#define NB_FRAC   31
 Número de bits fraccionales.
#define NB   32
 Número total de bits.
#define NB_INT   (NB - NB_FRAC)
 Número de bits enteros.
#define MAX_INPUT_LEN   256
 Número máximo de muestras de entrada procesables en un solo ciclo.
#define MAX_N_TAPS   256
 Número máximo de coeficientes (taps) soportados.
#define MAX_INPUT_BUFFER_SIZE   (MAX_N_TAPS + MAX_INPUT_LEN - 1)
 Tamaño máximo del buffer de muestras de entrada.
#define MAX_FILENAME_SIZE   256
 Tamaño máximo para cadenas de nombre de archivo.

typedefs

typedef enum status_t status_t
 Códigos de estado de retorno.

Enumeraciones

enum  status_t { STATUS_ERROR = -1 , STATUS_OK = 0 , STATUS_NULL = 1 }
 Códigos de estado de retorno. Más...

Funciones

void firFixed (int *coeffs, int *input, int *output, int length, int filterLength)
 Función de filtro FIR, donde se calcula la salida para una cantidad de muestras, utilizando las muestras de entrada y los coeficientes del filtro.

Descripción detallada

Macros y funciones para un Filtro FIR en software utilizando aritmética de punto fijo.

Documentación de «define»

◆ DELTA_ERROR

#define DELTA_ERROR   1e-4f

Error máximo permitido en aserciones y verificaciones.

Este valor define la tolerancia utilizada para comparar resultados numéricos en pruebas, aserciones y chequeos de precisión.

◆ MAX_FILENAME_SIZE

#define MAX_FILENAME_SIZE   256

Tamaño máximo para cadenas de nombre de archivo.

Define la longitud máxima permitida para almacenar rutas o nombres de archivos.

◆ MAX_INPUT_BUFFER_SIZE

#define MAX_INPUT_BUFFER_SIZE   (MAX_N_TAPS + MAX_INPUT_LEN - 1)

Tamaño máximo del buffer de muestras de entrada.

Este tamaño contempla el solapamiento necesario entre bloques de entrada y la cantidad de coeficientes del filtro.

◆ MAX_INPUT_LEN

#define MAX_INPUT_LEN   256

Número máximo de muestras de entrada procesables en un solo ciclo.

Limita la cantidad de muestras que pueden ser procesadas en un único bucle de procesamiento.

◆ MAX_N_TAPS

#define MAX_N_TAPS   256

Número máximo de coeficientes (taps) soportados.

Define el tamaño máximo del filtro, expresado como el número de coeficientes utilizados.

◆ NB

#define NB   32

Número total de bits.

Define el ancho total de palabra utilizado en la representación numérica (por ejemplo, 32 bits).

◆ NB_FRAC

#define NB_FRAC   31

Número de bits fraccionales.

Indica cuántos bits del total se utilizan para representar la parte fraccionaria en un formato de punto fijo.

◆ NB_INT

#define NB_INT   (NB - NB_FRAC)

Número de bits enteros.

Se calcula como la diferencia entre el número total de bits y el número de bits fraccionales.

Documentación de «typedef»

◆ status_t

typedef enum status_t status_t

Códigos de estado de retorno.

Este enumerado define los posibles estados que pueden devolver las funciones del sistema o biblioteca.

Documentación de enumeraciones

◆ status_t

enum status_t

Códigos de estado de retorno.

Este enumerado define los posibles estados que pueden devolver las funciones del sistema o biblioteca.

Valores de enumeraciones
STATUS_ERROR 

Error genérico

STATUS_OK 

Ejecución correcta

STATUS_NULL 

Puntero nulo u objeto no inicializado

Documentación de funciones

◆ firFixed()

void firFixed ( int * coeffs,
int * input,
int * output,
int length,
int filterLength )

Función de filtro FIR, donde se calcula la salida para una cantidad de muestras, utilizando las muestras de entrada y los coeficientes del filtro.

Parámetros
[in]coeffspuntero al arreglo de coeficientes
[in]inputpuntero a donde se almacenan las nuevas muestras de entrada
[out]outputpuntero al arreglo donde se almacenará la salida calculada
[in]lengthcantidad de muestras a procesar en paralelo
[in]filterLengthnúmero de taps (coeficientes) del filtro