首页 > 其他分享 >延时求和波束形成的MATLAB仿真

延时求和波束形成的MATLAB仿真

时间:2022-11-15 17:59:12浏览次数:57  
标签:angle signl k1 k2 length MATLAB 延时 波束

仿真结果如下:

 

 

核心代码如下:

%------延时求和波束形成-------
close all;
clear all;
clc;

%%%%%%基阵的有关参数
c=1500; %m/s
L=1.3; %基阵长
N=32 %基元个数
d=L/(N-1); %阵元间距
a=9; %参考基元的在基阵中的位置
xi=[1:1:N]*d;

f=40000; %信号频率
bl=c/f; %波长
r0=60;%参考基元到声源距离
ang0=40; %改变ang0值可改变束控方向
angle0=ang0*pi/180; %角度
fs=f*10; %采样频率
T=0.0005; %脉冲宽度
w=2*pi*f;
b=30 %扇面开角范围-30度至+30度
Ts=1/fs; %采样时间间隔
t=[0:Ts:T]; %采样样点个数
angle=[-b:0.05:b]*pi/180; %波束个数
R=30;

tao=zeros(N,1); %每个基元的时延
signl=zeros(N,length(t));%每个基元输出的时间序列
signal=zeros(N,length(t));
for k1=1:N
tao(k1,1)=(-xi(k1)*sin(angle0))./c;%*cos(angle0)^2
signl(k1,:)=exp(j*w*t).*exp(j*w*tao(k1,1));%自然指向入射角
signal(k1,:)=signl(k1,:);
end;

s=zeros(1,length(angle));
y=zeros(length(angle),length(t));

for k2=1:length(angle)%转过波束角
for k3=1:N
tao=(-xi(k3)*sin(angle(k2)))./c;
dfy_signl=signal(k3,:)*exp(-j*w*tao);%用转过波束做相位修正;*exp(-j*fy(ii))
y(k2,:)=dfy_signl+y(k2,:); % 18 路相加在该波束方向的时域输出
end
s(1,k2)=sum(abs(y(k2,:)).^2)/length(t);%在各个波束方向的总输出
end
figure(1)
plot(angle*180/pi,10*log10(s/max(s)));
 D181

标签:angle,signl,k1,k2,length,MATLAB,延时,波束
From: https://www.cnblogs.com/matlabfpga/p/16893294.html

相关文章