Studio

1. 拓扑连接方法

  • 上图是基站、信道模拟器以及 UE 模拟器之间的连线方法。
  • 基站的 TX1 连接信道模拟器的 RX1,信道模拟器的 TX1 连接 UE 模拟器的 RX1。
  • UE 模拟器的 TX1 连接信道模拟器的 RX3,信道模拟器的 TX3 连接基站的 TX1。

2. 商用协议栈测试方法

2.1 先运行信道模拟器

  1. 将下图中 Amarisoft 的高中低轨配置文件复制到 config 目录下。
  1. 在浏览器中输入 NTN 无线信道仿真器的地址:http://127.0.0.1:4678/open5g/ntn_monitor/。
  2. 点击 Web 页面左侧的「配置参数」,对上下行的频率、带宽、天线数量等进行配置。配置要和基站侧保持一致。
  1. 点击页面「大屏展示」→「启动仿真程序」,选择要运行的仿真信道。
  1. 仿真程序启动之后,会在下面的目录生成一个 SAT-TEST-99999.tle。需要将这个文件拷贝到基站的电脑中,例如 ~/sdr/channel_amarisoft/ 的对应子目录下。
cd /home/sdr/sdr/Open5G/channel_simulator-linux-2026-06-30/

下面的命令按实际运行的轨道执行其中一条,不要都执行。其中的 IP 地址是基站所在电脑的 IP 地址。

scp SAT-TEST-99999.tle sdr@192.168.0.25:/home/sdr/sdr/channel_amarisoft/leo/
scp SAT-TEST-99999.tle sdr@192.168.0.25:/home/sdr/sdr/channel_amarisoft/meo/
scp SAT-TEST-99999.tle sdr@192.168.0.25:/home/sdr/sdr/channel_amarisoft/geo/

2.2 协议栈的启动

  1. 修改基站的配置文件。
cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/
vim config/oai-chan-gnb-sa-ntn.cfg

根据高中低轨道,指定上一步从信道仿真器传过来的 TLE 文件路径。

根据信道仿真器运行的仿真轨道配置基站的轨道,并关闭自身的仿真程序。

  1. 启动协议栈的核心网和 IMS。进入协议栈的核心网目录。
cd ~/sdr/2026-06-12/ltemme-linux-2026-06-12/

运行核心网配置:

sudo ./lte_init.sh
sudo ./ltemme config/mme-ims.cfg

打开第二个窗口,同样进入 ~/sdr/2026-06-12/ltemme-linux-2026-06-12/,启动 IMS:

cd ~/sdr/2026-06-12/ltemme-linux-2026-06-12/
sudo ./lteims config/ims.cfg
  1. 启动基站。进入基站目录并查看配置文件。
cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/
vim config/oai-chan-gnb-sa-ntn.cfg

启动刚刚修改的配置文件:

cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/
sudo ./lteenb config/oai-chan-gnb-sa-ntn.cfg
  1. WebGUI 监控和检查 NTN 卫星。在基站所在的电脑打开浏览器,输入 http://127.0.0.1/lte/,添加 server,地址 127.0.0.1,端口 9001。在基站的标签页面点开 NTN,查看卫星位置是否和信道仿真一致。

2.3 启动 UE 模拟器

进入 UE 模拟器所在的主机,再进入 UE 模拟器目录,查看配置。

cd ~/sdr/2026-06-12/lteue-linux-2026-06-12/
vim config/oai-chan-ue-nr-ntn.cfg

然后运行 UE 模拟器。

cd ~/sdr/2026-06-12/lteue-linux-2026-06-12
sudo ./lteue config/oai-chan-ue-nr-ntn.cfg

运行起来之后,输入 power on 尝试接入。打开浏览器输入 http://127.0.0.1/lte/,添加 server,地址 127.0.0.1,端口 9002,监控 UE 的接入情况。

最佳接入情况是信道仿真的仰角在 20° 以上时再尝试接入。可以通过 power on 和 power off 反复尝试。

2.4 接入结果

3. 开源 OAI NTN 测试方法

3.1 环境介绍

环境拓扑仍然按照第 1 节中的射频连线连接。

网络连接:卫星轨道模拟的主机和基站所在的主机要通过网口互联,且配置同网段的 IP 地址(例如 192.168.0.42/24、192.168.0.25/24)。

启动顺序仍然是先启动卫星轨道模拟,然后启动协议栈。

3.2 卫星轨道模拟配置和启动

  1. 首先将 OAI 目录下的两个轨道模拟配置复制到 config 目录下。
  1. 在浏览器输入 http://127.0.0.1:4678/open5g/ntn_monitor/。
  1. 点击左侧导航栏的「配置参数」,对参数进行配置。
  1. 点击左侧「大屏展示」中的「启动仿真程序」,然后选择要模拟的轨道配置文件,点击「确认启动」即可启动轨道模拟。

