作业帮 > 综合 > 作业

这个雷达天线方向图的程序 matlab运行不出来 说的26排有错

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 04:18:14
这个雷达天线方向图的程序 matlab运行不出来 说的26排有错
%天线方向图生成模块
function g1 = atenna_dg(mtime,ltime,arr,flag);
%atenna_dg(1,.003,0,1)
%mtime 搜索时总体时间
%ltime 搜索时雷达照射时间
%g1为输出的方向图
%arr 跟踪时天线的输入角度,输入应该为弧度
%flag = 1 跟踪; flag = 0 搜索
%输出g1.angle为天线所指的方向
%输出g1.data为天线的方向图
%sidelobe_gain 第一旁瓣增益
global Sdb booltrace boolseize
Sdb = 40;%假设第一旁瓣增益为40dB,SdB≤50dB
booltrace = 1;boolseize = 1;%假设为跟踪状态
g1.sidelobe_gain = -Sdb;
%mtime = input('please input mtime\n');
%ltime = input('please input ltime\n');
%arr = input('please input arr\n');
%flag = input('please input flag\n');
r = 0.05*(Sdb-13.26);
a = 10^(-r);
if flag == 1
azimuth = arr;
else
initazimuth = -20*pi/180; %初始角度为20度
init = -initazimuth;
temp = ceil(mtime/(3*ltime));
azimuth = initazimuth + temp*(2.5*pi/180); %雷达每帧转动2.5度
azimuth = mod(azimuth+init,17*2.5*pi/180)+initazimuth;
end
g1.angle = azimuth;
thetab = 2.5*pi/180;
k = 1.3916/sin(thetab/2);
g1.k = k;
theta0 = asin(pi/k);
theta = -3.14:0.001:3.14;
for i=1:length(theta);
theta1 = theta(i) - azimuth;
if theta1==0
g1.data(i) = 1;
else
if booltrace~=0|boolseize~=0 %搜索情况下天线方向图由正负2.5度处开始加权,防止虚假目标产生;跟踪截获情况下由天线零点处加权,因为需要比幅法测量方位跟踪误差
if abs(theta1)
第18到21行的%去掉