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)ainv((a'inv(R)a))e);
SD = SD - mu1xx(i)(r(:,i)W' - inv(a' a )(a*W')(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(aSig_train(:,i),M-1);
RS = rx'rx;
rx = corrmtx(aSig_train(:,i),M-1);
ry = corrmtx(aSig_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;
Pdelay = P;
P = SD'P;
SD = (Pa*A')/(a'Pa);
W = (Pa)/(A_'P_a);
k = alphaPdelayr(:,i)/(1+alphar(:,i)'Pdelayr(:,i));
P = alphaPdelay-alphakr(:,i)'Pdelay;
rx = corrmtx(aSig_train(:,i),31);
RI = rx'rx;
rx = corrmtx(aSig_train(:,i),31);
ry = corrmtx(aSig_train(:,i)+Noisetrain(:,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的基本流程如下所示:
SG的基本流程如下所示: