昨日の実験、出力値はやっぱ計算どおりだったみたい。
表計算ソフトで同じようにハミング窓掛けた場合と掛けない
場合で処理してみると再現された。
考えてみるとアタリマエで…
ハミング窓のグラフ。
この色が付いてるところが元の波形に相当。それを水色
の部分だけに圧縮しているし、さらに周波数分解能が
矩形窓(窓関数掛けない状態)よりも悪化して広がる
わけだからその分…およそ半分のエネルギーが削られて
いるって訳。
窓を掛ける/掛けないそれぞれの出力値(絶対値)も
表計算の結果と符合するのも見れた。
というわけで、シリアル出力に出てくる値が想像してた
よりも小さかった理由はわかったものの、オイラ的には
もう少し絶対値が大きく出力されるといいんだけどな…。
ノイズと信号の比率(s/n比)がねぇ…
実際にシリアル経由で吐き出されたダンプを表計算
ソフト使ってビジュアル化してみた。
ADCのサンプリング周波数2000sps(眺められる周波数は
直流~1000hz)で100Hzの正弦波を入力してみたのがこれ。
(複数波形の重ね合わせの図)
分解能が31.25Hzで一番左が直流だから、左から4番目に
ピークが来ているってことは31.25×3=93.75hz付近。
入力は100Hzだからバッチリってこと。ちなみにサイド
ローブが広いのはハミング窓掛けてるからで、仕方ない。
こんな風に、ノイズ成分は1~2程度のっちゃうんだな。
計算誤差なのか、はたまたアナログノイズなのか…
ちなみに矩形波を入力するとこんな感じ。
ちゃんと奇数倍音が拾えてて教科書どおり。
64点FFTはそれなりの結果になったので、今度は128点
も試してみることに。正弦波。
こんな風に周波数分解能が15.625Hzと2倍細かく分解
できるわけだけど、これを8chのADC掛けながら同時に
8ch並列でガンガンFFT掛けたらレスポンス速度が気に
なるところ。128点は64点の2倍以上の時間を要する
からなぁ…
まずは64点でもそれなりにピーク周波数が取り出せる
ことはわかったから、64点で実機を作り上げてみて、
安定性とかモロモロ弄りながら評価するかな。駄目なら
128点にするってことで進めてみよう。
|