2種類の信号時間差(伝播差)を測定する実験機を作成予定なのですが、
その伝播差が数十nsec~10μsec程度のため、どのようにこの伝播差を
計測したらよいか考えています。
当初はPIC、20MHzでTimer割り込みで、随時2種類の信号変化をみようと思
っていたのですが、その場合割り込み間隔が一番小さくても数μsec程度と
なりそうで、μsecオーダー間隔だと、数十nsecオーダーの伝播差は計測で
できそうにないので、別の方法を検討しています。
(クロックの最大はPICデータシート上20MHzと記載があったので、それ以上
クロック周波数をあげるのは難しいそうです。)
nsecオーダーの時間計測などを行う場合、どのような方法をとるのでしょうか?
そのような専用IC、そのような測定の際の回路設計が必要??
ご存じでしたら、教えて頂ければ幸いです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
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以下の信号の場合、・・・なにか必要かも。
この回答への補足
回答ありがとうございます。
直接プログラムとは関係ないですね、すみません。
物理学にもかかわると思いましたので、先ほど物理学のところにも、
質問しましたが、伝播差の計測は超音波流量計の超音波素子の伝播
時間の計測です。超音波素子は1MHz程度です。
伝播差が流速に比例するので、この時間差を計測すると思うのですが、
その時間がnsec~μsecオーダー変化となります。
タイムインターバルカウンタのような機器がちかいと思います。
実際の超音波流量計は、大きくても20×20cm程度の基板がのって
いる程度なので、その基板上で処理していると思うのですが、
どのような回路、プログラムかが非常に気になります。
受信→増幅まではわかるのですが、それ以降が今一、わかっていません。
もしご存じなことありましたら、おしえてください。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Picマイコンについて質問します...
-
USBからの電源供給をコントロー...
-
PLC間の信号のやりとりについて...
-
AVRマイコンの未使用ピンの処理...
-
C++でLEDを点灯させるプログラム
-
VBでUSBポートからの入力を制御...
-
picマイコンより簡単に扱えるマ...
-
ATTINY13のリセット端子は無効...
-
LEDマトリクス32×32の回路...
-
ディスプレイ上で起こる2重表...
-
ゲーミングPCでの質問です ゲー...
-
HDMIとHDの違いはなんですか? ...
-
【EX2510S】HDMIとDisplayPort...
-
RS232C 通信でエラー(受信が正...
-
DVIが映らない
-
[PC] HDMI-DVI(DualLink対応)変...
-
別セグメントのsambaへのアクセス
-
ユニバーサル基板で使える周波...
-
HyperVで仮想マシンがネットワ...
-
WO mic のUSB接続でエラーが出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
Picマイコンについて質問します...
-
USBからの電源供給をコントロー...
-
シーケンスのプログラムについ...
-
EnumとType
-
マイコンボード上のポートと端...
-
VBでUSBポートからの入力を制御...
-
コンピューターでラジコン操作?
-
arduinoでミスト機を自作したい
-
arduinoで複数のサーボを動かし...
-
パラレルポート
-
AVRでサーボモータの制御プログ...
-
Visual BasicでGP-IBの通信を制...
-
picマイコンより簡単に扱えるマ...
-
MS-DOS のソフトをWindows XPで...
-
デジタル時計(アラーム付)を...
-
LEDマトリクス32×32の回路...
-
AVRマイコンの未使用ピンの処理...
-
液晶ディスプレィのバックライ...
-
業務用のマイコンと言語は
おすすめ情報