% 单脉冲测角-和差比幅法仿真
% Author:huasir 2023.11.16 @Beijing
clear all;close all;clc;
N = 8; %阵元数
theta = (-90:0.1:90); %观测角度范围
theta0 = 0; %波形形成的方向
thetaL = -5; %用于构造差波束的波束1
thetaR = 5; %用于构造差波束的波束2
theta0 = theta0*pi/180; %弧度换算为角度
theta = theta*pi/180; %弧度换算为角度
thetaL = thetaL*pi/180; %弧度换算为角度
thetaR = thetaR*pi/180; %弧度换算为角度
d_lembda = 1/2; %阵元间距比波长,一般采用半波长
%% 构造和差波束
a = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta)); %导向矢量
wSigma = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta0)); %和波束权向量
wDeltaL = exp(j*2*pi*d_lembda*(0:N-1)'*sin(thetaL)); %用于构造差波束的波束1的权向量
wDeltaR = exp(j*2*pi*d_lembda*(0:N-1)'*sin(thetaR)); %用于构造差波束的波束2的权向量
ySigma = abs(wSigma'*a); %和波束
yDelta = abs(wDeltaL'*a)-abs(wDeltaR'*a); %差波束
%win = taylorwin(N); % 泰勒窗
%win = chebwin(N,30); %切比雪夫窗,抑制旁瓣
% ww = w.*win; %加窗操作
% y1 = abs(ww'*a); %加窗后的方向图
%% 绘制和差波束
figure;
plot(theta*180/pi,20*log10(ySigma/max(ySigma)),'linewidth',1); %绘制和波束
hold on;
plot(theta*180/pi,20*log10(yDelta/max(yDelta)),'linewidth',1); %绘制差波束
legend('和波束','差波束');
xlabel('方位角/°');ylabel('归一化功率方向图/dB');
axis tight;% axistight 使得图形框图靠近数据
grid on; %添加栅格线
ylim([-30, 0]); % 为了限制y值范围,使得图像显示的更加合理
title(sprintf('阵元数:%d,波束方向:%.0f°',N,theta0))%添加图题
%% 提取主瓣区域附近的和差波束,并计算单脉冲比
m1 = (-5-(-90))/0.1+1; %截取主瓣内部分区域对应的下标
m2 = (5-(-90))/0.1+1; %截取主瓣内部分区域对应的下标
MRC = yDelta(m1:m2)./ySigma(m1:m2); %%计算单脉冲比
%% 绘制单脉冲比曲线
figure;
plot((-5:0.1:5),MRC,'linewidth',1);
set(gca,'XTick',[-5:1:5]); %设置要显示的坐标轴的刻度
xlabel('角度(°)');ylabel('和差比幅');
axis tight;% axistight 使得图形框图靠近数据
grid on; %添加栅格线
title('和差波束图');
%% 拟合为一次函数y=kx+b
p = polyfit(MRC,(-5:0.1:5),1) % x为单脉冲比,y为角度,第3个输入参数'1'表示拟合为1次函数,返回的p是一个包含两个元素的向量,分别是参数k和b
%% 任取一个角度进行验证
tempTheta = 5; %任意取一个角度
tempMRC = MRC(round((tempTheta-(-5))/0.1+1))% 该角度下的MRC值
yFit = polyval(p,tempMRC) % 计算得到的角度
%% 绘制拟合效果图
yFit = polyval(p,MRC); % 由拟合函数计算得到的角度
figure;
plot((-5:0.1:5),MRC,'o','linewidth',1); %点图
hold on; %保持绘图窗口,在此基础上继续绘图
plot(yFit,MRC,'linewidth',1); %拟合出的一次函数
set(gca,'XTick',[-5:1:5]); %设置要显示的坐标轴的刻度
xlabel('角度(°)');ylabel('和差比幅');
axis tight;% axistight 使得图形框图靠近数据
grid on; %添加栅格线
title('拟合效果图');