• 締切済み

nsecオーダーの信号の時間計測(測定)について

2種類の信号時間差(伝播差)を測定する実験機を作成予定なのですが、 その伝播差が数十nsec~10μsec程度のため、どのようにこの伝播差を 計測したらよいか考えています。 当初はPIC、20MHzでTimer割り込みで、随時2種類の信号変化をみようと思 っていたのですが、その場合割り込み間隔が一番小さくても数μsec程度と なりそうで、μsecオーダー間隔だと、数十nsecオーダーの伝播差は計測で できそうにないので、別の方法を検討しています。 (クロックの最大はPICデータシート上20MHzと記載があったので、それ以上  クロック周波数をあげるのは難しいそうです。) nsecオーダーの時間計測などを行う場合、どのような方法をとるのでしょうか? そのような専用IC、そのような測定の際の回路設計が必要?? ご存じでしたら、教えて頂ければ幸いです。

みんなの回答

回答No.3

#1です。 1MHzの単一周波数ですか?、それなら4MHzでサンプリングして直交検波、 またはヒルベルト変換かな。 ドップラーですか・・・、かなり平滑化しないと精度が出ないでしょうね。 S/Nかなり悪くなるけど800kHzでサンプリングして直交検波でもできないことはない。 ちなみにサンプリングは水晶発信器の精度(ppm)が必要です。 マイコンでやる場合1ステップたりとも狂ってはいけません。 OS使うのなら、リアルタイムOSです。 まあ普通はマイコンの前にFPGAでも付けるんだけどね。 あとはアナログのバンドパスフィルタかな・・・ アナログアンプでついでに帯域制限できれば楽だけど。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

nsec オーダーで測定する「だけ」なら、迷わずオシロスコープとか、ロジックアナライザを買ってきましょう。 (いや、ちゃかしているわけではありません) そもそも、タイマ割り込みで都度信号を見るというのも「遅くても許される場合」の処理です。 マイコンのハードウエア機能で、「インプットキャプチャ」など、信号変化の発生時点でカウント値を保持する機能などありますから(ものにより)そういう機能であれば、検討の余地もあります(かなりむつかしいけど)

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

あまりプログラミングと関係ない質問ですね・・・。 信号がどんな物かによって当然回路は変わります。 とりあえず信号帯域幅は? 信号の最大周波数は? 帯域幅によって必要な物が大きく異なります。 サンプリングの定理って知っていますか? 例えば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以下の信号の場合、・・・なにか必要かも。

dikdik11
質問者

補足

