news 2026/9/27 21:03:22

5G NR小区搜索全流程解析:从PSS/SSS到SIB1解码与外场优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5G NR小区搜索全流程解析:从PSS/SSS到SIB1解码与外场优化

简介:这份文档面向5G网络优化工程师、无线接入网研发人员及通信专业学习者,系统梳理了NR终端从开机到驻留小区所经历的小区搜索与SIB1探测全流程,帮助读者理解连接建立的第一步为何是网络优化的关键环节。资源为单个docx文件,压缩包约15KB,内容围绕3GPP TS 38.300-5.2.5.3展开,依次讲解频率调谐、PSS/SSS检测、PBCH与MIB解码、基于pdcch-ConfigSIB1定位CORESET0与搜索空间、DCI 1_0盲解、SI-RNTI解析、PDSCH检测及SIB1与其他SIBs解码等九个阶段,并特别说明SSB探测如何将PSS/SSS检测与PBCH解码合并为一步以提升效率。目前已有375人学习,适合需要快速掌握小区搜索信令脉络、排查接入失败与弱信号高移动场景问题的读者作为案头参考。

1. 5G(NR)小区搜索到底在搜什么:从PSS/SSS到SIB1的完整链路

做5G网络优化的人,迟早会碰到一个绕不开的问题:终端明明在信号覆盖范围内,却迟迟驻留不上小区,或者驻留了但业务建立失败。翻遍路测日志,最后往往指向同一个环节——小区搜索没走完,或者SIB1没读全。这份文档把TS 38.300 5.2.5.3里定义的小区搜索流程拆成了九个步骤,从频率调谐一路讲到SIB1解码,核心价值在于把“终端怎么从一片空白到能接入网络”这件事讲透了。它适合两类人:一是做外场优化、需要定位接入失败根因的工程师;二是做终端侧协议栈开发、需要对齐3GPP流程的实现者。文档本身是docx格式,内容围绕流程定义展开,不涉及具体厂商私有实现,属于标准流程的工程化梳理。

2. 小区搜索的物理层基础:PSS、SSS和PBCH-DMRS怎么配合

2.1 同步信号的三件套:各自负责什么

5G NR的小区搜索依赖三个物理信号:PSS(主同步信号)、SSS(次同步信号)和PBCH上的DMRS(解调参考信号)。PSS和SSS合起来叫SSB(同步信号块)里的同步栅格部分,终端通过检测这两个信号拿到时间和频率同步,同时确定物理小区ID(PCI)的一部分。具体来说,NR定义了1008个PCI,PSS承载其中3个取值(0/1/2),对应小区ID的N_ID(2);SSS承载336个取值(0~335),对应N_ID(1)。最终PCI = 3 × N_ID(1) + N_ID(2)。这个设计比LTE的504个PCI多了整整一倍,目的是降低小区间PCI冲突的概率,尤其是在密集组网场景下。

PBCH上的DMRS则负责另一件事:终端在解码PBCH时,需要知道PBCH的参考信号长什么样,才能做信道估计。NR的PBCH DMRS序列与PCI和SSB索引(SSB index)都有关联,终端在盲检PBCH时会尝试不同的DMRS假设,直到解出MIB。这里有个容易混淆的点:PSS/SSS检测和PBCH解码在流程上可以合并成一步,也就是文档里提到的“SSB探测”。实际实现中,终端芯片通常会在同一个处理窗口内完成PSS/SSS相关和PBCH DMRS相关,再统一做PBCH解码。

2.2 同步栅格与信道栅格的区别

文档里提到了“同步栅格(synchronization raster)”,这个概念和“信道栅格(channel raster)”经常被搞混。信道栅格是终端调谐频率时的最小步长,NR在FR1里定义了多种信道栅格,比如100kHz、15kHz等,取决于频段。而同步栅格是SSB可能出现的频点集合,终端在小区搜索时不需要扫描所有信道栅格点,只需要在同步栅格上尝试。NR的同步栅格在FR1里定义了全局同步信道号(GSCN),每个GSCN对应一个SSB中心频点。终端开机后,会按照GSCN列表逐个尝试,而不是全频段盲扫。这个设计大幅缩短了初始小区搜索的时间。