3.3 协议栈启动

Web 启动方法

  1. 打开浏览器,在地址栏输入 https://127.0.0.1/open5g/,用户名 admin,密码 123456 进行登录。
  2. 点击左侧导航栏的「Open5GS 核心网」→「指标监控」,然后点击「启动」按钮启动核心网。
  1. 点击左侧导航栏的「OAI 基站」→「指标监控」,点击启动按钮,选择启动配置后点击「启动」按钮启动基站。

记住下图中绿色的信息,要和 UE 侧的接入配置保持一致。其中 -C 2495690000 是下行频率,通过 -CO 873500000 计算出的上行频率要和卫星轨道模拟中的配置保持一致。-r 106 和 --numerology 0 计算出的带宽要和卫星轨道模拟采样率计算出的带宽保持一致。

后台启动方法

  1. 进入核心网的启动目录。
cd ~/sdr/Open5G/5gc/open5gs_docker_v2.6.5/
  1. 启动核心网。
sudo docker compose -f open5g_studio.yaml up -d
  1. 进入基站的启动目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/cmake_targets/
  1. 启动基站。启动的 NTN 轨道配置要和卫星轨道模拟的一致。

高轨配置:

sudo ./ran_build/build/nr-softmodem -O ../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band254.u0.106prb.yunsdr.ntn-geo.conf

低轨配置:

sudo ./ran_build/build/nr-softmodem -O ../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band256.u0.106prb.yunsdr.ntn-leo.conf

3.4 UE 模拟器的启动

  1. 进入 UE 模拟器的启动目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/cmake_targets/
  1. 启动 UE 模拟器。

高轨启动:

sudo ./ran_build/build/nr-uesoftmodem -O ../targets/PROJECTS/GENERIC-NR-5GC/CONF/ntn-ue.conf --band 254 -C 2495690000 --CO -873500000 -r 106 --numerology 0 --ssb 60 --usrp-args "dev=pcies:0.0,auxdac1=1660" --ue-fo-compensation --ue-rxgain 50

低轨启动:

sudo ./ran_build/build/nr-uesoftmodem -O ../targets/PROJECTS/GENERIC-NR-5GC/CONF/ntn-ue.conf --usrp-args "dev=pcies:0.0,auxdac1=1660" --band 256 -C 2185000000 --CO -190000000 -r 106 --numerology 0 --ssb 146 --time-sync-I 0.1 --ntn-initial-time-drift -46 --cont-fo-comp 2 --ue-fo-compensation --autonomous-ta --ue-rxgain 50 --initial-fo 50000

低轨启动时,最后的 --initial-fo 50000 需要根据卫星轨道模拟中的多普勒值配置一次再启动。例如多普勒为 51.32,则配置为 51000,略微误差可以接受。

UE 模拟器的配置如下:

下图是卫星轨道模拟中的 UE 坐标,要和 UE 侧的坐标配置一致。

3.5 测试结果

4. 配置修改

4.1 基站坐标修改

卫星轨道模拟器的修改

  1. 在浏览器中输入 http://127.0.0.1:4678/open5g/ntn_monitor/。
  2. 进入左侧「配置参数」页面,选择要修改的配置,然后修改基站的坐标。

Amarisoft 基站的配置修改

  1. 进入基站的配置目录。
cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/config/
  1. 编辑配置文件,修改坐标,要和卫星轨道模拟器中的基站坐标保持一致。
vim oai-chan-gnb-sa-ntn.cfg

OAI 基站的配置修改

  1. OAI 基站低轨 LEO 在当前模式下无需修改任何坐标。
  2. 高轨模式下需要修改。先进入基站的配置目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/targets/PROJECTS/GENERIC-NR-5GC/CONF/
  1. 编辑基站的高轨配置文件,需要换算 xyz。
vim gnb.sa.band254.u0.106prb.yunsdr.ntn-geo.conf
  1. 同时需要修改 ta-common-r17。先启动 NTN 信道仿真器的高轨配置,获取上下行时延。

根据时延按 时延 / 4.072 * 1000000 计算数值。该参数颗粒度是 4.072 / 1000 微秒,最后参数值是毫秒。例如 250 / 4.072 * 1000000 = 61394891。

  1. 还有一个参数 CellSpecificKoffset_r17。针对 15KHz 子载波间隔,单位为时隙数量。根据上面查看到的 250ms,往返是 500ms。Koffset = RTT(ms) = 500,可以额外预留 2 到 5 个时隙的余量。

