合成孔径成像通过依次对单个阵元发射覆盖整个图像区域的球面波,并使用所有阵元进行接收,每次生成一幅低质量的图像。通过对每次接收生成的一系列图像进行相干叠加,最终得到一个高分辨率图像。
图1:合成孔径成像基本原理
发射延时为:
其中xp为像素点坐标,xi、zi 分别为第i个发射阵元的横坐标与纵坐标;
接收延时为:
其中 xn、zn 分别为接收阵元的横坐标与纵坐标。
仿真程序如下:
1:计算RF数据
for i=1:userset.tx_aperture
x_tx=xT(cen(i)); % x position of tx focus in a tx event
ce=cen(i); % No. of center array for every tx
%% set apodization--> all active aperture
apo=zeros(1,trans.numele);
apo(ce)=1.0;
xdc_apodization(emit,0,apo);
xdc_apodization(rcv,0,ones(1,trans.numele));
xdc_center_focus(emit,[x_tx 0 0]);
xdc_focus_times(rcv,0,zeros(1,trans.numele));
%% set point target
point_pos=[ 0 0 10;
0 0 15;
0 0 20;
0 0 25;
0 0 30;
0 0 35
]/1000;
point_amp=20*ones(1,max(size(point_pos)));
[v_temp,tstart(i)]=calc_scat_multi(emit,rcv,point_pos,point_amp');
rf_data(1:max(size(v_temp)),:,i)=v_temp;
end
2:波束合成
for ii=1:userset.tx_aperture
% calc every Imageging Region of correspounding tx event
rf_sa=rf(:,:,ii);
dasdata = zeros(size(x0),userset.tx_aperture); % set das data buffer
%% Do Imaging
dTX = sqrt((x0 - xT(cen(ii))).^2 + (z0(k)).^2);
dRX = sqrt((xT-x0).^2 + z0.^2); % RX distance
tau = (dTX + dRX) / trans.c; % TX+RX travel time
dasdata(:,:,ii)=das(rf_sa,tau,trans)
disp(['Aperture_Image ',num2str(ii),' has been done']);
end
M_sig0=sum(dasdata,3);
3:仿真结果