gusucode.com > 非线性BD-GMD均分功率用户排序误码率源码程序 > 非线性BD-GMD均分功率用户排序误码率源码程序/code/optimal_order.m
function [h,UserAntennaNum,stream_num]=optimal_order(h1,h2,h3,h4,UserNum,UserAntennaNum_old,stream_num_old) H=cell(UserNum); H{1}=h1;H{2}=h2;H{3}=h3;H{4}=h4; order=perms(1:UserNum); num=size(order,1); min=9999; h_min=[]; for n=1:num % 遍历每一种排列顺序 h_tmp=[]; for r=1:UserNum % 按每一顺序组成一个矩阵 h_tmp=[h_tmp;H{order(n,r)}]; UserAntennaNum_tmp(r)=UserAntennaNum_old(order(n,r)); stream_num_tmp(r)=stream_num_old(order(n,r)); end [Q,R,P] = BD_GMD_5_stream(h_tmp,UserNum,UserAntennaNum_tmp,stream_num_tmp,1) ; r=diag(R); distance=r(1)-r(end); if distance<min min=distance; h_min=h_tmp; UserAntennaNum=UserAntennaNum_tmp; stream_num=stream_num_tmp; end end h=h_min;