4.2 UE 坐标修改

卫星轨道模拟器的修改

  1. 在浏览器中输入 http://127.0.0.1:4678/open5g/ntn_monitor/。
  2. 进入左侧「配置参数」页面,选择要修改的配置,然后修改 UE 的坐标。

Amarisoft UE 的配置修改

  1. 进入 UE 配置文件的目录。
cd ~/sdr/2026-06-12/lteue-linux-2026-06-12/config/
  1. 修改 UE 的配置文件和坐标,要和卫星轨道模拟器里配置的一致。
vim oai-chan-ue-nr-ntn.cfg

OAI UE 模拟器的配置修改

  1. 进入 UE 模拟器的配置文件目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/targets/PROJECTS/GENERIC-NR-5GC/CONF/
  1. 编辑 UE 模拟器的配置文件,修改 UE 的坐标。主要修改 xyz 坐标轴的数值,换算之后的经纬度要和卫星轨道模拟器中配置的一致。
vim ntn-ue.conf

5. 注意事项

  1. 一定要先运行卫星轨道模拟器,再运行协议栈。
  2. 商用协议栈测试时,需要将卫星轨道模拟器生成的 TLE 文件复制到基站侧,然后再运行基站。基站一定要指定好该 TLE 文件的路径。每次重新运行都要复制一次。
  3. 轨道模拟器选择的轨道要和基站侧保持一致。
  4. 轨道模拟器的电脑目前只支持 7400 PCIES Split 版本。
  5. 射频连线方法一定要对应,否则信号无法收到。
  6. 三部分的收发频率一定要对应,按照上面的方法进行确认。
  7. 卫星轨道模拟器如果选择 TLE 文件,一定要写绝对路径,不要写相对路径。
  8. 协议栈使用开源 OAI 时,虽然不需要传输星历数据,但是卫星轨道模拟器的电脑会广播 UDP 数据给基站。基站所在的电脑和卫星轨道模拟的电脑要用网线连接,并配置同网段的 IP 地址。
  9. 三台电脑的系统时间一定要同步,例如都接入公共网络,或者相互进行系统时间同步。

6. 电脑局域网的时钟同步方法

6.1 使用 chronyd

sudo apt-get install chrony

Server 端修改

sudo vim /etc/chronyd/chronyd.conf

禁用其中的原始时钟源,并在文档的结尾添加下面的内容。

allow 192.168.1.0/24
local stratum 10

重启 chronyd:

sudo systemctl restart chronyd
sudo systemctl status chronyd

Client 端的修改

sudo vim /etc/chrony/chrony.conf

禁用原始的时钟源,并添加一个新的时钟源。

server 192.168.0.42 iburst

重启 chronyd:

sudo systemctl restart chronyd
sudo systemctl status chronyd

6.2 使用 ptp4l

三台电脑分别配置 192.168.0.42/24、192.168.0.25/24、192.168.0.58/24。将三台电脑的网络接口连接在同一台交换机上,保证能够互相通信。

  1. 先给三台电脑安装 linuxptp 和 ethtool。
sudo apt install linuxptp ethtool
  1. 将一台电脑作为主时钟。例如登录到 192.168.0.42/24,打开终端,开启主时钟。其中 enp95 是能够和其他两台电脑通信的网络接口名称,可以通过 ip a 查看。
sudo ptp4l -i enp95 -m -H -2
  1. 另外两台电脑分别启动从服务。在 192.168.0.25/24、192.168.0.58/24 上分别打开终端,输入下面的命令。其中 enp89s0 是和主时钟电脑通信的网络接口名称,可以通过 ip a 查看。
sudo ptp4l -i enp89s0 -m -H -s -2

如果不支持硬件同步,可以使用软件同步:

ptp4l -i enp89s0 -m -S -s -2
sudo phc2sys -s enp89s0 -c CLOCK_REALTIME -w -m

软件时钟同步是纳秒级别的,同步时需要等待一段时间,大概 1 到 2 分钟,不要关闭命令窗口。

7. 问题

7.1 轨道仿真模拟器启动失败

  1. 报错:[HW] DOWNLINK read samples failed。

原因之一是配置文件中的 sync 和 clock 没有同步成功。如果没有外部源和 GPS,建议设置成 internal。

  1. 报错:No TLEs read from 路径+iss.tle。

该问题是由于 iss.tle 未找到。检查路径是否正确,一定要是绝对路径。

  1. 报错:Model rfsimu_channel_uplink_tdl not found。

需要确认配置文件中是否有对应的配置。如果没有则忽略此报错,模拟器应该可以正常运行。如果有,则需要检查命名是否正确。