Estoy escribiendo software para procesar audio dado como muestras PCM de 16 bits. La primera etapa del procesamiento implica calcular la energía (o variación total) en un cierto rango de frecuencia (por encima de una determinada frecuencia de corte).
Lo que estoy haciendo actualmente es restar la energía de la señal filtrada de paso bajo de la energía de la señal original. Descubrí que gran parte del procesamiento está dedicado a convertir las muestras enteras en una representación de punto flotante.
Entonces mi pregunta es, ¿hay una técnica para filtrar las muestras de enteros sin convertirlas en coma flotante?
fuente
Uno de los procesadores, que convierte un bloque grande (pero en caché) de enteros en flotadores antes de procesarlos, podría ser más rápido, debido a la eliminación de los peligros de la tubería. Es posible que desee comparar esto.
Si utiliza un número entero escalado o una aritmética de punto fijo, la cantidad de precisión entera agregada que necesitará en los coeficientes y valores intermedios es aproximadamente proporcional a la relación entre su frecuencia de muestreo y su frecuencia de corte deseada. Es posible que necesite usar una aritmética de enteros de precisión de 24,32,48 bits o más en sus muestras de 16 bits para llegar al nivel de piso de ruido numérico deseado. Algunos conjuntos de instrucciones de procesador (ARM, MIPS, etc.) pueden incluir aritmética acumulativa de 64 bits solo para este propósito.
fuente