前回の記事にこのブログ開設以来初めてトラックバックをいただきました。ありがとうございます。

直接反応をいただけるとブログを書くモチベーションが上がりますね。

さて、前回前々回 と二回ほど脱線 (逃避) しておりましたが、今回は久しぶりに FlexPro の技術的なお話しをしたいと思います。

最新の計測機器は非常によく出来ていて、複数台の計測器をデイジーチェーン接続して計測をする場合でもよーいドン!で計測を厳密に同時に開始、終了することができるものがあります。ですので、何台もの計測器をつなげて測定した場合でも、測定したデータの時間軸がずれることがなく、それゆえ一枚のグラフ (ダイアグラム) 上にそれら測定されたデータを重ね描きしても時間軸がずれて表示されることはありません。非常に多くの計測点 (チャンネル数) で測定を行う方々にとって、測定機器同士の通信に関する技術や規格の進歩による大きな恩恵の一つであるでしょう。

そのような便利な機能を持った計測環境をお持ちでない方のために、FlexPro を使うことでタイミングがずれてしまった測定データをぴったり重ね描きする方法を今回はご紹介したいと思います。

いくつかの方法がありますが、思いつく順番でご紹介いたします。

  • マウスを使って一方のカーブを移動する

最新のバージョン 8 ではカーブを左右、上下方向に移動する機能が加わっています。

Ctrl キーを押しながらマウスをカーソルの水平線または垂直線あるいは交差する点に移動します。マウスカーソルのとなりにサイン波のようなものが表示されたらカーブを移動できます。マウスの左ボタンをクリックしたままカーブを上下左右目的の方向にドラッグします。文字で見るよりも実際の操作画面をご覧いただいた方がその簡単さを実感いただけると思います。あまりお時間は取らせませんのでちょっと見てください。

デスクトップ PC などで FlexPro を使用されていて、数字パッドが入力装置として備わっている場合は数字パッドで移動させることも可能です。まず移動するカーブにカーソルをセットし、数字パッドの 2, 4, 6, 8 キーを使って下、左、右、上にカーブを移動させます。

 

  • X 軸を追加する

FlexPro では簡単な操作で X 軸や Y 軸を追加することができます。この機能を利用して X 軸を追加し、二つ目のシグナルに追加した X 軸を割り当てることで重ね描きすることも可能です。

まず一つ目のシグナルでダイアグラムを作成します。

カーソルを非アクティブにし、現在の X 軸の軸ラベルの数字をすぐ下、あるいはダイアグラムの上にドラッグアンドドロップします。これで新しい X 軸が追加されます。

オブジェクトリストから二つ目のシグナルのオブジェクトを選択し、上で作成した追加の X 軸の軸ラベルの数字上にドラッグアンドドロップします。

これで時間がずれてしまった二つのシグナルを重ねて表示することができます。

こちらの方法も実際の操作を見ていただくとその簡単さが実感できると思います。こちらも最初の方法と同様、実際の操作画面をご覧になりその簡単さを実感してください。

    簡単でしょ。

     

  • 時間オフセットを補正する

FPScript 関数を使用してオフセットを補正したシグナルを作成することも可能です。

例えば LevelCrossings 関数を使用してゼロクロッシングを算出します。それぞれのゼロクロッシングの差分が X オフセットであると推定できる場合には以下のようなシンプルなスクリプトでオフセット補正したシグナルを生成することができます。ここで SigA は一つ目のシグナルの名前、SigB が二つ目のシグナルの名前です。

Dim DifX
DifX = LevelCrossings(sigA, 0, 0.5, EVENT_POSITIVE, EVENT_EXTRACT).x[0] - LevelCrossings(sigB, 0, 0.5, EVENT_POSITIVE, EVENT_EXTRACT).x[0]
Signal(SigB.Y, SigB.X + DifX)

最後の行は XScale 関数を使用して以下のように書くこともできます。

XScale(SigB, DifX)

  • 一方の x データをもう一方の x データとして使用する

二つのシグナルのサンプリングレートが全く同じで、データ長 (データポイント数) も全く同じであれば、二つ目のシグナルに一つ目のシグナルの X 値を使用するシグナルを生成することができます。

これは以下のような非常にシンプルなスクリプトで実現できます。

Signal(SigB.Y, SigA.X)

ご紹介したいずれの方法もマウス操作あるいは一行から三行程度の簡単なスクリプトを書くだけで実現できてしまいます。FlexPro は時系列データを処理することを目的に設計、構築されたツールであるため、非常に長い (データ点数が多い) データであっても簡単に処理することができます。

FlexPro をすでにお持ちの方も、そうでない方も、こんなことはできないか、こういう事はできるの?、などデータ処理でお困りのことがあればコメントで結構ですのでお尋ねください。

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/409
内容に対しての関連性がみられないものは削除する場合があります

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報