📄 lmszl.m
字号:
%lms自适应波束形成
clear;clc;
u=0.01;
d=1/2; %阵元间距为0.5波长
N=16;
w0=2*pi*1;
n=1:1000;
x=sin(w0*n/N);
pn=0.5/100;
nos=randn(1,1000);
x=x+pn*nos; %加入噪声
dn=cos(w0*n/N);
thita=90;
fi=2*pi*d*sin((90-thita)*2*pi/360);
a=[1;exp(j*fi);exp(j*2*fi);exp(j*3*fi);exp(j*4*fi);exp(j*5*fi)];
dn=a*dn;
for thitaN=1:180
fiN=2*pi*d*sin((90-thitaN)*2*pi/360);
aN=[1;exp(j*fiN);exp(j*2*fiN);exp(j*3*fiN);exp(j*4*fiN);exp(j*5*fiN)];
M=1000;
w=zeros(6,M);
for i=2:M
xn=aN*x(i-1);
wn=[w(1,i-1),w(2,i-1),w(3,i-1),w(4,i-1),w(5,i-1),w(6,i-1)]';
en=dn(i)-xn'*wn;
wn=wn+2*u*en*xn;
w(:,i)=wn;
e(1,i)=en;
end
Rxx=zeros(6,6);
for k=1:N
s=(x(k))';
Rxx=(a*s)*(a*s)'+Rxx;
end
Rxx=Rxx/N;
pcbf(1,thitaN)=w(:,M)'*Rxx*w(:,M);
pcbf(1,thitaN)=(abs(pcbf(1,thitaN)));
end
figure;
thitaN=1:180;
plot(thitaN,20*log(pcbf));
title('lms自适应波束形成');
xlabel('空间角度');
ylabel('幅度db');
axis([0,180,-300,0]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -