相控阵发散波成像将发射的虚拟点源放置在换能器阵元后的一段圆弧上,通过一次发射就可获得整幅图像,但与平面波相同一次发射生成的图像质量不佳,需要进行角度复合提高成像质量。发散波成像发射示意图如图1所示。
图1 发散波成像及波束形成示意图
其中虚拟点源的坐标为:Vx,Vz
(1)
(2)
在虚拟点源已知的条件下,各个阵元在不同偏转角度传输时间延时可确定如下:
(3)
公式1中的表示偏转角度,r是虚拟源半径,xn为阵元坐标,c是声速。
波束合成中的延时由上图中的两部分构成发射延时Tx和接收延时Rx,在仿真过程中需要减去数据采样起始时间tstart,在实际中ststart可以代表波束合成参数准备时间、声束在透镜中传播时间等,最终延时表达为:
仿真程序:
1:计算仿真数据
Angles= linspace(-userset.angrange/2,userset.angrange/2,userset.angnum);
for i=1:userset.angnum
txsteer=Angles(i);
tx(i).delay=calc_delay(trans,c,txsteer);
xdc_apodization(emit,0,ones(1,trans.numele));
xdc_apodization(rcv,0,ones(1,trans.numele));
xdc_center_focus(emit,[0 0 0]);
xdc_focus_times(emit,0,tx(i).delay);
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;
0 0 40
]/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 :波束形成
x=xx(Region.idx);
z=zz(Region.idx);
dasdata = zeros(numel(x),userset.angnum);
for ii=1:userset.angnum
rf_an=Hilbert(rf(:,:,ii));
% Delay
dTX = sqrt((x-vsx(ii)).^2+(z-vsz(ii)).^2); % TX distance
dRX = sqrt((xT-x).^2 + z.^2); % RX distance
tau = (dTX + dRX) / trans.c; % TX+RX travel time
dasdata(k,ii) = das(rf_an,tau,trans);
end
end
3:结果