 # The SOCP problem of sidelobe control

Dear friends
I am working on a conventional beamforming problem. I can successfully construct weights of CBF through CVX. But now I want to do some optimization about the sidelobe level of CBF. This is my coding.

cvx_begin
variable W1(N) complex
*aaa=(W1’)W1;
minimize aaa
subject to
W1’a_doa == 1;
abs(W1’
(exp((n-1)’(-1i2pidsin(theta_SLpi/180)/lamda))))<=0.01;
** % it means the sidelobe level shoule be less than -40dB **
cvx_end

I added a constrain that “abs(W1’(exp((n-1)’(-1i2pidsin(theta_SL*pi/180)/lamda))))<=0.01;”
theta_SL is the range of sidelobe angle. But why it shows :
Status: Infeasible
Optimal value (cvx_optval): +Inf
I think it is also a convex problem. Thanks.

Well, you had a feasible problem, then you added a constraint, and it became infeasible. That can happen.If you got to the point that CVX reported the problem as infeasible, that means that it accepted your problem, but your constraints are mutually inconsistent.

Everything in https://yalmip.github.io/debugginginfeasible/ except for paragraph 1, which is YALMIP-specific, should be applicable to you.

`variable slack nonnegative`
`minimize(slack)`
`+ slack`
Actually, you don’t really need to declare `slack` to be nonnegative in this case. if the “optimal” value of slack is negative, that means the problem was already feasible, with room to spare.So presumably, `slack` will come out positive, given that the problem as in your formulation, is infeasible.