m基于MRC的MIMO分集接收matlab仿真

266 阅读2分钟

1.算法仿真效果

matlab2022a仿真结果如下:

 

1.jpeg

2.jpeg

 

2.算法涉及理论知识概要

        多输入多输出(MIMO)系统利用多个发射和接收天线来提高无线通信系统的性能。MIMO技术通过空间多样性和信道多样性来增强系统容量、抗干扰性和可靠性。在MIMO系统中,分集是一种关键技术,它利用多径信道的多样性来提高信号传输的可靠性。最大比合并(MRC)是一种常用的MIMO分集接收技术,本文将从基本原理、实现过程以及应用领域等方面进行详细介绍。

 

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

 

        MRC技术基于信道的多样性,通过合并接收到的信号以增加信号的强度,减少信号的衰减。考虑一个具有多个天线的MIMO系统,接收端接收到的信号可以表示为:

 

3.png  

        MRC技术在无线通信领域有广泛的应用,特别是在高速移动通信和宽带通信中。以下是一些应用领域的示例:

 

3.MATLAB核心程序 `for ij2=1:length(SNRs)

...................................................................................

                %MRC合并

                Z      = Z+R(:,i).*conj(H(:,i));                      

            end

            %最大似然译码

            for m=1:P                                      

                d1(:,m)=abs(sum(Z,2)-maps(m)).^2+(-1+sum(Habs,2))*abs(maps(m))^2;  

            end

            [yl,il]     = min(d1,[],2);

            Xd          = maps(il).';

            templ       = X>0;

            temp2       = Xd>0;

            %累加错误比特

            errs0(ij3)  = sum(sum(templ~=temp2));      

        end

    

        BER(ij,ij2) = sum(errs0)/(NpacketNframemods);

    end                                                 

end

figure;

semilogy(SNRs,BER(1,:),'-bs',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.0,0.0]);

hold on

semilogy(SNRs,BER(2,:),'-b^',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.2,0.9,0.5]);

hold on

semilogy(SNRs,BER(3,:),'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on

title('MRC方案的误比特率性能')

xlabel('信噪比SNR[dB]')

ylabel('误比特率BER')

 

legend('MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)','MRC(Tx:1,Rx:8)')

if  mods == 1; %设置为1/2/3/4对应于BPSK/QPSK/8PSK/16QAM

    save R1.mat SNRs BER

end

if  mods == 2; %设置为1/2/3/4对应于BPSK/QPSK/8PSK/16QAM

    save R2.mat SNRs BER

end

if  mods == 3; %设置为1/2/3/4对应于BPSK/QPSK/8PSK/16QAM

    save R3.mat SNRs BER

end

if  mods == 4; %设置为1/2/3/4对应于BPSK/QPSK/8PSK/16QAM

    save R4.mat SNRs BER

end`