m基于UWB信号的Rake接收性能matlab仿真,对比最大比合并,等增益合并,选择合并

202 阅读2分钟

1.算法仿真效果

matlab2022a仿真结果如下:

2fa435f17f45dbc3f3d5fb0e246dddd0_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.jpg  

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

       基于UWB信号的Rake接收性能仿真涉及了多个步骤,包括信号生成、传输、接收以及多径信道中的信号合并等。超宽带(UWB)通信技术以其大带宽、高容量和抗多径传播等优势而受到关注。Rake接收器是UWB通信系统中用于抑制多径干扰的关键技术之一。Rake接收器采用多个延迟匹配滤波器来接收多径信号,然后将它们进行合并以提高接收性能。在本次仿真中,我们将对比三种合并策略:最大比合并、等增益合并和选择合并。

 

以下是仿真中使用的数学公式和关键步骤:

 

信号生成:

 

发射信号Stx:通过将二进制数据进行重复编码,再经过幅度调制生成UWB脉冲信号。

接收信号模板ref:利用直接序列码(DS码)生成接收信号的模板。

信号传输和接收:

 

多径信道模拟:对发射信号进行多径传播模拟,得到接收信号。

加性高斯白噪声(AWGN):为了模拟实际通信环境,将接收信号加入高斯白噪声。

Rake接收器:

 

利用多径信号模板对接收信号进行解扩,得到各个多径分量的输出。

计算各个多径分量的能量。

使用不同的合并策略(最大比合并、等增益合并、选择合并)对多径信号进行合并。

1.最大比合并,是一种基于信号能量的合并策略。它通过对每个多径分量进行权重调整,使得接收到的信号的能量最大化。MRC的数学原理如下:

  a36ca8559f4090eb2e6c93eb50f4b2e6_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

 

3.MATLAB核心程序 `Pw_path1 = Rec31'*Rec31;     

    Pw_path2 = Rec32'*Rec32;    

    Pw_path3 = Rec33'*Rec33;    

    %总能量

    Pw_all   = Pw_path1+Pw_path2+Pw_path3;         

    u1       = Pw_path1/Pw_all;

    u2       = Pw_path2/Pw_all;

    u3       = Pw_path3/Pw_all;

    %最大比合并输出

    Re0      = real(Rec31conj(Gain1)+Rec32conj(Gain2)+Rec33*conj(Gain3));

    %等增益合并输出

    Re1      = real(Rec31/3 +Rec32/3 +Rec33/3);

    %选择合并

    U_all    = [u1 u2 u3];

    U_max    = max(U_all);

    switch U_max

        case u1  

            Re3 = real(Rec31);   %MRC

        case u2

            Re3 = real(Rec32);   %EGC

        otherwise

            Re3 = real(Rec33);   %SC

    end

    % 三中方法判决输出

    Rec_mrc = (sign(Re0).'+1)/2;

    Rec_egc = (sign(Re1).'+1)/2;

    Rec_sc  = (sign(Re3).'+1)/2;

    % 计算误比特率

 

    err1(ij) = length(find(Rec_mrc~=msgs))/length(msgs);

 

    err2(ij) = length(find(Rec_egc~=msgs))/length(msgs);

 

    err3(ij) = length(find(Rec_sc~=msgs))/length(msgs);

end

figure

semilogy(SNR,err1,'-bs',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

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

hold on

semilogy(SNR,err2,'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

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

hold on

semilogy(SNR,err3,'-k<',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.4,0.9,0.3]);

hold on

grid on

legend('MRC最大比合并','EGC等增益合并','SC选择式合并');

xlabel('SNR');

ylabel('error');`