注意:同步栅格和信道栅格不是一回事。做频率规划时,如果只对齐了信道栅格而忽略了同步栅格,终端可能根本找不到SSB。

2.3 SSB的时域结构:为什么终端知道去哪里找

NR的SSB在时域上由4个OFDM符号组成:第0个符号是PSS,第1个符号是PBCH,第2个符号是SSS和PBCH频分复用,第3个符号是PBCH。SSB在半个无线帧(5ms)内可以配置多个候选位置,具体取决于子载波间隔。比如15kHz SCS下,候选位置有4个;30kHz SCS下有8个;120kHz SCS下有64个。终端在小区搜索时,会按照这些候选位置逐个尝试检测PSS。一旦检测到PSS,终端就知道了SSB的时域位置,进而知道帧边界的大致位置。这里的关键参数是ssb-PositionsInBurst,它在MIB里指示了实际发送了哪些SSB。终端在初始搜索阶段还不知道这个参数,所以需要盲检所有候选位置。

2.4 从PSS/SSS到PBCH:终端怎么一步步缩小范围

终端调谐到某个GSCN频点后,第一步是检测PSS。PSS在时域上是一个长度为127的Zadoff-Chu序列,终端通过滑动相关找到峰值,确定SSB的起始符号。第二步是检测SSS,SSS序列与PSS序列有固定的映射关系,终端在PSS已知的情况下解出SSS,得到完整的PCI。第三步是解码PBCH。PBCH携带MIB,MIB里包含系统帧号(SFN)的高位、子载波间隔、pdcch-ConfigSIB1等关键信息。PBCH的DMRS序列与PCI和SSB index绑定,终端在已知PCI的情况下,只需要盲检SSB index和半帧指示。PBCH解码成功后,终端就拿到了MIB,小区搜索的第一阶段完成。

这一步的失败模式很典型:PSS检测不到,通常是频点不对或者信号太弱;SSS检测到了但PBCH解不出来,往往是DMRS假设不对或者信道条件太差。外场优化时,如果发现终端在某个频点反复尝试但始终读不到MIB,优先检查该频点的SSB功率和波束配置。

3. 从MIB到SIB1:CORESET0和DCI 1_0的盲检逻辑

3.1 MIB里的pdcch-ConfigSIB1到底给了什么

MIB解码成功后,终端拿到的最关键参数是pdcch-ConfigSIB1。这个参数只有8个比特,但信息量很大:它指示了CORESET0的时频资源位置和PDCCH的搜索空间配置。具体来说,这8个比特分成两部分:高4位是controlResourceSetZero,低4位是searchSpaceZero。controlResourceSetZero对应一张协议预定义的表格,终端根据这个值查表得到CORESET0的频域宽度(以RB为单位)、时域符号数(1/2/3个符号)和频域偏移。searchSpaceZero则指示了PDCCH监听时机,包括监听周期和偏移。

这里有个工程上容易踩的坑:CORESET0的频域位置是相对于SSB的,而不是相对于载波中心。终端在解码MIB之前只知道SSB的位置,所以协议设计上让CORESET0的频域资源与SSB绑定。具体来说,CORESET0的频域起始RB是根据SSB的RB偏移和controlResourceSetZero查表得到的。如果网络侧配置的CORESET0与SSB频域关系不对,终端就找不到PDCCH,SIB1自然读不到。

3.2 CORESET0的时频资源解析

CORESET0是终端在初始接入阶段唯一能用的控制资源集。它的频域宽度可以是24、48或96个RB,时域长度可以是1、2或3个OFDM符号。具体取值由controlResourceSetZero查表决定。表格在TS 38.213的Table 13-1到13-10里定义,不同频段和子载波间隔对应不同的表格。终端在解码MIB后,根据pdcch-ConfigSIB1的高4位和当前频段、SCS,查表得到CORESET0的具体配置。

频域偏移的计算稍微复杂一些。以FR1为例,CORESET0的RB起始位置 = SSB的RB起始位置 + 偏移值。偏移值由表格给出,单位是RB。终端在已知SSB频域位置的情况下,加上偏移就得到了CORESET0的频域位置。如果这个位置超出了当前载波的带宽范围,终端就认为该小区不可接入。外场优化时,如果发现终端能读到MIB但读不到SIB1,优先检查CORESET0的频域配置是否与SSB对齐。

3.3 DCI 1_0的盲检:SI-RNTI加扰的PDCCH怎么找

终端在CORESET0里监听PDCCH,目的是找到用SI-RNTI加扰的DCI 1_0。SI-RNTI是一个固定值(0xFFFF),终端在初始接入阶段不需要额外配置就知道。DCI 1_0的格式在TS 38.212里定义,用于调度SIB1的PDSCH。终端在搜索空间里按照预定义的聚合等级(AL)和候选位置进行盲检。NR的PDCCH盲检次数比LTE少,因为引入了CORESET和搜索空间的概念,终端不需要全盲扫。

盲检的具体过程是:终端对每个候选位置,用SI-RNTI解扰PDCCH的CRC,如果CRC校验通过,就认为找到了DCI 1_0。DCI 1_0里包含频域资源分配、时域资源分配、调制编码方案(MCS)、冗余版本等参数。终端根据这些参数去解码PDSCH上的SIB1。这里的关键是搜索空间的监听时机:searchSpaceZero查表得到的是PDCCH的监听周期和偏移,单位是时隙。终端只在特定的时隙里监听PDCCH,而不是每个时隙都监听。

3.4 一个可复现的SIB1解码流程

下面用伪代码描述终端从MIB到SIB1的完整处理逻辑,方便对照协议实现:

# 假设已经完成SSB探测,拿到MIB mib = decode_pbch(ssb_buffer) # 从MIB提取pdcch-ConfigSIB1 pdcch_config_sib1 = mib.pdcch_ConfigSIB1 # 8 bits coreset0_index = (pdcch_config_sib1 >> 4) & 0x0F # 高4位 searchspace0_index = pdcch_config_sib1 & 0x0F # 低4位 # 根据频段和SCS查表得到CORESET0配置 # 表格来源:TS 38.213 Table 13-1 ~ 13-10 coreset0 = lookup_coreset0_table(coreset0_index, band, scs) # coreset0包含:频域RB数、时域符号数、频域偏移 # 计算CORESET0的频域起始RB ssb_rb_start = get_ssb_rb_start(ssb_frequency, scs) coreset0_rb_start = ssb_rb_start + coreset0.freq_offset # 根据searchspace0_index查表得到PDCCH监听时机 searchspace0 = lookup_searchspace0_table(searchspace0_index, scs) # searchspace0包含:监听周期(时隙数)、偏移(时隙数) # 在CORESET0里盲检SI-RNTI加扰的DCI 1_0 si_rnti = 0xFFFF for slot in searchspace0.monitoring_slots: for candidate in searchspace0.candidates: dci = blind_decode_pdcch(coreset0, slot, candidate, si_rnti) if dci is not None: # 找到DCI 1_0,解析PDSCH调度信息 break # 根据DCI 1_0调度信息解码PDSCH上的SIB1 sib1 = decode_pdsch(dci.freq_alloc, dci.time_alloc, dci.mcs)

这段逻辑的核心是查表和盲检。lookup_coreset0_table和lookup_searchspace0_table对应协议里的预定义表格,实现时直接硬编码即可。盲检部分需要注意:终端在初始接入阶段只监听SI-RNTI,不需要监听其他RNTI。如果在这一步失败,常见原因是CORESET0配置与SSB不对齐,或者搜索空间监听时机配错。

提示:做协议栈开发时,CORESET0的查表逻辑建议直接对照TS 38.213的表格逐项核对,不要凭记忆写。不同频段和SCS对应的表格不同,搞混了会导致终端在特定频段上无法接入。

4. 外场优化中小区搜索的避坑与排查

4.1 现象:终端反复尝试但始终读不到MIB

原因:最常见的是SSB频点与终端搜索的GSCN不匹配。NR的同步栅格在FR1里不是连续的,终端按照GSCN列表逐个尝试,如果网络侧配置的SSB频点不在终端支持的GSCN列表里,终端就永远找不到。另一个原因是SSB功率配置过低,终端在PSS检测阶段就失败了。

解决:先确认网络侧SSB的频点配置,对照终端支持的GSCN列表检查是否在范围内。如果是功率问题,调整SSB的功率偏移(ss-PBCH-BlockPower),确保终端在小区边缘也能检测到PSS。外场测试时,可以用扫频仪确认SSB的实际发射频点和功率,再与终端日志对比。

4.2 现象:MIB能读到但SIB1读不到

原因:CORESET0的频域配置与SSB不对齐,或者pdcch-ConfigSIB1的配置值与实际网络侧不一致。另一个常见原因是PDCCH的聚合等级配置过高,终端在弱信号下无法解调。

解决:检查MIB里的pdcch-ConfigSIB1值,查表得到CORESET0的频域起始RB,确认是否与SSB的RB位置对齐。如果不对齐,需要调整网络侧的CORESET0配置。聚合等级方面,初始接入阶段通常用AL8或AL16,如果外场发现终端在弱场下读不到SIB1,可以尝试降低聚合等级,但要注意覆盖和容量的平衡。

4.3 现象:SIB1能读到但终端不驻留

原因:SIB1里的cellBarred字段被设置为barred,或者cellReservedForOperatorUse被设置为reserved。另一个原因是SIB1里的q-RxLevMin设置过高,终端认为当前信号质量不满足驻留条件。

解决:检查SIB1里的cellBarred和cellReservedForOperatorUse字段。如果是barred,说明该小区被禁止接入,需要确认是否是有意配置。如果是q-RxLevMin问题,根据外场实测的RSRP调整该参数,确保终端在目标覆盖区域内能正常驻留。

4.4 现象:终端在多个频点间反复跳转

原因:终端在某个频点读不到SIB1后,会回到第一步重新调谐到下一个GSCN。如果多个频点都读不到SIB1,终端就会在频点间反复跳转,导致接入时间过长。常见原因是网络侧多个频点的CORESET0配置不一致,或者某些频点的SSB功率不足。

解决:检查各频点的CORESET0配置是否一致,确保终端在每个频点都能正常读到SIB1。如果某些频点确实不需要终端驻留,可以在SIB1里设置cellBarred,让终端快速跳过。外场优化时,建议用终端侧日志记录每次频点跳转的原因,定位是哪个频点出了问题。

4.5 现象:NSA组网下终端搜不到NR小区

原因:NSA组网下,NR小区的搜索依赖于LTE锚点提供的NR测量配置。如果LTE侧没有下发正确的B1或B2测量事件,终端不会主动搜索NR小区。另一个原因是NR小区的SSB频点没有在LTE侧的测量配置里正确指示。

解决:检查LTE侧的RRC重配置消息,确认measConfig里包含了NR的测量对象,且ssbFrequency指向了正确的GSCN。如果终端仍然搜不到,检查NR小区的SSB是否实际发送,以及功率是否足够。NSA场景下,NR小区的搜索时机和独立组网不同,终端只在LTE侧指示的测量间隙里搜索NR,所以测量间隙的配置也会影响搜索成功率。

5. 进阶技巧:用QGIS和终端日志交叉验证小区搜索流程

5.1 把终端日志里的SSB信息落到地图上

外场优化时,终端日志里会记录每次SSB探测的PCI、RSRP、SSB index等信息。把这些信息导出成CSV,用QGIS加载,可以直观看到终端在哪些位置能搜到小区、哪些位置搜不到。具体做法是:从日志里提取SSB_RSRP和PCI字段,加上GPS经纬度,生成点图层。然后按RSRP值做分级渲染,红色表示弱覆盖,绿色表示好覆盖。这样一眼就能看出小区搜索失败的区域是否与弱覆盖区域重合。

如果发现某个PCI在多个位置都搜不到,但该位置的RSRP并不差,那问题可能出在SSB的波束配置上。NR的SSB是波束赋形的,每个SSB index对应一个波束方向。如果某个方向的波束功率不足,终端在该方向就搜不到SSB。这时候需要检查网络侧的SSB波束配置,确认是否所有方向的波束都正常发送。

