J'écris un logiciel de traitement audio donné en échantillons PCM 16 bits. La première étape du traitement consiste à calculer l'énergie (ou variation totale) dans une certaine plage de fréquences (au-dessus d'une certaine fréquence de coupure).
Ce que je fais actuellement, c'est soustraire l'énergie du signal filtré passe-bas de l'énergie du signal d'origine. J'ai découvert qu'une grande partie du traitement est dédiée à la conversion des sampels entiers en une représentation en virgule flottante.
Ma question est donc la suivante: existe-t-il une technique pour filtrer les échantillons entiers sans les convertir en virgule flottante?
la source
Certains processeurs, convertissant un bloc d'entiers volumineux (mais en cache) en flottants avant de les traiter, pourraient être plus rapides, en raison de l'élimination des dangers liés aux pipelines. Vous voudrez peut-être comparer cela.
Si vous utilisez une arithmétique entière ou à virgule fixe, la quantité de précision entière supplémentaire dont vous aurez besoin dans les coefficients et les valeurs intermédiaires est à peu près proportionnelle au rapport entre votre fréquence d'échantillonnage et la fréquence de coupure souhaitée. Vous devrez peut-être utiliser une arithmétique entière de précision de 24,32,48 bits ou plus sur vos échantillons 16 bits pour atteindre le niveau de bruit de fond numérique souhaité. Certains jeux d'instructions de processeur (ARM, MIPS, etc.) peuvent inclure une arithmétique d'accumulation 64 bits à cette fin.
la source