作者: zhao xudong

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

    欢迎

    欢迎您查看本指南,我们将会带您一步一步的进行案例的操作。

    请您准备好:

    • 带HDMI的显示器
    • 有线鼠标和键盘
    • Micro-HDMI转HDMI线(东枫包装箱内提供)

    连线以及注意事项

    • Micro-HDMI 注意要连接到第一个孔位上。
    • Type-C电源适配器要连接到相控阵主板上,树莓派请勿上电。
    • 网口可以连接网络(支持上网)
    • Pluto-SDR连接线是单独配置的短线,方便使用。
    • SD卡内已经安装好系统和软件,请勿随意格式化或者重新安装系统,如果您想自己制作系统和安装软件,请重新购置一张32GSD卡,在您自己购置的SD卡上进行操作,我们发货的SD卡不要重新刷系统。

    上电开机

    终端介绍

    设备上电之后,会自动开机,进入系统。当完成开机之后,您可以在显示器上看到这样的界面

    在树莓派的系统中,最重要的就是使用命令行终端。

    如果熟悉树莓派的都知道,是需要知道用户名和密码的。

    用户名密码
    rootanalog
    analoganalog

    当你需要密码的时候,使用上述的信息即可。

    设备连接WIFI

    在右上角是可以连接WiFi的,这样就可以无线网线了,低延迟还是网线最稳定,WiFi是使用的树莓派自带的模块。

    在Windows上使用使用VNC登录

    Windows电脑上需要安装RealVNC Viewer

    在设备的终端中输入指令:

    ifconfig

    于是会显示出IP地址。

    在这个界面中,是可以看到所有的IP地址的

    在RealVNC Viewer中输入设备的IP地址,按照提示输入密码即可。

    快速访问手册

    打开浏览器

    然后点击手册

    复制和粘贴指令会非常的方便。

    在终端中,按下右键,然后选择“Paste”

    就可以把指令复制过来了。按下键盘的Enter建运行。

    实验步骤:查找HB100和相控阵雷达界面

    此时,可以从命令行运行GUI 。使用 3V 台式电源或两节 AA 电池为 HB100 源供电,并将其对准移相天线。运行以下命令查找 HB100 频率:

    注意:是需要打开终端的,在终端中一行一行的输入,按下回车键运行。

    cd ~/pyadi-iio/examples/phaser
    python phaser_find_hb100.py

    理想情况下,应该有一个单一的、尖锐的峰值,如下图所示。

    如果只有一个显著峰,输入“y”。如果出现多个峰或没有可见峰,请关闭绘图并在提示符下输入“n”。重新放置 HB100(并确保附近没有其他源),然后重新运行脚本。

    接下来运行GUI:

    cd ~/pyadi-iio/examples/phaser
    python phaser_gui.py

    GUI应加载并开始显示光束模式,如下所示。

    数据的捕获是可以单次捕获或者连续捕获的。

    在该案例中,发射源可以是使用外置的HB100,也可以使用设备自己发射的信号。如果使用外置的HB100当作信号源,那么就在界面中选择“Transmit Disabled”,注意HB100要保持开机状态。HB100是电池供电的,在使用完成之后,记得给断电。

    当选择使用设备自身的信号源的时候,请在软件中选择“Transmit on OUT1”或者“Transmit on OUT2”

    使用的硬件为:定向天线+SMA转接头+SMA射频线

    连接起来之后就是

    连接设备的OUT1或者OUT2

    默认的“Rectangular Plot”,可以在Plot Options中选择“Show Peak Gain”和“Show Peak Angle”,这样的目的是为了能方便看出辐射源的方位。

    图像的显示不仅有“Rectangular Plot”,还有“Polar Plot”

    还有“FFT”显示

    对于相控阵而言,拥有八个通道,这八个通道的增益和相位是可以控制的。在界面中“Gain”和“Phase”是可以去更改这些数值的。

    增益(Gain):

    相位(Phase):

    跟踪模式,选择“Tracking”

    初始校准

    相位器板最初未经校准;由于多种因素的影响,每个元件的增益和相位误差都会略有不同。phaser_examples.py 脚本提供了一个校准实用程序,可以生成校准文件。如果 GUI 正在运行,请将其关闭。将 HB100 放置在阵列正前方,机械视轴对准,距离约 1.5 米。然后运行:

    cd ~/pyadi-iio/examples/phaser
    python phaser_examples.py cal

    该脚本运行时会提供调试信息和绘图,您可能需要关闭每个绘图才能继续运行脚本。运行此脚本后,文件 gain_cal_val.pkl 和 phase_cal_val.pkl 将放置在工作目录中。GUI 程序再次运行时也会自动加载这些文件。

  • KrakenSDR GNU Radio 模块

    简述

    GNU Radio 是一款流行的免费开源工具包,提供各种数字信号处理模块。您可以使用它来构建解调器、解码器,以及各种利用相干数据的应用,例如干涉测量和波束形成。

    KrakenSDR 源模块的工作原理

    gr-krakensdr 模块与 KrakenSDR 的数据采集软件 Heimdall 协同工作。Heimdall 是 KrakenSDR 的核心软件,负责确保所有通道的采样数据在时间和相位上保持一致性(相干性)

    在启动时,Heimdall 会自动完成采样和相位一致性的校准,并在运行过程中定期检查以确认相干性是否保持稳定。GNU Radio 中的该模块通过 TCP 套接字连接 从 Heimdall 接收相干 IQ 数据,用于后续的信号处理。

    Heimdall 服务器既可以运行在与 GNU Radio 程序相同的主机上,也可以运行在网络连接的设备上,例如 树莓派 4(Raspberry Pi 4)

    但如果使用网络传输,您需要确保网络带宽足以支持 5 通道的数据吞吐量

    模块安装

    KrakenSDR 的源代码块可在
    https://github.com/krakenrf/gr-krakensdr获取。

    模块预览

    这是一个用于 KrakenSDRGNU Radio 模块。它通过 TCP 套接字连接与 KrakenSDR 的数据采集服务器软件 Heimdall 通信。

    Heimdall 负责通过噪声源进行所有采样同步与相位一致性的校准,而该模块则接收 经过校准的相干 IQ 数据,并将其提供给 GNU Radio 进行后续的 数字信号处理(DSP)

    GNU Radio OOT Block 安装说明

    sudo apt-get install gnuradio-dev cmake libspdlog-dev clang-format
    
    git clone https://github.com/krakenrf/gr-krakensdr
    
    cd gr-krakensdr
    mkdir build
    cd build
    cmake ..
    make
    sudo make install

    使用说明

    首先安装Heimdall https://github.com/krakenrf/heimdall_daq_fw.

    如果你使用的是预配置的测向镜像,首先需要禁用测向软件的自动启动,否则可能会干扰 Heimdall 的连接。进入 /boot 目录,将 start_kraken.sh 重命名,例如改为 start_kraken.sh_stop,以停止测向应用的自动启动。

    接下来,将本仓库中的 heimdall_only_start.shheimdall_only_stop.sh 文件复制到你的 krakensdr 根目录中。

    然后,在 heimdall_daq_fw 文件夹中,编辑 Firmware/daq_chain_config.ini 文件,将 out_data_iface_type 的值修改为 eth

    [data_interface]
    out_data_iface_type = eth

    然后,在 krakensdr 根目录下运行:

    ./heimdall_only_start.sh

    现在你可以启动包含 KrakenSDR 源模块的 GRC 文件,程序将会通过套接字连接到本地 IP 地址 127.0.0.1 上运行的 heimdall 程序。

    另外,你也可以在一台联网设备上运行 heimdall 程序,但需要确保使用高速千兆网络,并尽可能是直连方式,以保证网络吞吐量足以处理五个通道的数据。

    GNU Radio KrakenSDR 示例流程图

    我们还提供了三个示例 GRC 流程图,以及一个互相关器(cross correlator)和一个 DOA MUSIC 块,以帮助用户熟悉源模块的使用。

    示例 1 – 简单的多通道 FFT

    第一个示例文件提供了每个输出通道的 简单 FFT 频谱显示。名为“kraken_fft_display.grc”。

    示例 2 – 使用 DOA MUSIC 块进行无线电测向

    第二个示例使用 DOA MUSIC 块,配合天线阵列,实现无线电测向并输出信号的方位角信息。名为“kraken_music_doa.grc”。

    示例 3 – 交叉相关采样与相位一致性检查

    最后一个示例可用于验证 Heimdall 输出是否真正保持相干,方法是对 通道 1 到 4 与参考通道 0 之间进行交叉相关处理。

    要使用该相关流程图,您需要在 Heimdall 源代码中修改一行代码,以强制噪声源始终保持开启状态。

    要测试该模块,您需要对 Heimdall 核心代码进行轻微修改,以使噪声源保持常开:

    1、使用文本编辑器打开文件:

    Firmware/_daq_core/rtl_daq.c

    2、在文件结尾附近,找到以下函数调用:

    rtlsdr_set_bias_tee_gpio(..., 0);

    将最后的 0 改为 1,使噪声源始终开启:

    rtlsdr_set_bias_tee_gpio(..., 1);

    3、然后在目录 Firmware/_daq_core 中运行:

    make

    4、完成测试后,请务必将这处修改还原为 0,并再次运行 make,以恢复默认行为。