今日のおじさん、なに食べました? (仮)

妻の料理と、おじさんの毎日の記録です。ほんのり工学テイスト。

gang01.jpg
↑↑↑夏休みの自由研究。画像クリックで記事一覧を表示します↑↑↑
手軽に周波数解析~エクセルで動くフーリエ変換ツール
【今日の料理】 2011/12/7 夕食
 今日も,娘(9.8ヶ月)のやけどの経過観察のため,病院へ行きました.幸いなことに,経過は順調でした.昨日,熱が出ましたが,カゼが原因だろうとの見解でした.ただ,日中は,平熱に戻ったのですが,夜になると38℃近くまで熱が上がります.まだまだ,気を緩めるわけには行きません.
CIMG7265.jpg
★米飯

★みそ汁,ほうれん草・卵

★水晶鍋
 レシピは[1].白菜・豚肉・白菜・豚肉・白菜の順に重ねて,水と酒を入れて蒸し煮にするだけです.豚肉は,切り落とし肉を使用.ポン酢で頂きました.豚肉と白菜の良いダシが出て,想像よりも美味でした.
[1]浅田峰子;基本の台所,グラフ社,(2002) 

「今日の料理」へのコメント、歓迎します。
→こちら

↓↓↓ポチッと応援,ポチ子ちゃん!↓↓↓
にほんブログ村 科学ブログ 技術・工学へ
にほんブログ村


【今日の料理工学】 手軽に周波数解析~エクセルで動くフーリエ変換ツール
 前回まで,WAVファイル(音声ファイル)の波形のグラフ化や,フーリエ変換で,いろいろと遊んでみました.

 今回は,せっかくですので,これらの記事の作成のために作った,フーリエ変換ツールを,紹介します.


このツールに関して,質問や改造希望がありましたら,お気軽にコメント下さい.


★エクセルで動くフーリエ変換ツール
 これまでの記事のために用いたツールは,図1のようなものです.エクセル上で動くツールで,マクロ(VBA)を使っています.
<図1>
20111207z11.jpg
 このツールでは,次のようなことができます.
 ・WAVファイルの波形のグラフ化
 ・波形のフーリエ変換(周波数解析)
 ブログ作成の目的で作った,簡単なツールなので,機能は今ひとつかもしれません.しかし,プログラムがそれほど長くなく,マクロを自由に閲覧・編集できるので,WAVファイルの読み込み方や,フーリエ変換の計算手順などの勉強目的には,そこそこ好適だと思います.(プログラムの書き方の勉強には,お勧めしません.)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 フーリエ解析ツールは,こちらです.(xlsファイル)
https://docs.google.com/open?id=0B7vDUGd6_bj-Y2ViMGJlN2YtMWNkZC00ZDM3LWE0OTEtYWE5MmJhMTE4M2E3
(「Googleドキュメント」が開きます.File→Download Originalでダウンロードできると思います.)
 当ツールは,使用・改変・転載等,全てフリーです.勝手にやって下さい.
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
高速フーリエ変換(FFT)対応バージョンを用意しました.
→こちら


★使い方 
 使用のためには,マイクロソフトの表計算ソフト「エクセル(Excel)」が必要です.エクセルのマクロのセキュリティを,「中」または「低」に設定する必要があります.(エクセルのメニューバーで,ツール→マクロ→セキュリティ.)

 使い方は,簡単です.数字の書かれたボタンを,順に押していくだけです.
①ファイル指定
 このボタンを押すと,「ファイルを開く」ダイアログが開きます.開きたいWAVファイルを選びます.
 開いたWAVファイルは,左上方にある「再生→」の横のハイパーリンクから開けます.

②WAVデータ読み込み
 続いて,このボタンを押すと,①で選んだファイルのデータが,エクセルに読み込まれます.
 読み込まれたデータは,画面右上に,波形のグラフとして表示されます.

③解析区間切り出し
 ②で表示された波形を見ながら,どの部分をフーリエ解析(周波数解析)したいか決めます.
 そうしたら,このボタン③を押します.
 すると,「切り出し開始時間は?」と聞かれるので,解析開始したい時間を入力します.
 続いて,「切り出し間引き間隔は?」と聞かれます.これは,1のままでOKです.
 そうすると,画面右中央に,解析対象となる波形が現れます.

④DFT
 最後に,このボタンを押すと,③の範囲がフーリエ変換されます.
 結果が表示されるまで,少し時間がかかります(おおむね数秒~数十秒).
 周波数解析の結果は,画面右下のグラフに表示されます.


★注意点など
②で,
 あまり長いデータ(50万点超)は,途中までしか読めません.
 また,データが5000点以上の場合は,5000点程度になるよう,間引きながら読み込みます.
 
③で,
 切り出された箇所が,思った箇所でなかった場合,もう一度③を押せば,やり直しできます.
 切り出すデータ点数を増やしたい場合は,「切出点数」のセルの数字(初期値:1000)を変更します.ただ,あまり点数を増やすと,DFTに時間がかかります.(データ点数を2倍にすると,計算時間は約4倍.)
 周波数分解能を上げたいときは,「切り出し間引き間隔は?」に,2以上の数字を入れます.そうすると,解析範囲(時間)が長くなって,周波数分解能が上がります.周波数分解能[Hz]=1÷解析範囲[sec],です.
 また,モノラルのみ対応です.(ステレオの場合,どうなるか分かりません.)

④で,
 フーリエ変換には,通常は,適当な「窓関数」を用いるべきのようです.しかし,本ツールでは窓関数は「なし」(矩形窓)を標準とします.「DFT Hamming」のボタンを押すと,「ハミング窓」での解析ができます.他の窓関数が必要な場合は,マクロを改造してください.
 FFT(Fast Fourier Transform;高速フーリエ変換)でなく,DFT(Discrete Fourier Transform;離散フーリエ変換)なので,遅いです.FFT化は,時間と技量の都合で,実現できませんでした.
高速フーリエ変換(FFT)対応バージョンを用意しました.
→こちら


 フーリエ変換の計算手順については,過去の記事や,本ツールのソースを参照して下さい.

 参考まで,当方が使用している環境は,次の通りです.貧乏なので,10年前の環境です.
 ・パソコン:SONY,PCV-JX11
 ・CPU :AMD Athlon XP 1500+,1.31GHz
 ・OS  :Windows XP,SP3
 ・エクセル:Microsoft Excel 2002 


 本ツールのWAVファイルの読み込み部分のソースは,以下の書籍を参考にしました.
[1]互野;Visual Basicでエンジョイプログラミング,CQ出版,(1998)
Visual Basicでエンジョイプログラミング―API関数を活用したメディアデバイスの操作と自作計測装置の制御Visual Basicでエンジョイプログラミング―API関数を活用したメディアデバイスの操作と自作計測装置の制御
(1998/10)
互野 恭治

商品詳細を見る



このツールに関して,質問や改造希望がありましたら,お気軽にコメント下さい.


【今回の結論】
 エクセルのマクロを使って,フーリエ変換(周波数解析)をするツールを作りました.
 エクセルだと,結果を簡単にグラフ化できるので,便利です.


ご訪問ありがとうございます.応援よろしくお願いします.
↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 技術・工学へ
にほんブログ村
関連記事
スポンサーサイト
omocha201612.jpg
↑↑↑画像クリックで、我が家のおもちゃを紹介します!↑↑↑









管理者にだけ表示を許可する


使ってみました
さっそく使ってみました。

大変面白いです!

音楽ソフトでシンバルの音を時間軸で表示させて、なんかわかるかなと思ってましたが挫折。
このwavをFFT解析したい!と思っていましたら巡り合いました。

ありがとうございます。
ひろ介 | URL | 2014/08/24/Sun 13:24 [編集]
> ひろ介 さん
 こんばんは。ご訪問ありがとうございます!
 より高速なFFT版(http://lglink.blog81.fc2.com/blog-entry-442.html)もありますので、よろしければご利用くださいませ。
 ありがとうございます。
マツジョン | URL | 2014/08/25/Mon 21:05 [編集]
鉄琴を製作しております
はじめまして 砂川と申します。
現在、個人で鉄琴を製作しておりまして、ネットで検索していたところ
本ブログの“公園の遊具の鉄琴の音階~FFTで周波数解析”を読み
ここまでたどり着きました。

上記の通り鉄琴製作を個人でやっておりまして
金属の幅(w)と厚み(d)を固定した場合には
振動数の二乗=長さ(l)x比例定数
となることまでは、いろいろと検索した結果判ったのですが…

いろんな形の鉄琴を作ってみたく
自由形状の金属と周波数の関係が分ればと思っています。

ひとつひとつ金属を切り出して録音して音を探るのではなく
計算にて算出できないかなと思っており。
もし何かご存じであれば、お教え頂けないでしょうか。

よろしくお願いします。
砂川 善 | URL | 2015/05/28/Thu 11:26 [編集]
> 砂川 善 さん
 ご訪問ありがとうございます。

 自作で鉄琴ですか! おもしろそうですね。当方も「鉄を削る」業界に従事していますので、たいへん興味深いです。

 鉄琴の音の周波数は、「梁(はり)の固有振動」という理論で計算できます。この理論では、周波数f[Hz]は、以下となります。

 f=(λ/2πL)^2 × √{(EI)/(ρA)}

 ここで、記号は以下の通りです。
 ・λ:拘束条件で決まる定数 両端自由ではλ=4.73
 ・L:はりの全長[m]
 ・E:はり材料のヤング率[N/m^2]
 ・ρ:はり材料の密度[kg/m^3]
 ・I:はりの断面二次モーメント[m^4]
 ・A:はりの断面積[m^2]

 長方形断面(幅b×厚さh)の場合、「断面二次モーメント」は、次式で計算できます。
  I=(b×h^3)/12
 また、A=b×hです。以上から、周波数fは、材質が同じであれば、
・長さLの2乗に反比例する。
・厚さhに比例する。
・幅bは関係ない。

 以上の通り、長方形の板で鉄琴を作る場合は、長さと厚さで、周波数を調整することになります。(断面が一様でない場合や、棒が曲がっている場合は、簡単には計算できそうにありません。)

 公園の鉄琴の記事(http://lglink.blog81.fc2.com/blog-entry-669.html)に、具体的な計算結果を追記しました。こちらもご参考になりましたら幸いです。

以上、お役立てくだされば。
マツジョン | URL | 2015/05/29/Fri 20:04 [編集]
こんにちは。
学校の研究でFFTを扱っています。こちらのExcelマクロを拝見して、スペクトルがとても簡単に見ることができ重宝しています。
ありがとうございます。
いずれ研究の発表で、出力したスペクトルの画像を使いたいと思っています。
使用転載等フリーとのことですが、不都合あればメールをいただければと思います。
みか | URL | 2015/10/10/Sat 10:08 [編集]
> みか さん
 こんにちは。使って頂けまして、嬉しいです! どうぞご自由に、お使いください。(私も、仕事で使っています。) 
 この記事のツールはDFTですが、より高速なFFTもありますので、関心がありましたら。こちら→http://lglink.blog81.fc2.com/blog-entry-442.html
マツジョン | URL | 2015/10/12/Mon 19:44 [編集]



トラックバック
TB*URL







Copyright © 今日のおじさん、なに食べました? (仮). all rights reserved.