サウンドを扱うプログラミングをしているのですが、音圧であるデシベルの数値を、0~100%という音量に置き換えたいのですが、変換式をご存知の方、教えていただけないでしょうか。
音量0のときマイナス無限大db、100のとき0dbにしたいのですが・・・。logが関わったと思ったのですが、忘れてしまいました。(^_^;

このQ&Aに関連する最新のQ&A

A 回答 (3件)

dB = 20.0 × log10(i0/i1)



です。(「i0/i1」は割合)
従って

dB = 20.0 × log10( v / 100 )

で、vに「??%」の数値を与えてやればdBが出てきます。
    • good
    • 0
この回答へのお礼

log10だったんですね。長年の疑問が解けました。
ずっとアンプのレベルメーターみて悩んでいたもので・・・。
ありがとうございます。無事にプログラムも完成しました。

お礼日時:2001/06/19 23:25

人間が主観的に感じる音の大きさと、音圧レベル(dB)の関係を定義したものがあります。

簡単にいいますと、音の大きさが2倍に聞こえると、それは10dB増えるというものです。すなわち、40dBの音を1とした場合、50dBは2ということになります。60dBは4、70dBは8、80dBは16、90dBは32、100dBは64、110dBが128というわけです。音は、おっしゃるとおりlogであらわしますから、マイナスではあらわしませんので、100のときに0dBというのは、ちょっと難しいと思います。こんな説明でよかったでしょうか。
注:ここでいう音圧レベルは音の中心周波数1kHzとしてですので、周波数が低くなりますと若干異なります。
    • good
    • 0
この回答へのお礼

よく理解できました。
オーディオなんかで、マイナスいくつデシベルというのはまた違った基準なんでしょうか。
ありがとうございます。奥が深い世界なんですね。

お礼日時:2001/06/19 23:20

電圧・電流比 db=20log10(E2/E1)



電力比db=10log10(P1/P2)

電圧比dbを計算してくれるサイトもありました。

参考URL:http://www.click.or.jp/~kiyoshim/m_memo/calc_el2 …
    • good
    • 0
この回答へのお礼

デシベルって単に音圧比ではないんですね。
そういえば高校で習ったような記憶も・・・
ありがとうございます。よく理解できました。

お礼日時:2001/06/19 23:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q振幅スペクトルから音圧レベルへの変換

先日、マイクロホンを用いて音の計測を行いました。
マイクロホンのAC出力に対し、FFT処理を施し、振幅スペクトル[dBV]を得ました。
その値(例えば-40[dBV])を音圧レベル[SPL]に変換する際に

20log(x)=-40
x=10^(-40/20)
=0.01

20log(0.01/(20*10^-6))≒54[SPL]

という計算を行ったのですが、この計算式に自信がありません。
この分野にお詳しい方がいましたら、ご指摘して頂けると非常に助かります。
どうぞよろしくお願いいたします。

Aベストアンサー

その計算式の前半は、FFTで得られた振幅の-40dBVをV単位の実効値に変換する計算なら0.01で合ってます。

後半の計算式は間違いです。
式の中の20*10^-6というのは、SPL(Sound Pressure Level)が0dBとなる音圧[Pa]のことです。つまり、音圧(の実効値)が 20*10^-6 [Pa] のとき 0 [dB SPL] と定義するということです。したがって、後半の計算式
20log(0.01/(20*10^-6))≒54[SPL]
の0.01はV単位でなく、Pa単位の数値にする必要があります。V単位をPa単位に変換するには、お使いのマイクの感度やアンプの増幅率が分かっている必要があります。

マイクの感度は普通、 dBV/Pa という単位が使われます。以下のサイトの「マイクロフォン」の(3)を参照してください。
http://www.ys-labo.com/DenkiZatugaku/DenkiZatugaku%20cont/2010/Audio.html
1Paの音圧(1kHzの周波数)がマイクに入ったとき、マイクの出力をdBV単位(1Vrms=0dB)で表した数値です。お使いのマイクの感度やアンプの増幅率を含めた測定系全体の感度を S [dBV/Pa] とすれば、P [Pa] の音圧を受けたときの測定系全体の出力電圧 E [dBV] は
E = S + 20*log10(P)
になります(log10は常用対数の意味)。したがって、出力電圧 E [dBV] から、音圧 P [Pa] を求めるには
P = 10^{ ( E - S )/20 }
を計算します。

したがって、音圧 P [Pa] を [dB SPL] 単位の音圧に変換するには、ご質問の後半の計算式の 0.01 のところにこのPを入れます。つまり
音圧 [dB SPL] = 20*log10[ 10^{ ( E - S )/20 } - 20*log10(20*10^-6) = E - S + 93.979 --- (1)
になります。93.979というのは、1Paの音圧を [dB SPL] 単位で表した数値です。

ご質問は、測定値が-40 [dBV] のときの音圧 [dB SPL]を知りたいということですが、その計算には測定系全体の感度 S [dBV/Pa] の値が必要で、それが分かれば、式(1)の E を -40 として
音圧 [dB SPL] = 53.979 - S [dBV/Pa]
で計算できます。

例えば、マイクの感度が -50 [dBV/Pa] で、アンプの増幅率が 20 dB のとき、測定系全体の感度は
S [dBV/Pa] = -50 + 20 = -30
になるので、音圧 = 53.979 - (-30) = 23.979 [dB SPL] ということになります。

その計算式の前半は、FFTで得られた振幅の-40dBVをV単位の実効値に変換する計算なら0.01で合ってます。

後半の計算式は間違いです。
式の中の20*10^-6というのは、SPL(Sound Pressure Level)が0dBとなる音圧[Pa]のことです。つまり、音圧(の実効値)が 20*10^-6 [Pa] のとき 0 [dB SPL] と定義するということです。したがって、後半の計算式
20log(0.01/(20*10^-6))≒54[SPL]
の0.01はV単位でなく、Pa単位の数値にする必要があります。V単位をPa単位に変換するには、お使いのマイクの感度やアンプの増幅率が分...続きを読む

Q音声の波形データ(振幅)から音量(dB)を取得したい

+1.0~-1.0の値を取る音声の波形データから音量を単位dBとして取得したいです。
どのようにすればいいのでしょうか?
また、もしこの条件がdBを得るのに十分でない条件なら必要な条件を教えてください。

Aベストアンサー

音声の波形データの +1.0~-1.0 というのはV単位の電圧のことですね?
電圧波形のデータから音圧(dB単位)を計算するには、マイクの感度とアンプの利得が分かっている必要があります。それが分かっていれば、電圧(の実効値)は以下のようになります。
   電圧(V) = 音圧(Pa)×マイク感度(V/Pa)×アンプ利得(倍)
マイク感度の V/Pa という単位は、1Paの音圧で1Vの出力電圧(実効値)が出るという意味です。音圧 0dB というのは20μPaのことなので
   音圧(Pa) = 2×10^(-6)×10^{音圧(dB)/20}
になります( 1Pa の音圧は 94dB )。したがって元の音量が dB 単位のときは次式で計算できます。
   電圧(V) = 2×10^(-6)×10^{音圧(dB)/20}×マイク感度(V/Pa)×アンプ利得(倍)
逆に電圧の実効値から音圧を計算するには
   音圧 (dB) = 20*log10[ 電圧(V)/{ 2×10^(-6)×マイク感度(V/Pa)×アンプ利得(倍)} ]
になります。 log10 は自然対数です。

マイクの感度はいろいろな表記法があります。例えば -52 dBV/Pa なら、0 dBV = 1V のことなので、マイク感度は
   -52 dBV/Pa = 10^(-52/20) V/Pa = 2.5×10^(-3) V/Pa
です。マイクの感度が単に -70dB と書いてある場合は 0dB = 1 V/Pa という意味なので、マイク感度は
   -70 dB = 10^(-70/20) V = 3.16×10^(-4) V/Pa
となります。

電圧波形から実効値の計算式は
   電圧(V) =√{ ( 1/N )*Σ[ n = 1, 2, ..., N ] V(n)^2 }
です。N はデータ数、V(n) は電圧データです。データの範囲は基本周波数の整数倍になるようにしてください(基本周波数が分からないときはなるべく大きく)。

音声の波形データの +1.0~-1.0 というのはV単位の電圧のことですね?
電圧波形のデータから音圧(dB単位)を計算するには、マイクの感度とアンプの利得が分かっている必要があります。それが分かっていれば、電圧(の実効値)は以下のようになります。
   電圧(V) = 音圧(Pa)×マイク感度(V/Pa)×アンプ利得(倍)
マイク感度の V/Pa という単位は、1Paの音圧で1Vの出力電圧(実効値)が出るという意味です。音圧 0dB というのは20μPaのことなので
   音圧(Pa) = 2×10^(-6)×10^{音圧(dB)/20}
になりま...続きを読む

Qオーディオやアンプのdbのことで

デシベルはふつう40dbなどと測定器などではあらわしますよね。
オーディオのアンプのデシベルはなんでマイナス表記なんですか。
抵抗と言う意味なのでしょうか?
詳しく教えて下さい。

Aベストアンサー

アンプのボリュームなら抵抗ですので、入力に対する減衰率(どれだけ絞ったか)を-dBで表記していたと思います。
ボリュームが最大なら、0dB。入力された信号がそのままパワーアンプ部で増幅されます。
-70dBなら、それだけ絞った信号がパワーアンプ部に送られます。

ほとんどのアンプのボリュームで、∞(無限小)-70dB~0dBと同じ間隔で表示されているのは、Aカーブと言う減衰率特性のボリュームを使っているためです。

Q倍率とデシベルの計算式

物理カテで質問しようと思いましたが計算式のみの問題のためこちらへ。
電力等の減衰(もしくは利得)に使用する
倍率→デシベル
デシベル→倍率
への計算式はどのようにすればいいのでしょうか?
できればエクセルでの計算式なども教えていただければ幸いです。
一つ一つは

http://www.ookawa.com/soft/circuit/db/db.html

のようなサイトでも示されているのですが入力する値を少しづつ変えて結果を一覧表にしたく考えています。

Aベストアンサー

> 倍率x→デシベルy
y=10log_10 x (対数は常用対数、底が10の対数です。
EXCELの計算式:A1(x)→B1(y)
B1
=10*LOG10(A1)

> デシベルy→倍率x
x=10^(y/10)
EXCELの計算式:A1(y)→B1(x)
B1
=10^(A1/10)

データの小数以下の桁数を必要な桁数に設定して計算して下さい。

Qwavファイルの音量を数値で調べたい(dB)

wav形式の音声ファイルがあります。
この音量を数値で知りたいのですが、デジベル表示するツールなどありませんでしょうか。
ご存知の方教えて下さい。
宜しくお願いします。

Aベストアンサー

どんなレベルで使うのかわからないので
ふたつ挙げておきます。

■WaveSpectra
設定のWaveタブでレベルメータを表示するにチェックを入れます。

<<WaveSpectra>>
 http://www.ne.jp/asahi/fa/efu/soft/ws/ws.html

■SpWave
厳密な値が必要なときは SpWave でマウスを置いた
座標の音圧 E が出るので

 dB = 20*log(|E|/E0)

を計算。
E0 はサンプリングビットが b であれば

 E0 = 2^(b-1)

とすれば 0dB をフルスケールに合わせることができます。

<<spwave>>
 http://www.itakura.nuee.nagoya-u.ac.jp/people/banno/spLibs/spwave/index-j.html

参考URL:http://www.ne.jp/asahi/fa/efu/soft/ws/ws.html

Q雑音の単位について(dB)

はじめまして、雑音の単位についてよく理解できないので質問させてください。

ある雑音生成ソフトでホワイトノイズを生成したのですが、単位がマイナスになっています。
(例)-50dB
dBの単位について、プラスの場合は10を底とした対数で表現されているのは、理解できたんですが、マイナスの場合はどうなるのでしょうか?
S/N比で計算するのかと考えたのですが、この場合、ノイズが大きくなるとマイナスの絶対値が大きくなりますよね。ところが、この生成ソフトでは-50dBのノイズよりも-20dBのノイズの方が大きくなってます。

マイナスの場合のdBの考え方を教えていただきたいと思ってます。よろしくお願いします。

Aベストアンサー

#1です。
音の話だと勝手におもっていました。
#2の方のおっしゃるように,
もともとの定義は
10×Log10(値/基準値)
です。
音を扱うときは,この値(パワー)が,音圧^2になるため,
10×Log10(音圧^2/基準音圧^2)
=20×Log10(音圧/基準音圧)
となります。
ホワイトノイズ作成ソフトで作ったというと,
出力されるデータはwavデータになるかと思いますが,
wavファイルは,絶対的な音圧レベルではなく,
音信号の相対変化を記録していて,
出力時のゲイン調整によって音圧をコントロールするようになっています。
そのため,例えばそのソフトで,基準音圧として,
分解能(8bitまたは16bit)の最大値を用いていた場合,
出力は必ずマイナスとなります。
(こういう処理をしているソフトは結構あります。)

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

QEXCELにてローパスフィルタを作成する

実験の測定データをEXCELでデータ整理しようと考えております。データ整理のためローパスフィルタをかけたいのですが、具体的にどういった式、もしくはEXCELの機能を使用したらいいのでしょうか?デジタルフィルタが良く分からないのでよろしくお願いします。
ちなみにローパスフィルタは1000Hzをかけたいです。

Aベストアンサー

時系列データの処理ならば

OutputData(n+1) = OutputData(n) + (InputData(n+1) - OutputData(n)) * dt / T

dt:データのサンプリング間隔
T:フィルタの時定数 1/2πf
f:カットオフ周波数
n,n+1:それぞれn個目,n+1個目のデータをしめす。

でいけると思いますが、一次のパッシブなんで効果が薄いかも。(普通はベッセルかけるんでしょうけど、そこまではわからない)

QLPCWSTRとchar

質問なのです・・・

現在、私は[Visual Stdio.Net 2005]を使って、C++のプログラミングをしようと思いまして、今日参考書を見てやってみたのですが、

charの配列を使って、文字列を格納しそれを使おうとしたら、LPCWSTRのキャストが必要というエラーがでました。
参考書だと普通に通るらしいのですが・・・Visual Stdio.Net 2003と2005の違いなのでしょか?わかる方教えていただけませんでしょうか??

Aベストアンサー

補足です。
2005デフォルトのUNICODEを変更する方法は
プロジェクト->プロパティ->構成プロパティ->全般 の中にある
文字セットを[Unicode 文字セットを使用する]から[マルチバイト文字セットを使用する]
に変更することで可能です。

Qエクセルの関数で,たとえばB15のセルの値を返すには?

エクセルの関数の質問です。

たとえば,
A1のセルに7
A2のセルに8
が入力されているとします。

ここで,少し回りくどいのですが,
A1(の7)と,A2(の8)と,関数などを使って,
あるセルに,B15のセルの値を返したいのですが,
可能でしょうか?

間違ってますが,
=B(A1+A2)
のような式を書きたいのですが…。


あっさりと,
=B15
とすればいいのはわかっていますが,
やむえない事情がありまして…。

よろしくお願いします。

Aベストアンサー

=INDIRECT("B"&A1+A2)
で良いと思います。


人気Q&Aランキング