音の調査

音の大きさ

音の大きさをAndroidアプリのSound Meterで測定してみました。
 ・騒音測定器 : Sound Meter [Smart Tools co.]
  https://play.google.com/store/apps/details?id=kr.sira.sound&hl=ja

このアプリの他に
 ・騒音測定器 (Sound Meter) [Abc apps]
  https://play.google.com/store/apps/details?id=com.gamebasic.decibel&hl=ja
も人気があるようです。

但し、デバイスのマイクがほとんど音声帯域幅(300~3400Hz, 40~60dB)に合わせられているようですので高周波領域の計測には不安があります。
掃除機起動時は、71dB(騒々しいオフィスレベル)、停止時は35dBでした。

測定音の補正

測定値には、暗騒音が含まれます。
本来、測定には無響室が望まれますが、半無響室で測定することもあります。
絶対dBの値は、引き算が可能です。

測定補正グラフ

測定補正グラフ

 
 
スペクトログラムは前回の掃除機のような定常音には、効果的とはいえませんが非定常な騒音(間欠騒音や衝撃音)には、時間の経過と共に推移する周波数の強度を確認するのに便利です。
スペクトログラム

スペクトログラム

 
 

音の分析

ここまで当たり前のようにFFTによる周波数分析やスペクトログラムを使ってきました。
これらは、MATLABやアナライザー等を購入し、業務にお使いいただければ良いのですが、費用捻出の為、上司の首を立てに振らせるのは難しいようです。
そこで、手元にあるEXCELを使って、簡易的な解析を行い、理解と分析の基礎を練習してみたいと思います。
 

FFTってなに?

まず、フーリエ変換は中学または高校で習った気がしますがここでは感覚的に説明します。
我々が捕らえることができる音というのは、20Hzから20KHzの音だそうで、歳をとると9KHzの音も聞こえていないそうです。
その音はいろいろな周波数の混ざり合ったものですが、FFTはその音を混ざり合う前の音に分解してくれます。

EXCELでは、アドイン機能でフーリエ変換が行えます。
 使い方:[ファイル]→[オプション]→[アドイン]→[設定]→[分析ツール] のフーリエ変換をオンで使えるようになります。

サンプル音を作る

音のお話は、インターネットで知ることができますが式や理論を見て理解できるほど私は賢くありません。
そこで、EXCELで音を作ってみます。
できるだけマクロやVBAを使わずに作成しようとしたのですが、なかなかうまくいかず、EXCELの機能+マクロ関数+VBA関数とごちゃ混ぜになっていますが、ご勘弁ください。
 
まず、5種類ほどの周波数を設定できるようにしました。その周波数が合成された波形をグラフで見ることができます。EXCEL2013であればグラフエリアをクリックしデータの選択でそれぞれの波形を見ることができます。

下記をご理解の上、ダウンロードしてください。
(本内容のEXCELプログラム “周波数分析の基礎_音作成” ならびに “周波数分析の基礎_FFT” は、こちらにアップロードしています。⇒ ダウンロードページへ)
 

周波数分析の基礎_音作成.xlsmファイルを開きます。
A列1行目の「操作手順」のコメントをご確認ください。 
赤枠、薄赤塗りつぶしのセルに適当な数値を入力すると、最大5種類の周波数の合成波を作ることができます。グラフは上段が時間軸での振幅、下段が拡大グラフ(G3で設定)です。
C~G列までの音は、それぞれ定常音(一定の音がなり続ける)を作ります。
 

周波数と合成波

周波数と合成波

 

上の例では、
「レ、ファ、ラ」の音を同じ大きさで発生させたときの合成波を1秒と0.01161秒間の拡大図で表示したものです。
 
音は、44100行まで作成できますから、解像度(サンプリング周波数)で検査時間=作成時間が変わりますのでご注意ください。

合成波は実線で描きました。
イメージできていましたか?

合成波 0~1秒

合成波 0~1秒

合成波 0~0.01161秒

合成波 0~0.01161秒

 

 
ドレミの周波数表を載せておきますので、上記、合成波を作る際にご参照下さい。
 CC♯DD♯EFF♯GG♯AA♯B
ファ
016.417.318.419.420.621.823.124.526.027.529.130.9
132.734.636.738.941.243.746.249.051.955.058.361.7
265.469.373.477.882.487.392.598.0103.8110.0116.5123.5
3130.8138.6146.8155.6164.8174.6185.0196.0207.7220.0233.1246.9
4261.6277.2293.7311.1329.6349.2370.0392.0415.3440.0466.2493.9
5523.3554.4587.3622.3659.3698.5740.0784.0830.6880.0932.3987.8
61046.51108.71174.71244.51318.51396.91480.01568.01661.21760.01864.71975.5
72093.02217.52349.32489.02637.02793.82960.03136.03322.43520.03729.33951.1
84186.04434.94698.64978.05274.05587.75919.96271.96644.97040.07458.67902.1
98372.08869.89397.39956.110548.111175.311839.812543.913289.814080.014917.215804.3

 
 
 

音を聴く

合成波をせっかく作成しましたので聴いてみたくなりました。
Windowsのメディアプレイヤーは、wave、mp3等のフォーマットをサポートとしています。
oto2_006

合成波を実際の音として確認するには、
J列「WAV変換」ボタンでWAVEファイルを作り、ハイパーリンクがはられますのでMEDIA PLAYER等で聞いてみてください。

※周波数分析の基礎_音作成.xlsm、CSV2WAV.exe、作成される.CSVおよび.WAVファイルは同じフォルダーに置いて、ご利用ください。
  

FFT分析

サンプル音を作ることで、合成波=合成音に含まれる音は、あなたが指定した音で構成されています。この音をFFT(フーリエ変換)することで指定した元の音(合成される前のそれぞれの音)が正しく分析されるか、試してみましょう。

ここでは、当サイトのフリーツール 周波数分析の基礎_FFT を使用します。

EXCELでは、FFTに掛けられるデータ数は4096までです。

例えば音のデータのサンプリング周波数は、録音装置の能力により、8000,11025,22050,44100,384000など様々ですが、いずれも、そのデータの最大4096個での分析となります。
44100の密度の場合は、1/44100*4096=0.0929秒間の分析になります。

また、FFT分析を行う為のデータは、2のN乗でなければいけませんので、128,256,512,1024,2048,4096がサンプリング数で1/(サンプリング数*原音のサンプリング間隔)の周波数間隔での分析になります。
例えば、原音のサンプリング周波数22050、FFTの分析データ数4096の場合
0.18秒間のデータを用いて 1/(4096*1/22050)=5.38Hz 刻みでの分析になります。
 
また、原音のサンプリング周波数の1/2(22050の場合は11025)がナイキスト周波数となり、これは分析できる最大周波数で折り返し (エイリアシングとも言うそうです) 周波数になります。
 
① 音の波形(時間軸)データを、”周波数分析の基礎_FFT.xlmsファイル” の D列に時刻、E列に振幅を、4行目から貼ってお使いください。 
(当サイトのフリーツール「周波数分析の基礎_音作成.xlms」をご使用になる場合は、「Sample_data]コピーし、シート名を「Sample_data]に変更、マクロをコピーすると E列1の[前Sheet読込]ボタンで 気持ちよくご利用いただけます。また、A列16行目の操作の手順も合わせてお読みください。)
② F1の「FFT計算」ボタンでフーリエ変換が行われます。
③ 振幅スペクトルならびにSPL(音圧レベル)のグラフをご覧いただけます。

EXCELの関数を多用していますので非常に重いです。気長に待ってくださいね。
 

FFT_分析 シート

FFT_分析 シート

 
灰色の塗りつぶしセルは、自動的に前データ等から算出されます。
FFTの結果から振幅、音圧レベルが算出され、音圧レベルの総和を用いてOA(オーバーオール)値が算出されます。(OA値の算出は、矩形またはハミング窓の選択が可能です。)
計算点数を変えることにより、周波数分析の解像度が変わることが確認できます。
 
oto2_008
 
左図は、計算点数4096,サンプル周波数2.69Hz
右図は、計算点数128,サンプル周波数86.13Hz
横軸は周波数、縦軸は上段が音圧Pa、下段がdBです。