您现在的位置:首页 >> ★免费资源 >> 源码下载 >> 内容

MATLAB代做-python代做-FPGA代做-vblast的各种检测

时间:2019-7-14 22:01:33 点击:

  核心提示:MATLAB代做-python代做-FPGA代做-vblast的各种检测 ...
%***************************************************************************************%
%程序名称:vblast.m
%功能描述:vblast的各种检测算法
%输入信息:数据帧长度L
%         信噪比范围   [0:2:20]
%输出变量:BER随SNR变化曲线
%子函数  : modulation(input_frame, index) 调制信号产生
%          demodulation(input_modu, index)  解调
%          SIC(tx,Q,r_sic,R1, index) SIC检测算法
%          MMSE_SIC (tx,G1,r, h_mmse_sic,rx,sigma,index) MMSE_SIC检测算法
%          ZF_SIC(tx,G,r_zf_sic,h_zf_sic,rx,index) ZF_SIC检测算法
%          OSIC(tx,r_osic, h_osic,p0,g1,index,sigma) OSIC检测算法
%          SQRD(h,tx,r_sqrd,index)  SQRD检测算法
%创建日期:2010-12-17
%创建作者:方会妮
%修改信息:按照编程规范修改
%修改日期:2010-12-17
%***************************************************************************************%
clc               %清除命令窗口
clear             %清空寄存器
tic               %与toc配对,统计程序运行时间
tx=4;rx=4;L=400;  %发射天线数,接收天线数,帧长
SNRindB=[0:2:20]; %定义信噪比的范围 
Meantimes=50;     %每个SNR的统计平均次数
index=1;          %选择调制解调的方式(bpsk)
for i=1:length (SNRindB)
     SNR(i)=10^(SNRindB(i)/10);
     sigma =1/sqrt(SNR(i));
  for times=1:Meantimes,  
     A=randint(1,L);                                           % 信源A
     a=modulation(A,index);                                    % 调制 
     X=reshape(a,tx,L/tx);                                     % 经过BPSK调制的V-Blast发射矩阵X
     n=1/sqrt(2)*sigma*(randn(rx,L/tx)+sqrt(-1)*randn(rx,L/tx));%产生均值为0,方差为1的复高斯噪声 
     dec1= zeros(L,1);
     dec2= zeros(L,1);
     dec3= zeros(L,1);
     dec4= zeros(L,1);
     dec5= zeros(L,1);
     dec6= zeros(L,1);
     dec7= zeros(L,1);
% 检测
     for col_idx = 1:L/tx
       H=sqrt(1/2)*(randn(rx,tx)+sqrt(-1)*randn(rx,tx));    % 快衰落Rayleigh信道H
       h_mmse_sic=H;                                        % H在运行过程中会改变,保证每种算法的H相同
       h_zf_sic=H;
       h_osic=H;
       h=H;
       R(:,col_idx)=H*X(:,col_idx)+n(:,col_idx);            %接收信号R
       r_sic=R(:,col_idx);
       r_zf_sic=R(:,col_idx);
       r_osic=R(:,col_idx);
       r_sqrd=R(:,col_idx);
       r=R(:,col_idx);
       G=pinv(H);                                           %ZF中用的H1
       G1=inv(H'*H+sigma.^2*eye(tx))*H';                    %MMSE中用的w'
       g1=G1;
       [gk p0]=min(sum(abs(g1).^2,2));                      %OSIC算法中第一次检测的符号
       [Q,R1]=qr(H);
% ZF 检测*************
       det_zf = G*R(:, col_idx);
       dec1((col_idx-1)*tx+[1:tx],:) =demodulation(det_zf.',index).';

% MMSE 检测*************
       det_MMSE=G1*R(:, col_idx);
       dec2((col_idx-1)*tx+[1:tx],:) = demodulation(det_MMSE.',index).';
% SIC 检测*************** 
      dec3((col_idx-1)*tx+[1:tx],:) =SIC(tx,Q,r_sic,R1, index); 
 % MMSE-SIC 检测**********
       dec4((col_idx-1)*tx+[1:tx],:) =MMSE_SIC (tx,G1,r, h_mmse_sic,rx,sigma,index);       
 % ZF_SIC 检测*************   
       dec5((col_idx-1)*tx+[1:tx],:)=ZF_SIC(tx,G,r_zf_sic,h_zf_sic,rx,index); 
 % OSIC 检测**************
       dec6((col_idx-1)*tx+[1:tx],:) =OSIC(tx,r_osic, h_osic,p0,g1,index,sigma);
 % SQRD检测 **************
       dec7((col_idx-1)*tx+[1:tx],:)=SQRD(h,tx,r_sqrd,index);
    end     
   NumErr1(i,times)=sum(abs(dec1.'~=A));     %每个信噪比下第times循环的误码个数
   NumErr2(i,times)=sum(abs(dec2.'~=A));
   NumErr3(i,times)=sum(abs(dec3.'~=A)); 
   NumErr4(i,times)=sum(abs(dec4.'~=A));
   NumErr5(i,times)=sum(abs(dec5.'~=A));
   NumErr6(i,times)=sum(abs(dec6.'~=A));
   NumErr7(i,times)=sum(abs(dec7.'~=A));
  end
end
 Ber1=mean(NumErr1.')/L;                      %每个信噪比下平均的误码率
 Ber2=mean(NumErr2.')/L;
 Ber3=mean(NumErr3.')/L;
 Ber4=mean(NumErr4.')/L;
 Ber5=mean(NumErr5.')/L;
 Ber6=mean(NumErr6.')/L;
 Ber7=mean(NumErr7.')/L;
semilogy (SNRindB,Ber1,'-bd')
hold on
semilogy (SNRindB,Ber2,'-mx')
hold on
semilogy (SNRindB,Ber3,'-g>')
hold on
semilogy (SNRindB,Ber4,'-b*')
hold on
semilogy (SNRindB,Ber5,'-ro')
hold on
semilogy (SNRindB,Ber6,'-gd')
hold on
semilogy (SNRindB,Ber7,'-k*')
xlabel('Eb/No in dB');
ylabel('error probability');  
legend('zf','mmse','sic','mmse-sic','zf-sic','osic','sqrd');
toc


  联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

Tags:VBLAST 
作者:vblast 来源:vblast
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment