Wartości amplitudy audio PCM?

Zaczynam od nagrywania dźwięku za pomocą mojego smartfona z Androidem.

Udało mi się zapisać nagrania głosowe do pliku PCM. Kiedy analizuję Dane i wypisuję podpisane, 16-bitowe wartości, mogę utworzyć wykres podobny do poniższego. Nie rozumiem jednak wartości amplitudy wzdłuż osi Y.

  1. Jakie są dokładnie jednostki dla wartości amplitudy? Wartości są podpisane 16-bitowo, więc muszą wahać się od-32K do +32K. ale co te wartości reprezentować? Decybele?

  2. Jeżeli używam wartości 8-bitowych, wtedy wartości muszą mieścić się w przedziale od -128 do +128. Jak można to odwzorować na głośność / "głośność" wartości 16-bitowych? Użyłbyś mapy kwantyzacyjnej 16 do 1?

  3. Dlaczego istnieją wartości ujemne? Myślę, że całkowite milczenie spowoduje, że wartości będą równe 0.

Jeśli ktoś może wskazać mi stronę z informacjami o tym, co jest nagrywane, byłbym wdzięczny. Znalazłem strony internetowe w formacie pliku PCM, ale nie Jakie są wartości danych.

Tutaj wpisz opis obrazka

Author: stackoverflowuser2010, 2011-05-05

5 answers

Pomyśl o powierzchni mikrofonu. Gdy jest cichy, powierzchnia jest nieruchoma w pozycji zero. Kiedy mówisz, to powoduje, że powietrze wokół ust wibruje. Wibracje są podobne do wiosny i mają ruch w obu kierunkach, jak w przód iw tył, lub w górę iw dół, lub wewnątrz i na zewnątrz. Wibracje w powietrzu powodują wibracje powierzchni mikrofonu, jak również w ruchu w górę iw dół. Gdy przesuwa się w dół, może to być zmierzone lub próbkowane wartość dodatnią. Kiedy porusza się w górę, to może należy pobrać próbki jako wartość ujemną. (Albo może być odwrotnie.) Po zaprzestaniu mówienia powierzchnia osiada z powrotem do pozycji zerowej.

To, jakie liczby otrzymujesz z danych rejestracyjnych PCM, zależy od wzmocnienia systemu. W przypadku zwykłych próbek 16-bitowych zakres wynosi od -32768 do 32767, co zapewnia największą możliwą wycieczkę wibracji, która może być rejestrowana bez zniekształceń, przycinania lub przepełnienia. Zwykle wzmocnienie jest ustawione nieco niżej, więc maksymalne wartości nie są tuż przy krawędzi zniekształceń.

Dodany:

8-bitowy PCM audio jest często niepodpisanym typem danych, z zakresem od 0..255, z wartością 128 oznaczającą "ciszę". Musisz więc dodać/odjąć ten błąd, a także skalować o około 256, aby przekonwertować 8-bitowe i 16-bitowe przebiegi audio PCM.

 18
Author: hotpaw2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-05 00:22:29

Liczby surowe są artefaktem procesu kwantyzacji używanego do konwersji analogowego sygnału audio na cyfrowy. Bardziej sensowne jest myślenie o sygnale audio jako wibracji wokół 0, rozciągającej się aż do +1 i -1 dla maksymalnego wychylenia sygnału. Poza tym dostajesz obcinanie, które zniekształca harmoniczne i brzmi okropnie.

Jednak komputery nie działają tak dobrze pod względem ułamków, więc dyskretne liczby całkowite od 0 do 65536 są używane do mapowania tego zakresu. W większości w takich zastosowaniach a + 32767 jest uważany za maksymalne pozytywne przesunięcie membrany mikrofonu lub głośnika. Nie ma korelacji pomiędzy punktem próbkowania a poziomem ciśnienia akustycznego, chyba że zaczniesz uwzględniać charakterystykę obwodów nagrywania (lub odtwarzania).

(BTW, 16-bitowy dźwięk jest bardzo standardowy i szeroko stosowany. Jest to dobra równowaga stosunku sygnału do szumu i zakresu dynamicznego. 8-bit jest głośny, chyba że wykonasz trochę funky niestandardowego skalowania.)

 4
Author: staticsan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-05 05:24:34
Why are there negative values? I would think that complete silence

Wyniknie z wartości 0

Membrana mikrofonu wibruje w obu kierunkach i jako wynik tworzy napięcia dodatnie i ujemne. Wartość 0 jest ciszą ponieważ oznacza to, że membrana nie porusza się. Zobacz jak mikrofony praca

Małe wyjaśnienie: pozycja membrany jest rejestrowana. Cisza występuje, gdy nie ma wibracji, gdy nie ma zmiany w pozycji. Więc wibracje, które widzisz, są co popycha powietrze i powoduje zmiany ciśnienia powietrza w czasie. Powietrze nie jest już popychane do górnych i dolnych szczytów jakichkolwiek wibracji, więc szczyty są wtedy, gdy następuje cisza. Najgłośniejsza część sygnału jest wtedy, gdy pozycja zmienia się najszybciej, który znajduje się gdzieś w środku szczytów. Prędkość, z jaką membrana przemieszcza się z jednego piku do drugiego, określa wielkość ciśnienia generowanego przez membranę. Gdy górne i dolne szczyty są zredukowane do zera (lub jakiś inny numer, który dzielą) wtedy nie ma wibracji i dźwięku. Również w miarę jak membrana zwalnia, dzięki czemu istnieje większa przestrzeń czasu między szczytami, generowane lub rejestrowane jest mniejsze ciśnienie akustyczne.

Aby dowiedzieć się więcej, polecam podręcznik Yamaha Sound Reinforcement Handbook . Zrozumienie idei rachunku różniczkowego pomogłoby również w zrozumieniu dźwięku i wibracji.
 3
Author: aeriform,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-26 17:36:35

Wiele dobrych odpowiedzi tutaj, ale nie bezpośrednio na pytania w łatwy do odczytania sposób.

Jakie są dokładnie jednostki dla wartości amplitudy? Wartości są podpisane 16-bitowe, więc muszą mieścić się w zakresie od - 32K do +32K. ale co te wartości reprezentują? Decybele?

Wartości nie mają jednostki. Po prostu reprezentują liczbę, która wyszła z przetwornika analogowo-cyfrowego. Cyfry z przetwornika A / D są funkcją mikrofonu i charakterystyka przedwzmacniacza.

Jeśli używam wartości 8-bitowych, to wartości musi wynosić od -128 do +128. Jak czy to zostanie odwzorowane na głośność / "głośność" 16-bitowego wartości? Czy mógłbyś po prostu użyć 16 do 1 mapowanie kwantyzacyjne?

Nie rozumiem tego pytania. Jeśli nagrywasz dźwięk 8-bitowy, twoje wartości będą 8-bitowe. Czy konwertujesz dźwięk 8-bitowy na 16-bitowy?

Dlaczego są wartości ujemne? Ja bym think that complete silence would wynik w wartościach 0

Membrana mikrofonu wibruje w obu kierunkach i w rezultacie tworzy napięcia dodatnie i ujemne. Wartość 0 oznacza ciszę, ponieważ oznacza, że membrana nie porusza się. Zobacz Jak działają mikrofony

Aby uzyskać więcej informacji o tym, jak dźwięk jest reprezentowany cyfrowo, zobacz tutaj.

 2
Author: Error 454,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-11 01:02:51

Liczby 16-bitowe są wartościami konwertera A / D z twojego mikrofonu (wiedziałeś o tym). Wiedz również, że wzmacniacz między mikrofonem a konwerterem A / D ma automatyczną kontrolę wzmocnienia (AGC). AGC aktywnie zmieni wzmocnienie sygnału mikrofonu, aby zapobiec zbyt dużemu napięciu przed uderzeniem konwertera A / D (zwykle

Tak więc, gdy nie ma dźwięku uderzającego w mikrofon, wzmacniacz AGC wysyła sygnał o napięciu stałym 1,0 V do konwertera A / D. Gdy fale dźwiękowe uderzają w mikrofon, tworzy odpowiednią falę napięcia AC. Wzmacniacz AGC pobiera falę napięcia AC, centruje ją na 1,0 Vdc i wysyła ją do konwertera A / D. Próbki A / D (mierzy napięcie DC powiedzmy 44,000 /na sekundę) i wypluwa wartości + / - 16bit napięcia. Tak -65,536 = 0,0 Vdc i +65,536 = 2,0 Vdc. Wartość +100 = 1,00001529 Vdc i -100 = 0,99998474 VDC uderzając w konwerter A/D.

+ wartości są powyżej 1,0 Vdc ,- wartości są poniżej 1,0 Vdc.

Uwaga, większość systemów audio używa wzoru log do zakrzywiania fali audio logarytmicznie, aby ludzkie ucho mogło ją lepiej usłyszeć. W cyfrowych systemach audio (z ADCs), cyfrowe przetwarzanie sygnału stawia tę krzywą na sygnale. Chipy DSPs to wielki biznes, TI zarobił fortunę używając ich do wszelkiego rodzaju zastosowań, nie tylko do przetwarzania dźwięku. DSP może pracować bardzo skomplikowaną matematykę na strumieniu danych w czasie rzeczywistym, który dławiłby PROCESOR ARM7 iPhone ' a. Powiedzmy, że wysyłasz impulsy 2MHz do tablicy 256 czujników/odbiorników ultradźwiękowych - masz pomysł.

 2
Author: user3523897,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-11 14:01:09