我有一个信号X1 = [a1,...aN]
,其中值[a1,....,aN]
始终> 0
我还有其他599个信号X2, X3, ...,X600
(N)
X1
S
。
这些信号可以采用值> 0和<0。
S = X1 + X2 + ... + X600
我知道所有600个信号的总和总是正的并且等于信号S = X2' + X3' + ... + X600'
我想分发第一个信号X1,以便以最佳方式减少其他信号的负值...你能建议我怎么做(我用matlab)吗?
在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);
等是正信号。
谢谢
修改
{{1}}
答案 0 :(得分:0)
您似乎希望最小化以下目标(J)而不是(A):
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中),但我不确定