
1. 为什么会对Starlink的下行信号感兴趣做卫星通信的同行应该都有体会低轨星座这几年彻底改变了这个行业的节奏。过去我们调一个地球站对准的是地球同步轨道上纹丝不动的卫星链路预算算一次能用好几年现在换成了低轨卫星波束从头顶呼啸而过仰角、距离、多普勒都在不停变化整个接收链路的设计逻辑都要重新适应。Starlink又是其中规模最大、迭代最快的系统它的Ku波段下行信号就成了这个领域绕不开的研究对象。这篇文章要把我实际做信号采集和解调分析的过程做一个系统梳理重点放在信号结构这个层面——也就是当你用天线对准一颗过境的Starlink卫星时你收到的那个宽带信号里到底是怎么组织起来的。这里先说明一个容易混淆的点。“Starlink”这个名称本身并不是SpaceX独占的商标斯巴鲁车载系统里也有一个叫Starlink的服务那是车联网远程控制、多媒体娱乐那套东西和卫星通信没有任何关系。网上偶尔能看到“斯巴鲁starlink漏洞”之类的新闻说的也是车载软件的安全问题不要把它和低轨卫星星座的信号分析混为一谈。本文讨论的Starlink是SpaceX的低轨宽带卫星星座。研究下行信号结构这件事用一个不太严谨但很形象的类比来理解你在一个非常嘈杂的集市里想辨认出某个特定的人——这个人每隔几分钟就移动一次位置还在用你不太熟悉的方言说话。你要做的第一件事是确认他大概在哪个方向卫星轨道预报然后确定他说话的声调高低载波频率再就是听懂他说话的节奏和停顿帧结构和同步序列最后才能分辨出他说的具体内容有效载荷数据。所谓信号结构解析做的就是后面这几步。这项工作的意义不只是好奇心驱使。对于卫星通信从业者来说理解Starlink的下行信号结构有助于评估低轨星座对现有Ka/Ku频段地面系统的实际频谱占用形态也便于在干扰排查时快速判断宽带干扰和正常的低轨下行信号之间有什么区别。对于无线电信号处理方向的学生和研究者来说Starlink下行信号本身就是一份难得的真实素材——它包含高阶调制、自适应编码调制、突发传输、多普勒补偿、相控阵波束成形等多个技术点比教材里的仿真信号复杂得多也更有分析价值。我在这个方向上的工作方式比较朴素用一台支持Ku波段的天线系统接收信号经过低噪声放大和下变频后用软件无线电设备进行高速采样把原始IQ数据保存下来再用GNU Radio和MATLAB做离线分析。整套流程走下来并不需要太昂贵的设备关键是把每一步的原理和操作要点理清楚。接下来就从频谱观测、调制识别到帧结构拆解逐步讲透。2. 信号定位先在地球同步轨道卫星的“近邻”里找到它拿到任务的第一反应不是直接抓信号而是先搞清楚Starlink卫星在Ku波段下行链路里占的位置。Ku波段的下行频率范围通常指10.7到12.75GHz这一大段被划分给了不同业务使用。Starlink下行链路主要工作在10.7到12.7GHz之间具体频率会依据卫星编号和波束不同而变化。这和传统DTH广播电视卫星例如11.7到12.2GHz那段靠得非常近所以在频谱仪上Starlink信号就出现在那些熟悉的广播卫星信号旁边。观测时机是整个实验成败的关键。低轨卫星的运行周期大约90分钟这意味着每天有若干次过境窗口但并非每次过境都能让天线接收到足够强的信号。我在实际操作中使用的预测工具是基于TLE轨道根数的轨道预测软件这套东西不需要太高级开源的GP预测算法就够用。要注意的是TLE数据需要定期更新CelesTrak和Space-Track上都能获取到Starlink星座的TLE一般建议在观测当天重新拉取一次预报精度才有保障。天线指向策略上我试过两种方案各有优劣这里把对比情况列出供参考策略操作方式优点缺点手动跟踪根据实时轨道数据手动调整天线的方位角和俯仰角让馈源始终对准卫星设备简单、成本低能根据信号强度实时微调低轨卫星角速度太快手动跟到手酸不现实仰角低时容易丢星固定波束驻留天线固定指向天空某一区域等卫星过境时扫过波束范围操作简单不用动天线能同时捕获多颗过境卫星只能捕获过顶角度与天线指向接近的卫星观测窗口短信号强度变化很大我推荐初入门者直接采用第二种也就是固定波束驻留。实操上把天线大致指向卫星过顶仰角最高的那个方位通常是正南方向偏上或者正天顶附近然后把接收机设置为宽带扫描模式记录几分钟的频谱数据。等卫星从波束里穿过的时候你会在频谱图上看到一个明显的宽带凸起那基本就是Starlink的下行信号了。这个过程中有一个容易忽略的经验低轨卫星过境时因为距离在不断变化信号到达地面的功率会经历一个“由弱变强再变弱”的过程。如果你用固定步进的频谱扫描模式可能在扫描到该频段时信号的瞬时强度已经变了导致抓到的频谱是“残缺”的。更好的做法是最小化扫描时间或者直接使用最大保持Max Hold模式把整个过境过程中的峰值保留在一张频谱图上。这样即使信号的绝对幅度在变化你至少能确定它存在的位置和大概的带宽范围。在真实的一次观测记录里我发现Starlink下行信号的频谱形态和DVB-S2的广播信号有明显差异。DTH广播信号通常是连续载波频谱呈现平滑的方形轮廓带宽一般是26MHz或36MHz而Starlink的信号在同样的频段里呈现若干个并行的较窄带宽信道每条信道的频谱包络更接近滤波器成形的单载波带宽大致在几十到两百多MHz之间。这个形态差异本身就是判断“这是不是Starlink信号”的第一个线索。3. 调制与成帧从频谱形态推断信号结构把信号从频谱上定位到之后接下来的问题是这个信号里面到底是怎么调制的Starlink官方没有公开过完整的物理层规范我们能做的就是从信号本身的特征反推。首先需要判断的是调制方式。我观察到的Starlink Ku波段下行信号在解调后可以明显看出使用QPSK、8PSK、16APSK甚至更高阶的调制方式具体采用哪一种取决于链路预算和雨衰余量等条件。这个动态选择机制和DVB-S2标准里定义的自适应编码调制ACM几乎是一样的。在实际的IQ数据里你可以在星座图上看到不同时刻的信号点分布密度在变化当卫星处于高仰角过顶、距离较近时链路余量充足星座点间距小、调制阶数高当卫星靠近地平线、仰角很低时信号衰减大系统会自动切换回更稳健的低阶调制。帧结构方面Starlink的Ku波段下行链路在很多情况下是兼容DVB-S2X帧格式的。这一点是圈内通过长期观察和比对总结出来的共识虽然SpaceX从未公开确认但从信号里解出来的PLHEADER物理层帧头、导频块位置和基带帧长度都和DVB-S2X的规范高度吻合。以DVB-S2X帧结构为参照物理层帧的组织方式是每个物理层帧以PLHEADER开头长度为90个符号这90个符号里前26个是固定的帧同步序列SOF用来给接收机提供帧起始的定位基准PLHEADER后面是可选的前导Pilot块按照规范每隔一定数量的数据符号插入一组导频符号用于辅助接收机做载波相位跟踪导频块之后是有效载荷区装载基带帧数据基带帧长度在DVB-S2X里可以配置为多种长度在部分配置中每个物理层帧末尾还会有一个小的尾部导频块。对接收机而言PLHEADER的SOF是最关键的捕获工具。只要接收机预先知道这一串26符号的同步序列它就可以在缓存的数据流里扫描相关性一旦相关峰超过阈值就认为找到了帧起始位置后面的所有符号同步和帧解析都是在这个基础上展开的。我在实际解码时用这个方案捕获成功的概率非常高即使在符号信噪比只有7dB左右的恶劣条件下仍然能稳定确认帧头位置。不过必须强调的是Starlink系统已经发展出多个版本的卫星不同版本的信号结构并不完全相同。V1.0卫星、V1.5卫星和V2 Mini的下行信号在中心频率、极化方式、带宽占用上都有差异。同一颗卫星在不同工作模式下也可能在DVB-S2X兼容模式和私有帧格式之间切换。所以对“Starlink信号结构”这件事正确的理解是它是一个动态、演进的系统而不是一个固定的规范。帧结构解析的实际价值在哪里举一个具体场景当你要判断某个频段内的干扰是来自Starlink波束的意外照射还是其他非法发射时如果能在IQ数据里提取出DVB-S2X的PLHEADER相关峰就能以极高的置信度判定信号来源。这个做法在频谱管理、干扰排查和卫星网络优化中都非常实用。4. 信道化接收与关键参数测算从频谱到符号率的推导频谱上看到的宽带信号要真正解调出有用的比特流还必须精确估计几个关键参数——中心频率、符号率和脉冲成形滚降系数。这三者的准确度直接决定了解调性能的下限。中心频率的估计相对简单。用频谱仪的Marker功能把信号频谱包络的中心位置读出来然后在软件定义无线电接收机里把本振频率设置为该值。但这里有个坑低轨卫星的多普勒频移变化非常快在卫星刚进入视距时多普勒频移可能高达几十kHz而到了过顶时刻近似为零。如果你使用的是窄带锁相环做载波恢复在窗口的前后段会频繁失锁。我的做法是把采集到的整段IQ数据先做一次粗频率估计再用数据辅助的方式做精频率跟踪也就是利用PLHEADER里已知的SOF序列做相关运算把频率误差进一步压缩到几百Hz以内。符号率的估计是我在这个项目里花时间最多的地方。刚才说到DVB-S2X的帧结构里有PLHEADER它是一个固定调制格式的段——总是使用π/2BPSK符号率为整个信号的符号率。所以我估算符号率的思路是先以若干个候选符号率对信号进行重采样和匹配滤波然后对滤波后的符号序列做SOF相关检测哪个符号率下相关峰的幅度最高且周期性最稳定那个就是估计值。这个过程在MATLAB里实现并不复杂核心代码逻辑示意如下% 候选符号率范围单位Msps candidate_rates 30:0.1:300; max_corr zeros(size(candidate_rates)); for k 1:length(candidate_rates) rs candidate_rates(k); % 用当前符号率重采样 x_resampled resample(iq_data, rs*1000, fs); % 匹配滤波滚降系数设为0.2 rrc rcosdesign(0.2, 8, 16, sqrt); x_filtered filter(rrc, 1, x_resampled); % 与SOF序列做相关 corr abs(xcorr(x_filtered, sof_sequence)); max_corr(k) max(corr); end [~, idx] max(max_corr); estimated_rate candidate_rates(idx);当然这只是简化示意实际还要考虑频偏对相关峰的影响通常需要先做一次粗频偏校正相关检测的窗口也要适当加长否则结果不够稳定。对一个典型的Starlink下行信道我多次实测得到的符号率大致在60Msps到250Msps之间。配合占用的射频带宽一般是符号率的1.1到1.2倍具体取决于滚降系数可以反推出系统使用的滚降系数。实测下来Starlink下行信号的滚降系数设定在0.15到0.25之间这个取值比其他卫星广播业务常用的0.2稍低一些在频谱利用效率上又有了一点优势。带宽和符号率确定之后还可以估算下行速率。比如一个符号率为100Msps的信道如果采用16APSK调制每个符号携带4比特信息扣除帧头、导频、前向纠错编码的开销有效数据速率大约在300~400Mbps量级。这和SpaceX对外宣称的单波束吞吐量是吻合的也从侧面验证了我们估计的准确性。下面整理一个我常用的参数对照表可以方便后续观测时直接参考信号参数典型数值范围备注下行频率10.7 GHz ~ 12.7 GHz不同卫星版本有差异单信道带宽60MHz ~ 240MHz频谱图上观察到的连续占用宽度符号率60Msps ~ 250Msps高轨倾角卫星通常更高滚降系数0.15 ~ 0.25多数情况下接近0.2调制方式QPSK / 8PSK / 16APSK / 32APSK自适应切换与链路条件有关极化方式圆极化左旋/右旋对天线选型影响很大帧头PLHEADER (26符号SOF)与DVB-S2X标准兼容5. 实际接收流程天线、高频头和SDR的选型与连接前面说的都是信号特征分析下面回到工程实现。要真正接收到Starlink下行信号你需要一套能工作在Ku波段的接收链路。这套链路主要由天线含馈源、低噪声下变频器LNB、软件无线电接收机SDR和信号处理计算机构成。天线这一环我强烈建议不要用常规的偏馈卫星电视天线那种直径45cm到60cm的小锅因为它的增益在低仰角时太低而且波束宽度较宽会把大量地面噪声一起收进来。实践中更合理的方案是使用口径更大一些的天线比如直径1.2米以上的偏馈天线或者直接采购市面上配合LNB使用的平板天线。平板天线的好处是体积小、重量轻而且部分型号支持多星接收方便切换观测目标。LNB是整个链路里决定灵敏度上限的组件。选择LNB时重点关注三个指标噪声系数、本振稳定度和本振相位噪声。噪声系数直接决定了系统噪声温度对低轨道卫星这种信号动态范围变化剧烈的场景来说噪声系数每恶化0.1dB在低仰角时段能明显感觉到解调裕量的下降。本振稳定度则关系到频谱测量的准确性如果LNB本振漂移过大你会在频谱图上看到信号整体“游走”无法稳定测量。我的建议是至少选用标称噪声系数在0.5dB到0.7dB之间、本振稳定度在±5ppm以内的LNB有条件的可以选恒温晶振OCXO参考的高端型号。SDR的选型需要根据你要观察的信号带宽来决定。如果你只是想看频谱、粗略判断信号是否存在那用常见的10MHz带宽的入门级SDR就够但要做符号级的信号结构分析就需要至少50MHz到100MHz的瞬时带宽。目前市面上支持这个带宽的SDR产品不少我用的是一款基于ADC直采方案的设备采样率可以设置在200Msps足以覆盖一个完整的Starlink下行信道。连接和设置方案如下天线馈源输出端连接到LNB的输入端LNB本振频率设为典型Ku波段常用值如9.75GHz或10.75GHzLNB的中频输出经过变频后的信号中心频率大约在950MHz到2150MHz之间通过同轴电缆接到SDR的RF输入在SDR软件里将中心频率设置为LNB中频的某一频点采样率设置为能满足目标信号带宽的值记录IQ数据前先用频谱模式确认信号位置的正确性并调整前端增益使信号电平不要过载。这里还一个重要操作SDR的增益设置。增益太低会导致量化噪声增加等效噪声系数恶化增益太高则会让模拟前端进入饱和产生非线性失真和互调产物的干扰。我的经验是先用频谱模式观察噪声底和信号峰值调节增益使信号的峰值功率比噪声底高出大概20~30dB即可不需要追求满幅。关于LNB供电大多数SDR设备并没有给LNB提供偏置电压的接口需要外接一个偏置器Bias Tee或者直接从接收机前端注入13V/18V的直流电压。Starlink下行信号工作在水平/垂直还是左旋/右旋极化这会影响你接收到的信号强度但不会影响你判断信号的存在。实际观测时如果把两种极化都试一遍能看到的信号形态会有明显差异——这个现象本身也可以作为识别Starlink信号的辅助判据。6. 从IQ数据到星座图一次完整的处理流水线有了原始IQ数据文件之后真正的信号解析才开始。这里我以一次典型的数据处理为例从头到尾梳理一遍完整的流程。这次数据记录的是某颗Starlink卫星过顶时约30秒的Ku波段下行信号采样率设为100Msps中心频率对应一个包含目标下行信道的频段。处理的第一步是数据清洗和频谱预览。我会先把整段数据按小块做FFT画出一张时间-频率瀑布图看看这30秒里信号的瞬时变化情况。这一步能直观看到卫星是否全程在波束内、频率是否因为多普勒而偏移、是否有突发的干扰脉冲。瀑布图里那条贯穿对角线的亮线就是从低频率漂移到高频率或反之的Starlink下行信号其斜率对应多普勒变化率。第二步是信道提取。根据瀑布图里信号的实际位置把感兴趣的那条信道从宽带数据中数字下变频DDC到基带。这一步在GNU Radio里的实现非常直接用一套“频率搬移低通滤波抽取”的流程即可。关键点是低通滤波器的带宽设置要略大于信号带宽保留滚降区的能量但又不能太大否则会把相邻信道的干扰引进来。第三步就是前文已经讲过的符号率估计。在实际处理时我不会只估计一次就完了而是会在整段数据上分段估计观察符号率是否随时间变化。大多数情况下符号率是恒定的因为发射端的时钟不会因为卫星运动而改变但有些特殊模式下不同波束可能使用不同的符号率这时候就要把分析对象切换到主波束的信道上。第四步是做符号同步和匹配滤波。符号同步的目的是确定在每一个符号周期内的哪个采样点是“最佳采样点”。这可以用经典的Gardner定时误差检测器实现也可以用基于帧头相关的数据辅助方案。由于我们已经知道PLHEADER的存在我优先用后者先粗同步到帧头位置再根据帧头位置反推最佳采样时刻。第五步是载波同步。这一步处理的正是低轨卫星信号分析里最让人头疼的多普勒频移残留。多普勒频移不仅让载波偏离中心频率还在持续变化所以我采用两级方案先用FFT粗估计残余频偏再用Costas环或判决引导环做精跟踪。在此基础上如果已知帧头里的SOF符号序列还可以用最大似然方法直接估计相位误差并校正得到干净的星座图。经过上述步骤后输出星座图你会看到典型的QPSK或16APSK信号点阵。我举一个实际观察结果一次解调出的星座图显示信号点为16APSK调制内外圆环清晰可辨星座点扩散不明显说明整个解调链路的同步参数都调校到位了。星座图的“干净程度”本身就是一个很好的质量指标。我使用的GNU Radio处理流程简化后可以理解为以下模块串联File Source - Frequency Xlate Filter - Symbol Sync - Constellation Decoder - Frame Sync (PLHEADER correlation) - Payload Demapper - Output其中Symbol Sync模块里的定时环路参数环路增益和阻尼系数需要根据实际情况调整。环路太松对多普勒变化响应慢会导致符号偏移累积环路太紧噪声会直接反映在符号定时抖动上。我常用的初始值是环路带宽设为符号率的1e-4到1e-3具体数值要微调。7. 常见问题与排查技巧实录做完多轮实验把经常踩的坑和解决办法整理成一张速查表给准备上手的同行一个参考。现象可能原因解决办法瀑布图里找不到信号过境预报不准确、天线指向偏差、LNB本振频率设定错误核实TLE数据时效、检查天线指向、转动LNB方向确认极化匹配信号时有时无且强度跳动很大天线波束窄卫星过境时没有固定指向或低仰角时大气衰减严重切换至固定波束驻留模式把天线指向卫星最大仰角方向频谱上看到信号但解调不出帧头频偏过大或符号率估计偏差大先把数据分段做FFT粗频偏校正再在更细的网格上重新搜符号率解调出星座图但点阵发散符号同步环路参数不合适或信噪比过低调小符号同步环路带宽、增加平均次数确认LNB噪声系数是否达标信号带宽很窄只有几十MHz密度很高看到的可能不是卫星下行主波束而是某个用户波束或信标信号换一个观测窗口等待卫星过顶、主波束覆盖地面时再测LNB本振频率和SDR中心频率没有对应关系中频频率计算错误或LNB本振不是标称值用已知的强广播卫星信号先校准接收链路确认LNB实际本振频率这里面最值得展开的是符号率估计失败的情况。我遇到过好几次自以为符号率已经估计得很准但相关峰就是不明显后来排查发现问题是SOF序列的符号顺序在做相关运算时匹配错了。DVB-S2X的SOF是经过特定差分编码的如果你直接把原始比特序列拿去做相关而不考虑编码映射关系相关峰会低很多。解决办法是用标准里定义的调制符号序列π/2BPSK映射后的复数序列做相关模板而不是用比特序列。另一个高频问题是LNB本振相位噪声对高阶解调的影响。Starlink下行信号在部分时段使用16APSK或更高阶调制对相位噪声非常敏感。如果LNB本振的相位噪声不够低你会观察到星座点在相位方向上的扩散明显大于幅度方向。这种问题在低成本LNB上尤其突出。我的建议是预算允许的情况下尽量选择标称相位噪声在10kHz偏移处低于-95dBc/Hz的LNB这在高阶调制解调时差别非常明显。还有一个和TLE数据有关的细节。低轨星座在轨道保持和调整时TLE数据会和实际位置出现偏差尤其是刚完成轨道机动后的卫星偏差可能达到几十公里。这不仅影响天线指向还会导致多普勒频率预测不准。实操上如果发现预报过境时刻没看到信号不妨提前或延后一两分钟扫描或者使用多个来源的TLE做交叉验证。8. 从信号结构能反推哪些系统信息解析信号结构不只是技术上的自娱自乐它确实能让我们获得一些关于Starlink系统的有价值信息这些信息对频谱规划和干扰协调工作有实际参考意义。从信号的带宽和符号率分布能看出系统的频谱利用策略。我观察到Starlink并非固定地将整个Ku频段均匀切分成等宽信道而是根据地面用户分布和业务需求动态调整信道带宽。在一些区域可以看到频谱上存在多个不同宽度的下行信道并行排列这是相控阵天线多波束同时工作的直接体现。从接收端看这些并行的信道在时间上不是完全同步的帧起始位置存在几十毫秒量级的抖动说明各波束的调度器是独立运转的。从帧结构的周期性还能推断出系统的时隙分配粒度。如果在长时间IQ记录上做PLHEADER相关峰的周期性分析你可以看到一个基本的时间帧周期——我实测到的大致在毫秒量级。这个时间粒度和低轨卫星通信系统中常用的时分复用调度周期是一致的。通过更长时间尺度的统计分析还能看出业务负载的昼夜变化规律——城镇上空过境时信道活动更频繁人烟稀少区域上空过境时信道间歇更明显。这些规律对理解星座的运营策略都有帮助。从极化方式的动态切换能看出波束管理的灵活性。Starlink地面终端接收时使用圆极化天线但卫星波束在发射时可以根据需要选择发射左旋还是右旋圆极化或者在线性极化和圆极化之间切换。不同极化之间信号的隔离度通常在20dB以上这为频谱复用提供了额外维度。地面观测时如果你的天线极化不匹配信号强度可能下降10dB以上这一现象也曾被当作误判“信号不存在”的诱因。还有一个值得写出来的观察多普勒频移的变化规律和你预期中的“理想低轨卫星”并不完全相同。Starlink卫星在波束覆盖范围内使用了数字波束成形波束指向并非严格沿星下点方向而是可以根据需求偏转。这导致你接收到的信号的频率变化曲线并非严格符合标准多普勒模型而是带有一些个体差异。这种细微的偏差从侧面反映了相控阵波束管理的复杂度和灵活性也是它和传统单波束低轨卫星之间的一个重要区别。9. 这套方法还能扩展到哪里做完了Starlink下行信号的结构解析这套思路和方法并不局限于这一颗星座、这一个频段。把它抽象出来本质上是“从未知信号的频谱特征出发通过调制识别、符号率估计、帧同步序列相关性检测等手段逐步还原信号物理层组织方式”的一套流程。这套流程可以迁移到许多其他场景。当前低轨卫星通信领域已经不是Starlink一家独大其他星座系统也陆续组网它们的信号结构普遍采用现代DVB-S2X或类似标准帧结构里同样有标准化的同步头。这意味着你可以把上述处理流程里的SOF模板换成对应标准的同步序列把符号率搜索范围调整到该系统的预期区间整个分析框架不需要做根本性改动就能适配新的观测对象。对频谱监测机构、卫星通信设备厂商和无线电爱好者来说这种方法能快速识别空中的未知宽带信号来源。在更高阶的扩展方向上这项技术还可以应用于卫星物联网信号分析、星地链路干扰定位甚至对非合作信号的辐射源识别。核心能力在于对宽带IQ数据的离线处理能力以及把帧结构知识和现代调制解调技术结合起来分析问题的思维框架。掌握了这套方法遇到一个新的未知信号时你就不会像以前一样只能对着频谱图干瞪眼而是有一套明确的步骤一步步逼近答案。根据我个人的实操体会最后再说一点信号结构解析这件事理论储备当然重要但更加重要的是多动手记录、多积累不同场景下的频谱和IQ样本。每一次过境的条件都不同——仰角不同、天气不同、卫星版本不同、业务负载不同——积累到一定量之后你对“正常信号长什么样”的判断力就会有质的提升。这种经验感是无法从任何文档里直接获得的它只来自反复的观测、失败、调参和再观测。所以如果你正准备开始做这件事不妨从今天的一次过境观测做起。