• ベストアンサー

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

先日、マイクロホンを用いて音の計測を行いました。 マイクロホンのAC出力に対し、FFT処理を施し、振幅スペクトル[dBV]を得ました。 その値(例えば-40[dBV])を音圧レベル[SPL]に変換する際に 20log(x)=-40 x=10^(-40/20) =0.01 20log(0.01/(20*10^-6))≒54[SPL] という計算を行ったのですが、この計算式に自信がありません。 この分野にお詳しい方がいましたら、ご指摘して頂けると非常に助かります。 どうぞよろしくお願いいたします。

  • PONGI
  • お礼率100% (3/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

その計算式の前半は、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] ということになります。

PONGI
質問者

お礼

ご回答ありがとうございます。 整理されていて、よく理解することができました! 悩みの種だったので、本当に助かりました。

その他の回答 (2)

  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

ANo.2です。 ANo.1の最後の式は以下の間違いです。 音圧 = 53.979 - (-30) = 83.979 [dB SPL]

PONGI
質問者

お礼

訂正ありがとうございます。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

そこに書かれた式の「計算は」、迂遠だが、合っている。 立式が正しいかどうかは、数学ではなく、物理の問題だ。

PONGI
質問者

お礼

ご回答ありがとうございます。

PONGI
質問者

補足

申し訳ありません、質問の仕方が悪かったようです。 数式が正しいかではなく、変換プロセスが間違っていないか、というのが知りたいことです。 おっしゃる通り、物理にカテゴリーされますね……

