%此程序实现了线阵8阵元的和差波束测角,利用全阵同时形成两个波束,形成和差波束
%随着测量角度的增大其误差也逐渐增大,这是由于这种方法的近似所致和波束扫描时变胖
%%%%%%%%%%%%%%%%%%%%%
%%扫描信号方向与起始角度差别,从而画出误差曲线
%%%%%%%%%%%%%%%%%%%%%
close all;
clear all;
clc;
ele=8; %阵元数
d_lama=0.5;
theta1=10; %起始角度
detal=0.1;%偏角扫描增量
i=0;
x=5:detal:15;
err0=zeros(1,length(x));
err1=zeros(1,length(x));
rate_i=zeros(1,length(x));
diff=3;%两个波束相对等信号轴的偏角
for thetal_singal=5:detal:15; % 信号方向
i=i+1;
theta2=[theta1-diff theta1+diff]*pi/180;
%%%%%%%%%%误差的大小与信号方向和diff有关系:thetal_singal=1;diff=7;
% thetal_singal=2;diff=7;
% thetal_singal=0.5;diff=7;
%%%%%%%%%%信号方向与起始角度差别越小越精确
%%%%%%%%%%当起始信号大时候,diff越小越精确
%%%%%%%%%%%导向矢量
a1=exp(j*pi*(0:ele-1).'*sin(theta2(1)));
a2=exp(j*pi*(0:ele-1).'*sin(theta2(2)));
a_singal=exp(j*pi*(0:ele-1).'*sin(thetal_singal*pi/180));
alfa=linspace(-pi/2,pi/2,1000);
a=exp(j*pi*(0:ele-1).'*sin(alfa));
% wn1=chebwin(ele,40);%切辟雪夫权00000
% wn2=0.54-0.46*cos(2*pi*(0:ele-1)/(ele-1));%海明权
% a1=diag(wn1)*a1;
% a2=diag(wn1)*a2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%利用公式计算角度
a_singal=exp(j*pi*(0:ele-1).'*sin(thetal_singal*pi/180));
p1_singal=a1'*a_singal;
p2_singal=a2'*a_singal;
g_sum_singal=abs(p1_singal)+abs(p2_singal);
g_diff_singal=abs(p1_singal)-abs(p2_singal);
% sum_gain=g_sum(thetal_singal*pi/180/pi/2*500);
% diff_gain=g_diff(thetal_singal*pi/180/pi/2*500);
rate=(g_diff_singal/g_sum_singal);
% 8.4*2
% alfa1_semi=0.886*2/7*csc(theta1*pi/180);
% alfa1_semi=acos(cos(theta1*pi/180)-0.443*2/7)-acos(cos(theta1*pi/180)+0.443*2/7);
F_thetal=sin(ele*pi*d_lama*(sin(theta1*pi/180)-sin(theta2(1))))/((sin(pi*d_lama*(sin(theta1*pi/180)-sin(theta2(1))))));
% F_diff=diff('sin(ele*2*pi*d_lama*sin(thetal*pi/180))/(ele*2*(sin(pi*d_lama*sin(thetal*pi/180))))');
% x=thetal;
a_thetal=exp(j*pi*(0:ele-1).'*sin(theta1*pi/180));
if rate>0
F_thetal_thetal=abs(a2'*a_thetal);
F_diff_theta=(cos(ele*pi*1/2*(sin(theta1*pi/180)-sin(theta2(2))))*ele*pi*1/2*cos(theta1*pi/180)...
*sin(pi*1/2*(sin(theta1*pi/180)-sin(theta2(2))))...
-sin(ele*pi*1/2*(sin(theta1*pi/180)-sin(theta2(2))))...
*cos(pi*1/2*(sin(theta1*pi/180)-sin(theta2(2))))...
*pi*1/2*cos(theta1*pi/180))/(sin(pi*0.5*(sin(theta1*pi/180)-sin(theta2(2))))^2);
end
if rate<0
F_thetal_thetal=abs(a1'*a_thetal);
F_diff_theta=(cos(ele*pi*1/2*(sin(theta1*pi/180)-sin(theta2(1))))*ele*pi*1/2*cos(theta1*pi/180)...
*sin(pi*1/2*(sin(theta1*pi/180)-sin(theta2(1))))...
-sin(ele*pi*1/2*(sin(theta1*pi/180)-sin(theta2(1))))...
*cos(pi*1/2*(sin(theta1*pi/180)-sin(theta2(1))))...
*pi*1/2*cos(theta1*pi/180))/(sin(pi*0.5*(sin(theta1*pi/180)-sin(theta2(1))))^2);
end
rate_i(i)=rate;
% F_thetal_thetal=(F_thetal+F_theta2)/2;
% F_diff_theta=(abs(F_diff_thetal)+abs(F_diff_theta2))/2;
theta_cal=rate*F_thetal_thetal/abs(F_diff_theta);
theta_cal=abs(theta_cal*180/pi);
format short
% if rate>=0
% disp('信号方向为法向偏左')
% disp('真实的信号方向:(度)')
% thetal_singal
% disp('计算的信号方向:(度)')
% theta1-theta_cal
% disp('计算的绝对误差:(度)')
err0(i)=abs(theta1-theta_cal)-abs(thetal_singal);
% disp('计算的相对误差:')
err1(i)=(abs(theta1-theta_cal)-abs(thetal_singal))/abs(thetal_singal);
% end
% if rate<0
% disp('信号方向为法向偏右')
% disp('真实的信号方向:(度)')
% thetal_singal
% disp('计算的信号方向:(度)')
% theta1+theta_cal
% disp('计算的绝对误差:(度)')
% abs(theta1+theta_cal)-abs(thetal_singal)
% disp('计算的相对误差:')
% (abs(theta1+theta_cal)-abs(thetal_singal))/abs(thetal_singal)
%end
end
% figure(1)
% p1=a1'*a;
% p2=a2'*a;
% plot(alfa*180/pi,((abs(p1))))
% hold on;
% plot(alfa*180/pi,(abs(p2)),'r')
% grid on;zoom on;
% xlabel('角度')
% ylabel('增益')
% title('两个部分重叠的方向图')
%
%
% figure(2)
% g_sum=abs(p1)+abs(p2);
% g_diff=abs(p1)-abs(p2);
% plot(alfa*180/pi,((g_sum)))
% hold on;
% plot(alfa*180/pi,((g_diff)),'r--')
% xlabel('doa-degree'),ylabel('gain');
% title('和差波束')
% legend('和波束方向图','差波束方向图')
% grid on;zoom on;
figure(10)
plot(x,err0,'b*');grid on;zoom on;title('绝对误差曲线');
xlabel('角度')
ylabel('角误差')
figure(11)
plot(x,err1,'b*');grid on; zoom on;title('相对误差曲线');
xlabel('角度')
ylabel('角误差')
matlab_单脉冲和差波束测角程序_实现了线阵8阵元的和差波束测角,利用全阵同时形成两个波束和差波束
版权申诉
5星 · 超过95%的资源 110 浏览量
2022-06-28
21:56:47
上传
评论 5
收藏 2KB ZIP 举报
wouderw
- 粉丝: 268
- 资源: 2960
最新资源
- 基于springboot+vue实现的在线考试系统+源代码+文档
- RTL8723DS 2022 版本 Linux驱动,android驱动 支持4.0-10x
- 要玩NDS的遊戲,必須要先下載三個bios檔案到你的檔案資料夾
- 各类型数据库4月排名,基于排名网站数据爬虫json结果
- 基于springboot+vue实现的在线考试系统+源代码+文档
- 淮北市杜集区人才补贴+生活补贴
- JAVA-JSP技术文档
- 课内实验02-决策表(共享单车月卡).docx
- 基于【React + Node+SpringBoot】疫情数据查看系统的设计与实现【源码+lw+部署+讲解】
- 基于【React + Node】云课堂系统设计与实现【源码+lw+部署+讲解】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