电子工程学生
我们去年做过类似方案,用Zynq-7010搞定了。核心思路是流水线+并行化,把整个处理链拆成多个独立阶段,每个阶段用不同硬件模块同时跑。比如ADC采集完一段数据,立刻送进FFT模块,FFT算距离维的同时,下一段采集已经在进行了。这样吞吐量能上去。
资源分配上,DSP尽量留给FFT和乘法密集操作,我们用了Xilinx的FFT IP核,可以配置成流水线模式,每个时钟周期都能吃新数据,特别省资源。Block RAM主要存窗函数系数、CFAR的参考窗数据,还有跟踪算法里的状态矩阵。注意把大数组拆到多个BRAM里,提高并行访问速度。
跟踪算法里,卡尔曼滤波的预测和更新涉及矩阵乘法和求逆,这部分最适合硬件加速。我们写了个简单的矩阵运算模块,用DSP做乘加,虽然比不上专用IP,但比软核快几十倍。
关键是要提前仿真,用Matlab把算法定点化,确定好数据位宽,不然FPGA里资源一下就爆了。学生板子资源有限,别追求太复杂的多目标跟踪,先稳定跟踪3-5个目标就够用了。
