名前
spectrum1d - 1つ[または2つ]の時系列からパワースペクトル[お
よびクロススペクトル]を計算します
概要
spectrum1d [ x[y]file ] -Ssegment_size] [ -C[xycnpago] ] [
-Ddt ] [ -Nname_stem ] [ -V ] [ -W ] [ -bi[s][n] ] [
-bo[s][n] ]
記述
spectrum1d は X [および Y ]の値を標準入力[または x[y]file ]
の1列目[および2列目]から読みます。これらの値は等しい時間間
隔 dt を持つ時系列 X(t) [Y(t)] として扱われます。入力の行数
は何行でもかまいません。 spectrum1d は Bendat and Piersol
の標準誤差の推定法を用い複数のオーバーラップする窓のアンサ
ンブル平均をとるという Welch の方法によるパワースペクトル密
度[およびクロススペクトル密度]の推定値を含むファイルを作り
ます。
出力ファイルには3列のデータが入ります: f または w, p, e で
す。 f または w は周波数または波長、 p は推定スペクトル密度、
e は1標準偏差でエラーバーのサイズです。これらのファイルは
name_stem に基づいて名付けられます。 -C オプションが使われ
たときは、最大8つのファイルが作られます; そうでないときは1
つ (xpower) だけが出力されます。ファイル( -bo が設定されな
い限り ASCII )は以下のようになります:
name_stem.xpower
X(t) のパワースペクトル密度。 X * X * dt の単位。
name_stem.ypower
Y(t) のパワースペクトル密度。 Y * Y * dt の単位。
name_stem.cpower
干渉出力のパワースペクトル密度。 ypower と同じ単位。
name_stem.npower
ノイズ出力のパワースペクトル密度。 ypower と同じ単位。
name_stem.gain
ゲイン出力、伝達関数の絶対値。 (Y / X) の単位。
name_stem.phase
位相スペクトル、伝達関数の位相。単位はラジアン。
name_stem.admit
アドミッタンススペクトル、伝達関数の実部。 (Y / X)
の単位。
name_stem.coh
(2乗)干渉スペクトル、周波数の関数としての線形相関係
数。 [0, 1] の範囲の無次元数。 Signal-to-Noise-Ratio
(SNR) は coh / (1 - coh) である。 coh = 0.5 のとき
SNR = 1 となる。
必要な引数
x[y]file
最初の1[または2]列に X(t) [Y(t)] のサンプルを持つ ASCII
(またはバイナリ、 -bi 参照)ファイル。ファイルを指定
しないときは、 spectrum1d は標準入力から読みます。
-S segment_size はアンサンブル平均の窓に含まれるサンプ
ルの数で、2のべき乗の数です。推定される最小の周波数
は 1.0/(segment_size * dt) で、最大は 1.0/(2 * dt)
です。パワースペクトル密度の標準偏差はおよそ 1.0 /
sqrt(n_data / segment_size) になるので、もし segment_size
= 256 なら、 10% の標準エラーバーを得るには 25,600
のデータが必要になります。クロススペクトルのエラー
バーはより大きくより複雑で、干渉の関数にもなってい
ます。
オプション
-C 入力の最初の2列を、2つの時系列 X(t) と Y(t) のサンプ
ルとして読みます。
ノイズのある線形システムにおいて Y(t) が出力で X(t)
が入力であると考えます。ノイズ出力が最小になり干渉出
力とノイズ出力が相関を持たないような、最適な周波数応
答関数を最小自乗法で推定します。オプションで、任意の
順序で文字をセット{ x y c n p a g o }から最大8つまで
指定し、デフォルト[すべて]の代わりにこれらの出力ファ
イルだけを作ることができます。 x = xpower, y = ypower,
c = cpower, n = npower, p = phase, a = admit, g = gain,
o = coh.
-D dt に時系列のサンプルの間隔を設定します[デフォルト
= 1]。
-N name_stem に出力ファイルに使われる名前の主部を与えま
す[デフォルト = "spectrum"]。
-V 冗長モードを選択します。標準エラー出力に経過報告を
送ります[デフォルトでは"静かに"走ります]。
-W 出力ファイルの1列目に周波数でなく波長を書きます[デ
フォルト = 周波数(サイクル / dt)]。
-bi バイナリ入力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。バイナリファイルの
列数に応じて n を付け加えてください[デフォルトは2で
す]。
-bo バイナリ出力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。
用例
data.g は mGal 単位の重力データで、 1.5 km 間隔にサンプルさ
れているものとします。このパワースペクトルを単位 mGal**2-km
で、ファイル data.xpower に書き出します。
spectrum1d data.g -S256 -D1.5 -Ndata
data.g に加えてyou have data.g と同じ位置でサンプルされた
m 単位の地形データ data.t があるとします。 data.t を入力、
data.g を出力と考えて、その伝達関数の様々な特徴を推定します。
paste data.t data.g | spectrum1d -S256 -D1.5 -Ndata -C
関連事項
gmt(l), grdfft(l)
参考文献
Bendat, J. S., and A. G. Piersol, 1986, Random Data, 2nd
revised ed., John Wiley & Sons.
Welch, P. D., 1967, "The use of Fast Fourier Transform for
the estimation of power spectra: a method based on time
averaging over short, modified periodograms"
,
IEEE Transactions on Audio and Electroacoustics, Vol
AU-15, No 2.
1 May 2003 SPECTRUM1D(l)
Man(1) output converted with
man2html