zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

MATLAB 仿真 求和 延时 形成
2023-09-11 14:15:33 时间

仿真结果如下:

核心代码如下:

%------延时求和波束形成-------
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