波束合成概述

各位同学,今天我们来聊聊波束合成。说实话,这是整个彩超系统的核心环节。我做了这么多年FPGA,最深的体会就是:波束合成搞不定,后面的图像处理再牛也白搭。

波束合成,说白了就是让超声探头里那几十上百个阵元协同工作。你想想看,每个阵元都在发射和接收超声波,但声波到达不同组织的时间不一样。怎么把这些信号对齐、叠加,最终形成一帧清晰的图像?这就是波束合成要解决的问题。

什么是波束合成

波束合成是一种信号处理技术。它通过控制阵列中各阵元的发射延时和接收延时,让声波在特定方向上聚焦。嗯,这里要注意:聚焦不是物理透镜那种,而是通过电子延时实现的。

我举个例子。假设你有一排人,每个人手里拿着一个手电筒。如果大家同时打开,光线是散的。但如果每个人按照一定顺序依次打开,光线就能汇聚到同一个点。波束合成就是这个道理。

在超声系统中,波束合成有两个关键作用:

  • 发射聚焦:让声波能量集中到目标区域
  • 接收聚焦:把回波信号对齐,提高信噪比

我在项目中遇到过一个问题:刚开始做波束合成时,总觉得延时计算差不多就行。结果图像出来全是伪影,根本没法看。后来才明白,延时精度直接决定了图像质量。

延时叠加(DAS)原理

延时叠加,英文叫Delay-and-Sum,简称DAS。这是最经典的波束合成方法,也是我们FPGA实现的基础。

DAS的原理其实很简单:

  1. 每个阵元接收到的回波信号,到达时间不同
  2. 根据目标点到各阵元的距离,计算出延时量
  3. 对每个通道的信号施加对应的延时
  4. 把所有延时后的信号叠加起来

为什么会这样?因为声波在组织中传播速度是固定的(约1540 m/s)。距离越远,到达时间越长。如果不做延时处理,同一个反射点的信号在时间上是错开的,叠加后反而会互相抵消。

我建议你记住这个公式:

延时量 = (目标点到阵元的距离 - 参考距离) / 声速

实际实现时,我们通常用FPGA内部的BRAM做FIFO来实现延时。每个通道一个FIFO,深度根据最大延时量确定。我曾经踩过一个坑:FIFO深度算少了,导致远场信号被截断,图像出现暗区。后来我习惯把深度多留20%的余量。

关键点:DAS的精度取决于两个因素——延时量化精度和采样率。一般来说,采样率越高,延时精度越好。但FPGA资源有限,需要权衡。

波束合成的分类

波束合成可以从不同角度分类。我个人习惯按实现方式分,这样对FPGA设计更有指导意义。

分类方式 类型 特点
按聚焦方式 发射波束合成 控制发射延时,形成聚焦声场
接收波束合成 处理回波信号,提高图像质量
按实现架构 模拟波束合成 用模拟延时线,精度有限
数字波束合成 用FPGA/DSP,灵活度高
按处理维度 一维波束合成 线阵/凸阵,只做方位向聚焦
二维波束合成 面阵,同时做方位向和俯仰向聚焦

目前主流彩超都采用数字波束合成。原因很简单:模拟方案受温度、工艺影响大,一致性差。我记得有一次调试模拟波束合成板,同一批板子测出来延时偏差超过10%,根本没法用。换成数字方案后,问题迎刃而解。

从FPGA实现角度看,我建议重点关注以下几点:

  • 延时精度:通常需要亚采样点精度,用插值滤波器实现
  • 通道数:64通道、128通道甚至更多,资源消耗线性增长
  • 实时性:彩超需要实时成像,FPGA必须流水线处理

小技巧:做FPGA波束合成时,先把延时表算好存到ROM里。运行时查表比实时计算快得多。我一般用MATLAB算好延时表,然后生成coe文件直接加载到Block RAM。

另外,波束合成还有动态聚焦和动态孔径的概念。动态聚焦就是随着接收深度变化,不断调整聚焦点。动态孔径则是根据深度改变参与合成的阵元数量。这两点在实际系统中非常重要,我们后面章节会详细讲。

注意:波束合成的延时计算一定要考虑声速变化。不同组织声速不同,如果统一用1540 m/s,脂肪和骨骼区域会出现明显的聚焦偏差。我曾经因为这个原因,图像中囊肿边界总是模糊的。后来加了声速补偿,效果立竿见影。

好了,波束合成的基本概念就讲到这里。下一章我们深入FPGA实现细节,看看怎么用Verilog把DAS跑起来。记住,理论是基础,但真正上手做项目时,你会遇到各种意想不到的问题。保持耐心,多动手调试,慢慢就有感觉了。