上一篇,我们把地面蜂窝里的频偏处理完整讲了一遍。
手机刚开机,先用同步信号把大的频偏抓回来;进入正常通信以后,再利用参考信号继续盯住残余频偏。
最后可以把地面蜂窝里的思路压成一句话:
测量 + 补偿 + 跟踪。
那把基站搬到低轨卫星上以后,是不是把这一套原封不动搬过去就行了?
不行。
因为低轨卫星带来的多普勒有三个非常特别的特点:
频偏很大、变化很快,但又高度可预测。
前两个特点,让地面蜂窝那种“信号来了以后再慢慢估”的方式变得越来越吃力。
第三个特点,却给了我们一条新的路。
于是 NTN 的处理思路开始从:
收到以后再测
变成:
收到以前先算。
这就是 5G NTN 频偏处理最值得理解的变化。
一、LEO 的频偏为什么一下变成几十 kHz?
LEO 频偏量级
也就是说:
仅仅是卫星运动本身,就可能带来四五十 kHz 量级的 Doppler。
所以到了低轨卫星,频偏首先遇到的第一个问题就是:
大。
二、更麻烦的是:它还一直在变
LEO Doppler 随时间变化
真正麻烦的是:
卫星一直在飞,所以径向速度也一直在变。
卫星从远处向 UE 靠近时,径向速度可能很大。
随着卫星逐渐接近头顶,虽然卫星本身仍然飞得很快,但是它沿“卫星—UE 连线方向”靠近的速度会越来越小。
经过以后,卫星开始远离。
于是 Doppler 可能经历这样的变化:
+40 kHz ↓ +30 kHz ↓ +10 kHz ↓ 接近 0 ↓ -10 kHz ↓ -30 kHz所以到了 NTN,我们面对的已经不再只是一个固定频偏:
一个随时间不断变化的频偏。
这就带来了第二个麻烦:
变化快。
三、那还像地面网络一样,收到以后再估不就行了?
传统频偏估计在 NTN 为什么变得吃力
很自然会有人问:
地面蜂窝不就是靠 PSS、DMRS 等同步信号和参考信号来估频偏吗?
那卫星里继续这么干不就好了?
理论上当然可以。
问题是代价会越来越大。
第一,搜索范围太大
地面网络里,你可能只需要在一个相对有限的频偏范围里找。
到了 LEO,接收机可能面对的是:
-50 kHz ... 0 ... +50 kHz如果事先什么都不知道,那么接收机就得在这么大的范围里搜索。
第二,大频偏会让很多“精细测量”变得很难用
上一篇我们讲过:
长尺子适合量小误差,但大误差可能已经绕了很多圈。
如果两个参考信号间隔比较长,而 Doppler 又是几十 kHz,那么这段时间里相位可能已经转了很多圈。
你看到的只是最后那个角度。
前面到底转了 1 圈、10 圈还是 100 圈,可能已经不知道了。
第三,你刚估完,它又变了
所以问题已经不是:
“这个频偏到底是多少?”
而是:
“这个正在快速变化的频偏,我要怎么一直追着它跑?”
所以如果 NTN 还完全依靠:
收到信号 → 从零开始估
那接收机的捕获范围、算法复杂度和跟踪压力都会变得非常大。
看起来问题越来越难了。
四、幸运的是:卫星虽然跑得快,但它不是乱跑的
从轨道几何预测 Doppler
汽车怎么开,可能很随机。
一会加速,一会刹车,一会转弯。
但卫星不一样。
它虽然以每秒几公里的速度高速运动,却沿着可以预测的轨道运行。
也就是说:
它跑得很快,但它跑去哪儿,其实是可以提前知道的。
如果 UE 知道两件事:
卫星在哪里、怎么飞;
我自己在哪里。
那么卫星和 UE 之间的视线方向就可以算出来。
再结合卫星的速度,就能算出沿这条视线方向的径向速度:
有了径向速度,再代入:
Doppler 就可以提前预测出来。
这一下,整个问题就变了。
原来是:
信号来了,我才不知道它偏了多少,于是开始测。
现在是:
信号还没来,我就已经知道它大概会偏到哪里。
所以 NTN 出现了一个特别重要的思路:
既然几十 kHz 的“大头”本来就能算出来,为什么还要让接收机从零开始猜?
这里要特别注意一个“主仆关系”
刚开始接触 NTN 时,很容易产生一个直觉:
卫星这么特殊、Doppler 这么大,那卫星是不是应该想办法补偿频偏?
标准 NTN 里,基本不是这个思路。
至少在我们这里讨论的频偏处理上,很多工作是要求终端自己完成的。
卫星网络告诉你必要的信息。
终端知道自己的位置。
然后:
终端自己算卫星相对于你的运动;
终端自己预测 Doppler;
终端自己把接收和发射频率尽量校准好。
如果夸张一点打个比方:
标准 NTN 里的卫星网络,有点像一只高傲的“白天鹅”。
它说:
我的轨道就在这里。
我的规则也告诉你。
你这个终端想接进来,就把自己收拾利索。
甚至有点像:
“我不追着你跑。你想跟我通信,就自己想办法跟上。”
这其实和地面蜂窝的基本哲学是一脉相承的。
基站本来就是系统里的参考。
终端做时间同步。
终端做频率同步。
终端根据网络的规则调整自己。
到了 NTN,只不过这个要求被放大了:
你不仅要跟踪一个基站,还得跟踪一个每秒飞几公里的“基站”。
所以标准 NTN 一个很重要的前提就是:
终端本身必须足够聪明。
这一点后面还会非常重要。
五、于是 NTN 有“两套东西”同时工作
NTN 两套系统同时工作
现在就能理解 NTN 最核心的处理框架了。
它并不是发明了一种神奇的新 CFO 算法,把几十 kHz 一口气全算准。
而是把问题拆成了两部分。
第一套:几何预测系统
它利用:
卫星轨道 / 星历 + UE 位置 + 当前时间 ↓ 卫星与 UE 的几何关系 ↓ 径向速度 ↓ 预测 Doppler这套东西负责什么?
负责那个“大而可预测”的部分。
第二套:无线测量系统
然后才轮到我们在地面蜂窝里熟悉的东西:
PSS / SSS DMRS 其他参考信号 ↓ 观察实际收到的 IQ ↓ 估剩下的 残差residual CFO ↓ 继续跟踪这一套负责:
处理预测以后仍然剩下的小误差。
所以 NTN 不是:
预测取代测量。
而是:
预测 + 测量,两套机制一起工作。
一句话:
能算的先算,算不准的再测。
或者再工程一点:
预测处理大头,无线测量处理残差。
六、为什么预测完了,还是会有残差?
预测后的残余频偏
看到这里可能又会觉得:
卫星轨道这么准,UE 的位置也知道,Doppler 不是可以直接算准吗?
没那么理想。
比如:
卫星位置误差 卫星速度误差 UE 位置误差 时间误差 UE 晶振 / 本振误差 其他系统误差所以:
预测永远不是为了把无线测量干掉。
预测真正的意义是:
把一个几十 kHz 的“大未知问题”,变成几十 Hz 或更小量级的“小残差问题”。
到了这里,PSS、DMRS 等信号仍然非常有价值。
只不过它们的任务变了。
从:
“告诉我完整频偏到底是多少。”
变成:
“我大概已经知道答案了,你帮我看看还差多少。”
所以完整的逻辑是:
先预测 ↓ 先补掉大头 ↓ 测 residual CFO ↓ 持续跟踪七、到这里,下行基本解决了。那上行怎么办?
下行与上行频偏处理
前面讲了这么多,其实主要都可以从 UE 接收下行的视角来理解。
卫星发来的信号有一个很大的 Doppler。
UE 根据:
卫星轨道 + 自己的位置提前知道:
这个信号大概会偏到哪里。
于是它可以先把大的 Doppler 校掉。
然后再通过真正收到的同步信号、参考信号继续估计残差。
这一下,下行问题基本有思路了。
但还有一个问题:
UE 发给卫星怎么办?
这时候情况反而更有意思。
因为下行信号来到 UE 时,Doppler 已经发生了。
UE 只能:
收到以后再校。
但上行不一样。
UE 的信号还没有发出去。
既然 UE 已经知道卫星怎么飞,也能预测信号到卫星时会产生多大的 Doppler:
那为什么不在发射以前就提前补掉?
也就是说:
UE 明知道信号飞到卫星以后会被“推高”35 kHz,那我干脆发送的时候先把它“压低”35 kHz。
等信号真正飞到卫星那里时:
正好尽量落回网络希望看到的位置。
这就是上行的:
frequency pre-compensation,频率预补偿。
所以标准 NTN 里,频偏处理其实有一个非常鲜明的终端视角:
下行: 先预测 ↓ 收到以后校正 ↓ 再测残差 上行: 先预测 ↓ 发射以前就提前补八、但上行绝不是“把下行 Doppler 取个反号”这么简单
上行预补偿为什么必须持续更新
说到这里,有两个非常容易被忽略的问题。
第一个问题:上下行频率本来就不一样
那么同样一个径向速度下:
上下行对应的 Doppler Hz 数本来就不一样。
所以不能这样想:
下行 +40 kHz ↓ 上行直接补 -40 kHz真正应该做的是:
先通过几何关系 得到径向速度 ↓ 再根据下行载频 算下行 Doppler ↓ 再根据上行载频 算上行 Doppler换句话说:
真正能够在上下行之间复用的,不是“40 kHz”这个结果,而是背后的径向速度。
这一点非常关键。
第二个问题:卫星还在继续飞
别忘了这一篇第二章讲的东西:
卫星一直在动。
所以 NTN 上行频率预补偿并不是:
算一次 ↓ 补一次 ↓ 结束而是:
持续预测卫星运动 ↓ 持续更新径向速度 ↓ 持续更新上行 Doppler ↓ 持续调整预补偿这就再次说明:
NTN 的频偏处理本质上是一个动态跟踪问题。
不是求一个数。
而是一直追着一个不断变化的数跑。
九、所以 NTN 不是“换了一个 CFO 算法”
走到这里再回头看,你会发现:
NTN 和地面蜂窝真正的区别,并不是:
PSS 换成了另外一个信号。
也不是:
多发几个 DMRS。
甚至都不是:
“搞一个更厉害的 CFO estimator。”
真正变化的是:
系统开始利用位置、轨道和几何关系,主动预测无线信号未来会发生什么。
以前我们讲 CFO,更多是在看 IQ:
相位转了多少? ↓ 频偏是多少?但到了 NTN,多了一整套新的信息:
卫星在哪里? 卫星怎么飞? UE 在哪里? 两者视线方向是什么? 径向速度是多少? 未来 Doppler 会变成多少?这些原本看起来更像“导航”“轨道”“位置”的信息,现在开始直接参与物理层频率同步。
所以我觉得 NTN 真正有意思的地方就在这里:
频偏不再只是接收机里的一个小算法。
它开始变成一个:
几何信息 + 无线测量共同解决的系统问题。
十、所以 5G NTN 的频偏到底多了什么?
现在可以回到文章开头。
为什么?
因为 LEO Doppler 有三个特点:
很大。
所以不能什么都不知道就慢慢搜。
变化很快。
所以不能算一次以后就不管。
但是可预测。
所以几十 kHz 的大头完全没有必要从零开始猜。
这就是 5G NTN 频偏处理的核心逻辑。
十一、那 3GPP 到底标准化了什么?
3GPP NTN 频偏标准化流程
那3GPP是怎么说的。
现在我们终于知道,前面这一整套方案要运行起来,有一个非常现实的问题:
对终端要求很高。
终端想自己计算 Doppler,至少要知道两件事情。
第一:
我在哪里?
第二:
卫星在哪里、怎么飞?
问题来了。
终端怎么知道这些?
第一步:终端先要知道“我在哪里”
这件事相对简单。
标准 NTN UE 可以利用 GNSS 获得自己的位置。
所谓 GNSS,就是全球导航卫星系统。
比如:
• GPS;
• 北斗;
• Galileo 等。
所以 UE 可以知道:
我现在在地球上的什么位置。
在 Rel-17 NTN 的框架里,UE 会利用自身位置和卫星星历来计算 service-link 的 Doppler。
第二步:那 UE 怎么知道“卫星在哪里”?
这就需要网络告诉它。
卫星不是固定不动的。
今天这个时刻在这里。
几秒钟以后已经飞到了另外一个位置。
所以不能简单告诉 UE:
“卫星在东边。”
真正需要给的是:
卫星轨道信息,也就是星历。
有了星历,UE 就可以知道:
某个时间点 ↓ 卫星在哪里 ↓ 卫星速度是多少3GPP 在 NTN 的 RRC 体系里定义了 NTN 相关系统信息。
其中,SIB19 是一个重要入口,里面可以承载 NTN assistance information;与 NTN 相关的配置中包括卫星星历等信息。
于是前面讲的物理原理,真正被接进了蜂窝协议:
UE 自己的 GNSS 位置 + 网络提供的卫星星历 ↓ 知道两者几何关系 ↓ 计算径向速度 ↓ 预测 service-link Doppler ↓ 做频率校准 / 上行预补偿这就是标准的意义。
而是告诉所有人:
你们都要按照这套信息关系把系统接起来。
第三步:卫星一直在飞,辅助信息当然也有时间有效性
卫星一直运动,所以 UE 使用的卫星辅助信息不能被理解成“一份静态数据永远有效”。
它必须和时间对应起来。
3GPP 的 NTN 配置里除了星历,还包含和时间基准相关的信息。
从读者理解上,可以把它想成:
网络 ↓ 通过系统信息告诉 UE 当前有效的卫星相关信息 ↓ UE 结合当前时间持续计算 ↓ 卫星现在在哪里 速度是多少 ↓ 不断更新 Doppler 预测这和我们前面第八章的物理逻辑正好完全对应:
卫星一直在动,所以预补偿值也必须一直更新。
第四步:3GPP 把“谁负责补”也划清楚了
在标准 NTN 的 service link 上,UE 需要根据自身位置和卫星星历计算瞬时 Doppler,并对上行做 frequency pre-compensation。
从 UE 的视角看,系统大致就是:
网络把必要信息告诉你。
你也知道自己在哪里。
那你自己把 Doppler 算出来,把自己调准再来。
所以标准 NTN 的设计哲学很明确:
网络定义规则,终端负责满足接入条件。
终端要想进来:
自己先跟上。
十二、但是,如果手机根本不愿意配合呢?
标准 NTN 与存量手机 DTC
讲到这里,事情突然变得非常有意思。
前面这一整套标准 NTN,有一个非常重要的前提:
终端是专门支持 NTN 的终端。
它知道自己需要干什么。
它能拿 GNSS 位置。
它能获得星历。
它能根据几何关系算 Doppler。
它还能自己做上行频率预补偿。
所以整个逻辑是:
网络提出要求,终端适应网络。
这很正常。
因为蜂窝网络过去几十年一直基本是这个逻辑。
但现在行业里出现了另一种完全不同的目标:
我不要特殊 NTN 手机。
我就要今天大家口袋里的普通手机,直接连接卫星。
事情一下就完全变了。
已经卖出去的大量手机,你不可能跑过去跟用户说:
“麻烦升级一下硬件。”
也很难说:
“从今天开始,你必须支持一套全新的卫星 Doppler 预测机制。”
这些终端已经在那里了。
它们原本就是按地面 LTE / 5G 网络设计的。
于是一个非常有意思的“主仆关系反转”出现了。
标准 NTN 是:
终端适应卫星网络。
存量手机直连卫星变成了:
卫星网络想办法适应终端。
手机反而成了那个不能随便碰的东西。
你要进入这个市场,就得迁就它。
Starlink 的 Direct to Cell 就是这种思路的典型代表。
它强调的是:
让现有 LTE 手机在无需修改硬件、固件或安装特殊 App 的情况下,直接连接卫星。
Starlink 甚至把这类卫星描述成:
“cellphone tower in space”——把蜂窝基站搬到太空。
国内也已经出现类似路线。
2026 年,垣信卫星公开完成了无改造存量商用手机直连卫星通话;公开资料中提到,为了解决天地通信中的大时频偏问题,系统采用了两级时频偏补偿,而普通商用手机无需做软硬件升级。
看到了吗?万变不离其宗啊。
卫星还是飞那么快。
Doppler 还是几十 kHz。
Doppler 还是一直变化。
唯一变化的是:
这次你不能要求手机帮你解决。
于是原来压在终端上的复杂度,就只能想办法往:
卫星、网络、网关、基站侧
搬。
这其实首先是一个商业选择,然后才变成一个技术问题
这一点特别值得琢磨。
如果纯粹从技术角度出发,最舒服的方案是什么?
很简单。
重新设计一个支持 NTN 的手机:
你要有 GNSS 你要读星历 你要算 Doppler 你要做预补偿技术链条最干净。
3GPP Rel-17 就提供了这样一套很合理的系统框架。
但是 Starlink Direct to Cell 选择了另一条路:
现有手机不改。
为什么?
因为它真正想进入的,不是一个“卫星专用终端市场”。
而是:
已经存在的巨大蜂窝手机市场。
如果必须换手机,这个市场的门槛一下就高了。
如果今天手里的手机直接就能用:
商业入口完全是另一回事。
所以:
“存量手机完全不改”首先是一个产品和市场选择。
然后这个选择反过来给技术团队出了一道极难的题:
手机不改,那几十 kHz Doppler 谁来吞?
频偏一直变化,谁来跟?
手机仍然以为自己面对的是一个普通地面蜂窝网络,卫星网络怎么把自己的高速运动藏起来?
这时候,频偏问题就不再只是一个算法问题了。
它开始变成:
商业目标决定系统架构。
这也是为什么我觉得存量手机直连卫星,比“标准 NTN 怎么做频偏补偿”更有意思。
标准 NTN 的逻辑是:
卫星很特殊,所以终端升级能力来适应卫星。
而存量手机 DTC 的逻辑却是:
手机不能动,那就逼着卫星网络把自己伪装成手机熟悉的样子。
一个是:
终端适应网络。
另一个是:
网络适应终端。
物理规律没变。
变的是:
谁来承担复杂度。
而这背后真正改变的,是商业目标。
下一篇,我们就继续这个问题:
普通手机完全不改,卫星网络到底怎么把几十 kHz 的 Doppler“吃掉”?
也就是:
存量手机直连卫星的频偏处理。
从 Starlink Direct to Cell,到国内已经开始出现的存量手机直连方案,我们看看:
当终端不再愿意替卫星解决问题以后,网络到底付出了什么代价?
而这,才真正开始从:
“频偏怎么补”
走向:
“这门生意为什么要这么设计”。
参考规范与公开资料
• 3GPP TS 38.300,NR and NG-RAN Overall Description,Release 17 NTN 相关章节。
• 3GPP TS 38.331,NR Radio Resource Control,Release 17 NTN / SIB19 / ephemeris 相关定义。
• Starlink Direct to Cell 官方公开资料。