Valeurs D'amplitude audio PCM?

je commence avec l'enregistrement audio en utilisant mon smartphone Android.

j'ai réussi à sauvegarder des enregistrements vocaux dans un fichier PCM. Lorsque j'analyse les données et que j'imprime les valeurs signées sur 16 bits, je peux créer un graphique comme celui ci-dessous. Cependant, je ne comprends pas les valeurs d'amplitude le long de l'axe.

  1. Quels sont exactement les unités pour les valeurs d'amplitude? Les valeurs sont signées 16 bits, donc elles doivent aller de-32K à +32K. Mais que faire de ces valeurs représentent? Décibels?

  2. si j'utilise des valeurs de 8 bits, alors les valeurs doivent varier de -128 à +128. Comment cela pourrait-il être associé au volume/"intensité sonore" des valeurs de 16 bits? Pouvez-vous utiliser un mappage de quantification de 16 contre 1?

  3. Pourquoi y a-t-il des valeurs négatives? Je pense qu'un silence complet donnerait des valeurs de 0.

Si quelqu'un peut m'indiquer un site web avec des informations sur ce qui est enregistré, je l'apprécierais. J'ai trouvé pages web sur le format de fichier PCM, mais pas ce que sont les valeurs de données.

enter image description here

27
demandé sur stackoverflowuser2010 2011-05-05 02:14:55

5 réponses

Pensez à la surface du microphone. Quand il est silencieux, la surface est immobile à la position zéro. Quand tu parles, ça fait vibrer l'air autour de ta bouche. Les Vibrations sont de type ressort, et ont un mouvement dans les deux directions, comme dans l'arrière et l'avant, ou en haut et en bas, ou en dedans et en dehors. Les vibrations dans l'air font vibrer aussi bien la surface du microphone qu'en mouvement de haut en bas. Quand il descend, cela pourrait être mesuré ou échantillonné une valeur positive. Quand il se déplace jusqu'que peut-être échantillonnés comme une valeur négative. (Ou peut-être l'inverse. Lorsque vous arrêtez de parler, la surface retombe à la position zéro.

les nombres que vous obtenez à partir de vos données d'enregistrement PCM dépendent du gain du système. Avec des échantillons communs de 16 bits, la plage est de -32768 à 32767 pour la plus grande excursion possible d'une vibration qui peut être enregistrée sans distorsion, coupure ou débordement. Habituellement le gain est défini un peu plus bas de sorte que les valeurs maximales ne sont pas justes sur le bord de la distorsion.

ajouté:

8-bit PCM audio est souvent un type de données non signé, avec la gamme de 0..255, avec une valeur de 128 indiquant "silence". Donc, vous devez ajouter / soustraire ce biais,ainsi que l'échelle d'environ 256 pour convertir entre 8-bit et 16-bit PCM waveforms audio.

18
répondu hotpaw2 2011-05-05 00:22:29

les nombres bruts sont un artefact du processus de quantification utilisé pour convertir un signal audio analogique en numérique. Il est plus logique de penser à un signal audio comme une vibration autour de 0, allant jusqu'à +1 et -1 pour une excursion maximale du signal. En dehors de ça, tu te fais couper, ce qui déforme les harmoniques et sonne très mal.

cependant, les ordinateurs ne fonctionnent pas très bien en termes de fractions, donc des entiers discrets de 0 à 65536 sont utilisés pour cartographier cette plage. Dans la plupart des applications comme celle-ci, a +32767 est considéré comme le déplacement positif maximum du diaphragme du microphone ou du haut-parleur. Il n'y a pas de corrélation entre un point d'échantillonnage et un niveau de pression sonore, à moins que vous ne commenciez à prendre en compte les caractéristiques des circuits d'enregistrement (ou de lecture).

(BTW, 16-bit audio est très standard et largement utilisé. C'est un bon équilibre entre le rapport signal / bruit et la plage dynamique. 8-bit est bruyant sauf si vous faites un peu funky non standard mise à l'échelle.)

4
répondu staticsan 2011-05-05 05:24:34
Why are there negative values? I would think that complete silence

entraînerait des valeurs de 0

le diaphragme d'un microphone vibre dans les deux sens le résultat crée des tensions positives et négatives. Une valeur de 0 est silence comme il indique que le diaphragme ne bouge pas. Voir comment les micros

Petite clarification: la position du diaphragme est enregistrée. Le Silence se produit quand il n'y a pas de vibration, quand il n'y a pas de modifier en position. De sorte que le la vibration que vous voyez est ce qui pousse l'air et crée des changements dans la pression de l'air au fil du temps. L'air n'est plus poussé aux sommets supérieurs et inférieurs d'aucune vibration, donc les sommets sont quand le silence se produit. La partie la plus bruyante du signal est lorsque la position change la plus rapide qui se trouve quelque part au milieu des pics. La vitesse de déplacement du diaphragme d'un pic à l'autre détermine la pression générée par le diaphragme. Quand le haut et le bas les pics sont réduits à zéro (ou un autre nombre qu'ils partagent) alors il n'y a pas de vibration et pas de son du tout. Aussi comme le diaphragme ralentit alors qu'il y a un plus grand espace de temps entre les pics, il y a moins de pression acoustique générée ou enregistré.

