本文采用“CPU+GPU”的联合编程模式。其软件架构为“MATLAB+CUDA”的混合编程架构。其中,CPU端主要使用MATLAB进行回波数据的读取及最终结果的显示;GPU端使用CUDA编程计算平台完成SA算法的并行化处理。具体的实现流程如图4-5所示。首先,在CUDA中使用cudaMalloc()函数为待处理的回波数据分配全局内存;然后,通过调用cudaMemcpy()函数完成回波数据的传输,需要注意的是,在使用该函数时,要将最后一个参数设置为“cudaMemcpyHostToDevice”,以确保数据的传输方向是从CPU至GPU;通过使用两个核(kernel)函数,分别完成低分辨图像的求解和高分辨率图像的合成,其中,使用__shared__关键字为权值函数开辟共享内存;接下来,再次使用cudaMemcpy()函数,使处理后的结果自GPU传输至CPU,此时该函数的最后一个参数应设置为“cudaMemcpyDeviceToHost”;最后,释放显存空间,并在主机端对重构的高分辨率图像进行显示。为了验证上述提出方法的可行性,本文基于Field II 软件对SA算法的并行实现过程进行了仿真验证。Field II是一款由丹麦技术大学Jensen教授团队开发的仿真工具,专门应用于医学超声成像等领域[5]。在进行验证实验之前,首先需要使用Field II软件搭建一个医用相控阵超声内镜的仿真系统,该系统主要参数的设置与本文设计的相控阵超声内镜系统一致。对于超声换能器探头而言,常用的脉冲激励方式有单脉冲激励和编码激励两种。其中,单脉冲激励方式是指使用持续时间较短的单个脉冲对换能器阵元进行激励,采用这种激励方式获取的超声图像纵向分辨率高,但是由于是单脉冲且持续时间较短,因此发射能量较小,传播距离受限;编码激励方式是指采用具有一定编码序列的多个脉冲对换能器阵元进行激励,采用这种方式虽然能够增加激励时间、提高发射能量,但是降低了成像分辨率,且电路设计较为复杂,回波需要按照特定方式进行脉冲压缩结合搭建的仿真系统进行仿真验证,具体步骤如下:1. 在成像空间中设置7个成像散射点,并将这些散射点等间隔排布在25-55mm的轴向距离范围内;2. 利用本文所设计的方法,对这7个散射点进行合成孔径成像;3. 将成像结果进行显示,观察成像散射点的位置,判断其是否与预先设置一致。实验结果如图7所示。图中原点位置为超声换能器阵列中心所在位置,所测猪皮组织由a,b两部分组成。其中,a部分尺寸约为5mm×2mm,b部分尺寸约为3mm×2mm。从成像结果中可以很明显地分辨出a、b两个部分,且猪皮组织的成像结果与实际尺寸形状基本一致。上述两个成像实验的结果均与实际情况相符,证明了相控阵超声内镜实时成像系统的可行性与高效性。从图中可以看出,7个散射点依次排列在25mm、30mm、35mm、40mm、45mm、50mm、55mm的轴向位置,以5mm间隔等间隔分布,实验结果与预先设置一致,验证了本文提出方法的可行性。