Field II 超声相控阵成像系列2——聚焦成像

      Field II 超声相控阵成像系列1中使用Field II仿真了平面波成像,与平面波相比,聚焦成像像在焦点处分辨率、信噪比更强。平面波发射一次获取整个图像,而聚焦成像需要发射多条扫描线以成像整个区域,与平面波相比其成像帧率大大降低。理想上我们希望对每一个深度上的点进行发射聚焦,但由于声波传播需要时间,一副图像的形成包含N*M个点,需要上万次发射,无法实时成像。本文在这里只介绍单点聚焦成像。

      聚焦扫描成像的波束合成采用目前常用的延时叠加 (delay and sum, DAS ) 算法。通过计算每条聚焦扫描线上每个像素点的总延时,从接收阵元中取出对应时间的回波采样数据,然后把不同阵元上反映同一像素点的数据进行相加,最终得到一个增强的幅值信号。

图1

       图1为相控阵成像的成像空间坐标,X轴代表成像的Lateral方向,沿换能器阵列;Z轴代表Axial方向,与超声传播方向平行;Y轴代表Elevation方向。

图2

 

      图2示意图为相控阵在成像时第一条扫描区域的位置,因此在对不同扫描线产生的数据进行波束形成时,其扫描区域要与之对应,这样才能正确重建Bmode影像。

仿真程序:

注:相控阵在聚焦成像时,发射中心位置永远在阵元中心位置处,且所有阵元通道均开放

1.参数设置

trans.fc=6e6;
trans.numele = 64;
trans.width =136.9e-6; % width in mm
trans.pitch = 171.1e-6;   % Spacing between elements in mm.
trans.kerf=trans.pitch-trans.width;
trans.heigh=14e-3;
trans.elevationFocus =60e-3; % nominal elevation focus depth from lens on face of transducer (spec)
trans.focus=[0 0 100e6]/1000;
trans.ElementPos = trans.pitch*(-((trans.numele-1)/2):((trans.numele-1)/2));
trans.c=1540; % speed of sound
xT=trans.ElementPos;

2 定义成像参数,聚焦参数

%% some necessary parameters defined by yourself
userset.theta = -pi/4;
userset.fs=100e6; % sampling frequency
userset.dep1=0e-3; % image start depth
userset.dep2=80e-3; % image end depth
userset.lat1=trans.ElementPos(1); %image start lateral position
userset.lat2=trans.ElementPos(end); %imade end lateral position
userset.txfocus=30e-3;
userset.Raynum=128;
userset.rayDelta = 2*(-userset.theta)/(userset.Raynum-1);
userset.aperture = 64*trans.pitch;
trans.radius = -(userset.aperture/2)/tan(-userset.theta);

3 计算仿真数据

%% calc scat spot
Angles= userset.theta:userset.rayDelta:(userset.theta + (userset.Raynum-1)*userset.rayDelta);
txfocus=userset.txfocus;
for i=1:userset.Raynum
  
    txorigin=-(trans.radius*tan(Angles(i)));
    xorg(i)= txorigin;
    txsteer=Angles(i);
    [x_focus,z_focus]=calc_focal(txorigin,txsteer);
    %%
    tx_dd(i)=calc_delay(xT,x_focus,z_focus);
    
    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_dd);
    xdc_focus_times(rcv,0,zeros(1,trans.numele));
%% set point target

point_pos=[ 0 0 10;
            0 0 20;
            0 0 30;
            0 0 40;
            0 0 50;
            0 0 60;
            0 0 70

               ]/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

 4 波束形成

[xx,zz]=ImageRegion(userset.lat1,userset.lat2,userset.dep1,userset.dep2);
x=xx(Region.idx);
z=zz(Region.idx);
rf=hilbert(rf_data);
dasdata = zeros(size(xx,1),size(xx,2));
tic
for ii=1:userset.angnum
   
    rf_an=rf(:,:,ii);
   
%% Do Imaging

        dTX =sqrt( (x(k)).^2+(z(k)-trans.radius).^2)+trans.radius; % TX distance
        dRX = sqrt((xT-x(k)).^2 + z(k).^2); % RX distance
        tau = (dTX + dRX) / trans.c+max(tx_dd(ii)); % TX+RX travel time
        
        dasdata(:,:)=das(rf_an,tau,trans)
       
    
end

FrameData = abs( dasdata);
DisplayData = FrameData;    
maxd = max(abs(DisplayData(:)));
f1 = figure;
imagesc(X*1000,Z*1000,20*log10(FrameData/maxd),[-60,0]);colorbar;

5 成像结果

 


     

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值