波束形成

波束形成的目的,是使多阵元构成的基阵经适当处理得到在预定方向的指向性。——《声纳技术》
根据波束形成原理,进行程序实现,并简单作出其方向性图。
里面大部分参数可以直接修改。
结合下面另一个程序 希望对大家学习波束形成有所帮助
模拟平面波入射和相关法测向过程
clear all;clc;close all;
d=5;%阵间距
N=20;%传感器数量
l=d*(N-1);%阵长
c=1500;%声速
fs=2000;%采样率
t=0:1/fs:2-1/fs;
s=zeros(length(t),N);%每通道一列

f=100;%信号频率
w=f2pi;%角频率
lamda=c/f;%波长(保证两倍阵间距小于波长
k=w/c;%波数
g0=(N-1)d/cfs;%最大偏移量
g0=ceil(g0);%向上取整

%矩形窗(不做阵增益)
theta=1:0.5:180;
summ=zeros(length(s)-2*g0+1,length(theta));
summ1=zeros(1,length(theta));

dtheta=0;
% dtheta=10/180*pi;%阵偏移角度

for i=1:length(theta) %1~180 正前方90度

for n=1:N%最右侧为1号
    phi=(n-1)*cos(theta(i)/180*pi)*d*k;%phi=kx
    s(:,n)=exp(1j*(w*t+phi));%随号数增大 多走
end

for n=1:N
    g=round((n-1)*d*sin(dtheta)/c*fs);
    summ(:,i)=summ(:,i)+s(g0+g:length(t)-g0+g,n);%正方向时多走所以是"-"
end

summ1(i)=summ(:,i)'*summ(:,i);

end

summ1=summ1/max(summ1);%归一化
figure
plot(theta,summ1);
figure
plot(theta,log10(summ1/0.1));
figure
polarplot(theta/180*pi,log10(summ1/0.1)-min(log10(summ1/0.1)));

%hamming

theta=1:0.5:180;
summ=zeros(length(s)-2*g0+1,length(theta));
summ1=zeros(1,length(theta));

dtheta=0;
% dtheta=10/180*pi;%阵偏移角度
chuang=hamming(N);

for i=1:length(theta) %1~180 正前方90度

for n=1:N%最右侧为1号
    phi=(n-1)*cos(theta(i)/180*pi)*d*k;%phi=kx
    s(:,n)=chuang(n)*exp(1j*(w*t+phi));%随号数增大 多走
end

for n=1:N
    g=round((n-1)*d*sin(dtheta)/c*fs);
    summ(:,i)=summ(:,i)+s(g0+g:length(t)-g0+g,n);%正方向时多走所以是"-"
end

summ1(i)=summ(:,i)'*summ(:,i);

end

summ1=summ1/max(summ1);%归一化
figure
plot(theta,summ1);
figure
plot(theta,log10(summ1/0.1));
figure
polarplot(theta/180*pi,log10(summ1/0.1)-min(log10(summ1/0.1)));

波束形成_第1张图片
总能量恒定 抑制旁瓣也会增加主瓣宽度 线性操作二者性能不可兼得

你可能感兴趣的:(波束形成)