0

我想知道Matlab中是否有一个最小二乘程序可以及时将模板信号缩放为测量信号。假设我的模板是大约的信号。1秒,但测量中对应的部分是1.2秒。现在我想将我的模板也缩放到 1.2 秒。当然,可以简单地在几个步骤中重新调整模板,与每个步骤的信号互相关并找到最大值。然而,这会大大减慢我的程序。Matlab 的 lsqcurvefit 需要两个长度相等的向量,其中一个向量的长度正是我想要改变的。有人有想法吗?谢谢!

4

1 回答 1

0

你真的尝试过简单的fminsearch函数方法吗?它可能没有你想象的那么慢。

例如(未经测试 - 仅用于说明)

x=template; y=data;
fn=@(p)sum(( x(:)-y( 1+max(0,min(length(y),floor([0:(length(x)-1)]-p(1)).*p(2))) ) ).^2)
b=fminsearch(fn,[0 1]); % [offset, scale]

您可能需要调整限制等!

如果它不适合,您还可以查看 CPM 工具箱(尽管它可能对您的需求来说过于复杂) http://www.cs.toronto.edu/~jenn/alignmentStudy/

于 2010-08-19T16:26:54.450 回答