Field II 超声相控阵成像系列1 |
您所在的位置:网站首页 › 超声成像过程中,探头通过()发射超声波,()接收超声波 › Field II 超声相控阵成像系列1 |
超声平面波成像仅一次发射就可以获取整个感兴趣区域图像信息,且具有较高的帧频,但由于发射声场不聚焦,图像对比度和分辨率降低。为了提高成像质量,可以通过发射若干个不同角度的平面波,进行相干叠加以提高成像质量。 此处以Field II软件仿真相控阵的复合平面波成像。 图1 相控阵成像空间坐标 图1为相控阵成像的成像空间坐标,X轴代表成像的Lateral方向,沿换能器阵列;Z轴代表Axial方向,与超声传播方向平行;Y轴代表Elevation方向。 图2 偏转角度平面波示意图 图2为相控阵平面波偏转发射的示意图,对于无偏转角度,可使各阵元发射延时全为0,对于偏转发射(包括正常发射)延时计算为: tx_d=pitch*[0:number_of_ele-1]*sin(steer); 偏转角度表示为负往左偏转,角度为正往右偏转。 在波束合成中时,采用最常用的延时叠加算法,延时由两部分构成发射延时Tx 和接收延时Rx ,在成像过程中需要减去起始采样时间tstart,在实际工程中tstart可以代表波束合成参数准备时间、声束在透镜中传播时间等,最终成像的延时表示为: delay_t=Tx+Rx-tstart; Tx=(z(k)*cos(TXangle) + (x(k)+ halfaper)*sin(TXangle))/c; % TX distance Rx = (sqrt((xT-x(k)).^2 + z(k).^2))/c; % RX distance halfaper = sign(TXangle)*xT(end); 其中tstart可有Field II中 calc_scat_multi 函数提供, c为声速,[x(k),z(k)] 为像素点坐标。xT为换能器阵元坐标。 需要注意的是相控阵成像是成像区域为扇形区域,并非矩形区域,如下图所示,因此在做延时叠加时,需要将极坐标系转化为笛卡尔坐标系。 仿真程序 1. 参数设置 %% specify trans parameters trans.name='P7-4'; 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.设置相控阵成像视角,成像深度,偏转角度 userset.theta = -pi/4; userset.fs=100e6; % sampling frequency userset.dep1=0e-3; % image start depth userset.dep2=40e-3; % image end depth userset.lat1=trans.ElementPos(1); %image start lateral position userset.lat2=trans.ElementPos(end); %imade end lateral position userset.angrange=20; userset.angnum=21;3 设置阵元激励以及脉冲响应 %% generate TX array emit=xdc_linear_array(trans.numele,trans.width,trans.heigh,trans.kerf,3,10,trans.focus); % generate RX array rcv=xdc_linear_array(trans.numele,trans.width,trans.heigh,trans.kerf,3,10,trans.focus); %% set implse response impulse=sin(2*pi*trans.fc*(0:1/userset.fs:2/trans.fc)); impulse_response=impulse.*hanning(max(size(impulse)))'; xdc_impulse(emit,impulse_response); %set emit aperture impulse response xdc_impulse(rcv,impulse_response); %% set exciting of TX array excitation=sin(2*pi*trans.fc*(0:1/userset.fs:2/trans.fc)); %set excitation xdc_excitation(emit,excitation); %set emit aperture excitation %% set frequency of sampling set_sampling(userset.fs)4 生成仿真数据 Angles= Anglearange(userset.angrange,userset.angnum); for i=1:userset.angnum txsteer=Angles(i); %% tx_d=plane_wave_delayt(trans,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_d); xdc_focus_times(rcv,0,zeros(1,trans.numele)); %% set point target point_pos=[ -2 0 10; 2 0 10; -2 0 15; 2 0 15; -2 0 20; 2 0 20; -2 0 25; 2 0 25; -2 0 30; 2 0 30; -2 0 35; 2 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; end5.波束形成 [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),userset.angnum); tic for ii=1:userset.angnum rf_an=rf(:,:,ii); TXangle = Angles(ii); halfaper = sign(TXangle)*xT(end); %% Do Imaging dTX = z*cos(TXangle) + (x+ halfaper)*sin(TXangle); % TX distance dRX = sqrt((xT-x).^2 + z.^2); % RX distance tau = (dTX + dRX) / trans.c; % TX+RX travel time tau=dTX+dRX-tstart(ii); dasdata(:,:,ii)=das(rf_an,tau,trans) end5 成像 migSIG1=sum( dasdata,3); FrameData = abs(migSIG1); f1 = figure; imagesc(X*1000,Z*1000,20*log10(FrameData/maxd),[-60,0]);colorbar; colormap gray; axis image6 结果 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |