# 波束形成

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)));