# The constraint needs to be corrected by variable M to be used for the problem change

`````` Nt = 9;
Nr = 9;
K = 4;
L = 20;
power = 10^(0/10);
fc = 10;
B = 10;
Tp = 2;
rou = 0.3;
H = (randn(Nt,K)+j*randn(Nt,K))/sqrt(2);
N_pbits = 2*K*L;
msg_bits = randi([0,1],1,N_pbits);
Y = reshape(QPSK_mapper_replace(msg_bits),[K,L]);%产生星座符号矩阵
X0 = chirp_generator( Nt,fc,Tp,B );
p1 = sqrt(rou);%根号rou
p2 = sqrt(1-rou);
at = [1;exp(-j*pi/2);exp(-j*pi);exp(-j*pi*3/2);exp(-j*pi*2);exp(-j*pi*5/2);exp(-j*pi*3);exp(-j*pi*7/2);exp(-j*pi*4)]';
ar = [0,-j*pi*at(2)*sqrt(3)/2,-j*pi*at(3)*sqrt(3),-j*pi*at(4)*3/2*sqrt(3),-j*pi*at(5)*2*sqrt(3),-j*pi*at(6)*5/2*sqrt(3),-j*pi*at(7)*3*sqrt(3),-j*pi*at(8)*7/2*sqrt(3),-j*pi*at(9)*4*sqrt(3)].';
s = j*sqrt((1-rou)*1/3);
aj = ar*at;
B = [p1*H,s*aj].';%eye函数表示对角元素为1，其余全为零的N*N矩阵;.'表示一般转置
C = [p1*sqrt(power)*Y;zeros(Nr,L)];%根号power*Y=S的转置，X_arbi等于参考波形X0的转置
A1 = diag([ones(1,Nt*L),0]);
temp1 = kron(eye(L),B);
temp2 = kron(eye(L),eye(Nt));
F = [temp1'*temp1,-temp1'*vec(C);-vec(C)'*temp1,vec(C)'*vec(C)];
W = [temp2'*temp2,-temp2'*vec(X0);-vec(X0)'*temp2,vec(X0)'*vec(X0)];
cvx_begin sdp
variable M(Nt*L+1,Nt*L+1) hermitian
M(Nt*L+1,Nt*L+1)==1;
minimize(real(trace(F*M)))
subject to
trace(A1*M) == L*power;
trace(W*M) <=1;
M == hermitian_semidefinite(Nt*L+1);
cvx_end
``````

My question is why the solution status of CVX shows unsolvable and what went wrong during CVX solving.

I suggest you post full log output. I doubt many people here have `QPSK_mapper_replace` or `chirp_generator`.

The problem with the program has nothing to do with QPSK_mapper_replacechirp_generator, I just added M (NtL+1, Nt*L+1) ==1 to the original correct problem;

@Michal_Adamaszek 's point is that forum readers can’t run your program because they can’t generate the input data. Therefore readers have to see the solver and CVX output in order to provide help. You should post that in any event. If you can include all the input data in the program and eliminate the need for readers to have those functions, then they’d also be able to run it themselves.

One obvious thing you can do is try a different solver. if you have Mosek available, try that.