当前位置: 首页 > news >正文

雷达系统设计学习:自制6GHz FMCW Radar

国外大神自制6GHZ FMCW Radar开源项目: https://github.com/Ttl/fmcw3

引言

之前我做过一个简单的调频连续波(FMCW)雷达,能够探测到100米范围内人体大小的物体。虽然它确实能用,但由于预算有限,还有很大的改进空间。

FMCW雷达工作原理

如果您读过我之前的文章,应该知道FMCW雷达的工作原理,但为了完整起见,下面给出一个简短的解释:调频连续波 (FMCW) 雷达的工作原理是发射一个频率随时间线性变化的啁啾。该啁啾随后通过天线辐射出去,被目标反射,并被接收天线接收。在接收端,延迟的接收信号和发射啁啾的未延迟副本被混频(相乘)。混频器的输出是两个正弦波,其频率分别为和波和差波。接收信号的频率几乎相同,和波的频率约为原始信号的两倍,已被滤除,而差波的频率在 kHz 到几 MHz 之间。差频取决于接收反射信号的延迟,从而可以确定反射信号的延迟。电磁波以光速传播,因此可以将延迟精确转换为距离。当有多个目标时,输出信号是不同频率的总和,并且可以通过傅里叶变换有效地恢复到目标的距离

先前版本的问题

之前版本最大的问题是电源噪声导致接收信号中出现杂散,ADC 采样时钟未锁定到 PLL 参考时钟,而且微控制器速度太慢。

为了省钱,我选择使用两个降压转换器为所有数字和模拟组件供电。即使我将转换器的开关频率设置为高于中频频率,但在较低频率下也会出现一些杂散。增加电容并将电感换成屏蔽性能更好的电感可以缓解这个问题,但并不能完全解决问题。正确的解决方法是在降压转换器后添加线性稳压器来消除开关噪声

ADC 和 PLL 使用独立时钟的问题导致 ADC 的采样间隔在两次扫描之间发生变化。最大偏移量仅为±半个样本,在仅进行距离测量时,这不是什么大问题。然而,当尝试测量心跳和呼吸频率时,变化的采样间隔带来的额外相位噪声会导致测量中出现一些噪声。电源噪声也会降低相位噪声性能。解决这个问题的方法很简单:ADC 和 PLL 使用相同的时钟

我使用的微控制器与最便宜的 8 位微控制器相比功能强大,但其性能严重不足,无法进行任何数字信号处理。所有的处理能力和内部存储器都用于通过 USB 将样本从 ADC 快速传输到 PC。ADC 的采样速度为 10 MHz,由于 DSP 资源不足,每个样本都需要传输到 PC。即使是扫描之间没有任何有用数据的样本,也要传输到 PC 后丢弃。如果资源充足,就可以进行数字滤波,降低采样速度,只传输有用的样本。

微控制器实际上没有足够的处理能力来执行任何复杂的滤波。例如,一个 100 抽头的 FIR 滤波器需要对每个样本进行 100 次乘法和 100 次加法。即使乘法可以在一个时钟周期内完成,最大采样率也太低,难以使用。微控制器还应具备足够的处理能力来传输ADC样本并执行通信和其他逻辑操作。FPGA更适合DSP,因为这些操作可以并行完成。

最后一个改进是添加第二个接收天线。当有多个接收天线时,可以确定接收信号的到达方向。如果返回信号以一定角度到达,则会在不同的时间被不同的天线接收。不同的到达时间会导致中频信号发生相移,从而可以用来确定方向。

链路预算

由于我没有更换发射器,因此使用相同的喇叭天线时,最大范围性能应该与上一个版本基本相同。当使用较小的贴片天线作为接收天线时,由于贴片天线的增益和效率较低,范围会减小。可以使用雷达公式计算探测目标的最大范围

其中 Pt为发射功率,G为天线增益,λ为波长,σ为目标的雷达散射截面,Pmin为最小可检测信号功率。大多数值都很容易确定,但最小可检测功率的确定却比较棘手。显然,可检测到的最小功率取决于接收机的噪声水平。接收机输入端的噪声是射频热噪声,可以用 kTBF计算,其中 k为玻尔兹曼常数,T为噪声温度,B为噪声带宽,F为接收机噪声系数。

