Add lyh-非满秩相变
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
N = 32;
|
||||
M =4;
|
||||
R =2;
|
||||
epi = 0.02;
|
||||
noise = [0.1,0.1^(0.5)];
|
||||
%contri1 = zeros(M,N);
|
||||
%contri2 = zeros(M,N);
|
||||
con1 = zeros(20,2);
|
||||
con2 = zeros(20,2);
|
||||
re1 = zeros(20,2);
|
||||
re2 = zeros(20,2);
|
||||
|
||||
for noise_k = 1:2
|
||||
for k = 1:20
|
||||
for loop = 1:50
|
||||
|
||||
|
||||
FAR_model = zeros(N,M*N);
|
||||
order = randperm(M)-1;
|
||||
for n = 0 : N-1
|
||||
Cn = order(ceil(rand()*R));
|
||||
for q = 0 : N-1
|
||||
for p = 0:M-1
|
||||
FAR_model(n+1,q*M+p+1) = exp(1i*2*pi*p/M*Cn+1i*2*pi*q/N*n*(1+Cn*epi));
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
x = zeros(M,N);
|
||||
col = randperm(N,k);
|
||||
x(:,col) = randn(M,k) + 1i*randn(M,k);
|
||||
y = FAR_model * x(:) + (randn(N,1)+1i*randn(N,1))*noise(noise_k);
|
||||
|
||||
cvx_begin
|
||||
variable x_e(M,N) complex
|
||||
norm21 = 0;
|
||||
for i = 1:N
|
||||
norm21 = norm21 + norm(FAR_model(:,(i-1)*M+1:i*M)*x_e(:,i));
|
||||
end
|
||||
minimize(norm21)
|
||||
subject to
|
||||
norm(FAR_model*x_e(:) - y) <= sqrt(N)*noise(noise_k);
|
||||
cvx_end
|
||||
contri2 = zeros(N,1);
|
||||
re_err = zeros(N,1);
|
||||
for i = 1:N
|
||||
if ismember(i,col)
|
||||
re_err = re_err+FAR_model(:,(i-1)*M+1:i*M)*(x_e(:,i));
|
||||
end
|
||||
contri2(i) = norm(FAR_model(:,(i-1)*M+1:i*M)*(x_e(:,i)));
|
||||
end
|
||||
re1(k,noise_k) = re1(k,noise_k) +norm(FAR_model*x(:)-re_err)/norm(FAR_model*x(:));
|
||||
con1(k,noise_k) = con1(k,noise_k) + 1-sum(contri2(col))/sum(contri2);
|
||||
|
||||
|
||||
cvx_begin
|
||||
variable x_e(M,N) complex
|
||||
norm21 = 0;
|
||||
for i = 1:N
|
||||
norm21 = norm21 + norm(x_e(:,i));
|
||||
end
|
||||
minimize(norm21)
|
||||
subject to
|
||||
norm(FAR_model*x_e(:) - y) <= sqrt(N)*noise(noise_k);
|
||||
cvx_end
|
||||
re_err = zeros(N,1);
|
||||
contri2 = zeros(N,1);
|
||||
for i = 1:N
|
||||
if ismember(i,col)
|
||||
re_err = re_err+FAR_model(:,(i-1)*M+1:i*M)*(x_e(:,i));
|
||||
end
|
||||
contri2(i) = norm(FAR_model(:,(i-1)*M+1:i*M)*(x_e(:,i)));
|
||||
end
|
||||
re2(k,noise_k) = re2(k,noise_k) +norm(FAR_model*x(:)-re_err)/norm(FAR_model*x(:));
|
||||
con2(k,noise_k) = con2(k,noise_k) + 1-sum(contri2(col))/sum(contri2);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
save("FAR_noise_0206.mat")
|
||||
Reference in New Issue
Block a user