解析:信号処理:スムージング
XYデータでスムージングを実行してノイズや不揃いを除去します
この機能は9.1 SR1で更新されています。スムージング手法としてLowess および Loessオプションを使用できます。
1. smooth //Perform default smoothing to active data plot or highlighted 1st column in worksheet. smooth %C also works so
2. smooth (1,2) //デフォルト設定を使用して、アクティブワークシートの列1、2のXYデータに対してデフォルトのSavitzky-Golayフィルタリングを実行
3. smooth iy:=Col(2) boundary:=periodic; //境界条件を周期的に設定し、アクティブワークシートの2列目のYデータに対してデフォルトのSavitzky-Golayフィルタリングを実行
4. smooth iy:=Col(2) polyorder:=3; //アクティブワークシートの2列目のYデータに対して、多項式次数を2に設定してデフォルトのSavitzky-Golayフィルタリングを実行
5. smooth iy:=Col(2) method:=pf percent:=70; //パーセンタイルフィルタリングを使用してスムージングを実行。パーセンタイルは70に設定し、アクティブワークシートの2 列目のYデータに対して実行
6. smooth -t "my short noise removal theme.oth" //スムージングダイアログで保存した事前保存テーマファイルを使用してアクティブプロットまたは選択列に対してスムージングを実行
7. smooth -d //スムージングダイアログを開く
スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。
| 表示 名  | 
変数 名  | 
I/O と データ型  | 
デフォルト 値  | 
説明 | 
|---|---|---|---|---|
| 入力 | iy | 
 入力 XYRange  | 
  | 
 スムージングを行いたいXYデータの範囲を指定します。  | 
| 手法 | method | 
 入力 int  | 
  | 
 使用するスムージングの手法を指定します。デフォルトはSavitzky-Golayです。 オプションリスト: 
  | 
| 加重平均 | weight | 
 入力 int  | 
  | 
 手法で隣接平均法をを選択した場合に利用できるパラメータです。このパラメータが1にセットする(チェックを付ける)と加重平均が使われます。  | 
| 範囲指定方法 | prop | 
 入力 int  | 
  | 
 この変数は、手法がLowessまたはLoessの場合に利用できます。
 オプションリスト: 
  | 
| X値 | xval | 
 入力 double  | 
  | 
 範囲指定法でX値を選択したとき、X値を指定します。デフォルトでX値 は0.1*(x max-x min)です。  | 
| 範囲 (0-1) | span | 
 入力 double  | 
  | 
 これは、範囲指定方法で比率を選択したときのみ利用できます( prop = 1)。範囲の比率値を指定します。値が大きいほど曲線はなめらかになります。  | 
| ウィンドウ内のポイント数 | npts | 
 入力 int  | 
  | 
 手法で、FFTフィルタが選択されていない場合、このパラメータで移動ウィンドウのポイント数を指定します。それ以外の場合、このパラメータを使ってFFTフィルタのカットオフ周波数を制御することができます。この値が大きくなると、スムージングの次数が大きくなります。値は0ではなく、正の数である必要があります。カットオフ周波数の計算については、アルゴリズムを参照して下さい。  | 
| 境界条件 | boundary | 
 入力 int  | 
  | 
 境界条件を指定します。手法でFFTフィルタ/Lowess/Loessが選択されている場合は利用できません。 オプションリスト 
  | 
| 多項式次数 | polyorder | 
 入力 int  | 
  | 
 Savitzky-Golayスムージングオプションの場合に利用できます。多項式次数を指定します。  | 
| パーセンタイル | percent | 
 入力 double  | 
  | 
 パーセンタイルフィルタで使用するパーセンタイル値を決めます。デフォルトは50%です。これはデータウィンドウ内のデータポイントの中央値を持つ信号を置き換えます。  | 
| カットオフ周波数 | cutoff | 
 入力 double  | 
  | 
 このパラメータは、手法が FFTフィルタの場合に GUIに表示されます。これは、ウィンドウのポイントから計算されたローパスフィルタのカットオフ周波数を示す読み取り専用の変数です。スクリプトでは使用しないでください。  | 
| 2のべき乗ポイントへの付加 | pad | 
 入力 int  | 
  | 
 このパラメータは、手法が FFTフィルタの場合に利用できます。スクリプトからのみ利用可能です。データポイントの数を2のべき乗で付加するかどうか指定します。1に設定すると、Origin8より前のバージョンで計算した値と同じになります。詳細は、アルゴリズムセクションを参照して下さい。  | 
| フィルタの種類 | filter | 
 入力 int  | 
  | 
 このパラメータは、手法が FFTフィルタの場合に利用できます。スクリプトからのみ利用可能です。フィルタの種類を指定します。oldに設定すると、Origin8より前のバージョンで計算した値と同じになります。 オプションリスト: 
 
 
 
  | 
| 基線の減算 | baseline | 
 入力 int  | 
  | 
 このパラメータは、手法が FFTフィルタの場合に利用できます。スクリプトからのみ利用可能です。FFTフィルタリングを使用する前に基線を減算するかどうか指定します。 オプションリスト: 
 
 
 
 
 
  | 
| 出力 | oy | 
 出力 XYRange  | 
  | 
 スムージングした信号データの出力先を指定します。 このシンタックスを参照してください。  | 
gaussian.datをOriginにインポートする方法を示すサンプルです。
white_noise Xファンクションでホワイトノイズを追加します。
Xファンクションplotxyを使ってノイズデータをプロットします。
データをスムージングして、スムージングデータを新しいグラフにプロットします。
// 新規ブックにデータをロード fname$ = system.path.program$ + "\Samples\Curve Fitting\Gaussian.dat"; newbook; impASC; string bkn$=%H; // データにノイズを追加 white_noise [bkn$]1!(2) level:=10; // ノイズデータをプロット plotxy [bkn$]!(1,2) plot:=200 ogl:=[<new>]<new>; // ノイズデータをスムージング newsheet book:=bkn$ name:="Smoothed Data"; copydata [bkn$]1!(1) [bkn$]"Smoothed Data"!(1); smooth iy:=[bkn$]1!(2) oy:=[bkn$]"Smoothed Data"!(2) npts:=10; // スムージングデータをプロット plotxy [bkn$]"Smoothed Data"!(1,2) plot:=200 ogl:=[<new>]<new>;
詳細は、ユーザガイドをご覧下さい。
キーワード:隣接平均法, savitzky golay, fftフィルタ, lowess, loess, 2項, パーセンタイル