您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > MATLAB中V-Blast的ZF和MMSE检测算法仿真代码
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);%信源AA=randint(tx*L,1);%经过BPSK调制的V-Blast发射矩阵XX=zeros(tx,L);fork=1:txX(k,:)=(-1).^(A(k:tx:end)+1);end%信道传输============================================================%快衰落高斯信道HH=sqrt(1/2)*(randn(rx,tx,L));%均值为0方差为1的高斯白噪声nn=sqrt(1/2)*(randn(rx,L));%未叠加噪声的接收信号RR=zeros(rx,L);fork=1:LR(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);end%检测%ZF==================================================================disp('berz');berz=[];%在不同的信噪比下计算ZF接收机误比特率berzform=SNRm%每个子信道的平均信噪比为snr的接受信号R_noisedsnr=10^(m/10);R_noised=awgn(R,m,1);x=[];a=zeros(tx*L,1);%逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X的估计xfort=1:Lr=R_noised(:,t);%迫零矩阵GG=pinv(H(:,:,t));y=G*r;xtemp=(y=0)-(y0)+0;x=[x,xtemp];end%从x求A的估计afork=1:txa(k:tx:end)=(x(k:tx:end)+1)/2;end%比较A和a计算错值率temp_ber[errbit,temp_ber]=biterr(A,a);berz=[berz,temp_ber];endsemilogy(EbN0,berz,'o-r'),gridonxlabel('Eb/N0(dB)');ylabel('误比特率');title('不同天线配置ZF系统仿真传输特性')text(9,0.15,'\fontsize{14}\color{red}\fontname{隶书}2*2')holdon发送天线m1,接受天线m2,高斯白噪声,MMSE时的仿真程序%发射天线数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);%信源AA=randint(tx*L,1);%经过BPSK调制的V-Blast发射矩阵XX=zeros(tx,L);fork=1:txX(k,:)=(-1).^(A(k:tx:end)+1);end%信道传输============================================================%快衰落高斯信道HH=sqrt(1/2)*(randn(rx,tx,L));%均值为0方差为1的高斯白噪声nn=sqrt(1/2)*(randn(rx,L));%未叠加噪声的接收信号RR=zeros(rx,L);fork=1:LR(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);end%检测%MMSE===============================================================disp('berz');berz=[];%在不同的信噪比下计算ZF接收机误比特率berzform=SNRm%每个子信道的平均信噪比为snr的接受信号R_noisedsnr=10^(m/10);R_noised=awgn(R,m,3);x=[];a=zeros(tx*L,1);%逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X的估计xfort=1:Lr=R_noised(:,t);HH=H(:,:,t);xtemp=zeros(tx,1);w=inv(HH'*HH+(1/snr)*eye(tx))*HH';y=w*r;xtemp=(y=0)-(y0)+0;x=[x,xtemp];end%从x求A的估计afork=1:txa(k:tx:end)=(x(k:tx:end)+1)/2;end%比较A和a计算错值率temp_ber[errbit,temp_ber]=biterr(A,a);berz=[berz,temp_ber];endsemilogy(EbN0,berz,'o-b'),gridonxlabel('Eb/N0(dB)');ylabel('误比特率');title('不同天线配置MMSE系统仿真传输性能')text(8,0.08,'\fontsize{14}\color{blue}\fontname{隶书}1*2')holdon
本文标题:MATLAB中V-Blast的ZF和MMSE检测算法仿真代码
链接地址:https://www.777doc.com/doc-3073770 .html