基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法

107 阅读2分钟

1.程序功能描述

基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法.

            

2.测试软件版本以及运行结果展示

MATLAB2022a版本运行

 

1.jpeg

2.jpeg

3.jpeg

4.jpeg

5.jpeg

 

 

3.核心程序

  `for ii = 1:MTKL 

        if SEL == 1

           for i = 1:length(r)

               r_(:,i) = SD'*r(:,i);

               A_      = SD'*a;

               %xx : x*

               x_(i)   = W_'*r_(:,i);

               xx(i)   = conj(x_(i));

               %开始迭代

               if i == 1

                  W_ = SD'*(inv(R)ainv((a'*inv(R)*a))*e);

                  SD = SD - mu1xx(i)(r(:,i)W_' - inv(a' a )(aW_')*(a'*r(:,i)));

               else

                  SD = SD - mu1xx(i)(r(:,i)W_' - inv(a' a )(aW_')*(a'*r(:,i)));

                  W_ = W_ - mu2xx(i)(eye(D)     - inv(A_'*A_)A_A_') *r_(:,i);

               end

rx      = corrmtx(a*Sig_train(:,i),M-1);

               RS      = rx'*rx;

rx      = corrmtx(a*Sig_train(:,i),M-1);

ry      = corrmtx(a*Sig_train(:,i)+Noise_train(:,i),M-1);

               RI      = rx'*ry;

           end

        SINR(D) = abs((W_'SD'RSSDW_)/(W_'SD'RISDW_)); 

        end

        %**************************************************************************

        %RLS***********************************************************************

        if SEL == 2

           alpha = 1;

           P     = zeros(M,M);

           P_    = zeros(D,M);

           for i = 1:length(r)

               r_(:,i) = SD'*r(:,i);

Pdelay  = P;

               P       = inv(R);

               A_      = SD'*a;

P_delay = P_;

               P_      = SD'*P;

               SD      = (PaA_')/(a'Pa);

               W_      = (P_*a)/(A_'P_a);

               k       = alphaPdelayr(:,i)/(1+alpha*r(:,i)'Pdelayr(:,i));

               P       = alphaPdelay-alphak*r(:,i)'*Pdelay; 

rx      = corrmtx(a*Sig_train(:,i),31);

               RI      = rx'*rx;

rx      = corrmtx(a*Sig_train(:,i),31);

ry      = corrmtx(a*Sig_train(:,i)+Noise_train(:,i),31);

               RS      = rx'*ry;

           end 

           SINR(D) = abs((W_'SD'RISDW_)/(W_'SD'RSSDW_));

        end

    end

    SINRs(:,ii) = SINR;

end

DD     = D3(4:end);

SINRS2 = 20*log10(mean(SINRs(4:end,:),2));

figure;

plot(DD,SINRS2,'b-o');

grid on;

xlabel('Rank')

ylabel('SINR');

27_008m`

 

4.本算法原理

        自适应波束成形是阵列信号处理中的关键技术,用于在空间上选择性地增强期望信号并抑制干扰信号。在多种自适应波束成形算法中,随机梯度(Stochastic Gradient,SG)算法和递归最小二乘(Recursive Least Squares,RLS)算法是两种常用的方法。

 

       RLS的基本流程如下所示:

 

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

 

       SG的基本流程如下所示:

 

 

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