• 締切済み

デシベルへの変換

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

みんなの回答

  • outerlimit
  • ベストアンサー率26% (993/3718)
回答No.1

振幅の常用対数をとり 20倍するだけです

関連するQ&A

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

    ある波f(x)をフーリエ変換するとF(w)になるとします。 その時、F(w)を縦軸F(w)、横軸wでプロットしたものが「f(x)のスペクトル」ですよね。 そこで質問です。 (1)もしF(w)に虚数が含まれている場合にはスペクトルはどういう意味になるのでしょうか。先と同じくプロットできないですよね。 (2)F(w)の値が負となる角周波数wの値の波は位相を180度ずらしたもの、という解釈で正しいでしょうか。 二点お願いします。

  • パワースペクトルのデシベル表示について

    信号のパワースペクトルをFFTによって求め、それのデシベル値を横軸を周波数としてグラフで表示するとき、その上限が 0 dBになっているのを、様々な文献やサイトでよく見かけます。 パワースペクトルの値は 1 以上になることもありますので、そのデシベル値も 0 dB以上になると思うのですが、上記のような上限が 0 dBとして表示されている場合は、正規化などがされたパワースペクトルのデシベル値が表示されているのでしょうか? また、ある標本化関数のフーリエ変換を求め、その周波数特性の理論値をグラフとして表示するとき、周波数 0 のときで理論値が明らかに 1 ではないにも関わらず、そのデシベル表示が 0 dBから始まっているのを、様々な文献で見かけるのですが、それも正規化などがされた理論値が表示されているのでしょうか? 初歩的な質問かもしれませんが、よろしくお願いします。

  • フーリエ変換についてF(ω)

    フーリエ変換についてF(ω) 次の信号のフーリエ変換と振幅スペクトルを求めたいのですが、算出式、解答を教えていただけますでしょうか。 f(t)={(e^(-at))+(e^(-2at),t≧0      {0,t<0 上の信号のフーリエ変換F(ω)と振幅スペクトルをお願いいたします。

  • ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値に

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、正弦波の元の振幅値を正確に求めることは出来ません。 この例の場合、フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。 当方、数学についてはあまり詳しくないため、簡単に説明して頂けると幸いです。

  • 離散フーリエ変換について

    離散フーリエ変換によって得られた値についての質問です。 多くのサイトでその値は Σ(k=0~N-1) f(k)exp(-2πkni/N) という式から求められるとあります。 離散フーリエ変換は本来、ある周期関数が、どのくらいの振幅でどのくらいの周波数の波からできているかを調べるために行うものだと思います。 しかし上記の公式から得られるスペクトル(sqrt(Re^2+Im^2))では振幅の値は得られません。振幅を得るには刻み幅Δ(関数をサンプリングした際の幅)を乗じて Σ(k=0~N-1) f(k)exp(-2πkni/N)*Δ とすれば得られることが分かりました。 最初の公式から得られるスペクトルはなにを表しているのでしょうか?またなぜ刻み幅Δを乗じることで、振幅が求まるのでしょうか? よろしくお願いします。m(__)m

  • MATLABでの波形のフーリエ変換

    MATLABであるパルスのフーリエ変換をし、そのスペクトルを逆フーリエ変換をすると、元の時間波形に戻らなくて困っています。原因として考えられることとしてはどのようなことでしょうか? よろしくお願いします。

  • フーリエ変換のスペクトル

    フーリエ変換を勉強しても、なかなかわからないことが多くて困っています。現在EXCELのフーリエ解析ツールで変換して、パワースペクトルまで求められるようになっていますが、パワースペクトルがよくわかりません。 パワースペクトルは周波数領域の比みたいなものと勝手に認識しているのですが、例えばsin波の振幅を2倍するとピークのパワースペクトルはどうなるのか等、法則みないなものはありますか?実際に色々試しているのですが、よくわかりません。また、周波数0以外のデータの総和に何か法則がありそうなのですが、やはりよくわかりません。 1次元の周期成分を持つデータをフーリエ変換して、ピークが出るのですが、その値が何を示してるのかを上司に説明できるようになりたいので、アドバイスお願いします。

  • フーリエ変換 位相の範囲

    フーリエ変換の位相の範囲について質問です. ある信号をフーリエ変換すると 周波数スペクトルがわかります. 周波数スペクトルには振幅スペクトルと位相スペクトルがあって それぞれ 振幅スペクトル: Xn=√An^2+Bn^2 位相スペクトル:θn=arctanBn/An で表されることは理解できたのですが、 この場合、 θnがとる範囲は0~πですか? 考え方がよくわからないので説明も一緒にわかる方いらっしゃいましたら 教えてください. よろしくお願いいたします.

  • フーリエ変換により得られる周波数スペクトルの単位

    離散フーリエ変換(デジタル信号に対して行う周波数解析)により得られる 周波数スペクトルの単位について教えて頂きたいと思い,質問させて頂きました. デジタル信号処理やフーリエ変換に関する書籍,またはホームページを調べてみますと 周波数スペクトルには ・振幅スペクトル ・位相スペクトル ・パワースペクトル ・パワースペクトル密度 というような様々な表現方法があることがわかりました. しかし,それぞれが持つ意味や単位がはっきりと書かれた書籍をみつけることができませんでした. 離散フーリエ変換の定義式やホームページを参考にして考えてみますと 周波数解析を行う対象の波形の縦軸の単位がVで,横軸の単位が秒であれば, 求められるスペクトルの単位は,以下のようになると考えております. しかし,確信がなく不安な気持ちです. ・振幅スペクトル [VまたはdB] ・位相スペクトル [rad] ・パワースペクトル [V^2またはdB] ・パワースペクトル密度 [(V^2)/Hz] もしスペクトルに関してご存知の方がいらっしゃいましたら, 教えて頂けると本当にうれしいです. 参考になるホームページや書籍等も教えて頂けると助かります. つたない文章ですが,どうぞよろしくお願い致します.

  • フーリエ変換における時間波形と振幅スペクトル

    ある電磁波で,時間波形を取得後,フーリエ変換し振幅スペクトルを得たとき, 時間波形の長さ(時間窓)が長くなればなるほど,振幅スペクトルのピーク値が下がってしまいます. これはいったいなぜなのでしょうか? どなたか教えていただけませんか? よろしくおねがいします.