回答ありがとうございます。 直接プログラムとは関係ないですね、すみません。 物理学にもかかわると思いましたので、先ほど物理学のところにも、 質問しましたが、伝播差の計測は超音波流量計の超音波素子の伝播 時間の計測です。超音波素子は1MHz程度です。 伝播差が流速に比例するので、この時間差を計測すると思うのですが、 その時間がnsec~μsecオーダー変化となります。 タイムインターバルカウンタのような機器がちかいと思います。 実際の超音波流量計は、大きくても20×20cm程度の基板がのって いる程度なので、その基板上で処理していると思うのですが、 どのような回路、プログラムかが非常に気になります。 受信→増幅まではわかるのですが、それ以降が今一、わかっていません。 もしご存じなことありましたら、おしえてください。 よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PICマイコンを使った分解能1μsの時間差測定とPCへのデータ取込み方

    PICマイコンを使った分解能1μsの時間差測定とPCへのデータ取込み方法について PICマイコンを使って、レベル0-5Vの2つの信号A、Bの立ち上がり時間の差を、分解能1μs・最大時間100ms程度で測定し、USBコネクタでPCに時間差データを転送する方法を教えてください。 信号A、B は通常はLレベルで、Hレベルのパルス幅が10μsから1ms程度の単発パルスです。信号A、B のパルス幅は同じですが、Bのほうが数μs から数十msの遅延があります。 マイコンのクロックに10MHzとか20MHzなどの切りのいい周波数を使い、PICマイコンの割り込みを使う方法があるようなのですが、適切なPICマイコンの型番とプログラミング法、PCとインターフェースの方法などが書かれたサイトなど紹介して頂けると助かります。

  • PICマイコンを使った分解能1μsの時間差測定とPCへのデータ取込み方

    PICマイコンを使った分解能1μsの時間差測定とPCへのデータ取込み方法について PICマイコンを使って、レベル0-5Vの2つの信号A、Bの立ち上がり時間の差を、分解能1μs・最大時間100ms程度で測定し、USBコネクタでPCに時間差データを転送する方法を教えてください。 信号A、B は通常はLレベルで、Hレベルのパルス幅が10μsから1ms程度の単発パルスです。信号A、B のパルス幅は同じですが、Bのほうが数μs から数10msの遅延があります。 マイコンのクロックに10MHzとか20MHzなどの切りのいい周波数を使い、PICマイコンの割り込みを使う方法があるようなのですが、適切なPICマイコンの型番とプログラミング法、PCとインターフェースの方法などが書かれたサイトなど紹介して頂けると助かります。

  • 電極を用いた高周波信号の計測

    例えば220MHzの周波数をもっているアンテナからの信号を電極を用いて検知する仕方はあるでしょうか?おそらく駄目だと思うのですが。 普通に考えると、計測器のサンプリング周波数が440MHz以上必要なのでしょうが現在、1Mサンプリングの計測器しかありません。

  • ATTINY2313でラジコンパルスの測定

    AVRのAttiny2313を使ってヘリラジコンの受信機から出ているパルス幅を測定したいのですが、具体的にどのように行うのかがわかりません。 割り込みを使って処理するのでしょうか。また、具体的なプログラムはどのようになるのでしょうか。 Attiny2313は内蔵クロック8MHzで動作しています。また、入力するパルス信号は1信号です。

  • PICで周波数測定

    PIC(PIC18F47j53)のCCP(4~7)を使って、80KHzの周波数4Chを10msec毎に計測して、USARTで送信しようとしています。 CCPのタイマーはタイマ1を使い、内部のシステムクロック(12MHz)でカウントさせようとしています。 このような処理は可能でしょうか?

  • 超音波パルス法を使う際の時間計測について

    実験で以下のような説明文がありました。 「送信パルスと受信された信号間の時間は10µsのオーダーであり、これをnsの桁まで測るのに工夫をしてある。1kHzの繰り返しで送信パルスが出され、1秒間、すなわち1000回分の時間の和を表示する。時間を測る基準パルスは10MHzであり、送信パルスを送るタイミングを1000回でちょうど0.1µsずらしてある。このようにして、0.1µsの基準クロックを用いながら±1nsで時間間隔を計測表示している。」 基準パルスを用いて送信パルスをずらすことによって、基準パルスの周期よりも短い時間間隔を計測しているというのは分かるのですが、具体的にどうして送信パルスをずらすとナノ秒までの計測が出来るのか、その仕組みが良く分かりません。 かなり簡単な事なのかもしれませんが、どうしても理解不能です。もう少し分かりやすく説明していただける方、お待ちしています。

  • マイコンのクロックを測定する回路について

    マイコンのクロックを16MHzの水晶振動子で与えています。 この周波数を測定する回路を作るのですが、水晶の両端から信号を取り出そうとすると、普通のバッファではクロックに影響を与えてしまい、マイコンが誤動作することがあると聞きました。 マイコンに影響を与えないで、クロック周波数を見るのにはどんなインタフェースでクロック端子に当たればいいのでしょうか?

  • PICのUSBホストコントローラーについて

    初心者です。 PIC24FJ64GB002のUSBホストコントローラーを使用し、USB機器との通信を行っています。 USB機器との通信制御を行っていない時に、PICの汎用ポートからシリアル通信の信号(パルス幅=10μsec、50ビット)を出力しているのですが、不特定ヶ所でパルス幅が50μsec程延びます。 USB機器との通信制御を行っていない時に、通信端子に『通信時間=50μsec、1msec間隔 』の信号が出力されています。 ●この通信制御が汎用ポートの処理の邪魔をしている(割込みが入っている)のでしょうか? ●割込みが原因の場合、割込みを避けて汎用ポートの出力を行いたいのですが、どのようにすればよろしいでしょうか? ご教示下さい。 よろしくお願い致します。

  • 計測上の問題

    あるシステムに入力としてある周波数の周期信号(例えば正弦波)をいれます。すると出力には2つの信号(同じ周期)が出力されます。その2つの信号の位相差を計測したいのですけど、これはオシロスコープのメモリを読めば簡単です。 ここで周波数を変えて違った周波数での位相差も計りたいとします。 当然、時間をおいて計測すれば、周波数f_0に対して位相差p_0が、周波数f_1に対して位相差p_1がオシロスコープのメモリを読めば求められます。 しかしこの違った周波数を同時に入力としてかけたい。2つの周波数をかける際の計測的なタイムラグをなくしたい。という欲求がレポート課題として出されました。困ったものです。 そこで、方形波信号はフーリエ級数展開をすれば複数の周波数から構成されていることを習ったので、これをかければよいことはわかりました。 しかし方形波を入力としたときの出力である2つの信号の位相差、これは1つしか読めません。二種以上の周波数についてそれぞれの位相差を求める方法はないものでしょうか? わかりそうでわかりません。どなたかよいアイデアがないでしょうか?

  • 二つの信号の周波数差を測定したい.

    二つの信号の周波数差を測定したいのですが,その方法について教えてください.片方の信号の周波数は5500Hzで,もう一方は5510Hzという形になっており,1Hzレベルの差を取り出すための方法を探しています. 調べてみたところ,位相比較器というものがあったのですが,これを用いれば可能なのでしょうか?よろしくお願いします.