✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
波束形成是阵列信号处理中的一个研究热点,其应用涉及雷达,通信,声纳,导航,射电天文以及生物医学工程等军事和民用领域。本文基于matlab实现任意阵列的常规波束形成。
⛄ 代码
clear all
clc
close all
% n基元的数量
% b波束的指向,单位为角度
% fs抽样频率
% c波速
% f信号频率
% an为阵元点的位置
%以下为设置,可以修改
N=1 % N波束图的角度分辨力
T=0.01 % T信号的长度
f=100;c=1500;b=-30;fs=5*f;an=[0 0;1 1; -1 2; 4 5;6 7;-3 -4;-7 -5;-2 -5] % 信号初始信息
%以下为程序
t=0:1/fs:T; % 抽样时间
s0=exp(j*2*pi*f*t); % 原始信号
number=length(t); % 采样点的长度
[n,v]=size(an); % n为阵元个数
S=zeros(n,number); % 建立一个N行length(t)列的零矩阵用来表示收到的信号
P=zeros(n,number); % 建立一个N行length(t)列的零矩阵用来表示处理后的信号
power=zeros(1,(360/N)+1); % 用来放功率
for m=1:n
bn(m,:)=an(m,:)-an(1,:);
end
cn(:,1)=-sin(b*pi/180)*bn(:,1);
cn(:,2)=-cos(b*pi/180)*bn(:,2);
dn=cn(:,1)+cn(:,2);
tao=dn/c; % tao为各阵元点与第一个阵元点的时延
for m=1:n
kn=tao(m,1);
S(m,:)=exp(j*2*pi*f*(t+kn)); % S为收到的信号
end
i=0;
for thita=-180:N:180
i=i+1;
thi=thita*pi/180; % 探测角度进行幅度转换
cn0(:,1)=-sin(thi)*bn(:,1);
cn0(:,2)=-cos(thi)*bn(:,2);
dn0=cn0(:,1)+cn0(:,2);
tao0=dn0/c;
% 下面对信号进行处理
for m=1:n
kn0=tao0(m,1);
P(m,:)=S(m,:)*exp(-j*2*pi*f*kn0); % S为收到的信号
end
S1=sum(P); % 系统的输出
power(i)=abs(S1*S1')/number; % 输出功率
end
subplot(2,1,1);
plot(-180:N:180,power/max(power));
title('归一化波束图')
xlabel('与正横方向所成角度')
ylabel('响应幅值')
text(2,0.5,'f=100k;c=1500;fs=5f');
subplot(2,1,2); %下面画出框图和蝶形图
thita=-180:N:180 %将弧度T还原为角度以在图中进行标注
power0=20*log10(power/max(power));
plot(thita,power0)
title('对数化波束图')
axis([-200,200,-200,4])
xlabel('与正横方向所成角度')
ylabel('响应强度(dB)')
⛄ 运行结果
⛄ 参考文献
[1] 付华敏.基于TS201的自适应波束形成算法实现[D].哈尔滨工程大学,2013.
[2] 潘敏.阵列天线波束形成技术研究[D].桂林电子科技大学,2010.DOI:10.7666/d.D563606.