0

X1 = [a1,...aN][a1,....,aN]が常に >0の信号があります

X2, X3, ...,X600の同じ長さ(N)の信号が他に 599 個ありX1ます。これらの信号は、値 >0 および <0 を想定できます。

600 個のシグナルすべての合計は常に正であり、シグナルに等しいことを知っています。S
S = X1 + X2 + ... + X600

他の信号の負の値を可能な限り最善の方法で減らすために、最初の信号 X1 を配布したいと思います...その方法を教えてください(私はmatlabを使用しています)?

etc が正のシグナル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

次の目標 (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 で) 凸状に見えるので、この問題を処理できると思いますが、よくわかりません。

于 2015-03-27T15:42:25.560 に答える