
图1 雷达相控阵波束形成仿真(未加窗)

图2 雷达相控阵波束形成仿真(加窗)
clear all;
close all;
clc;
%% 设置雷达系统参数
c=3e8;% 光速(m/s)
fs=20e9;% 采样率
f0=4.5e9;% 雷达工作频率
t=0.5e-6;% 信号脉宽
lambda=c/f0;% 波长
d=lambda*2;% 阵元间距
tt=0:1/fs:t;% 时间刻度
%% 生成点频信号
y_cos=cos(2*pi*f0.*tt);
theta0_deg=0;% 设置波束指向角度
theta0=-theta0_deg*pi/180;
%% 计算阵列内部相位偏移
N=16;% 设置阵元数量
theta=zeros(1,N);% 初始化相位偏移数组
% 计算每个阵元的相位偏移
for n=1:N
theta(n)=(n-1)*2*pi*d*sin(theta0)/lambda;
end
theta_deg_0=-90:0.1:90;% 角度范围
theta_deg=theta_deg_0.*pi/180;
N_theta=length(theta_deg);% 计算角度数量
E=zeros(1,N_theta); % 普通波束形成结果
E_w=zeros(1,N_theta); % 加权波束形成结果
Nt=length(tt);
%% 对每个角度进行波束形成计算
for m=1:N_theta
sum=zeros(1,Nt); % 普通波束形成
sum_w=zeros(1,Nt); % 加权波束形成
w_hamming=hamming(N); % 生成汉明窗权重
% 对每个阵元进行信号合成
for n=1:N
xin_w=w_hamming(n)*cos(2*pi*f0*tt+(n-1)*2*pi*d*sin(theta_deg(m))/lambda+theta(n));% 加权信号(使用汉明窗)
xin=cos(2*pi*f0*tt+(n-1)*2*pi*d*sin(theta_deg(m))/lambda+theta(n));% 普通信号
sum=sum+xin;% 累加信号
sum_w=sum_w+xin_w;
end
E(m)=max(abs(sum)); % 普通波束形成
E_w(m)=max(abs(sum_w)); % 加权波束形成
end
% 绘制方向图
figure
E=20*log10(E/max(E));
plot(theta_deg_0,E,'k','linewidth',1.5);% 绘制方向图
xlim([-40 40]);
xlabel('角度(°)');
ylabel('幅度(dB)');
title('直接波束形成结果(阵元数16,d为2倍波长)');
figure
E_w=20*log10(E_w/max(E_w));
plot(theta_deg_0,E_w,'k','linewidth',1.5);% 绘制方向图
xlim([-40 40]);
xlabel('角度(°)');
ylabel('幅度(dB)');
title('加窗后波束形成结果(阵元数16,d为2倍波长)');