「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



今日も、ちっとだけArduinoのオシロを進める。
FFTの波形を、ちゃんと入力電圧範囲に合わせて、
dbVに換算してdb表示出来るようにしてみる。



なんと言っても、Arduinoはデバッガが無いので、
結局シリアル出力で変数眺めるくらいしかできない
のが、いつも困るところ。まぁ仕方ない。


んで、組み込んだ計算式では、思い通りの波形が
出てこないので、変数の値とか、計算式の途中の
値とかを表示しまくって、どこでバグってるかを
突き止めて行ってみる。


対数計算の勘違いとかあるのかなぁと思って、
その辺を集中して眺めてたんだけど、バグが
見つからない。想定した値が出ているっぽい。

じゃぁどこだ?と色々追いかけていってみると、
どうやら、求めたdb値から、LCDのY座標に換算
していくところの処理で、変なことやってたみたい。

LCDのY座標フルスクリーン48ドットが80dbに相等
するんだけど、なぜか80dbじゃなく、256で割り算
してたりして、これじゃぁレンジが合わないよなぁ
と。

あれだな。この間とりあえず表示させてみようって
時の名残だな。

んで、ここを直してみると、どうやら想定どおりの
レンジにちゃんと表示されてホッとする。


フルスイングで±10Vレンジ(5.0V/DIV)で、

こんな感じの波形を入力すると、



こんな感じの波形が出てくる。一番上が+20dbVで、
一番下が-60dbVの表示。


フルスイング±10V(=20Vpp)の正弦波を入力すると
仮定すると、
 20 log10(20Vpp ÷ (2sqrt(2)) ) ≒ +17dbV
と出てくるので、大体あってるはず。2sqrt(2)で
割るのは、VppからVrmsへの変換。

横軸は100Hz/Div(フルスクリーンで400Hz)なので、
50Hz付近に+20dbよりちょっと低いピーク。+17db
くらいで出てるので、計算とほぼ一致。倍音成分も、
なんとなくそれなりに出てる。


さらに、

もう少し振幅の小さい波形を入れると、


こんな感じに。うん。イイカンジ。


ちなみに直流(-10Vを想定)を入力してみると、



こんな風になる。サイドローブがちょっと広い
気もするなぁ。電源とかから回り込んでいる50Hz
のノイズでも混ざってるのかなぁ。



ちなみに、電圧、サンプル周波数とも、他のレンジは
あまり細かくチェックしてないけど、多分それなりに
動くはず。



んで、あと残っているのはUI周りだけだとばかり
思ってたんだけど、よく考えたら、トリガ条件の
ところはまだまだ中途半端なコードしか書いてない
んだった。

まぁ、色々やることあるから、ちょっとずつ進めよう。



http://headlines.yahoo.co.jp/hl?a=20140518-00000523-san-bus_all
トヨタのアトキンソンサイクルって、またこの間の
パチモノアトキンソンじゃぁないの?これ。

ちゃんと、ホンダのEXlinkみたいに、廃棄行程と
圧縮行程で、ストロークが変化する仕組みなの?
http://clicccar.com/2011/05/23/26401/





コメント ( 0 )