データ解析のツール

I. Hidaka
Updated on Mar. 18, 2001

1. Windows PC上でのデータ処理ツール

 

TSAS
gawk
  • テキスト処理プログラム。

  • 入手方法:Vector等にあります。

Cygwin
  • Windows上で動作するUNIX tools。bashが使える。

  • 入手方法:Redhat社

gnuplot
GLE
  • グラフ作成ソフト。

  • 入手方法:Simtelからダウンロード。

 

2. Useful Softwares and WWW sites

ghostscript
      &
ghostview
  • postscriptファイルの表示、他形式ファイルへの変換。

  • 入手方法:ここ

Tera Term Pro

 

  • telnet。ssh可。

  • 入手方法:ここ

Steed FTP

 

  • FTPソフト。

  • 入手方法:ここ

LaTeX
    &
dviout

 

  • 文書処理システム。

  • 入手方法:ここここを参照。

Vim

 

  • エディタ。viクローン。

  • 入手方法:Vector

SAL
(Scientific
 Applications
 on Linux)

 

  • Linuxで使えるツール群。DOS/Windows版があることもある。

  • SAL日本サイト

Simtel.Net

 

  • DOS/Windows用のオンラインソフト。

  • Simtel.Net

 

3. セットアップの方法

(進行中)

3-1. TSAS

3-2. gawk

3-3. gnuplot

3-4. ghostscript

3-5. cygwin

4. 自作プログラム&スクリプト

4-1. fil2sp.exe (Win32 console application)

TSASのfilter.exeのスプライン補間は、測定データの間を通るBスプライン補間を行いますが、私が作ったfil2spは、測定データを必ず通る、自然スプライン補間を行います。

<使用法> fil2sp /if:n /nx /ny < infile > outfile

入力ファイルは、filter.exeの出力ファイルです。/ifオプションで補間周波数を指定します。入力ファイルの第2(3)列が不要な場合には、/nx(/ny)オプションを指定します。出力ファイルの形式は、filter.exeとほぼ同じです。

 

4-2. asignal.exe (Win32 console application)

asignalは、読み込んだデータを解析信号に変換します。

<使用法> asignal /sl:n /sf /sv  < infile > outfile

入力ファイルは、filter.exeの出力ファイルを想定しています。第1列の時刻データは、内部処理されずにそのまま出てきます。第2,3列目のデータを解析信号化するのですが、FFTを使用していますので、データ先頭から最大2のべき乗個分が処理されます。出力は、
Time        Real(X)    Imag(X)     Real(Y)    Imag(Y)
0.01667    1.85387    -12.35259       :          :
  :          :           :
という形で出てきます。

4-3. fft.exe (Win32 console application)

ただのFFTです。

<使用法> fft /sl:n /rc:n /ic:n /idft /sf /sv  < infile > outfile

入力ファイルは、実数データと虚数データの2列からなるもので、最大の2のべき乗個のデータを処理します。FFTでの出力は、

Real(X)     Imag(X) 
0.27692     0.00000          <=   0 Hz 
0.28132     0.03182          <=   0 +    df Hz
0.29548     0.06710          <=   0 + 2 df Hz

     :                :               <=   Nyquist Hz 
     :                :               <= -(Nyquist - df) Hz 

0.29548   -0.06710          <= -(0 + 2 df) Hz
0.28132   -0.03182          <= -(0 + df)    Hz 

という形式で、逆FFTではこの形式のデータを読み込ませます。

 

4-4. icollect.exe [新版ソース]/[旧版](Win32 console application)

マルチチャンネルデータ計測プログラム。旧版はソースファイルが行方不明となり、更新できなくなりましたので、新しく作り直しました。バグが残ってるかもしれません。いまだグラフ表示できませんが、そのうち...

○必要機材等

A/Dボード:Computer Boards社、またはMetrabyte社製のもの。作成時にはCB社のPC-CARD-DAS16/12AO(新版)、CIO-DAS1602/12(旧版)を使用。

コンピュータ:上記ボードを装備したPC/AT互換機。

ドライバーソフト:CB社製InstaCal。

OS:WindowsNT/95/98/Me/2000で動作。

○操作

<新版>

icollect /ts:n /bg:n /ed:n /eu /he > outfile

/ts:n サンプリングレート(Hz)。整数値。
/bg:n 開始チャンネル。
/ed:n 終了チャンネル。
/eu 指定時には電圧値を、無指定時には0から 2^n-1 (nはボードのビット数。12ビットなら4095)の整数値。
/he ヘルプ。
outfile 出力ファイル名。

  

<旧版>

icollect  c  r  s  > outfile

 c - チャンネル数。最大16。
 r - サンプリングレート(Hz)。
 s - サンプリング時間(s)。
 outfile - 出力ファイル名。

○ Note

旧版は、長時間記録時に記録列がずれることがあります

新版は、まだちゃんとテストしきってません。200Hz以下の周波数で録ると、うまくとれないかもしれません。

4-5. hanning.exe (Win32 console application)

TSASのfilter.exeの出力データに、Hanningウィンドウをかけます。

<使用法> hanning /wl:n /nx /ny < infile > outfile

