超声成像发射声场仿真(Ultrasound Emit Field Simulation)
根据超声波阵面的实现方式可以将超声成像分为平面波(plane wave)成像、扩散波(diverging wave)成像、聚焦(focus)成像。为了实现上述成像方式需要施加不同的发射延时形成相应的波阵面。不同的波阵面形成的发射声场表现不同,了解不同成像方式的声场有助于我们加深超声成像的了解。
此处以Field II软件仿真不同成像方式发射声场。发射延时可以使用Filed II自带函数生成,由于实际工程需要发射延时是由工程师去计算配置的,下文列出了发射延时的计算方式。
Field_II是丹麦超声专家J. A. Jensen等利用声学原理设计的一个超声系统。它可以仿真超声探头所形成的声场和超声图像等。这里默认已经对Filed _II有一定了解。
一、平面波发射声场
1、线阵探头/相控阵探头
上图是线阵/相控阵平面波正常发射和偏转发射的示意图,对于平面波没有聚焦的概念,因此只要使激励阵元的延时形成平面波就可以。
对于正常发射各阵元发射延时全为0,对于偏转发射(包括正常发射)延时计算为:
角度为负往左偏转,角度为正往右偏转,对于以后的扫描偏转方向沿用这一规则。
当计算完成发射延时,就可以进行声场仿真。
首先需要对配置探头参数进行配置,参数如下:
clear all
close all
clc
plt = 1;%是否绘制
f0 = 7500000;
N_elements = 128;
width = 0.17e-3;
height = 5e-3;
kerf = 0.03e-3;
focus = 20e-3;
fs = 200e6;
Th = xdc_linear_array (N_elements, width, height, kerf, 1, 10,[0,0,focus]);
Rh = xdc_linear_array (N_elements, width, height, kerf, 1, 10,[0,0,focus]);
if plt
probeplt(Th);
end
设置脉冲相应、阵元位置及平面波发射角度
%设置2个周期高斯脉冲相应、1个周期激励脉冲
dt = 1/fs;
t0 = (-1/f0): dt:(1/f0);
impulse_response = gauspuls(t0, f0);
impulse_response = impulse_response-mean(impulse_response);
pulse_duration = 1;
te = 0:dt:pulse_duration/f0;
excitation = square(2*pi*f0*te);
%设置脉冲相应
xdc_impulse (Th, impulse_response);
xdc_impulse (Rh, impulse_response);
%设置激励脉冲
xdc_excitation (Th, excitation);
%发射角度
steer_angle = [-15,0,15];
%阵元位置
if strcmp(probetype,'linear')
x_ele = ([0:N_elements-1]-(N_elements-1)/2).*pitch;
probe_xyz = [x_ele',zeros(length(x_ele),1),zeros(length(x_ele),1)];
end
计算发射声场
%设置发射声场显示区域
x = linspace(-2e-2,2e-2,128);
z = linspace(0,4e-2,256);
emit_field = zeros(256,128,length(steer_angle));
for i = 1:length(steer_angle)
%实际工程中发射变迹通过发射波形去控制,以后再实施,这里不做发射变迹
xdc_apodization(Th,0,ones(1,N_elements));
%设置平面波发射延时
delay(i,:) = plane_wave_tranmit_delay(probe_xyz,steer_angle(i)*pi/180,c,probetype);
xdc_times_focus(Th,0,delay(i,:));
%计算发射声场
emit_field(:,:,i) = emit_field_calc(Th,x,z);
end
无偏转平面波延时设置也可以通过下面进行
xdc_center_focus(Th,[0,0,0]);
xdc_focus(Th,0,[0,0,0]);
发射声场field II计算函数
[xi,zi] = meshgrid(x,z);
xi = xi(:);
zi = zi(:);
emit_field = calc_hp(Th,[xi,zeros(length(xi),1),zi]);
从上图可以看出发射延时有负数,实际工程中会给一个t进行补偿,保证延时大于0。
2、凸阵
上图是凸阵平面波正常发射和偏转发射的示意图
对于正常发射各阵元发射延时全为0,对于偏转发射(包括正常发射)延时计算为:
为平面波偏转角度,为阵元相对中间线的夹角
另一种计算发射延时方法是计算定点到阵元波阵面(与波阵面垂直)的切线,通过切线可以计算出阵元到波阵面的距离,然后转化为发射延时。
代码框架与上面一致,结果为
二、扩散波发射声场
扩散波与平面波都可以通过一次发射获取较大的图像视野,与平面波不同的是扩散波虚拟了一个点源
1、线阵探头/相控阵探头
此处定义虚拟源的半径为,偏转角度为
2、凸阵
凸阵原理与线阵类似
三、聚焦波发射声场
1、线阵探头
聚焦声场的延时使用Field II 自带函数计算,聚焦深度3cm,发射线为中心线,发射延时计算
xdc_center_focus(Th,[fcous_x,0,0]);
xdc_focus(Th,0,[fcous_x,0,fcous_z]);
或是通过自行计算的延时导入Filed II
delay = fcous_wave_tranmit_delay(probe,loc_x,fcous_depth,steer_angle*pi/180,c);
xdc_times_focus(Th,0,delay);
偏转-15自行计算与Fileld II延时对比,符合预期
2、凸阵探头
代码框架与上面一样,发射线为中心线,聚焦深度4cm,结果为
3、相控阵探头
相控阵探头发射线永远位于中心线处,聚焦延时修改为
xdc_center_focus(Th,[0,0,0]);
xdc_focus(Th,0,[fcous_x,0,fcous_z]);
发射线为中心处,角度为[-30,0,30],聚焦深度6cm,结果为
总结
设置不同的发射延时,可以实现不同的成像方式,同时将自己计算的发射延时与Field II做对比有助于验证发射延时的正确性。