Je suis novice en programmation DSP et je me demande comment procéder au mieux pour le fonctionnement de base du niveau. Dites que j'ai un nombre de 8 bits qui représente l'amplitude que je veux qu'un signal soit en 256 étapes. J'ai un ensemble de nombres de 16 bits représentant les données de signal. Quel est le meilleur moyen de mettre à l'échelle les données de signal sur la base du paramètre "volume" de sorte que 0 indique une atténuation complète et 255 laisse les données inchangées?Ajustement de base DSP
Répondre
Que diriez-vous
out_sample = in_sample * volume/255;
Un changement d'échelle linéaire droite. Cela suppose que le calcul peut être fait en utilisant une plus grande précision, pour capturer le résultat de la multiplication sans troncature.
Qu'est-ce dérouleur dit:
out_sample = in_sample * volume/255;
Si vous travaillez sur une puce réelle DSP ou matériel sans séparateurs rapides que vous pouvez utiliser cette astuce pour obtenir les mêmes valeurs sans division:
int product = in_sample * volume;
out_sample = (product + (product>>8) + 1)>>8;
sur un DSP moderne comme le C64x + ce code dure environ 10 fois plus rapide ...
aussi:
Vous parlez de volume, et vous appliquez actuellement un volume de 8 bits comme facteur de gain linéaire. Cependant, nos oreilles interprètent le volume comme un effet logarithmique. Vous voudrez peut-être faire une conversion de db (vos 8 bits) en gain linéaire avant la multiplication. Précalculez-les et placez-les dans une table. Pendant que vous faites cela, vous pouvez également augmenter l'échelle de la valeur à 2^15 pour plus de précision.
Cela vous donnera une réponse beaucoup plus agréable et beaucoup moins de clics de vous font des fondus de volume.
- 1. Ajustement automatique Entrées de base de données?
- 2. DSP sur MACOSX et iOS4
- 3. Ajustement SQL
- 4. DSP - Fréquences de filtrage utilisant DFT
- 5. Ajustement de courbe en PHP
- 6. Ajustement de courbe
- 7. Ajustement multiligne
- 8. Ajustement de fuseau horaire PHP
- 9. Ajustement de largeur d'une Listview
- 10. OpenGL: Ajustement de l'angle LOD?
- 11. div ajustement de la hauteur
- 12. Ajustement de la position Div
- 13. Matlab Ajustement des coordonnées
- 14. Ajustement du volume sonore java en temps réel
- 15. Ajustement de la hauteur de l'iframe
- 16. Ajustement de l'image Flex dans Canvas
- 17. Ajustement de crête à une dimension
- 18. Ajustement de hauteur animé lorsque innerHTML change
- 19. Ajustement de l'image dans le webview
- 20. Ajustement du volume à l'aide de JLayer
- 21. Ajustement des quantités de commande dans Magento
- 22. ajustement de courbe en utilisant R nls
- 23. Ajustement de l'instruction sql dans une fonction basée sur l'entrée
- 24. Position CSS: Absolue avec ajustement relatif
- 25. Ajustement du texte dans une image
- 26. Ajustement d'une distribution pareto avec (python) Scipy
- 27. Ajustement des positions des composants d'oscillation
- 28. Ajustement du texte dans TextField IText
- 29. Ajustement d'une distribution binormale dans R
- 30. Ajustement des images du carrousel JQuery