5.2 用SIB1解码成功率定位CORESET0配置问题

终端日志里通常会记录SIB1解码的成功和失败次数。把SIB1解码成功率按小区和频点统计,如果某个小区的成功率明显偏低,优先检查该小区的CORESET0配置。具体做法是:从MIB里提取pdcch-ConfigSIB1值,查表得到CORESET0的频域起始RB,然后与SSB的RB位置对比。如果偏移量不在协议允许的范围内,终端就解不到PDCCH。

这里有个实操技巧:把CORESET0的频域配置和SSB的频域配置画在同一张频谱图上,直观对比两者的相对位置。如果CORESET0的RB完全落在SSB的RB范围之外,且偏移量超过了协议表格的最大值,那基本可以确定是配置错误。这种问题在跨频段组网时特别常见,因为不同频段的表格不同,配置时容易搞混。

5.3 一个我踩过的坑:忽略SSB index导致误判

有一次外场测试,终端在某个位置始终读不到SIB1,但SSB RSRP很好。查了半天CORESET0配置,发现没问题。后来把终端日志里的SSB index打出来,发现终端只检测到了SSB index 0,而网络侧实际发送了8个SSB。原因是终端在初始搜索阶段只尝试了SSB index 0的PBCH DMRS假设,没有遍历所有候选位置。后来在终端侧调整了盲检策略,遍历所有SSB index,问题解决。

从那以后,我每次排查SIB1解码失败,都强制走一遍SSB index的检查:先确认网络侧实际发送了哪些SSB,再确认终端日志里检测到了哪些SSB,两者对比就能快速定位是终端盲检策略问题还是网络侧配置问题。这个习惯帮我省了很多来回折腾的时间。

希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 21:02:08

网页设计制作用什么软件速查手册:新手避坑指南

网页设计制作用什么软件速查手册:新手避坑指南 网站做好了没人访问,这行话我听了太多年。很多新手朋友刚入行,手里攥着几张PSD切图,心里全是底气,觉得只要美工做得漂亮,流量自然来。现实很残酷,你精心调了三个通宵的像素级还原页面,上线后后台显示PV为0。为什么?因为你在选型阶段就选错了工具,或者工具用错…

作者头像 李华
网站建设 2026/9/27 21:02:06

西宁网站建设公司排名:3年实操对比评测避坑指南

西宁网站建设公司排名:3年实操对比评测避坑指南 想做网站却连HTML代码都写不出来?别慌,这在西宁太常见了。 很多老板被各种“排名”忽悠,花了大几万最后网站连百度首页都进不去。 今天咱们不玩虚的,直接上 对比评测 ,拆解西宁网站建设公司排名的真实逻辑。 西宁网站建设市场现状与痛点…

作者头像 李华
网站建设 2026/9/27 21:01:52

展开网站建设全流程对比评测:3步搞定域名服务器不踩坑

展开网站建设全流程对比评测:3步搞定域名服务器不踩坑 域名选错、服务器配烂,90%的新手站长第一步就输给了技术门槛。别被那些花哨的营销词忽悠,展开网站建设的核心,就是要把“域名”和“服务器”这两个地基打牢。…

作者头像 李华
网站建设 2026/9/27 21:01:33

2026最新通州做网站指南:搞定域名服务器不踩坑

2026最新通州做网站指南:搞定域名服务器不踩坑 域名选错、服务器卡顿、备案被驳回,这是很多在通州做网站的新手最容易踩的三个大坑。刚入行想给公司做个官网,或者想搞个个人博客,对着满屏的“ECS”、“SLB”、“CDN”、“ICP”,脑子直接嗡嗡响,根本不知道从哪下手。别慌,2026年的建站环境虽然技…

作者头像 李华
网站建设 2026/9/27 21:01:26

3个国外建站工具实战案例:告别模板太丑的痛点

3个国外建站工具实战案例:告别模板太丑的痛点 做项目五年,最怕客户指着屏幕说:“这模板太丑,不够用。” 你心里明白,国内那些拖拽式建站平台,审美同质化严重,想做出点差异化,难如登天。…

作者头像 李华