je recommande l' Yamaha Renforcement De Son Manuel pour plus de profondeur. Comprendre l'idée du calcul aiderait aussi à comprendre l'audio et la vibration.

3
répondu aeriform 2011-08-26 17:36:35

beaucoup de bonnes réponses ici, mais elles n'abordent pas directement vos questions d'une manière facile à lire.

Quels sont exactement les unités pour les valeurs d'amplitude? Les valeurs sont signé de 16 bits, de sorte qu'ils doivent aller de - 32K à + 32K. Mais que représentent ces valeurs? Décibels?

Les valeurs n'ont pas d'unité. Ils représentent simplement un nombre issu d'un convertisseur analogique-numérique. Les nombres du convertisseur A/D sont une fonction de les caractéristiques du microphone et du préamplificateur.

si j'utilise des valeurs 8 bits, alors les valeurs doit varier de -128 à +128. Comment serait obtenir mappé à l' volume / "sonie" du 16 bits valeurs? Tu veux bien utiliser un 16 contre 1? cartographie de quantification?

je ne comprends pas cette question. Si vous enregistrez de l'audio 8 bits, vos valeurs seront 8 bits. Convertissez-vous l'audio 8-bit en 16-bit?

pourquoi il y a négatif valeurs? Je voudrais pense que le silence complet d'obtenir les valeurs de 0

comment fonctionnent les microphones

Pour plus de détails sur la façon dont le son est représenté numériquement, voir ici.

2
répondu Error 454 2011-05-11 01:02:51

les nombres de 16 bits sont les valeurs du convertisseur A / D de votre microphone (vous le saviez). Sachez aussi que l'amplificateur entre votre microphone et le convertisseur A/D dispose d'un contrôle automatique du Gain (AGC). L'AGC modifiera activement l'amplification du signal du microphone afin d'éviter qu'une tension trop élevée n'atteigne le convertisseur A/D (habituellement < 2volts dc). De plus, il y a le découplage de la tension continue qui place le signal d'entrée au milieu de la plage du convertisseur A/D (par exemple 1volt dc).

donc, quand il n'y a pas de son qui frappe le microphone, L'amplificateur AGC envoie un signal CC de ligne plate de 1.0 Volt au convertisseur A/D. Lorsque les ondes sonores frappent le microphone, elles créent une onde de tension AC correspondante. L'ampère AGC prend l'onde de tension AC, La centre à 1,0 Vdc, et l'envoie au convertisseur A/D. Les échantillons A/D (mesure la tension de courant continu à environ 44 000 / par seconde), et crache les valeurs +/-16bit de la tension. So -65,536 = 0,0 Vdc et + 65,536 = 2,0 Vdc. Un valeur de + 100 = 1.00001529 Vdc et -100 = 0.99998474 Vdc frappant le convertisseur A/D.

+ les valeurs sont supérieures à 1,0 Vdc, -les valeurs sont inférieures à 1,0 Vdc.

notez que la plupart des systèmes audio utilisent une formule logarithmique pour faire une courbe logarithmique de l'onde audio, afin qu'une oreille humaine puisse mieux l'entendre. Dans les systèmes audio numériques (avec L'ADCs), le traitement numérique du Signal place cette courbe sur le signal. Les puces DSPs sont une grosse affaire, TI a fait fortune en les utilisant pour toutes sortes d'applications, pas seulement traitement audio. DSPs peut travailler les mathématiques très compliquées sur un flux de données en temps réel qui étoufferait le processeur ARM7 d'un iPhone. Disons que vous envoyez des impulsions de 2MHz à un réseau de 256 capteurs/récepteurs à ultrasons--vous avez l'idée.

2
répondu user3523897 2014-04-11 14:01:09