最小二乘最佳缩放

时间:2009-12-16 10:57:54

标签: matlab math signal-processing least-squares

我有两个波形,它们通过数字因子相连。我需要在两个波形之间使用最佳缩放(最小二乘)来在Matlab中计算这个因子。不幸的是我不知道该怎么做。两种波形是与地震波速度相关的地震信号,我正在尝试计算。有任何想法吗?需要更多信息?

2 个答案:

答案 0 :(得分:1)

将两个向量调用W1和W2。为此,它们必须是列向量。如果它们是行而不是列,则转置它们。然后,如果我们希望找到k的值,使得W1 = k * W2,那么只需使用反斜杠。

k = W2\W1;

反斜杠在这里为您提供了一个线性回归(最小二乘)估计器,如请求的那样。当然,这不能处理未知的相移情况。

答案 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低效地实现这一点。我将此作为练习留给读者。