核心提示:OSIC仿真源码...
function [ueschedul,H]=S_PF(SNR,M,H1,weight,indexin)
users=size(H1,1);
normH=sum(abs(H1).^2,2);
normH=normH'.*SNR;
weight0=find(indexin==0);
user_index=1:users;
if length(weight0)>0
select_w=normH.*(indexin<1);
else
select_w=log2(1+normH)./weight;
end
index_i=find(select_w==max(select_w));
ueschedul(1)=index_i;
t=1;
user_index1=zeros();
for i=1:1:length(user_index)
if user_index(i)~=index_i
user_index1(t)=user_index(i);
t=t+1;
end
end
user_index=user_index1;
for j=2:1:M
for ue_left=1:1:length(user_index)
ueschedul(j)=user_index(ue_left);
[M,esinr]=MMSE_OSIC_receiver(H1(ueschedul,:),SNR(ueschedul));
t_rb(ue_left)=sum(log2(1+esinr));
end
index_i1=find(t_rb==max(t_rb));
index_i=user_index(index_i1);
ueschedul(j)=index_i;
t=1;
user_index1=zeros();
for i=1:1:length(user_index)
if user_index(i)~=index_i
user_index1(t)=user_index(i);
t=t+1;
end
end
user_index=user_index1;
end
H=H1(ueschedul,:);
联系:highspeedlogic
QQ :1224848052
微信:HuangL1121
邮箱:1224848052@qq.com
微信扫一扫: