第四章 接收波束合成:动态聚焦、动态孔径、动态变迹
好,咱们进入接收波束合成的核心环节。
发射波束搞定后,回波信号怎么收?说白了,就是要把探头每个阵元收到的信号,通过延时、加权、求和,合成一条高质量的扫描线。这里面有三个关键动作:动态聚焦、动态孔径、动态变迹。我习惯叫它们「三驾马车」,缺一个,图像质量都会打折扣。
4.1 动态聚焦:让焦点跟着深度跑
先问个问题:为什么需要动态聚焦?
你想想看,发射时我们只能聚焦在一个深度上。但接收不一样——回波是从浅到深依次回来的。如果我只用一个固定焦点,那焦点以外的区域就会模糊。怎么办?让焦点随着接收深度动态移动。
这就是动态聚焦的核心思想:实时计算每个深度对应的延时量。
关键公式(简化版):
延时量 τ = (√(d² + x²) - d) / c
其中 d 是当前深度,x 是阵元到中心的距离,c 是声速。
注意:这个公式在 FPGA 里不能直接算,太慢了。我们一般用查表法。
我在项目中遇到过一个问题:查表法虽然快,但深度分辨率不够。比如每 1mm 换一次焦点,图像在焦点切换处会有「跳变感」。后来我改用线性插值,在相邻焦点之间平滑过渡,效果好了很多。
我的经验:
动态聚焦的更新频率建议不低于 10MHz。也就是说,每 100ns 左右就要更新一次延时参数。这在 FPGA 里完全做得到,用双口 RAM 存好预计算的延时表,深度地址直接查就行。
4.2 动态孔径:浅用小孔径,深用大孔径
动态孔径,说白了就是接收孔径的大小随深度变化。
为什么?浅层回波强,用小孔径就能保证信噪比,还能避免近场伪像。深层回波弱,必须用大孔径多收信号,才能把微弱信号捞出来。
我刚开始做彩超时,犯过一个低级错误:固定孔径。结果浅层图像亮得刺眼,深层却黑乎乎一片。后来加了动态孔径,图像均匀度立马提升了一个档次。
| 深度范围 | 孔径大小(阵元数) | 说明 |
|---|---|---|
| 0 - 20 mm | 16 | 近场,小孔径抑制旁瓣 |
| 20 - 50 mm | 32 | 中程,逐步打开 |
| 50 - 100 mm | 64 | 远场,全孔径接收 |
| 100 mm 以上 | 128 | 最深,最大孔径 |
注意:
动态孔径的切换不能太突然。我曾经试过从 32 阵元直接跳到 64 阵元,结果图像上出现了一条明显的「接缝」。后来改成渐变切换,每次增加 4 个阵元,每 5mm 切换一次,接缝就消失了。
4.3 动态变迹:给阵元信号加个「窗」
动态变迹,就是给每个阵元的信号乘上一个加权系数。
为什么要加权?因为如果不加权,阵元边缘的信号会产生很强的旁瓣,导致图像出现「鬼影」。加权后,旁瓣被压制,主瓣变宽一点但更干净。
常用的窗函数有:
- 汉宁窗:旁瓣抑制好,主瓣稍宽
- 海明窗:和汉宁类似,但旁瓣更低
- 布莱克曼窗:旁瓣抑制最强,但主瓣最宽
- 矩形窗:不加权,旁瓣高,一般不推荐
我个人习惯用汉宁窗,因为它平衡了分辨率和旁瓣抑制。在 FPGA 里实现也很简单,预存一组系数到 ROM 里,查表乘一下就行。
动态变迹的关键:
加权系数也要随深度变化!浅层用窄窗(旁瓣抑制强),深层用宽窗(灵敏度高)。这就是「动态」二字的含义。
嗯,这里要注意:动态变迹和动态孔径是联动的。孔径变大时,窗函数也要相应调整。我一般把孔径和变迹系数放在同一个查找表里,深度地址同时查两个参数,省逻辑资源。
4.4 FPGA 实现要点
好了,理论讲完,咱们看看 FPGA 里怎么干。
接收波束合成的核心模块就三个:
- 延时控制模块:根据深度查表,生成每个通道的延时量
- 变迹加权模块:根据深度查表,生成每个通道的加权系数
- 求和模块:把所有通道的延时加权后的信号累加
代码结构大概这样:
// 伪代码,实际用 Verilog 或 VHDL
always @(posedge clk) begin
depth_addr <= depth_counter; // 深度地址递增
// 查延时表
delay_val <= delay_lut[depth_addr][channel_id];
// 查变迹表
apod_val <= apod_lut[depth_addr][channel_id];
// 延时 + 加权
channel_out <= fifo_read(channel_id, delay_val) * apod_val;
end
// 求和
sum_out <= sum(channel_out[0:N-1]);
避坑指南:
我曾经在延时 FIFO 的深度上吃过亏。如果最大延时量是 10us,采样率 40MHz,那 FIFO 深度至少 400 个点。别算少了,否则数据会溢出。
4.5 三个动态的协同工作
最后说一句:动态聚焦、动态孔径、动态变迹,不是各自为战,而是协同工作的。
我习惯用一个深度索引来统一控制这三个参数。每来一个采样点,深度索引加 1,然后同时查三张表:延时表、孔径表、变迹表。这样逻辑清晰,时序也容易收敛。
举个例子:
- 深度 10mm:孔径 16,汉宁窗,焦点在 10mm
- 深度 30mm:孔径 32,汉宁窗,焦点在 30mm
- 深度 60mm:孔径 64,海明窗,焦点在 60mm
你看,三个参数一起变,图像质量才能做到最优。
总结一句话:
接收波束合成的本质,就是用延时控制方向,用孔径控制灵敏度,用变迹控制旁瓣。三个动态配合好,你的彩超图像就能又亮又干净。
好,这一章就到这儿。下一章咱们聊聊正交解调与基带处理,那是从射频信号变成 B 模式图像的关键一步。