✅ 一、总体处理链路(FPGA 典型结构)
下视多波束与前视不同,其数据链路一般是 单发多收 ,经 动态聚焦(TDBF) 生成多条波束,再做检测或体成像。
完整 FPGA 处理流程:
ADC → 下变频(DDC) → CIC/抽取 → 匹配滤波(MF) → 动态聚焦(TDBF)
→ 形成 M 条波束(M=48/96/256)→ 包络/功率检测
→ 多普勒/图像增强(可选) → 数据压缩 → 以太网/PCIE 输出
✅ 二、各级功能说明(FPGA 工程版)
1)ADC 接收与均衡
-
采样频率:2--50 MHz(取决于换能器中心频率)
-
通道数:典型 32/48/64/96/128
-
FPGA 首先完成:
- 通道校准(IQ/幅相)
- TGC(时域增益补偿)
- DC offset 滤除、数字增益调整
资源消耗: 少量 DSP48 + LUT。
2)下变频 DDC(NCO + 混频 + CIC)
将中频(如 300 kHz--1.5 MHz) 转为基带 IQ。
模块结构:
NCO → Mixer(I/Q) → CIC → Halfband/抽取 FIR
工程关键点:
- NCO 用 DDS Compiler(1 DSP48)
- CIC 第一级抽取 8--64 倍
- 第二级 FIR 抽取到最终采样率(如 50 kSPS)
优化:
- 32 通道以上 → 使用 共享 NCO + 时分复用混频结构
- CIC 位宽增长要在 32--36bit 处截断,节省资源
3)匹配滤波(Analog MF 或 LFM MF)
通常对 LFM 或 CW 做 MF,实现距离像构建。
两种方式:
A. FIR IP 核实现 MF
- 长度:300--2000 tap
- 方式:转置结构(1 sample / clk)
- 优化:用 对称系数 、复数 FIR 合并乘法器。
B. FFT/Overlap-Save 实现 MF(强烈推荐)
- RT 系统常用 1024/2048 点 FFT
- 时频域处理资源更低
工程选择:
- 通道 N > 64 时,FFT MF 资源最优。
4)动态聚焦(TDBF)/ 动态时延补偿
这是多波束声呐最关键的 FPGA 算法。
动态聚焦原理
对每个接收通道,根据声速、深度和时刻计算:
Delay(ch, t) = sqrt( D(t)^2 + (ch*d)^2 ) / c
再对每个方向 θ 求和:
Beam(θ, t) = Σ [ W(ch)* x_ch( t - Delay(θ,ch,t) ) ]
★ FPGA 上的实际实现方式
A. LUT 预存时延表
常用:
- 深度 0--300 m
- 每个采样点存 8--14bit 时延(索引)
FPGA 中做:
RAM 读延时索引 → 多通道 FIFO 对齐 → 加窗 → 求和
B. 分段线性时延逼近(节约 RAM)
Delay = A*t + B
每 128 点拟合一段,大幅减少 BRAM。
资源消耗(参考 64 通道系统)
| 模块 | DSP | BRAM | LUT |
|---|---|---|---|
| 延时 FIFO | 0 | 64 | 少量 |
| 权重 + 加权求和 | 64--128 | <10 | 适中 |
| 控制逻辑 | 0 | 0 | 中等 |
5)多波束形成(Azimuth Beamforming)
一般形成:
- 48/96/128 beams
- 角度覆盖:±60° 或 ±120°
方式:
A. 全数字加权叠加(最精确)
beam_i = Σ x_ch * w_i,ch
B. FFT Beamforming(更高效)
对阵列通道直接作 64 点 FFT 得 64 beams。
适用: 均匀线阵(常用于下视多波束)
资源:轻量,DSP 资源较少。
6)包络检测 / 功率计算
对每个波束 signal(t) 进行:
Envelope = sqrt(I^2 + Q^2)
Power = I^2 + Q^2
优化:
- 使用 CORDIC 实现 sqrt
- 或直接输出功率更节省硬件(不做 sqrt)
7)图像增强(可选)
- TVG(距离补偿)
- Log 压缩(用 LUT)
- 滤波器(3×3/5×5)
8)数据压缩与输出
常见输出速率:
- 千兆以太网(UDP)
- 10G/PCIE(若图像速率 > 10Hz)
压缩方式:
- 8bit 动态压缩
- 数据裁剪(远距离去除空白)
✅ 三、FPGA 整体架构(示意图)
┌──────────┐
ADC(64ch) ───►│ 通道校准 │───┐
└──────────┘ │
▼
┌──────────┐
│ DDC │ (CIC+FIR)
└──────────┘
▼
┌──────────┐
│ 匹配滤波 │(FFT-MF)
└──────────┘
▼
┌──────────┐
│ 动态聚焦 │(TDBF)
└──────────┘
▼
┌──────────┐
│ 多波束BF │(FFT/加权求和)
└──────────┘
▼
┌──────────┐
│ 包络/功率 │
└──────────┘
▼
┌─────────────┐
│ 图像处理 │
└─────────────┘
▼
┌─────────────┐
│ 数据输出 │ (UDP/PCIE)
└─────────────┘
✅ 四、你在做 FPGA 时应特别关注的关键点
1. 通道越多,资源按 N×logN 增长,不是 N²
- 因此 FFT-MF 和 FFT-Beamforming 强烈推荐。
2. TDBF 时延管理是整个设计的核心
- 是否用 LUT?需要多少 RAM?
- 线性逼近能节省多少资源?
- 是否需要每条 beam 独立 FIFO?
3. 输出带宽必须提前规划
下视多波束图像通常:
- 行频:10--30 Hz
- 数据量:可达 50--300 Mbps
必须从一开始规划 1G/10G 以太网。