1. 拓扑连接方法
- 上图是基站、信道模拟器以及 UE 模拟器之间的连线方法。
- 基站的 TX1 连接信道模拟器的 RX1,信道模拟器的 TX1 连接 UE 模拟器的 RX1。
- UE 模拟器的 TX1 连接信道模拟器的 RX3,信道模拟器的 TX3 连接基站的 TX1。
2. 商用协议栈测试方法
2.1 先运行信道模拟器
- 将下图中 Amarisoft 的高中低轨配置文件复制到
config目录下。
- 在浏览器中输入 NTN 无线信道仿真器的地址:
http://127.0.0.1:4678/open5g/ntn_monitor/。 - 点击 Web 页面左侧的「配置参数」,对上下行的频率、带宽、天线数量等进行配置。配置要和基站侧保持一致。
- 点击页面「大屏展示」→「启动仿真程序」,选择要运行的仿真信道。
- 仿真程序启动之后,会在下面的目录生成一个
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 协议栈的启动
- 修改基站的配置文件。
cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/
vim config/oai-chan-gnb-sa-ntn.cfg根据高中低轨道,指定上一步从信道仿真器传过来的 TLE 文件路径。
根据信道仿真器运行的仿真轨道配置基站的轨道,并关闭自身的仿真程序。
- 启动协议栈的核心网和 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- 启动基站。进入基站目录并查看配置文件。
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- 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 卫星轨道模拟配置和启动
- 首先将 OAI 目录下的两个轨道模拟配置复制到
config目录下。
- 在浏览器输入
http://127.0.0.1:4678/open5g/ntn_monitor/。
- 点击左侧导航栏的「配置参数」,对参数进行配置。
- 点击左侧「大屏展示」中的「启动仿真程序」,然后选择要模拟的轨道配置文件,点击「确认启动」即可启动轨道模拟。
3.3 协议栈启动
Web 启动方法
- 打开浏览器,在地址栏输入
https://127.0.0.1/open5g/,用户名admin,密码123456进行登录。 - 点击左侧导航栏的「Open5GS 核心网」→「指标监控」,然后点击「启动」按钮启动核心网。
- 点击左侧导航栏的「OAI 基站」→「指标监控」,点击启动按钮,选择启动配置后点击「启动」按钮启动基站。
记住下图中绿色的信息,要和 UE 侧的接入配置保持一致。其中 -C 2495690000 是下行频率,通过 -CO 873500000 计算出的上行频率要和卫星轨道模拟中的配置保持一致。-r 106 和 --numerology 0 计算出的带宽要和卫星轨道模拟采样率计算出的带宽保持一致。
后台启动方法
- 进入核心网的启动目录。
cd ~/sdr/Open5G/5gc/open5gs_docker_v2.6.5/- 启动核心网。
sudo docker compose -f open5g_studio.yaml up -d- 进入基站的启动目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/cmake_targets/- 启动基站。启动的 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.conf3.4 UE 模拟器的启动
- 进入 UE 模拟器的启动目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/cmake_targets/- 启动 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 基站坐标修改
卫星轨道模拟器的修改
- 在浏览器中输入
http://127.0.0.1:4678/open5g/ntn_monitor/。 - 进入左侧「配置参数」页面,选择要修改的配置,然后修改基站的坐标。
Amarisoft 基站的配置修改
- 进入基站的配置目录。
cd ~/sdr/2026-06-12/lteenb-linux-2026-06-12/config/- 编辑配置文件,修改坐标,要和卫星轨道模拟器中的基站坐标保持一致。
vim oai-chan-gnb-sa-ntn.cfgOAI 基站的配置修改
- OAI 基站低轨 LEO 在当前模式下无需修改任何坐标。
- 高轨模式下需要修改。先进入基站的配置目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/targets/PROJECTS/GENERIC-NR-5GC/CONF/- 编辑基站的高轨配置文件,需要换算 xyz。
vim gnb.sa.band254.u0.106prb.yunsdr.ntn-geo.conf- 同时需要修改
ta-common-r17。先启动 NTN 信道仿真器的高轨配置,获取上下行时延。
根据时延按 时延 / 4.072 * 1000000 计算数值。该参数颗粒度是 4.072 / 1000 微秒,最后参数值是毫秒。例如 250 / 4.072 * 1000000 = 61394891。
- 还有一个参数
CellSpecificKoffset_r17。针对 15KHz 子载波间隔,单位为时隙数量。根据上面查看到的 250ms,往返是 500ms。Koffset = RTT(ms) = 500,可以额外预留 2 到 5 个时隙的余量。
4.2 UE 坐标修改
卫星轨道模拟器的修改
- 在浏览器中输入
http://127.0.0.1:4678/open5g/ntn_monitor/。 - 进入左侧「配置参数」页面,选择要修改的配置,然后修改 UE 的坐标。
Amarisoft UE 的配置修改
- 进入 UE 配置文件的目录。
cd ~/sdr/2026-06-12/lteue-linux-2026-06-12/config/- 修改 UE 的配置文件和坐标,要和卫星轨道模拟器里配置的一致。
vim oai-chan-ue-nr-ntn.cfgOAI UE 模拟器的配置修改
- 进入 UE 模拟器的配置文件目录。
cd ~/sdr/Open5G/oai/openairinterface5g-2026-w21/targets/PROJECTS/GENERIC-NR-5GC/CONF/- 编辑 UE 模拟器的配置文件,修改 UE 的坐标。主要修改 xyz 坐标轴的数值,换算之后的经纬度要和卫星轨道模拟器中配置的一致。
vim ntn-ue.conf5. 注意事项
- 一定要先运行卫星轨道模拟器,再运行协议栈。
- 商用协议栈测试时,需要将卫星轨道模拟器生成的 TLE 文件复制到基站侧,然后再运行基站。基站一定要指定好该 TLE 文件的路径。每次重新运行都要复制一次。
- 轨道模拟器选择的轨道要和基站侧保持一致。
- 轨道模拟器的电脑目前只支持 7400 PCIES Split 版本。
- 射频连线方法一定要对应,否则信号无法收到。
- 三部分的收发频率一定要对应,按照上面的方法进行确认。
- 卫星轨道模拟器如果选择 TLE 文件,一定要写绝对路径,不要写相对路径。
- 协议栈使用开源 OAI 时,虽然不需要传输星历数据,但是卫星轨道模拟器的电脑会广播 UDP 数据给基站。基站所在的电脑和卫星轨道模拟的电脑要用网线连接,并配置同网段的 IP 地址。
- 三台电脑的系统时间一定要同步,例如都接入公共网络,或者相互进行系统时间同步。
6. 电脑局域网的时钟同步方法
6.1 使用 chronyd
sudo apt-get install chronyServer 端修改
sudo vim /etc/chronyd/chronyd.conf禁用其中的原始时钟源,并在文档的结尾添加下面的内容。
allow 192.168.1.0/24
local stratum 10重启 chronyd:
sudo systemctl restart chronyd
sudo systemctl status chronydClient 端的修改
sudo vim /etc/chrony/chrony.conf禁用原始的时钟源,并添加一个新的时钟源。
server 192.168.0.42 iburst重启 chronyd:
sudo systemctl restart chronyd
sudo systemctl status chronyd6.2 使用 ptp4l
三台电脑分别配置 192.168.0.42/24、192.168.0.25/24、192.168.0.58/24。将三台电脑的网络接口连接在同一台交换机上,保证能够互相通信。
- 先给三台电脑安装
linuxptp和ethtool。
sudo apt install linuxptp ethtool- 将一台电脑作为主时钟。例如登录到
192.168.0.42/24,打开终端,开启主时钟。其中enp95是能够和其他两台电脑通信的网络接口名称,可以通过ip a查看。
sudo ptp4l -i enp95 -m -H -2- 另外两台电脑分别启动从服务。在
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 轨道仿真模拟器启动失败
- 报错:
[HW] DOWNLINK read samples failed。
原因之一是配置文件中的 sync 和 clock 没有同步成功。如果没有外部源和 GPS,建议设置成 internal。
- 报错:
No TLEs read from 路径+iss.tle。
该问题是由于 iss.tle 未找到。检查路径是否正确,一定要是绝对路径。
- 报错:
Model rfsimu_channel_uplink_tdl not found。
需要确认配置文件中是否有对应的配置。如果没有则忽略此报错,模拟器应该可以正常运行。如果有,则需要检查命名是否正确。
