お試し 超音波信号解析

横取りアンプのバージョンアップが完了したので、データ解析の方を実験してみました。

実験というよりはプログラミングの研究といった方が妥当かも知れないですね。今回からはPythonでのプログラミングに重点を置く事によって、解析研究のスピードアップを図ります。何と言っても、現場が無い日の日中はだいたいは測定機関係のハードウェアの部品切削・加工を行っていますので、実際にプログラミング出来るのは夜中ばかりですので、使える時間が沢山あるといはいえませんので、なるべく効率的にコードの書けるPythonとかに頼らなければならないというのが実状です。

実際にプログラムを書くと今回のフーリエ解析のプログラムで正味150行くらいで書けましたので、そこそこ強力そうですね。でも自分でコードを読み直すと「これは C言語的なフローかな?」ってところがあったりしますので、まだまだ学習も必要です。Pythonでは実行速度が心配になったりしますので、なるべくPython的(?)なコーディングを心掛けるつもりですが、単なる「つもり」で終わっているかも知れないです。でもやはり最近のパソコンは速いのか、Pythonの性能が良いのか、今回の様なDFT主体のループ解析でも遅さは全然感じられなかったです。

今回の解析は実験というか、次に発展する解析の前段階の第一段目の解析を試したものです。単純に超音波信号がどの様な周波数スペクトラムを持つであろうかについて、そのなるべく精密なデータを算出する事を主眼に置いています。幸いオシロスコープは1GHzサンプルですので、割合と高周波まで解析が安定する事が期待できます。
実験に使用した探触子は20MHzで、それに対して5MHz~20MHzの範囲でDFTをスキャンさせてみました。こうした解析では専らFFTが使われたりしますが、私はFFTでは精密な解析に適していないと考えていますので、DFTの方を使うケースが多いです。

結果として得られたスペクトラムは、ちょっと想像していなかったパターンですので、「本当かな?」と自分の解析を疑っています。次回はPythonに入っているFFTでも試してみて検証したいと思っています(numpyにFFTが入っているのは驚き!)。

ついでなので、DFT結果をCSVで出力してエクセルでグラフにしてみました(エクセルのグラフはいつもながら見難い!)。

今見直すと、周波数は40MHzくらいまで延ばしてみても良かったかも知れないですね。

by Kisaki.