首页 > 编程语言 >基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法

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

时间:2024-07-01 23:42:10浏览次数:15  
标签:end inv rx train matlab SG RLS SD

1.程序功能描述

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

            

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

MATLAB2022a版本运行

 

 

 

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)*a*inv((a'*inv(R)*a))*e);
                  SD = SD - mu1*xx(i)*(r(:,i)*W_' - inv(a' *a )*(a*W_')*(a'*r(:,i)));
               else
                  SD = SD - mu1*xx(i)*(r(:,i)*W_' - inv(a' *a )*(a*W_')*(a'*r(:,i)));
                  W_ = W_ - mu2*xx(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'*RS*SD*W_)/(W_'*SD'*RI*SD*W_));  
        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      = (P*a*A_')/(a'*P*a);
               W_      = (P_*a)/(A_'*P_*a);
               k       = alpha*Pdelay*r(:,i)/(1+alpha*r(:,i)'*Pdelay*r(:,i));
               P       = alpha*Pdelay-alpha*k*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'*RI*SD*W_)/(W_'*SD'*RS*SD*W_));
        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的基本流程如下所示:

 

 

 

       SG的基本流程如下所示:

 

 

 

标签:end,inv,rx,train,matlab,SG,RLS,SD
From: https://www.cnblogs.com/softcodes/p/18279049

相关文章