《MATLAB中V-Blast的ZF和MMSE检测算法仿真代码》由会员分享,可在线阅读,更多相关《MATLAB中V-Blast的ZF和MMSE检测算法仿真代码(3页珍藏版)》请在人人文库网上搜索。
1、MATLAB中V-Blast的ZF和MMSE检测算法仿真代码发送天线m1,接受天线m2,高斯白噪声,ZF时的仿真程序% 发射天线数tx,接收天线数rx,发射矩阵长度L(帧长) tx=m1; rx=m2; L=10000; Modulation=BPSK; EbN0=0:5:20; B=30000;Ts=1/24300; % 建立EbN0与SNR之间的换算关系 SNR=EbN0-10*log10(Ts*B); % 信源A A=randint(tx*L,1); % 经过BPSK调制的V-Blast发射矩阵X X=zeros(tx,L); for k=1:tx X(k,:)=(-1).(A(k:tx。
2、:end)+1); end % 信道传输=% 快衰落高斯信道H H=sqrt(1/2)*(randn(rx,tx,L); % 均值为0方差为1的高斯白噪声n n=sqrt(1/2)*(randn(rx,L); % 未叠加噪声的接收信号R R=zeros(rx,L); for k=1:L R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k); end % 检测 %ZF=disp(berz); berz=; % 在不同的信噪比下计算ZF接收机误比特率berz for m=SNR m % 每个子信道的平均信噪比为snr的接受信号R_noised snr=10(m/10); R_nois。
3、ed=awgn(R,m,1); x=; a=zeros(tx*L,1); % 逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X的估计x for t=1:L r=R_noised(:,t); % 迫零矩阵G G=pinv(H(:,:,t); y=G*r; xtemp=(y=0)-(y=0)-(y0)+0; x=x,xtemp; end % 从x求A的估计a for k=1:tx a(k:tx:end)=(x(k:tx:end)+1)/2; end % 比较A和a计算错值率temp_ber errbit,temp_ber=biterr(A,a); berz=berz,temp_ber; end semilogy(EbN0,berz,o- b),grid on xlabel(Eb/N0(dB); ylabel(误比特率); title(不同天线配置MMSE系统仿真传输性能) text(8,0.08,fontsize14colorbluefontname隶书1*2)hold on。