高速フーリエ変換体感ソフト nfft07.exe

ダウンロードページへ

あらまし

 このソフトを使うと、音楽CDのデータやパソコンのマイクから入力された音声信号を、 リアルタイムにスペクトル解析してくれます。つまり、簡単に言うと音や声がリアルタイムに映像化できるのです。合唱や声楽、歌謡曲などをフーリエ変換にかけてみると、いろいろなことがわかってきます。あと一歩で楽譜の自動生成もできそうな感じです。
 このソフトはPentium以降のCPUで動作しますが、クロックは200MHz程度を推奨します。

対応機種

Windowsが動くPentium以上のCPUを乗せたパソコン。クロックは200MHz以上を推奨

応用例

 将来的にはこんなことをやりたいな、と思っています。

使い方

 Windowsから起動します。起動後の画面のイメージは下の図のようになっています。この画面では、私の「あ」の声を解析しています。高調波がいっぱい見えていますね。

画面

 使い方を簡単に説明します。

入力ソース

 これはフーリエ変換したい波形のソースを選択します。NI-DAQというのはNational Instutruments社のMulti Function I/Oボードを使ってリアルタイムにサンプリングし、フーリエ変換する機能です。これが本来の目的なのですがまだ中途半波です。
 Wave audio inputというのはWindowsの録音入力に入る音源をサンプリングしてフーリエ変換します。たとえば、CDを再生してそれをリアルタイムにフーリエ変換したり、パソコンにつながるAudioINやマイクの音を拾ってサンプリングするときに使います。
 テストパターンというのはフーリエ変換の例題で出てくるような、サイン波やインパルス列や矩形波などをコンピューターで作り出しフーリエ変換のシミュレーションをします。とても美しい映像が動きます。

詳細設定

 NI-DAQを選択しているときにはアナログ入力のチャンネルを指定します。wave audio inを選択しているときには標準のサンプリングレートを選択します。テストパターンを選択しているときには変換したい波形を選択します。

サンプリング周波数

 NI-DAQやwave audio inを選択しているときにはそのサンプリング周波数を設定できます。Windowsに音を入力するサウンドカードでは標準では44.1kHz、22kHz、11kHzを設定するようになっていますが、任意の周波数に設定できるサウンドカードもあります。ちなみに私のノートパソコンでは100kHzサンプリングも可能でした。無理な周波数を入れるとエラーメッセージがでます。また、キロをkと書いてはいけません。必ずHz単位で入れてください。
 テストパターンを選択しているときは表示波形には変化はありませんが、周波数軸の目盛が変わります。

ワンショット

 一度だけフーリエ変換して表示します。瞬間的な絵を見たいときに使います。連続フーリエ変換時に使用すると、次のフーリエ変換が終わり次第連続フーリエ変換を終わります。

連続FFT

 連続してフーリエ変換を行います。画面の更新の速さはCPUスピードに依存します。300MHzクラスのCPUなら問題なく動くでしょう。100MHz程度のCPUでもカクカクしますが動きます。

表示範囲

 4096ポイントのFFTなので、2048ポイントの周波数データーを表示させたいのですが、画面の都合上256ポイントしか表示できません。そこでどの範囲を表示するかを設定します。スクロールバーとあわせてお使いください。

dB表示

 表示をデシベル表示からリニア表示に切り替えます。スペクトルを保存するときの形式にもリニアで保存するか、デシベルで保存するかが効いてきます。

窓関数

 時系列データーに簡単な窓関数を掛けます。サインの半周期を掛けるだけの単純な窓ですが、効果はあります。

ファイルメニュー

 スペクトルと生データをテキスト形式で保存できます。GNUPLOTなどで読むことを考えて作っているので、タブで区切ったテキスト形式です。第一カラムが周波数で、第二カラムがスペクトルのパワーです。スペクトルデータの拡張子は.spcで波形データの拡張子は.rawです。

QuickSave

 QuickSaveというのは私が考え出した造語です。Saveのダイアログなどを出さずに、ファイル名を入力するだけでスペクトルと波形がセーブされます。セーブされるファイル名は、入力したファイル名に数字(通し番号)をつけ加えたものです。拡張子は普通のファイルセーブと同じです。QuickSaveをするとステータスバーに名前が表示されます。
 たとえば、デフォルトのファイル名はFilenameなので、QuickSaveの場所でリターンキーを押すと、Filename1.rawFilename1.spcが自動的にセーブされます。再びリターンキーを押すとFilename2.rawFilename2.spcがセーブされます。リターンキーを押すだけで次々とセーブできるので、連続してセーブしたいときに便利です。
 デフォルトのディレクトリはNFFT.EXEをおいてあるディレクトリです。

計算ゲイン

 とりこんだデータにいくらかの倍率を掛けます。

ヘルプ

 アバウトがでます。

更新時間

 1ブロック分のデーターを読み込み、FFTをし、生波形とスペクトルを画面に表示するのに要した時間です。1画面分のスループットです。私のノートパソコン(Let's note M1V,CPU=Cerelon 300MHz)では平均で30mSecくらいなので、1秒間に画面を30回くらい更新していることになります。

フーリエ変換の方法

 通常の複素FFTです。ポイント数は4096ポイント。データーの精度はfloat型の浮動小数点数です。このためPentium以降のCPUで実行することを前提としています。486の皆さん申し訳ありません。(_o_)
 なお、パワースペクトルが1になるところを0dBと決めています。
 Windowsなどのサウンドカードなどから得たデーターをフーリエ変換する場合、適当な縮尺を掛けることで、電圧の振幅に換算できます。

Ver0.6.0からの変更点

  • FFTを浮動小数点演算で行うようにした

    Ver0.5.0からの変更点

    このソフトについて

     いずれピーク検出や楽譜変換などのバージョンアップしたいとおもいます。バグや致命的な不具合、機能追加の要望、励ましのお便りや苦情がありましたら、メールをください。
    高速フーリエ変換体感ソフト
    iconダウンロードページへ



    ホームページに戻る
    平成12年5月21日 なひたふ記す

    御意見、御感想は
    nahitafu@nifty.ne.jp

    Copyright(c)1998-2000 Nahitafu All rights reserved