【问题标题】:Least squares optimal scaling最小二乘最优缩放
【发布时间】:2009-12-16 10:57:54
【问题描述】:

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

【问题讨论】:

  • 这两个波是通过振幅因素还是频率因素联系起来的?两个波之间有相移吗?
  • 波形的幅度应该与我要计算的因子成比例。可能会有一个小的相移,但我们现在假设没有。

标签: matlab math signal-processing least-squares


【解决方案1】:

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

k = W2\W1;

此处的反斜杠根据要求为您提供线性回归(最小二乘)估计量。这当然不能处理未知相移的情况。

【讨论】:

  • 这个方程作为估计量的能力有限制吗?我期望值为 2500-4000,但这种方法给我的值为 0.9913。通过从两个列向量中划分单个值,我可以更接近我的预期值。我也想过,有时信噪比极低,这意味着波会完全异相。我将不得不将方程限制在高 S/N 区域。
  • 对不起,我把方程式弄错了。我现在已经纠正了它,但是当我在波形的小段上使用它时,我仍然会得到一个变化很大的结果,而且我期望的结果应该是相当线性的。
  • 如果你想要一个仿射变换,你必须包含一个截距项:betas = [ones(numel(W2),1),W2(:)] \ W1(:),之后W1大约是betas(1) + betas(2) * W2
  • 如果信号异相,那么您可能会看到问题,因为这两个信号将是正交的。但是,两者几乎不可能相差 90 度,尤其是因为您说这不是一个重要因素。我指出的这些 COLUMN 向量是必要的吗?如果不确定,请使用 k=W2(:)\W1(:);
【解决方案2】:

无需处理相移即可估计线性因子的一种简单方法是计算估计的波浪尺度的比率。最俗气的方法是使用标准差:

k = std(W1) / std(W2);

如果您关心稳健性,我会用 MAD 或 IQR 代替; MAD 是中值绝对偏差,您可以(有点低效)“内联”这样:

MAD = @(x)(median(abs(bsxfun(@minus,x,median(x)))));
k = MAD(W1) / MAD(W2);

IQR 是四分位数范围,需要适当的分位数计算。您可以使用sort 低效地实现这一点。我把这个作为练习留给读者。

【讨论】:

  • 顺便说一句,这种东西是脉搏血氧仪的面包和黄油。如果您没有想法,请查看 PO 文献,或查看 Nellcor 和 Massimo 吐出的专利。
猜你喜欢
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 2015-09-26
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 2013-05-20
相关资源
最近更新 更多