分类: 使用指南

  • X波段相控阵雷达开发平台-电路相关原理

    一、电路功能与优点

    相控阵波束赋形自20世纪中叶以来一直应用于雷达和通信系统。近年来,这些系统在5G移动通信、军用及商用雷达、卫星通信和汽车应用等领域得到广泛采用。

    相控阵天线(或波束形成天线)具有电子可调的辐射方向图,能够在两台无线电之间建立稳定的通信链路。发射端的功率可以指向目标接收器,接收天线也可以瞄准发射器。此外,还可以在接收天线图中形成零点,以抑制干扰信号,并且能够在两台无线电相对移动时保持链路。相控阵的复杂程度差异很大,从简单线性阵列中的几个单元到平面、圆柱、锥形及其他形状阵列中的数千个单元均有涉及。

    相控阵具有较陡的学习曲线,涉及微波射频电子、连续与离散时间信号处理、嵌入式系统、模数/数模转换、数字设计和计算机网络等多个技术与工程学科。商用相控阵系统通常价格昂贵且针对单一应用进行定制,不利于基本概念的探索。

    图1所示电路是一种低成本、简化的相控阵波束形成演示平台,为动手学习相控阵天线的原理和应用提供了途径。该完整系统是验证概念或调试更复杂系统的理想工具,可用于探索和理解波束形成、波束扫描、天线失真、调频连续波(FMCW)雷达和合成孔径成像等高级主题。该设计由射频组件和信号处理硬件组成,包含一个工作频段为10.0 GHz至10.5 GHz(X波段)的板载8单元线性阵列天线。该频段允许使用常见的低成本运动传感模块作为微波信号源。

    该电路设计可直接安装在树莓派上,使用低成本的PlutoSDR软件定义无线电模块对中频(IF)输出进行数字化。软件接口通过Linux工业输入/输出(IIO)框架提供多种调试和开发工具,以及支持Python、GNURadio和MATLAB的跨平台应用程序编程接口(API)。

    应用软件既可在树莓派本地运行,也可通过有线或无线网络连接远程运行。整个系统仅需由一台5 V、3 A的USB-C电源适配器供电。

    图 1. X波段相控阵雷达开发平台 简化框图

    二、电路描述

    相控阵波束形成是一种用于天线阵列的信号处理技术,广泛应用于无线通信、雷达系统和医学成像。波束形成提供了诸多优势——天线可以直接指向目标,目标可以是发射机、接收机,或在雷达情况下被跟踪的物体。天线图的零点也可经过策略性布置,以避开干扰信号。

    形成波束图样需要多天线同时发射或接收信号。对每个通道施加相位偏移和增益调整,然后在模拟域、数字域或两者结合的方式中将各通道信号相加。通过调节相位移器来控制合成射频波束的方向,实现无需物理移动天线的实时波束扫描和重构。主瓣宽度和旁瓣抑制可通过调整阵列单元的增益(或加权)来调控。

    X波段相控阵雷达开发平台主板集成了一个 8 单元相控阵、下变频混频器、本振 (LO) 以及数字控制电路。X波段相控阵雷达开发平台的输出是两个标称频率为 2.2 GHz 的中频信号,由 PlutoSDR 模块进行数字化。

    2.1、波束形成基础

    图 2 和图 3 简单展示了四个天线单元从两个不同方向接收的波前。通过在接收路径中插入时间延迟,然后将所有四个信号叠加在一起,电波束被向左 45 度转向,朝向所需的发射机。

    在图 2 中,该时间延迟(针对 45 度波束配置)与波前到达每个单元的时间差相匹配。在这种情况下,施加的延迟使四个信号同相到达合成点。这种相干合成会在合成器的输出端产生更大的信号。

    图 2. 延迟信号同相到达组合器

    图3 中应用了相同的延迟;然而,在这种情况下,来自干扰发射机的波前垂直于天线元件。施加的延迟会导致四个信号的相位不一致,从而显著降低合路器的输出。

    图 3. 延迟信号以异相方式到达组合器

    在相控阵中,时间延迟是波束转向所需的可量化增量。转向波束所需的时间延迟等于波前穿过元件之间增量传播距离 (L) 所需的时间。通过在相邻元件之间绘制一个直角三角形可以最好地直观地看到这一点,如图 4 所示。

    图 4. 波前相邻元素的几何结构

    从该图中,注意到形成的直角,可以使用公式 1 计算出 L 的值:

    其中:
    L 为振子间的增量传播距离。
    d 为振子间的距离。
    θ 为波束角(天线与入射信号之间的夹角)。

    控制波束方向的时间延迟等于波前穿过该距离 L 所需的时间。因此,使用公式 2 计算时间延迟:

    其中:
    Δt 是元件之间的增量时间延迟。
    c 是光速 (3×108 米/秒)。

    求解波束角得方程就是

    θ = sin‐1(Δt*c/d)

    但是时间延迟也可以用相移来模拟,这在许多实现中很常见且实用。对于窄带系统,可以用相位延迟代替时间延迟。该相位延迟的计算公式如下:

    其中:
    ΔΦ 是元件间的增量相移。
    λ 是信号波长。
    f 是信号频率。

    根据相移求解波束角,得出:

    θ = sin‐1 (ΔΦ *c / (2 π f d))

    举例来说,考虑两个间隔 14 毫米的天线元件。如果 10.3 GHz 的波前以 30º 的角度到达机械视轴(天线垂直方向),那么两个元件之间的最佳相移是多少?

    θ = 30° = 0.52 rad

    ΔΦ = 1.53 rad = 87.4°

    因此,如果信号入射角为 θ = 30°,相邻振子的相位偏移 87.4°,这将导致两个振子的独立信号相干叠加。从而使该方向的天线增益最大化。

    2.2、线性阵列天线方向图

    除了转向角之外,理解和操控完整的天线增益方向图也很有用。天线方向图是阵元因子和阵列因子的组合。阵元因子是阵元的辐射方向图,它由该阵元的结构决定。阵列因子是波束方向图,可以通过改变每个阵元的相位和幅度进行电控。

    阵列因子基于阵列几何(对于X波段相控阵雷达开发平台的均匀线性阵列,其单元间距为 d)和波束权重(幅度与相位)来计算。推导均匀线性阵列的阵列因子较为直接,其细节可参见本电路说明末尾引用的文献。

    由于主要关注增益随角度的变化,通常更有意义的是绘制相对于单位增益的归一化阵列因子。该归一化阵列因子可表示为公式 4:

    其中:
    AF 为归一化阵列因子。
    N 为阵元数量。
    θ0为波束角。

    由于波束角θ0已经定义为元件间相移ΔΦ的函数,因此归一化天线因子也可以写成公式5:

    阵列因子方程假设的条件包括:

    • 阵元间距相等。
    • 阵元间相移相等。
    • 所有阵元的振幅均相等。

    图 5 是 8 元件阵列的阵列因子,d = λ/2,θ0 = 30°。

    图 5. 阵列因子,N=8,d = λ/2,θ0= 30°

    2.3、射频设计

    2.3.1、接收天线和LNA

    将接收器连接到天线阵列并非易事。在微波频率下,电缆和连接器必须低损耗且长度匹配。X波段相控阵雷达开发平台 通过集成一个板载 8 元件贴片天线(工作频率范围为 10 GHz 至 10.5 GHz,如图 6 所示)消除了这些问题。

    每个元件由四个子元件组成,这些子元件通过印刷电路板 (PCB) 走线威尔金森分路器等分叠加,从而缩小水平方向的波束方向图。四分之一波长短路短截线提供静电放电 (ESD) 保护。每个元件通过 10 nF 电容电容耦合到一个 6 GHz 至 18 GHz、增益为 24 dB 的 ADL8107 低噪声放大器,并且可以通过可选的微型推入式 (SMP) 连接器连接外部天线。低噪声放大器 (LNA) 提高了阵列的灵敏度,即使使用低功率微波源也能提供清晰的波束方向图。

    图6. 8个元件贴片天线和ADL8107框图

    图7显示了板载天线的增益与频率的关系。-3 dB带宽为9.9 GHz至10.8 GHz。

    图 7. 天线增益与频率的关系

    2.3.2、波束形成器

    X波段相控阵雷达开发平台的核心是一对 ADAR1000 4 通道、8 GHz 至 16 GHz、X 频段和 Ku 频段波束形成器。ADAR1000 支持每通道 360° 相位调整(分辨率为 2.8°)以及 31 dB 增益调整(分辨率为 0.5 dB)。两个 ADAR1000 可进行双向半双工操作;然而,X波段相控阵雷达开发平台仅连接 ADAR1000 接收路径。ADL8107 LNA 的输出经 ADAR1000 进行相位和幅度移位,然后在其 RFIO 输出端相加,如图 8 所示。

    图 8. ADAR1000 在接收模式下的运行

    2.3.3、本地振荡器/合成器

    ADF4159 锁相环 (PLL) 和 HMC735 压控振荡器 (VCO) 组合构成一个频率合成器,频率范围为 10.5 GHz 至 12.7 GHz,如图 9 所示。该信号用于驱动所有混频器的 LO 端口。对于通信和其他固定频率应用,LO 频率通常设置为比天线目标信号高 2.2 GHz。因此,LO 频率通常在 12 GHz 至 12.7 GHz 之间。ADF4159 还能够为雷达应用生成 FMCW 斜坡或“啁啾”。ADF4159 提供多种啁啾斜坡速率和形状,包括锯齿波、三角波和抛物线波。

    或者,也可以禁用板载频率合成器,并将外部 LO 施加到 LO 输入 SMA 连接器。这样,X波段相控阵雷达开发平台就可以同步到外部无线电,或者将多个X波段相控阵雷达开发平台板同步到单个 LO。无论是板载还是外部产生的本振,都会使用单片微波集成电路 (MMIC) 分路器或合路器将其分到两个接收混频器,以及板载发射路径或 LO 输出端口,如图 1 所示。

    图 9. 频率合成器电路

    2.3.4、混频器和滤波器

    ADAR1000 的 RFIO 输出经过 10.6 GHz 低通滤波器,然后进入 LTC5548 混频器的 RF 端口,如图 10 所示。

    图 10. 混频器和滤波电路

    低通滤波器可消除混频器的高端镜像(在上图中,该镜像将出现在 12.2 GHz + 2.2 GHz = 14.4 GHz 处)以及 LO (12.2 GHz) 的任何再辐射。LTC5548 混频器输出 2.2 GHz 的中频 (IF),该中频由 2.5 GHz 低通滤波器滤波。

    图 11 显示了接收信号路径 (ADL8107 + ADAR1000 + 10.62 GHz 低通滤波器 + LTC5548 + 2.5 GHz 低通滤波器) 的测量结果。此测量条件为 12.2 GHz 的 LO、10 GHz 的天线输入和 2.2 GHz 的中频。请注意,12.2 GHz 和 14.4 GHz 将被 PlutoSDR 的输入带宽进一步衰减,导致 SFDR 约为 56 dBc,如标记 M1 至 M4 所示(-23 dBm + 79 dBm = 56 dBc)。

    图 11. 无杂散动态范围

    2.3.5、发射机信号链路

    X波段相控阵雷达开发平台 的波束成形部分仅用于接收,但其提供发射输出,用于驱动外部天线。为了测量天线方向图,可以将天线以各种角度面向阵列。发射频率精确可知,因为它源自板载 LO,从而简化了数字信号处理。当X波段相控阵雷达开发平台用于多普勒FMCW 雷达应用时,发射器还可用于照亮目标场景。

    如图 12 所示,发射器信号路径始于发射输入超小型 A 型 (SMA) 连接器,并通过两个发射输出 SMA 连接器 TX1 和 TX2 输出至单独的发射天线。

    图 12. X波段相控阵雷达开发平台发射器信号路径

    发射输入的频率通常与接收中频 (IF) 相同,约为 2.2 GHz。该发射输入可以是连续波、调制通信信号或雷达信号。由于许多 SDR(包括 PlutoSDR)的输出使用方波 LO,因此会产生 LO 频率的谐波。因此,发射输入信号必须首先经过低通滤波器。图 13 显示了 PlutoSDR 的 2.1 GHz 音调发射输出(未经滤波)。

    图 13. 2.1 GHz 单音信号的发射输出(无滤波)

    经过 2.5 GHz 低通滤波器后,只有主信号可见,高于噪底。该“净化”信号随后被馈送到 LTC5548 的中频 (IF) 部分,并上变频至 10 GHz 至 10.3 GHz。

    10 GHz 至 10.3 GHz 的射频信号随后经 10.6 GHz 低通滤波器滤波,并经 ADL8107 24 dB LNA 放大,最后经 9.7 GHz 至 11.95 GHz 滤波器进行带通滤波。图 14 显示了未经滤波的混频器输出。

    图 14. 未经过混频滤波器的输出信号

    图 15 显示了放大和带通滤波后的发射输出。

    图 15. 发射输出频谱

    2.3.6、Virtual Arrays

    X波段相控阵雷达开发平台也可用于虚拟阵列,这是雷达系统中最常用的技术。在此模式下,使用两个发射器输出,每个发射器与接收阵列的距离不同。如图 16 所示,发射输出在可编程数量的 PLL 啁啾结束时切换。然后,数据被组合以创建一个虚拟阵列,该阵列的接收元件数量看起来是原来的两倍。因此,接收波束更窄,但数据收集时间却是原来的两倍。

    图 16.虚拟阵列

    发射天线切换由可编程数量的PLL啁啾结束触发。ADF4159的MUXOUT引脚可编程指示斜坡的结束,该信号经过电平转换后施加到7级纹波计数器的时钟输入端,如图17所示。来自Raspberry Pi的三个通用输入/输出(GPIO)信号驱动数据多路复用器输入,可选择2、4、8、16、32、64或128个啁啾的天线切换速率。

    图 17. 发射天线开关

    2.4、数字控制和电平转换

    Raspberry Pi 4 平台板提供所有串行外设接口 (SPI)、I2C 和分立数字 I/O 控制信号。Raspberry Pi 的逻辑电平为 3.3 V,可直接使用或电平转换为 1.8 V,以便与 ADAR1000 和 ADF4159 接口。使用双电源电平转换器,电源引脚直接连接到 Raspberry Pi 的 3.3 V 逻辑电源和 1.8 V 数字电源。这确保了设备的数字引脚在断电时永远不会出现高逻辑电平。

    ADF4159 MUXOUT 还可用作 FMCW 模式下的 PLL 锁定指示器和斜坡结束指示器。3.3 V 电平转换版本的 MUXOUT 驱动 LED 指示灯,用于显示 PLL 锁定状态。

    2.5、电源架构

    X波段相控阵雷达开发平台直接由单个 USB-C 插座供电,该插座提供 5 V、3 A 的电源。该电源通过 40 针扩展接头以及其余板载电源管理模块转发至 Raspberry Pi。图 18 显示了X波段相控阵雷达开发平台的完整电源树。

    图 18. 电源树

    LTC4217 集成热插拔控制器通过限制上电期间流入负载电源的浪涌电流,支持安全地插入和移除 CN0566,并通过 IMON 输出提供便捷的功耗测量方法。

    LT8609S 是一款单片恒频电流模式降压型 DC/DC 转换器。该器件将 5 V 输入电压降至 3.3 V。该输出随后馈入 ADP7158 LDO,后者以 3.3 V 电压为波束形成器、低噪声放大器 (LNA)、混频器、开关和 ADC 供电。

    ADM7150 LDO 为数字电平转换器和 ADF4159 提供 1.8 V 模拟电源轨。

    ADM7170 是一款低静态电流、低压差线性稳压器,为 HMC735 VCO 供电。这款高输出电流 LDO 非常适合对噪声敏感的应用,例如 ADC 和 DAC 电路、精密放大器、PLL/VCO 以及时钟 IC。

    LT3460 升压 DC/DC 转换器和 ADP7118 LDO 将 5 V 输入电压升压至 15 V,然后调节至 14 V,用作 AD8065 放大器的电源。它采用恒定频率、电流模式控制方案来提供线路和负载调节。ADP7118 是一款 CMOS 低压差线性稳压器,具有高电源抑制性能,可最大限度地降低频率合成器的相位噪声。

    2.6、系统监控和控制

    AD7291 是一款 8 通道、I2C、12 位逐次逼近寄存器 (SAR) ADC,带有温度传感器,可提供全面的系统诊断功能。所有电源电压以及 VCO 调谐电压均受到监控。AD7291 的输入范围为 0 V 至 2.5 V;电阻分压器可对测量电压进行适当调整。该 ADC 放置在 ADAR1000 附近,可提供电路板温升的近似测量值。测量参数和比例因子如表 1 所示。

    表 1. 测量参数和比例因子

    AD7291 InputParameterDivider Scale Factor
    VIN01.8 V supply2 V/V
    VIN13.0 V supply2 V/V
    VIN23.3 V supply2 V/V
    VIN34.5 V supply4.01 V/V
    VIN4Supply of AD8065 amplifier7.98 V/V
    VIN5Input voltage4.01 V/V
    VIN6Current monitor output of LTC42171 A/V
    VIN7Control voltage and modulation input of HMC7357.98 V/V

    2.7、系统性能

    理想情况下,波束形成阵列产生的波束应指向所需角度,且其形状应尽可能接近给定元件锥度的理论值。例如,将每个元件设置为相同的增益,且不设置相移,则可产生指向 0°(机械视轴)的波束,其轮廓为 SIN(X)/X 或 SINC1。降低三角形轮廓中外侧元件的增益可产生 SINC2 轮廓,并在所有元件上逐渐增加相移,可使波束偏离机械视轴。

    产生精确波束的能力取决于能否精确设置每个元件的增益和相位。X波段相控阵雷达开发平台包含几个不可避免的增益和相位误差源:

    • 元件本身的不匹配(可能是最小的误差源)。
    • ADAR1000 自身的增益和相位误差。
    • 两个 ADAR1000 器件之间的不匹配。
    • 两个接收路径之间的不匹配,包括本振分路器、混频器、滤波器和其他无源元件。
    • 接收器通道(PlutoSDR 或其他 SDR 模块)之间的不匹配。

    2.8、系统校准

    由于这些误差无法避免,X波段相控阵雷达开发平台 软件包含一个校准脚本。将外部微波源或连接到天线的板载发射输出放置在距离阵列约 1 米的机械视轴上。然后,校准脚本将执行以下操作:测量并补偿发射通道失配。这可确保 ADAR1000 的 7 位增益控制能够最大限度地利用,从而精确地逐渐减小波束,而不是补偿发射通道失配。具体步骤如下:

    1. 将所有 ADAR1000-0 通道设置为零相位、中等增益;将所有 ADAR1000-1 通道设置为最小增益。测量接收通道 0 的射频信号强度。将 ADAR1000-0 设置为零增益,重复上述操作。
    2. 计算需要将两个接收通道中较低通道的增益提高多少分贝,才能使平均失配最小化。
    3. 将这些值存储到通道校准文件中。

    图19显示了补偿前阵列中每个元件的信号相对强度。元件间最大失配为11.2 dB。需要注意的是,强度在两组(每组四个元件)中定性地表现出差异,表明两个通道之间存在失配。

    图 19. 未校准的信号强度

    接下来,按照以下步骤测量并补偿元件增益之间的残余不匹配:

    1. 将元件 0 设置为最大增益,将所有其他元件设置为最小增益。测量射频信号强度。
    2. 对其余元件重复此操作,将一个元件设置为最大值,其余元件设置为最小值。测量射频信号强度。
    3. 找到增益最小的元件。计算其他元件的增益必须降低多少才能与增益最小的元件匹配。
    4. 将衰减系数归一化为 1,以便所需的光束锥度可以乘以衰减系数。
    5. 将这些值存储在增益校准文件中。

    图 20 显示了校准后的信号强度,最大不匹配为 0.51 dB。

    图 20. 校准信号强度

    接下来,按照以下步骤测量并补偿相邻元件之间的相位不匹配:

    1. 将元件 0、1 设置为最大增益,并考虑通道和增益校准因素。
    2. 将元件 0 设置为零相位,然后将元件 1 的相位从 0 度递增至 360 度,并测量每一步的信号强度。
    3. 当信号强度达到最大值时,相位匹配。但是,当元件相位相差 180 度时,更容易找到零点。
    4. 将零相位加 180 度。这是必须添加到元件 1 以补偿其相位失配的相位。
    5. 对相邻的元件对(1-2、2-3、3-4 等)重复此操作。
    6. 从元件 0 的零补偿开始,依次添加相邻的元件补偿值,从而得到可应用于整个阵列的值列表。
    7. 将这些值存储在相位校准文件中。

    图21显示了相邻元件之间的增益与相位差。理想情况下,所有零点均位于±180°处。

    图 21. 相邻元素的相位扫描

    校准后,整个阵列的增益和相位精度接近ADAR1000本身的分辨率,优于0.5 dB,调整范围分别为31 dB和2.8°。

    三、常见板子扩展与级联方法

    X波段相控阵雷达开发平台 可以通过并排堆叠额外的电路板在水平(方位角)方向上进行扩展,从而产生更窄的波束。所有电路板必须使用共用的本振 (LO),并且必须使用每个电路板具有两个同步输入的 SDR 接收器来数字化中频 (IF) 输出。

    如果不需要单脉冲跟踪和混合波束成形,可以将两个或多个 ADAR1000 的输出与无源合路器合并,并通过单通道 ADC(例如 PlutoSDR 上的单个 RX 输入)进行数字化。

    X波段相控阵雷达开发平台可以通过可选的 SMP 射频连接器使用外部 8 单元天线。任何工作频率范围在 8 GHz 至 14 GHz 之间的频率规划都可以实施,只需相应地更改板载分路器、低通和带通滤波器即可。

    对于半双工(发射和接收)应用,ADTR1107 是一款 6 GHz 至 18 GHz 射频前端。该器件集成一个增益为 18 dB、噪声系数为 2.5 dB 的接收低噪声放大器 (LNA) 和一个 25 dBm 的 PSAT 发射放大器,发射和接收之间的切换速度为 22 ns。

    ADAR1000EVAL1Z X/Ku 相控阵参考设计是一款 32 通道半双工波束成形前端,包含一个晶格间距为 10 GHz 的天线。与 ADXUD1AEBZ 上/下变频器板、EVAL-AD9081 混合前端评估板以及支持的 FPGA 开发平台配合使用,可以构建功能齐全的雷达和通信系统原型。

    ADAR3000 和 ADAR3001 是 16 通道波束形成器,分别适用于 17 GHz 至 22 GHz 和 27.5 GHz 至 31 GHz 应用。这些器件可配置为发射或接收,并实现时间延迟(而非相位调整),从而消除宽带应用中的波束斜视。

    ADAR4002 是一款单通道双向波束形成器,频率范围为 0.5 GHz 至 19 GHz。该器件具有 0 ps 至 508 ps(4 ps 分辨率)或 0 ps 至 254 ps(2 ns 分辨率)的可编程时间延迟,以及 0.5 dB 分辨率的 6 位衰减器。

    四、电路评估与测试

    本节介绍评估 EVAL-CN0566-RPIZ 的设置和程序。有关完整的设置详情和其他重要信息,请参阅 X波段相控阵雷达开发平台-用户指南。

    4.1、所需设备

    X波段相控阵雷达开发平台套件包含:

    • EVAL-CN0566-RPIZ 评估板(连接 Raspberry Pi 4 和 PlutoSDR)
    • USB 转 micro-USB 线缆
    • SD 卡(包含 Analog Devices, Inc. Kuiper Linux 镜像)
    • 5 V、3 A、USB-C 壁式适配器
    • HB100:10 GHz 微波源(运动传感器)
    • 三脚架

    用于在 Raspberry Pi 上本地运行脚本

    • 带 HDMI 接口的显示器
    • Micro-HDMI 转 HDMI 线缆
    • USB 键盘和鼠标

    用于在远程主机上运行脚本

    • Windows、Linux 或 Mac 计算机(安装有 MATLAB 或 Python IDE)
    • 以太网线缆

    4.2、设置与测试

    请参阅图 22 所示的连接图。

    图22. 连接图

    1. 使用提供的线缆将 PlutoSDR 的中心 micro-USB 连接器连接到 Raspberry Pi 的 USB 端口之一。
    2. 小心地将三脚架安装到三脚架座上。
    3. 将 USB-C 壁式适配器插入 EVAL-CN0566-RPIZ 上的 USB-C 电源插孔。
    4. 使用两节 AA 电池或 3 伏电源为微波源供电。将微波源对准天线阵列。

    要在 Raspberry Pi 上直接运行 Python 示例:

    1. 通过 HDMI 线缆将靠近电源连接器的 Raspberry Pi HDMI 输出连接到显示器。
    2. 将 USB 键盘和鼠标连接到 Raspberry Pi 的 USB 端口。
    3. 打开终端并运行 cn0566_find_hb100.py 脚本。
    4. 验证频谱图是否显示单个突出的音调。输入“y”,然后按 保存频率。
    5. 打开 cn0566_gui.py 脚本并点击“运行”按钮。在 GUI 屏幕中,点击“自动刷新数据”复选框,然后点击“获取数据”按钮。观察光束模式。

    要在主机上运行 MATLAB 示例:

    1. 使用以太网线将 Windows、Mac 或 Linux 主机连接到 Raspberry Pi。
    2. 打开 MATLAB 并运行 phaser_hb100_scan.m 脚本。
    3. 运行 phaser_rxtx.m 脚本并观察光束模式。

    图 23. HB100 在机械视轴下的典型波束模式

  • X波段相控阵雷达开发平台-MATLAB开发

    为了我们都能看到一直的效果,建议您和本文档建议的版本保持一致,这样尽可能的减少差异,确保无需额外投入精力去解决环境的问题,建议使用MATLAB 2023B

    硬件连线

    如果您看过了我们的入门文档,肯定已经在GUI中看到了有趣的雷达案例,在本节中,您需要更改一下连线方式。

    首先:断开PlutoSDR和树莓派之间的连线。PlutoSDR的数据链在包装箱内一共有两根,一根是50厘米的长度,一根是15厘米的长度。使用15厘米的MicroUSB线可以很方便的连接到树莓派上,但是不方便连接到电脑上,所以就需要用50厘米的MicroUSB数据线将PlutoSDR和计算机连接起来。

    接下来就是使用一根网线,将树莓派的网口和电脑的网口连接到一起。

    最终的连线原理图是:

    软件安装

    MATLAB工具箱

    • Antenna Toolbox
    • Communications Toolbox
    • DSP System Toolbox
    • Phased Array System Toolbox
    • Signal Processing Toolbox

    当你安装MATLAB的时候,建议工具箱全选进行安装,或者一定要把上述的工具包给安装上。

    第三方工具包

    • Analog Devices, Inc. RF and Microwave Toolbox
    • Analog Devices, Inc. Transceiver Toolbox
    • Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio
    • MATLAB Support for MinGW-w64 C/C++ Compiler

    找到MATLAB界面的Add-Ons 

    然后搜索对应工具包的名称

    将工具包全部进行安装。

    Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio 这个工具包是需要进行配置的。

    点击配置之后,

    安装驱动软件即可。请勿刷新PlutoSDR的固件,默认发货的PlutoSDR的固件是特制的,而MATLAB自带的Pluto固件是标准的,刷新固件会导致某些功能的缺失。

    如果您实在不小心把PlutoSDR的固件刷了,那么您需要按照这篇文章进行补救:

    LibIIO 包安装

    MATLAB 可能需要 LibIIO 软件包才能与 Phaser 通信和运行。如果缺少 LibIIO 导致 MATLAB/Phaser 出现问题。

    下载地址:https://github.com/analogdevicesinc/libiio

    开发

    验证连接是否正常

    将 相控阵雷达 连接到您的本地网络或直接连接到安装了 MATLAB 的主机,使用 Raspberry Pi 的 IP 地址从命令提示符创建 adi.Phaser 类的实例。

    bf = adi.Phaser;
    bf.uri = 'ip:phaser';
    bf()

    这将使用默认参数连接并配置相控阵雷达 。如果您收到连接错误,请确认 Raspberry Pi 已通电并且至少可以 ping 通设备。

    接下来,使用类似的方法验证与 Pluto 的连接。创建 adi.AD9361.Rx 类的实例,并运行运算符方法,如下所示:

    sdr = adi.AD9361.Rx
    sdr.uri = 'ip:pluto';
    data = sdr();

    与 Phaser 系统对象类似,此操作不应产生任何错误。数据向量应包含非零数据。

    • 如果在尝试验证连接时出现错误,请尝试以下选项:
    • 检查上面列出的所有软件包/工具箱是否已正确安装
    • 重新启动 MATLAB 并再次运行代码
    • 断开并重新连接相关设备的线缆
    • 确保 Raspberry Pi 的 SD 卡已安装 ADI Kuiper Linux(并且能够正常工作)

    运行脚本

    一旦 Phaser 和 Pluto 都能够与 MATLAB 通信,请下载并解压

    然后打开文件Phaser_steeringAngle_rev1.m。

    此脚本的功能是扫描一系列转向角并输出阵列因子的图。

    % Key Parameters
    signal_freq = 10.145e9;  % this is the HB100 frequency
    signal_freq = findTxFrequency();
    plutoURI = 'ip:192.168.2.1';
    phaserURI = 'ip:phaser.local';
     
    % Setup the pluto
    rx = setupPluto(plutoURI);
     
    % Setup the phaser
    bf = setupPhaser(rx,phaserURI,signal_freq);
    bf.RxPowerDown(:) = 0;
    bf.RxGain(:) = 127;

    这段代码用于使用之前安装的ADI工具箱(此处分别标记为“rx”和“bf”)在MATLAB中初始化Pluto和Phaser对象。它还会进行短暂扫描,以查找HB100发射器的频率。

    % Create the model of the phaser    
    c = physconst('LightSpeed');
    phaserModel = phased.ULA('NumElements',8,'ElementSpacing', ... 
        bf.ElementSpacing);
    steeringVec = phased.SteeringVector("SensorArray",phaserModel, ...
        'NumPhaseShifterBits',7,'PropagationSpeed',c);

    本部分使用 MathWorks 的 Phased Array System Toolbox (phased) 在 Phaser 上创建天线阵列模型。Phaser 具有 8 个均匀分布的阵元,使用 Phased Array System Toolbox 中的均匀线性阵列对象 (phased.ULA) 进行建模。相应的转向矢量则使用 Phased Array System Toolbox 中的 SteeringVector 对象创建。

    %% Set all gains to max and phases to zero
    bf.RxGain(:) = 127;   % max gain = 127, min gain = 0
    bf.RxAttn(:) = 0;     % if RxAttn=1 then insert 20dB attenuator
    bf.RxPhase(:) = 0;
    bf.LatchRxSettings(); % write new settings to the ADAR1000s
     
    % Load Phase calibration values
    PhaseCal = [0; -8.4375; -5.625; -5.625; 67.5; 87.1875; 90; 101.25];

    此段仅设置增益级别和相位校准值。

    %% Sweep the steering angle and capture data
    steeringAngle = -90 : 90;
    ArrayFactor = zeros(size(steeringAngle));
    for ii = 1 : numel(steeringAngle)
        arrayWeights = steeringVec(signal_freq,steeringAngle(ii));
        phases = rad2deg(angle(conj(arrayWeights(:))));
        phases = phases - phases(1);
        phases = phases + PhaseCal;
        phases = wrapTo360(phases);
        bf.RxPhase(:) = phases.';
        bf.LatchRxSettings();
        receivedSig_HW = rx();
        receivedSig_HW_sum = sum(receivedSig_HW,2);
        receivedFFT = fft(receivedSig_HW_sum);
        ArrayFactor(ii) = (max(abs(receivedFFT)));
    end

    代码中实际的波束控制操作如下。
    代码会创建一个数组,其中包含波束控制所需的角度。然后,它会执行一个循环,其中:

    • 从角度数组中获取给定角度
    • 使用给定的波束控制角度创建另一个数组,其中包含要应用于每个天线单元的相应相移
    • 将相移应用于 Phaser
    • 从 Pluto 收集数据,对数据进行 FFT 运算以获取最大幅度,并记录下来
    • 重复此操作,直至获得下一个波束控制角度
    %% Compare the measured array factor and model
    [~,ind] = max(ArrayFactor);
    EmitterAz = steeringAngle(ind)
    figure(101)
    arrayWeights = steeringVec(signal_freq,EmitterAz);
    pattern(phaserModel,signal_freq,-90:90,0,'CoordinateSystem', ...
        'Rectangular','Type','powerdb','weights',arrayWeights)
    hold on;
     
    % Plot the measured data and the model
    plot(steeringAngle,mag2db(ArrayFactor./max(abs(ArrayFactor))))

    这里使用相控阵系统工具箱 (Phased Array System Toolbox) 模拟 Phaser 的阵列因子。然后绘制实验获得的阵列因子(根据上述数据)和模拟的阵列因子。结果图应类似于下图。请注意,模拟和实际获得的阵列因子之间的差异主要是由于尚未进行校准。

    完整的 RADAR 示例

    https://cnb.cool/tekdf_cnb/Phaser-Control-with-MATLAB