数値係数でリンクされた 2 つの波形があります。Matlab でこの係数を計算するには、2 つの波形間で最適なスケーリング (最小二乗法) を使用する必要があります。残念ながら、これを行う方法がわかりません。2 つの波形は、私が計算しようとしている地震波の速度に関連する地震信号です。何か案は?さらに情報が必要ですか?
1397 次
2 に答える
1
W1とW2を2つのベクトルと呼びます。これが機能するには、列ベクトルである必要があります。列ではなく行の場合は転置します。次に、W1 = k * W2となるようなkの値を見つけたい場合は、バックスラッシュを使用します。
k = W2\W1;
ここでの円記号は、要求に応じて線形回帰(最小二乗)推定量を提供します。もちろん、これは未知の位相シフトの場合を処理しません。
于 2009-12-16T11:29:21.303 に答える
1
位相シフトを処理する必要なしに線形係数を推定する安っぽい方法の 1 つは、波の推定されたスケールの比率を計算することです。最も簡単な方法は、標準偏差を使用することです。
k = std(W1) / std(W2);
堅牢性が気になる場合は、MAD または IQR に置き換えます。MAD は絶対偏差の中央値であり、次のように (やや非効率的に) 「インライン化」できます。
MAD = @(x)(median(abs(bsxfun(@minus,x,median(x)))));
k = MAD(W1) / MAD(W2);
IQR は四分位範囲であり、適切な分位計算が必要です。を使用すると、これを非効率的に実装できますsort
。これは読者への演習として残しておきます。
于 2009-12-16T18:51:45.133 に答える