J'ai une question assez différente. J'utilise donc Matlab sur une machine Linux Gentoo. J'ai eu quelques cartes son Asus Xonar STX, et j'essaie de les utiliser comme analyseur de fréquence audio sensible en utilisant le paquet d'E/S audio PlayRec non bloquant. Maintenant, je sais que Matlab dira si vous essayez d'utiliser la fonction audiorecorder, et spécifier 24 bits dans Linux, il vous dira que 24bit est seulement pris en charge dans Windows. Cependant, la littérature d'ALSA n'implique pas qu'il s'agisse d'une limitation du système d'exploitation ou d'ALSA elle-même, et en fait, Alsa semble vous autoriser à spécifier un périphérique PCM 24 bits. Et PlayRec utilise PortAudio, qui utilise ensuite Alsa sur les systèmes Linux. Maintenant, tout cela est très bien, et Playrec ne semble pas avoir un moyen de spécifier la profondeur de bits, juste la fréquence d'échantillonnage. J'ai exécuté de nombreux tests et je connais la fonction de transfert de ma carte son (valeur de retour à virgule flottante pour le rapport de conversion de tension d'entrée), et je sais que ma tension de crête est de 3V et mon bruit est de 100uV. Cela me donne 20 * log10 (3/100e-6) = 91dB. Qui est plus proche de ce que je m'attends à voir de 16 bits et non de 24.Capture audio 24 bits dans Matlab sous Linux
Ma vraie question est la suivante: Y a-t-il un moyen de vérifier que je reçois 24 bits dans mon signal capturé? Si ce n'est pas le cas, existe-t-il des limites inhérentes à ALSA ou à Matlab qui me limitent aux données 16 bits provenant des périphériques de capture audio, même lorsque j'utilise un programme tiers pour collecter ces données?
Mais juste parce que vous savez combien de bits dans le numéro de FP sont utilisés ne vous aide pas vraiment autant? Sauf si vous aviez un moyen de manipuler un LSB sur l'A/D. Ensuite, vous pouvez voir comment cela a affecté la valeur en virgule flottante par rapport à la pleine échelle et déterminer les bits de précision. Tant que c'est une boîte noire faisant le A/D (en valeurs entières) -> virgule flottante simple précision sans connaître la fonction de transfert, il n'y a aucun moyen de déterminer quelle résolution bits vous obtenez de la carte son A/D. – dynamphorous
@dynamphorous Vous avez raison. J'ai mis à jour ma réponse ci-dessus. –
Je vais vous accorder que c'est une façon possible. Mais je n'ai jamais vu une carte son qui n'a pas de plancher de bruit sensiblement au-dessus du LSB du quantificateur. Donc je suppose que je pourrais chercher la plus petite série de pas possible dans mon spectre blanc et essayer de supposer que c'est mon pas quantifié minimum. Mais il me semble toujours kludgy. Je vais marquer cela comme la réponse, car je peux vous dire que vous y avez beaucoup réfléchi, et c'est une réponse raisonnable si le bruit Johnson est en dessous de votre LSB de votre quantificateur! – dynamphorous