データの内挿:interpolate, cubic spline(上級)
データの内挿:interpolate, cubic spline(上級)
前回読み込んだデータを使って今回はデータの内挿にチャレンジする。まずはあらかじめ読み込んだ wave0 wave1, wave2, wave3, wave4, wave5のデータをそれぞれ、x1, y1, x2, y2, x3, y3と名称変更しておくこと。IGORのDataメニューからRenameコマンドを呼び出し、以下の図のように、対象であるwave0からwave5を黄色い矢印で選択した後に、変更したい wave の名称をそれぞれのカラムに入力すればOKだ。
(1)Windowsメニューの New Graph… によって y1 を x1 に対してプロットした後(もしくはコマンドラインで、display y1 vs x1)、(2)Graph メニューの Append Traces To Graph から y2 を x2 に対して、y3 を x3 に対して追加プロットする(もしくはコマンドラインで、AppendToGraph y2 vs x2; AppendToGraph y3 vs x3)。y2 対 x2、y3 対 x3 のプロットは面倒でも一つずつ個別に行うこと。あとはグラフのフォントや軸の設定を行えば、下のようなグラフが得られるはずだ
今回の議題は、図のように3種類の似たような(例えば関数系が同じ)データセットを持っていて、それぞれのデータの x 位置が異なる場合に、それらの y データを補間する方法についてだ。平均や相関を取って解析を行いたいが、3種類のデータセットが同じX位置にデータを持っていない場合に有効かもしれない。もちろんこれは生データを修正する操作であるから、個人のデータ解析で本当に妥当な方法であるのかはよく考えてから行うこと。
ここで内挿操作に必要な wave を以下のようにあらかじめ作成しておこう。(内挿先のY wave は、後ほど上書きされるので何でもよいが、X wave は「x1のコピー」とする事)
duplicate/O y2 y2_intrp
duplicate/O x1 x2_intrp
duplicate/O y3 y3_intrp
duplicate/O x1 x3_intrp
さて、Analysis メニューの Interpolate… を選ぶと、設定パネルが出現する。どの x y データを、どの軸に沿って補間するのかをここで設定する。(下図)例えば、第2データセット(y2 vs x2)を、第1データセット( x1のグリッド) に沿って補間したい場合には、Y Data および X Data からそれぞれ y2 および x2 を選び、Y Destination および X Destination からそれぞれ、先ほど作成した y2_intrp および x2_intrpを選ぼう。また今回のデータ点数は32なので、Destination Point に 32 を入力し、Dest X Coords には、From Dest Wave を選ぼう。(データ点の間隔は x1 に従う)準備が整ったらDo It を押し、第3データセットに対しても同様の操作を行おう。内挿のタイプとしてcubic splineを選んだが、他の方法も各自試みるとよい。
(1)y1 vs x1 のプロットに、(2)y2_intrp vs x2_intrp および (3)y3_intrp vs x3_intrp のプロットを加え、以下のように、3セットの y データが同じ x 軸にそろっていれば合格だ。(下図)ちなみに黒い曲線は、
make/O/D yy, xx
xx=p/127*31
yy=sin(xx/31*2*pi*4)
によって作成した。
元々ノイズを含んでいた赤・緑・青の3種類のデータは、X軸の値が変更されながらも、いずれもサインカーブに乗っていることがわかる。