- 締切済み
nsecオーダーの信号の時間計測(測定)について
2種類の信号時間差(伝播差)を測定する実験機を作成予定なのですが、 その伝播差が数十nsec~10μsec程度のため、どのようにこの伝播差を 計測したらよいか考えています。 当初はPIC、20MHzでTimer割り込みで、随時2種類の信号変化をみようと思 っていたのですが、その場合割り込み間隔が一番小さくても数μsec程度と なりそうで、μsecオーダー間隔だと、数十nsecオーダーの伝播差は計測で できそうにないので、別の方法を検討しています。 (クロックの最大はPICデータシート上20MHzと記載があったので、それ以上 クロック周波数をあげるのは難しいそうです。) nsecオーダーの時間計測などを行う場合、どのような方法をとるのでしょうか? そのような専用IC、そのような測定の際の回路設計が必要?? ご存じでしたら、教えて頂ければ幸いです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ICE_FALCON
- ベストアンサー率56% (63/111)
#1です。 1MHzの単一周波数ですか?、それなら4MHzでサンプリングして直交検波、 またはヒルベルト変換かな。 ドップラーですか・・・、かなり平滑化しないと精度が出ないでしょうね。 S/Nかなり悪くなるけど800kHzでサンプリングして直交検波でもできないことはない。 ちなみにサンプリングは水晶発信器の精度(ppm)が必要です。 マイコンでやる場合1ステップたりとも狂ってはいけません。 OS使うのなら、リアルタイムOSです。 まあ普通はマイコンの前にFPGAでも付けるんだけどね。 あとはアナログのバンドパスフィルタかな・・・ アナログアンプでついでに帯域制限できれば楽だけど。
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
nsec オーダーで測定する「だけ」なら、迷わずオシロスコープとか、ロジックアナライザを買ってきましょう。 (いや、ちゃかしているわけではありません) そもそも、タイマ割り込みで都度信号を見るというのも「遅くても許される場合」の処理です。 マイコンのハードウエア機能で、「インプットキャプチャ」など、信号変化の発生時点でカウント値を保持する機能などありますから(ものにより)そういう機能であれば、検討の余地もあります(かなりむつかしいけど)
- ICE_FALCON
- ベストアンサー率56% (63/111)
あまりプログラミングと関係ない質問ですね・・・。 信号がどんな物かによって当然回路は変わります。 とりあえず信号帯域幅は? 信号の最大周波数は? 帯域幅によって必要な物が大きく異なります。 サンプリングの定理って知っていますか? 例えば1MHzでAD変換する場合は、 500kHz以下の信号しかまともに見れません。 ただし、信号帯域が十分狭い場合には、 空いている帯域に信号を周波数シフトすることで、 500kHz以上の信号も見れます。 このような技術は無線信号処理でよく使われます。 中間周波数 無線とかで検索してみてください。 500kHz以下の信号の場合、雑音が小さければ、この技術は必要はありません。 信号帯域が十分狭い場合、伝播差を見るのは直交検波するのが最も簡単です。 例えば、信号が250MHzのsin波(帯域幅がほぼ0)でこれを1MHzでAD変換した場合には、 それにsin[0,1,0,-1...]とcos[1,0,-1,0,...]を乗算するだけで、信号の位相が見えます。 次に信号の帯域幅が広い場合、 この場合1MHzでAD変換で、500kHz以上の信号を見る方法はありません。 500kHz以下の信号の場合、伝播差を見るのは 片方の信号を目標値として、もう片方の信号に対して適応フィルタを適用するのが最も実用的だと思います。 さらに学習されたフィルタ係数にFFTを適用すれば、位相差が見えます。 FFTは重たいので1秒に1回とかで十分だと思います。 適応フィルタはLMSアルゴリズムが実装が簡単です。 回路は、雑音を考慮しなければ、 250kHz以下の信号の場合、ADが2個付いたマイコンだけでできます。 500kHz以下の信号の場合、・・・なにか必要かも。
補足
回答ありがとうございます。 直接プログラムとは関係ないですね、すみません。 物理学にもかかわると思いましたので、先ほど物理学のところにも、 質問しましたが、伝播差の計測は超音波流量計の超音波素子の伝播 時間の計測です。超音波素子は1MHz程度です。 伝播差が流速に比例するので、この時間差を計測すると思うのですが、 その時間がnsec~μsecオーダー変化となります。 タイムインターバルカウンタのような機器がちかいと思います。 実際の超音波流量計は、大きくても20×20cm程度の基板がのって いる程度なので、その基板上で処理していると思うのですが、 どのような回路、プログラムかが非常に気になります。 受信→増幅まではわかるのですが、それ以降が今一、わかっていません。 もしご存じなことありましたら、おしえてください。 よろしくお願いいたします。