NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

プロット点の平均化

解決済み
解決策を見る

添付画像のように処理できるコードを描きたいです。

 

添付画像のBeforeでは、各箇所でプロット点数は2点もしくは3点あります。

その近しい箇所だけで平均化をしたAfterを作成したいと考えております。

 

プロットからプロットまでの間隔はバラバラであり、プロット点数も2もしくは3点であり規則性はありません。

 

ご教授お願いします。

すべてをダウンロード
0 件の賞賛
メッセージ1/7
1,986件の閲覧回数
解決策
トピック作成者sakana55が受理

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

前回ゼロ交差のアルゴリズムについてご質問いただきましたが、今回もほとんど同じ処理で平均化が行えます。

添付の方法はX座標データとY軸データを分けて、X座標値が近似値であるかを判断してグループ分けできれば、後は前回と同じように平均処理しています。

 

アルゴリズムの作成ですので、いろいろな方法があると思いますので、考え方の1つとして参照いただけると幸いです。

0 件の賞賛
メッセージ2/7
1,959件の閲覧回数

NI 上野様

 

返信ありがとうございます。

平均化の件、問題解決致しました。

 

こちらを応用して、添付画像の黄色部分(上部)を取り出す、

または赤色部分(下部)を取り出すにはどのようにすればよろしいでしょうか?

0 件の賞賛
メッセージ3/7
1,942件の閲覧回数

一番簡単な方法は、比較関数でしきい値以上のデータを集める方法だと思います。処理の流れは以下のとおりです。

 

  1. 結果の2次元配列から指標配列関数でY軸データだけを抽出します。
  2. ForループでY軸データ配列から1データずつ比較関数でしきい値と比較します。
    この例では235と定数にしていますが、制御器にすればフロントパネルから設定できます。
  3. しきい値より大きい場合はTrueを返すので、Forループから値を出力するループトンネルで右クリックして、トンネルモードを条件に変更して下記のように配線します。
  4. これで、比較関数の条件がTrueのときだけデータが溜まります。

 

Threshold.png

0 件の賞賛
メッセージ4/7
1,937件の閲覧回数

NI 上野様

 

早速ありがとうございます。

閾値設定のアルゴリズムは理解したのですが、

場合によっては、プロットが右肩上がりになっていく場合があり、

閾値で検出できない場合がございます。

 

その他の手段として、”1行ずつ間引く”以外で何かアドバイスがあれば、ご教授願います。

0 件の賞賛
メッセージ5/7
1,935件の閲覧回数
解決策
トピック作成者sakana55が受理

右肩上がり、または右肩下がりの場合は、固定値のしきい値はダメでしたね。それは想定していませんでした。

 

自分なら添付ファイルのようにカーブフィットして得られた曲線データをしきい値して試すと思います。

0 件の賞賛
メッセージ6/7
1,932件の閲覧回数

NI 上野様

 

カーブフィッテイングで解決しました。

本件、ありがとうございました。

0 件の賞賛
メッセージ7/7
1,924件の閲覧回数