我开发了一种雷达,用于确定与远程物体的距离。它使用带有执行 DSP 算法的板载 FPGA 的定制 PCB。然后将其中的数据绘制在主机 PC 上。这显示为 2D 直方图,其中 y 轴表示 FFT 频率区间(由于雷达的性质,这与距离成正比),x 轴表示时间。该图(如下所示)在天线和最大范围之间的距离处给出了非常强的信号,我无法解释。
实际执行的算法是: 一个 FIR 多相抽取滤波器(从 40MHz 到 2MHz 的下采样),它产生长度为 1024 个样本的输出。然后我通过一个 beta 为 6 的 Kaiser 窗口函数运行它,然后是一个 1024 点的 FFT,其结果被传输到主机 PC。对于图中的每个 t 值(x 轴),主机 PC 平均超过 30 个 1024 长度的序列(按元素平均)。由于 FFT 的所有输入都是实数,因此输出是 Hermitian 对称的,因此我只绘制每个输出序列的前 512 个值。您在上面看到的强信号出现在箱 257 和 258(从 0 开始索引)。我在一个不应产生任何强信号的开放空间中测试了雷达。我已经模拟了所有的 FPGA 逻辑,所以虽然我不能确定它是正确的(我
这可能是什么原因?我缺少一些明显的方面吗?如果其中任何一个不清楚,或者我省略的某些信息对于回答这个问题很重要(例如,将频率与距离相关的方程式),请告诉我,我会包括在内。
编辑:有关获取信号的更多详细信息
这是一个 FMCW 雷达。频率合成器在 1ms 的持续时间内产生从 5.3GHz 到 5.9GHz 的锯齿波。该信号同时传输并与反射信号混合。然后我们测量差频以退出距离。
FPGA 模块是定时的,以便仅在合成器的斜坡周期内采集数据。首先,我启用斜坡和功率放大器并(一旦启用)开始采集数据。数据由 FIR 滤波器处理,然后通过 kaiser 窗口。一旦最后一个样本通过 FIR 滤波器,斜坡和功率放大器将被禁用。处理后的数据(存储在 FIFO 中)现在通过 FFT 运行,然后生成的输出通过 USB 以数据包的形式发送到主机 PC。我使用标头序列、尾序列和重复数据包来避免数据损坏/丢失。FFT 完成后,该过程再次开始(斜坡和功率放大器启用等)。
FIR 滤波器应该用 0.5ms 以上的时间来采集所有样本,因此它应该落在频率斜坡周期内。