我输出矩阵Y为:
Y=E*A;
其中
E=Exponential phase vectors (1xM)
A=Fixed complex numbers (MxN)
说,
M=4;N=256;
a = complex(randn(4,256),randn(4,256)); % coefficient matrix of "A"
theta=has four values
目标:
What range of theta will minimize the peak of sum expression of a kth column
of "Y" ? i.e.,
Theta受和m = 1,2,...,M
例如,
Min: Y(theta)=Peak{a11*exp(j*theta1)+ a21*exp(j*theta2)+ ...+aM1*exp(j*thetaM)}
我的问题: 我可以使用MATLAB开发逻辑来制定这样的问题并解决它吗?
我认为这与带有约束的线性规划有关(??)。
答案 0 :(得分:0)
我的方法是使用matlab优化工具箱中的fmincon
函数。
你的θ矢量将是你正在寻找的解决方案的x向量。 然后通过将目标函数f(x)定义为Yk与0之间所有K之间的最大值来指定问题。
objectiveFunction = @(x) maxY(...
x,... %
A);
使用个体约束lb和ub(下限和上限)表达约束0< = theta< 2pi。
然后调用fmincon
options = optimset('Algorithm','sqp', ...
'Display', 'iter-detailed',...
'UseParallel', 'always',...
'MaxFunEvals', 3000);
[result, ~, ~] = fmincon(objectiveFunction,x0,[],[],[],[],lb,ub,[],options);