2019年11月09日

FFTの次の一歩とか・・・・しーーん

今までは教科書通りの話。入力信号としても正弦波とか、矩形波とかも教科書通りの話。そこで違う事をやってみる。
N = 128 で入力信号は

sin(2.0*M_PI*10*n/N)  -----  10Hzである。
image

FFT結果は 10Hzが出ている。sin()なので虚数部で奇関数で、絶対値も表示しているのでこうなる。
image

これに対して10.5Hz を与えてみる。
image

FFTは、あら不思議なデザインが(笑)絶対値は消してみよう
image
 

    なんじゃこりゃーーー!! 

image

FFTは繰り返し波形があるという想定なので繰り返し点で不連続点があると良くない・・・という話があって、窓関数というものが登場するわけだが。

やっとFFTのアルゴリズムの次に進みましたね。次は窓関数についてのお勉強だぉ。
今まではFFTのアルゴリズムの理解が目的だったので与える信号周波数は整数ばかりでしたよってに繰り返しが生ずる場合にも不連続点は生じなかったんだぉ。
いや、これに窓関数をかけるとどうなるってのよーーー・・・・ってあたりからトライだなあ。

拡大してみた 10Hz, 11Hzがピークだが他の成分もある。とっとと学習をすすめたまへ!!
image

  その後、考えて気づいたが窓関数とは関係ない話である。そもそも横軸は整数なのでして。信号と回転子の相関がジャストな値になるのは sin( a)×sin( b)の周期積分平均が値を持つのはね、a = b の時でしたね。ここでは分解能は1Hzなんで、そこに10.5Hzを放り込んで10.5Hz成分が表示されるわけがない。10.5Hzの回転子はないのだし。
で、上のようになったのだが、表示されている値は正しいのだろかね。これはFFTではなくてDFTでゆっくりと計算して確認してみようっと。

posted by toinohni at 10:06| 東京 ☁| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください