gusucode.com > 非线性BD-GMD均分功率用户排序误码率源码程序 > 非线性BD-GMD均分功率用户排序误码率源码程序/code/GMD_encoder.m
function [y,L,Q,GG,P] = GMD_encoder(x,H,period,UserNum,UserAntennaNum,stream_num,beta) %%--------求解各参数-------------------- %{ %} %% H=QRP' %% Changed by Zhangcunyi at 2010/11/09 21:54 %[Q,R,P,G] = BD_GMD_3_general(H,UserNum,UserAntennaNum) ; flag=1; [Q,R,P] = BD_GMD_5_stream(H,UserNum,UserAntennaNum,stream_num,flag) ; GG=diag(diag(R)); G=diag(1./diag(R)); L=R; B=G*R; %%--------求解反馈部分-------------------- a =x(:,1); [row col]=size(H); row1=sum(stream_num); % 发射端中的反馈滤波器 y(1,1) = a(1); for m = 2:row1; g = 0; for k = 1:(m-1); g = B(m,k)*y(k,1) + g; end y(m,1) = a(m)-g; y(m,1) = mod_thp(y(m,1),period);%对经过反馈滤波器的信号进行取模操作 end % 前向滤波和输出 %beta_water=diag(sqrt(WaterFilling_alg(P_all,diag(R),1,1)/Power)); vec_tmp = beta*P*y(1:row1,1); y(1:row,1) = vec_tmp; end