解析用sine波の生成

では、scilabでのFFTの実行方法を示します。

■FFT解析とは
FFTは
”対象の信号がどのような周波数成分で構成されているか”
を調べることができる解析手法です。

例えば、信号にノイズがあってなんかうまくいかね、うまくいかなくね?
というときにFFT解析を行うと
60Hz近辺のレベルが若干高くてああハムノイズで劣化してるのね,とか
時間軸上での波形を見ただけでは分かり難いことが
容易に理解できたりします。ステキですね。

■FFTの注意点
FFTはよく使用される解析手法ですが
得たい結果にあわせて解析設定を指定しないと
妥当な解析結果を得ることができません。

また、正しい設定で得たFFT結果も
FFTの特性を踏まえた上で解釈しないと
間違った判断をしてしまう可能性もあります。

つまりFFT結果はグラフ表示できて一見理解し易い
がゆえに、間違いに気づきにくいんですね、
気をつけろ、俺!!ということです。



■解析用のsine波の生成
あらかじめ妥当なsine波を生成し、そのFFT解析を行うことで
scilabのFFT実行の説明を行います。

  • 測定するsine波の設定
サンプリング周波数 : 10Hz
sine波周波数 : 1250Hz
sine波波高値 : -6[dBFS]
サンプル数 : 16個

sine波周波数は、FFTの周波数分解能に合わせてこの値を指定しています。
また、サンプル数16個にも理由があり、
FFTポイント数は2のべき乗としなさいってみんなが言ってるからじゃーウラー。
というわけで2の4乗で16としています。
ちなみに、べき乗の数を多くするほど周波数解析精度があがります。

■測定sineの生成
scilabに以下のコマンドを打ち込みsine波を生成します。

-->fs = 10000
 fs  =

    10000.

-->f = 1250
 f  =

    1250.

-->n = 0:1:15
 n  =

    0.    1.    2.    3.    4.    5.    
6.    7.    8.    9.    10.    11.    
12.    13.    14.    15.

-->sine = 0.5 * sin(2*%pi*(f/fs)*n)
 sine  =


         column 1 to 9

    0.    0.3535534    0.5    0.3535534    
6.123D-17  - 0.3535534  - 0.5  - 0.3535534  - 1.225D-16

         column 10 to 16

    0.3535534    0.5    0.3535534    
1.837D-16  - 0.3535534  - 0.5  - 0.3535534

この生成したsine波をグラフで表すと以下の様になります。
波形がカクカクしてるのは、サンプリング周波数に対して
周波数が高いため、分解能が低くなってるためで、仕様です。

-->plot(sine) 

imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (sine_wave_for_fft.png)
最終更新:2009年07月26日 18:32
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル