BaseLine補正¶
nvaSqで出力されたS(Q)は、S(Q) = 1の周りで振動する関数のはずである。 補正が不十分な場合に、S(Q) = 1から外れることがある。これにより、Fourier変換により得られるg(r)のlow-r側にノイズがのることがある。 S(Q)がS(Q) = 1の周りで振動するように、「ベースライン」を差し引きを行うのがベースライン補正であり、ベースラインは多項式フィッティングにより求める。 フィッティング範囲や多項式の次数などを変更可能。 多項式フィットの他に、大下式(Plaatom)や亀田式(nullH2O)を実装予定。
In [27]: b90=nvaGr.Baseline(d90(0),[0.85,65.0],1.0,"qiq")
In [28]: b90.PolyFit()
In [29]: b90.PlotFit()
- 説明:
nvaSqの返り値であるd90(0)を使ったベースライン補正の準備。ここでは"b90"という名前のオブジェクトとして必要なデータを準備。(b90という名前は任意)
初期化の引数は、Q範囲、多項式の次数、baseline補正をする関数(S(Q): sq、Q(S(Q)-1): qiq、Coherent XS: xs)
- Q範囲の変更(下記のコマンドをpythonプロンプトで入力)
b90.prange と入力すると現在値が表示される
b90.prange = [10.0,80.0]
多項式の次数の変更
b90.order = 0.0
- baseline補正をする関数の変更
指定可能な関数 S(Q): sq、Q(S(Q)-1): qiq、Coherent XS: xs
b90.select = “sq”
補正済みデータをElementContainerとしてd90に格納すると、Fourier変換において、ベースライン補正したS(Q)を使うことができる。
b90.OutputSQ()