📄 beamforming.m
字号:
%对给定阵列给定周期的接受信号形成制定角度上的波束形成
%n1,n2分别是阵列的起始和终止位置
%T是周期号
%angle是指定的波束形成角度
%返回值是 [1,Timeslice]的矩阵是在不同时间点的波束形成
function [beam_data ,time_openwindow,the_data]=beamforming(n1,n2,angle,T)
% n1=1;
% n2=13;
% angle=40;
% T=10;
[time_openwindow,raw_data]=readit(T);
Timeslice=size(raw_data,2);
for k=n1:1:n2%截取要处理的数据
the_data(k-n1+1,:)=raw_data(k,:);
end
j=sqrt(-1);
N=n2-n1+1;%初始化变量
f=300000;
c=1500;
d=c/f/2;
angle=angle*pi/180;
beam_data=zeros(1,Timeslice);
for t=1:1:Timeslice%在每一个时间片数上做处理
s=hilbert(the_data(:,t));
for k=1:N%求没个元上的插入相移
v(k)=exp(-j*2*pi*d*sin(angle)*f*(n1-1)/c)*exp(-j*2*pi*d*sin(angle)*f*(k-1)/c);
end
%---------------加窗处理——------------------
A=0.54;
B=0.46;
C=0;
for n=1:1:N
w(n)=A-B*cos(2*pi*(n-1)/(N-1))+C*cos(4*pi*(n-1)/(N-1));
end
for k=1:N%将各个阵元上的相加
beam_data(t)=beam_data(t)+w(k)*s(k)*v(k);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -