アーキテクチャと物理

このセクションでは、gwexpy で実装されている独自のアルゴリズム、物理モデル、および数学ロジックについて詳説します。パッケージの解析ツールの背後にあるメカニズムを理解したい高度なユーザーおよび開発者向けのリファレンスとして機能します。

物理フィールドとフーリエ空間

4次元フィールド操作

gwexpy は、時間と3つの空間次元を表す4次元フィールド(例:ScalarField)のような多次元データの堅牢な操作を提供します。中核となる機能は、空間領域と波数(\(k\))領域(逆空間)の間のシームレスな変換です。

fft_space および ifft_space メソッドは、多次元高速フーリエ変換(FFT)を使用してこれらの変換を処理します。重要なのは、パッケージが座標変換を正しく管理し、物理単位とグリッド間隔が \(k\) 空間に正確に変換されることを保証することです。

# 空間分解能 dx に基づいて角波数 k が計算されます
k_values = 2 * np.pi * np.fft.fftfreq(npts, d=abs(dx_value))

これにより、物理的な波長や空間周波数に依存するアプリケーションが、寸法的に正しくスケーリングされた出力を受け取ることが保証されます。

スペクトル解析と統計

堅牢な ASD 推定 (ブートストラップ・スペクトログラム)

標準的な振幅スペクトル密度(ASD)の推定は、非定常ノイズの影響を受けやすい場合があります。gwexpybootstrap_spectrogram 関数を通じて、堅牢な推定アプローチを実装しています。

このメソッドは、スペクトログラムの時間軸に沿ってブートストラップ再サンプリング(時間相関データには Moving Block Bootstrap を含む)を使用し、中央値 または 平均値 ASD とその信頼区間を推定します。

分散膨張係数 (Variance Inflation Factor; VIF) Welch法のようにオーバーラップしたデータセグメントから統計量を計算する場合、セグメント間に相関があるため、見かけの分散が人工的に小さくなります。gwexpy は、オーバーラップに使用した窓関数の自己相関に基づいて、分散膨張係数 (VIF) を数学的に正しく適用します。

\[ \text{factor} = \sqrt{1 + 2 \sum_{k=1}^{M-1} (1 - k/M) |\rho_{\text{window}}(k \Delta)|^2} \]

これにより、ブートストラップ法が返す信頼区間が、データの真の統計的不確実性を正確に反映するようになります。

トランジェント信号の FFT

トランジェント信号(インジェクションや物理的なインパルスなど)を解析する場合、標準的な窓関数法を用いると信号の真の振幅がしばしば歪んでしまいます。gwexpy は、過渡信号に最適化されたFFTメソッド _fft_transient を提供しています。時間構造を維持するための予測可能なパディング戦略を使用し、片側スペクトルの振幅を正確に保存します。

高速コヒーレンスエンジン (BruCo)

FastCoherenceEngine は、単一のターゲット・チャネルと、数千にも及ぶ多数の補助チャネル間の Welch コヒーレンスを効率的に計算します。ターゲット信号の FFT と PSD を事前計算・キャッシュすることで無駄な再計算を省き、大規模なノイズ監査における「ブルートフォース・コヒーレンス(BruCo)」の速度を劇的に向上させます。

過渡応答・システム解析

応答関数解析

このフレームワークには、注入された信号(例: スウェプトサインやステップサイン励起)に対するシステムの応答を解析するためのツールが含まれています。detect_step_segments 関数は、スペクトログラム内のインジェクション周波数を自動的に追跡し、励起が安定しているセグメントを特定します。

結合関数(伝達関数の振幅)は、インジェクション中の信号パワーをバックグラウンドパワーと比較することで推定され、バックグラウンドノイズが意図せず伝達関数の推定値をインフレさせないようにします。

\[ \text{CF}(f) = \sqrt{\frac{P_{\text{tgt,inj}}(f) - P_{\text{tgt,bkg}}(f)}{P_{\text{wit,inj}}(f) - P_{\text{wit,bkg}}(f)}} \]

ベイズ・フィッティングとモデリング

一般化最小二乗法 (GLS) と MCMC

相関エラー(ノイズの共分散行列が既知の場合)を持つデータにモデルを適合させる場合、gwexpy は一般化最小二乗法 (GLS) ソルバーをサポートします。フィッティング・コアは emcee パッケージとネイティブに統合されており、マルコフ連鎖モンテカルロ (MCMC) パラメータ推定を実行できます。

GLS の場合、対数尤度関数は完全な逆共分散行列 (\(\Sigma^{-1}\)) を利用し、不均一分散および相関エラーに対応します。

\[ \log p(y|\theta) \propto - \frac{1}{2} r^T \Sigma^{-1} r \]

伝達関数のような複素数値データの場合、フレームワークはエルミート形式 \(r^\dagger \Sigma^{-1} r\) を利用し、振幅と位相の残差を両方とも正しく処理します。

次元削減 (PCA/ICA)

主成分分析 (PCA) と独立成分分析 (ICA) は、TimeSeriesMatrix のようなマルチチャネルのデータ表現に対して直接適用できます。gwexpy は、内部的な次元数の変更(scikit-learn 用に 3D 構造 (チャネル \(\times\)\(\times\) 時間) を 2D 特徴量行列に平坦化し、またそれらを再構築する処理)を管理しつつ、GPS タイムスタンプや物理単位などの重要なメタデータをすべて保存します。

ノイズモデル

gwexpy には、シミュレーションやテストに役立つ、特定の物理ノイズモデルのための組み込みジェネレーターが含まれています。

  • シューマン共鳴 (Schumann Resonance): 地球-電離層空洞のモードに対応する独立したローレンツプロファイルの和を用いて、地磁気バックグラウンドノイズをシミュレートします。

  • フォークト関数 (Voigt Profile): 原子物理学や高Q値の力学系共振で一般的な、Faddeeva 関数を用いたガウシアン(ドップラー広がり)とローレンツィアン(衝突広がり)の特性を組み合わせたスペクトルピークを生成します。