0

我有一个信号X1 = [a1,...aN][a1,....,aN]总是 > 0

我还有其他 599X2, X3, ...,X600个相同长度(N)的信号X1。这些信号可以假定值 >0 和 <0。

我知道所有 600 个信号的总和始终为正且等于信号S
S = X1 + X2 + ... + X600

我想分配第一个信号 X1 以便以最好的方式减少其他信号的负值......你能建议我怎么做(我使用 matlab)吗?

在最好的情况下S = X2' + X3' + ... + X600'X2', X3'等是积极的信号。

谢谢

编辑

% signal x1
x=rand(1,1000);
x(x<0)=0.01;

% signals x2,....,x599 contained in the rows of A
A=rand(599,1000);
4

1 回答 1

0

似乎您希望通过 (A) 最小化以下目标 (J):

J = sum( abs( x(:,1) - A*x(:,1)) ) +...
             sum(negativehockeystick( x(:, 2:end) + A.*x(:,1))

其中 A 是一个 599*N 矩阵(优化的变量)。

'negativehockeystick' 是函数 -min(x,0)

我认为 cvx 可以处理这个问题,因为它看起来是凸的(在 A 中),但我不确定

于 2015-03-27T15:42:25.560 回答