次のサンプルは、データセットの微分を計算する方法を示しています。 differentiate Xファンクションが使われ、高次微分を行うこともできます。
// データをインポート newbook; fname$ = system.path.program$ + "\Samples\Spectroscopy\HiddenPeaks.dat"; impasc; // 列2のデータの一階微分および二階微分を計算: // 出力はデフォルトで次に利用可能な列、列3 differentiate iy:=Col(2); // 出力はデフォルトで列4に differentiate iy:=Col(2) order:=2; // 元データと結果をプロット // 各プロットはx値として列1を使用 plotstack iy:=((1,2), (1,3), (1,4)) order:=top;
differentiate Xファンクションは、Savitsky-Golay スムージングを使って微分を計算できます。この機能を使う場合、smooth 変数を1にセットします。そして、多項式の次数やSavitzky-Golayスムージング法で使われるウィンドウのポイントを指定して、スムージングをカスタマイズできます。 以下はこの例です。
// ノイズ付きでサンプルデータをインポート newbook; fpath$ = "\Samples\Signal Processing\fftfilter1.DAT"; fname$ = system.path.program$ + fpath$; impasc; bkname$=%h; // Savitsky-Golayスムージングを使って微分 differentiate iy:=col(2) smooth:=1 poly:=1 npts:=30; // 元データと結果をプロット newpanel row:=2; plotxy iy:=[bkname$]1!2 plot:=200 ogl:=1; plotxy iy:=[bkname$]1!3 plot:=200 ogl:=2;