入力ファイルは、filter.exeの出力ファイルです。/wl:nオプションでウィンドウ長(秒)を指定します。入力ファイルの第2(3)列にウィンドウ処理を行わない場合には、/nx(/ny)オプションを指定します。第3列がないデータの場合には、0が出力されるます(たぶん)。出力ファイルの形式は、filter.exeとほぼ同じです。

 

4-6. lpf.exe (Win32 console application)

FIRローパスフィルタです。与えられたパスバンド、ストップバンドを用いてフィルタの伝達特性を設計し、これを逆FFT後、Hanning窓をかけて、フィルタ係数を決定します。入力ファイルは、filter.exeの出力ファイルを想定しています。出力ファイルは、filter.exeと同じです。

<使用法> hanning /sl:n /ts:f /od:n /fp:f /fs:f /ws:n /gp < infile > outfile

/ts:f データのサンプリングレート(Hz)。
/od:n モデルの次数。次数が大きいほど切れ味は増しますが、失うデータ点も多くなります。また、低域ほど次数を増やす効果が現れにくくなります。
/fp:f パスバンド(Hz)。遮断開始周波数。
/fs:f ストップバンド(Hz)。遮断終了周波数。
/ws:n フィルタの周波数特性を設計する上で、fp--fs間に何点のデータを用いるかを指定します。lpf.exeはfp_fs間にコサイン型の漸減曲線を用いて、FFTによるGibbs現象を回避しようとします。/ws値が多いほど、大きな次数が必要になりますが、切れ味は増します。
/hpf ハイパスフィルタとして動作します。
/gp フィルタの伝達特性をプロットする、gnuplotスクリプトを出力します。指定しなければ、フィルタ済み時系列が出力されます。

lpf.exeの使用例:30分間の心電図RRI時系列に対し、次数51、パスバンド0.15Hz、ストップバンド0.20Hz、/WS:3の低域通過フィルタをかけてみます(0.026Hzでティルト角度を周期的に振ったものです。振幅は漸増しています)。

<伝達特性>

<元時系列>

<フィルタ済み時系列>

<スペクトル>

 

4-7. stft.exe (Win32 console application)

短時間フーリエ変換プログラム(short-time Fourier transform)です。

<使用法> stft /sl:n [/is:f or /ts:f] /wl:n [/wh or /wr or /wb] /lt /st:n /nn /sf /sv /he < infile > outfile

/sl:n スキップライン。
/is:f or /ts:f filter.exeと同じ。
/wl:n 窓のビット数。デフォルトは7(2^7=128)。
/wh or /wr or /wb 窓関数を指定。Hanning(/wh), 矩形(/wr), Binghamのcosine型(/wb, Tukeyとも)。デフォルトは/wh。
/lt リニアトレンドを除去。
/st:n FFTの刻み間隔。デフォルトは1。
/nn 周波数の代わりに整数番号で出力。
/sf scientific format出力。
/sv ヴァージョン出力抑制。
/he ヘルプ。

入力ファイルは、filter.exeの出力ファイルです。/wl:nで指定した長さの窓をスライドしながら、フーリエ変換します。全データの最初と最後の部分が、(窓長/2)だけ欠けます。

出力ファイルは、時刻(min)、周波数、FFT後の変数Xの実部、同虚部、変数Yの実部、虚部の6列です。(クロス)スペクトル、位相、コヒーレンスは事後計算してください。

 

4-8. prbs.exe (Win32 console application)

擬似白色ニ値信号(pseudo random binary sequence)の一つである、M系列を10000点出力します。次数は11次で、周期は2047です。出力は、1/0のバイナリ値が1列で出てきます。初期値はシステム時間を種子にしてrand()から求めています。

<使用法> prbs > outfile

4-9. daout.exe (Win32 console application, 2001.10.19版。Visual C++ 6.0 ソース一式)  

ファイルに保存した電圧時系列を指定間隔で出力します。

○必要機材等

A/Dボード:Computer Boards社、またはKeithley-Metrabyte社製のもの。作成時にはCB社のPC-CARD-DAS16/12AOを使用。

コンピュータ:上記ボード/カードを装備したPC/AT互換機。

ドライバーソフト:CB社製InstaCal。

OS:Windows2000のコマンドプロンプトで動作確認。Win95/98/Me/NTでも多分動く。

 

<使用法> daout /sl:n /xc:n /ts:f < infile

/sl:n スキップライン。
/xc:n filter.exeと同じ。
/ts:f サンプリング(出力)周波数。
/he ヘルプ。

入力ファイルは、/sl:n行のヘッダーの後にデータが複数列、出力順に並んだものとします。このうち/xc:n列のデータを、/ts:f (Hz)の間隔で出力します。

まだバグがあり、起動後最初の何秒かの間、出力電圧が大きく揺らぎます(PC-CARD-DAS16/12AOの場合)。

 

5. 参考書

『ニューメリカルレシピ・イン・シー』 Press WH他、技術評論社

『ビギナーズデジタルフィルタ』 中村尚五、東京電機大学出版局

『実験・研究のためのプログラミング技法』 関岡清次、理工学社

『MATLABによる制御のためのシステム同定』 足立修一、東京電機大学出版局