引言
医用超声成像技术是现代医学诊断不可或缺的工具,其核心在于通过声波与人体组织的相互作用来获取内部结构信息。在众多超声探头中,凸阵探头和线阵探头因其不同的声学特性和成像特点,被广泛应用于腹部、妇产科、小器官及血管等不同部位的检查。这两种探头背后对应的扫描算法——即如何控制阵元发射/接收声波并处理回波信号以生成图像——是决定图像质量、帧率和诊断价值的关键。
本文将深入解析医用超声中凸阵扫描与线阵扫描的算法原理,涵盖波束合成、动态聚焦、旁瓣抑制等核心环节,并提供算法实现的思路与代码示例,最后对两者的应用场景与优缺点进行对比,为医学影像算法工程师和研究者提供一份实用的技术参考。
1. 超声扫描基础:从阵元到图像
在深入凸阵和线阵之前,需要理解超声成像的基本链路:
- 发射:探头内的压电阵元在电信号激励下产生超声波,向人体内传播。
- 传播与反射:超声波在遇到不同声阻抗的组织界面时发生反射,部分回波返回探头。
- 接收:阵元将接收到的声压信号转换为电信号。
- 波束合成:对各个阵元接收到的、存在时延差异的信号进行对齐、加权和求和,形成一条扫描线。
- 信号处理:对合成后的信号进行放大、滤波、检波、对数压缩等处理。
- 扫描转换:将极坐标(凸阵)或直角坐标(线阵)下的扫描线数据,插值转换为适用于显示器显示的直角坐标光栅图像。
- 后处理与显示:进行图像增强、平滑、伪彩等处理并显示。
凸阵和线阵的核心区别在于阵元的排列方式及其决定的声波传播几何,这直接影响了上述链路中的波束合成与扫描转换算法。
2. 线阵扫描算法
2.1 原理与几何
线阵探头的阵元呈直线等间距排列。扫描时,通过电子切换或延时,使声束沿平行线方向进行线性扫描,形成矩形的扫描区域。其成像区域为矩形,近场视野较宽,但远场视野会因声束扩散而变窄。
扫描模式:
- 顺序扫描:依次激活一组相邻阵元(如128个阵元中的第1-64个,然后第2-65个…),形成相邻的扫描线。
- 偏转扫描:通过对各阵元施加不同的延时,使声束方向偏离阵元法线方向,实现小幅度的扇形偏转,以扩大视野或实现复合成像。
2.2 核心算法:动态接收聚焦与波束合成
线阵的波束合成相对直观,因为扫描线是平行的。其核心是动态深度聚焦(DRF)。
算法步骤:
- 发射聚焦:在发射时,对激活的阵元施加不同的延时,使所有阵元发射的波前在预设的焦点处同相叠加,增强该点的声强。
- 接收聚焦(动态):
- 对于接收到的每一条扫描线,系统需要对其上的每一个像素点(或每一个深度样本)进行聚焦。
- 计算该像素点到各个接收阵元的距离
r_i。 - 根据声速
c,计算声波从发射焦点到该像素点再返回到第i个阵元的总传播时间t_i = (r_tx + r_i) / c,其中r_tx是发射焦点到像素点的距离(对于平面波发射可简化)。 - 计算各通道信号相对于某个参考通道(如中心阵元)的时延
Δτ_i。 - 对各通道的射频(RF)信号进行相应的延时对齐。
- 通道加权与求和:对对齐后的各通道信号施加孔径变迹(Apodization)权重(如汉明窗),以抑制旁瓣,然后求和得到该像素点的信号值。
- 扫描转换:由于扫描线本身就是平行且等间距的,扫描转换通常只是简单的坐标映射和插值,复杂度较低。
2.3 代码示例:线阵动态接收聚焦核心计算
以下是一个简化的Python示例,说明如何计算单点聚焦的延时:
importnumpyasnpdefcalculate_line_array_delays(element_positions,focus_point,speed_of_sound=1540):""" 计算线阵探头各阵元到某一聚焦点的接收延时。 参数: element_positions: 一维数组,各阵元在x轴上的位置(单位:米)。 focus_point: 元组 (x, z),聚焦点的坐标(单位:米)。 speed_of_sound: 声速(单位:米/秒)。 返回: delays: 一维数组,各阵元相对于中心阵元的延时(单位:秒)。正值表示该阵元信号需要被延迟。 """x_focus,z_focus=focus_point# 计算中心阵元的位置(作为参考)center_idx=len(element_positions)//2x_center=element_positions[center_idx]# 计算各阵元到聚焦点的距离distances=np.sqrt((element_positions-x_focus)**2+z_focus**2)# 计算中心阵元到聚焦点的距离dist_center=np.sqrt((x_center-x_focus)**2+z_focus**2)# 计算相对于中心阵元的传播时间差time_of_flight=distances/speed_of_sound time_of_flight_center=dist_center/speed_of_sound delays=time_of_flight-time_of_flight_center