関連するQ&A

  • FFT後の振幅値

    振幅値が1で5Hzのsin波をFFTにかけたところ、実数部と虚数部それぞれ出力されました。 横軸を周波数軸、縦軸を実数部としてグラフ化したところ、5Hzのところに鋭いピークがみられるのですが、スペクトルの値が元のsin波の振幅値1にならず、とても大きな値になります。 これは計算が間違っているのでしょうか?

  • 平面波での音圧と振幅関係

     ufonさんに教えて頂いた 音圧Pa(N/m2)=2π(2x3.14)xf(Hz)x空気密度(1.2kg/m3)x音速(340m)x実効値(0.707)x振動変位(m)の式で振幅の計算が出来るようになりました。 電気音響振動学にもこの式がありましたが詳しい説明はありません。  平面波で音圧が20Pa実効値(120dB)の時に1000Hzでは振幅が0.011mm=11um(ミクロン)であり、 20000Hzで0.0005mm=0.5um(ミクロン)、  20Hzで0.55mmとなりました。   {低音ほど2倍(6dB)/octで振幅が増大している。} http://www.timedomain.co.jp/tech/hifi07/hifi07.html←この記事にそれらしい図があります。  伝声管やホーンで作る音は平面波であり、 同じ音圧では低音ほど振幅が大きいと思うのですが、(振幅は同じと誤解していましたが) 明確に書いてある記事が無く推察しましたので不安なのです。 これで合っているのでしょうか?ご意見をお願いします。

  • 離散フーリエ変換のスペクトルについて

    関数f(x)=2sin(πx)をx=0~2まで等間隔1000点でサンプリングし、 離散フーリエ変換 Σ(k=0~N-1) f(k)exp(-2πkni/N) の式から、言語プログラムで計算する式をつくり、1000個の実数Reと虚数Imを得ました。 ピークはもちろん周波数πのときで、スペクトルの値が1000でした。 √(Re^2+Im^2)をスペクトル値、√なしをパワースペクトル値をいうそうですが、元の関数の振幅2とこのスペクトル値とはどのような関係があるのでしょうか? 異なる正弦波を混ぜれば、スペクトル値を見ることによって振幅の比は分かりますが、スペクトル値と振幅には式的になんらかの関係は存在するのでしょうか?  波のエネルギーは振幅の2乗になると思い、2^2=4がスペクトル値としてでる事を期待していましたが途方もなく異なる値が出てしまいました。 どうぞよろしくお願いします。

  • クロススペクトルを算出する方法

    クロススペクトルを計算して求める具体的な方法についてお尋ねします.2つの時系列があって,各周波数ごとのコヒーレンスとかフェイズを算出して周波数による変化を図示したようなものだと思います. 2つの量をいっぺんに処理するようなので複素数ということになると思いますが.実部,虚部をそれぞれコスペクトル,クオドラチャスペクトルなどと言っていたと思います. さて,そこで質問ですが,1つの時系列でスペクトルを算出するFFTプログラムがある場合,その結果を元にしてクロススペクトルを算出することは可能でしょうか.2つの時系列のそれぞれのスペクトル(振幅,位相)を個別に算出できるプログラムがあり,それらからクロススペクトルを求められないかということです.それともクロススペクトルを求めるルーチンは,2つの時系列を放りこんでそれ専用のFFTのルーチンを経て出力されるものなのでしょうか. スペクトルを求める方法は,FFT, 最大エントロピー,相関関数の変換などいろいろあると思います. FFTだけが手元にあります. よろしくお願いします.

  • 最大出力音圧レベルSPLについて

    最大出力音圧レベルSPLについて 教えて下さい 度々お世話になります 初心者ならではの疑問と誤解が あればご指摘下さい 来年の話なんでまだ時間はたっぷりあるんですが今のうちにいろいろな選択肢を考えておこうと思っています 野外ミニコンサート用のPAを必要としてまして、安く自作出来ないもんかと思い何度かこちらに質問させて頂きました、結局自作は私のスキルでは不可能と悟り、既製品を購入する考えに 改めました、選択肢に簡易PAセットという手もあるなぁと思い ヤマハのステージパスシリーズを 考えの一つとして検討しています サウンドハウスでステージパス400iが 69800円 ステージパス600iが99800円 と三万円の差があります しかしホームページの仕様をみてみると最大音圧レベルは400iが125dB SPL 600iが129dB SPLとわずか4dBの違いしかないようです 4dBの差は聴覚上にそれほど大きな差があるものなんでしょうか? 後、ふとした疑問なんですがステージパス300と500の最大音圧レベルは それぞれ112dBと116dBです ステージパス500の方が400iより音圧レベルが劣っています スピーカーは300と500が6オームなのに対し400iと600iは4オームです 400iと600iはスピーカーのインビーダンスを落とすことで出力アップしたんですかね もしかして300と500も4オームのスピーカーを繋げばそれぞれ125dB.129dB近くまで音圧を上げられるでしょうか? 6オーム指定のアンプに4オームのスピーカーを接続してもアンプにはそれ程の負担はかからないもんでしょうか? ステージパス400iと600iの仕様 http://www.yamahaproaudio.com/japan/ja/products/pasystems/stagepas_400i600i/specifications.jsp ステージパス500 http://www.yamahaproaudio.com/japan/ja/products/pasystems/stagepas500/specifications.jsp ステージパス300 http://www.yamahaproaudio.com/japan/ja/products/pasystems/stagepas300/specifications.jsp

  • デシベルへの変換

    matlabで音声ファイルを読み込み、各サンプルを数値化しました。 16bitで量子化しているので、各サンプルはだいたい-32000から32000くらいの値をとります。さらに、これをフーリエ変換し、絶対値をとって振幅スペクトルを求めました。 ここで困った事なんですが、振幅スペクトルをプロットしたときに、縦軸をデシベルで表現するにはどうしたらいいんでしょうか? デシベルの求め方は20log10(x[パスカル]/20μ[パスカル])と教わりましたが、matlabで扱っている値はパスカルではないので単純に代入するわけにもいかないし…。 自動で変換してくれるツールとかじゃなくて、自力で計算する方法を教えて下さい。お願いします。

  • パワースペクトルの0dBの値について

    matlabを用いて時系列データのパワースペクトルを計算、対数表示でグラフにプロットしています。 matlabのfft関数のヘルプに記載されていた例を参考に、以下のような自作の関数を組んで計算しているのですが、2つ質問があります。 1. この場合、パワースペクトルの0dBは、時系列の値ではいくつになるのでしょうか? 0dB = 1でしょうか? 2. 関数の中において、power_fftをN_fft(高速フーリエ変換時のデータ長さ)で割っている事の理由がわからなかったのですが、なぜ行っているのでしょうか? ------------------------------------------------ 以下、自作のパワースペクトル表示関数を示します function Power_db(Data_xx) fs = 1000; % サンプリング周波数 [Hz] N_fft = 2^12; % 4096個 xx_fft = fft(Data_xx,N_fft); power_xx = xx_fft.* conj(xx_fft) / N_fft; frequency = fs*(0:2047)/N_fft; % (0:2047)で500Hzまで plot(frequency,20*log10(power_xx(1:2048))) xlabel('Frequency [Hz]'); ylabel('Power Spectrum [dB]'); grid on; --------------------------------------------------------- 以上です。 何か足らない情報などがありましたらお申し付けください。 よろしくお願い致します。

  • デジタル信号処理のフーリエ変換で

    matlabで勉強中なんですが、以下の操作をするとどうなるのか教えて頂きたいです。 (音声信号xにfftをかけて、フーリエ係数Xを求めてあるとします。) ・xを一定間隔で間引いた(3点中2点を0で埋めていく)場合、fftをかけるとフーリエ係数はどうなるのか? ・同様にXを間引いてifftをかけたら、復元された信号はどうなるのか? (間引く: □□□□□□□□□□□□… → □00□00□00□00□… ) 要するに、 時間領域で時系列の間引きを行うと周波数領域ではどんな影響がでるのか? 周波数領域でスペクトルを間引くと時間領域でどんな影響がでるのか? ということを知りたいのです。 実際にやってみたのですが、結果がどういう意味なのかイマイチわからず悩んでいます。 前者は、周波数領域で振幅を調べたら、1/3の長さのスペクトルが3つ並んでいました。 後者は、時間領域で複数(この場合3つかな?)の音が重なった感じになっていて、波形は元の信号とだいぶ異なっていました。 わかりやすく説明してもらえると助かります。よろしくお願いします。

  • 周波数解析について

    ある時系列データをセンサを使って計測し、FFTを行ったのですが、結果の見方など、いくつか疑問があります。 得られた時系列データを見ると、直流成分に比べて交流成分が非常に微小であったとします。 (たとえば大気温度を計測した結果、直流成分は20℃であり、それから±0.01℃変動など) ここで、この変動がどこから由来するものなのか知るためにFFTを行いました。 そこで質問です。 (1)振幅スペクトル(あるいはパワースペクトル)を求めると、直流成分が大きすぎて、交流成分は潰れて表示されてしまうと思うのですが、普通直流成分は除いて表示するものなのでしょうか? (2)実際には綺麗な周期性はない波形であるためFFTを行うとエイリアシングの様な現象が起こると思うのですが、FFTで得られた結果は低周波数領域、高周波数領域どこでも信憑性のある結果なのでしょうか? といいますのも、 (3)パワースペクトル密度の単位は今回ならば[℃^2/Hz]だと思うのですが、表示の仕方が人によってはデシベルであったり無次元であったりするのですがどれが正しいのでしょうか? 長くなりましたが、よろしくお願い致します。

  • 1/3オクターブバンドについて質問です。

    1/3オクターブバンドについて質問です。 加速度信号をFFTアナライザを用いて、パワースペクトルを計測しました。 そのパワースペクトルのデータを用いて、計算上で1/3オクターブバンドに変換することは可能でしょうか? いろいろ調べたのですが、残念ながらよく分かりませんでした。 どなたか、解る方がいましたら、ご回答お願い致します。