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

MATLAB代做-python代做- ray信道

时间:2019-5-6 21:56:02 点击:

  核心提示:MATLAB代做-python代做- ray信道...
clc;
close all;
clear all;
frame=10^5;   %仿真次数
snrcount=0;
POW_DIV=1/2;  %功率划分因子,在协同情况下,为了保证总的功率一定,每个节点使用1/2的功率发送

    for SNR=0:2:30
        
        sig=10^(SNR/10);
        snrcount=snrcount+1;
        
        err_num_dsd=0;         %设置误码数计数初值
        err_num_coop=0;
        
        for tries=0:frame      %每个信噪比下的仿真次数
            
            tx_coop=1;         %一个标志,表明是否转发
            
            X1=rand(1,90)>0.5; %信息源
            Xs=X1*2-1;         %Bpsk调制
            
            %直接发送
            h_sd=raychan(1);   %产生SD信道,假设信道在一帧内保持不变
            n1=sqrt(1/2)*(randn+j*randn);
            R_dsd=h_sd*sqrt(sig).*Xs+n1; %假设不使用协同,直接传输情况下目的节点接收到的源的信号,y=hx+n,这里,源节点使用全功率发送
            Y_dsd=(conj(h_sd)*sqrt(sig).*R_dsd>0)*2-1; %目的节点对信道进行估计,匹配后硬判决得到的源的信号,根据MRC(最大比合并)的基本原理
            
            %SR
            h_sr=raychan(1);                    %产生SR信道,假设信道在一帧内保持不变
            n2=sqrt(1/2)*(randn+j*randn);       %高斯白噪声
            R_sr=h_sr*sqrt(POW_DIV*sig).*Xs+n2; %中继接收到的信号,y=hx+n
            Xr=(conj(h_sr)*sqrt(POW_DIV*sig).*R_sr>0)*2-1;%中继对信道进行估计,匹配后硬判决得到的源的信号,根据MRC(最大比合并)的基本原理
            if (sum(Xs~=Xr)>0) %如果中继解码错误,则不转发
                tx_coop=0; 
            end
            
            %RD
            h_rd=raychan(1);   %产生RD信道,假设信道在一帧内保持不变
            n4=sqrt(1/2)*(randn+j*randn);
            if (tx_coop==1) 
                R_crd=h_rd*sqrt(POW_DIV*sig).*Xr+n4; %在使用协同情况下,目的节点接收到来自中继的信号
                R_combine=conj(h_sd)*sqrt(POW_DIV*sig).*R_dsd+conj(h_rd)*sqrt(POW_DIV*sig).*R_crd;  %MRRC的合并信号
            else
                R_crd=h_sd*sqrt(POW_DIV*sig).*Xs+n4; %在使用协同情况下,目的节点接收到来自中继的信号
                R_combine=conj(h_sd)*sqrt(POW_DIV*sig).*R_dsd+conj(h_sd)*sqrt(POW_DIV*sig).*R_crd;
            end
            
            Y_combine=(R_combine>0)*2-1;             %MRRC后的判决信号          
            err_num_dsd=sum(Xs~=Y_dsd)+err_num_dsd;  %统计每一帧里面错误的比特数目
            err_num_coop=sum(Xs~=Y_combine)+err_num_coop;

          end 
      
            ber_dsd(snrcount)=err_num_dsd/(90*frame); %计算每个SNR下的平均错误BER 
            ber_coop(snrcount)=err_num_coop/(90*frame); 
           

    end 
SNR1=0:2:30;
semilogy(SNR1,ber_dsd,'-o',SNR1,ber_coop,'-+');
axis([0,30,10^(-6),1]);
legend('direct','cooperative');
ylabel('The AVERAGE BER');
xlabel('SNR(dB)');
title('the cooperative BER of BPSK in Rayleigh fading channel');
grid on;

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

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

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

微信扫一扫:

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

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