web-dev-qa-db-ja.com

PCMオーディオ振幅値?

Androidスマートフォンを使用したオーディオ録音から始めています。

音声録音をPCMファイルに正常に保存しました。データを解析して符号付きの16ビット値を出力すると、次のようなグラフを作成できます。 しかし、y軸に沿った振幅値がわかりません。

  1. 振幅値の単位は正確には何ですか?値は16ビットで署名されているため、-32Kから+ 32Kの範囲である必要があります。しかし、これらの値は何を表していますか?デシベル?

  2. 8ビット値を使用する場合、値の範囲は-128〜 +128である必要があります。それは16ビット値の音量/「ラウドネス」にどのようにマッピングされますか? 16対1の量子化マッピングを使用しますか?

  3. なぜ負の値があるのですか?完全に沈黙すると、値は0になると思います。

何が記録されているかについての情報が掲載されているウェブサイトを誰かに教えてもらえれば幸いです。 PCMファイル形式で webpages が見つかりましたが、データ値が何であるかはわかりません。

enter image description here

31

マイクの表面を考えてみてください。沈黙しているとき、表面は位置ゼロで動かない。あなたが話すとき、それはあなたの口の周りの空気を振動させます。振動は春のようで、前後、上下、内外など、両方向に動きます。空気中の振動により、マイクの表面も上下に動くように振動します。下に移動すると、正の値が測定またはサンプリングされる可能性があります。上に移動すると、負の値としてサンプリングされる可能性があります。 (または、逆の場合もあります。)話すのをやめると、表面はゼロの位置に落ち着きます。

PCM記録データから取得する数値は、システムのゲインによって異なります。一般的な16ビットサンプルの場合、範囲は-32768〜32767で、歪み、クリッピング、オーバーフローなしで記録できる振動の可能な最大の変動を示します。通常、ゲインは少し低く設定されているため、最大値は歪みのエッジに正しくありません。

追加:

8ビットPCMオーディオは、多くの場合、0..255の範囲の符号なしデータ型であり、値128は「無音」を示します。したがって、このバイアスを加算/減算するだけでなく、8ビットと16ビットのオーディオPCM波形を変換するために約256でスケーリングする必要があります。

22
hotpaw2

生の数値は、アナログオーディオ信号をデジタルに変換するために使用される量子化プロセスの成果物です。オーディオ信号を0付近の振動と考える方が理にかなっています。この振動は、信号の最大エクスカーションのために+1と-1まで広がります。それ以外では、クリッピングが発生し、倍音が歪んでひどい音になります。

ただし、コンピューターは分数に関してはそれほどうまく機能しないため、0から65536までの離散整数を使用してその範囲をマップします。このようなほとんどのアプリケーションでは、+ 32767はマイクまたはスピーカーのダイアフラムの最大の正の偏位と見なされます。録音(または再生)回路の特性を考慮し始めない限り、サンプルポイントと音圧レベルの間には相関なしがあります。

(BTW、16ビットオーディオは非常に標準的で広く使用されています。信号対雑音比とダイナミックレンジのバランスが取れています。ファンキーな非標準スケーリングを行わない限り、8ビットはノイズが多くなります。)

4
staticsan
Why are there negative values? I would think that complete silence

値は0になります

マイクの絞りは両方向に振動し、その結果、正と負の電圧が発生します。値0は、ダイヤフラムが動いていないことを示すため、無音です。マイクの仕組みを見る

小さな説明:横隔膜の位置が記録されています。沈黙は、振動がないとき、位置に変化がないときに発生します。つまり、あなたが見ている振動は、空気を押し出し、時間の経過とともに気圧の変化を引き起こしているものです。振動の上下のピークで空気が押し出されなくなったため、ピークは無音が発生したときです。信号の最も大きな部分は、ピークの中央のどこかで位置が最も速く変化するときです。ダイヤフラムがあるピークから別のピークに移動する速度によって、ダイヤフラムによって生成される圧力の量が決まります。上部と下部のピークがゼロ(またはそれらが共有する他の数値)に減少すると、振動も音もまったく発生しません。また、ダイヤフラムが遅くなり、ピーク間の時間間隔が長くなるため、生成または記録される音圧が少なくなります。

詳細については、 Yamaha Sound Reinforcement Handbook をお勧めします。微積分の概念を理解することは、オーディオと振動の理解にも役立ちます。

3
aeriform

16ビットの数値はマイクからのA/Dコンバーターの値です(これはご存知でしょう)。マイクとA/Dコンバーターの間のアンプには自動ゲインコントロール(AGC)があることも知っておいてください。 AGCは、マイク信号の増幅を積極的に変更して、A/Dコンバーターに過剰な電圧が当たらないようにします(通常はDC 2ボルト未満)。また、DC電圧デカップリングがあり、入力信号をA/Dコンバーターの範囲の中央(たとえば1ボルトDC)に設定します。

そのため、マイクに音が当たっていない場合、AGCアンプはフラットラインの1.0ボルトDC信号をA/Dコンバーターに送信しています。音波がマイクに当たると、対応するAC電圧波が生成されます。 AGCアンプはAC電圧波を受け取り、それを1.0 Vdcに集中させ、A/Dコンバーターに送信します。 A/Dサンプル(DC電圧はたとえば44,000 /秒)を測定し、電圧の+/- 16ビット値を吐き出します。したがって、-65,536 = 0.0Vdcおよび+ 65,536 = 2.0Vdc。+ 100 = 1.00001529Vdcおよび-100 = 0.99998474Vdcの値がA/Dコンバーターにヒットします。

+値は1.0Vdcを上回っています、-値は1.0Vdcを下回っています。

ほとんどのオーディオシステムは、対数式を使​​用してオーディオ波を対数的にカーブさせるため、人間の耳はそれをよりよく聞くことができます。デジタルオーディオシステム(ADCを使用)では、デジタル信号処理によってこの曲線が信号に反映されます。 DSPチップは大きなビジネスであり、TIはオーディオ処理だけでなく、あらゆる種類のアプリケーションにDSPチップを使用して大金を稼ぎました。 DSPは、iPhoneのARM7プロセッサを詰まらせるようなデータのリアルタイムストリームに対して非常に複雑な計算を行うことができます。 256個の超音波センサー/レシーバーのアレイに2MHzのパルスを送信しているとしましょう。

2
user3523897

ここにはたくさんの良い答えがありますが、それらは読みやすい方法であなたの質問に直接対処していません。

振幅値の単位は正確には何ですか?値は16ビットで署名されているため、-32Kから+ 32Kの範囲である必要があります。しかし、これらの値は何を表していますか?デシベル?

値には単位がありません。それらは単にアナログ-デジタル変換器から出てきた数を表しています。 A/Dコンバーターからの数値は、マイクとプリアンプの特性の関数です。

8ビット値を使用する場合、値の範囲は-128〜 +128である必要があります。それは16ビット値の音量/「ラウドネス」にどのようにマッピングされますか? 16対1の量子化マッピングを使用しますか?

私はこの質問を理解していません。 8ビットオーディオを録音している場合、値は8ビットになります。 8ビットオーディオを16ビットに変換していますか?

なぜ負の値があるのですか?完全に沈黙すると、値は0になると思います。

マイクの絞りは両方向に振動し、その結果、正と負の電圧が発生します。値0は、ダイヤフラムが動いていないことを示すため、無音です。 マイクのしくみ を参照してください

音がデジタルで表現される方法の詳細については、 ここ を参照してください。

2
Error 454