software (TDS Spectrum Viewer)

TDS Spectrum Viewer
日本語版(Ver.0.3)
  1. はじめに

    本ソフトは,テラヘルツ時間領域分光法(THz-TDS)で測定したスペクトルの解析ソフトウエアです
    本ソフトはフリーソフトです.ソフトのダウンロード,使用,再配布は自由ですが,一応著作権は製作者の保科宏道にあります.
    本ソフトは,作者が研究の息抜きに作っている物なので,バグを抱えている可能性が(かなり)あります.また,本ソフトの不具合によりいかなる被害が出ようと,作者は責任を取りませんので謝罪とか賠償とか求めないでください.
    バグを発見した場合,作者に報告すると修正される可能性があります.
    ソフトへの要望がある場合,作者にしつこくメールすると実装されるかもしれません.

  2. 特徴
    1. 「測定用パソコンにOriginのようなクソ高いソフトをインストールする予算がないお(ノД`)」,という人でも,測定データをその場で簡単に表示,変換できます.
    2. データをツリー構造で扱えるので,どのデータがどれだっけ?という混乱が少なくなります.
    3. そのままプリントアウトできるので急いで誰かにスペクトルを見せる時に便利です

    • 入力形式
      THz-TDS時間波形: テキスト(CSV)
      フーリエ変換スペクトル: テキスト(CSV)
    • 出力形式
      THz-TDS時間波形: テキスト(CSV)
      フーリエ変換スペクトル: テキスト(CSV)
      吸光度: テキスト(CSV)
      屈折率: テキスト(CSV)
    • 編集結果はバイナリーデータとして保存可能
    • 編集中のデータはツリー上で管理
    • フーリエ変換(FFT)
      入力時間領域選択,出力周波数領域選択,Zero-Filling設定,Apodization関数設定
    • 吸光度計算
      AbsorbanceとTransmittanceを選択可
      Log10とLogeを選択可
    • 屈折率計算
      n,kの初期値とサンプル厚から計算

    • グラフ表示
      拡大,縮小,座標軸設定,オフセット表示,表示範囲履歴の保存,座標数値の読み取り.グラフ色変更.
    • クリップボードへのコピー
      グラフイメージのコピー(Bitmap),データのコピー(Tab区切りCSV,Origin互換)

    • 印刷
      グラフを凡例付きで印刷

  3. 動作環境
    WindowsXP以降
    .NET Framework 2.0以降

  4. ダウンロード
    TDS Spectrum Viewer 0.3.3  (361kB)


  5. インストール
    ファイルを解凍してSetupを実行.
    .NET Framework 2.0以降がインストールされていない場合にはインストール時にダウンロードされる.
    プロジェクトファイルの拡張子TDSを本ソフト に関連付けておくと便利

  6. 各機能の解説
    1. 読み込みファイル形式
      • テラヘルツ時間波形
        THz-TDSによって保存されたテキスト形式のファイルを読み込む.
        テキスト先頭位置にコメント(測定条件など)が記載されていても良い.行頭が指定文字(デフォルトは"#", SettingsのFileメニューで変更可能)の時,その行はコメント行として処理される.
        各データのコメントの内容はツリー上を右クリックし,Infoから確認することができる.

        時間波形データは2列のデータとして扱われ,一列目は時間(単位はps)二列目は信号強度になる
        デフォルトではデータの1列目を時間,2列目を信号強度として読み込む.(Settingsで変更可能)
        各列はカンマもしくはTabもしくはスペースで区切られているものとする
        データ行は50行以上なければならない
        時間単位はピコ秒(デフォルト),フェムト秒,ステージ座標が選択可能(Settingで変更可能)
        ソフト内部ではピコ秒データとして扱われる(保存する時にはピコ秒で保存される)
        時間をステージ位置として読み込む場合,ステージ座標はμmもしくはmm.時間遅延光学系の折り返し回数は一回もしくは二回が選択可能(Settingで設定)

        ファイルは時間が等間隔でサンプリングされているものとして扱われる.(メモリ上にはファイルに記録されている時間の値でなく,一行目と最終行の時間の値をデータ点数で均等分割した値が読み込まれる.)

        テラヘルツ時間波形ファイルの例
        #2009/07/14 23:18
        #測定モード=透過
        #測定開始点=0[μm]
        #波数分解=1.929050 [cm-1]
        #A/D変換のパルス間隔=0.3164[μm]
        #データ取得回数=1[回]
        #データ取得間隔=0[ms]
        #スキャン回数=20[回]
        #データ点数=4096[pts.]
        #理論上の最大波数=3950.695322[cm-1]
        #測定開始時の圧力=6.9[Pa]
        #ステージ速度=800[μm/sec]
        0.000000 -0.010986
        0.004219 -0.005798
        0.008437 -0.001831
        0.012656 -0.009460
        0.016875 0.006409
        0.021093 -0.001831
        0.025312 -0.012817
        0.029531 -0.015564
        0.033749 -0.010681
        0.037968 -0.008850



        時間波形データは(株)先端赤外と栃木ニコンの測定データ(テキスト形式)で確認済み

      • フーリエ変換後のスペクトル
        本ソフトウエアもしくはOriginなど他のソフトウエアによって保存されたテキストファイルを読み込む
        テキスト先頭位置に測定条件などがコメントとして記載されていても良い.
        コメントは特定の文字によってコメントアウトされている必要がある.
        (デフォルトは"#", SettingsのFileメニューで変更可能)
        コメントの内容は保存され,ツリー上のデータを右クリックしたときのInfoから確認することができる.

        時間波形データは3列のデータとして扱われ,一列目は時間(単位はps)二列目はPower,三列目は位相になる
        デフォルトではデータの1列目を周波数(単位はTHz),2列目をPower,三列目を位相として読み込む.(Settingsで変更可能)
        各列はカンマもしくはTabもしくはスペースで区切られているものとする
        データ行は50行以上なければならない
        ファイルは時間が等間隔でサンプリングされているものとして扱われる.(メモリ上にはファイル上に記録されている時間の値でなく,一行目と最終行の時間の値をデータ点数で均等分割した値が読み込まれる.)

    2. データのロード

      • ドラッグアンドドロップによる読み込み
        ファイルを直接ソフトウエア上にドロップすると開く(複数ファイル可)

        ツリー上にドロップされた場合(1)は時間波形データとして扱われる.グラフ上にドロップされた場合(2)はその時に選択されているグラフと同じ種類のファイルとして扱われる.(従って,Absorbanceやn,kの グラフ上にはドロップできない)

      • ファイルダイアログによる読み込み
        ボタンメニューもしくはファイルメニューから「Open Time Domain」もしくは「Open FT Data」を選ぶと,ファイルダイアログからデータを開く(複数選択可)

      • 複数ファイル読み込み時のオプション(時間波形のみ)
        複数ファイルを読み込んだ場合,どのような処理をするか選択できる

        Average Dataを選ぶと,全ファイルのデータを平均化し,単一データとして読み込む.
        測定データに時間軸ずれがあるような場合は,「AdjustPeakPosition」オプションを選択することで,補正することができる.
        このオプションがチェックされているときには,時間波形の最大値もしくは最小値の位置が1番目のファイルと一致するように2番目以降のファイルの時間軸をシフトする.
        LoadAllFilesを選ぶと書くファイルがそれぞれ一つのデータとして読み込まれる.
        毎回このダイアログが出て鬱陶しい場合は,「Do not show this message again」をチェックすると次から出ない.(SettingのFileメニューから戻すことができる)

    3. グラフ操作

      ソフトウエア上のデータは,種類によって異なるグラフ上にプロットされる.
      • Time Domain: TDS時間波形データ
      • SingleBeam:   FFTで得られたPowerスペクトル.Log表示
      • Phase:      FFTで得られた位相スペクトル.位相は連続化してある
      • Absorbance:   スペクトル同士の割り算によって求められた吸光度スペクトル.吸光度表示と透過率表示が可能(SettingsのCalculationで設定可能)
      • n:         複素屈折率の実数成分
      • k:        複素屈折率の虚数成分

      各グラフはタブによって切り替え表示される.

      グラフの描画方法には高速表示と詳細表示がある.高速表示は画面解像度に合わせてデータを間引きして表示する.(Originのスピードモードと同じ)この場合,波形の細かい構造が表示されない場合がある.低速表示は全てのデータをプロットするが,データ点が多いときには表示が重くなる.
      各グラフの描画方法はSettingsで設定可能

      グラフ上にデータが表示されているときにはツールボタンもしくはグラフ上の右クリックメニューによって操作できる.
      1. 拡大,縮小
        • ツールボタン上のZoomIn,Zoom,Outボタン,もしくは右クリックメニューのZoomIn,ZoomOutを選択.マウスで表示範囲を選ぶ (ZoomOutの場合は,拡大率の逆数が新たな表示範囲になる)
        • マウスホイールの上下でマウスカーソル位置を中心として拡大,縮小される
        • 座標表示ウインドウに直接数値で入力
      2. 表示範囲の移動
        • ツールボタンもしくは右クリックメニュー上のMoveAxisを選び,グラフ上でドラッグすると,表示範囲を移動
        • キーボード上の上下左右キーで表示範囲を移動
      3. 表示範囲を戻す
        • ツールボタンもしくは右クリックメニュー上のPreviousScaleからグラフ表示範囲を一つ前の操作段階に戻すことができる
      4. 全範囲表示
        • ツールボタンもしくは右クリックメニュー上のShowAllから,グラフ上の全データが画面に収まる
        • ただし,透過率を表示しているときに限って,Y軸は0から100の範囲を表示する
      5. 座標取得
        • ツールボタンのReadCursorPositionを選択し,グラフをクリックすると,カーソル位置の座標がステータスバーに表示される
        • ツールボタンのReadDataPositionを選択し,グラフをクリックすると,クリック位置に最もX座標が近いデータ点の値がステータスバーに表示される.このとき,左右の矢印キーによってデータ点を 移動することができる.
          このとき,表示される値は,ツリーメニューで選択されているデータ
      6. オフセット表示
        グラフをオフセットして表示する.オフセットしても,データ自体の値は変化しない.
        • ツールボタンのOffsetWaveを選択し,グラフをドラッグすると,プロットがY軸方向に移動する.
          このとき,移動するプロットはツリーメニューで選択されたデータのものである
        • ツールボタンのResetOffsetをクリックすると,全てのオフセット値が0にリセットされる.
        • ツールボタンの+Offset,-Offsetをクリックすると,プロット毎に等間隔でオフセットが設定される.
    4. ツリー操作
      データがメモリ上に読み込まれる,もしくはFFTなどによって新たなデータが作られると,ツリー上に表示される.

      各データごとに親ノードが存在し,FFT,吸光度計算などによって生成したデータは同一ノード内に表示される.
      (再計算の場合は上書きされるので注意)
      子ノードをクリックすると各ノードに対応したグラフに切り替わる.
      親ノードの名前は変更可能であり,保存時のデフォルトファイル名,印刷時の凡例名となる.
      子ノードを選択した状態で更にクリックするとプロットの色を変更することができる.(Settingsで設定可能)

      親ノードの右クリックメニューから,以下の操作が可能
      • プロット色の変更
      • 子ノードのデータをメモリ上から一括削除

      子ノードの右クリックメニューから以下の操作が可能
      • プロット色の変更
      • データをメモリ上から削除(子ノードのみ)
      • プロットの表示・非表示切り替え (Show Plotオプション)
      • データの保存
      • データをクリップボードにコピー(CSV(Tab)形式,Origin上にペースト可能)
      • データの情報表示
    5. フーリエ変換 FFT
      フーリエ変換(FFT)はNumerical Recipesのアルゴリズムを用いている.
      TimeDomainデータを選択後,ツールボタンのFTをクリックするか,グラフウインドウ上のFTボタンをクリックする.


      フーリエ変換時に次のオプションが設定可能
      • 入力範囲
        AllチェックボックスがチェックされているときはTimeDomainの全データを使用する.データ点数が2のn乗でないと きには残りのデータは0で補完される.
        Allチェックボックスがチェックされていないときには,入力範囲を数値で設定できる.また,Dispチェックボタンがチェックされているときには,グラフ上で表示されている領域をFFTする.いずれもデータ点数が2のn乗でないときには残りの データを0で補完する.
      • 出力範囲
        AllチェックボックスがチェックされているときはFTによって得られた全データを出力する.チェックされていないときには出力範囲を指定できる.
      • ZeroFilling
        入力範囲をデフォルトの2のn乗倍に設定し,見かけの周波数分解能を上げることができる
      • Apodization
        入力関数にApodization関数を乗じる.デフォルトのBoxcarは何も掛けない状態.各関数は以下の通り
        • Boxcar:1
        • Cosine:[0.5*{1+cos(PI*x/xmax)}]^2
        • Triangle:1-x/xmax
        • Blackman:0.42+0.50*cos(PI*x/xmax)-0.08*cos(2PI*x/xmax)
        • Blackman-Harris:0.42323+0.49755*cos(PI*x/xmax)-0.07922*cos(2PI*x/xmax)
        • Happ-Genzel: 0.54+0.46*cos(PI*x/xmax)
        • Hanning:0.5*{1+cos(PI*x/xmax)}
      以上の設定はSettingsで設定しておくと,次回の起動からデフォルト値になる.
      計算条件はデータノードのInfoで確認できる.

    6. 吸光度計算
      吸光度計算は,AbsorbanceもしくはTransmittanceを求める.(Settings で設定)
      SingleBeamスペクトルを選択後,リファレンスを選び,ツールボタンのAbsをクリックするか,グラフウインドウ上のAbsをクリックする

      Absorbance計算時はLog10もしくはLogeを使う(Settingsで設定可能)
      計算式は -Log(SBSsample/SBSreference)
      計算条件はデータノードのInfoで確認できる.

    7. 屈折率計算
      屈折率計算手法は「テラヘルツ技術総覧」もしくはM.Hangyo.et al. Meas.Sci.Technol. 13 (2002) pp.1727-1738に記述されている手法による.n,kの初期値を設定し,nが収束するまで差分を計算する.収束条件はSettingsで設定可能.

      SingleBeamスペクトルを選択後,リファレンスを選び,初期値およびサンプル厚みを設定する.
      また,多重反射を考慮に入れる場合は反射回数を入力する.
      ツールボタンのnkをクリックするか,グラフウインドウ上の>>nkボタンをクリックする
      計算条件はデータノードのInfoで確認できる.

    8. データ操作

      1. テラヘルツ時間波形の平滑化
        テラヘルツ時間波形に現れる多重反射ピークを平滑化することにより,強制的にSingleBeamスペクトルのフリンジを除去できる.
        DeletePeaksボタンを選択後,平滑化したい領域を選択する
      2. Phaseの2PI調整
        本ソフトではFFT後に位相を連続化する.しかし,データによってはS/Nの悪い部分で連続化がうまく機能せず,位相が2Piずれることがある.位相のずれによって屈折率計算結果が正しく計算されないので,手動で補正する必要がある.
        Phaseグラフ上でPhaseShiftボタンをクリックし,Phaseを2PIずらす事ができる.
        この作業はグラフのオフセットと異なり,実データを書き換える
    9. データ及びプロジェクトの保存,読み込み

      1. ツリー上のデータはテキストファイルとして保存できる.
        1列目が時間(周波数),2列目が強度で区切り文字列は","
        データの情報をヘッダーとして書き込むことができる(Settingsで設定可能)
      2. メモリ上のデータは,プロジェクトとしてBinaryファイルに保存,読み出しできる.
        デフォルトの拡張子はTDS.
        Windows上で拡張子を本ソフトウエアに関連付けすると,起動時の引数として読み込まれる.
        プロジェクトファイルをソフトにドラッグアンドドロップしても,ロードされない.

    10. クリップボードへのコピー
      データ及びグラフはクリップボードにコピーされ,他のソフトで使用可能

      1. データは2列のCSVテキストデータとしてコピーされる.1列目が時間(周波数),2列目が強度になる.
        データ列はTabで区切られている.Originのワークシートにペースト可能
      2. 表示されているグラフがBitmap 形式でコピーされる.

    11. 印刷
      グラフは印刷可能
      データの親ノード名が凡例としてプリントされる(印刷場所はSettingsで設定可能)
      印刷時の日付と時間が印刷される(Settingsで選択可能)

  7. 履歴
    2009/09/11 Version 0.3.1 TimeDomainデータ読み込み時のプログレスバー修正.Transmittance変換後のオートスケール修正.表示範囲に数値以外の入力を無効化.表示範囲入力時に反映されないことがあるのを修正.インストーラー修正
    2009/09/04 Version 0.3.0 データ名がプロジェクトに保存されないのを修正.グラフ表示履歴がプロジェクトに保存されるように修正.印刷時に凡例の表示・非表示を選択可,印刷時に凡例を下に表示できるように選択可,印刷時に日付と時間を印刷可.(Ver0.3よりプロジェクト保存形式が変更.以前のバージョン(0.2.x)との互換性が無くなります)
    2009/09/02 Version 0.2.4 時間波形をステージ位置の関数として読み込み可能,測定データに空白行があった時にエラーが出るのを修正
    2009/08/20 Version 0.2.3 入力ファイルのデータ列が選択可能になる,プロジェクトを開く際確認ダイアログの表示
    2009/08/20 Version 0.2.2 公開


  8. 今後の実装予定

    グラフをイメージファイルとして保存(WMF?)
    TreeViewで複数選択し一括計算できるようにする
    TimeDomainの時間ずれ補正の機能拡張
    逆FT機能の追加
    多言語化
    スペクトル一括変換ツールの装備
    バグ取り


ナビゲーション