smooth
メニュー情報
解析:信号処理:スムージング
概要
不規則なデータやノイズの多いデータにスムージングに対して実行します。
追加の情報
この機能はOrigin9.1 SR0で更新されています。オプションとしてLowess と Loess スムージング方法が追加されています。
コマンドラインでの使用法
1. smooth iy:=Col(2);
2. smooth iy:=Col(2) method:=aav npts:=51;
3. smooth iy:=Col(2) boundary:=periodic;
4. smooth iy:=Col(2) polyorder:=3;
5. smooth iy:=Col(2) method:=pf percent:=70;
変数
表示名 |
変数名 |
I/Oとタイプ |
デフォルト値 |
説明 |
入力 |
iy |
入力
XYRange
|
<active>
|
スムージングを行いたいXYデータの範囲を指定します。
|
手法 |
method |
入力
int
|
sg
|
使用するスムージングの手法を指定します。デフォルトはSavitzky-Golayです。
オプションリスト
- aav: 隣接平均
- この手法はデータの各ポイントの前後で指定したデータポイント数の平均を取り、そのポイントを計算した平均値で置き換えます。
- sg: Savitzky-Golay
- この手法は、局所的な多項式回帰を実行します。信号データ全体の形状に影響を与えずにノイズを除去する場合に適しています。元のデータ値はフィットした値で置き換えられます。
- pf: パーセンタイルフィルタ
- これはランクオーダフィルタとして知られている手法です。この手法はデータの各ポイントの前後でデータポイントの指定したパーセンタイルを見つけ、そのポイントをパーセンタイルで置き換えます。ショットノイズを除去する場合に適しています。
- fft:2D FFTフィルタ
- この手法はFFTローパスフィルタが基になっています。これはノイズの周波数が真の信号より高い場合に使用します。実際には、双曲線ウィンドウで高周波成分を除去します。カットオフ周波数より大きい周波数は無視されます。
- lw:Lowess
- le:Loess
- これら2つのオプションは「locally weighted scatter plot smoothing」(局所的加重散布図スムージング)を示します。これらの方法は非常に多くのデータポイントがある場合に最適です。詳細はアルゴリズムページをご覧ください。
|
加重平均法 |
weight |
入力
int
|
0
|
このパラメータは手法が隣接平均法の時のみ利用できます。このパラメータが1にセットされていると加重平均が使われます。
|
範囲に比率を使用してください |
prop |
入力
int
|
1
|
この変数は手法がLowessかLoessの時のみ利用できます。範囲として割合(0-1)を使うか、ウィンドウのポイントを使うか指定します。 |
範囲 (0-1) |
span |
入力
double
|
0.1
|
これは、範囲に比率を使用が選択されたときのみ利用できます(つまり prop = 1)。範囲の比率値を指定します。値が大きければ大きいほど曲線はなめらかになります。 |
ウィンドウポイント |
npts |
入力
int
|
5
|
手法で、FFTフィルタが選択されていない場合、このパラメータは移動ウィンドウのポイント数を指定します。それ以外の場合、このパラメータを使ってFFTフィルタのカットオフ周波数を制御することができます。この値が大きくなると、スムージングの次数が大きくなります。値は0ではない正の数である必要があります。カットオフ周波数の計算については、アルゴリズムを参照して下さい。
|
境界条件 |
boundary |
入力
int
|
なし
|
境界条件を指定します。手法でFFTフィルタ/Lowess/Loessが選択されていると、利用できません。
オプションリスト
- none:なし
- 付加追加を行いません
- reflect:反射
- 信号データを両端で反射させてデータを付加します。
- repeat:繰返し
- 信号データの最後のポイントを繰り返してデータを付加します。
- periodic:周期的
- データを周期的な信号として扱います。
- extrap:補外
- 線形補外法を使ってデータの両端に信号を付加します。
|
多項式次数 |
polyorder |
入力
int
|
2
|
このパラメータはSavitzky-Golayスムージングオプションのみで適用できます。多項式の次数を指定します。
|
パーセンタイル |
percent |
入力
double
|
50
|
このパラメータはパーセンタイルフィルタリングで使用するパーセンタイル値を決めます。デフォルトは50%です。これはデータウィンドウ内のデータポイントのメディアン値を持つ信号を置き換えます。
|
カットオフ周波数 |
cutoff |
入力
double
|
0
|
このパラメータはGUIの手法でFFTフィルタが選択されている場合のみ利用できます。これはウィンドウポイントから計算されるローパスフィルタのカットオフ周波数を示す読み込み専用の変数です。スクリプト上では使用しないでください。
|
2のべき乗ポイントへの付加 |
pad |
入力
int
|
0
|
このパラメータは手法でFFTフィルタが選択されている場合のみ利用できます。これはスクリプトからのみ利用できます。データポイントの数を2のべき乗で付加するかどうか指定します。1が設定されている場合、Origin8より前のバージョンで計算した値と同じになります。詳細は、アルゴリズムセクションを参照して下さい。
|
フィルタの種類 |
filter |
入力
int
|
新規
|
このパラメータは手法でFFTフィルタが選択されている場合のみ利用できます。これはスクリプトからのみ利用できます。フィルタの種類を指定します。oldが選択されている場合、Origin8より前のバージョンで計算した値と同じになります。
オプションリスト
- 放射線状ローパスフィルタ
- Origin7.5で使用された放射線状ローパスフィルタ
|
基線の減算 |
baseline |
入力
int
|
two_ends_1
|
このパラメータは手法でFFTフィルタが選択されている場合のみ利用できます。これはスクリプトからのみ利用できます。FFTフィルタリングを使用する前に基線を減算するかどうか指定します。オプションリスト
- FFTフィルタが実行される前に入力データから2つの終点から作図される直線の値を減算します。
- two_ends_1:終点の1%の平均から得られた直線
- FFTフィルタが実行される前に入力データから終点の1%の平均から作図される直線の値を減算します。
- FFTフィルタリングが行われる前に入力データから減算は行われません。
|
出力 |
oy |
出力
XYRange
|
<新規>
|
スムージングした信号データの出力先を指定します。
シンタックスはここをご覧ください。
|
サンプル
1.アクティブなワークシートの1、2列目にあるXYデータに対して、デフォルトの設定でSavitzky-Golay法によるフィルタリングを実行するには、次のスクリプトコマンドを使います。
- smooth (1,2)
2.グラフのアクティブデータプロットにデフォルトのスムージングを実行するには、次のスクリプトコマンドを使います。
- smooth %c
3.スムージングの手法を変更するため、スムージングダイアログを開いてドロップダウンリストから手法を選択するには、次のスクリプトコマンドを使います。
- smooth -d
または、スムージングとして使用したい手法の種類を、例えば次のようにスクリプト行に入力します。
- smooth m:=2
m:=1は、デフォルトのSavitzky-Golay法を実行します。m:=0は、隣接平均法を実行します。m:=2はパーセンタイルフィルタ法を実行します。
4.スムージングダイアログで行った設定を保存したスムージングのテーマファイル(または自分で作成したテーマファイル)を使って、列1、2にスムージングを実行するには、次のコマンドを実行します。
- smooth -t "my shot noise removal theme.oth"
他のサンプルについては、XFスクリプトダイアログ(F11を押す)をご覧下さい。
詳細な情報
詳細は、ユーザガイドをご覧下さい。
-
関連のXファンクション
fft1, fft_filters, wtsmooth
|