無料ブログはココログ

« 7. 簡単理解 FFTテスト信号の作成 | トップページ | ラジオ・REDSUN・RP-2100のブザーON/OFF改造と評価(その1) »

2013年3月10日 (日)

8. 簡単理解FFT・信号解析と表示例( これで終り)

20130310__2 

この記事はすろーぐっちのFFT学習メモです。

とりあえずの仕上げとして、今まで学習してきたプログラムをまとめてメニュー選択式の学習用C言語FFTプログラムを作成します。夫々のプログラムは、機能別に関数化してあるので組み合わせれば、いいだけです。C初心者のすろーぐっちには、結構長いプログラムがよくできたと自分ながら感心しています。(自画自賛!!!)

このFFTプログラムの流れは

    FFTテスト信号を選択する。→ 選択されたテスト信号をグラフ表示する。

    ウインドウ関数を選択する。→ ウィンドウを掛けたテスト信号をグラフ表示す。

    FFT演算をする。→ スペクトルのグラフ表示をする。

以上の①~③を繰り返します。

 

このプログラムで、テスト信号4種類(①正弦波、②矩形波、③三角波、④ノコギリ波)、ウィンドウ4種類(①ハニング、②ハミング、③矩形、④フラットトップ)16通りの組み合わせによるFFTができます。図は、実行例画面(メニュ-、テスト信号、窓関数処理後の波形、スペクトル)です。

FFT学習が主目的なので、処理データの受け渡しはすべてファイルを使用し、ファイルのデータをグラフ表示しています。プログラム例では、データ数n=256、周波数f=8としています。

    テスト信号、ウィンドウの種類でスペクトルがどのように変化するかがわかります。

テスト信号の周波数fを、整数以外にしたり、n/f8の倍数以か外にすると側帯波、高調波の出方が変化するのも観察できます。(前回記事参照・・・7.簡単理解 FFTテスト信号の作成)

    )

それでは、以下に「簡単理解FFT・信号解析と表示例」テキストファイルを添付します。

実行するときには、このファイルをコピーして、コンパイル後に実行してみてください。

(感想)

    信号数nを入力し、calloc命令で動的メモリを確保するプログラムにも挑戦しました。信号数n2のべき乗を指定しますが、n=8の時だけ不思議なことにプログラムストップを起こします。それ以外のn1024以下の時はうまく動作しました。コンパイラのバグと推定していますが。原因不明です。

②難しいと思っていたFFTのアルゴリズムが良書に出会ったおかげで、理解することができました。

FFTの書籍はすろーぐっちには、理解不能のものが多いですが、お勧めの良書は、下記3点です。重ねて感謝いたします。

1)     やり直しのための信号数学 三谷正昭 CQ出版社

2)     高速フーリエ変換とその応用 佐川雅彦、貴家仁志 昭晃堂

3)     デジタルフーリエ変換 (ビギナーズ) 中村尚五 東京電機大学出版局

簡単理解FFTの記述は全部で8つあります。

1. 簡単理解16点FFT (周波数間引き法)

2.      簡単理解 時間間引き法

3.      ビギナーズ・デジタルフーリエ変換/8FFT展開式 

4.      ビギナーズ・デジタルフーリエ変換/C言語FFT

5.      FFTデータのリードライト

6.      簡単理解FFTgnuplotでグラフ表示

7.      簡単理解FFT・テスト信号の作成

8.      簡単理解FFT・信号解析と表示例

最後に、FFTC言語ともに入門初心者のすろーぐっちです。本ブログはすろーぐっちのFFT学習メモを書いたものです。間違いだらけ、稚拙だと思いますが学習の仕方が分かるメリットに免じてご容赦。

これでお終い。

「20130310_test_fFFT_menu.rtf」をダウンロード

« 7. 簡単理解 FFTテスト信号の作成 | トップページ | ラジオ・REDSUN・RP-2100のブザーON/OFF改造と評価(その1) »

電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1269828/50686165

この記事へのトラックバック一覧です: 8. 簡単理解FFT・信号解析と表示例( これで終り):

« 7. 簡単理解 FFTテスト信号の作成 | トップページ | ラジオ・REDSUN・RP-2100のブザーON/OFF改造と評価(その1) »