clear all;
close all;
clc
tic
M=7;%天线阵元数
wideband_num=3;%宽带干扰信号数
L=wideband_num;
AGC=5000;
SNR=-20;%输入信噪比
JNR=40;%输入干燥比
F=[270 300 330]*1e6;
[Fs,N,s,t]=function_uqpsk(F,wideband_num,SNR,JNR);%产生UQPSK信号、干扰信号
%-----------------------------------------------%
% 天线 %
%-----------------------------------------------%
M=7;
antenna_angle=[0 0 60*pi/180 120*pi/180 180*pi/180 240*pi/180 300*pi/180];%4阵元Y型布局圆阵
elevation = [20*pi/180 50*pi/180 80*pi/180];%导航信号入射俯仰角3个,干扰信号入射俯仰角2个
azimuth = [70*pi/180 120*pi/180 160*pi/180];%导航信号入射方位角3个,干扰信号入射方位角2个
for l=1:L
for m=1:M
As(l,m)=exp(-j*2*pi*sin(elevation(l))*cos(azimuth(l)-antenna_angle(m))*0.45);%生成天线方向矢量
end
end
X1=AGC*s*As;%信道信号
%----------------------------------------------%
% 加噪 %
%----------------------------------------------%
sig_P=sum(abs(s(:,1).^2))/N;
out_noiseR = randn(1,N*M);
noiseR = reshape(out_noiseR,N,M);
out_noiseI = randn(1,N*M); % 随即生成扩频码和QPSK编码
noiseI = reshape(out_noiseI,N,M);
noise=complex(noiseR,noiseI);
for m=1:M
noi_P(m) = sum(abs(noise(:,m).^2))/N;
snr_n(m) = 10*log10(sig_P/noi_P(m));
noise(:,m) = 10^((snr_n(m)-JNR)/20)*noise(:,m);
end
X2=X1+AGC*noise;
%---------------------------------------------%
% 自适应算法LMS-数字信号 %
%---------------------------------------------%
[LMS_W,LMS_Wopt,e]=functionLMS(X2);
e_abs=abs(e);
for n=1:N
err(n)=X2(n,:)*LMS_Wopt;
end
%---------------------------------------------%
% 波束图 %
%---------------------------------------------%
all_elevation=0:pi/180:pi/2;
all_azimuth=0:pi/180:pi;
angle=[0 120*pi/180 240*pi/180 ];%3阵元型布局圆阵
ele=[20*pi/180 30*pi/180 40*pi/180 50*pi/180 60*pi/180 70*pi/180 80*pi/180];%导航信号入射俯仰角7个
azi=[10*pi/180 30*pi/180 50*pi/180 80*pi/180 100*pi/180 120*pi/180 140*pi/180 160*pi/180];%导航信号入射方位角7个
for l=1:7
for m=1:3
Bs(l,m)=exp(-j*2*pi*sin(ele(l))*cos(azi(l)-angle(m))*0.45);%生成天线方向矢量
end
end
Rx=1/10000*s'*s;
C=Bs';
F=[1 1 1 1 1 1 1]';
w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;
LMS_R=zeros(91,181);
for ii=1:91
for jj=1:181
for m=1:3
LMS_R(ii,jj)=LMS_R(ii,jj)+w(m)*exp(-j*2*pi*sin(all_elevation(ii))*cos(all_azimuth(jj)-antenna_angle(m))*0.45);
LMS_P(ii,jj)=(abs(LMS_R(ii,jj)))^2;%LMS算法模拟数据处理后波束图
end
end
end
LMS_Pdb=10*log10(LMS_P);
figure(5)
mesh(all_azimuth*180/pi,all_elevation*180/pi,LMS_Pdb)
xlabel('平面角(度)')
ylabel('俯仰角(度)')
zlabel('阵列增益(dB)')