我是靠谱客的博主 单纯诺言,最近开发中收集的这篇文章主要介绍延时求和波束形成的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

最后

以上就是单纯诺言为你收集整理的延时求和波束形成的MATLAB仿真的全部内容,希望文章能够帮你解决延时求和波束形成的MATLAB仿真所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部