clear;
close all;
clc;
s_n=3;%信元数
s_nn=16;%阵元数
N=1024; %信号长度
ww=[pi/4 pi/6 pi/8].';%信号频率
lamda=((2*pi*3e8)/ww(1)+(2*pi*3e8)/ww(3))/2;%信号波长
d=0.5*lamda;%阵元间距
snr=10;%信噪比
s_d=[0 -40 40];%信号的入射角度
delta0=5e-14;% N越大delta要求越小
v=0.98;
Q=delta0*eye(s_nn);
angle=-90:0.5:90;
M=length(angle);
a=zeros(s_nn,1);
A=zeros(s_nn,s_n);
w=zeros(s_nn,N);
g=zeros(s_nn,N);
u=[4e-3,zeros(1,N-1)];
yp=zeros(1,N);
y=zeros(1,N);
for n=1:s_n
A(:,n)=[exp(-j*(0:s_nn-1)*d*2*pi*sin(s_d(n)*pi/180)/lamda)].';
end
w(:,1)=A(:,1)/s_nn;
s=sqrt(10.^(snr/10))*exp(j*ww*[0:N-1]);%仿真信号
x=A*s+(1/sqrt(2))*(randn(s_nn,N))+j*randn(s_nn,N);%加了高斯白噪声后的阵列接收信号
for n=2:N
g(:,n)=(1/v*Q*x(:,n))/(1+1/v*x(:,n)'*Q*x(:,n));
Q=1/v*(Q-g(:,n)*x(:,n)'*Q);
yp(n)=w(:,n-1)'*x(:,n);
u(n)=inv(A(:,1)'*Q*A(:,1));
w(:,n)=(u(n)/(v*u(n-1)))*(w(:,n-1)-g(:,n)*yp(n));
end
for k=1:M%画形成波束方向图
for m=1:s_nn
a(m)=exp(-j*2*pi/lamda*d*(m-1)*sin(angle(k)*pi/180));
end
beam_form(k)=w(:,n)'*a;
end
beam_form=abs(beam_form);
beam_form=beam_form/max(beam_form);%归一化
beam_form=20*log10(beam_form);
plot(angle,beam_form)
xlabel('角度');
ylabel('方向图:dB');
title('形成波束方向图');
grid on
LMS算法_RLS算法_波束形成_matlab_beamform_LMS_RLS
版权申诉
5星 · 超过95%的资源 57 浏览量
2022-03-13
17:50:26
上传
评论 2
收藏 14KB ZIP 举报
阿里matlab建模师
- 粉丝: 3221
- 资源: 2782
- 1
- 2
前往页