clear
close all
clc
K=8;%地面用户
M=12;%无线天线
beampattern=5e-5;%增益阈值
B_db=-60;%1m的通讯功率
B=10^(B_db/10);
sigma_dBm = -110;%%AWGN 功率
sigma= 10^(sigma_dBm/10)/1000;
Vmax=30;%最大速度
H=100;%高度
Pmax=0.5;%最大功率
T=30;
t=1;
iter_num=15;
J=18;
ak=1;%速率权重
m(1,:)=linspace(450,550,J);
m(2,:)=600;
m=m’
mH=5;
threshold=0;
%用户位置
u_begin=[350,400]‘;
u_over=[650,400]’;
u(:,1)=linspace(u_begin(1),u_over(1),K);
u(1:4,2)=linspace(u_begin(2),250,4);
u(5:8,2)=linspace(250,u_begin(2),4);
q=[400,400];
% 用户位置偏转角 通道向量
for a=1:K
AOk(a)=acos(H/sqrt((q(1,1)-u(a,1))(q(1,1)-u(a,1))+(q(1,2)-u(a,2))(q(1,2)-u(a,2))+HH));
for aa=1:M
A(aa,a)=(exp(1i2pi0.5*(aa-1)*cos(AOk(a))))‘;
end
hk(:,a)=sqrt(B/((q(1,1)-u(a,1))^2+(q(1,2)-u(a,2))^2+H^2))*A(:,a);
HK(:,:,a)=hk(:,a)*hk(:,a)’;
end
%感兴趣区域偏转角
for am=1:J
AOm(am)=acos(H/sqrt((q(1,1)-m(am,1))^2+(q(1,2)-m(am,2))^2+mHmH));
for aam=1:M
Am(aam,am)=(exp(1i2pi0.5*(aam-1)*cos(AOm(am))))‘;
end
hk(:,am)=sqrt(B/((q(1,1)-m(am,1))^2+(q(1,2)-m(am,2))^2+mH^2))*Am(:,am);
HK(:,:,am)=hk(:,am)*hk(:,am)’;
end
%初始信号
sb=rand(M,1)+j*rand(M,1);
for i = 1:12
ul = [zeros(1,i-1),sb’,zeros(1,12-i)];
Ul(i, = ul;
end
Rs=zeros(12,12,iter_num+1)
Rs(:,:,1)=Ul*Ul’
% rb = xcorr(sb);
% Rb=rb(end-length(sb)+1:end)
% Rsb=toeplitz(Rb);
wb=rand(M,8)+j*rand(M,8);
for ii=1:8
Wb(:,:,ii)=wb(:,ii)*wb(:,ii)’
end
WW=zeros(12,12,8,iter_num+1)
WW(:,:,:,1)=Wb;
for iter=1:1
cvx_begin quiet
variable wl(12,8) complex
variable s0(12,1) complex
for i = 1:12
u = [zeros(1,i-1),s0',zeros(1,12-i)];
U(i,:) = u;
end
W1=0;
akl1=0;
for i1=1:K
W1=W1+square_pos(norm(hk(:,i1)'*wl(:,i1),"fro"));
akl1=akl1+square_pos(norm(hk(:,i1)'*wb(:,i1),"fro"));
end
for i2=1:K
akl(i2)=log(akl1-square_pos(norm(hk(:,i2)'*wb(:,i2),"fro"))+square_pos(norm(hk(:,i2)'*Ul,"fro"))+sigma^2)/log(2);
Bkl(:,:,i2)=(1/log(2)/(akl1-square_pos(norm(hk(:,i2)'*wb(:,i2),"fro"))+square_pos(norm(hk(:,i2)'*Ul,"fro"))+sigma^2))*HK(:,:,i2);
% trace(((1/log(2))*HK(:,:,i2))*(Wl(:,:,i2)-WW(:,:,i2,iter))/(akl1-trace(HK(:,:,i2)*WW(:,:,i2,iter))+trace(HK(:,:,i2)*RR(:,:,iter))+sigma^2))
end
for i3=1:K
Bklw(i3)=(square_pos(norm(sqrtm(Bkl(:,:,i3))*wl(:,i3),"fro"))-square_pos(norm(sqrtm(Bkl(:,:,i3))*wb(:,i3),"fro")));
end
for i4=1:K
Bklr(i4)=square_pos(norm(sqrtm(Bkl(:,:,i4))*U,"fro"))-square_pos(norm(sqrtm(Bkl(:,:,i4))*Ul,"fro"));
end
for i5=1:K
q=Bklw(i5);
Bklw(i5)=0;
BklwS(i5)=sum(Bklw);
Bklw(i5)=q;
end
for i6=1:K
rk(i6)= log(W1+square_pos(norm(hk(:,i1)'*U,"fro"))+sigma^2)/log(2)-(akl(i6)+BklwS(i6)+Bklr(i6))
end
% subject to
% for e=1:J
% Am(:,J)'*(W+RS)*Am(:,J)>=((q(1,1)-m(e,1))^2+(q(1,2)-m(e,2))^2+mH^2)* threshold
% end
% Wt+trace(RS)<=Pmax
%
end