《常规波束形成matlab程序》由会员分享,可在线阅读,更多相关《常规波束形成matlab程序(2页珍藏版)》请在金锄头文库上搜索。
1、close all clear all clc c=1500; fs=10000;T= 0.1; t= 0:1/fs:T; L=length(t); f=500; w=2*pi*f;k=w/c;M=11; %阵元个数Nmid=1; %参考点d=3;%阵元间距m=0:1:M-1;yi=zeros(M,1);% 返回一个 M*1 维的零矩阵zi=zeros(M,1);xi=m*d;xi=xi.;%各阵元坐标y1=20;x1=10;z1=10;% 声源位置, y 轴指向声源平面Ric仁sqrt(x1-xi).A2+(y1-yi).A2+(z1-zi).A2);%声源至各阵元的距离M*1 维Rn1=R
2、ic1-Ric1(Nmid);% 声源至各阵元与参考阵元的声程差矢量 M*1 维s1=cos(w*t);% 参考阵元接收到的信号 1*L 维snr =20;Am= 10A(-s nr/20);n1=Am*(randn(M,L)+j*randn(M,L);% 各阵元噪声矢量p1=zeros(M,L);%M*L 维for k1=1:M p1(k1,:)=Ric1(Nmid)/Ric1(k1)*s1.*exp(-j*w*Rn1(k1)/c);%各阵元经过幅度衰减和相位延迟后接收到的信号, M*L 维endp=p1+ n1;%各阵元接收的声压信号矩阵M*LR=p*p/L;% 接收数据的自协方差矩阵 M
3、*M% % 扫描范围step_x=0.1;step_z=0.1;y=y1;x=0:step_x:20;z=0:step_z:20;for k1=1:length(z) % 纵坐标for k2=1:length(x)Ri=sqrt(x(k2)-xi)A2+(y-yi)A2+(z(k1)-zi)A2);%该扫描点至各阵元的聚焦距离矢量Rn=Ri-Ri(Nmid);% 扫描点到各阵元与参考阵元的程差矢量 M*1b=exp(-j*w*Rn/c);% 声压聚焦方向矢量 M*1Pcbf(k1,k2)=abs(b*R*b);endend% 归一化for k1=1:length(z)pp(k1)=max(Pc
4、bf(k1,:);% Pcbf 的第 k1 行的最大元素的值endPcbf=Pcbf/max(pp);% Pcbf 所有元素除以其最大值,归一化幅度figure;mesh(x,z,Pcbf);xlabel(x(m),ylabel(z(m)title( 常规聚焦波束形成单亮点声图 )figure;pcolor(x,z,Pcbf);shading interp;xlabel(x(m),ylabel(z(m)title( 常规聚焦波束形成单亮点声图 )colorbara,b = find(Pcbf=max(max(Pcbf);xm1=b/length(x)*20, zm1=a/length(z)*20,a b=find(Pcbf 0.5*max(max(Pcbf);deta_x=(max(b)-min(b)/length(x)*20deta_z=(max(a)-min(a)/length(z)*20