Estoy tratando de implementar un filtro de 32 tomas en una FPGA, puedo tener sólo 16 bits para los coeficientes, y 16 bits para las muestras de entrada, y mi salida también debe ser de 16 bits. Multiplicar un coeficiente de 16 bits por una muestra de entrada de 16 bits produciría un resultado de 32 bits, y sumar los 32 taps daría como resultado 37 bits a la salida. Entonces, ¿cómo es posible obtener una salida de 16 bits?
Respuesta
¿Demasiados anuncios?
silverbolt
Puntos
18
Reescala. Los coeficientes del filtro deben elegirse de forma que todos sumen el valor máximo de 16 bits. Esto debería hacer que el valor máximo después de los multiplicadores quepa en 32 bits. A continuación, sólo truncar los 16 LSB. En otras palabras, use output[31:16] como la salida y escoja los coeficientes del filtro para que no se desborde.