确定正确的噪声带宽至关重要,但很容易出错。噪声带宽明显小于扫描带宽,因为中频滤波器会滤除大部分射频噪声。中频滤波器带宽决定了进入ADC的噪声功率,但这并不是要使用的噪声带宽,因为部分噪声在进行FFT后可以被清晰地滤除。对中频信号进行FFT时,总射频噪声会被平均分配到每个FFT单元。一个FFT单元的带宽等于接收机的噪声带宽,也是计算中应该使用的带宽。一个FFT单元的带宽仅取决于FFT的长度。对于FMCW雷达,FFT长度等于一次扫描的长度ts,而一个FFT单元的带宽等于1/ts

扫描长度为 1 ms,噪声系数为 6 dB,接收机输入端的射频本底噪声为 -138 dBm。要使信号可检测到,其强度应比噪声高出一定程度。以 20 dB 为所需信噪比,可检测到的最小信号为 -118 dBm。

将上述值代入雷达方程,可计算得出雷达探测人体大小、横截面积为 1 平方米的目标的最大探测距离为 320 米。目标大小确实有很大影响,例如,横截面积为 0.01 平方米的鸟类大小的目标只能在 102 米以下探测到。表中的发射功率略显保守,因为包含了天线、电缆和 PCB 的损耗。

这对于雷达观测空中来说是正确的,但当雷达天线以低角度观测时,杂波问题会降低信噪比。当天线角度较低且雷达位于平坦地面时,基本上每个距离都会有来自地面的回波。来自树木、建筑物等其他物体的回波也可能与目标信号重叠,从而降低信噪比。

接收器设计

先前的距离计算假设接收器具有足够的动态范围来检测射频噪底,线性度也足够好。应特别注意接收器的动态范围,因为来自天线附近目标的反射功率将远大于噪底,并且接收器应该能够同时解析两个回波。

