I. Hidaka
Updated on Mar. 18, 2001
TSAS
山本義春教授(東大教育)による時系列データ解析ソフト。
入手方法:anonymous-FTP (現在配布停止中。手元にWin32版バイナリとSun版ソース--linuxでも使用可--があります。希望される方は日高宛にメールでご連絡ください。)
gawk
テキスト処理プログラム。
入手方法:Vector等にあります。
Cygwin
Windows上で動作するUNIX tools。bashが使える。
入手方法:Redhat社
gnuplot
グラフ作成ソフト。非線形回帰、補間、平滑化など多彩な機能。
入手方法:Gnuplot Central (公式サイト)を参照。
GLE
グラフ作成ソフト。
入手方法:Simtelからダウンロード。
(進行中)
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列です。(クロス)スペクトル、位相、コヒーレンスは事後計算してください。
擬似白色ニ値信号(pseudo random binary sequence)の一つである、M系列を10000点出力します。次数は11次で、周期は2047です。出力は、1/0のバイナリ値が1列で出てきます。初期値はシステム時間を種子にしてrand()から求めています。
<使用法> prbs > outfile
ファイルに保存した電圧時系列を指定間隔で出力します。
○必要機材等
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の場合)。
『ニューメリカルレシピ・イン・シー』 Press WH他、技術評論社
『ビギナーズデジタルフィルタ』 中村尚五、東京電機大学出版局
『実験・研究のためのプログラミング技法』 関岡清次、理工学社
『MATLABによる制御のためのシステム同定』 足立修一、東京電機大学出版局