延时求和波束形成的MATLAB仿真
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了延时求和波束形成的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仿真的主要内容,如果未能解决你的问题,请参考以下文章
基于自适应降秩LCMV的波束形成算法性能研究和matlab仿真