Help with CVX program

Hi everyone!

I am new in CVX.
Could you, please, help me (or give an advice) what I need to change to make the following problem work.

Namely, I try to implement the following problem:

where

I have to versions of the code, but non of them seems to work and give correct result:
Version 1:

   clear all 
disp('Initialization...')
%number of samples 


% true  number of spikes nspikes = floor(N/19.2);
N=5;

theta_m=linspace(0.1,pi*0.9,3); 
phi_m=linspace(0.1,2*pi*0.9,3); % second azimuth (0, 2*pi);

%number of spikes
nspikes= length(theta_m);

%coeffs 
coeff= rand(nspikes,1);

% matrix  of samples 
YY=sammax(N, theta_m(:), phi_m(:));

y_mes=YY*coeff; % data vector 


%%computing needed Legendre polinomials 

P=cell_of_LegendreP(N);

%% for SPD coffeicients

Ank=@(n,k) sqrt(((2*n+1)/(4*pi))*factorial(n-k)/factorial(n+k)); 
% sqrt((2*n+1)/(4*pi)*factorial(n-abs(k))/factorial(n+abs(k)));

% Toepliz matrices 
Q=@(M,j) diag(ones(M-abs(j),1),j);


disp('Sonving SDP...')

%% Solve SDP 1
cvx_solver SDPT3
cvx_precision high
cvx_begin sdp
%cvx_begin sdp 
 variable X((2*N+1)^2,(2*N+1)^2) hermitian; 
 variable c((N+1)^2) complex;
 expressions  K((2*N+1)^2) complex;     
 for k= -N:N
     for l = -N:N
       hlk=cvx(0); 
       for n= 0:N
           hnlk=cvx(0); 
          % hnkl   formular 
                 I=-n:n;
                if ismember(k,I)&&ismember(l,I)
                 p = P{n^2+1+n+k};
                 hnlk= c(n^2+1+n+k)*Ank(n,k)*p(n+1+l);
                 else    
                 hnlk=0;
                 end
         % hnkl  formular 
        hlk= hlk+ hnlk; 
       end 
        K((N+k)*(2*N+1)+N+1+l)= hlk; 
     end 
 end     
 disp('First constraint...')
 [ X, K; K', 1] >= 0;
% trace([ X, K; K', 1]) == 2; 
 trace(X) == 1;
 % h  == K; 
  for j = -2*N:2*N
    for k = -2*N:2*N
        if isinhalfspace1(j,k)
        %clear th;
        th = kron(Q(2*N+1,j),Q(2*N+1,k))';  
     th(:)'*X(:) == double( (j==0) & (k==0));
        end 
    end
  end
 disp('Second constraint...')
maximize(real(c'*y_mes))
cvx_end

Version 2:

disp('Sonving SDP 2...')

%% Solve SDP
cvx_solver SDPT3
cvx_precision high
cvx_begin sdp
     variable X((2*N+1)^2+1,(2*N+1)^2+1) hermitian 
     variable c((N+1)^2) complex
     expressions  K((2*N+1)^2) complex
     dual variable R
     R: X >= 0
      % constraints
     for k = -N:N
         for l = -N:N
           hlk = 0; 
           % hlk   formular 
           for n = 0:N
               hnlk = 0; 
              % hnkl   formular 
                     I=-n:n;
                    if ismember(k,I)&&ismember(l,I)
                     p = P{n^2+1+n+k};
                     hnlk = c(n^2+1+n+k)*Ank(n,k)*p(n+1+l);
                    end
            hlk = hlk+ hnlk; 
           end 
            K((N+k)*(2*N+1)+N+1+l) = hlk; 
         end 
     end     
     disp('First constraint...')
    trace(X) == 2; 
     X((2*N+1)^2+1,(2*N+1)^2+1) == 1;    
     X(1:(2*N+1)^2,(2*N+1)^2+1) == K;
     % X((2*N+1)^2+1,1:(2*N+1)^2)' == K;%K(2:(2*N+1)^2+1) ;
      disp('First constraints...')
      MM=X(1:(2*N+1)^2,1:(2*N+1)^2);
      for j = -2*N:2*N
        for k = -2*N:2*N
              if isinhalfspace1(j,k)
              %clear th;
               th = kron(Q(2*N+1,j),Q(2*N+1,k))';
               th(:)'* MM(:) == double( (j==0) & (k==0));
               end 
        end
      end
 disp('Second constraint...')
 maximize(real(c'*y))
cvx_end

Moreover the algorithm fails when N increases, for example N=10.

I also have tried to use MOSEK as a solver, but any way it does not work.

P.S: here for sammax I use :

    function YN =sammax(N,th,phi)
    %n = floor((N+1)^2);

    Y1= [];

th = th(:); %0:pi
phi = phi(:); %0:2*pi

for s = 0:N
    for r = -s:s
        Y1 = [Y1 harmonicY(s,r,th,phi)];% sphHarm(s,r,th,phi)];%
    end
end 
YN= Y1';

where harmonicY are spherical harmonics