基于中继协作和MRC最大合并比的BPSK通信系统matlab仿真仿真

本文探讨了中继协作通信如何通过结合最大比合并(MRC)和二进制相移键控(BPSK)技术来提高无线通信的可靠性与数据传输速率。文章详细介绍了这些技术的工作原理,并提供了MATLAB程序进行仿真,展示了中继协作对通信性能的提升效果。
摘要由CSDN通过智能技术生成

目录

1.中继协作通信

2.MRC(最大比合并)

3.BPSK(二进制相移键控)

4.中继协作、MRC与BPSK的结合

5.MATLAB程序

6.仿真结果


1.中继协作通信

       中继协作通信是一种无线通信技术,它通过引入一个或多个中继节点来增强源节点和目的节点之间的通信质量。中继节点能够接收来自源节点的信号,并在处理后将信号转发给目的节点,从而扩展通信范围、提高数据传输速率和可靠性。

       中继协作通信的基本原理是利用空间分集增益,即通过多个独立路径传输同一信息,从而在接收端获得更高的信噪比。这种方法可以有效地对抗无线信道中的衰落和多径效应。

2.MRC(最大比合并)

        在移动通信系统中,受 多径效应 和 阴影衰落 等 快 衰落的影响,如果在信号接收端有多个幅度和相位不同的信号相叠加,使得复合信号相互抵消或增强,就会产生较严重的失真。为了克服快衰落带来的影响,通常采用的抗衰落和抗干扰技术有:分集技术、均衡技术、编码技术 等。

       在分集技术中,其基本原理是通过特性不同的多个信道(时间、频率或者空间特性等不同),接收到承载相同信息的多个发送信号的副本。由于多个信道的传输特性不同,信号每个副本受衰落的影响就会不同。使用接收到的多个信号副本,可以帮助接收端正确地恢复出原发送信号。分集技术充分利用原本造成干扰的信号多径特性,来提高接收信号的正确判决率。

       如果不采用分集技术,为了克服快衰落带来的影响,发射端必须要提高发射功率。而手持移动终端的电池容量有限,所以反向链路中所能获得的功率也非常有限,而采用分集方法可以降低发射功率,延长移动终端的使用时间。

       分集技术包括 2 个方面:一是 分散传输,使接收机能够获得多个统计独立的、携带同一信息的衰落信号;二是 集中处理,即把接收机收到的多个统计独立的衰落信号进行合并以降低衰落的影响。因此,要获得分集效果,最重要的条件是:各个信号之间需要是 “不相干” 的。

       MRC是一种分集合并技术,用于提高接收信号的信噪比。在MRC中,来自不同路径的信号根据其信噪比进行加权合并。每个信号路径的权重与其信噪比成正比。

       基本原理:对于来自发射端的同一个信号,由于在接收端使用多天线接收,这个信号将经过多条路径(多个天线)被接收端所接收。多个路径质量同时差的几率非常小,一般总有一条路径的信号比其他信号好。在接收端使用某种算法,对各接收路径上的信号进行加权汇总,信号好的路径分配最高的权重,实现接收端的信号改善。当多条路径上信号都不太好时,通过MRC技术能够获得较好的接收信号。

R_af = ftx_af_r2 .* conj(h_r2) .* conj(h_r1) + ftx_d .* conj(h_d); 
dec_com_af = sign(real(R_af)); 

3.BPSK(二进制相移键控)


       BPSK(Binary Phase Shift Keying)是一种基本的数字调制方式。在BPSK中,二进制0和1分别用两个相反的相位来表示。对于比特“0”,载波的相位不改变(例如,余弦波),而对于比特“1”,载波的相位移动180度(例如,负余弦波)。BPSK调制可以表示为:

4.中继协作、MRC与BPSK的结合

       在中继协作通信系统中,可以采用BPSK作为调制方式,并在接收端使用MRC合并来自不同路径的信号。这样,可以充分利用空间分集增益,提高通信系统的可靠性和数据传输速率。

       具体来说,源节点将二进制信息通过BPSK调制为模拟信号,并发送给中继节点和目的节点。中继节点接收到信号后,进行解调、再调制,并转发给目的节点。目的节点接收到来自源节点和中继节点的信号后,使用MRC进行合并,并进行解调以恢复出发送的二进制信息。

5.MATLAB程序

....................................................................................
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)');
grid on;
UP4025

6.仿真结果

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值