![]() |
Filtro FIR en Punto Fijo Esteban Bustamante
Trabajo desarrollado como trabajo final de la materia Técnicas Digitales III
|
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. | |
Macros y funciones para un Filtro FIR en software utilizando aritmética de punto fijo.
| #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.
| #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.
| #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.
| #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.
| #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.
| #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).
| #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.
Número de bits enteros.
Se calcula como la diferencia entre el número total de bits y el número de bits fraccionales.
Códigos de estado de retorno.
Este enumerado define los posibles estados que pueden devolver las funciones del sistema o biblioteca.
| enum status_t |
| 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.
| [in] | coeffs | puntero al arreglo de coeficientes |
| [in] | input | puntero a donde se almacenan las nuevas muestras de entrada |
| [out] | output | puntero al arreglo donde se almacenará la salida calculada |
| [in] | length | cantidad de muestras a procesar en paralelo |
| [in] | filterLength | número de taps (coeficientes) del filtro |