reduce_ex


目次

メニュー情報

ワークシート:データ削減:等間隔X
解析:データ操作:データ削減:等間隔X

概要

Xで再サンプリングを使用してXYデータを削減します

追加の情報

必要なOriginのバージョン: 8.1 SR0以降


コマンドラインでの使用法

reduce_ex subgroup:=inter bins:=5 method:=yfirstxfirst

Xファンクションの実行オプション

スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。

変数

表示
変数
I/O

データ型
デフォルト
説明
入力 iy

入力

XYRange

<active>
入力データ範囲を指定します。
サブグループ subgroup

入力

int

0
元データをサブグループに分ける方法を指定します。分割後、データポイントの各グループは単一データポイントに統合されます。

オプションリスト:

  • ratio: N点毎
    入力範囲のN個のデータポイントごとに一つのデータポイントに統合します。rfactor 変数でN数を指定できます。
  • inter:サンプリング間隔による
    サンプリング間隔に従って、データポイントを統合します。dx 変数でサンプリング間隔を指定することができます。
  • bins:インターバル数による
    インターバル数に従って、データポイントを統合します。bins 変数でインターバル数を指定することができます。
  • Freq: 周波数による
    周波数に従って、データポイントを統合します。rfre 変数で度数を指定できます。
サンプリング間隔 dx

入力

double

0.25
これは、サブグループサンプリング間隔によるが選択されているときのみ利用できます。サンプリング間隔の値を指定します。
間隔の数 bins

入力

int

10
これは、サブグループインターバル数によるが選択されているときのみ利用できます。間隔(インターバル)の数を指定します。
再サンプリングファクター rfactor

入力

int

4
これは、サブグループN点毎が選択されているときのみ利用できます。Nの値を指定します。
再サンプリング周波数 rfre

入力

double

8
これは、サブグループ周波数によるが選択されているときのみ利用できます。再サンプリング周波数を指定します。
開始X start

入力

double

<自動>
これは、サブグループサンプリング間隔によるインターバル数による周波数によるが選択されているときのみ利用できます。グループ化を開始するX値を指定します。
終了X end

入力

double

<自動>
これは、サブグループサンプリング間隔によるインターバル数による周波数によるが選択されているときのみ利用できます。グループ化を終了するX値を指定します。
サンプリング手法 method

入力

int

1
各グループで統合されたデータポイントのY値の取得方法を指定します。

オプションリスト:

  • yfirstxfirst: 最初のポイント
    各グループ内の最初のデータポイントのY値を取得します。
  • ymeanxbinc:Y平均
    各グループ内のデータポイントのY値の平均値を取得します。
  • yranxbinc: ランダムY(X平均)
    ランダムな数を取得します。
等サンプリング間隔許容値(%) variation

入力

double

5
サブグループN点毎が選択されているとき利用できます。これを使って、入力X値が等間隔かどうかをチェックするのに使用する許容値を指定します。詳細については、以下のアルゴリズムセクションを参照してください。
FFTプレビューの表示 plot

入力

int

0
プレビューパネルに元のデータとともに削減したデータのFFTの結果をプロットするかどうかを指定します。
出力 oy

出力

XYRange

(<autoX>,<new>)
出力範囲を指定します。出力表記のシンタックスを参照してください。

説明

このXファンクションは、XYデータを削減して等間隔X値でサイズの小さいデータにします。

サンプル

EX1

X値が等間隔でないデータセットがあります。データセットには1000ポイントのデータが含まれています。

Reduce ex1.png

次のステップを実行してデータポイントを100個にします。出力データは等間隔になります。

  1. データは、既にワークブックに存在するものとします。データ列を選択し、作図:基本の2Dグラフ:散布図を選択してグラフを作図します。
    Reduce ex2.png
  2. グラフをアクティブにします。メニューから、解析:データ操作:データ削減:等間隔Xを選択し、reduce_ex Xファンクションダイアログを開きます。
  3. ダイアログボックス下側にある自動プレビューにチェックを付けます。
  4. サブグループドロップダウンリストでインターバル数ごとを選択します。そして、間隔の数の隣にある自動のチェックを外し、100 と入力します。
  5. サンプリング手法ドロップダウンリストで最初のポイント を選択します。
  6. FFTプレビューの表示にチェックを付けます。元データと削減データの両方のFFT結果を確認できます。
  7. 出力として(<新規>, <新規>) を設定します。
    Reduce ex3.png
  8. OKボタンをクリックすると、グラフに結果が表示されます。削減したデータは入力ワークシートの元のデータの隣にあります。そして、X値が等間隔になっているのが分かります。
    Reduce ex4.png
  9. このワークブックのX2 および Y2を選択し、Originメニューから作図:基本の2Dグラフ:散布図を選択して、グラフを作成します。データの形状が元のデータと同様であることが分かります。
    Reduce ex5.png

また、次のスクリプトコマンドを使ってデータポイントを削減することもできます。(スクリプトを実行する前に入力データが選択されているものとします。)

reduce_ex subgroup:=bins bins:=100 method:=yfirstxfirst oy:=(<new>,<new>);

EX2

以下のLabTalkスクリプトを実行して、サンプルデータfitConv.dat をインポートし、周波数で削減します。

newbook ;
fname$=  system.path.program$+ "Samples\Curve Fitting\fitConv.dat" ;
impASC;
worksheet -s 2;
reduce_ex -r 2 subgroup:=freq;

アルゴリズム

入力X値に等間隔のチェックがついているとき、等しいサンプリング間隔に対する許容値 (0から1) を指定する必要があります。以下のように定義します。

  1. 昇順にソートされたX値を\left (x_1, x_2, x_3, ..., x_n \right )とします。 ここで n はベクトルのサイズです。そして、指定した許容値は tol です。
  2. それぞれ隣り合う値の増分の平均を M_I = \frac {\sum_{k=2}^n \left ( x_k - x_{k-1} \right )}{n - 1} で計算します。ここで k = 2, 3, ..., n \, です。
  3. M_I * \left ( 1 - tol \right ) およびM_I * \left ( 1 + tol \right ) で範囲を取得し、テストの範囲は、両方の境界を含む [M_I * \left ( 1 - tol \right ) , M_I * \left ( 1 + tol \right ) ] です。
  4. すべてがステップ3で計算した範囲にあるかどうかを見るため、それぞれ隣り合う値のすべての増加をテストします。つまり、すべての増分に対して、 M_I * \left ( 1 - tol \right ) \le x_k - x_{k-1} \le M_I * \left ( 1 + tol \right ) を満たす場合( k = 2, 3, ..., n \,)、入力X値が等間隔であるということができます。

関連するXファンクション

stats, reducexy


キーワード:データ削減, サンプリング間隔, 周波数