接收器的噪声系数应尽可能低,这可以通过选择具有低噪声系数和高增益的低噪声放大器来实现。低噪声放大器 (LNA) 的增益越高,后续级的噪声贡献就越小。高增益的一个缺点是,由于高增益低噪声放大器 (LNA) 的输出功率较高,导致 LNA 输出级、混频器或中频放大器更早开始饱和,因此输入压缩点会降低如果输入压缩点过低,接收器可能仅因发射天线和接收天线之间的泄漏功率而饱和。在饱和状态下,接收器不再线性工作,并且会产生许多谐波,这些谐波会被检测为虚假目标。避免接收机饱和非常重要,这是使用发射机和接收机共用的单天线时的主要问题之一。低输入压缩点的雷达具有较高的最小检测距离,低于该距离时目标的回波会使接收机饱和(检测盲区?。选择低噪声放大器 (LNA) 增益最终是在噪声和输入压缩点之间做出的权衡。

驱动 ADC 的低频放大器的噪声系数和 ADC 的本底噪声也很重要。运算放大器通常无法使用噪声系数进行分析,因为端口未匹配到 50 欧姆。正确的方法是将射频噪声转换为 V/sqrt(Hz)。然而,将运算放大器的输入噪声电压密度与 50 欧姆电阻的噪声电压密度进行比较,可以得到足够接近的数值,方便手工计算。通常情况下,由于用于设置增益的电阻,运算放大器的噪声系数相当高。10 到 20 dB 的噪声系数通常是一个不错的估计值。

ADC 存在量化噪声和输入噪声,导致动态范围有限。 ADC 的数据手册列出了信噪比 (SNR),其计算方法如下:测量最大振幅正弦波(RF发单音),进行 FFT 变换,然后将信号功率除以所有其他 FFT 区间的噪声功率。动态范围可以通过过采样和滤波来增加。FFT 变换后的本底噪声明显优于数据手册中列出的 SNR,因为不同频率的噪声可以被分离。

带有 FFT 处理增益的 ADC 的动态范围可以通过以下公式计算:

其中,SNR 是数据表中列出的 ADC 的信噪比 (SNR),fs是采样频率,ts是扫描长度。我使用的 LTC2292 ADC 的信噪比为 71.3 dB,采样频率为 40 MHz。这使得 ADC 的动态范围在 1 ms 扫描时为 117 dB。

为确保 ADC 不会限制系统性能,ADC 之后的射频噪底应高于 ADC 噪底。LNA 输入端的输入参考射频噪声功率为 kTBF=kTF/ts

该功率由 LNA 和混频器(Glna Gmixer)放大。混频器后的 RMS 输出电压可计算为 V=sqrt(Zload*P),其中 Zload是混频器的输出阻抗(我使用的混频器为 200 Ω)。该电压由中频放大器(GIF)放大。接下来,将 RMS 电压乘以 2*sqrt(2)转换为峰峰值,然后参考 ADC 的最大电压范围。最后,取 20log10即可得到以 dBF 为单位的本底噪声(相对于 ADC 最大输入信号)。将所有这些代入一个公式中,即可得出:

将上述值代入公式,可得出本底噪声为-102 dBFs。这比ADC本底噪声高出15 dB,并且接收器性能不受ADC限制。

FPGA数字信号处理

ADC 采样率固定为 40 MHz,但这远远超出了实际需求。中频滤波器带宽仅为 2 MHz,因此从 2 MHz 到 40 MHz 左右,只有噪声需要滤除。如此高的采样率是为了避免过采样导致的混叠和信噪比 (SNR) 升高。需要降低采样率以使数据量易于管理。如果不进行抽取,数据速率将达到 120 MBps,这超过了 USB 2.0 的数据速率,并且很难存储在任何地方。将采样率降至 2 MHz 并将位分辨率提高到 16 位,则可以实现更易于管理的 8 MBps 数据速率。当扫描之间的样本被丢弃时,数据速率会进一步降低,降低幅度为扫描长度与扫描间隔时间的比率。

可以通过降低 ADC 采样率或丢弃部分 ADC 样本来降低数据速率,但这些方法无法通过过采样获得信噪比增益。可以对样本进行平均,但这相当于使用系数为常数 1 的 FIR 滤波器进行滤波,频谱效果不佳,并且会导致混叠。正确的方法是使用 FIR 滤波器滤除可能产生混叠的频率,然后进行抽取(丢弃样本)。这种方法可以提高过采样带来的信噪比 (SNR),并避免高频混叠。(即想拿到过采样的信噪比增益,又防止数据量过大以及混叠问题?

与模拟滤波相比,数字滤波的一大优势在于它可以根据需要实现高精度,无噪声,并且不需要任何额外的硬件。上图是框图中第一个 120 抽头 FIR 滤波器的频率响应。使用模拟元件实现这种高阶滤波器是不可行的,但数字实现则不然。通过结合抽取和滤波,可以比单纯的实现方式更高效地实现。高阶滤波器的优势在于过渡带可以非常小,从而减少频谱浪费。

双通道 120 抽头 FIR 滤波器在 20 抽取时需要 10 个 DSP 切片。其他滤波器实现为一个具有可重构系数的滤波器,仅需要 2 个 DSP 切片。所有滤波器总共需要 12 个 DSP 切片,而我正在使用的 FPGA 上有 45 个可用的 DSP 切片。通过增加时钟速度,所需的 DSP 切片数量可以进一步减少,但没有必要这样做,因为仍然有足够的空间。

波束成形

由于与目标之间的距离存在微小的角度差异,两根天线接收同一目标的反射时,接收信号的相移会略有不同。天线之间的路径长度差为 dsinθ,其中 d为天线之间的距离,θ为目标的角度。接收信号的相移为 dsinθ/λ,其中 λ为射频波长

如果将天线输出直接相加,则正前方目标的相移相位相同,而位于 dsinθ/λ=-1 角度的目标的相移相位相反,相互抵消。介于这两个极端之间的角度会受到不同程度的干扰。

波束形成可以通过在信号相加之前对其进行相移来实现。当相移 ϕ设置为 ϕ=-dsinθ时,天线方向图的峰值将偏移角度 θ。要生成用于生成图像的多个波束,简单的方法是重复对不同相移的信号进行求和。使用傅里叶变换可以更高效地合成多个波束。对于雷达信号,我们首先要对每个 ADC 信号进行 FFT 以移动到频域。对应于不同距离的每个 FFT 区间都具有回波信号的幅度和相位。接下来,所有经过傅里叶变换的信号被放置在阵列中,并在天线维度上进行第二次 FFT。这相当于对具有不同相移的信号进行求和。在进行 FFT 之前对阵列进行零填充是必要的,以获得一定的输出分辨率。否则,我们只能得到与天线数量相同的波束。

上图是双天线阵列的阵列因子。这是假设天线方向图为全向的波束方向图。实际阵列的方向图可以通过将阵列因子乘以单天线的辐射方向图来计算。

使用八根天线,角度分辨率会更高,当然,天线数量越多,角度分辨率就越高。八个接收通道会大幅增加成本和功耗,但可以将八根天线通过开关连接到两个接收通道。这样,所有天线就可以在四次独立扫描中进行采样。

由于只有两根天线时阵列波束宽度非常差,因此很难在图中看到角度信息。可以通过将测量值乘以一个平移到峰值位置的窗口函数来改善角度可视化。如果距离单元中只有一个目标,则效果很好,但如果有多个目标,那么峰值位于它们之间,窗口函数会使它看起来像只有一个目标。尤其是在墙壁和其他非常宽的目标上,窗口函数会将它们缩小为一个目标,这会带来问题。

设计PCB

PCB 采用 OSH Park 四层工艺设计,我之前的项目曾多次使用过这种工艺。这是唯一一种比 FR-4 更便宜、材料更优的 PCB 制造工艺。材料是 FR408,与 FR-4 类似,但损耗更低,相对介电常数控制更严格。

与之前的版本相比,PCB 尺寸更大。尤其是 FPGA,占用了大量空间。电源也更加复杂,因为 FPGA 需要多个电压源,而且现在板上还有多个线性稳压器来消除开关噪声。当然,第二个接收通道也占用了大量空间。

不过,有些部分比以前简单多了。之前的中频滤波器有多个运算放大器,并且具有可变增益。现在只有一个放大级,因为我实际计算过不需要多个放大级。可变增益也被移除,取而代之的是最大化 ADC 的动态范围,这样就有足够的动态范围来避免需要可变增益。

我在PCB上放置了一个SD卡座,以便在没有PC的情况下使用,但我还没有实际编程FPGA来使用它。另外还有两个连接到FPGA IO引脚的接头。我还没有确定它们的用途,但我想到了一些例子,例如连接惯性测量单元进行SAR运动校正、连接控制信号以便在没有PC的情况下使用以及控制外部天线开关。

焊接

尽管我尽量简化 PCB,但最终还是有大约 350 个元件,而且很多元件的封装都很难焊接。

我从更复杂的顶层开始。之前的一些项目里,我习惯先焊接底层,但当底层没有元件时,在顶层涂抹焊膏会更容易。涂抹焊膏需要使用 OSH 的模板。这次我买了一个更便宜的聚酰亚胺模板,而不是更贵的不锈钢模板,不得不说,不锈钢模板的效果要好得多。

右下角的空QFN封装用于第二级中频放大器。我为了以防万一加了它,但最终没用上。

像我之前的所有项目一样,我使用回流焊炉自己焊接 PCB。

元件太多,难免会有一些焊接不准确。其中一个元件焊接不正确,可能是因为焊膏涂抹不均匀。我用热风手动修复了这个元件。

天线

我有以前制作的喇叭天线,但只有两个,而且由于尺寸较大,不太适合用作接收天线。由于天线尺寸较大,它们需要彼此远离放置。当接收天线之间的距离超过λ/2时,接收信号的相移在某些角度会超过180度。由此产生的中频信号与某个较小角度的信号相同,从而导致混叠。

贴片天线

为了避免角度混叠,我制作了新的贴片天线,它们之间的间距为λ/2。由于预算限制,PCB材料是普通的FR-4。它在射频频率下损耗较大,导致天线效率低下。FR-4的相对介电常数控制得不是很好,并且会因制造商和生产批次的不同而变化。相对介电常数的变化会导致天线工作频率的变化。遗憾的是,任何更好的材料都价格昂贵得多。在中国,FR-4 PCB的价格不到10欧元,而采用更好的材料制作的相同PCB则至少要花费100欧元。

该天线由五根贴片天线组成,它们排成一线,中心天线通过电路板下方的通孔由SMA连接器供电。与单元件贴片天线相比,五元件阵列在阵列方向上的辐射要小得多,而在另一个方向上,波束宽度与单元件贴片天线非常相似。该天线的安装方式应使其在水平方向上具有较宽的波束宽度,以实现良好的角度覆盖;在垂直方向上具有较窄的波束宽度,以最大限度地减少地面回波。(串状馈线减小高度FOV

我还制作了一个由贴片元件供电的喇叭天线。与之前的波导供电喇叭天线相比,它的工作带宽要小得多,效率也较低。优点是结构更简单,并且由于其底部平坦,天线的安装也更容易。

天线的测量S参数看起来不错,只是工作频率略有下降。设计频率为5 GHz ISM频段(5.725 - 5.875 GHz),但实际制造的天线的工作频率比实际低约150 MHz。频率偏移的原因是模拟和制造天线时基板材料的相对介电常数不同。我之前在FR-4上制作了一个贴片天线,测量结果为4.20,并以此来模拟新天线。然而,根据测量结果,新天线上的FR-4相对介电常数约为4.58。

测量

本底噪声

我之前计算过,射频噪底应该在 -102 dBF 左右。通过在发射器和接收器上连接衰减器可以轻松测量噪底。ADC 噪底比较难测量,因为我无法禁用或断开接收器。我可以拆焊一些元件或添加短路,但我不会这么做。

上图是测量的接收机功率谱,单位为 dBF(相对于最大 ADC 输入电压)。计算值为 -102 dBF,第一个通道的测量值为 -99 dBF,第二个通道的测量值为 -100 dBF。考虑到元件的增益可能存在几个 dB 的差异,测量值与计算值非常吻合。

在低频/低距离下,可以看到一些信号。最低的 bin 是直流信号,可能是由中频放大器、ADC 直流偏移和 FFT 引起的。在稍高的频率下,可以看到一些真正的目标,可能是来自天花板和墙壁。如果我在雷达上挥挥手,我可以看到目标在移动。电路板上的微带线似乎辐射足够强,雷达无需天线就能探测到一些附近的目标。我的自制矢量网络分析仪 (VNA) 也出现了类似的问题。与矢量网络分析仪不同,FMCW 雷达的隔离度并不那么重要,因为它只会在非常近的距离内探测到目标

公园

上图是我在雷达前骑自行车绕圈的时域图。由于没有显示目标的角度,所以圆圈部分在图中不可见。

park_patch

由于增加了角度维度,现在可视化数据需要视频。上图是与上图绘制的相同测量结果的视频。这次没有移除固定目标,避雷针和树木都显示为固定目标。如果没有角度信息,固定目标只会使绘图变得杂乱,但现在即使没有任何额外的后期处理,视频看起来也非常清晰。

从视频中可以看出,我的视频开始和结束位置都在雷达左侧(正向交叉距离)。一开始在雷达前方行走会遮挡背景目标,并且由于强烈的反射,中频也会出现一些削波。

角度分辨率不太好,但这是预料之中的,因为只有两个接收天线。用于可视化目标角度的窗口化会导致背景中的宽阔灌木丛由于接收到的反射的微小变化而剧烈振荡。由于不同角度的回波几乎相等,微小的噪声会使峰值翻转到不同的位置。

在视频中,可以清楚地看到中心周围的反射幅度远大于边缘处的反射幅度。这主要是因为发射喇叭天线的波束宽度较窄。接收天线在高角度下的增益也会降低,从而进一步降低接收反射幅度。

图片中的灯柱在视频中也清晰可见,而且不像灌木丛那样移动。当我在相同的距离范围内靠近它们时,位置似乎会跳动。问题是,当我与它们处于相同的距离时,角度窗口仍然假设只有一个目标,并将目标中心置于灯柱和我之间的某个位置

park_patch_mti

上面的视频与之前相同,但从当前扫描中减去了之前的扫描,以移除固定目标。减去固定目标会进一步凸显角度可视化中的一些问题。

高架桥

我家附近有一座漂亮的桥,横跨一条繁忙的道路,所以我决定测试一下雷达对车辆的探测能力。汽车的雷达截面相当大,应该能探测到很远的地方。

上面的时间-范围图是用单喇叭天线记录的,因此没有角度信息。杂波的消除方法是从当前扫描中减去前一次扫描,只留下移动物体MTI对消,常见的静态杂波去除办法还有均值相消、SVD分解等。如果不进行杂波消除,目标太多,很难看清任何东西。

之前由于没有远处的目标,所以范围被截断了,但这次我绘制的是全范围。本次捕获过程中启用了二倍抽取滤波器以限制数据速率,并将范围限制在 300 MHz 扫描频率下的 250 米。如果不进行二倍抽取,范围应该是 500 米,但由于桥梁的视线小于这个距离,因此捕获这个范围没有多大意义。200 米处的信噪比仍然很好,因此应该能够看得更远。在远距离,信噪比的下降是由于抽取滤波器的滤波频率也略低于奈奎斯特频率,以避免混叠。

从图中可以看出,在抓拍过程中,有五辆汽车远离雷达,还有一辆汽车和一名自行车迎面驶来。只需将行驶距离除以行驶时间,即可从图中计算出汽车速度。当然有更好的测速方法,但我懒得去实现。测算出的速度大约在 60 到 70 公里/小时之间。限速是 80 公里/小时,所以看起来所有车辆的速度都略低于限速,不过我想这也很合理,因为我身后正好有红绿灯。

结论

最新版本的改进修复了之前版本中的问题,雷达的性能看起来非常出色。两个接收通道可以确定目标的角度,但仅使用两个接收天线时,角度分辨率并不理想。角度分辨率受物理限制,要获得更高的分辨率需要更多天线。多天线切换接收机在我的待办事项清单上。

http://www.xdnf.cn/news/1203355.html

相关文章:

  • 深入解析 Spring 获取 XML 验证模式的过程
  • 可以组成网络的服务器 - 华为OD统一考试(JavaScript 题解)
  • 速度革命 Kingston FURY PCIe 5.0 NVMe装机体验
  • 第四章:分析 Redis 性能高原因和核心字符串类型命令
  • 15-C语言:第15天笔记
  • Nginx 四层(stream)反向代理 + DNS 负载均衡
  • Java面试深度剖析:从JVM到云原生的技术演进
  • JVM 内存共享区域详解
  • 解决cordova编译安卓提示Cloud not find XXXX.aar
  • windows内核研究(异常-CPU异常记录)
  • C++ 内存管理
  • 图像轮廓与凸包
  • 数据赋能(345)——数据整合——全面集成原则
  • 《 服务注册发现原理:从 Eureka 到 Nacos 的演进》
  • Vue、微信小程序、Uniapp 面试题整理最新整合版
  • 博士申请 | 荷兰阿姆斯特丹大学 招收计算机视觉(CV)方向 全奖博士生
  • JAVA后端开发——用 Spring Boot 实现定时任务
  • Spring与SpringBoot:从手动挡到自动挡的Java开发进化论
  • JAVA:Spring Boot 集成 Protobuf 的技术指南
  • Office-PowerPoint-MCP-Server – 基于MCP的开源PPT生成与编辑工具
  • 基于AFLFast的fuzz自动化漏洞挖掘(1)
  • 【Linux系统】Ext2文件系统 | 软硬链接
  • 6种将iPhone照片传输到Windows 10电脑的方法
  • 最小二乘法拟合椭圆
  • 《Linux服务与安全管理》| samba服务器配置匿名模式
  • 嵌入式基础知识复习(7.28)
  • 未授权访问
  • C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
  • window显示驱动开发—Direct3D 11 视频设备驱动程序接口 (DDI)
  • OpenLayers 综合案例-信息窗体-弹窗